From c9c3756b1f17b4bbaf1472fcefab13e463913d91 Mon Sep 17 00:00:00 2001 From: Bittermeatball Date: Fri, 23 Apr 2021 01:11:25 +0700 Subject: [PATCH] :hammer: Upgrade tailwindCSS to 2.1+ with JIT engine --- .env | 1 - .gitignore | 2 +- .vscode/README.md | 3 + .vscode/_scaffold-blocks.code-snippets | 74 ++++++++++++ .vscode/_service-functions.code-snippets | 42 +++++++ .vscode/_util-components.code-snippets | 21 ++++ .vscode/_util-dev-functions.code-snippets | 43 +++++++ .vscode/_util-directives.code-snippets | 30 +++++ .vscode/_util-filters.code-snippets | 44 ++++++++ .vscode/_util-imports.code-snippets | 92 +++++++++++++++ .vscode/extensions.json | 30 +++++ .vscode/settings.json | 132 ++++++++++++++++++++++ package.json | 9 +- tailwind.config.js | 7 +- yarn.lock | 85 ++++++++++++-- 15 files changed, 600 insertions(+), 15 deletions(-) delete mode 100644 .env create mode 100644 .vscode/README.md create mode 100644 .vscode/_scaffold-blocks.code-snippets create mode 100644 .vscode/_service-functions.code-snippets create mode 100644 .vscode/_util-components.code-snippets create mode 100644 .vscode/_util-dev-functions.code-snippets create mode 100644 .vscode/_util-directives.code-snippets create mode 100644 .vscode/_util-filters.code-snippets create mode 100644 .vscode/_util-imports.code-snippets create mode 100644 .vscode/extensions.json create mode 100644 .vscode/settings.json diff --git a/.env b/.env deleted file mode 100644 index 5fa0e43..0000000 --- a/.env +++ /dev/null @@ -1 +0,0 @@ -VUE_APP_API_URL=https://6034d2676496b9001749dbad.mockapi.io/api/v1/ diff --git a/.gitignore b/.gitignore index 403adbc..51531e4 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ node_modules # local env files +.env .env.local .env.*.local @@ -15,7 +16,6 @@ pnpm-debug.log* # Editor directories and files .idea -.vscode *.suo *.ntvs* *.njsproj diff --git a/.vscode/README.md b/.vscode/README.md new file mode 100644 index 0000000..77592f3 --- /dev/null +++ b/.vscode/README.md @@ -0,0 +1,3 @@ +# Custom VS Code snippets + +See VS Code docs: diff --git a/.vscode/_scaffold-blocks.code-snippets b/.vscode/_scaffold-blocks.code-snippets new file mode 100644 index 0000000..438563e --- /dev/null +++ b/.vscode/_scaffold-blocks.code-snippets @@ -0,0 +1,74 @@ +{ + "Vue 2 composition API component": { + "scope": "vue", + "prefix": "scf", + "body": [ + "", + "", + "", + "", + "", + "", + "" + ], + "description": "Scaffold a vue component with vue 2 composition API" + }, + "Vue 2 composition API script": { + "scope": "vue", + "prefix": "script vue", + "body": [ + "", + "" + ], + "description": "Vue 2 composition API script tag" + }, + "Vue style tags": { + "scope": "vue", + "prefix": "style vue", + "body": [ + "", + "", + "", + "", + "" + ], + "description": "Vue style tags, including scoped and non-scoped" + } +} diff --git a/.vscode/_service-functions.code-snippets b/.vscode/_service-functions.code-snippets new file mode 100644 index 0000000..cb9ca37 --- /dev/null +++ b/.vscode/_service-functions.code-snippets @@ -0,0 +1,42 @@ +{ + "clientApi": { + "scope": "javascript", + "prefix": "clientApi", + "body": ["$$clientApi",], + }, + "$clientApi": { + "scope": "javascript", + "prefix": "$clientApi", + "body": ["$$clientApi",], + }, + "this.clientApi": { + "scope": "javascript", + "prefix": "this.clientApi", + "body": ["this.$$clientApi",], + }, + "import $clientApi": { + "scope": "javascript", + "prefix": "import clientApi", + "body": ["import { clientApi } from '@services/client'",], + }, + "authApi": { + "scope": "javascript", + "prefix": "authApi", + "body": ["$$authApi",], + }, + "$authApi": { + "scope": "javascript", + "prefix": "$authApi", + "body": ["$$authApi",], + }, + "this.authApi": { + "scope": "javascript", + "prefix": "this.authApi", + "body": ["this.$$authApi",], + }, + "import $authApi": { + "scope": "javascript", + "prefix": "import authApi", + "body": ["import { authApi } from '@services/auth'",], + }, +} diff --git a/.vscode/_util-components.code-snippets b/.vscode/_util-components.code-snippets new file mode 100644 index 0000000..ea7dc47 --- /dev/null +++ b/.vscode/_util-components.code-snippets @@ -0,0 +1,21 @@ +{ + "Auth": { + "scope": "vue-html", + // Avoid duplicate prefix with v-auth directive + "prefix": "", + "\t${3}", + "", + ], + "description": "Authentication wrapper, which will display, disable component base on role's permissions" + }, + "Fontawesome": { + "scope": "vue-html", + "prefix": "fa", + "body": [ + "" + ], + "description": "Fontawesome component, by default using the 'fas' (fontawesome solid) library, change to use other library" + } +} diff --git a/.vscode/_util-dev-functions.code-snippets b/.vscode/_util-dev-functions.code-snippets new file mode 100644 index 0000000..9535097 --- /dev/null +++ b/.vscode/_util-dev-functions.code-snippets @@ -0,0 +1,43 @@ +{ + "dev:log": { + "scope": "javascript", + "prefix": "dev:log", + "body": ["$$dev.log('[${1}]', ${1})",], + "description": "Equivalent to console.log(), but only available in dev mode" + }, + "this.$dev:log": { + "scope": "javascript", + "prefix": "this.dev:log", + "body": ["this.$$dev.log('[${1}]', ${1})",], + "description": "Equivalent to console.log(), but only available in dev mode" + }, + "dev:warn": { + "scope": "javascript", + "prefix": "dev:warn", + "body": ["$$dev.warn('[${1}]', ${1})",], + "description": "Equivalent to console.warn(), but only available in dev mode" + }, + "this.$dev:warn": { + "scope": "javascript", + "prefix": "this.dev:warn", + "body": ["this.$$dev.warn('[${1}]', ${1})",], + "description": "Equivalent to console.warn(), but only available in dev mode" + }, + "dev:error": { + "scope": "javascript", + "prefix": "dev:error", + "body": ["$$dev.error('[${1}]', ${1})",], + "description": "Equivalent to console.error(), but only available in dev mode" + }, + "this.$dev:error": { + "scope": "javascript", + "prefix": "this.dev:error", + "body": ["this.$$dev.error('[${1}]', ${1})",], + "description": "Equivalent to console.error(), but only available in dev mode" + }, + "import $dev": { + "scope": "javascript", + "prefix": "import dev", + "body": ["import dev from '@utils/functions/dev'",], + }, +} diff --git a/.vscode/_util-directives.code-snippets b/.vscode/_util-directives.code-snippets new file mode 100644 index 0000000..3c1abc5 --- /dev/null +++ b/.vscode/_util-directives.code-snippets @@ -0,0 +1,30 @@ +{ + "v-auth directive": { + "scope": "vue-html", + "prefix": "auth", + "body": [ + "v-auth:allow=\"['${0}']\"", + ], + "description": "Authentication directive, which will display, disable component base on role's permissions" + }, + "v-validate directive": { + "scope": "vue-html", + "prefix": "v-validate", + "body": ["v-validate"], + }, + "v-validate.email directive": { + "scope": "vue-html", + "prefix": "v-validate.email", + "body": ["v-validate.email=\"${0}\""], + }, + "v-validate.required directive": { + "scope": "vue-html", + "prefix": "v-validate.required", + "body": ["v-validate.required"], + }, + "v-validate.string directive": { + "scope": "vue-html", + "prefix": "v-validate.string", + "body": ["v-validate.string"], + }, +} diff --git a/.vscode/_util-filters.code-snippets b/.vscode/_util-filters.code-snippets new file mode 100644 index 0000000..0414f74 --- /dev/null +++ b/.vscode/_util-filters.code-snippets @@ -0,0 +1,44 @@ +{ + "formatCurrency": { + "scope": "vue-html", + "prefix": "formatCurrency", + "body": ["formatCurrency",], + "description": "Format currency filter" + }, + "formatDate": { + "scope": "vue-html", + "prefix": "formatDate", + "body": ["formatDate",], + "description": "Format date filter" + }, + "formatDateTime": { + "scope": "vue-html", + "prefix": "formatDateTime", + "body": ["formatDateTime",], + "description": "Format datetime filter" + }, + "formatTime": { + "scope": "vue-html", + "prefix": "formatTime", + "body": ["formatTime",], + "description": "Format time filter" + }, + "lower": { + "scope": "vue-html", + "prefix": "lower", + "body": ["lower",], + "description": "Lowercase filter" + }, + "upper": { + "scope": "vue-html", + "prefix": "upper", + "body": ["upper",], + "description": "Uppercase filter" + }, + "capital": { + "scope": "vue-html", + "prefix": "capital", + "body": ["capital",], + "description": "Capitalize filter" + }, +} diff --git a/.vscode/_util-imports.code-snippets b/.vscode/_util-imports.code-snippets new file mode 100644 index 0000000..4596f73 --- /dev/null +++ b/.vscode/_util-imports.code-snippets @@ -0,0 +1,92 @@ +{ + "import-components": { + "scope": "javascript", + "prefix": "import components", + "body": ["import { ${1} } from '@components'",], + }, + "import-common": { + "scope": "javascript", + "prefix": "import common", + "body": ["import { ${1} } from '@common'",], + }, + "import-uncommon": { + "scope": "javascript", + "prefix": "import uncommon", + "body": ["import { ${1} } from '@uncommon'",], + }, + "import-locales": { + "scope": "javascript", + "prefix": "import theme", + "body": ["import { ${1} } from '@locales'",], + }, + "import-pages": { + "scope": "javascript", + "prefix": "import pages", + "body": ["import { ${1} } from '@pages'",], + }, + "import-router": { + "scope": "javascript", + "prefix": "import router", + "body": ["import { ${1} } from '@router'",], + }, + "import-store": { + "scope": "javascript", + "prefix": "import store", + "body": ["import { ${1} } from '@store'",], + }, + "import-use": { + "scope": "javascript", + "prefix": "import use", + "body": ["import { ${1} } from '@use'",], + }, + "import-examples": { + "scope": "javascript", + "prefix": "import examples", + "body": ["import { ${1} } from '@examples'",], + }, + "import-core": { + "scope": "javascript", + "prefix": "import core", + "body": ["import { ${1} } from '@core'",], + }, + "import-theme": { + "scope": "javascript", + "prefix": "import theme", + "body": ["import { ${1} } from '@theme'",], + }, + "import-constants": { + "scope": "javascript", + "prefix": "import constants", + "body": ["import { ${1} } from '@constants'",], + }, + "import-layouts": { + "scope": "javascript", + "prefix": "import layouts", + "body": ["import { ${1} } from '@layouts'",], + }, + "import-middleware": { + "scope": "javascript", + "prefix": "import middleware", + "body": ["import { ${1} } from '@middleware'",], + }, + "import-mixins": { + "scope": "javascript", + "prefix": "import mixins", + "body": ["import { ${1} } from '@mixins'",], + }, + "import-plugins": { + "scope": "javascript", + "prefix": "import plugins", + "body": ["import { ${1} } from '@plugins'",], + }, + "import-services": { + "scope": "javascript", + "prefix": "import services", + "body": ["import { ${1} } from '@services'",], + }, + "import-utils": { + "scope": "javascript", + "prefix": "import utils", + "body": ["import { ${1} } from '@utils'",], + }, +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..87d8449 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,30 @@ +{ + // See http://go.microsoft.com/fwlink/?LinkId=827846 + // for the documentation about the extensions.json format + "recommendations": [ + // Syntax highlighting and more for .vue files + // https://github.com/vuejs/vetur + "octref.vetur", + + // Peek and go-to-definition for .vue files + // https://github.com/fuzinato/vscode-vue-peek + "dariofuzinato.vue-peek", + + // Lint-on-save with ESLint + // https://github.com/microsoft/vscode-eslint + "dbaeumer.vscode-eslint", + + // Lint-on-save with Stylelint + // https://github.com/stylelint/vscode-stylelint + "stylelint.vscode-stylelint", + + // Lint-on-save markdown in README files + // https://github.com/DavidAnson/vscode-markdownlint + "DavidAnson.vscode-markdownlint", + + // SCSS intellisense + // https://github.com/mrmlnc/vscode-scss + "mrmlnc.vscode-scss", + + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..15368d1 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,132 @@ +{ + + // === + // Icon themes + // === + + "workbench.iconTheme": "material-icon-theme", + "material-icon-theme.folders.color": "#ef5350", + "material-icon-theme.activeIconPack": "vue_vuex", + "material-icon-theme.files.associations": { + "actions.js": "vuex-store", + "getters.js": "vuex-store", + "mutations.js": "vuex-store", + "state.js": "vuex-store", + "actions.ts": "vuex-store", + "getters.ts": "vuex-store", + "mutations.ts": "vuex-store", + "state.ts": "vuex-store", + "i18n.js": "i18n", + "en.json": "i18n", + "vi.json": "i18n", + "*.strategy.ts": "lock" + }, + "material-icon-theme.folders.associations": { + "dto": "typescript", + "enum": "typescript", + "ro": "typescript", + "interfaces": "typescript", + "decorators": "typescript", + "mixins": "vue", + "use": "mappings", + }, + + // === + // TailwindCSS + // === + + "tailwindCSS.includeLanguages": { + "plaintext": "html", + "tailwindCSS.emmetCompletions": "on", + "editor.colorDecorators": "on" + }, + + // === + // Spacing + // === + + "editor.insertSpaces": true, + "editor.tabSize": 2, + "editor.trimAutoWhitespace": true, + "files.trimTrailingWhitespace": true, + "files.eol": "\n", + "files.insertFinalNewline": true, + "files.trimFinalNewlines": true, + + // === + // Files + // === + + "files.exclude": { + "**/*.log": true, + "**/*.log*": true, + "**/dist": true, + "**/coverage": true + }, + "files.associations": { + ".markdownlintrc": "jsonc" + }, + + // === + // Event Triggers + // === + + "editor.formatOnSave": true, + "editor.defaultFormatter": "dbaeumer.vscode-eslint", + "editor.codeActionsOnSave": { + "source.fixAll.eslint": true, + "source.fixAll.stylelint": true, + "source.fixAll.markdownlint": true + }, + "eslint.validate": [ + "javascript", + "javascriptreact", + "vue", + "vue-html", + "html" + ], + "vetur.format.enable": false, + "vetur.completion.scaffoldSnippetSources": { + "user": "🗒️", + "workspace": "💼", + "vetur": "" + }, + + // === + // HTML + // === + + "html.format.enable": false, + "vetur.validation.template": false, + "emmet.triggerExpansionOnTab": true, + "emmet.includeLanguages": { + "vue-html": "html" + }, + "vetur.completion.tagCasing": "initial", + + // === + // JS(ON) + // === + + "javascript.format.enable": false, + "json.format.enable": false, + "vetur.validation.script": false, + + // === + // CSS + // === + + "stylelint.enable": true, + "css.validate": false, + "scss.validate": false, + "vetur.validation.style": false, + + // === + // MARKDOWN + // === + + "[markdown]": { + "editor.wordWrap": "wordWrapColumn", + "editor.wordWrapColumn": 80 + } +} diff --git a/package.json b/package.json index 3b04f56..aa5396d 100644 --- a/package.json +++ b/package.json @@ -22,21 +22,21 @@ "vuex": "^3.4.0" }, "devDependencies": { - "@tailwindcss/postcss7-compat": "^2.0.3", + "@tailwindcss/postcss7-compat": "^2.1.0", "@vue/cli-plugin-babel": "~4.5.0", "@vue/cli-plugin-eslint": "~4.5.0", "@vue/cli-plugin-router": "~4.5.0", "@vue/cli-plugin-vuex": "~4.5.0", "@vue/cli-service": "~4.5.0", "@vue/eslint-config-prettier": "^6.0.0", - "autoprefixer": "^9", + "autoprefixer": "^9.8.6", "babel-eslint": "^10.1.0", "eslint": "^6.7.2", "eslint-plugin-prettier": "^3.1.3", "eslint-plugin-vue": "^6.2.2", "markdownlint-cli": "^0.27.1", "node-sass": "^4.12.0", - "postcss": "^7", + "postcss": "^7.0.35", "prettier": "^1.19.1", "sass-loader": "^8.0.2", "stylelint": "^13.12.0", @@ -45,7 +45,8 @@ "stylelint-config-recess-order": "^2.3.0", "stylelint-config-standard": "^21.0.0", "stylelint-scss": "^3.19.0", - "tailwindcss": "npm:@tailwindcss/postcss7-compat", + "tailwindcss": "npm:@tailwindcss/postcss7-compat@^2.1.0", + "vue-cli-plugin-tailwind": "~2.0.6", "vue-template-compiler": "^2.6.11" } } diff --git a/tailwind.config.js b/tailwind.config.js index c895951..1806a09 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -2,9 +2,11 @@ const colors = require('./src/core/constants/config/tailwindcss/colors') const screens = require('./src/core/constants/config/tailwindcss/screens') const extend = require('./src/core/constants/config/tailwindcss/extend') module.exports = { + mode: 'jit', // New in 2.1+ // See tailwindCSS darkmode docs: https://tailwindcss.com/docs/dark-mode // Use with other variants: https://tailwindcss.com/docs/dark-mode#stacking-with-other-variants darkMode: 'class', // or false or 'media' + important: true, theme: { extend: { screens, @@ -20,6 +22,9 @@ module.exports = { enabled: process.env.NODE_ENV === 'production', mode: 'all', preserveHtmlElements: false, - content: ['./index.html', './src/**/*.{vue,js,ts,jsx,tsx}'], + content: ['./index.html', './src/**/*.{vue,js,ts,jsx,tsx,css,scss}'], + options: { + // safeList: [/^el-/] // For element UI CSS classes + }, }, } diff --git a/yarn.lock b/yarn.lock index 9a3894b..09a74a6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -971,24 +971,30 @@ remark "^13.0.0" unist-util-find-all-after "^3.0.2" -"@tailwindcss/postcss7-compat@^2.0.3", "tailwindcss@npm:@tailwindcss/postcss7-compat": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@tailwindcss/postcss7-compat/-/postcss7-compat-2.0.3.tgz#d212aa672eb5aa789fbf1ac253000707603d7676" - integrity sha512-R43aiSzwlybDMhDld8vkSIKPSLXxbbmotZ+I2GIrX+IzFNy9JAByC7Ncf9A81Dg0JLBWHY5m769lBbBnJCF8cw== +"@tailwindcss/postcss7-compat@^2.1.0", "tailwindcss@npm:@tailwindcss/postcss7-compat@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@tailwindcss/postcss7-compat/-/postcss7-compat-2.1.0.tgz#1393b99d9e60783990baa1b3e2ae69afac12f660" + integrity sha512-1Z6nPrkOp0Aa+NH5q6DYNizKf3qc6x735We0kpnIj1k5Cn+RkP69z+MpFLvz5lGGPRV/i+uS9uItoafnjIoZoQ== dependencies: "@fullhuman/postcss-purgecss" "^3.1.3" autoprefixer "^9" bytes "^3.0.0" chalk "^4.1.0" + chokidar "^3.5.1" color "^3.1.3" detective "^5.2.0" didyoumean "^1.2.1" + dlv "^1.1.3" + fast-glob "^3.2.5" fs-extra "^9.1.0" html-tags "^3.1.0" - lodash "^4.17.20" + lodash "^4.17.21" + lodash.topath "^4.5.2" modern-normalize "^1.0.0" node-emoji "^1.8.1" + normalize-path "^3.0.0" object-hash "^2.1.1" + parse-glob "^3.0.4" postcss "^7" postcss-functions "^3" postcss-js "^2" @@ -996,8 +1002,9 @@ postcss-selector-parser "^6.0.4" postcss-value-parser "^4.1.0" pretty-hrtime "^1.0.3" + quick-lru "^5.1.1" reduce-css-calc "^2.1.8" - resolve "^1.19.0" + resolve "^1.20.0" "@types/anymatch@*": version "1.3.1" @@ -2579,7 +2586,7 @@ chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.4.1: +chokidar@^3.4.1, chokidar@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== @@ -3475,6 +3482,11 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" +dlv@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" + integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== + dns-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" @@ -4508,6 +4520,21 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + integrity sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q= + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + integrity sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg= + dependencies: + is-glob "^2.0.0" + glob-parent@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" @@ -5338,6 +5365,11 @@ is-docker@^2.0.0: resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz#4125a88e44e450d384e09047ede71adc2d144156" integrity sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw== +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + integrity sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE= + is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" @@ -5350,6 +5382,11 @@ is-extendable@^1.0.1: dependencies: is-plain-object "^2.0.4" +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= + is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -5377,6 +5414,13 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +is-glob@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= + dependencies: + is-extglob "^1.0.0" + is-glob@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -5891,6 +5935,11 @@ lodash.toarray@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE= +lodash.topath@^4.5.2: + version "4.5.2" + resolved "https://registry.yarnpkg.com/lodash.topath/-/lodash.topath-4.5.2.tgz#3616351f3bba61994a0931989660bd03254fd009" + integrity sha1-NhY1Hzu6YZlKCTGYlmC9AyVP0Ak= + lodash.transform@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.transform/-/lodash.transform-4.6.0.tgz#12306422f63324aed8483d3f38332b5f670547a0" @@ -7000,6 +7049,16 @@ parse-entities@^2.0.0: is-decimal "^1.0.0" is-hexadecimal "^1.0.0" +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + integrity sha1-ssN2z7EfNVE7rdFz7wu246OIORw= + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" @@ -7852,6 +7911,11 @@ quick-lru@^4.0.1: resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== +quick-lru@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== + randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -8193,7 +8257,7 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.19.0: +resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.20.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -9770,6 +9834,11 @@ vm-browserify@^1.0.1: resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== +vue-cli-plugin-tailwind@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/vue-cli-plugin-tailwind/-/vue-cli-plugin-tailwind-2.0.6.tgz#c68d5f00aaae49896cf88d5dd341bcbdc900ee0a" + integrity sha512-HgR3gSmlnypNU+hlqoiRBJsnShXSoig4XTFNZiPlyVZBtkDZdfD884wTxz+GDJHzWLPtv4wnAyuO95UCsPbyoQ== + vue-eslint-parser@^7.0.0: version "7.6.0" resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-7.6.0.tgz#01ea1a2932f581ff244336565d712801f8f72561"