├── .editorconfig ├── .gitignore ├── .npmrc ├── .rollup.js ├── .tape.js ├── .travis.yml ├── CHANGELOG.md ├── CONTRIBUTING.md ├── INSTALL.md ├── LICENSE.md ├── README.md ├── index.html ├── package-lock.json ├── package.json ├── src └── index.js └── test ├── basic.css ├── basic.expect.css ├── options.css └── options.expect.css /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | indent_style = tab 7 | insert_final_newline = true 8 | trim_trailing_whitespace = true 9 | 10 | [*.md] 11 | trim_trailing_whitespace = false 12 | 13 | [*.{json,md,yml}] 14 | indent_size = 2 15 | indent_style = space 16 | 17 | [*.css] 18 | insert_final_newline = false 19 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Custom rules 2 | 3 | .* 4 | !.npmrc 5 | !.editorconfig 6 | !.gitignore 7 | !.rollup.js 8 | !.tape.js 9 | !.travis.yml 10 | *.log* 11 | *.result.css 12 | /index.* 13 | !index.html 14 | # Created by https://www.toptal.com/developers/gitignore/api/macos,windows,node,visualstudiocode 15 | # Edit at https://www.toptal.com/developers/gitignore?templates=macos,windows,node,visualstudiocode 16 | 17 | ### macOS ### 18 | # General 19 | .DS_Store 20 | .AppleDouble 21 | .LSOverride 22 | 23 | # Icon must end with two \r 24 | Icon 25 | 26 | # Thumbnails 27 | ._* 28 | 29 | # Files that might appear in the root of a volume 30 | .DocumentRevisions-V100 31 | .fseventsd 32 | .Spotlight-V100 33 | .TemporaryItems 34 | .Trashes 35 | .VolumeIcon.icns 36 | .com.apple.timemachine.donotpresent 37 | 38 | # Directories potentially created on remote AFP share 39 | .AppleDB 40 | .AppleDesktop 41 | Network Trash Folder 42 | Temporary Items 43 | .apdisk 44 | 45 | ### Node ### 46 | # Logs 47 | logs 48 | *.log 49 | npm-debug.log* 50 | yarn-debug.log* 51 | yarn-error.log* 52 | lerna-debug.log* 53 | 54 | # Diagnostic reports (https://nodejs.org/api/report.html) 55 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 56 | 57 | # Runtime data 58 | pids 59 | *.pid 60 | *.seed 61 | *.pid.lock 62 | 63 | # Directory for instrumented libs generated by jscoverage/JSCover 64 | lib-cov 65 | 66 | # Coverage directory used by tools like istanbul 67 | coverage 68 | *.lcov 69 | 70 | # nyc test coverage 71 | .nyc_output 72 | 73 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 74 | .grunt 75 | 76 | # Bower dependency directory (https://bower.io/) 77 | bower_components 78 | 79 | # node-waf configuration 80 | .lock-wscript 81 | 82 | # Compiled binary addons (https://nodejs.org/api/addons.html) 83 | build/Release 84 | 85 | # Dependency directories 86 | node_modules/ 87 | jspm_packages/ 88 | 89 | # TypeScript v1 declaration files 90 | typings/ 91 | 92 | # TypeScript cache 93 | *.tsbuildinfo 94 | 95 | # Optional npm cache directory 96 | .npm 97 | 98 | # Optional eslint cache 99 | .eslintcache 100 | 101 | # Microbundle cache 102 | .rpt2_cache/ 103 | .rts2_cache_cjs/ 104 | .rts2_cache_es/ 105 | .rts2_cache_umd/ 106 | 107 | # Optional REPL history 108 | .node_repl_history 109 | 110 | # Output of 'npm pack' 111 | *.tgz 112 | 113 | # Yarn Integrity file 114 | .yarn-integrity 115 | 116 | # dotenv environment variables file 117 | .env 118 | .env.test 119 | 120 | # parcel-bundler cache (https://parceljs.org/) 121 | .cache 122 | 123 | # Next.js build output 124 | .next 125 | 126 | # Nuxt.js build / generate output 127 | .nuxt 128 | dist 129 | 130 | # Gatsby files 131 | .cache/ 132 | # Comment in the public line in if your project uses Gatsby and not Next.js 133 | # https://nextjs.org/blog/next-9-1#public-directory-support 134 | # public 135 | 136 | # vuepress build output 137 | .vuepress/dist 138 | 139 | # Serverless directories 140 | .serverless/ 141 | 142 | # FuseBox cache 143 | .fusebox/ 144 | 145 | # DynamoDB Local files 146 | .dynamodb/ 147 | 148 | # TernJS port file 149 | .tern-port 150 | 151 | # Stores VSCode versions used for testing VSCode extensions 152 | .vscode-test 153 | 154 | ### VisualStudioCode ### 155 | .vscode/* 156 | !.vscode/settings.json 157 | !.vscode/tasks.json 158 | !.vscode/launch.json 159 | !.vscode/extensions.json 160 | *.code-workspace 161 | 162 | ### VisualStudioCode Patch ### 163 | # Ignore all local history of files 164 | .history 165 | 166 | ### Windows ### 167 | # Windows thumbnail cache files 168 | Thumbs.db 169 | Thumbs.db:encryptable 170 | ehthumbs.db 171 | ehthumbs_vista.db 172 | 173 | # Dump file 174 | *.stackdump 175 | 176 | # Folder config file 177 | [Dd]esktop.ini 178 | 179 | # Recycle Bin used on file shares 180 | $RECYCLE.BIN/ 181 | 182 | # Windows Installer files 183 | *.cab 184 | *.msi 185 | *.msix 186 | *.msm 187 | *.msp 188 | 189 | # Windows shortcuts 190 | *.lnk 191 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | save-exact = true 2 | -------------------------------------------------------------------------------- /.rollup.js: -------------------------------------------------------------------------------- 1 | import babel from 'rollup-plugin-babel'; 2 | 3 | export default { 4 | input: 'src/index.js', 5 | output: [ 6 | { file: 'index.js', format: 'cjs', sourcemap: true, strict: false }, 7 | { file: 'index.mjs', format: 'esm', sourcemap: true, strict: false } 8 | ], 9 | plugins: [ 10 | babel({ 11 | presets: [ 12 | ['@babel/env', { modules: false, targets: { node: 8 } }] 13 | ] 14 | }) 15 | ] 16 | }; 17 | -------------------------------------------------------------------------------- /.tape.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 'basic': { 3 | message: 'supports basic usage' 4 | }, 5 | 'options': { 6 | message: 'supports options usage', 7 | options: { 8 | breakpoints: { 9 | extraSmall: '20em', 10 | small: '48em', 11 | } 12 | } 13 | } 14 | }; 15 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | # https://docs.travis-ci.com/user/travis-lint 2 | 3 | language: node_js 4 | 5 | node_js: 6 | - 8 7 | 8 | install: 9 | - npm install --ignore-scripts 10 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changes to PostCSS Help Media Queries 2 | 3 | ### 1.0.0 (July 23, 2020) 4 | 5 | - Initial version 6 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to PostCSS Help Media Queries 2 | 3 | You want to help? You rock! Now, take a moment to be sure your contributions 4 | make sense to everyone else. 5 | 6 | ## Reporting Issues 7 | 8 | Found a problem? Want a new feature? 9 | 10 | - See if your issue or idea has [already been reported]. 11 | - Provide a [reduced test case] or a [live example]. 12 | 13 | Remember, a bug is a _demonstrable problem_ caused by _our_ code. 14 | 15 | ## Submitting Pull Requests 16 | 17 | Pull requests are the greatest contributions, so be sure they are focused in 18 | scope and avoid unrelated commits. 19 | 20 | 1. To begin; [fork this project], clone your fork, and add our upstream. 21 | ```bash 22 | # Clone your fork of the repo into the current directory 23 | git clone git@github.com:YOUR_USER/postcss-help-media-queries.git 24 | 25 | # Navigate to the newly cloned directory 26 | cd postcss-help-media-queries 27 | 28 | # Assign the original repo to a remote called "upstream" 29 | git remote add upstream git@github.com:csstools/postcss-help-media-queries.git 30 | 31 | # Install the tools necessary for testing 32 | npm install 33 | ``` 34 | 35 | 2. Create a branch for your feature or fix: 36 | ```bash 37 | # Move into a new branch for your feature 38 | git checkout -b feature/thing 39 | ``` 40 | ```bash 41 | # Move into a new branch for your fix 42 | git checkout -b fix/something 43 | ``` 44 | 45 | 3. If your code follows our practices, then push your feature branch: 46 | ```bash 47 | # Test current code 48 | npm test 49 | ``` 50 | ```bash 51 | # Push the branch for your new feature 52 | git push origin feature/thing 53 | ``` 54 | ```bash 55 | # Or, push the branch for your update 56 | git push origin update/something 57 | ``` 58 | 59 | That’s it! Now [open a pull request] with a clear title and description. 60 | 61 | [already been reported]: issues 62 | [fork this project]: fork 63 | [live example]: https://codepen.io/pen 64 | [open a pull request]: https://help.github.com/articles/using-pull-requests/ 65 | [reduced test case]: https://css-tricks.com/reduced-test-cases/ 66 | -------------------------------------------------------------------------------- /INSTALL.md: -------------------------------------------------------------------------------- 1 | # Installing PostCSS Help Media Queries 2 | 3 | [PostCSS Help Media Queries] runs in all Node environments, with special instructions for: 4 | 5 | | [Node](#node) | [PostCSS CLI](#postcss-cli) | [Webpack](#webpack) | [Create React App](#create-react-app) | [Gulp](#gulp) | [Grunt](#grunt) | 6 | | --- | --- | --- | --- | --- | --- | 7 | 8 | ## Node 9 | 10 | Add [PostCSS Help Media Queries] to your project: 11 | 12 | ```bash 13 | npm install postcss-help-media-queries --save-dev 14 | ``` 15 | 16 | Use **PostCSS Help Media Queries** to process your CSS: 17 | 18 | ```js 19 | const postcssHelpMediaQueries = require('postcss-help-media-queries'); 20 | 21 | postcssHelpMediaQueries.process(YOUR_CSS /*, processOptions, pluginOptions */); 22 | ``` 23 | 24 | Or use it as a [PostCSS] plugin: 25 | 26 | ```js 27 | const postcss = require('postcss'); 28 | const postcssHelpMediaQueries = require('postcss-help-media-queries'); 29 | 30 | postcss([ 31 | postcssHelpMediaQueries(/* pluginOptions */) 32 | ]).process(YOUR_CSS /*, processOptions */); 33 | ``` 34 | 35 | ## PostCSS CLI 36 | 37 | Add [PostCSS CLI] to your project: 38 | 39 | ```bash 40 | npm install postcss-cli --save-dev 41 | ``` 42 | 43 | Use **PostCSS Help Media Queries** in your `postcss.config.js` configuration file: 44 | 45 | ```js 46 | const postcssHelpMediaQueries = require('postcss-help-media-queries'); 47 | 48 | module.exports = { 49 | plugins: [ 50 | postcssHelpMediaQueries(/* pluginOptions */) 51 | ] 52 | } 53 | ``` 54 | 55 | ## Webpack 56 | 57 | Add [PostCSS Loader] to your project: 58 | 59 | ```bash 60 | npm install postcss-loader --save-dev 61 | ``` 62 | 63 | Use **PostCSS Help Media Queries** in your Webpack configuration: 64 | 65 | ```js 66 | const postcssHelpMediaQueries = require('postcss-help-media-queries'); 67 | 68 | module.exports = { 69 | module: { 70 | rules: [ 71 | { 72 | test: /\.css$/, 73 | use: [ 74 | 'style-loader', 75 | { loader: 'css-loader', options: { importLoaders: 1 } }, 76 | { loader: 'postcss-loader', options: { 77 | ident: 'postcss', 78 | plugins: () => [ 79 | postcssHelpMediaQueries(/* pluginOptions */) 80 | ] 81 | } } 82 | ] 83 | } 84 | ] 85 | } 86 | } 87 | ``` 88 | 89 | ## Create React App 90 | 91 | Add [React App Rewired] and [React App Rewire PostCSS] to your project: 92 | 93 | ```bash 94 | npm install react-app-rewired react-app-rewire-postcss --save-dev 95 | ``` 96 | 97 | Use **React App Rewire PostCSS** and **PostCSS Help Media Queries** in your 98 | `config-overrides.js` file: 99 | 100 | ```js 101 | const reactAppRewirePostcss = require('react-app-rewire-postcss'); 102 | const postcssHelpMediaQueries = require('postcss-help-media-queries'); 103 | 104 | module.exports = config => reactAppRewirePostcss(config, { 105 | plugins: () => [ 106 | postcssHelpMediaQueries(/* pluginOptions */) 107 | ] 108 | }); 109 | ``` 110 | 111 | ## Gulp 112 | 113 | Add [Gulp PostCSS] to your project: 114 | 115 | ```bash 116 | npm install gulp-postcss --save-dev 117 | ``` 118 | 119 | Use **PostCSS Help Media Queries** in your Gulpfile: 120 | 121 | ```js 122 | const postcss = require('gulp-postcss'); 123 | const postcssHelpMediaQueries = require('postcss-help-media-queries'); 124 | 125 | gulp.task('css', () => gulp.src('./src/*.css').pipe( 126 | postcss([ 127 | postcssHelpMediaQueries(/* pluginOptions */) 128 | ]) 129 | ).pipe( 130 | gulp.dest('.') 131 | )); 132 | ``` 133 | 134 | ## Grunt 135 | 136 | Add [Grunt PostCSS] to your project: 137 | 138 | ```bash 139 | npm install grunt-postcss --save-dev 140 | ``` 141 | 142 | Use **PostCSS Help Media Queries** in your Gruntfile: 143 | 144 | ```js 145 | const postcssHelpMediaQueries = require('postcss-help-media-queries'); 146 | 147 | grunt.loadNpmTasks('grunt-postcss'); 148 | 149 | grunt.initConfig({ 150 | postcss: { 151 | options: { 152 | use: [ 153 | postcssHelpMediaQueries(/* pluginOptions */) 154 | ] 155 | }, 156 | dist: { 157 | src: '*.css' 158 | } 159 | } 160 | }); 161 | ``` 162 | 163 | [Gulp PostCSS]: https://github.com/postcss/gulp-postcss 164 | [Grunt PostCSS]: https://github.com/nDmitry/grunt-postcss 165 | [PostCSS]: https://github.com/postcss/postcss 166 | [PostCSS CLI]: https://github.com/postcss/postcss-cli 167 | [PostCSS Loader]: https://github.com/postcss/postcss-loader 168 | [PostCSS Help Media Queries]: https://github.com/limitlessloop/postcss-help-media-queries 169 | [React App Rewire PostCSS]: https://github.com/csstools/react-app-rewire-postcss 170 | [React App Rewired]: https://github.com/timarney/react-app-rewired 171 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | # CC0 1.0 Universal 2 | 3 | ## Statement of Purpose 4 | 5 | The laws of most jurisdictions throughout the world automatically confer 6 | exclusive Copyright and Related Rights (defined below) upon the creator and 7 | subsequent owner(s) (each and all, an “owner”) of an original work of 8 | authorship and/or a database (each, a “Work”). 9 | 10 | Certain owners wish to permanently relinquish those rights to a Work for the 11 | purpose of contributing to a commons of creative, cultural and scientific works 12 | (“Commons”) that the public can reliably and without fear of later claims of 13 | infringement build upon, modify, incorporate in other works, reuse and 14 | redistribute as freely as possible in any form whatsoever and for any purposes, 15 | including without limitation commercial purposes. These owners may contribute 16 | to the Commons to promote the ideal of a free culture and the further 17 | production of creative, cultural and scientific works, or to gain reputation or 18 | greater distribution for their Work in part through the use and efforts of 19 | others. 20 | 21 | For these and/or other purposes and motivations, and without any expectation of 22 | additional consideration or compensation, the person associating CC0 with a 23 | Work (the “Affirmer”), to the extent that he or she is an owner of Copyright 24 | and Related Rights in the Work, voluntarily elects to apply CC0 to the Work and 25 | publicly distribute the Work under its terms, with knowledge of his or her 26 | Copyright and Related Rights in the Work and the meaning and intended legal 27 | effect of CC0 on those rights. 28 | 29 | 1. Copyright and Related Rights. A Work made available under CC0 may be 30 | protected by copyright and related or neighboring rights (“Copyright and 31 | Related Rights”). Copyright and Related Rights include, but are not limited 32 | to, the following: 33 | 1. the right to reproduce, adapt, distribute, perform, display, communicate, 34 | and translate a Work; 35 | 2. moral rights retained by the original author(s) and/or performer(s); 36 | 3. publicity and privacy rights pertaining to a person’s image or likeness 37 | depicted in a Work; 38 | 4. rights protecting against unfair competition in regards to a Work, 39 | subject to the limitations in paragraph 4(i), below; 40 | 5. rights protecting the extraction, dissemination, use and reuse of data in 41 | a Work; 42 | 6. database rights (such as those arising under Directive 96/9/EC of the 43 | European Parliament and of the Council of 11 March 1996 on the legal 44 | protection of databases, and under any national implementation thereof, 45 | including any amended or successor version of such directive); and 46 | 7. other similar, equivalent or corresponding rights throughout the world 47 | based on applicable law or treaty, and any national implementations 48 | thereof. 49 | 50 | 2. Waiver. To the greatest extent permitted by, but not in contravention of, 51 | applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and 52 | unconditionally waives, abandons, and surrenders all of Affirmer’s Copyright 53 | and Related Rights and associated claims and causes of action, whether now 54 | known or unknown (including existing as well as future claims and causes of 55 | action), in the Work (i) in all territories worldwide, (ii) for the maximum 56 | duration provided by applicable law or treaty (including future time 57 | extensions), (iii) in any current or future medium and for any number of 58 | copies, and (iv) for any purpose whatsoever, including without limitation 59 | commercial, advertising or promotional purposes (the “Waiver”). Affirmer 60 | makes the Waiver for the benefit of each member of the public at large and 61 | to the detriment of Affirmer’s heirs and successors, fully intending that 62 | such Waiver shall not be subject to revocation, rescission, cancellation, 63 | termination, or any other legal or equitable action to disrupt the quiet 64 | enjoyment of the Work by the public as contemplated by Affirmer’s express 65 | Statement of Purpose. 66 | 67 | 3. Public License Fallback. Should any part of the Waiver for any reason be 68 | judged legally invalid or ineffective under applicable law, then the Waiver 69 | shall be preserved to the maximum extent permitted taking into account 70 | Affirmer’s express Statement of Purpose. In addition, to the extent the 71 | Waiver is so judged Affirmer hereby grants to each affected person a 72 | royalty-free, non transferable, non sublicensable, non exclusive, 73 | irrevocable and unconditional license to exercise Affirmer’s Copyright and 74 | Related Rights in the Work (i) in all territories worldwide, (ii) for the 75 | maximum duration provided by applicable law or treaty (including future time 76 | extensions), (iii) in any current or future medium and for any number of 77 | copies, and (iv) for any purpose whatsoever, including without limitation 78 | commercial, advertising or promotional purposes (the “License”). The License 79 | shall be deemed effective as of the date CC0 was applied by Affirmer to the 80 | Work. Should any part of the License for any reason be judged legally 81 | invalid or ineffective under applicable law, such partial invalidity or 82 | ineffectiveness shall not invalidate the remainder of the License, and in 83 | such case Affirmer hereby affirms that he or she will not (i) exercise any 84 | of his or her remaining Copyright and Related Rights in the Work or (ii) 85 | assert any associated claims and causes of action with respect to the Work, 86 | in either case contrary to Affirmer’s express Statement of Purpose. 87 | 88 | 4. Limitations and Disclaimers. 89 | 1. No trademark or patent rights held by Affirmer are waived, abandoned, 90 | surrendered, licensed or otherwise affected by this document. 91 | 2. Affirmer offers the Work as-is and makes no representations or warranties 92 | of any kind concerning the Work, express, implied, statutory or 93 | otherwise, including without limitation warranties of title, 94 | merchantability, fitness for a particular purpose, non infringement, or 95 | the absence of latent or other defects, accuracy, or the present or 96 | absence of errors, whether or not discoverable, all to the greatest 97 | extent permissible under applicable law. 98 | 3. Affirmer disclaims responsibility for clearing rights of other persons 99 | that may apply to the Work or any use thereof, including without 100 | limitation any person’s Copyright and Related Rights in the Work. 101 | Further, Affirmer disclaims responsibility for obtaining any necessary 102 | consents, permissions or other rights required for any use of the Work. 103 | 4. Affirmer understands and acknowledges that Creative Commons is not a 104 | party to this document and has no duty or obligation with respect to this 105 | CC0 or use of the Work. 106 | 107 | For more information, please see 108 | http://creativecommons.org/publicdomain/zero/1.0/. 109 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PostCSS Help Media Queries [PostCSS][postcss] 2 | 3 | [![NPM Version][npm-img]][npm-url] 4 | [![Build Status][cli-img]][cli-url] 5 | [![Support Chat][git-img]][git-url] 6 | 7 | [PostCSS Help Media Queries] lets you see information about the active breakpoint (media query), screen density and orientation displayed in a tooltip. All generated by CSS. 8 | 9 | ![postcss-help-media-queries](https://user-images.githubusercontent.com/10454741/91659106-ffdb9f80-eacd-11ea-8628-83676d837305.png) 10 | 11 | Add the following at-rule at the top of your CSS to include the help-media-queries tooltip. 12 | 13 | ```pcss 14 | @help-media-queries; 15 | ``` 16 | 17 | ## Usage 18 | 19 | Add [PostCSS Help Media Queries] to your project: 20 | 21 | ```bash 22 | npm install postcss-help-media-queries --save-dev 23 | ``` 24 | 25 | Use **PostCSS Help Media Queries** to process your CSS: 26 | 27 | ```js 28 | const postcssHelpMediaQueries = require('postcss-help-media-queries'); 29 | 30 | postcssHelpMediaQueries.process(YOUR_CSS /*, processOptions, pluginOptions */); 31 | ``` 32 | 33 | Or use it as a [PostCSS] plugin: 34 | 35 | ```js 36 | const postcss = require('postcss'); 37 | const postcssHelpMediaQueries = require('postcss-help-media-queries'); 38 | 39 | postcss([ 40 | postcssHelpMediaQueries(/* pluginOptions */) 41 | ]).process(YOUR_CSS /*, processOptions */); 42 | ``` 43 | 44 | **PostCSS Help Media Queries** runs in all Node environments, with special instructions for: 45 | 46 | | [Node](INSTALL.md#node) | [PostCSS CLI](INSTALL.md#postcss-cli) | [Webpack](INSTALL.md#webpack) | [Create React App](INSTALL.md#create-react-app) | [Gulp](INSTALL.md#gulp) | [Grunt](INSTALL.md#grunt) | 47 | | --- | --- | --- | --- | --- | --- | 48 | 49 | ## Options 50 | 51 |
52 | breakpoints object 53 | Define the custom min-width breakpoints to watch and show inside the tooltip. 54 | 55 | ```js 56 | postcssHelpMediaQueries({ 57 | breakpoints: { 58 | extraSmall: '30em', 59 | small: '48em', 60 | medium: '60em', 61 | large: '80em', 62 | extraLarge: '100em', 63 | // Other breakpoints.. 64 | } 65 | }) 66 | ``` 67 | 68 |
69 | 70 | [cli-img]: https://img.shields.io/travis/limitlessloop/postcss-help-media-queries/master.svg?style=for-the-badge 71 | [cli-url]: https://travis-ci.org/limitlessloop/postcss-help-media-queries 72 | [git-img]: https://img.shields.io/badge/support-chat-blue.svg?style=for-the-badge 73 | [git-url]: https://gitter.im/postcss/postcss 74 | [npm-img]: https://img.shields.io/npm/v/postcss-help-media-queries.svg?style=for-the-badge&colorA=CD4A4A&colorB=B03737 75 | [npm-url]: https://www.npmjs.com/package/postcss-help-media-queries 76 | 77 | [PostCSS]: https://github.com/postcss/postcss 78 | [PostCSS Help Media Queries]: https://github.com/limitlessloop/postcss-help-media-queries 79 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Document 11 | 21 | 22 | 23 | 24 |
25 |

