├── .editorconfig ├── .gitignore ├── .npmignore ├── README.md ├── generator ├── index.js └── templates │ ├── .eslintrc.js │ ├── postcss.config.js │ ├── src │ └── assets │ │ └── styles │ │ └── tailwind.postcss │ └── tailwind.config.js ├── index.js ├── package-lock.json └── package.json /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | end_of_line = lf 6 | indent_size = 2 7 | indent_style = tab 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [**/templates/**] 12 | indent_style = space 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules* 2 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | node_modules* 2 | .* 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # vue-cli-plugin-tailwind 2 | 3 | [Tailwind CSS](https://tailwindcss.com/docs/what-is-tailwind)'s utility classes are minned by [Purgecss](https://www.purgecss.com), saving hundreds of kBs in production builds. [postcss-preset-env](https://preset-env.cssdb.org/features) polyfills modern CSS standards based on your `browserslist` configuration. 4 | 5 | 6 | ## Install 7 | 8 | ### TailwindCSS v1.0 9 | 10 | ```console 11 | vue add @ky-is/tailwind 12 | ``` 13 | 14 | When the plugin is updated, you can upgrade your configuration with: 15 | ```console 16 | vue invoke @ky-is/tailwind 17 | ``` 18 | 19 | ### TailwindCSS v0.x 20 | 21 | See the [`tailwind-0.x` branch](https://github.com/ky-is/vue-cli-plugin-tailwind/tree/tailwind-0.x). 22 | 23 | 24 | ## Usage 25 | 26 | Use inline classes, or `@apply`. For example, in `src/components/HelloWorld.vue` of the auto-generated cli app: 27 | ```html 28 | 33 | ``` 34 | 35 | Applies scoped, browser-prefixed CSS, while PurgeCSS strips all other unused classes, including the thousands generated by Tailwind. 36 | 37 | 38 | ## Configuration 39 | 40 | ### `postcss.config.js` Plugins 41 | 42 | - `postcss-preset-env`: Defaults to stage 2, as these draft proposals are considered reasonably stable. If you want to enable handy experimental features like nested classes (`a { &:hover: {...} }`), change to `stage: 0`. You can safely delete this plugin from the list if you only write old CSS or use another preprocessor. 43 | 44 | - `@fullhuman/postcss-purgecss`: Purgecss removes all CSS classes that it can't find reference to. By default, all Vue and style files in the `src` folder are included. Adjust `content` array if you have CSS classes in other files. Add class names to the `whitelist` array you want to manually prevent PurgeCSS from removing if it thinks they're unused. 45 | 46 | ### Whitelisting 47 | 48 | Any CSS class that isn't used inside your `.html` files in `public/`, or by your `.vue` components (outside of the `\n` 42 | } 43 | files[appFileName] = lines.join('\n') 44 | }) 45 | } 46 | -------------------------------------------------------------------------------- /generator/templates/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | rules: { 3 | 'indent': [ 'error', 2 ], 4 | }, 5 | } 6 | -------------------------------------------------------------------------------- /generator/templates/postcss.config.js: -------------------------------------------------------------------------------- 1 | const IN_PRODUCTION = process.env.NODE_ENV === 'production' 2 | 3 | module.exports = { 4 | plugins: [ 5 | require('postcss-preset-env')({ stage: 0 }), 6 | require('tailwindcss')(), 7 | IN_PRODUCTION && require('@fullhuman/postcss-purgecss')({ 8 | content: [ `./public/**/*.html`, `./src/**/*.vue` ], 9 | defaultExtractor (content) { 10 | const contentWithoutStyleBlocks = content.replace(//gi, '') 11 | return contentWithoutStyleBlocks.match(/[A-Za-z0-9-_/:]*[A-Za-z0-9-_/]+/g) || [] 12 | }, 13 | whitelist: [], 14 | whitelistPatterns: [ /-(leave|enter|appear)(|-(to|from|active))$/, /^(?!(|.*?:)cursor-move).+-move$/, /^router-link(|-exact)-active$/ ], 15 | }), 16 | require('autoprefixer')(), 17 | ], 18 | } 19 | -------------------------------------------------------------------------------- /generator/templates/src/assets/styles/tailwind.postcss: -------------------------------------------------------------------------------- 1 | @import '~tailwindcss/base.css'; 2 | 3 | /** 4 | * This injects any component classes registered by plugins. 5 | */ 6 | @import '~tailwindcss/components.css'; 7 | 8 | /** 9 | * Here you would add any of your custom component classes; stuff that you'd 10 | * want loaded *before* the utilities so that the utilities could still 11 | * override them. 12 | * 13 | * Example: 14 | * @import 'components/buttons'; 15 | */ 16 | 17 | /** 18 | * This injects all of Tailwind's utility classes, generated based on your 19 | * config file. 20 | */ 21 | @import '~tailwindcss/utilities.css'; 22 | 23 | /** 24 | * Here you would add any custom utilities you need that don't come out of the 25 | * box with Tailwind. 26 | * 27 | * Example: 28 | * @import 'utilities/background-patterns'; 29 | */ 30 | -------------------------------------------------------------------------------- /generator/templates/tailwind.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | theme: { 3 | extend: { 4 | inset: { 5 | 'full': '100%', 6 | }, 7 | opacity: { 8 | '10': '0.1', 9 | '90': '0.9', 10 | }, 11 | }, 12 | }, 13 | variants: { 14 | appearance: ['responsive'], 15 | backgroundAttachment: ['responsive'], 16 | backgroundColor: ['responsive', 'hover', 'focus'], 17 | backgroundPosition: ['responsive'], 18 | backgroundRepeat: ['responsive'], 19 | backgroundSize: ['responsive'], 20 | borderCollapse: [], 21 | borderColor: ['responsive', 'hover', 'focus'], 22 | borderRadius: ['responsive'], 23 | borderStyle: ['responsive'], 24 | borderWidth: ['responsive'], 25 | cursor: ['responsive'], 26 | display: ['responsive', 'group-hover'], 27 | flexDirection: ['responsive'], 28 | flexWrap: ['responsive'], 29 | alignItems: ['responsive'], 30 | alignSelf: ['responsive'], 31 | justifyContent: ['responsive'], 32 | alignContent: ['responsive'], 33 | flex: ['responsive'], 34 | flexGrow: ['responsive'], 35 | flexShrink: ['responsive'], 36 | float: ['responsive'], 37 | fontFamily: ['responsive'], 38 | fontWeight: ['responsive', 'hover', 'focus'], 39 | height: ['responsive'], 40 | lineHeight: ['responsive'], 41 | listStylePosition: ['responsive'], 42 | listStyleType: ['responsive'], 43 | margin: ['responsive'], 44 | maxHeight: ['responsive'], 45 | maxWidth: ['responsive'], 46 | minHeight: ['responsive'], 47 | minWidth: ['responsive'], 48 | negativeMargin: ['responsive'], 49 | objectFit: ['responsive'], 50 | objectPosition: ['responsive'], 51 | opacity: ['responsive'], 52 | outline: ['focus'], 53 | overflow: ['responsive'], 54 | padding: ['responsive'], 55 | pointerEvents: ['responsive'], 56 | position: ['responsive'], 57 | inset: ['responsive'], 58 | resize: ['responsive'], 59 | boxShadow: ['responsive', 'hover', 'focus'], 60 | fill: [], 61 | stroke: [], 62 | tableLayout: ['responsive'], 63 | textAlign: ['responsive'], 64 | textColor: ['responsive', 'hover', 'focus'], 65 | fontSize: ['responsive'], 66 | fontStyle: ['responsive'], 67 | textTransform: ['responsive'], 68 | textDecoration: ['responsive', 'hover', 'focus'], 69 | fontSmoothing: ['responsive'], 70 | letterSpacing: ['responsive'], 71 | userSelect: ['responsive'], 72 | verticalAlign: ['responsive'], 73 | visibility: ['responsive', 'hover', 'group-hover'], 74 | whitespace: ['responsive'], 75 | wordBreak: ['responsive'], 76 | width: ['responsive'], 77 | zIndex: ['responsive'], 78 | }, 79 | corePlugins: { 80 | container: false, 81 | }, 82 | plugins: [], 83 | } 84 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | module.exports = () => {} 2 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@ky-is/vue-cli-plugin-tailwind", 3 | "version": "2.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@babel/code-frame": { 8 | "version": "7.0.0", 9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", 10 | "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", 11 | "dev": true, 12 | "requires": { 13 | "@babel/highlight": "^7.0.0" 14 | } 15 | }, 16 | "@babel/highlight": { 17 | "version": "7.0.0", 18 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", 19 | "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", 20 | "dev": true, 21 | "requires": { 22 | "chalk": "^2.0.0", 23 | "esutils": "^2.0.2", 24 | "js-tokens": "^4.0.0" 25 | } 26 | }, 27 | "@ky-is/eslint-config": { 28 | "version": "1.7.0", 29 | "resolved": "https://registry.npmjs.org/@ky-is/eslint-config/-/eslint-config-1.7.0.tgz", 30 | "integrity": "sha512-kBJ5H7VOPUtZx4cM+G6WIs5dupYbJ+x2Lefz/p7SmOTYfJf0jMJkJG2f3TIHDxi10Tex6TDBvF/+doQDHrU/cw==", 31 | "dev": true 32 | }, 33 | "acorn": { 34 | "version": "6.1.1", 35 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz", 36 | "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==", 37 | "dev": true 38 | }, 39 | "acorn-jsx": { 40 | "version": "5.0.1", 41 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz", 42 | "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==", 43 | "dev": true 44 | }, 45 | "ajv": { 46 | "version": "6.10.0", 47 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", 48 | "integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==", 49 | "dev": true, 50 | "requires": { 51 | "fast-deep-equal": "^2.0.1", 52 | "fast-json-stable-stringify": "^2.0.0", 53 | "json-schema-traverse": "^0.4.1", 54 | "uri-js": "^4.2.2" 55 | } 56 | }, 57 | "ansi-escapes": { 58 | "version": "3.2.0", 59 | "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", 60 | "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", 61 | "dev": true 62 | }, 63 | "ansi-regex": { 64 | "version": "3.0.0", 65 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", 66 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", 67 | "dev": true 68 | }, 69 | "ansi-styles": { 70 | "version": "3.2.1", 71 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 72 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 73 | "dev": true, 74 | "requires": { 75 | "color-convert": "^1.9.0" 76 | } 77 | }, 78 | "argparse": { 79 | "version": "1.0.10", 80 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", 81 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", 82 | "dev": true, 83 | "requires": { 84 | "sprintf-js": "~1.0.2" 85 | } 86 | }, 87 | "astral-regex": { 88 | "version": "1.0.0", 89 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", 90 | "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", 91 | "dev": true 92 | }, 93 | "balanced-match": { 94 | "version": "1.0.0", 95 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 96 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 97 | "dev": true 98 | }, 99 | "brace-expansion": { 100 | "version": "1.1.11", 101 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 102 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 103 | "dev": true, 104 | "requires": { 105 | "balanced-match": "^1.0.0", 106 | "concat-map": "0.0.1" 107 | } 108 | }, 109 | "callsites": { 110 | "version": "3.1.0", 111 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", 112 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", 113 | "dev": true 114 | }, 115 | "chalk": { 116 | "version": "2.4.2", 117 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 118 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 119 | "dev": true, 120 | "requires": { 121 | "ansi-styles": "^3.2.1", 122 | "escape-string-regexp": "^1.0.5", 123 | "supports-color": "^5.3.0" 124 | } 125 | }, 126 | "chardet": { 127 | "version": "0.7.0", 128 | "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", 129 | "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", 130 | "dev": true 131 | }, 132 | "cli-cursor": { 133 | "version": "2.1.0", 134 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", 135 | "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", 136 | "dev": true, 137 | "requires": { 138 | "restore-cursor": "^2.0.0" 139 | } 140 | }, 141 | "cli-width": { 142 | "version": "2.2.0", 143 | "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", 144 | "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", 145 | "dev": true 146 | }, 147 | "color-convert": { 148 | "version": "1.9.3", 149 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 150 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 151 | "dev": true, 152 | "requires": { 153 | "color-name": "1.1.3" 154 | } 155 | }, 156 | "color-name": { 157 | "version": "1.1.3", 158 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 159 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 160 | "dev": true 161 | }, 162 | "concat-map": { 163 | "version": "0.0.1", 164 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 165 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 166 | "dev": true 167 | }, 168 | "cross-spawn": { 169 | "version": "6.0.5", 170 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", 171 | "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", 172 | "dev": true, 173 | "requires": { 174 | "nice-try": "^1.0.4", 175 | "path-key": "^2.0.1", 176 | "semver": "^5.5.0", 177 | "shebang-command": "^1.2.0", 178 | "which": "^1.2.9" 179 | } 180 | }, 181 | "debug": { 182 | "version": "4.1.1", 183 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", 184 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", 185 | "dev": true, 186 | "requires": { 187 | "ms": "^2.1.1" 188 | } 189 | }, 190 | "deep-is": { 191 | "version": "0.1.3", 192 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", 193 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", 194 | "dev": true 195 | }, 196 | "doctrine": { 197 | "version": "3.0.0", 198 | "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", 199 | "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", 200 | "dev": true, 201 | "requires": { 202 | "esutils": "^2.0.2" 203 | } 204 | }, 205 | "emoji-regex": { 206 | "version": "7.0.3", 207 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", 208 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", 209 | "dev": true 210 | }, 211 | "escape-string-regexp": { 212 | "version": "1.0.5", 213 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 214 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 215 | "dev": true 216 | }, 217 | "eslint": { 218 | "version": "5.16.0", 219 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", 220 | "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", 221 | "dev": true, 222 | "requires": { 223 | "@babel/code-frame": "^7.0.0", 224 | "ajv": "^6.9.1", 225 | "chalk": "^2.1.0", 226 | "cross-spawn": "^6.0.5", 227 | "debug": "^4.0.1", 228 | "doctrine": "^3.0.0", 229 | "eslint-scope": "^4.0.3", 230 | "eslint-utils": "^1.3.1", 231 | "eslint-visitor-keys": "^1.0.0", 232 | "espree": "^5.0.1", 233 | "esquery": "^1.0.1", 234 | "esutils": "^2.0.2", 235 | "file-entry-cache": "^5.0.1", 236 | "functional-red-black-tree": "^1.0.1", 237 | "glob": "^7.1.2", 238 | "globals": "^11.7.0", 239 | "ignore": "^4.0.6", 240 | "import-fresh": "^3.0.0", 241 | "imurmurhash": "^0.1.4", 242 | "inquirer": "^6.2.2", 243 | "js-yaml": "^3.13.0", 244 | "json-stable-stringify-without-jsonify": "^1.0.1", 245 | "levn": "^0.3.0", 246 | "lodash": "^4.17.11", 247 | "minimatch": "^3.0.4", 248 | "mkdirp": "^0.5.1", 249 | "natural-compare": "^1.4.0", 250 | "optionator": "^0.8.2", 251 | "path-is-inside": "^1.0.2", 252 | "progress": "^2.0.0", 253 | "regexpp": "^2.0.1", 254 | "semver": "^5.5.1", 255 | "strip-ansi": "^4.0.0", 256 | "strip-json-comments": "^2.0.1", 257 | "table": "^5.2.3", 258 | "text-table": "^0.2.0" 259 | } 260 | }, 261 | "eslint-scope": { 262 | "version": "4.0.3", 263 | "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", 264 | "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", 265 | "dev": true, 266 | "requires": { 267 | "esrecurse": "^4.1.0", 268 | "estraverse": "^4.1.1" 269 | } 270 | }, 271 | "eslint-utils": { 272 | "version": "1.3.1", 273 | "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.3.1.tgz", 274 | "integrity": "sha512-Z7YjnIldX+2XMcjr7ZkgEsOj/bREONV60qYeB/bjMAqqqZ4zxKyWX+BOUkdmRmA9riiIPVvo5x86m5elviOk0Q==", 275 | "dev": true 276 | }, 277 | "eslint-visitor-keys": { 278 | "version": "1.0.0", 279 | "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", 280 | "integrity": "sha512-qzm/XxIbxm/FHyH341ZrbnMUpe+5Bocte9xkmFMzPMjRaZMcXww+MpBptFvtU+79L362nqiLhekCxCxDPaUMBQ==", 281 | "dev": true 282 | }, 283 | "espree": { 284 | "version": "5.0.1", 285 | "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", 286 | "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", 287 | "dev": true, 288 | "requires": { 289 | "acorn": "^6.0.7", 290 | "acorn-jsx": "^5.0.0", 291 | "eslint-visitor-keys": "^1.0.0" 292 | } 293 | }, 294 | "esprima": { 295 | "version": "4.0.1", 296 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", 297 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", 298 | "dev": true 299 | }, 300 | "esquery": { 301 | "version": "1.0.1", 302 | "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.0.1.tgz", 303 | "integrity": "sha512-SmiyZ5zIWH9VM+SRUReLS5Q8a7GxtRdxEBVZpm98rJM7Sb+A9DVCndXfkeFUd3byderg+EbDkfnevfCwynWaNA==", 304 | "dev": true, 305 | "requires": { 306 | "estraverse": "^4.0.0" 307 | } 308 | }, 309 | "esrecurse": { 310 | "version": "4.2.1", 311 | "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", 312 | "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", 313 | "dev": true, 314 | "requires": { 315 | "estraverse": "^4.1.0" 316 | } 317 | }, 318 | "estraverse": { 319 | "version": "4.2.0", 320 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", 321 | "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", 322 | "dev": true 323 | }, 324 | "esutils": { 325 | "version": "2.0.2", 326 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 327 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", 328 | "dev": true 329 | }, 330 | "external-editor": { 331 | "version": "3.0.3", 332 | "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.0.3.tgz", 333 | "integrity": "sha512-bn71H9+qWoOQKyZDo25mOMVpSmXROAsTJVVVYzrrtol3d4y+AsKjf4Iwl2Q+IuT0kFSQ1qo166UuIwqYq7mGnA==", 334 | "dev": true, 335 | "requires": { 336 | "chardet": "^0.7.0", 337 | "iconv-lite": "^0.4.24", 338 | "tmp": "^0.0.33" 339 | } 340 | }, 341 | "fast-deep-equal": { 342 | "version": "2.0.1", 343 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", 344 | "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", 345 | "dev": true 346 | }, 347 | "fast-json-stable-stringify": { 348 | "version": "2.0.0", 349 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", 350 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", 351 | "dev": true 352 | }, 353 | "fast-levenshtein": { 354 | "version": "2.0.6", 355 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", 356 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", 357 | "dev": true 358 | }, 359 | "figures": { 360 | "version": "2.0.0", 361 | "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", 362 | "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", 363 | "dev": true, 364 | "requires": { 365 | "escape-string-regexp": "^1.0.5" 366 | } 367 | }, 368 | "file-entry-cache": { 369 | "version": "5.0.1", 370 | "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", 371 | "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", 372 | "dev": true, 373 | "requires": { 374 | "flat-cache": "^2.0.1" 375 | } 376 | }, 377 | "flat-cache": { 378 | "version": "2.0.1", 379 | "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", 380 | "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", 381 | "dev": true, 382 | "requires": { 383 | "flatted": "^2.0.0", 384 | "rimraf": "2.6.3", 385 | "write": "1.0.3" 386 | } 387 | }, 388 | "flatted": { 389 | "version": "2.0.0", 390 | "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.0.tgz", 391 | "integrity": "sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg==", 392 | "dev": true 393 | }, 394 | "fs.realpath": { 395 | "version": "1.0.0", 396 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 397 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 398 | "dev": true 399 | }, 400 | "functional-red-black-tree": { 401 | "version": "1.0.1", 402 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", 403 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", 404 | "dev": true 405 | }, 406 | "glob": { 407 | "version": "7.1.4", 408 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", 409 | "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", 410 | "dev": true, 411 | "requires": { 412 | "fs.realpath": "^1.0.0", 413 | "inflight": "^1.0.4", 414 | "inherits": "2", 415 | "minimatch": "^3.0.4", 416 | "once": "^1.3.0", 417 | "path-is-absolute": "^1.0.0" 418 | } 419 | }, 420 | "globals": { 421 | "version": "11.12.0", 422 | "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", 423 | "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", 424 | "dev": true 425 | }, 426 | "has-flag": { 427 | "version": "3.0.0", 428 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 429 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 430 | "dev": true 431 | }, 432 | "iconv-lite": { 433 | "version": "0.4.24", 434 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 435 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", 436 | "dev": true, 437 | "requires": { 438 | "safer-buffer": ">= 2.1.2 < 3" 439 | } 440 | }, 441 | "ignore": { 442 | "version": "4.0.6", 443 | "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", 444 | "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", 445 | "dev": true 446 | }, 447 | "import-fresh": { 448 | "version": "3.0.0", 449 | "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.0.0.tgz", 450 | "integrity": "sha512-pOnA9tfM3Uwics+SaBLCNyZZZbK+4PTu0OPZtLlMIrv17EdBoC15S9Kn8ckJ9TZTyKb3ywNE5y1yeDxxGA7nTQ==", 451 | "dev": true, 452 | "requires": { 453 | "parent-module": "^1.0.0", 454 | "resolve-from": "^4.0.0" 455 | } 456 | }, 457 | "imurmurhash": { 458 | "version": "0.1.4", 459 | "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", 460 | "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", 461 | "dev": true 462 | }, 463 | "inflight": { 464 | "version": "1.0.6", 465 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 466 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 467 | "dev": true, 468 | "requires": { 469 | "once": "^1.3.0", 470 | "wrappy": "1" 471 | } 472 | }, 473 | "inherits": { 474 | "version": "2.0.3", 475 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 476 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", 477 | "dev": true 478 | }, 479 | "inquirer": { 480 | "version": "6.3.1", 481 | "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.3.1.tgz", 482 | "integrity": "sha512-MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA==", 483 | "dev": true, 484 | "requires": { 485 | "ansi-escapes": "^3.2.0", 486 | "chalk": "^2.4.2", 487 | "cli-cursor": "^2.1.0", 488 | "cli-width": "^2.0.0", 489 | "external-editor": "^3.0.3", 490 | "figures": "^2.0.0", 491 | "lodash": "^4.17.11", 492 | "mute-stream": "0.0.7", 493 | "run-async": "^2.2.0", 494 | "rxjs": "^6.4.0", 495 | "string-width": "^2.1.0", 496 | "strip-ansi": "^5.1.0", 497 | "through": "^2.3.6" 498 | }, 499 | "dependencies": { 500 | "ansi-regex": { 501 | "version": "4.1.0", 502 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 503 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 504 | "dev": true 505 | }, 506 | "strip-ansi": { 507 | "version": "5.2.0", 508 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 509 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 510 | "dev": true, 511 | "requires": { 512 | "ansi-regex": "^4.1.0" 513 | } 514 | } 515 | } 516 | }, 517 | "is-fullwidth-code-point": { 518 | "version": "2.0.0", 519 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", 520 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", 521 | "dev": true 522 | }, 523 | "is-promise": { 524 | "version": "2.1.0", 525 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", 526 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", 527 | "dev": true 528 | }, 529 | "isexe": { 530 | "version": "2.0.0", 531 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", 532 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", 533 | "dev": true 534 | }, 535 | "js-tokens": { 536 | "version": "4.0.0", 537 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 538 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 539 | "dev": true 540 | }, 541 | "js-yaml": { 542 | "version": "3.13.1", 543 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", 544 | "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", 545 | "dev": true, 546 | "requires": { 547 | "argparse": "^1.0.7", 548 | "esprima": "^4.0.0" 549 | } 550 | }, 551 | "json-schema-traverse": { 552 | "version": "0.4.1", 553 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", 554 | "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 555 | "dev": true 556 | }, 557 | "json-stable-stringify-without-jsonify": { 558 | "version": "1.0.1", 559 | "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 560 | "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", 561 | "dev": true 562 | }, 563 | "levn": { 564 | "version": "0.3.0", 565 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", 566 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", 567 | "dev": true, 568 | "requires": { 569 | "prelude-ls": "~1.1.2", 570 | "type-check": "~0.3.2" 571 | } 572 | }, 573 | "lodash": { 574 | "version": "4.17.11", 575 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", 576 | "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", 577 | "dev": true 578 | }, 579 | "mimic-fn": { 580 | "version": "1.2.0", 581 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", 582 | "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", 583 | "dev": true 584 | }, 585 | "minimatch": { 586 | "version": "3.0.4", 587 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 588 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 589 | "dev": true, 590 | "requires": { 591 | "brace-expansion": "^1.1.7" 592 | } 593 | }, 594 | "minimist": { 595 | "version": "0.0.8", 596 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 597 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", 598 | "dev": true 599 | }, 600 | "mkdirp": { 601 | "version": "0.5.1", 602 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 603 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 604 | "dev": true, 605 | "requires": { 606 | "minimist": "0.0.8" 607 | } 608 | }, 609 | "ms": { 610 | "version": "2.1.1", 611 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", 612 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", 613 | "dev": true 614 | }, 615 | "mute-stream": { 616 | "version": "0.0.7", 617 | "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", 618 | "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", 619 | "dev": true 620 | }, 621 | "natural-compare": { 622 | "version": "1.4.0", 623 | "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", 624 | "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", 625 | "dev": true 626 | }, 627 | "nice-try": { 628 | "version": "1.0.5", 629 | "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", 630 | "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", 631 | "dev": true 632 | }, 633 | "once": { 634 | "version": "1.4.0", 635 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 636 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 637 | "dev": true, 638 | "requires": { 639 | "wrappy": "1" 640 | } 641 | }, 642 | "onetime": { 643 | "version": "2.0.1", 644 | "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", 645 | "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", 646 | "dev": true, 647 | "requires": { 648 | "mimic-fn": "^1.0.0" 649 | } 650 | }, 651 | "optionator": { 652 | "version": "0.8.2", 653 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", 654 | "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", 655 | "dev": true, 656 | "requires": { 657 | "deep-is": "~0.1.3", 658 | "fast-levenshtein": "~2.0.4", 659 | "levn": "~0.3.0", 660 | "prelude-ls": "~1.1.2", 661 | "type-check": "~0.3.2", 662 | "wordwrap": "~1.0.0" 663 | } 664 | }, 665 | "os-tmpdir": { 666 | "version": "1.0.2", 667 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 668 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", 669 | "dev": true 670 | }, 671 | "parent-module": { 672 | "version": "1.0.1", 673 | "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", 674 | "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", 675 | "dev": true, 676 | "requires": { 677 | "callsites": "^3.0.0" 678 | } 679 | }, 680 | "path-is-absolute": { 681 | "version": "1.0.1", 682 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 683 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 684 | "dev": true 685 | }, 686 | "path-is-inside": { 687 | "version": "1.0.2", 688 | "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", 689 | "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", 690 | "dev": true 691 | }, 692 | "path-key": { 693 | "version": "2.0.1", 694 | "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", 695 | "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", 696 | "dev": true 697 | }, 698 | "prelude-ls": { 699 | "version": "1.1.2", 700 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", 701 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", 702 | "dev": true 703 | }, 704 | "progress": { 705 | "version": "2.0.3", 706 | "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", 707 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", 708 | "dev": true 709 | }, 710 | "punycode": { 711 | "version": "2.1.1", 712 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 713 | "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", 714 | "dev": true 715 | }, 716 | "regexpp": { 717 | "version": "2.0.1", 718 | "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", 719 | "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", 720 | "dev": true 721 | }, 722 | "resolve-from": { 723 | "version": "4.0.0", 724 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", 725 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", 726 | "dev": true 727 | }, 728 | "restore-cursor": { 729 | "version": "2.0.0", 730 | "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", 731 | "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", 732 | "dev": true, 733 | "requires": { 734 | "onetime": "^2.0.0", 735 | "signal-exit": "^3.0.2" 736 | } 737 | }, 738 | "rimraf": { 739 | "version": "2.6.3", 740 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", 741 | "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", 742 | "dev": true, 743 | "requires": { 744 | "glob": "^7.1.3" 745 | } 746 | }, 747 | "run-async": { 748 | "version": "2.3.0", 749 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", 750 | "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", 751 | "dev": true, 752 | "requires": { 753 | "is-promise": "^2.1.0" 754 | } 755 | }, 756 | "rxjs": { 757 | "version": "6.5.2", 758 | "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz", 759 | "integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==", 760 | "dev": true, 761 | "requires": { 762 | "tslib": "^1.9.0" 763 | } 764 | }, 765 | "safer-buffer": { 766 | "version": "2.1.2", 767 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 768 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", 769 | "dev": true 770 | }, 771 | "semver": { 772 | "version": "5.7.0", 773 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", 774 | "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", 775 | "dev": true 776 | }, 777 | "shebang-command": { 778 | "version": "1.2.0", 779 | "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", 780 | "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", 781 | "dev": true, 782 | "requires": { 783 | "shebang-regex": "^1.0.0" 784 | } 785 | }, 786 | "shebang-regex": { 787 | "version": "1.0.0", 788 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", 789 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", 790 | "dev": true 791 | }, 792 | "signal-exit": { 793 | "version": "3.0.2", 794 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 795 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", 796 | "dev": true 797 | }, 798 | "slice-ansi": { 799 | "version": "2.1.0", 800 | "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", 801 | "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", 802 | "dev": true, 803 | "requires": { 804 | "ansi-styles": "^3.2.0", 805 | "astral-regex": "^1.0.0", 806 | "is-fullwidth-code-point": "^2.0.0" 807 | } 808 | }, 809 | "sprintf-js": { 810 | "version": "1.0.3", 811 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", 812 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", 813 | "dev": true 814 | }, 815 | "string-width": { 816 | "version": "2.1.1", 817 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", 818 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", 819 | "dev": true, 820 | "requires": { 821 | "is-fullwidth-code-point": "^2.0.0", 822 | "strip-ansi": "^4.0.0" 823 | } 824 | }, 825 | "strip-ansi": { 826 | "version": "4.0.0", 827 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", 828 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", 829 | "dev": true, 830 | "requires": { 831 | "ansi-regex": "^3.0.0" 832 | } 833 | }, 834 | "strip-json-comments": { 835 | "version": "2.0.1", 836 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 837 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", 838 | "dev": true 839 | }, 840 | "supports-color": { 841 | "version": "5.5.0", 842 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 843 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 844 | "dev": true, 845 | "requires": { 846 | "has-flag": "^3.0.0" 847 | } 848 | }, 849 | "table": { 850 | "version": "5.3.3", 851 | "resolved": "https://registry.npmjs.org/table/-/table-5.3.3.tgz", 852 | "integrity": "sha512-3wUNCgdWX6PNpOe3amTTPWPuF6VGvgzjKCaO1snFj0z7Y3mUPWf5+zDtxUVGispJkDECPmR29wbzh6bVMOHbcw==", 853 | "dev": true, 854 | "requires": { 855 | "ajv": "^6.9.1", 856 | "lodash": "^4.17.11", 857 | "slice-ansi": "^2.1.0", 858 | "string-width": "^3.0.0" 859 | }, 860 | "dependencies": { 861 | "ansi-regex": { 862 | "version": "4.1.0", 863 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", 864 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", 865 | "dev": true 866 | }, 867 | "string-width": { 868 | "version": "3.1.0", 869 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", 870 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", 871 | "dev": true, 872 | "requires": { 873 | "emoji-regex": "^7.0.1", 874 | "is-fullwidth-code-point": "^2.0.0", 875 | "strip-ansi": "^5.1.0" 876 | } 877 | }, 878 | "strip-ansi": { 879 | "version": "5.2.0", 880 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", 881 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", 882 | "dev": true, 883 | "requires": { 884 | "ansi-regex": "^4.1.0" 885 | } 886 | } 887 | } 888 | }, 889 | "text-table": { 890 | "version": "0.2.0", 891 | "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", 892 | "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", 893 | "dev": true 894 | }, 895 | "through": { 896 | "version": "2.3.8", 897 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 898 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", 899 | "dev": true 900 | }, 901 | "tmp": { 902 | "version": "0.0.33", 903 | "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", 904 | "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", 905 | "dev": true, 906 | "requires": { 907 | "os-tmpdir": "~1.0.2" 908 | } 909 | }, 910 | "tslib": { 911 | "version": "1.9.3", 912 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", 913 | "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==", 914 | "dev": true 915 | }, 916 | "type-check": { 917 | "version": "0.3.2", 918 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", 919 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", 920 | "dev": true, 921 | "requires": { 922 | "prelude-ls": "~1.1.2" 923 | } 924 | }, 925 | "uri-js": { 926 | "version": "4.2.2", 927 | "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", 928 | "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", 929 | "dev": true, 930 | "requires": { 931 | "punycode": "^2.1.0" 932 | } 933 | }, 934 | "which": { 935 | "version": "1.3.1", 936 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", 937 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", 938 | "dev": true, 939 | "requires": { 940 | "isexe": "^2.0.0" 941 | } 942 | }, 943 | "wordwrap": { 944 | "version": "1.0.0", 945 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", 946 | "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", 947 | "dev": true 948 | }, 949 | "wrappy": { 950 | "version": "1.0.2", 951 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 952 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 953 | "dev": true 954 | }, 955 | "write": { 956 | "version": "1.0.3", 957 | "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", 958 | "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", 959 | "dev": true, 960 | "requires": { 961 | "mkdirp": "^0.5.1" 962 | } 963 | } 964 | } 965 | } 966 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@ky-is/vue-cli-plugin-tailwind", 3 | "version": "2.0.0", 4 | "description": "Write utility-first CSS with future standards in your Vue app using TailwindCSS.", 5 | "author": "Kyle Coburn", 6 | "license": "ISC", 7 | "repository": { 8 | "type": "git", 9 | "url": "git+https://github.com/ky-is/vue-cli-plugin-tailwind.git" 10 | }, 11 | "bugs": { 12 | "url": "https://github.com/ky-is/vue-cli-plugin-tailwind/issues" 13 | }, 14 | "homepage": "https://github.com/ky-is/vue-cli-plugin-tailwind#readme", 15 | "devDependencies": { 16 | "@ky-is/eslint-config": "^1.7.0", 17 | "eslint": "^5.16.0" 18 | }, 19 | "eslintConfig": { 20 | "extends": "@ky-is" 21 | } 22 | } 23 | --------------------------------------------------------------------------------