The Carbon in Our Apple Pies

26 |

Galaxies ship of the imagination across the centuries at the edge of forever take root and flourish billions upon 27 | billions. Stirred by starlight how far away not a sunrise but a galaxyrise Sea of Tranquility concept of the 28 | number one dispassionate extraterrestrial observer. The carbon in our apple pies emerged into consciousness Sea of 29 | Tranquility something incredible is waiting to be known made in the interiors of collapsing stars inconspicuous 30 | motes of rock and gas.

31 | 32 |

Great turbulent clouds something incredible is waiting to be known Jean-François Champollion hundreds of 33 | thousands science hearts of the stars. Bits of moving fluff another world brain is the seed of 34 | intelligence how far away bits of moving fluff realm of the galaxies? Cosmic fugue a still more glorious dawn 35 | awaits rings of Uranus dream of the mind's eye not a sunrise but a galaxyrise the only home we've ever known.

36 | 37 |

Quasar intelligent beings cosmic ocean realm of the galaxies Jean-François Champollion descended from 38 | astronomers? Flatland prime number concept of the number one Euclid the carbon in our apple pies bits of 39 | moving fluff. Star stuff harvesting star light inconspicuous motes of rock and gas the ash of stellar 40 | alchemy encyclopaedia galactica bits of moving fluff the only home we've ever known. Made in the interiors of 41 | collapsing stars the ash of stellar alchemy made in the interiors of collapsing stars not a sunrise but a 42 | galaxyrise made in the interiors of collapsing stars something incredible is waiting to be known.

43 | 44 |

Permanence of the stars billions upon billions tingling of the spine culture realm of the galaxies corpus 45 | callosum. Hydrogen atoms rich in mystery vastness is bearable only through love prime number paroxysm of global 46 | death another world. Encyclopaedia galactica emerged into consciousness the sky calls to us at the edge of forever 47 | across the centuries emerged into consciousness. At the edge of forever descended from astronomers vanquish 48 | the impossible descended from astronomers another world invent the universe.

49 | 50 |

Galaxies Hypatia trillion radio telescope paroxysm of global death emerged into consciousness. Vanquish the 51 | impossible Orion's sword hearts of the stars muse about are creatures of the cosmos made in the interiors of 52 | collapsing stars? Made in the interiors of collapsing stars two ghostly white figures in coveralls and helmets are 53 | softly dancing dream of the mind's eye Apollonius of Perga inconspicuous motes of rock and gas 54 | Apollonius of Perga?

55 | 56 |

Not a sunrise but a galaxyrise a very small stage in a vast cosmic arena preserve and cherish that pale blue dot 57 | consciousness shores of the cosmic ocean decipherment? Of brilliant syntheses rich in mystery something incredible 58 | is waiting to be known colonies rings of Uranus hundreds of thousands? From which we spring of brilliant 59 | syntheses extraordinary claims require extraordinary evidence Orion's sword Sea of Tranquility descended from 60 | astronomers.

61 | 62 |

Cosmos of brilliant syntheses Rig Veda rings of Uranus explorations rich in heavy atoms. Shores of the cosmic 63 | ocean extraordinary claims require extraordinary evidence made in the interiors of collapsing stars the 64 | carbon in our apple pies paroxysm of global death realm of the galaxies? Hundreds of thousands globular 65 | star cluster across the centuries a mote of dust suspended in a sunbeam globular star cluster made in the 66 | interiors of collapsing stars.

67 | 68 |

Tunguska event Hypatia dispassionate extraterrestrial observer colonies preserve and cherish that pale blue dot 69 | as a patch of light. A still more glorious dawn awaits the only home we've ever known globular star cluster invent 70 | the universe Cambrian explosion Flatland. Vastness is bearable only through love invent the universe 71 | dream of the mind's eye kindling the energy hidden in matter gathered by gravity inconspicuous motes of rock and 72 | gas.

73 | 74 |

Intelligent beings something incredible is waiting to be known extraordinary claims require extraordinary 75 | evidence a very small stage in a vast cosmic arena realm of the galaxies hundreds of thousands. Vanquish the 76 | impossible astonishment. Tunguska event invent the universe a still more glorious dawn awaits at the edge 77 | of forever? Across the centuries vanquish the impossible bits of moving fluff prime number great turbulent clouds 78 | courage of our questions?

79 | 80 |

Finite but unbounded circumnavigated of brilliant syntheses the carbon in our apple pies trillion cosmic ocean? 81 | Light years how far away vanquish the impossible another world concept of the number one Euclid. Emerged into 82 | consciousness white dwarf citizens of distant epochs Sea of Tranquility great turbulent clouds invent the 83 | universe. Courage of our questions courage of our questions two ghostly white figures in coveralls and hidden in matter Sea of Tranquility and 84 | billions upon billions upon billions upon billions upon billions upon billions upon billions.

85 |
86 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "postcss-help-media-queries", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@babel/code-frame": { 8 | "version": "7.10.4", 9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", 10 | "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", 11 | "dev": true, 12 | "requires": { 13 | "@babel/highlight": "^7.10.4" 14 | } 15 | }, 16 | "@babel/core": { 17 | "version": "7.7.2", 18 | "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.2.tgz", 19 | "integrity": "sha512-eeD7VEZKfhK1KUXGiyPFettgF3m513f8FoBSWiQ1xTvl1RAopLs42Wp9+Ze911I6H0N9lNqJMDgoZT7gHsipeQ==", 20 | "dev": true, 21 | "requires": { 22 | "@babel/code-frame": "^7.5.5", 23 | "@babel/generator": "^7.7.2", 24 | "@babel/helpers": "^7.7.0", 25 | "@babel/parser": "^7.7.2", 26 | "@babel/template": "^7.7.0", 27 | "@babel/traverse": "^7.7.2", 28 | "@babel/types": "^7.7.2", 29 | "convert-source-map": "^1.7.0", 30 | "debug": "^4.1.0", 31 | "json5": "^2.1.0", 32 | "lodash": "^4.17.13", 33 | "resolve": "^1.3.2", 34 | "semver": "^5.4.1", 35 | "source-map": "^0.5.0" 36 | }, 37 | "dependencies": { 38 | "source-map": { 39 | "version": "0.5.7", 40 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 41 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 42 | "dev": true 43 | } 44 | } 45 | }, 46 | "@babel/generator": { 47 | "version": "7.10.5", 48 | "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.5.tgz", 49 | "integrity": "sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig==", 50 | "dev": true, 51 | "requires": { 52 | "@babel/types": "^7.10.5", 53 | "jsesc": "^2.5.1", 54 | "source-map": "^0.5.0" 55 | }, 56 | "dependencies": { 57 | "source-map": { 58 | "version": "0.5.7", 59 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 60 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", 61 | "dev": true 62 | } 63 | } 64 | }, 65 | "@babel/helper-annotate-as-pure": { 66 | "version": "7.10.4", 67 | "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", 68 | "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", 69 | "dev": true, 70 | "requires": { 71 | "@babel/types": "^7.10.4" 72 | } 73 | }, 74 | "@babel/helper-builder-binary-assignment-operator-visitor": { 75 | "version": "7.10.4", 76 | "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", 77 | "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", 78 | "dev": true, 79 | "requires": { 80 | "@babel/helper-explode-assignable-expression": "^7.10.4", 81 | "@babel/types": "^7.10.4" 82 | } 83 | }, 84 | "@babel/helper-create-regexp-features-plugin": { 85 | "version": "7.10.4", 86 | "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz", 87 | "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==", 88 | "dev": true, 89 | "requires": { 90 | "@babel/helper-annotate-as-pure": "^7.10.4", 91 | "@babel/helper-regex": "^7.10.4", 92 | "regexpu-core": "^4.7.0" 93 | } 94 | }, 95 | "@babel/helper-define-map": { 96 | "version": "7.10.5", 97 | "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", 98 | "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", 99 | "dev": true, 100 | "requires": { 101 | "@babel/helper-function-name": "^7.10.4", 102 | "@babel/types": "^7.10.5", 103 | "lodash": "^4.17.19" 104 | } 105 | }, 106 | "@babel/helper-explode-assignable-expression": { 107 | "version": "7.10.4", 108 | "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz", 109 | "integrity": "sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A==", 110 | "dev": true, 111 | "requires": { 112 | "@babel/traverse": "^7.10.4", 113 | "@babel/types": "^7.10.4" 114 | } 115 | }, 116 | "@babel/helper-function-name": { 117 | "version": "7.10.4", 118 | "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", 119 | "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", 120 | "dev": true, 121 | "requires": { 122 | "@babel/helper-get-function-arity": "^7.10.4", 123 | "@babel/template": "^7.10.4", 124 | "@babel/types": "^7.10.4" 125 | } 126 | }, 127 | "@babel/helper-get-function-arity": { 128 | "version": "7.10.4", 129 | "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", 130 | "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", 131 | "dev": true, 132 | "requires": { 133 | "@babel/types": "^7.10.4" 134 | } 135 | }, 136 | "@babel/helper-hoist-variables": { 137 | "version": "7.10.4", 138 | "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", 139 | "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", 140 | "dev": true, 141 | "requires": { 142 | "@babel/types": "^7.10.4" 143 | } 144 | }, 145 | "@babel/helper-member-expression-to-functions": { 146 | "version": "7.10.5", 147 | "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.5.tgz", 148 | "integrity": "sha512-HiqJpYD5+WopCXIAbQDG0zye5XYVvcO9w/DHp5GsaGkRUaamLj2bEtu6i8rnGGprAhHM3qidCMgp71HF4endhA==", 149 | "dev": true, 150 | "requires": { 151 | "@babel/types": "^7.10.5" 152 | } 153 | }, 154 | "@babel/helper-module-imports": { 155 | "version": "7.10.4", 156 | "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz", 157 | "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==", 158 | "dev": true, 159 | "requires": { 160 | "@babel/types": "^7.10.4" 161 | } 162 | }, 163 | "@babel/helper-module-transforms": { 164 | "version": "7.10.5", 165 | "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.5.tgz", 166 | "integrity": "sha512-4P+CWMJ6/j1W915ITJaUkadLObmCRRSC234uctJfn/vHrsLNxsR8dwlcXv9ZhJWzl77awf+mWXSZEKt5t0OnlA==", 167 | "dev": true, 168 | "requires": { 169 | "@babel/helper-module-imports": "^7.10.4", 170 | "@babel/helper-replace-supers": "^7.10.4", 171 | "@babel/helper-simple-access": "^7.10.4", 172 | "@babel/helper-split-export-declaration": "^7.10.4", 173 | "@babel/template": "^7.10.4", 174 | "@babel/types": "^7.10.5", 175 | "lodash": "^4.17.19" 176 | } 177 | }, 178 | "@babel/helper-optimise-call-expression": { 179 | "version": "7.10.4", 180 | "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz", 181 | "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==", 182 | "dev": true, 183 | "requires": { 184 | "@babel/types": "^7.10.4" 185 | } 186 | }, 187 | "@babel/helper-plugin-utils": { 188 | "version": "7.10.4", 189 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", 190 | "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", 191 | "dev": true 192 | }, 193 | "@babel/helper-regex": { 194 | "version": "7.10.5", 195 | "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz", 196 | "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==", 197 | "dev": true, 198 | "requires": { 199 | "lodash": "^4.17.19" 200 | } 201 | }, 202 | "@babel/helper-remap-async-to-generator": { 203 | "version": "7.10.4", 204 | "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz", 205 | "integrity": "sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg==", 206 | "dev": true, 207 | "requires": { 208 | "@babel/helper-annotate-as-pure": "^7.10.4", 209 | "@babel/helper-wrap-function": "^7.10.4", 210 | "@babel/template": "^7.10.4", 211 | "@babel/traverse": "^7.10.4", 212 | "@babel/types": "^7.10.4" 213 | } 214 | }, 215 | "@babel/helper-replace-supers": { 216 | "version": "7.10.4", 217 | "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz", 218 | "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==", 219 | "dev": true, 220 | "requires": { 221 | "@babel/helper-member-expression-to-functions": "^7.10.4", 222 | "@babel/helper-optimise-call-expression": "^7.10.4", 223 | "@babel/traverse": "^7.10.4", 224 | "@babel/types": "^7.10.4" 225 | } 226 | }, 227 | "@babel/helper-simple-access": { 228 | "version": "7.10.4", 229 | "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz", 230 | "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==", 231 | "dev": true, 232 | "requires": { 233 | "@babel/template": "^7.10.4", 234 | "@babel/types": "^7.10.4" 235 | } 236 | }, 237 | "@babel/helper-split-export-declaration": { 238 | "version": "7.10.4", 239 | "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz", 240 | "integrity": "sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg==", 241 | "dev": true, 242 | "requires": { 243 | "@babel/types": "^7.10.4" 244 | } 245 | }, 246 | "@babel/helper-validator-identifier": { 247 | "version": "7.10.4", 248 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", 249 | "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", 250 | "dev": true 251 | }, 252 | "@babel/helper-wrap-function": { 253 | "version": "7.10.4", 254 | "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz", 255 | "integrity": "sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==", 256 | "dev": true, 257 | "requires": { 258 | "@babel/helper-function-name": "^7.10.4", 259 | "@babel/template": "^7.10.4", 260 | "@babel/traverse": "^7.10.4", 261 | "@babel/types": "^7.10.4" 262 | } 263 | }, 264 | "@babel/helpers": { 265 | "version": "7.10.4", 266 | "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz", 267 | "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==", 268 | "dev": true, 269 | "requires": { 270 | "@babel/template": "^7.10.4", 271 | "@babel/traverse": "^7.10.4", 272 | "@babel/types": "^7.10.4" 273 | } 274 | }, 275 | "@babel/highlight": { 276 | "version": "7.10.4", 277 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", 278 | "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", 279 | "dev": true, 280 | "requires": { 281 | "@babel/helper-validator-identifier": "^7.10.4", 282 | "chalk": "^2.0.0", 283 | "js-tokens": "^4.0.0" 284 | } 285 | }, 286 | "@babel/parser": { 287 | "version": "7.10.5", 288 | "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.5.tgz", 289 | "integrity": "sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ==", 290 | "dev": true 291 | }, 292 | "@babel/plugin-proposal-async-generator-functions": { 293 | "version": "7.10.5", 294 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz", 295 | "integrity": "sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==", 296 | "dev": true, 297 | "requires": { 298 | "@babel/helper-plugin-utils": "^7.10.4", 299 | "@babel/helper-remap-async-to-generator": "^7.10.4", 300 | "@babel/plugin-syntax-async-generators": "^7.8.0" 301 | } 302 | }, 303 | "@babel/plugin-proposal-dynamic-import": { 304 | "version": "7.10.4", 305 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz", 306 | "integrity": "sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==", 307 | "dev": true, 308 | "requires": { 309 | "@babel/helper-plugin-utils": "^7.10.4", 310 | "@babel/plugin-syntax-dynamic-import": "^7.8.0" 311 | } 312 | }, 313 | "@babel/plugin-proposal-json-strings": { 314 | "version": "7.10.4", 315 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz", 316 | "integrity": "sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==", 317 | "dev": true, 318 | "requires": { 319 | "@babel/helper-plugin-utils": "^7.10.4", 320 | "@babel/plugin-syntax-json-strings": "^7.8.0" 321 | } 322 | }, 323 | "@babel/plugin-proposal-object-rest-spread": { 324 | "version": "7.10.4", 325 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.4.tgz", 326 | "integrity": "sha512-6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA==", 327 | "dev": true, 328 | "requires": { 329 | "@babel/helper-plugin-utils": "^7.10.4", 330 | "@babel/plugin-syntax-object-rest-spread": "^7.8.0", 331 | "@babel/plugin-transform-parameters": "^7.10.4" 332 | } 333 | }, 334 | "@babel/plugin-proposal-optional-catch-binding": { 335 | "version": "7.10.4", 336 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz", 337 | "integrity": "sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==", 338 | "dev": true, 339 | "requires": { 340 | "@babel/helper-plugin-utils": "^7.10.4", 341 | "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" 342 | } 343 | }, 344 | "@babel/plugin-proposal-unicode-property-regex": { 345 | "version": "7.10.4", 346 | "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz", 347 | "integrity": "sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==", 348 | "dev": true, 349 | "requires": { 350 | "@babel/helper-create-regexp-features-plugin": "^7.10.4", 351 | "@babel/helper-plugin-utils": "^7.10.4" 352 | } 353 | }, 354 | "@babel/plugin-syntax-async-generators": { 355 | "version": "7.8.4", 356 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", 357 | "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", 358 | "dev": true, 359 | "requires": { 360 | "@babel/helper-plugin-utils": "^7.8.0" 361 | } 362 | }, 363 | "@babel/plugin-syntax-dynamic-import": { 364 | "version": "7.8.3", 365 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", 366 | "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", 367 | "dev": true, 368 | "requires": { 369 | "@babel/helper-plugin-utils": "^7.8.0" 370 | } 371 | }, 372 | "@babel/plugin-syntax-json-strings": { 373 | "version": "7.8.3", 374 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", 375 | "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", 376 | "dev": true, 377 | "requires": { 378 | "@babel/helper-plugin-utils": "^7.8.0" 379 | } 380 | }, 381 | "@babel/plugin-syntax-object-rest-spread": { 382 | "version": "7.8.3", 383 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", 384 | "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", 385 | "dev": true, 386 | "requires": { 387 | "@babel/helper-plugin-utils": "^7.8.0" 388 | } 389 | }, 390 | "@babel/plugin-syntax-optional-catch-binding": { 391 | "version": "7.8.3", 392 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", 393 | "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", 394 | "dev": true, 395 | "requires": { 396 | "@babel/helper-plugin-utils": "^7.8.0" 397 | } 398 | }, 399 | "@babel/plugin-syntax-top-level-await": { 400 | "version": "7.10.4", 401 | "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz", 402 | "integrity": "sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==", 403 | "dev": true, 404 | "requires": { 405 | "@babel/helper-plugin-utils": "^7.10.4" 406 | } 407 | }, 408 | "@babel/plugin-transform-arrow-functions": { 409 | "version": "7.10.4", 410 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz", 411 | "integrity": "sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==", 412 | "dev": true, 413 | "requires": { 414 | "@babel/helper-plugin-utils": "^7.10.4" 415 | } 416 | }, 417 | "@babel/plugin-transform-async-to-generator": { 418 | "version": "7.10.4", 419 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz", 420 | "integrity": "sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==", 421 | "dev": true, 422 | "requires": { 423 | "@babel/helper-module-imports": "^7.10.4", 424 | "@babel/helper-plugin-utils": "^7.10.4", 425 | "@babel/helper-remap-async-to-generator": "^7.10.4" 426 | } 427 | }, 428 | "@babel/plugin-transform-block-scoped-functions": { 429 | "version": "7.10.4", 430 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz", 431 | "integrity": "sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==", 432 | "dev": true, 433 | "requires": { 434 | "@babel/helper-plugin-utils": "^7.10.4" 435 | } 436 | }, 437 | "@babel/plugin-transform-block-scoping": { 438 | "version": "7.10.5", 439 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.5.tgz", 440 | "integrity": "sha512-6Ycw3hjpQti0qssQcA6AMSFDHeNJ++R6dIMnpRqUjFeBBTmTDPa8zgF90OVfTvAo11mXZTlVUViY1g8ffrURLg==", 441 | "dev": true, 442 | "requires": { 443 | "@babel/helper-plugin-utils": "^7.10.4" 444 | } 445 | }, 446 | "@babel/plugin-transform-classes": { 447 | "version": "7.10.4", 448 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz", 449 | "integrity": "sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==", 450 | "dev": true, 451 | "requires": { 452 | "@babel/helper-annotate-as-pure": "^7.10.4", 453 | "@babel/helper-define-map": "^7.10.4", 454 | "@babel/helper-function-name": "^7.10.4", 455 | "@babel/helper-optimise-call-expression": "^7.10.4", 456 | "@babel/helper-plugin-utils": "^7.10.4", 457 | "@babel/helper-replace-supers": "^7.10.4", 458 | "@babel/helper-split-export-declaration": "^7.10.4", 459 | "globals": "^11.1.0" 460 | } 461 | }, 462 | "@babel/plugin-transform-computed-properties": { 463 | "version": "7.10.4", 464 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz", 465 | "integrity": "sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==", 466 | "dev": true, 467 | "requires": { 468 | "@babel/helper-plugin-utils": "^7.10.4" 469 | } 470 | }, 471 | "@babel/plugin-transform-destructuring": { 472 | "version": "7.10.4", 473 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz", 474 | "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==", 475 | "dev": true, 476 | "requires": { 477 | "@babel/helper-plugin-utils": "^7.10.4" 478 | } 479 | }, 480 | "@babel/plugin-transform-dotall-regex": { 481 | "version": "7.10.4", 482 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz", 483 | "integrity": "sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==", 484 | "dev": true, 485 | "requires": { 486 | "@babel/helper-create-regexp-features-plugin": "^7.10.4", 487 | "@babel/helper-plugin-utils": "^7.10.4" 488 | } 489 | }, 490 | "@babel/plugin-transform-duplicate-keys": { 491 | "version": "7.10.4", 492 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz", 493 | "integrity": "sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==", 494 | "dev": true, 495 | "requires": { 496 | "@babel/helper-plugin-utils": "^7.10.4" 497 | } 498 | }, 499 | "@babel/plugin-transform-exponentiation-operator": { 500 | "version": "7.10.4", 501 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz", 502 | "integrity": "sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==", 503 | "dev": true, 504 | "requires": { 505 | "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", 506 | "@babel/helper-plugin-utils": "^7.10.4" 507 | } 508 | }, 509 | "@babel/plugin-transform-for-of": { 510 | "version": "7.10.4", 511 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz", 512 | "integrity": "sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==", 513 | "dev": true, 514 | "requires": { 515 | "@babel/helper-plugin-utils": "^7.10.4" 516 | } 517 | }, 518 | "@babel/plugin-transform-function-name": { 519 | "version": "7.10.4", 520 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz", 521 | "integrity": "sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==", 522 | "dev": true, 523 | "requires": { 524 | "@babel/helper-function-name": "^7.10.4", 525 | "@babel/helper-plugin-utils": "^7.10.4" 526 | } 527 | }, 528 | "@babel/plugin-transform-literals": { 529 | "version": "7.10.4", 530 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz", 531 | "integrity": "sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==", 532 | "dev": true, 533 | "requires": { 534 | "@babel/helper-plugin-utils": "^7.10.4" 535 | } 536 | }, 537 | "@babel/plugin-transform-member-expression-literals": { 538 | "version": "7.10.4", 539 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz", 540 | "integrity": "sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==", 541 | "dev": true, 542 | "requires": { 543 | "@babel/helper-plugin-utils": "^7.10.4" 544 | } 545 | }, 546 | "@babel/plugin-transform-modules-amd": { 547 | "version": "7.10.5", 548 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz", 549 | "integrity": "sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==", 550 | "dev": true, 551 | "requires": { 552 | "@babel/helper-module-transforms": "^7.10.5", 553 | "@babel/helper-plugin-utils": "^7.10.4", 554 | "babel-plugin-dynamic-import-node": "^2.3.3" 555 | } 556 | }, 557 | "@babel/plugin-transform-modules-commonjs": { 558 | "version": "7.10.4", 559 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz", 560 | "integrity": "sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==", 561 | "dev": true, 562 | "requires": { 563 | "@babel/helper-module-transforms": "^7.10.4", 564 | "@babel/helper-plugin-utils": "^7.10.4", 565 | "@babel/helper-simple-access": "^7.10.4", 566 | "babel-plugin-dynamic-import-node": "^2.3.3" 567 | } 568 | }, 569 | "@babel/plugin-transform-modules-systemjs": { 570 | "version": "7.10.5", 571 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz", 572 | "integrity": "sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==", 573 | "dev": true, 574 | "requires": { 575 | "@babel/helper-hoist-variables": "^7.10.4", 576 | "@babel/helper-module-transforms": "^7.10.5", 577 | "@babel/helper-plugin-utils": "^7.10.4", 578 | "babel-plugin-dynamic-import-node": "^2.3.3" 579 | } 580 | }, 581 | "@babel/plugin-transform-modules-umd": { 582 | "version": "7.10.4", 583 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz", 584 | "integrity": "sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==", 585 | "dev": true, 586 | "requires": { 587 | "@babel/helper-module-transforms": "^7.10.4", 588 | "@babel/helper-plugin-utils": "^7.10.4" 589 | } 590 | }, 591 | "@babel/plugin-transform-named-capturing-groups-regex": { 592 | "version": "7.10.4", 593 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz", 594 | "integrity": "sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==", 595 | "dev": true, 596 | "requires": { 597 | "@babel/helper-create-regexp-features-plugin": "^7.10.4" 598 | } 599 | }, 600 | "@babel/plugin-transform-new-target": { 601 | "version": "7.10.4", 602 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz", 603 | "integrity": "sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==", 604 | "dev": true, 605 | "requires": { 606 | "@babel/helper-plugin-utils": "^7.10.4" 607 | } 608 | }, 609 | "@babel/plugin-transform-object-super": { 610 | "version": "7.10.4", 611 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz", 612 | "integrity": "sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==", 613 | "dev": true, 614 | "requires": { 615 | "@babel/helper-plugin-utils": "^7.10.4", 616 | "@babel/helper-replace-supers": "^7.10.4" 617 | } 618 | }, 619 | "@babel/plugin-transform-parameters": { 620 | "version": "7.10.5", 621 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz", 622 | "integrity": "sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==", 623 | "dev": true, 624 | "requires": { 625 | "@babel/helper-get-function-arity": "^7.10.4", 626 | "@babel/helper-plugin-utils": "^7.10.4" 627 | } 628 | }, 629 | "@babel/plugin-transform-property-literals": { 630 | "version": "7.10.4", 631 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz", 632 | "integrity": "sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==", 633 | "dev": true, 634 | "requires": { 635 | "@babel/helper-plugin-utils": "^7.10.4" 636 | } 637 | }, 638 | "@babel/plugin-transform-regenerator": { 639 | "version": "7.10.4", 640 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz", 641 | "integrity": "sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==", 642 | "dev": true, 643 | "requires": { 644 | "regenerator-transform": "^0.14.2" 645 | } 646 | }, 647 | "@babel/plugin-transform-reserved-words": { 648 | "version": "7.10.4", 649 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz", 650 | "integrity": "sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==", 651 | "dev": true, 652 | "requires": { 653 | "@babel/helper-plugin-utils": "^7.10.4" 654 | } 655 | }, 656 | "@babel/plugin-transform-shorthand-properties": { 657 | "version": "7.10.4", 658 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz", 659 | "integrity": "sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==", 660 | "dev": true, 661 | "requires": { 662 | "@babel/helper-plugin-utils": "^7.10.4" 663 | } 664 | }, 665 | "@babel/plugin-transform-spread": { 666 | "version": "7.10.4", 667 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.4.tgz", 668 | "integrity": "sha512-1e/51G/Ni+7uH5gktbWv+eCED9pP8ZpRhZB3jOaI3mmzfvJTWHkuyYTv0Z5PYtyM+Tr2Ccr9kUdQxn60fI5WuQ==", 669 | "dev": true, 670 | "requires": { 671 | "@babel/helper-plugin-utils": "^7.10.4" 672 | } 673 | }, 674 | "@babel/plugin-transform-sticky-regex": { 675 | "version": "7.10.4", 676 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz", 677 | "integrity": "sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==", 678 | "dev": true, 679 | "requires": { 680 | "@babel/helper-plugin-utils": "^7.10.4", 681 | "@babel/helper-regex": "^7.10.4" 682 | } 683 | }, 684 | "@babel/plugin-transform-template-literals": { 685 | "version": "7.10.5", 686 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz", 687 | "integrity": "sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==", 688 | "dev": true, 689 | "requires": { 690 | "@babel/helper-annotate-as-pure": "^7.10.4", 691 | "@babel/helper-plugin-utils": "^7.10.4" 692 | } 693 | }, 694 | "@babel/plugin-transform-typeof-symbol": { 695 | "version": "7.10.4", 696 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz", 697 | "integrity": "sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==", 698 | "dev": true, 699 | "requires": { 700 | "@babel/helper-plugin-utils": "^7.10.4" 701 | } 702 | }, 703 | "@babel/plugin-transform-unicode-regex": { 704 | "version": "7.10.4", 705 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz", 706 | "integrity": "sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==", 707 | "dev": true, 708 | "requires": { 709 | "@babel/helper-create-regexp-features-plugin": "^7.10.4", 710 | "@babel/helper-plugin-utils": "^7.10.4" 711 | } 712 | }, 713 | "@babel/preset-env": { 714 | "version": "7.7.1", 715 | "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.1.tgz", 716 | "integrity": "sha512-/93SWhi3PxcVTDpSqC+Dp4YxUu3qZ4m7I76k0w73wYfn7bGVuRIO4QUz95aJksbS+AD1/mT1Ie7rbkT0wSplaA==", 717 | "dev": true, 718 | "requires": { 719 | "@babel/helper-module-imports": "^7.7.0", 720 | "@babel/helper-plugin-utils": "^7.0.0", 721 | "@babel/plugin-proposal-async-generator-functions": "^7.7.0", 722 | "@babel/plugin-proposal-dynamic-import": "^7.7.0", 723 | "@babel/plugin-proposal-json-strings": "^7.2.0", 724 | "@babel/plugin-proposal-object-rest-spread": "^7.6.2", 725 | "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", 726 | "@babel/plugin-proposal-unicode-property-regex": "^7.7.0", 727 | "@babel/plugin-syntax-async-generators": "^7.2.0", 728 | "@babel/plugin-syntax-dynamic-import": "^7.2.0", 729 | "@babel/plugin-syntax-json-strings": "^7.2.0", 730 | "@babel/plugin-syntax-object-rest-spread": "^7.2.0", 731 | "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", 732 | "@babel/plugin-syntax-top-level-await": "^7.7.0", 733 | "@babel/plugin-transform-arrow-functions": "^7.2.0", 734 | "@babel/plugin-transform-async-to-generator": "^7.7.0", 735 | "@babel/plugin-transform-block-scoped-functions": "^7.2.0", 736 | "@babel/plugin-transform-block-scoping": "^7.6.3", 737 | "@babel/plugin-transform-classes": "^7.7.0", 738 | "@babel/plugin-transform-computed-properties": "^7.2.0", 739 | "@babel/plugin-transform-destructuring": "^7.6.0", 740 | "@babel/plugin-transform-dotall-regex": "^7.7.0", 741 | "@babel/plugin-transform-duplicate-keys": "^7.5.0", 742 | "@babel/plugin-transform-exponentiation-operator": "^7.2.0", 743 | "@babel/plugin-transform-for-of": "^7.4.4", 744 | "@babel/plugin-transform-function-name": "^7.7.0", 745 | "@babel/plugin-transform-literals": "^7.2.0", 746 | "@babel/plugin-transform-member-expression-literals": "^7.2.0", 747 | "@babel/plugin-transform-modules-amd": "^7.5.0", 748 | "@babel/plugin-transform-modules-commonjs": "^7.7.0", 749 | "@babel/plugin-transform-modules-systemjs": "^7.7.0", 750 | "@babel/plugin-transform-modules-umd": "^7.7.0", 751 | "@babel/plugin-transform-named-capturing-groups-regex": "^7.7.0", 752 | "@babel/plugin-transform-new-target": "^7.4.4", 753 | "@babel/plugin-transform-object-super": "^7.5.5", 754 | "@babel/plugin-transform-parameters": "^7.4.4", 755 | "@babel/plugin-transform-property-literals": "^7.2.0", 756 | "@babel/plugin-transform-regenerator": "^7.7.0", 757 | "@babel/plugin-transform-reserved-words": "^7.2.0", 758 | "@babel/plugin-transform-shorthand-properties": "^7.2.0", 759 | "@babel/plugin-transform-spread": "^7.6.2", 760 | "@babel/plugin-transform-sticky-regex": "^7.2.0", 761 | "@babel/plugin-transform-template-literals": "^7.4.4", 762 | "@babel/plugin-transform-typeof-symbol": "^7.2.0", 763 | "@babel/plugin-transform-unicode-regex": "^7.7.0", 764 | "@babel/types": "^7.7.1", 765 | "browserslist": "^4.6.0", 766 | "core-js-compat": "^3.1.1", 767 | "invariant": "^2.2.2", 768 | "js-levenshtein": "^1.1.3", 769 | "semver": "^5.5.0" 770 | } 771 | }, 772 | "@babel/runtime": { 773 | "version": "7.10.5", 774 | "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.5.tgz", 775 | "integrity": "sha512-otddXKhdNn7d0ptoFRHtMLa8LqDxLYwTjB4nYgM1yy5N6gU/MUf8zqyyLltCH3yAVitBzmwK4us+DD0l/MauAg==", 776 | "dev": true, 777 | "requires": { 778 | "regenerator-runtime": "^0.13.4" 779 | } 780 | }, 781 | "@babel/template": { 782 | "version": "7.10.4", 783 | "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz", 784 | "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==", 785 | "dev": true, 786 | "requires": { 787 | "@babel/code-frame": "^7.10.4", 788 | "@babel/parser": "^7.10.4", 789 | "@babel/types": "^7.10.4" 790 | } 791 | }, 792 | "@babel/traverse": { 793 | "version": "7.10.5", 794 | "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.5.tgz", 795 | "integrity": "sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ==", 796 | "dev": true, 797 | "requires": { 798 | "@babel/code-frame": "^7.10.4", 799 | "@babel/generator": "^7.10.5", 800 | "@babel/helper-function-name": "^7.10.4", 801 | "@babel/helper-split-export-declaration": "^7.10.4", 802 | "@babel/parser": "^7.10.5", 803 | "@babel/types": "^7.10.5", 804 | "debug": "^4.1.0", 805 | "globals": "^11.1.0", 806 | "lodash": "^4.17.19" 807 | } 808 | }, 809 | "@babel/types": { 810 | "version": "7.10.5", 811 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.5.tgz", 812 | "integrity": "sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q==", 813 | "dev": true, 814 | "requires": { 815 | "@babel/helper-validator-identifier": "^7.10.4", 816 | "lodash": "^4.17.19", 817 | "to-fast-properties": "^2.0.0" 818 | } 819 | }, 820 | "@types/color-name": { 821 | "version": "1.1.1", 822 | "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", 823 | "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", 824 | "dev": true 825 | }, 826 | "@types/estree": { 827 | "version": "0.0.45", 828 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.45.tgz", 829 | "integrity": "sha512-jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g==", 830 | "dev": true 831 | }, 832 | "@types/node": { 833 | "version": "14.0.24", 834 | "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.24.tgz", 835 | "integrity": "sha512-btt/oNOiDWcSuI721MdL8VQGnjsKjlTMdrKyTcLCKeQp/n4AAMFJ961wMbp+09y8WuGPClDEv07RIItdXKIXAA==", 836 | "dev": true 837 | }, 838 | "acorn": { 839 | "version": "7.3.1", 840 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz", 841 | "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==", 842 | "dev": true 843 | }, 844 | "acorn-jsx": { 845 | "version": "5.2.0", 846 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", 847 | "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", 848 | "dev": true 849 | }, 850 | "ajv": { 851 | "version": "6.12.3", 852 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", 853 | "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", 854 | "dev": true, 855 | "requires": { 856 | "fast-deep-equal": "^3.1.1", 857 | "fast-json-stable-stringify": "^2.0.0", 858 | "json-schema-traverse": "^0.4.1", 859 | "uri-js": "^4.2.2" 860 | } 861 | }, 862 | "ansi-escapes": { 863 | "version": "4.3.1", 864 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", 865 | "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", 866 | "dev": true, 867 | "requires": { 868 | "type-fest": "^0.11.0" 869 | } 870 | }, 871 | "ansi-regex": { 872 | "version": "5.0.0", 873 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", 874 | "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", 875 | "dev": true 876 | }, 877 | "ansi-styles": { 878 | "version": "3.2.1", 879 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 880 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 881 | "requires": { 882 | "color-convert": "^1.9.0" 883 | } 884 | }, 885 | "argparse": { 886 | "version": "1.0.10", 887 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", 888 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 889 | "dev": true, 890 | "requires": { 891 | "sprintf-js": "~1.0.2" 892 | } 893 | }, 894 | "astral-regex": { 895 | "version": "1.0.0", 896 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", 897 | "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", 898 | "dev": true 899 | }, 900 | "babel-eslint": { 901 | "version": "10.0.3", 902 | "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.0.3.tgz", 903 | "integrity": "sha512-z3U7eMY6r/3f3/JB9mTsLjyxrv0Yb1zb8PCWCLpguxfCzBIZUwy23R1t/XKewP+8mEN2Ck8Dtr4q20z6ce6SoA==", 904 | "dev": true, 905 | "requires": { 906 | "@babel/code-frame": "^7.0.0", 907 | "@babel/parser": "^7.0.0", 908 | "@babel/traverse": "^7.0.0", 909 | "@babel/types": "^7.0.0", 910 | "eslint-visitor-keys": "^1.0.0", 911 | "resolve": "^1.12.0" 912 | } 913 | }, 914 | "babel-plugin-dynamic-import-node": { 915 | "version": "2.3.3", 916 | "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", 917 | "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", 918 | "dev": true, 919 | "requires": { 920 | "object.assign": "^4.1.0" 921 | } 922 | }, 923 | "balanced-match": { 924 | "version": "1.0.0", 925 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 926 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 927 | "dev": true 928 | }, 929 | "brace-expansion": { 930 | "version": "1.1.11", 931 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 932 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 933 | "dev": true, 934 | "requires": { 935 | "balanced-match": "^1.0.0", 936 | "concat-map": "0.0.1" 937 | } 938 | }, 939 | "browserslist": { 940 | "version": "4.13.0", 941 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz", 942 | "integrity": "sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ==", 943 | "dev": true, 944 | "requires": { 945 | "caniuse-lite": "^1.0.30001093", 946 | "electron-to-chromium": "^1.3.488", 947 | "escalade": "^3.0.1", 948 | "node-releases": "^1.1.58" 949 | } 950 | }, 951 | "buffer-from": { 952 | "version": "1.1.1", 953 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", 954 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", 955 | "dev": true 956 | }, 957 | "callsites": { 958 | "version": "3.1.0", 959 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 960 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 961 | "dev": true 962 | }, 963 | "caniuse-lite": { 964 | "version": "1.0.30001105", 965 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001105.tgz", 966 | "integrity": "sha512-JupOe6+dGMr7E20siZHIZQwYqrllxotAhiaej96y6x00b/48rPt42o+SzOSCPbrpsDWvRja40Hwrj0g0q6LZJg==", 967 | "dev": true 968 | }, 969 | "chalk": { 970 | "version": "2.4.2", 971 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 972 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 973 | "requires": { 974 | "ansi-styles": "^3.2.1", 975 | "escape-string-regexp": "^1.0.5", 976 | "supports-color": "^5.3.0" 977 | }, 978 | "dependencies": { 979 | "supports-color": { 980 | "version": "5.5.0", 981 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 982 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 983 | "requires": { 984 | "has-flag": "^3.0.0" 985 | } 986 | } 987 | } 988 | }, 989 | "chardet": { 990 | "version": "0.7.0", 991 | "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", 992 | "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", 993 | "dev": true 994 | }, 995 | "cli-cursor": { 996 | "version": "3.1.0", 997 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", 998 | "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", 999 | "dev": true, 1000 | "requires": { 1001 | "restore-cursor": "^3.1.0" 1002 | } 1003 | }, 1004 | "cli-width": { 1005 | "version": "3.0.0", 1006 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", 1007 | "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", 1008 | "dev": true 1009 | }, 1010 | "color-convert": { 1011 | "version": "1.9.3", 1012 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 1013 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 1014 | "requires": { 1015 | "color-name": "1.1.3" 1016 | } 1017 | }, 1018 | "color-name": { 1019 | "version": "1.1.3", 1020 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 1021 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" 1022 | }, 1023 | "concat-map": { 1024 | "version": "0.0.1", 1025 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 1026 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 1027 | "dev": true 1028 | }, 1029 | "concat-stream": { 1030 | "version": "1.6.2", 1031 | "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", 1032 | "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", 1033 | "dev": true, 1034 | "requires": { 1035 | "buffer-from": "^1.0.0", 1036 | "inherits": "^2.0.3", 1037 | "readable-stream": "^2.2.2", 1038 | "typedarray": "^0.0.6" 1039 | } 1040 | }, 1041 | "convert-source-map": { 1042 | "version": "1.7.0", 1043 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", 1044 | "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", 1045 | "dev": true, 1046 | "requires": { 1047 | "safe-buffer": "~5.1.1" 1048 | } 1049 | }, 1050 | "core-js-compat": { 1051 | "version": "3.6.5", 1052 | "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz", 1053 | "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==", 1054 | "dev": true, 1055 | "requires": { 1056 | "browserslist": "^4.8.5", 1057 | "semver": "7.0.0" 1058 | }, 1059 | "dependencies": { 1060 | "semver": { 1061 | "version": "7.0.0", 1062 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", 1063 | "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", 1064 | "dev": true 1065 | } 1066 | } 1067 | }, 1068 | "core-util-is": { 1069 | "version": "1.0.2", 1070 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 1071 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", 1072 | "dev": true 1073 | }, 1074 | "cross-spawn": { 1075 | "version": "6.0.5", 1076 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", 1077 | "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", 1078 | "dev": true, 1079 | "requires": { 1080 | "nice-try": "^1.0.4", 1081 | "path-key": "^2.0.1", 1082 | "semver": "^5.5.0", 1083 | "shebang-command": "^1.2.0", 1084 | "which": "^1.2.9" 1085 | } 1086 | }, 1087 | "debug": { 1088 | "version": "4.1.1", 1089 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", 1090 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", 1091 | "dev": true, 1092 | "requires": { 1093 | "ms": "^2.1.1" 1094 | } 1095 | }, 1096 | "deep-is": { 1097 | "version": "0.1.3", 1098 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", 1099 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", 1100 | "dev": true 1101 | }, 1102 | "define-properties": { 1103 | "version": "1.1.3", 1104 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", 1105 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", 1106 | "dev": true, 1107 | "requires": { 1108 | "object-keys": "^1.0.12" 1109 | } 1110 | }, 1111 | "doctrine": { 1112 | "version": "3.0.0", 1113 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", 1114 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", 1115 | "dev": true, 1116 | "requires": { 1117 | "esutils": "^2.0.2" 1118 | } 1119 | }, 1120 | "electron-to-chromium": { 1121 | "version": "1.3.505", 1122 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.505.tgz", 1123 | "integrity": "sha512-Aunrp3HWtmdiJLIl+IPSFtEvJ/4Q9a3eKaxmzCthaZF1gbTbpHUTCU2zOVnFPH7r/AD7zQXyuFidYXzSHXBdsw==", 1124 | "dev": true 1125 | }, 1126 | "emoji-regex": { 1127 | "version": "8.0.0", 1128 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", 1129 | "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", 1130 | "dev": true 1131 | }, 1132 | "escalade": { 1133 | "version": "3.0.2", 1134 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz", 1135 | "integrity": "sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==", 1136 | "dev": true 1137 | }, 1138 | "escape-string-regexp": { 1139 | "version": "1.0.5", 1140 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1141 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" 1142 | }, 1143 | "eslint": { 1144 | "version": "6.6.0", 1145 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.6.0.tgz", 1146 | "integrity": "sha512-PpEBq7b6qY/qrOmpYQ/jTMDYfuQMELR4g4WI1M/NaSDDD/bdcMb+dj4Hgks7p41kW2caXsPsEZAEAyAgjVVC0g==", 1147 | "dev": true, 1148 | "requires": { 1149 | "@babel/code-frame": "^7.0.0", 1150 | "ajv": "^6.10.0", 1151 | "chalk": "^2.1.0", 1152 | "cross-spawn": "^6.0.5", 1153 | "debug": "^4.0.1", 1154 | "doctrine": "^3.0.0", 1155 | "eslint-scope": "^5.0.0", 1156 | "eslint-utils": "^1.4.3", 1157 | "eslint-visitor-keys": "^1.1.0", 1158 | "espree": "^6.1.2", 1159 | "esquery": "^1.0.1", 1160 | "esutils": "^2.0.2", 1161 | "file-entry-cache": "^5.0.1", 1162 | "functional-red-black-tree": "^1.0.1", 1163 | "glob-parent": "^5.0.0", 1164 | "globals": "^11.7.0", 1165 | "ignore": "^4.0.6", 1166 | "import-fresh": "^3.0.0", 1167 | "imurmurhash": "^0.1.4", 1168 | "inquirer": "^7.0.0", 1169 | "is-glob": "^4.0.0", 1170 | "js-yaml": "^3.13.1", 1171 | "json-stable-stringify-without-jsonify": "^1.0.1", 1172 | "levn": "^0.3.0", 1173 | "lodash": "^4.17.14", 1174 | "minimatch": "^3.0.4", 1175 | "mkdirp": "^0.5.1", 1176 | "natural-compare": "^1.4.0", 1177 | "optionator": "^0.8.2", 1178 | "progress": "^2.0.0", 1179 | "regexpp": "^2.0.1", 1180 | "semver": "^6.1.2", 1181 | "strip-ansi": "^5.2.0", 1182 | "strip-json-comments": "^3.0.1", 1183 | "table": "^5.2.3", 1184 | "text-table": "^0.2.0", 1185 | "v8-compile-cache": "^2.0.3" 1186 | }, 1187 | "dependencies": { 1188 | "semver": { 1189 | "version": "6.3.0", 1190 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", 1191 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", 1192 | "dev": true 1193 | } 1194 | } 1195 | }, 1196 | "eslint-scope": { 1197 | "version": "5.1.0", 1198 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", 1199 | "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", 1200 | "dev": true, 1201 | "requires": { 1202 | "esrecurse": "^4.1.0", 1203 | "estraverse": "^4.1.1" 1204 | } 1205 | }, 1206 | "eslint-utils": { 1207 | "version": "1.4.3", 1208 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", 1209 | "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", 1210 | "dev": true, 1211 | "requires": { 1212 | "eslint-visitor-keys": "^1.1.0" 1213 | } 1214 | }, 1215 | "eslint-visitor-keys": { 1216 | "version": "1.3.0", 1217 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", 1218 | "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", 1219 | "dev": true 1220 | }, 1221 | "espree": { 1222 | "version": "6.2.1", 1223 | "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", 1224 | "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", 1225 | "dev": true, 1226 | "requires": { 1227 | "acorn": "^7.1.1", 1228 | "acorn-jsx": "^5.2.0", 1229 | "eslint-visitor-keys": "^1.1.0" 1230 | } 1231 | }, 1232 | "esprima": { 1233 | "version": "4.0.1", 1234 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 1235 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", 1236 | "dev": true 1237 | }, 1238 | "esquery": { 1239 | "version": "1.3.1", 1240 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", 1241 | "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", 1242 | "dev": true, 1243 | "requires": { 1244 | "estraverse": "^5.1.0" 1245 | }, 1246 | "dependencies": { 1247 | "estraverse": { 1248 | "version": "5.1.0", 1249 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz", 1250 | "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==", 1251 | "dev": true 1252 | } 1253 | } 1254 | }, 1255 | "esrecurse": { 1256 | "version": "4.2.1", 1257 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", 1258 | "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", 1259 | "dev": true, 1260 | "requires": { 1261 | "estraverse": "^4.1.0" 1262 | } 1263 | }, 1264 | "estraverse": { 1265 | "version": "4.3.0", 1266 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", 1267 | "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", 1268 | "dev": true 1269 | }, 1270 | "estree-walker": { 1271 | "version": "0.6.1", 1272 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", 1273 | "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", 1274 | "dev": true 1275 | }, 1276 | "esutils": { 1277 | "version": "2.0.3", 1278 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", 1279 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", 1280 | "dev": true 1281 | }, 1282 | "external-editor": { 1283 | "version": "3.1.0", 1284 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", 1285 | "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", 1286 | "dev": true, 1287 | "requires": { 1288 | "chardet": "^0.7.0", 1289 | "iconv-lite": "^0.4.24", 1290 | "tmp": "^0.0.33" 1291 | } 1292 | }, 1293 | "fast-deep-equal": { 1294 | "version": "3.1.3", 1295 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", 1296 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", 1297 | "dev": true 1298 | }, 1299 | "fast-json-stable-stringify": { 1300 | "version": "2.1.0", 1301 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", 1302 | "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", 1303 | "dev": true 1304 | }, 1305 | "fast-levenshtein": { 1306 | "version": "2.0.6", 1307 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 1308 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 1309 | "dev": true 1310 | }, 1311 | "figures": { 1312 | "version": "3.2.0", 1313 | "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", 1314 | "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", 1315 | "dev": true, 1316 | "requires": { 1317 | "escape-string-regexp": "^1.0.5" 1318 | } 1319 | }, 1320 | "file-entry-cache": { 1321 | "version": "5.0.1", 1322 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", 1323 | "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", 1324 | "dev": true, 1325 | "requires": { 1326 | "flat-cache": "^2.0.1" 1327 | } 1328 | }, 1329 | "flat-cache": { 1330 | "version": "2.0.1", 1331 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", 1332 | "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", 1333 | "dev": true, 1334 | "requires": { 1335 | "flatted": "^2.0.0", 1336 | "rimraf": "2.6.3", 1337 | "write": "1.0.3" 1338 | } 1339 | }, 1340 | "flatted": { 1341 | "version": "2.0.2", 1342 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", 1343 | "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", 1344 | "dev": true 1345 | }, 1346 | "fs.realpath": { 1347 | "version": "1.0.0", 1348 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1349 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 1350 | "dev": true 1351 | }, 1352 | "function-bind": { 1353 | "version": "1.1.1", 1354 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1355 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 1356 | "dev": true 1357 | }, 1358 | "functional-red-black-tree": { 1359 | "version": "1.0.1", 1360 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", 1361 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", 1362 | "dev": true 1363 | }, 1364 | "glob": { 1365 | "version": "7.1.6", 1366 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 1367 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 1368 | "dev": true, 1369 | "requires": { 1370 | "fs.realpath": "^1.0.0", 1371 | "inflight": "^1.0.4", 1372 | "inherits": "2", 1373 | "minimatch": "^3.0.4", 1374 | "once": "^1.3.0", 1375 | "path-is-absolute": "^1.0.0" 1376 | } 1377 | }, 1378 | "glob-parent": { 1379 | "version": "5.1.1", 1380 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", 1381 | "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", 1382 | "dev": true, 1383 | "requires": { 1384 | "is-glob": "^4.0.1" 1385 | } 1386 | }, 1387 | "globals": { 1388 | "version": "11.12.0", 1389 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 1390 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", 1391 | "dev": true 1392 | }, 1393 | "has-flag": { 1394 | "version": "3.0.0", 1395 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 1396 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" 1397 | }, 1398 | "has-symbols": { 1399 | "version": "1.0.1", 1400 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", 1401 | "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", 1402 | "dev": true 1403 | }, 1404 | "iconv-lite": { 1405 | "version": "0.4.24", 1406 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 1407 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 1408 | "dev": true, 1409 | "requires": { 1410 | "safer-buffer": ">= 2.1.2 < 3" 1411 | } 1412 | }, 1413 | "ignore": { 1414 | "version": "4.0.6", 1415 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", 1416 | "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", 1417 | "dev": true 1418 | }, 1419 | "import-fresh": { 1420 | "version": "3.2.1", 1421 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", 1422 | "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", 1423 | "dev": true, 1424 | "requires": { 1425 | "parent-module": "^1.0.0", 1426 | "resolve-from": "^4.0.0" 1427 | } 1428 | }, 1429 | "imurmurhash": { 1430 | "version": "0.1.4", 1431 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 1432 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 1433 | "dev": true 1434 | }, 1435 | "inflight": { 1436 | "version": "1.0.6", 1437 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1438 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1439 | "dev": true, 1440 | "requires": { 1441 | "once": "^1.3.0", 1442 | "wrappy": "1" 1443 | } 1444 | }, 1445 | "inherits": { 1446 | "version": "2.0.4", 1447 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 1448 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 1449 | "dev": true 1450 | }, 1451 | "inquirer": { 1452 | "version": "7.3.3", 1453 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", 1454 | "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", 1455 | "dev": true, 1456 | "requires": { 1457 | "ansi-escapes": "^4.2.1", 1458 | "chalk": "^4.1.0", 1459 | "cli-cursor": "^3.1.0", 1460 | "cli-width": "^3.0.0", 1461 | "external-editor": "^3.0.3", 1462 | "figures": "^3.0.0", 1463 | "lodash": "^4.17.19", 1464 | "mute-stream": "0.0.8", 1465 | "run-async": "^2.4.0", 1466 | "rxjs": "^6.6.0", 1467 | "string-width": "^4.1.0", 1468 | "strip-ansi": "^6.0.0", 1469 | "through": "^2.3.6" 1470 | }, 1471 | "dependencies": { 1472 | "ansi-styles": { 1473 | "version": "4.2.1", 1474 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", 1475 | "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", 1476 | "dev": true, 1477 | "requires": { 1478 | "@types/color-name": "^1.1.1", 1479 | "color-convert": "^2.0.1" 1480 | } 1481 | }, 1482 | "chalk": { 1483 | "version": "4.1.0", 1484 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", 1485 | "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", 1486 | "dev": true, 1487 | "requires": { 1488 | "ansi-styles": "^4.1.0", 1489 | "supports-color": "^7.1.0" 1490 | } 1491 | }, 1492 | "color-convert": { 1493 | "version": "2.0.1", 1494 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 1495 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 1496 | "dev": true, 1497 | "requires": { 1498 | "color-name": "~1.1.4" 1499 | } 1500 | }, 1501 | "color-name": { 1502 | "version": "1.1.4", 1503 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 1504 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 1505 | "dev": true 1506 | }, 1507 | "has-flag": { 1508 | "version": "4.0.0", 1509 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 1510 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 1511 | "dev": true 1512 | }, 1513 | "strip-ansi": { 1514 | "version": "6.0.0", 1515 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", 1516 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", 1517 | "dev": true, 1518 | "requires": { 1519 | "ansi-regex": "^5.0.0" 1520 | } 1521 | }, 1522 | "supports-color": { 1523 | "version": "7.1.0", 1524 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", 1525 | "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", 1526 | "dev": true, 1527 | "requires": { 1528 | "has-flag": "^4.0.0" 1529 | } 1530 | } 1531 | } 1532 | }, 1533 | "invariant": { 1534 | "version": "2.2.4", 1535 | "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", 1536 | "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", 1537 | "dev": true, 1538 | "requires": { 1539 | "loose-envify": "^1.0.0" 1540 | } 1541 | }, 1542 | "is-extglob": { 1543 | "version": "2.1.1", 1544 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 1545 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 1546 | "dev": true 1547 | }, 1548 | "is-fullwidth-code-point": { 1549 | "version": "3.0.0", 1550 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", 1551 | "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", 1552 | "dev": true 1553 | }, 1554 | "is-glob": { 1555 | "version": "4.0.1", 1556 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", 1557 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", 1558 | "dev": true, 1559 | "requires": { 1560 | "is-extglob": "^2.1.1" 1561 | } 1562 | }, 1563 | "isarray": { 1564 | "version": "1.0.0", 1565 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 1566 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", 1567 | "dev": true 1568 | }, 1569 | "isexe": { 1570 | "version": "2.0.0", 1571 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 1572 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 1573 | "dev": true 1574 | }, 1575 | "js-levenshtein": { 1576 | "version": "1.1.6", 1577 | "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", 1578 | "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", 1579 | "dev": true 1580 | }, 1581 | "js-tokens": { 1582 | "version": "4.0.0", 1583 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 1584 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 1585 | "dev": true 1586 | }, 1587 | "js-yaml": { 1588 | "version": "3.14.0", 1589 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", 1590 | "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", 1591 | "dev": true, 1592 | "requires": { 1593 | "argparse": "^1.0.7", 1594 | "esprima": "^4.0.0" 1595 | } 1596 | }, 1597 | "jsesc": { 1598 | "version": "2.5.2", 1599 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", 1600 | "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", 1601 | "dev": true 1602 | }, 1603 | "json-schema-traverse": { 1604 | "version": "0.4.1", 1605 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 1606 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 1607 | "dev": true 1608 | }, 1609 | "json-stable-stringify-without-jsonify": { 1610 | "version": "1.0.1", 1611 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 1612 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", 1613 | "dev": true 1614 | }, 1615 | "json5": { 1616 | "version": "2.1.3", 1617 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", 1618 | "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", 1619 | "dev": true, 1620 | "requires": { 1621 | "minimist": "^1.2.5" 1622 | } 1623 | }, 1624 | "levn": { 1625 | "version": "0.3.0", 1626 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", 1627 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", 1628 | "dev": true, 1629 | "requires": { 1630 | "prelude-ls": "~1.1.2", 1631 | "type-check": "~0.3.2" 1632 | } 1633 | }, 1634 | "lodash": { 1635 | "version": "4.17.19", 1636 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", 1637 | "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==", 1638 | "dev": true 1639 | }, 1640 | "loose-envify": { 1641 | "version": "1.4.0", 1642 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 1643 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 1644 | "dev": true, 1645 | "requires": { 1646 | "js-tokens": "^3.0.0 || ^4.0.0" 1647 | } 1648 | }, 1649 | "lru-cache": { 1650 | "version": "4.1.5", 1651 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", 1652 | "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", 1653 | "dev": true, 1654 | "requires": { 1655 | "pseudomap": "^1.0.2", 1656 | "yallist": "^2.1.2" 1657 | } 1658 | }, 1659 | "mimic-fn": { 1660 | "version": "2.1.0", 1661 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", 1662 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", 1663 | "dev": true 1664 | }, 1665 | "minimatch": { 1666 | "version": "3.0.4", 1667 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 1668 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 1669 | "dev": true, 1670 | "requires": { 1671 | "brace-expansion": "^1.1.7" 1672 | } 1673 | }, 1674 | "minimist": { 1675 | "version": "1.2.5", 1676 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", 1677 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", 1678 | "dev": true 1679 | }, 1680 | "mkdirp": { 1681 | "version": "0.5.5", 1682 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", 1683 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", 1684 | "dev": true, 1685 | "requires": { 1686 | "minimist": "^1.2.5" 1687 | } 1688 | }, 1689 | "ms": { 1690 | "version": "2.1.2", 1691 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", 1692 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", 1693 | "dev": true 1694 | }, 1695 | "mute-stream": { 1696 | "version": "0.0.8", 1697 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", 1698 | "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", 1699 | "dev": true 1700 | }, 1701 | "natural-compare": { 1702 | "version": "1.4.0", 1703 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 1704 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 1705 | "dev": true 1706 | }, 1707 | "nice-try": { 1708 | "version": "1.0.5", 1709 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", 1710 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", 1711 | "dev": true 1712 | }, 1713 | "node-releases": { 1714 | "version": "1.1.60", 1715 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.60.tgz", 1716 | "integrity": "sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA==", 1717 | "dev": true 1718 | }, 1719 | "object-keys": { 1720 | "version": "1.1.1", 1721 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", 1722 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", 1723 | "dev": true 1724 | }, 1725 | "object.assign": { 1726 | "version": "4.1.0", 1727 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", 1728 | "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", 1729 | "dev": true, 1730 | "requires": { 1731 | "define-properties": "^1.1.2", 1732 | "function-bind": "^1.1.1", 1733 | "has-symbols": "^1.0.0", 1734 | "object-keys": "^1.0.11" 1735 | } 1736 | }, 1737 | "once": { 1738 | "version": "1.4.0", 1739 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 1740 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 1741 | "dev": true, 1742 | "requires": { 1743 | "wrappy": "1" 1744 | } 1745 | }, 1746 | "onetime": { 1747 | "version": "5.1.0", 1748 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", 1749 | "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", 1750 | "dev": true, 1751 | "requires": { 1752 | "mimic-fn": "^2.1.0" 1753 | } 1754 | }, 1755 | "optionator": { 1756 | "version": "0.8.3", 1757 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", 1758 | "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", 1759 | "dev": true, 1760 | "requires": { 1761 | "deep-is": "~0.1.3", 1762 | "fast-levenshtein": "~2.0.6", 1763 | "levn": "~0.3.0", 1764 | "prelude-ls": "~1.1.2", 1765 | "type-check": "~0.3.2", 1766 | "word-wrap": "~1.2.3" 1767 | } 1768 | }, 1769 | "os-shim": { 1770 | "version": "0.1.3", 1771 | "resolved": "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz", 1772 | "integrity": "sha1-a2LDeRz3kJ6jXtRuF2WLtBfLORc=", 1773 | "dev": true 1774 | }, 1775 | "os-tmpdir": { 1776 | "version": "1.0.2", 1777 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 1778 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 1779 | "dev": true 1780 | }, 1781 | "parent-module": { 1782 | "version": "1.0.1", 1783 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 1784 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 1785 | "dev": true, 1786 | "requires": { 1787 | "callsites": "^3.0.0" 1788 | } 1789 | }, 1790 | "path-is-absolute": { 1791 | "version": "1.0.1", 1792 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 1793 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 1794 | "dev": true 1795 | }, 1796 | "path-key": { 1797 | "version": "2.0.1", 1798 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 1799 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", 1800 | "dev": true 1801 | }, 1802 | "path-parse": { 1803 | "version": "1.0.6", 1804 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", 1805 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", 1806 | "dev": true 1807 | }, 1808 | "postcss": { 1809 | "version": "7.0.21", 1810 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz", 1811 | "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==", 1812 | "requires": { 1813 | "chalk": "^2.4.2", 1814 | "source-map": "^0.6.1", 1815 | "supports-color": "^6.1.0" 1816 | } 1817 | }, 1818 | "postcss-tape": { 1819 | "version": "5.0.2", 1820 | "resolved": "https://registry.npmjs.org/postcss-tape/-/postcss-tape-5.0.2.tgz", 1821 | "integrity": "sha512-e4770WnsUzczQp/pAIsz0s0MDLAQ7luyh1/hs8QBcdfXOMrz0siEqYNHAKJIoCvGtLoi2QUjWASvTbPfyTfIWg==", 1822 | "dev": true 1823 | }, 1824 | "pre-commit": { 1825 | "version": "1.2.2", 1826 | "resolved": "https://registry.npmjs.org/pre-commit/-/pre-commit-1.2.2.tgz", 1827 | "integrity": "sha1-287g7p3nI15X95xW186UZBpp7sY=", 1828 | "dev": true, 1829 | "requires": { 1830 | "cross-spawn": "^5.0.1", 1831 | "spawn-sync": "^1.0.15", 1832 | "which": "1.2.x" 1833 | }, 1834 | "dependencies": { 1835 | "cross-spawn": { 1836 | "version": "5.1.0", 1837 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", 1838 | "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", 1839 | "dev": true, 1840 | "requires": { 1841 | "lru-cache": "^4.0.1", 1842 | "shebang-command": "^1.2.0", 1843 | "which": "^1.2.9" 1844 | } 1845 | }, 1846 | "which": { 1847 | "version": "1.2.14", 1848 | "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", 1849 | "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", 1850 | "dev": true, 1851 | "requires": { 1852 | "isexe": "^2.0.0" 1853 | } 1854 | } 1855 | } 1856 | }, 1857 | "prelude-ls": { 1858 | "version": "1.1.2", 1859 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", 1860 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", 1861 | "dev": true 1862 | }, 1863 | "process-nextick-args": { 1864 | "version": "2.0.1", 1865 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", 1866 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", 1867 | "dev": true 1868 | }, 1869 | "progress": { 1870 | "version": "2.0.3", 1871 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", 1872 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", 1873 | "dev": true 1874 | }, 1875 | "pseudomap": { 1876 | "version": "1.0.2", 1877 | "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", 1878 | "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", 1879 | "dev": true 1880 | }, 1881 | "punycode": { 1882 | "version": "2.1.1", 1883 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 1884 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 1885 | "dev": true 1886 | }, 1887 | "readable-stream": { 1888 | "version": "2.3.7", 1889 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", 1890 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", 1891 | "dev": true, 1892 | "requires": { 1893 | "core-util-is": "~1.0.0", 1894 | "inherits": "~2.0.3", 1895 | "isarray": "~1.0.0", 1896 | "process-nextick-args": "~2.0.0", 1897 | "safe-buffer": "~5.1.1", 1898 | "string_decoder": "~1.1.1", 1899 | "util-deprecate": "~1.0.1" 1900 | } 1901 | }, 1902 | "regenerate": { 1903 | "version": "1.4.1", 1904 | "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz", 1905 | "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==", 1906 | "dev": true 1907 | }, 1908 | "regenerate-unicode-properties": { 1909 | "version": "8.2.0", 1910 | "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", 1911 | "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", 1912 | "dev": true, 1913 | "requires": { 1914 | "regenerate": "^1.4.0" 1915 | } 1916 | }, 1917 | "regenerator-runtime": { 1918 | "version": "0.13.7", 1919 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", 1920 | "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", 1921 | "dev": true 1922 | }, 1923 | "regenerator-transform": { 1924 | "version": "0.14.5", 1925 | "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", 1926 | "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", 1927 | "dev": true, 1928 | "requires": { 1929 | "@babel/runtime": "^7.8.4" 1930 | } 1931 | }, 1932 | "regexpp": { 1933 | "version": "2.0.1", 1934 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", 1935 | "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", 1936 | "dev": true 1937 | }, 1938 | "regexpu-core": { 1939 | "version": "4.7.0", 1940 | "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", 1941 | "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", 1942 | "dev": true, 1943 | "requires": { 1944 | "regenerate": "^1.4.0", 1945 | "regenerate-unicode-properties": "^8.2.0", 1946 | "regjsgen": "^0.5.1", 1947 | "regjsparser": "^0.6.4", 1948 | "unicode-match-property-ecmascript": "^1.0.4", 1949 | "unicode-match-property-value-ecmascript": "^1.2.0" 1950 | } 1951 | }, 1952 | "regjsgen": { 1953 | "version": "0.5.2", 1954 | "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", 1955 | "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", 1956 | "dev": true 1957 | }, 1958 | "regjsparser": { 1959 | "version": "0.6.4", 1960 | "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", 1961 | "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", 1962 | "dev": true, 1963 | "requires": { 1964 | "jsesc": "~0.5.0" 1965 | }, 1966 | "dependencies": { 1967 | "jsesc": { 1968 | "version": "0.5.0", 1969 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", 1970 | "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", 1971 | "dev": true 1972 | } 1973 | } 1974 | }, 1975 | "resolve": { 1976 | "version": "1.17.0", 1977 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", 1978 | "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", 1979 | "dev": true, 1980 | "requires": { 1981 | "path-parse": "^1.0.6" 1982 | } 1983 | }, 1984 | "resolve-from": { 1985 | "version": "4.0.0", 1986 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 1987 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 1988 | "dev": true 1989 | }, 1990 | "restore-cursor": { 1991 | "version": "3.1.0", 1992 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", 1993 | "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", 1994 | "dev": true, 1995 | "requires": { 1996 | "onetime": "^5.1.0", 1997 | "signal-exit": "^3.0.2" 1998 | } 1999 | }, 2000 | "rimraf": { 2001 | "version": "2.6.3", 2002 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", 2003 | "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", 2004 | "dev": true, 2005 | "requires": { 2006 | "glob": "^7.1.3" 2007 | } 2008 | }, 2009 | "rollup": { 2010 | "version": "1.26.3", 2011 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.26.3.tgz", 2012 | "integrity": "sha512-8MhY/M8gnv3Q/pQQSWYWzbeJ5J1C5anCNY5BK1kV8Yzw9RFS0FF4lbLt+uyPO3wLKWXSXrhAL5pWL85TZAh+Sw==", 2013 | "dev": true, 2014 | "requires": { 2015 | "@types/estree": "*", 2016 | "@types/node": "*", 2017 | "acorn": "^7.1.0" 2018 | } 2019 | }, 2020 | "rollup-plugin-babel": { 2021 | "version": "4.3.3", 2022 | "resolved": "https://registry.npmjs.org/rollup-plugin-babel/-/rollup-plugin-babel-4.3.3.tgz", 2023 | "integrity": "sha512-tKzWOCmIJD/6aKNz0H1GMM+lW1q9KyFubbWzGiOG540zxPPifnEAHTZwjo0g991Y+DyOZcLqBgqOdqazYE5fkw==", 2024 | "dev": true, 2025 | "requires": { 2026 | "@babel/helper-module-imports": "^7.0.0", 2027 | "rollup-pluginutils": "^2.8.1" 2028 | } 2029 | }, 2030 | "rollup-pluginutils": { 2031 | "version": "2.8.2", 2032 | "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", 2033 | "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", 2034 | "dev": true, 2035 | "requires": { 2036 | "estree-walker": "^0.6.1" 2037 | } 2038 | }, 2039 | "run-async": { 2040 | "version": "2.4.1", 2041 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", 2042 | "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", 2043 | "dev": true 2044 | }, 2045 | "rxjs": { 2046 | "version": "6.6.0", 2047 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.0.tgz", 2048 | "integrity": "sha512-3HMA8z/Oz61DUHe+SdOiQyzIf4tOx5oQHmMir7IZEu6TMqCLHT4LRcmNaUS0NwOz8VLvmmBduMsoaUvMaIiqzg==", 2049 | "dev": true, 2050 | "requires": { 2051 | "tslib": "^1.9.0" 2052 | } 2053 | }, 2054 | "safe-buffer": { 2055 | "version": "5.1.2", 2056 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 2057 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", 2058 | "dev": true 2059 | }, 2060 | "safer-buffer": { 2061 | "version": "2.1.2", 2062 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 2063 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 2064 | "dev": true 2065 | }, 2066 | "semver": { 2067 | "version": "5.7.1", 2068 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", 2069 | "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", 2070 | "dev": true 2071 | }, 2072 | "shebang-command": { 2073 | "version": "1.2.0", 2074 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 2075 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 2076 | "dev": true, 2077 | "requires": { 2078 | "shebang-regex": "^1.0.0" 2079 | } 2080 | }, 2081 | "shebang-regex": { 2082 | "version": "1.0.0", 2083 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 2084 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", 2085 | "dev": true 2086 | }, 2087 | "signal-exit": { 2088 | "version": "3.0.3", 2089 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", 2090 | "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", 2091 | "dev": true 2092 | }, 2093 | "slice-ansi": { 2094 | "version": "2.1.0", 2095 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", 2096 | "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", 2097 | "dev": true, 2098 | "requires": { 2099 | "ansi-styles": "^3.2.0", 2100 | "astral-regex": "^1.0.0", 2101 | "is-fullwidth-code-point": "^2.0.0" 2102 | }, 2103 | "dependencies": { 2104 | "is-fullwidth-code-point": { 2105 | "version": "2.0.0", 2106 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 2107 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 2108 | "dev": true 2109 | } 2110 | } 2111 | }, 2112 | "source-map": { 2113 | "version": "0.6.1", 2114 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 2115 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" 2116 | }, 2117 | "spawn-sync": { 2118 | "version": "1.0.15", 2119 | "resolved": "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.15.tgz", 2120 | "integrity": "sha1-sAeZVX63+wyDdsKdROih6mfldHY=", 2121 | "dev": true, 2122 | "requires": { 2123 | "concat-stream": "^1.4.7", 2124 | "os-shim": "^0.1.2" 2125 | } 2126 | }, 2127 | "sprintf-js": { 2128 | "version": "1.0.3", 2129 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 2130 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 2131 | "dev": true 2132 | }, 2133 | "string-width": { 2134 | "version": "4.2.0", 2135 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", 2136 | "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", 2137 | "dev": true, 2138 | "requires": { 2139 | "emoji-regex": "^8.0.0", 2140 | "is-fullwidth-code-point": "^3.0.0", 2141 | "strip-ansi": "^6.0.0" 2142 | }, 2143 | "dependencies": { 2144 | "strip-ansi": { 2145 | "version": "6.0.0", 2146 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", 2147 | "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", 2148 | "dev": true, 2149 | "requires": { 2150 | "ansi-regex": "^5.0.0" 2151 | } 2152 | } 2153 | } 2154 | }, 2155 | "string_decoder": { 2156 | "version": "1.1.1", 2157 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", 2158 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", 2159 | "dev": true, 2160 | "requires": { 2161 | "safe-buffer": "~5.1.0" 2162 | } 2163 | }, 2164 | "strip-ansi": { 2165 | "version": "5.2.0", 2166 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 2167 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 2168 | "dev": true, 2169 | "requires": { 2170 | "ansi-regex": "^4.1.0" 2171 | }, 2172 | "dependencies": { 2173 | "ansi-regex": { 2174 | "version": "4.1.0", 2175 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 2176 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 2177 | "dev": true 2178 | } 2179 | } 2180 | }, 2181 | "strip-json-comments": { 2182 | "version": "3.1.1", 2183 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", 2184 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", 2185 | "dev": true 2186 | }, 2187 | "supports-color": { 2188 | "version": "6.1.0", 2189 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", 2190 | "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", 2191 | "requires": { 2192 | "has-flag": "^3.0.0" 2193 | } 2194 | }, 2195 | "table": { 2196 | "version": "5.4.6", 2197 | "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", 2198 | "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", 2199 | "dev": true, 2200 | "requires": { 2201 | "ajv": "^6.10.2", 2202 | "lodash": "^4.17.14", 2203 | "slice-ansi": "^2.1.0", 2204 | "string-width": "^3.0.0" 2205 | }, 2206 | "dependencies": { 2207 | "emoji-regex": { 2208 | "version": "7.0.3", 2209 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", 2210 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", 2211 | "dev": true 2212 | }, 2213 | "is-fullwidth-code-point": { 2214 | "version": "2.0.0", 2215 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 2216 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 2217 | "dev": true 2218 | }, 2219 | "string-width": { 2220 | "version": "3.1.0", 2221 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 2222 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 2223 | "dev": true, 2224 | "requires": { 2225 | "emoji-regex": "^7.0.1", 2226 | "is-fullwidth-code-point": "^2.0.0", 2227 | "strip-ansi": "^5.1.0" 2228 | } 2229 | } 2230 | } 2231 | }, 2232 | "text-table": { 2233 | "version": "0.2.0", 2234 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 2235 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", 2236 | "dev": true 2237 | }, 2238 | "through": { 2239 | "version": "2.3.8", 2240 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 2241 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 2242 | "dev": true 2243 | }, 2244 | "tmp": { 2245 | "version": "0.0.33", 2246 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", 2247 | "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", 2248 | "dev": true, 2249 | "requires": { 2250 | "os-tmpdir": "~1.0.2" 2251 | } 2252 | }, 2253 | "to-fast-properties": { 2254 | "version": "2.0.0", 2255 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", 2256 | "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", 2257 | "dev": true 2258 | }, 2259 | "tslib": { 2260 | "version": "1.13.0", 2261 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", 2262 | "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", 2263 | "dev": true 2264 | }, 2265 | "type-check": { 2266 | "version": "0.3.2", 2267 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", 2268 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", 2269 | "dev": true, 2270 | "requires": { 2271 | "prelude-ls": "~1.1.2" 2272 | } 2273 | }, 2274 | "type-fest": { 2275 | "version": "0.11.0", 2276 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", 2277 | "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", 2278 | "dev": true 2279 | }, 2280 | "typedarray": { 2281 | "version": "0.0.6", 2282 | "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", 2283 | "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", 2284 | "dev": true 2285 | }, 2286 | "unicode-canonical-property-names-ecmascript": { 2287 | "version": "1.0.4", 2288 | "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", 2289 | "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", 2290 | "dev": true 2291 | }, 2292 | "unicode-match-property-ecmascript": { 2293 | "version": "1.0.4", 2294 | "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", 2295 | "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", 2296 | "dev": true, 2297 | "requires": { 2298 | "unicode-canonical-property-names-ecmascript": "^1.0.4", 2299 | "unicode-property-aliases-ecmascript": "^1.0.4" 2300 | } 2301 | }, 2302 | "unicode-match-property-value-ecmascript": { 2303 | "version": "1.2.0", 2304 | "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", 2305 | "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", 2306 | "dev": true 2307 | }, 2308 | "unicode-property-aliases-ecmascript": { 2309 | "version": "1.1.0", 2310 | "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", 2311 | "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", 2312 | "dev": true 2313 | }, 2314 | "uri-js": { 2315 | "version": "4.2.2", 2316 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", 2317 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", 2318 | "dev": true, 2319 | "requires": { 2320 | "punycode": "^2.1.0" 2321 | } 2322 | }, 2323 | "util-deprecate": { 2324 | "version": "1.0.2", 2325 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 2326 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 2327 | "dev": true 2328 | }, 2329 | "v8-compile-cache": { 2330 | "version": "2.1.1", 2331 | "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", 2332 | "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", 2333 | "dev": true 2334 | }, 2335 | "which": { 2336 | "version": "1.3.1", 2337 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 2338 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 2339 | "dev": true, 2340 | "requires": { 2341 | "isexe": "^2.0.0" 2342 | } 2343 | }, 2344 | "word-wrap": { 2345 | "version": "1.2.3", 2346 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", 2347 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", 2348 | "dev": true 2349 | }, 2350 | "wrappy": { 2351 | "version": "1.0.2", 2352 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 2353 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 2354 | "dev": true 2355 | }, 2356 | "write": { 2357 | "version": "1.0.3", 2358 | "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", 2359 | "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", 2360 | "dev": true, 2361 | "requires": { 2362 | "mkdirp": "^0.5.1" 2363 | } 2364 | }, 2365 | "yallist": { 2366 | "version": "2.1.2", 2367 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", 2368 | "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", 2369 | "dev": true 2370 | } 2371 | } 2372 | } 2373 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "postcss-help-media-queries", 3 | "version": "1.0.0", 4 | "description": "lets you see some informations about the active breakpoint (media query), screen density and orientation directly inside the page", 5 | "author": "limitlessloop <5551+limitlessloop@users.noreply.github.com>", 6 | "license": "CC0-1.0", 7 | "repository": "limitlessloop/postcss-help-media-queries", 8 | "homepage": "https://github.com/limitlessloop/postcss-help-media-queries#readme", 9 | "bugs": "https://github.com/limitlessloop/postcss-help-media-queries/issues", 10 | "main": "index.js", 11 | "module": "index.mjs", 12 | "files": [ 13 | "index.js", 14 | "index.js.map", 15 | "index.mjs", 16 | "index.mjs.map" 17 | ], 18 | "scripts": { 19 | "build": "rollup --config .rollup.js --silent", 20 | "prepublishOnly": "npm test", 21 | "pretest:tape": "npm run build", 22 | "test": "npm run test:js && npm run test:tape", 23 | "test:js": "eslint src/{*,**/*}.js --cache --ignore-path .gitignore --quiet", 24 | "test:tape": "NODE_ENV=development postcss-tape" 25 | }, 26 | "engines": { 27 | "node": ">=8.0.0" 28 | }, 29 | "dependencies": { 30 | "postcss": "7.0.21" 31 | }, 32 | "devDependencies": { 33 | "@babel/core": "7.7.2", 34 | "@babel/preset-env": "7.7.1", 35 | "babel-eslint": "10.0.3", 36 | "eslint": "6.6.0", 37 | "postcss-tape": "5.0.2", 38 | "pre-commit": "1.2.2", 39 | "rollup": "1.26.3", 40 | "rollup-plugin-babel": "4.3.3" 41 | }, 42 | "eslintConfig": { 43 | "env": { 44 | "browser": true, 45 | "es6": true, 46 | "node": true 47 | }, 48 | "extends": "eslint:recommended", 49 | "parser": "babel-eslint", 50 | "parserOptions": { 51 | "ecmaVersion": 2018, 52 | "impliedStrict": true, 53 | "sourceType": "module" 54 | }, 55 | "root": true 56 | }, 57 | "keywords": [ 58 | "postcss", 59 | "css", 60 | "postcss-plugin", 61 | "media queries" 62 | ] 63 | } 64 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import postcss from 'postcss'; 2 | 3 | function capitalize(s) { 4 | return s[0].toUpperCase() + s.slice(1); 5 | } 6 | 7 | function createMediaQueryString(densitySize, breakpointSize, orientationName) { 8 | let densityString = '' 9 | let breakpointString = '' 10 | let orientationString = '' 11 | 12 | if (densitySize) { 13 | densityString = `(min-resolution: ${densitySize})` 14 | } 15 | 16 | if (breakpointSize) { 17 | breakpointString = ` and (min-width: ${breakpointSize})` 18 | } 19 | 20 | if (orientationName) { 21 | orientationString = ` and (orientation: ${orientationName})` 22 | } 23 | 24 | return densityString + breakpointString + orientationString 25 | } 26 | 27 | function createContentString(densitySize, densityName, breakpointSize, breakpointName, orientationName) { 28 | let densityString = '' 29 | let breakpointString = '' 30 | let orientationString = '' 31 | 32 | if (densitySize) { 33 | densityString = `Density: ~${densitySize} (${densityName.toUpperCase()})` 34 | } 35 | 36 | if (breakpointSize) { 37 | breakpointString = `\\a Breakpoint: ${breakpointName} ${breakpointSize}` 38 | } 39 | 40 | if (orientationName) { 41 | orientationString = `\\a Orientation: ${capitalize(orientationName)}` 42 | } 43 | 44 | return densityString + breakpointString + orientationString 45 | } 46 | 47 | 48 | 49 | export default postcss.plugin('postcss-help-media-queries', opts => { 50 | 51 | let defaults = { 52 | breakpoints: { 53 | none: '', 54 | extraSmall: '30em', 55 | small: '48em', 56 | medium: '60em', 57 | large: '80em', 58 | extraLarge: '100em' 59 | }, 60 | densities: { 61 | '1x': '96dpi', 62 | '1.5x': '144dpi', 63 | '2x': '192dpi', 64 | '3x': '288dpi', 65 | '4x': '384dpi' 66 | }, 67 | orientation: [ 68 | '', 69 | 'portrait', 70 | 'landscape' 71 | ] 72 | } 73 | 74 | // Probably a nicer way to do this 75 | opts = opts || {} 76 | 77 | if (opts && opts.breakpoints) { 78 | defaults.breakpoints = {} 79 | defaults.breakpoints.none = '' 80 | defaults.breakpoints = Object.assign(defaults.breakpoints, opts.breakpoints) 81 | } 82 | 83 | opts = defaults 84 | 85 | let tooltipString = ` 86 | :root::after { 87 | position: fixed; 88 | font-family: sans-serif; 89 | user-select: none; 90 | pointer-events: none; 91 | z-index: 999999; 92 | bottom: 16px; 93 | right: 16px; 94 | font-weight: bold; 95 | font-size: 11px; 96 | line-height: 1.8; 97 | box-sizing: border-box; 98 | padding: 16px 24px; 99 | border-radius: 16px; 100 | white-space: pre-wrap; 101 | text-transform: capitalize; 102 | box-shadow: 0 10px 30px rgba(0,0,0, 0.2 ); 103 | -webkit-backdrop-filter: saturate(180%) blur(20px); 104 | backdrop-filter: saturate(180%) blur(20px); 105 | background-color: rgba(29, 29, 31, 0.72); 106 | color: #fff; 107 | } 108 | 109 | @media (prefers-color-scheme: dark) { 110 | :root::after { 111 | background-color: rgba(255,255,255,0.72); 112 | color: #212121; 113 | } 114 | } 115 | ` 116 | 117 | return (root) => { 118 | 119 | if (process.env.NODE_ENV === 'development') { 120 | 121 | root.walkAtRules((rule) => { 122 | 123 | if (rule.name === "help-media-queries") { 124 | 125 | rule.before(postcss.parse(tooltipString)) 126 | 127 | for (const [densityName, densitySize] of Object.entries(opts.densities)) { 128 | for (const [breakpointName, breakpointSize] of Object.entries(opts.breakpoints)) { 129 | for (const orientationName of opts.orientation) { 130 | 131 | let mediaQuery = createMediaQueryString(densitySize, breakpointSize, orientationName) 132 | let content = createContentString(densitySize, densityName, breakpointSize, breakpointName, orientationName) 133 | 134 | let mediaQueryString = `\ 135 | \n@media screen and ${mediaQuery} { 136 | :root::after { 137 | content: '${content}'; 138 | } 139 | } 140 | ` 141 | 142 | rule.before(postcss.parse(mediaQueryString)) 143 | 144 | } 145 | } 146 | } 147 | 148 | rule.remove(); 149 | } 150 | 151 | }) 152 | 153 | } 154 | 155 | }; 156 | }); 157 | -------------------------------------------------------------------------------- /test/basic.css: -------------------------------------------------------------------------------- 1 | @help-media-queries; -------------------------------------------------------------------------------- /test/basic.expect.css: -------------------------------------------------------------------------------- 1 | 2 | :root::after { 3 | position: fixed; 4 | font-family: sans-serif; 5 | user-select: none; 6 | pointer-events: none; 7 | z-index: 999999; 8 | bottom: 16px; 9 | right: 16px; 10 | font-weight: bold; 11 | font-size: 11px; 12 | line-height: 1.8; 13 | box-sizing: border-box; 14 | padding: 16px 24px; 15 | border-radius: 16px; 16 | white-space: pre-wrap; 17 | text-transform: capitalize; 18 | box-shadow: 0 10px 30px rgba(0,0,0, 0.2 ); 19 | -webkit-backdrop-filter: saturate(180%) blur(20px); 20 | backdrop-filter: saturate(180%) blur(20px); 21 | background-color: rgba(29, 29, 31, 0.72); 22 | color: #fff; 23 | } 24 | 25 | @media (prefers-color-scheme: dark) { 26 | :root::after { 27 | background-color: rgba(255,255,255,0.72); 28 | color: #212121; 29 | } 30 | } 31 | 32 | @media screen and (min-resolution: 96dpi) { 33 | :root::after { 34 | content: 'Density: ~96dpi (1X)'; 35 | } 36 | } 37 | 38 | @media screen and (min-resolution: 96dpi) and (orientation: portrait) { 39 | :root::after { 40 | content: 'Density: ~96dpi (1X)\a Orientation: Portrait'; 41 | } 42 | } 43 | 44 | @media screen and (min-resolution: 96dpi) and (orientation: landscape) { 45 | :root::after { 46 | content: 'Density: ~96dpi (1X)\a Orientation: Landscape'; 47 | } 48 | } 49 | 50 | @media screen and (min-resolution: 96dpi) and (min-width: 30em) { 51 | :root::after { 52 | content: 'Density: ~96dpi (1X)\a Breakpoint: extraSmall 30em'; 53 | } 54 | } 55 | 56 | @media screen and (min-resolution: 96dpi) and (min-width: 30em) and (orientation: portrait) { 57 | :root::after { 58 | content: 'Density: ~96dpi (1X)\a Breakpoint: extraSmall 30em\a Orientation: Portrait'; 59 | } 60 | } 61 | 62 | @media screen and (min-resolution: 96dpi) and (min-width: 30em) and (orientation: landscape) { 63 | :root::after { 64 | content: 'Density: ~96dpi (1X)\a Breakpoint: extraSmall 30em\a Orientation: Landscape'; 65 | } 66 | } 67 | 68 | @media screen and (min-resolution: 96dpi) and (min-width: 48em) { 69 | :root::after { 70 | content: 'Density: ~96dpi (1X)\a Breakpoint: small 48em'; 71 | } 72 | } 73 | 74 | @media screen and (min-resolution: 96dpi) and (min-width: 48em) and (orientation: portrait) { 75 | :root::after { 76 | content: 'Density: ~96dpi (1X)\a Breakpoint: small 48em\a Orientation: Portrait'; 77 | } 78 | } 79 | 80 | @media screen and (min-resolution: 96dpi) and (min-width: 48em) and (orientation: landscape) { 81 | :root::after { 82 | content: 'Density: ~96dpi (1X)\a Breakpoint: small 48em\a Orientation: Landscape'; 83 | } 84 | } 85 | 86 | @media screen and (min-resolution: 96dpi) and (min-width: 60em) { 87 | :root::after { 88 | content: 'Density: ~96dpi (1X)\a Breakpoint: medium 60em'; 89 | } 90 | } 91 | 92 | @media screen and (min-resolution: 96dpi) and (min-width: 60em) and (orientation: portrait) { 93 | :root::after { 94 | content: 'Density: ~96dpi (1X)\a Breakpoint: medium 60em\a Orientation: Portrait'; 95 | } 96 | } 97 | 98 | @media screen and (min-resolution: 96dpi) and (min-width: 60em) and (orientation: landscape) { 99 | :root::after { 100 | content: 'Density: ~96dpi (1X)\a Breakpoint: medium 60em\a Orientation: Landscape'; 101 | } 102 | } 103 | 104 | @media screen and (min-resolution: 96dpi) and (min-width: 80em) { 105 | :root::after { 106 | content: 'Density: ~96dpi (1X)\a Breakpoint: large 80em'; 107 | } 108 | } 109 | 110 | @media screen and (min-resolution: 96dpi) and (min-width: 80em) and (orientation: portrait) { 111 | :root::after { 112 | content: 'Density: ~96dpi (1X)\a Breakpoint: large 80em\a Orientation: Portrait'; 113 | } 114 | } 115 | 116 | @media screen and (min-resolution: 96dpi) and (min-width: 80em) and (orientation: landscape) { 117 | :root::after { 118 | content: 'Density: ~96dpi (1X)\a Breakpoint: large 80em\a Orientation: Landscape'; 119 | } 120 | } 121 | 122 | @media screen and (min-resolution: 96dpi) and (min-width: 100em) { 123 | :root::after { 124 | content: 'Density: ~96dpi (1X)\a Breakpoint: extraLarge 100em'; 125 | } 126 | } 127 | 128 | @media screen and (min-resolution: 96dpi) and (min-width: 100em) and (orientation: portrait) { 129 | :root::after { 130 | content: 'Density: ~96dpi (1X)\a Breakpoint: extraLarge 100em\a Orientation: Portrait'; 131 | } 132 | } 133 | 134 | @media screen and (min-resolution: 96dpi) and (min-width: 100em) and (orientation: landscape) { 135 | :root::after { 136 | content: 'Density: ~96dpi (1X)\a Breakpoint: extraLarge 100em\a Orientation: Landscape'; 137 | } 138 | } 139 | 140 | @media screen and (min-resolution: 144dpi) { 141 | :root::after { 142 | content: 'Density: ~144dpi (1.5X)'; 143 | } 144 | } 145 | 146 | @media screen and (min-resolution: 144dpi) and (orientation: portrait) { 147 | :root::after { 148 | content: 'Density: ~144dpi (1.5X)\a Orientation: Portrait'; 149 | } 150 | } 151 | 152 | @media screen and (min-resolution: 144dpi) and (orientation: landscape) { 153 | :root::after { 154 | content: 'Density: ~144dpi (1.5X)\a Orientation: Landscape'; 155 | } 156 | } 157 | 158 | @media screen and (min-resolution: 144dpi) and (min-width: 30em) { 159 | :root::after { 160 | content: 'Density: ~144dpi (1.5X)\a Breakpoint: extraSmall 30em'; 161 | } 162 | } 163 | 164 | @media screen and (min-resolution: 144dpi) and (min-width: 30em) and (orientation: portrait) { 165 | :root::after { 166 | content: 'Density: ~144dpi (1.5X)\a Breakpoint: extraSmall 30em\a Orientation: Portrait'; 167 | } 168 | } 169 | 170 | @media screen and (min-resolution: 144dpi) and (min-width: 30em) and (orientation: landscape) { 171 | :root::after { 172 | content: 'Density: ~144dpi (1.5X)\a Breakpoint: extraSmall 30em\a Orientation: Landscape'; 173 | } 174 | } 175 | 176 | @media screen and (min-resolution: 144dpi) and (min-width: 48em) { 177 | :root::after { 178 | content: 'Density: ~144dpi (1.5X)\a Breakpoint: small 48em'; 179 | } 180 | } 181 | 182 | @media screen and (min-resolution: 144dpi) and (min-width: 48em) and (orientation: portrait) { 183 | :root::after { 184 | content: 'Density: ~144dpi (1.5X)\a Breakpoint: small 48em\a Orientation: Portrait'; 185 | } 186 | } 187 | 188 | @media screen and (min-resolution: 144dpi) and (min-width: 48em) and (orientation: landscape) { 189 | :root::after { 190 | content: 'Density: ~144dpi (1.5X)\a Breakpoint: small 48em\a Orientation: Landscape'; 191 | } 192 | } 193 | 194 | @media screen and (min-resolution: 144dpi) and (min-width: 60em) { 195 | :root::after { 196 | content: 'Density: ~144dpi (1.5X)\a Breakpoint: medium 60em'; 197 | } 198 | } 199 | 200 | @media screen and (min-resolution: 144dpi) and (min-width: 60em) and (orientation: portrait) { 201 | :root::after { 202 | content: 'Density: ~144dpi (1.5X)\a Breakpoint: medium 60em\a Orientation: Portrait'; 203 | } 204 | } 205 | 206 | @media screen and (min-resolution: 144dpi) and (min-width: 60em) and (orientation: landscape) { 207 | :root::after { 208 | content: 'Density: ~144dpi (1.5X)\a Breakpoint: medium 60em\a Orientation: Landscape'; 209 | } 210 | } 211 | 212 | @media screen and (min-resolution: 144dpi) and (min-width: 80em) { 213 | :root::after { 214 | content: 'Density: ~144dpi (1.5X)\a Breakpoint: large 80em'; 215 | } 216 | } 217 | 218 | @media screen and (min-resolution: 144dpi) and (min-width: 80em) and (orientation: portrait) { 219 | :root::after { 220 | content: 'Density: ~144dpi (1.5X)\a Breakpoint: large 80em\a Orientation: Portrait'; 221 | } 222 | } 223 | 224 | @media screen and (min-resolution: 144dpi) and (min-width: 80em) and (orientation: landscape) { 225 | :root::after { 226 | content: 'Density: ~144dpi (1.5X)\a Breakpoint: large 80em\a Orientation: Landscape'; 227 | } 228 | } 229 | 230 | @media screen and (min-resolution: 144dpi) and (min-width: 100em) { 231 | :root::after { 232 | content: 'Density: ~144dpi (1.5X)\a Breakpoint: extraLarge 100em'; 233 | } 234 | } 235 | 236 | @media screen and (min-resolution: 144dpi) and (min-width: 100em) and (orientation: portrait) { 237 | :root::after { 238 | content: 'Density: ~144dpi (1.5X)\a Breakpoint: extraLarge 100em\a Orientation: Portrait'; 239 | } 240 | } 241 | 242 | @media screen and (min-resolution: 144dpi) and (min-width: 100em) and (orientation: landscape) { 243 | :root::after { 244 | content: 'Density: ~144dpi (1.5X)\a Breakpoint: extraLarge 100em\a Orientation: Landscape'; 245 | } 246 | } 247 | 248 | @media screen and (min-resolution: 192dpi) { 249 | :root::after { 250 | content: 'Density: ~192dpi (2X)'; 251 | } 252 | } 253 | 254 | @media screen and (min-resolution: 192dpi) and (orientation: portrait) { 255 | :root::after { 256 | content: 'Density: ~192dpi (2X)\a Orientation: Portrait'; 257 | } 258 | } 259 | 260 | @media screen and (min-resolution: 192dpi) and (orientation: landscape) { 261 | :root::after { 262 | content: 'Density: ~192dpi (2X)\a Orientation: Landscape'; 263 | } 264 | } 265 | 266 | @media screen and (min-resolution: 192dpi) and (min-width: 30em) { 267 | :root::after { 268 | content: 'Density: ~192dpi (2X)\a Breakpoint: extraSmall 30em'; 269 | } 270 | } 271 | 272 | @media screen and (min-resolution: 192dpi) and (min-width: 30em) and (orientation: portrait) { 273 | :root::after { 274 | content: 'Density: ~192dpi (2X)\a Breakpoint: extraSmall 30em\a Orientation: Portrait'; 275 | } 276 | } 277 | 278 | @media screen and (min-resolution: 192dpi) and (min-width: 30em) and (orientation: landscape) { 279 | :root::after { 280 | content: 'Density: ~192dpi (2X)\a Breakpoint: extraSmall 30em\a Orientation: Landscape'; 281 | } 282 | } 283 | 284 | @media screen and (min-resolution: 192dpi) and (min-width: 48em) { 285 | :root::after { 286 | content: 'Density: ~192dpi (2X)\a Breakpoint: small 48em'; 287 | } 288 | } 289 | 290 | @media screen and (min-resolution: 192dpi) and (min-width: 48em) and (orientation: portrait) { 291 | :root::after { 292 | content: 'Density: ~192dpi (2X)\a Breakpoint: small 48em\a Orientation: Portrait'; 293 | } 294 | } 295 | 296 | @media screen and (min-resolution: 192dpi) and (min-width: 48em) and (orientation: landscape) { 297 | :root::after { 298 | content: 'Density: ~192dpi (2X)\a Breakpoint: small 48em\a Orientation: Landscape'; 299 | } 300 | } 301 | 302 | @media screen and (min-resolution: 192dpi) and (min-width: 60em) { 303 | :root::after { 304 | content: 'Density: ~192dpi (2X)\a Breakpoint: medium 60em'; 305 | } 306 | } 307 | 308 | @media screen and (min-resolution: 192dpi) and (min-width: 60em) and (orientation: portrait) { 309 | :root::after { 310 | content: 'Density: ~192dpi (2X)\a Breakpoint: medium 60em\a Orientation: Portrait'; 311 | } 312 | } 313 | 314 | @media screen and (min-resolution: 192dpi) and (min-width: 60em) and (orientation: landscape) { 315 | :root::after { 316 | content: 'Density: ~192dpi (2X)\a Breakpoint: medium 60em\a Orientation: Landscape'; 317 | } 318 | } 319 | 320 | @media screen and (min-resolution: 192dpi) and (min-width: 80em) { 321 | :root::after { 322 | content: 'Density: ~192dpi (2X)\a Breakpoint: large 80em'; 323 | } 324 | } 325 | 326 | @media screen and (min-resolution: 192dpi) and (min-width: 80em) and (orientation: portrait) { 327 | :root::after { 328 | content: 'Density: ~192dpi (2X)\a Breakpoint: large 80em\a Orientation: Portrait'; 329 | } 330 | } 331 | 332 | @media screen and (min-resolution: 192dpi) and (min-width: 80em) and (orientation: landscape) { 333 | :root::after { 334 | content: 'Density: ~192dpi (2X)\a Breakpoint: large 80em\a Orientation: Landscape'; 335 | } 336 | } 337 | 338 | @media screen and (min-resolution: 192dpi) and (min-width: 100em) { 339 | :root::after { 340 | content: 'Density: ~192dpi (2X)\a Breakpoint: extraLarge 100em'; 341 | } 342 | } 343 | 344 | @media screen and (min-resolution: 192dpi) and (min-width: 100em) and (orientation: portrait) { 345 | :root::after { 346 | content: 'Density: ~192dpi (2X)\a Breakpoint: extraLarge 100em\a Orientation: Portrait'; 347 | } 348 | } 349 | 350 | @media screen and (min-resolution: 192dpi) and (min-width: 100em) and (orientation: landscape) { 351 | :root::after { 352 | content: 'Density: ~192dpi (2X)\a Breakpoint: extraLarge 100em\a Orientation: Landscape'; 353 | } 354 | } 355 | 356 | @media screen and (min-resolution: 288dpi) { 357 | :root::after { 358 | content: 'Density: ~288dpi (3X)'; 359 | } 360 | } 361 | 362 | @media screen and (min-resolution: 288dpi) and (orientation: portrait) { 363 | :root::after { 364 | content: 'Density: ~288dpi (3X)\a Orientation: Portrait'; 365 | } 366 | } 367 | 368 | @media screen and (min-resolution: 288dpi) and (orientation: landscape) { 369 | :root::after { 370 | content: 'Density: ~288dpi (3X)\a Orientation: Landscape'; 371 | } 372 | } 373 | 374 | @media screen and (min-resolution: 288dpi) and (min-width: 30em) { 375 | :root::after { 376 | content: 'Density: ~288dpi (3X)\a Breakpoint: extraSmall 30em'; 377 | } 378 | } 379 | 380 | @media screen and (min-resolution: 288dpi) and (min-width: 30em) and (orientation: portrait) { 381 | :root::after { 382 | content: 'Density: ~288dpi (3X)\a Breakpoint: extraSmall 30em\a Orientation: Portrait'; 383 | } 384 | } 385 | 386 | @media screen and (min-resolution: 288dpi) and (min-width: 30em) and (orientation: landscape) { 387 | :root::after { 388 | content: 'Density: ~288dpi (3X)\a Breakpoint: extraSmall 30em\a Orientation: Landscape'; 389 | } 390 | } 391 | 392 | @media screen and (min-resolution: 288dpi) and (min-width: 48em) { 393 | :root::after { 394 | content: 'Density: ~288dpi (3X)\a Breakpoint: small 48em'; 395 | } 396 | } 397 | 398 | @media screen and (min-resolution: 288dpi) and (min-width: 48em) and (orientation: portrait) { 399 | :root::after { 400 | content: 'Density: ~288dpi (3X)\a Breakpoint: small 48em\a Orientation: Portrait'; 401 | } 402 | } 403 | 404 | @media screen and (min-resolution: 288dpi) and (min-width: 48em) and (orientation: landscape) { 405 | :root::after { 406 | content: 'Density: ~288dpi (3X)\a Breakpoint: small 48em\a Orientation: Landscape'; 407 | } 408 | } 409 | 410 | @media screen and (min-resolution: 288dpi) and (min-width: 60em) { 411 | :root::after { 412 | content: 'Density: ~288dpi (3X)\a Breakpoint: medium 60em'; 413 | } 414 | } 415 | 416 | @media screen and (min-resolution: 288dpi) and (min-width: 60em) and (orientation: portrait) { 417 | :root::after { 418 | content: 'Density: ~288dpi (3X)\a Breakpoint: medium 60em\a Orientation: Portrait'; 419 | } 420 | } 421 | 422 | @media screen and (min-resolution: 288dpi) and (min-width: 60em) and (orientation: landscape) { 423 | :root::after { 424 | content: 'Density: ~288dpi (3X)\a Breakpoint: medium 60em\a Orientation: Landscape'; 425 | } 426 | } 427 | 428 | @media screen and (min-resolution: 288dpi) and (min-width: 80em) { 429 | :root::after { 430 | content: 'Density: ~288dpi (3X)\a Breakpoint: large 80em'; 431 | } 432 | } 433 | 434 | @media screen and (min-resolution: 288dpi) and (min-width: 80em) and (orientation: portrait) { 435 | :root::after { 436 | content: 'Density: ~288dpi (3X)\a Breakpoint: large 80em\a Orientation: Portrait'; 437 | } 438 | } 439 | 440 | @media screen and (min-resolution: 288dpi) and (min-width: 80em) and (orientation: landscape) { 441 | :root::after { 442 | content: 'Density: ~288dpi (3X)\a Breakpoint: large 80em\a Orientation: Landscape'; 443 | } 444 | } 445 | 446 | @media screen and (min-resolution: 288dpi) and (min-width: 100em) { 447 | :root::after { 448 | content: 'Density: ~288dpi (3X)\a Breakpoint: extraLarge 100em'; 449 | } 450 | } 451 | 452 | @media screen and (min-resolution: 288dpi) and (min-width: 100em) and (orientation: portrait) { 453 | :root::after { 454 | content: 'Density: ~288dpi (3X)\a Breakpoint: extraLarge 100em\a Orientation: Portrait'; 455 | } 456 | } 457 | 458 | @media screen and (min-resolution: 288dpi) and (min-width: 100em) and (orientation: landscape) { 459 | :root::after { 460 | content: 'Density: ~288dpi (3X)\a Breakpoint: extraLarge 100em\a Orientation: Landscape'; 461 | } 462 | } 463 | 464 | @media screen and (min-resolution: 384dpi) { 465 | :root::after { 466 | content: 'Density: ~384dpi (4X)'; 467 | } 468 | } 469 | 470 | @media screen and (min-resolution: 384dpi) and (orientation: portrait) { 471 | :root::after { 472 | content: 'Density: ~384dpi (4X)\a Orientation: Portrait'; 473 | } 474 | } 475 | 476 | @media screen and (min-resolution: 384dpi) and (orientation: landscape) { 477 | :root::after { 478 | content: 'Density: ~384dpi (4X)\a Orientation: Landscape'; 479 | } 480 | } 481 | 482 | @media screen and (min-resolution: 384dpi) and (min-width: 30em) { 483 | :root::after { 484 | content: 'Density: ~384dpi (4X)\a Breakpoint: extraSmall 30em'; 485 | } 486 | } 487 | 488 | @media screen and (min-resolution: 384dpi) and (min-width: 30em) and (orientation: portrait) { 489 | :root::after { 490 | content: 'Density: ~384dpi (4X)\a Breakpoint: extraSmall 30em\a Orientation: Portrait'; 491 | } 492 | } 493 | 494 | @media screen and (min-resolution: 384dpi) and (min-width: 30em) and (orientation: landscape) { 495 | :root::after { 496 | content: 'Density: ~384dpi (4X)\a Breakpoint: extraSmall 30em\a Orientation: Landscape'; 497 | } 498 | } 499 | 500 | @media screen and (min-resolution: 384dpi) and (min-width: 48em) { 501 | :root::after { 502 | content: 'Density: ~384dpi (4X)\a Breakpoint: small 48em'; 503 | } 504 | } 505 | 506 | @media screen and (min-resolution: 384dpi) and (min-width: 48em) and (orientation: portrait) { 507 | :root::after { 508 | content: 'Density: ~384dpi (4X)\a Breakpoint: small 48em\a Orientation: Portrait'; 509 | } 510 | } 511 | 512 | @media screen and (min-resolution: 384dpi) and (min-width: 48em) and (orientation: landscape) { 513 | :root::after { 514 | content: 'Density: ~384dpi (4X)\a Breakpoint: small 48em\a Orientation: Landscape'; 515 | } 516 | } 517 | 518 | @media screen and (min-resolution: 384dpi) and (min-width: 60em) { 519 | :root::after { 520 | content: 'Density: ~384dpi (4X)\a Breakpoint: medium 60em'; 521 | } 522 | } 523 | 524 | @media screen and (min-resolution: 384dpi) and (min-width: 60em) and (orientation: portrait) { 525 | :root::after { 526 | content: 'Density: ~384dpi (4X)\a Breakpoint: medium 60em\a Orientation: Portrait'; 527 | } 528 | } 529 | 530 | @media screen and (min-resolution: 384dpi) and (min-width: 60em) and (orientation: landscape) { 531 | :root::after { 532 | content: 'Density: ~384dpi (4X)\a Breakpoint: medium 60em\a Orientation: Landscape'; 533 | } 534 | } 535 | 536 | @media screen and (min-resolution: 384dpi) and (min-width: 80em) { 537 | :root::after { 538 | content: 'Density: ~384dpi (4X)\a Breakpoint: large 80em'; 539 | } 540 | } 541 | 542 | @media screen and (min-resolution: 384dpi) and (min-width: 80em) and (orientation: portrait) { 543 | :root::after { 544 | content: 'Density: ~384dpi (4X)\a Breakpoint: large 80em\a Orientation: Portrait'; 545 | } 546 | } 547 | 548 | @media screen and (min-resolution: 384dpi) and (min-width: 80em) and (orientation: landscape) { 549 | :root::after { 550 | content: 'Density: ~384dpi (4X)\a Breakpoint: large 80em\a Orientation: Landscape'; 551 | } 552 | } 553 | 554 | @media screen and (min-resolution: 384dpi) and (min-width: 100em) { 555 | :root::after { 556 | content: 'Density: ~384dpi (4X)\a Breakpoint: extraLarge 100em'; 557 | } 558 | } 559 | 560 | @media screen and (min-resolution: 384dpi) and (min-width: 100em) and (orientation: portrait) { 561 | :root::after { 562 | content: 'Density: ~384dpi (4X)\a Breakpoint: extraLarge 100em\a Orientation: Portrait'; 563 | } 564 | } 565 | 566 | @media screen and (min-resolution: 384dpi) and (min-width: 100em) and (orientation: landscape) { 567 | :root::after { 568 | content: 'Density: ~384dpi (4X)\a Breakpoint: extraLarge 100em\a Orientation: Landscape'; 569 | } 570 | } -------------------------------------------------------------------------------- /test/options.css: -------------------------------------------------------------------------------- 1 | @help-media-queries; -------------------------------------------------------------------------------- /test/options.expect.css: -------------------------------------------------------------------------------- 1 | 2 | :root::after { 3 | position: fixed; 4 | font-family: sans-serif; 5 | user-select: none; 6 | pointer-events: none; 7 | z-index: 999999; 8 | bottom: 16px; 9 | right: 16px; 10 | font-weight: bold; 11 | font-size: 11px; 12 | line-height: 1.8; 13 | box-sizing: border-box; 14 | padding: 16px 24px; 15 | border-radius: 16px; 16 | white-space: pre-wrap; 17 | text-transform: capitalize; 18 | box-shadow: 0 10px 30px rgba(0,0,0, 0.2 ); 19 | -webkit-backdrop-filter: saturate(180%) blur(20px); 20 | backdrop-filter: saturate(180%) blur(20px); 21 | background-color: rgba(29, 29, 31, 0.72); 22 | color: #fff; 23 | } 24 | 25 | @media (prefers-color-scheme: dark) { 26 | :root::after { 27 | background-color: rgba(255,255,255,0.72); 28 | color: #212121; 29 | } 30 | } 31 | 32 | @media screen and (min-resolution: 96dpi) { 33 | :root::after { 34 | content: 'Density: ~96dpi (1X)'; 35 | } 36 | } 37 | 38 | @media screen and (min-resolution: 96dpi) and (orientation: portrait) { 39 | :root::after { 40 | content: 'Density: ~96dpi (1X)\a Orientation: Portrait'; 41 | } 42 | } 43 | 44 | @media screen and (min-resolution: 96dpi) and (orientation: landscape) { 45 | :root::after { 46 | content: 'Density: ~96dpi (1X)\a Orientation: Landscape'; 47 | } 48 | } 49 | 50 | @media screen and (min-resolution: 96dpi) and (min-width: 20em) { 51 | :root::after { 52 | content: 'Density: ~96dpi (1X)\a Breakpoint: extraSmall 20em'; 53 | } 54 | } 55 | 56 | @media screen and (min-resolution: 96dpi) and (min-width: 20em) and (orientation: portrait) { 57 | :root::after { 58 | content: 'Density: ~96dpi (1X)\a Breakpoint: extraSmall 20em\a Orientation: Portrait'; 59 | } 60 | } 61 | 62 | @media screen and (min-resolution: 96dpi) and (min-width: 20em) and (orientation: landscape) { 63 | :root::after { 64 | content: 'Density: ~96dpi (1X)\a Breakpoint: extraSmall 20em\a Orientation: Landscape'; 65 | } 66 | } 67 | 68 | @media screen and (min-resolution: 96dpi) and (min-width: 48em) { 69 | :root::after { 70 | content: 'Density: ~96dpi (1X)\a Breakpoint: small 48em'; 71 | } 72 | } 73 | 74 | @media screen and (min-resolution: 96dpi) and (min-width: 48em) and (orientation: portrait) { 75 | :root::after { 76 | content: 'Density: ~96dpi (1X)\a Breakpoint: small 48em\a Orientation: Portrait'; 77 | } 78 | } 79 | 80 | @media screen and (min-resolution: 96dpi) and (min-width: 48em) and (orientation: landscape) { 81 | :root::after { 82 | content: 'Density: ~96dpi (1X)\a Breakpoint: small 48em\a Orientation: Landscape'; 83 | } 84 | } 85 | 86 | @media screen and (min-resolution: 144dpi) { 87 | :root::after { 88 | content: 'Density: ~144dpi (1.5X)'; 89 | } 90 | } 91 | 92 | @media screen and (min-resolution: 144dpi) and (orientation: portrait) { 93 | :root::after { 94 | content: 'Density: ~144dpi (1.5X)\a Orientation: Portrait'; 95 | } 96 | } 97 | 98 | @media screen and (min-resolution: 144dpi) and (orientation: landscape) { 99 | :root::after { 100 | content: 'Density: ~144dpi (1.5X)\a Orientation: Landscape'; 101 | } 102 | } 103 | 104 | @media screen and (min-resolution: 144dpi) and (min-width: 20em) { 105 | :root::after { 106 | content: 'Density: ~144dpi (1.5X)\a Breakpoint: extraSmall 20em'; 107 | } 108 | } 109 | 110 | @media screen and (min-resolution: 144dpi) and (min-width: 20em) and (orientation: portrait) { 111 | :root::after { 112 | content: 'Density: ~144dpi (1.5X)\a Breakpoint: extraSmall 20em\a Orientation: Portrait'; 113 | } 114 | } 115 | 116 | @media screen and (min-resolution: 144dpi) and (min-width: 20em) and (orientation: landscape) { 117 | :root::after { 118 | content: 'Density: ~144dpi (1.5X)\a Breakpoint: extraSmall 20em\a Orientation: Landscape'; 119 | } 120 | } 121 | 122 | @media screen and (min-resolution: 144dpi) and (min-width: 48em) { 123 | :root::after { 124 | content: 'Density: ~144dpi (1.5X)\a Breakpoint: small 48em'; 125 | } 126 | } 127 | 128 | @media screen and (min-resolution: 144dpi) and (min-width: 48em) and (orientation: portrait) { 129 | :root::after { 130 | content: 'Density: ~144dpi (1.5X)\a Breakpoint: small 48em\a Orientation: Portrait'; 131 | } 132 | } 133 | 134 | @media screen and (min-resolution: 144dpi) and (min-width: 48em) and (orientation: landscape) { 135 | :root::after { 136 | content: 'Density: ~144dpi (1.5X)\a Breakpoint: small 48em\a Orientation: Landscape'; 137 | } 138 | } 139 | 140 | @media screen and (min-resolution: 192dpi) { 141 | :root::after { 142 | content: 'Density: ~192dpi (2X)'; 143 | } 144 | } 145 | 146 | @media screen and (min-resolution: 192dpi) and (orientation: portrait) { 147 | :root::after { 148 | content: 'Density: ~192dpi (2X)\a Orientation: Portrait'; 149 | } 150 | } 151 | 152 | @media screen and (min-resolution: 192dpi) and (orientation: landscape) { 153 | :root::after { 154 | content: 'Density: ~192dpi (2X)\a Orientation: Landscape'; 155 | } 156 | } 157 | 158 | @media screen and (min-resolution: 192dpi) and (min-width: 20em) { 159 | :root::after { 160 | content: 'Density: ~192dpi (2X)\a Breakpoint: extraSmall 20em'; 161 | } 162 | } 163 | 164 | @media screen and (min-resolution: 192dpi) and (min-width: 20em) and (orientation: portrait) { 165 | :root::after { 166 | content: 'Density: ~192dpi (2X)\a Breakpoint: extraSmall 20em\a Orientation: Portrait'; 167 | } 168 | } 169 | 170 | @media screen and (min-resolution: 192dpi) and (min-width: 20em) and (orientation: landscape) { 171 | :root::after { 172 | content: 'Density: ~192dpi (2X)\a Breakpoint: extraSmall 20em\a Orientation: Landscape'; 173 | } 174 | } 175 | 176 | @media screen and (min-resolution: 192dpi) and (min-width: 48em) { 177 | :root::after { 178 | content: 'Density: ~192dpi (2X)\a Breakpoint: small 48em'; 179 | } 180 | } 181 | 182 | @media screen and (min-resolution: 192dpi) and (min-width: 48em) and (orientation: portrait) { 183 | :root::after { 184 | content: 'Density: ~192dpi (2X)\a Breakpoint: small 48em\a Orientation: Portrait'; 185 | } 186 | } 187 | 188 | @media screen and (min-resolution: 192dpi) and (min-width: 48em) and (orientation: landscape) { 189 | :root::after { 190 | content: 'Density: ~192dpi (2X)\a Breakpoint: small 48em\a Orientation: Landscape'; 191 | } 192 | } 193 | 194 | @media screen and (min-resolution: 288dpi) { 195 | :root::after { 196 | content: 'Density: ~288dpi (3X)'; 197 | } 198 | } 199 | 200 | @media screen and (min-resolution: 288dpi) and (orientation: portrait) { 201 | :root::after { 202 | content: 'Density: ~288dpi (3X)\a Orientation: Portrait'; 203 | } 204 | } 205 | 206 | @media screen and (min-resolution: 288dpi) and (orientation: landscape) { 207 | :root::after { 208 | content: 'Density: ~288dpi (3X)\a Orientation: Landscape'; 209 | } 210 | } 211 | 212 | @media screen and (min-resolution: 288dpi) and (min-width: 20em) { 213 | :root::after { 214 | content: 'Density: ~288dpi (3X)\a Breakpoint: extraSmall 20em'; 215 | } 216 | } 217 | 218 | @media screen and (min-resolution: 288dpi) and (min-width: 20em) and (orientation: portrait) { 219 | :root::after { 220 | content: 'Density: ~288dpi (3X)\a Breakpoint: extraSmall 20em\a Orientation: Portrait'; 221 | } 222 | } 223 | 224 | @media screen and (min-resolution: 288dpi) and (min-width: 20em) and (orientation: landscape) { 225 | :root::after { 226 | content: 'Density: ~288dpi (3X)\a Breakpoint: extraSmall 20em\a Orientation: Landscape'; 227 | } 228 | } 229 | 230 | @media screen and (min-resolution: 288dpi) and (min-width: 48em) { 231 | :root::after { 232 | content: 'Density: ~288dpi (3X)\a Breakpoint: small 48em'; 233 | } 234 | } 235 | 236 | @media screen and (min-resolution: 288dpi) and (min-width: 48em) and (orientation: portrait) { 237 | :root::after { 238 | content: 'Density: ~288dpi (3X)\a Breakpoint: small 48em\a Orientation: Portrait'; 239 | } 240 | } 241 | 242 | @media screen and (min-resolution: 288dpi) and (min-width: 48em) and (orientation: landscape) { 243 | :root::after { 244 | content: 'Density: ~288dpi (3X)\a Breakpoint: small 48em\a Orientation: Landscape'; 245 | } 246 | } 247 | 248 | @media screen and (min-resolution: 384dpi) { 249 | :root::after { 250 | content: 'Density: ~384dpi (4X)'; 251 | } 252 | } 253 | 254 | @media screen and (min-resolution: 384dpi) and (orientation: portrait) { 255 | :root::after { 256 | content: 'Density: ~384dpi (4X)\a Orientation: Portrait'; 257 | } 258 | } 259 | 260 | @media screen and (min-resolution: 384dpi) and (orientation: landscape) { 261 | :root::after { 262 | content: 'Density: ~384dpi (4X)\a Orientation: Landscape'; 263 | } 264 | } 265 | 266 | @media screen and (min-resolution: 384dpi) and (min-width: 20em) { 267 | :root::after { 268 | content: 'Density: ~384dpi (4X)\a Breakpoint: extraSmall 20em'; 269 | } 270 | } 271 | 272 | @media screen and (min-resolution: 384dpi) and (min-width: 20em) and (orientation: portrait) { 273 | :root::after { 274 | content: 'Density: ~384dpi (4X)\a Breakpoint: extraSmall 20em\a Orientation: Portrait'; 275 | } 276 | } 277 | 278 | @media screen and (min-resolution: 384dpi) and (min-width: 20em) and (orientation: landscape) { 279 | :root::after { 280 | content: 'Density: ~384dpi (4X)\a Breakpoint: extraSmall 20em\a Orientation: Landscape'; 281 | } 282 | } 283 | 284 | @media screen and (min-resolution: 384dpi) and (min-width: 48em) { 285 | :root::after { 286 | content: 'Density: ~384dpi (4X)\a Breakpoint: small 48em'; 287 | } 288 | } 289 | 290 | @media screen and (min-resolution: 384dpi) and (min-width: 48em) and (orientation: portrait) { 291 | :root::after { 292 | content: 'Density: ~384dpi (4X)\a Breakpoint: small 48em\a Orientation: Portrait'; 293 | } 294 | } 295 | 296 | @media screen and (min-resolution: 384dpi) and (min-width: 48em) and (orientation: landscape) { 297 | :root::after { 298 | content: 'Density: ~384dpi (4X)\a Breakpoint: small 48em\a Orientation: Landscape'; 299 | } 300 | } --------------------------------------------------------------------------------