diff --git a/package.json b/package.json index cfc5aab..ba70318 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,6 @@ "description": "", "main": "index.js", "scripts": { - "start": "pnpm run -C packages/components start", "dev": "pnpm run -C packages/playground dev", "doc": "pnpm run doc:dev", "doc:dev": "pnpm run -C docs dev", diff --git a/packages/playground/components.d.ts b/packages/playground/components.d.ts index 2213501..8557ef6 100644 --- a/packages/playground/components.d.ts +++ b/packages/playground/components.d.ts @@ -8,8 +8,6 @@ declare module '@vue/runtime-core' { HelloWorld: typeof import('./src/components/HelloWorld.vue')['default'] PsButton: typeof import('@princess-ui/components/button')['PsButton'] PsSend: typeof import('@princess-ui/components/send')['PsSend'] - RouterLink: typeof import('vue-router')['RouterLink'] - RouterView: typeof import('vue-router')['RouterView'] } } diff --git a/packages/playground/vite.config.ts b/packages/playground/vite.config.ts index 71a2874..ec16c63 100644 --- a/packages/playground/vite.config.ts +++ b/packages/playground/vite.config.ts @@ -1,24 +1,39 @@ import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import Components from 'unplugin-vue-components/vite' -import * as _ from "lodash" +import * as _ from 'lodash' +import fs from 'fs-extra' +import * as path from 'path' + +function exist(p) { + return fs.existsSync( + path.resolve(__dirname, '../theme-chalk/src/' + p + '.scss') + ) +} // https://vitejs.dev/config/ export default defineConfig({ - plugins: [vue(), Components({ - dts: true, - resolvers: [ - { - type: "component", - resolve: (componentName: string) => { - if (componentName.startsWith("Ps")) { - return { - name: componentName, - from: `@princess-ui/components/${_.lowerFirst(componentName.slice(2))}` + plugins: [ + vue(), + Components({ + dts: true, + resolvers: [ + { + type: 'component', + resolve: (componentName: string) => { + if (componentName.startsWith('Ps')) { + const name = _.lowerFirst(componentName.slice(2)) + return { + name: componentName, + from: `@princess-ui/components/${name}`, + sideEffects: exist(name) + ? `@princess-ui/theme-chalk/src/${name}.scss` + : undefined, + } } - } + }, }, - } - ], - })] + ], + }), + ], }) diff --git a/packages/princess-ui/PrincessResolver.ts b/packages/princess-ui/PrincessResolver.ts index dcbb1b7..cf6dba3 100644 --- a/packages/princess-ui/PrincessResolver.ts +++ b/packages/princess-ui/PrincessResolver.ts @@ -1,27 +1,77 @@ -import fs from "fs" -import path from "path" -import type { ComponentResolver, SideEffectsInfo } from "unplugin-vue-components/types" +import fs from 'fs' +import path from 'path' +import type { + ComponentResolver, + SideEffectsInfo, +} from 'unplugin-vue-components/types' function existCss(compName) { - if (fs.existsSync(path.resolve(__dirname, "./lib/" + compName[0].toLowerCase() + compName.slice(1) + "/style.css"))) { + if ( + fs.existsSync( + path.resolve( + __dirname, + './lib/' + + compName[0].toLowerCase() + + compName.slice(1) + + '/style.css' + ) + ) + ) { return true } return false } - -export default (name: string = "princess-ui", p: string="/lib"): ComponentResolver => { +function existTheme(compName) { + if ( + fs.existsSync( + path.resolve( + __dirname, + './theme-chalk/ps-' + + compName[0].toLowerCase() + + compName.slice(1) + + '.css' + ) + ) + ) { + return true + } + return false +} +export default (): ComponentResolver => { return { - type: "component", + type: 'component', resolve: (componentName: string) => { - if (componentName.startsWith("Ps")) { + if (componentName.startsWith('Ps')) { + let css = [] + const n = componentName.slice(2) + if (existCss(n)) { + css.push( + (function getSideEffects( + compName: string + ): SideEffectsInfo { + return `princess-ui/lib/${ + compName[0].toLowerCase() + compName.slice(1) + }/style.css` + })(n) + ) + } + if (existTheme(n)) { + css.push( + (function getSideEffects( + compName: string + ): SideEffectsInfo { + return `princess-ui/theme-chalk/ps-${ + compName[0].toLowerCase() + compName.slice(1) + }.css` + })(n) + ) + } return { name: componentName, - from: name, - sideEffects: existCss(componentName.slice(2)) ? (function getSideEffects(compName: string): SideEffectsInfo { - return `${name}${p}/${compName[0].toLowerCase() + compName.slice(1)}/style.css` - })(componentName.slice(2)) : undefined, + from: 'princess-ui', + sideEffects: css, } } }, } -} \ No newline at end of file +} diff --git a/packages/princess-ui/components.d.ts b/packages/princess-ui/components.d.ts index 94ba947..a51408b 100644 --- a/packages/princess-ui/components.d.ts +++ b/packages/princess-ui/components.d.ts @@ -1,8 +1,8 @@ declare module 'vue' { export interface GlobalComponents { - PsButton: typeof import('./lib/button')['PsButton'], - PsFuck: typeof import('./lib/fuck')['PsFuck'], - PsSend: typeof import('./lib/send')['PsSend'] + PsButton: typeof import('./lib')['PsButton'], + PsFuck: typeof import('./lib')['PsFuck'], + PsSend: typeof import('./lib')['PsSend'] } } export { } \ No newline at end of file diff --git a/packages/princess-ui/theme-chalk/dark/css-vars.css b/packages/princess-ui/theme-chalk/dark/css-vars.css new file mode 100644 index 0000000..e69de29 diff --git a/packages/princess-ui/theme-chalk/index.css b/packages/princess-ui/theme-chalk/index.css new file mode 100644 index 0000000..39f76c9 --- /dev/null +++ b/packages/princess-ui/theme-chalk/index.css @@ -0,0 +1 @@ +div{color:red}div{color:#bc8f8f} \ No newline at end of file diff --git a/packages/princess-ui/theme-chalk/ps-button.css b/packages/princess-ui/theme-chalk/ps-button.css new file mode 100644 index 0000000..6a9013f --- /dev/null +++ b/packages/princess-ui/theme-chalk/ps-button.css @@ -0,0 +1 @@ +div{color:red} \ No newline at end of file diff --git a/packages/princess-ui/theme-chalk/src/button.scss b/packages/princess-ui/theme-chalk/src/button.scss new file mode 100644 index 0000000..74cf999 --- /dev/null +++ b/packages/princess-ui/theme-chalk/src/button.scss @@ -0,0 +1,4 @@ + +div{ + color: red; +} \ No newline at end of file diff --git a/packages/princess-ui/theme-chalk/src/button/index.scss b/packages/princess-ui/theme-chalk/src/button/index.scss new file mode 100644 index 0000000..873a556 --- /dev/null +++ b/packages/princess-ui/theme-chalk/src/button/index.scss @@ -0,0 +1,3 @@ +div{ + color: rosybrown; +} \ No newline at end of file diff --git a/packages/princess-ui/theme-chalk/src/dark/css-vars.scss b/packages/princess-ui/theme-chalk/src/dark/css-vars.scss new file mode 100644 index 0000000..e69de29 diff --git a/packages/princess-ui/theme-chalk/src/index.scss b/packages/princess-ui/theme-chalk/src/index.scss new file mode 100644 index 0000000..a272ae8 --- /dev/null +++ b/packages/princess-ui/theme-chalk/src/index.scss @@ -0,0 +1,4 @@ +@import "./button.scss"; +div{ + color: rosybrown; +} \ No newline at end of file diff --git a/packages/princess-ui/theme-chalk/src/red.scss b/packages/princess-ui/theme-chalk/src/red.scss new file mode 100644 index 0000000..74cf999 --- /dev/null +++ b/packages/princess-ui/theme-chalk/src/red.scss @@ -0,0 +1,4 @@ + +div{ + color: red; +} \ No newline at end of file diff --git a/packages/princess-ui/tsconfig.json b/packages/princess-ui/tsconfig.json deleted file mode 100644 index 63b5082..0000000 --- a/packages/princess-ui/tsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "../../tsconfig.json" -} diff --git a/packages/theme-chalk/gulpfile.ts b/packages/theme-chalk/gulpfile.ts new file mode 100644 index 0000000..fcb03ae --- /dev/null +++ b/packages/theme-chalk/gulpfile.ts @@ -0,0 +1,88 @@ +import path from 'path' +import chalk from 'chalk' +import { dest, parallel, series, src } from 'gulp' +import gulpSass from 'gulp-sass' +import dartSass from 'sass' +import autoprefixer from 'gulp-autoprefixer' +import cleanCSS from 'gulp-clean-css' +import rename from 'gulp-rename' +import consola from 'consola' +import { getOutput } from "@princess-ui/share"; + +const distFolder = path.resolve(__dirname, 'dist') +const distBundle = getOutput("theme-chalk") + +/** + * compile theme-chalk scss & minify + * not use sass.sync().on('error', sass.logError) to throw exception + * @returns + */ +function buildThemeChalk() { + const sass = gulpSass(dartSass) + const noElPrefixFile = /(index|base|display)/ + return src(path.resolve(__dirname, 'src/*.scss')) + .pipe(sass.sync()) + .pipe(autoprefixer({ cascade: false })) + .pipe( + cleanCSS({}, (details) => { + consola.success( + `${chalk.cyan(details.name)}: ${chalk.yellow( + details.stats.originalSize / 1000 + )} KB -> ${chalk.green(details.stats.minifiedSize / 1000)} KB` + ) + }) + ) + .pipe( + rename((path) => { + if (!noElPrefixFile.test(path.basename)) { + path.basename = `ps-${path.basename}` + } + }) + ) + .pipe(dest(distFolder)) +} + +/** + * Build dark Css Vars + * @returns + */ +function buildDarkCssVars() { + const sass = gulpSass(dartSass) + return src(path.resolve(__dirname, 'src/dark/css-vars.scss')) + .pipe(sass.sync()) + .pipe(autoprefixer({ cascade: false })) + .pipe( + cleanCSS({}, (details) => { + consola.success( + `${chalk.cyan(details.name)}: ${chalk.yellow( + details.stats.originalSize / 1000 + )} KB -> ${chalk.green(details.stats.minifiedSize / 1000)} KB` + ) + }) + ) + .pipe(dest(`${distFolder}/dark`)) +} + +/** + * copy from packages/theme-chalk/dist to dist/element-plus/theme-chalk + */ +export function copyThemeChalkBundle() { + return src(`${distFolder}/**`).pipe(dest(distBundle)) +} + +/** + * copy source file to packages + */ + +export function copyThemeChalkSource() { + return src(path.resolve(__dirname, 'src/**')).pipe( + dest(path.resolve(distBundle, 'src')) + ) +} + +export const build = parallel( + copyThemeChalkSource, + series(buildThemeChalk, buildDarkCssVars, copyThemeChalkBundle) +) + +export default build \ No newline at end of file diff --git a/packages/theme-chalk/gulpfile.ts/index.ts b/packages/theme-chalk/gulpfile.ts/index.ts deleted file mode 100644 index 7cc6c65..0000000 --- a/packages/theme-chalk/gulpfile.ts/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { src, dest } from "gulp" - -async function defaultTask(cb) { - // await src("packages/theme-chalk/**/*.scss").pipe(dest("lib")) - cb() -} - -exports.default = defaultTask diff --git a/packages/theme-chalk/package.json b/packages/theme-chalk/package.json index 0e4f5f4..974c787 100644 --- a/packages/theme-chalk/package.json +++ b/packages/theme-chalk/package.json @@ -5,9 +5,17 @@ "main": "index.ts", "module": "index.ts", "scripts": { - "build": "set TS_NODE_PROJECT=gulpfile.ts/tsconfig.json& gulp -f gulpfile.ts" + "build": "set TS_NODE_PROJECT=tsconfig.json& gulp -f gulpfile.ts" }, "keywords": [], "author": "", - "license": "ISC" + "license": "ISC", + "devDependencies": { + "consola": "^2.15.3", + "gulp-autoprefixer": "^8.0.0", + "gulp-clean-css": "^4.3.0", + "gulp-rename": "^2.0.0", + "gulp-sass": "^5.1.0", + "sass": "^1.52.1" + } } diff --git a/packages/theme-chalk/src/button.scss b/packages/theme-chalk/src/button.scss new file mode 100644 index 0000000..51c35c3 --- /dev/null +++ b/packages/theme-chalk/src/button.scss @@ -0,0 +1,4 @@ + +div{ + color: darkkhaki; +} \ No newline at end of file diff --git a/packages/theme-chalk/src/dark/css-vars.scss b/packages/theme-chalk/src/dark/css-vars.scss new file mode 100644 index 0000000..e69de29 diff --git a/packages/theme-chalk/src/index.scss b/packages/theme-chalk/src/index.scss index e69de29..a272ae8 100644 --- a/packages/theme-chalk/src/index.scss +++ b/packages/theme-chalk/src/index.scss @@ -0,0 +1,4 @@ +@import "./button.scss"; +div{ + color: rosybrown; +} \ No newline at end of file diff --git a/packages/theme-chalk/gulpfile.ts/tsconfig.json b/packages/theme-chalk/tsconfig.json similarity index 100% rename from packages/theme-chalk/gulpfile.ts/tsconfig.json rename to packages/theme-chalk/tsconfig.json diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6129b4e..137c784 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -95,7 +95,20 @@ importers: specifiers: {} packages/theme-chalk: - specifiers: {} + specifiers: + consola: ^2.15.3 + gulp-autoprefixer: ^8.0.0 + gulp-clean-css: ^4.3.0 + gulp-rename: ^2.0.0 + gulp-sass: ^5.1.0 + sass: ^1.52.1 + devDependencies: + consola: 2.15.3 + gulp-autoprefixer: 8.0.0 + gulp-clean-css: 4.3.0 + gulp-rename: 2.0.0 + gulp-sass: 5.1.0 + sass: 1.52.1 packages: @@ -656,7 +669,6 @@ packages: /ansi-regex/5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - dev: false /ansi-styles/4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} @@ -820,6 +832,22 @@ packages: engines: {node: '>= 4.5.0'} hasBin: true + /autoprefixer/10.4.7_postcss@8.4.14: + resolution: {integrity: sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.20.3 + caniuse-lite: 1.0.30001342 + fraction.js: 4.2.0 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.14 + postcss-value-parser: 4.2.0 + dev: true + /bach/1.2.0: resolution: {integrity: sha512-bZOOfCb3gXBXbTFXq3OZtGR88LwGeJvzu6szttaIzymOTS4ZttBNOWSv7aLZja2EMycKtRYV0Oa8SNKH/zkxvg==} engines: {node: '>= 0.10'} @@ -916,6 +944,18 @@ packages: dependencies: fill-range: 7.0.1 + /browserslist/4.20.3: + resolution: {integrity: sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001342 + electron-to-chromium: 1.4.138 + escalade: 3.1.1 + node-releases: 2.0.5 + picocolors: 1.0.0 + dev: true + /buffer-equal/1.0.0: resolution: {integrity: sha512-tcBWO2Dl4e7Asr9hTGcpVrCe+F7DubpmqWCTbj4FHLmjqO2hIaC383acQubWtRJhdceqs5uBHs6Es+Sk//RKiQ==} engines: {node: '>=0.4.0'} @@ -964,6 +1004,10 @@ packages: engines: {node: '>=0.10.0'} dev: true + /caniuse-lite/1.0.30001342: + resolution: {integrity: sha512-bn6sOCu7L7jcbBbyNhLg0qzXdJ/PMbybZTH/BA6Roet9wxYRm6Tr9D0s0uhLkOZ6MSG+QU6txUgdpr3MXIVqjA==} + dev: true + /chalk/4.1.0: resolution: {integrity: sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==} engines: {node: '>=10'} @@ -1024,6 +1068,13 @@ packages: static-extend: 0.1.2 dev: true + /clean-css/4.2.3: + resolution: {integrity: sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==} + engines: {node: '>= 4.0'} + dependencies: + source-map: 0.6.1 + dev: true + /cli-cursor/3.1.0: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} @@ -1162,6 +1213,10 @@ packages: typedarray: 0.0.6 dev: true + /consola/2.15.3: + resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} + dev: true + /convert-source-map/1.8.0: resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} dependencies: @@ -1356,6 +1411,10 @@ packages: object.defaults: 1.1.0 dev: true + /electron-to-chromium/1.4.138: + resolution: {integrity: sha512-IOyp2Seq3w4QLln+yZWcMF3VXhhduz4bwg9gfI+CnP5TkzwNXQ8FCZuwwPsnes73AfWdf5J2n2OXdUwDUspDPQ==} + dev: true + /end-of-stream/1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} dependencies: @@ -1602,6 +1661,11 @@ packages: esbuild-windows-64: 0.14.39 esbuild-windows-arm64: 0.14.39 + /escalade/3.1.1: + resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + engines: {node: '>=6'} + dev: true + /escape-html/1.0.3: resolution: {integrity: sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=} dev: false @@ -1803,6 +1867,10 @@ packages: for-in: 1.0.2 dev: true + /fraction.js/4.2.0: + resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} + dev: true + /fragment-cache/0.2.1: resolution: {integrity: sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=} engines: {node: '>=0.10.0'} @@ -1994,6 +2062,32 @@ packages: strip-bom-string: 1.0.0 dev: false + /gulp-autoprefixer/8.0.0: + resolution: {integrity: sha512-sVR++PIaXpa81p52dmmA/jt50bw0egmylK5mjagfgOJ8uLDGaF9tHyzvetkY9Uo0gBZUS5sVqN3kX/GlUKOyog==} + engines: {node: '>=12'} + peerDependencies: + gulp: '>=4' + peerDependenciesMeta: + gulp: + optional: true + dependencies: + autoprefixer: 10.4.7_postcss@8.4.14 + fancy-log: 1.3.3 + plugin-error: 1.0.1 + postcss: 8.4.14 + through2: 4.0.2 + vinyl-sourcemaps-apply: 0.2.1 + dev: true + + /gulp-clean-css/4.3.0: + resolution: {integrity: sha512-mGyeT3qqFXTy61j0zOIciS4MkYziF2U594t2Vs9rUnpkEHqfu6aDITMp8xOvZcvdX61Uz3y1mVERRYmjzQF5fg==} + dependencies: + clean-css: 4.2.3 + plugin-error: 1.0.1 + through2: 3.0.1 + vinyl-sourcemaps-apply: 0.2.1 + dev: true + /gulp-cli/2.3.0: resolution: {integrity: sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==} engines: {node: '>= 0.10'} @@ -2021,6 +2115,23 @@ packages: - supports-color dev: true + /gulp-rename/2.0.0: + resolution: {integrity: sha512-97Vba4KBzbYmR5VBs9mWmK+HwIf5mj+/zioxfZhOKeXtx5ZjBk57KFlePf5nxq9QsTtFl0ejnHE3zTC9MHXqyQ==} + engines: {node: '>=4'} + dev: true + + /gulp-sass/5.1.0: + resolution: {integrity: sha512-7VT0uaF+VZCmkNBglfe1b34bxn/AfcssquLKVDYnCDJ3xNBaW7cUuI3p3BQmoKcoKFrs9jdzUxyb+u+NGfL4OQ==} + engines: {node: '>=12'} + dependencies: + lodash.clonedeep: 4.5.0 + picocolors: 1.0.0 + plugin-error: 1.0.1 + replace-ext: 2.0.0 + strip-ansi: 6.0.1 + vinyl-sourcemaps-apply: 0.2.1 + dev: true + /gulp/4.0.2: resolution: {integrity: sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==} engines: {node: '>= 0.10'} @@ -2131,7 +2242,6 @@ packages: /immutable/4.1.0: resolution: {integrity: sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==} - dev: false /import-lazy/4.0.0: resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} @@ -2518,6 +2628,10 @@ packages: engines: {node: '>=14'} dev: true + /lodash.clonedeep/4.5.0: + resolution: {integrity: sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=} + dev: true + /lodash.get/4.4.2: resolution: {integrity: sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=} dev: true @@ -2805,6 +2919,10 @@ packages: resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} dev: true + /node-releases/2.0.5: + resolution: {integrity: sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==} + dev: true + /normalize-package-data/2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} dependencies: @@ -2825,6 +2943,11 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} + /normalize-range/0.1.2: + resolution: {integrity: sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=} + engines: {node: '>=0.10.0'} + dev: true + /now-and-later/2.0.1: resolution: {integrity: sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==} engines: {node: '>= 0.10'} @@ -3054,6 +3177,16 @@ packages: engines: {node: '>=0.10.0'} dev: true + /plugin-error/1.0.1: + resolution: {integrity: sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==} + engines: {node: '>= 0.10'} + dependencies: + ansi-colors: 1.1.0 + arr-diff: 4.0.0 + arr-union: 3.1.0 + extend-shallow: 3.0.2 + dev: true + /polka/0.5.2: resolution: {integrity: sha512-FVg3vDmCqP80tOrs+OeNlgXYmFppTXdjD5E7I4ET1NjvtNmQrb1/mJibybKkb/d4NA7YWAr1ojxuhpL3FHqdlw==} dependencies: @@ -3077,6 +3210,10 @@ packages: engines: {node: '>=0.10.0'} dev: true + /postcss-value-parser/4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: true + /postcss/8.4.14: resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} engines: {node: ^10 || ^12 || >=14} @@ -3167,7 +3304,6 @@ packages: inherits: 2.0.4 string_decoder: 1.1.1 util-deprecate: 1.0.2 - dev: false /readdirp/2.2.1: resolution: {integrity: sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==} @@ -3237,6 +3373,11 @@ packages: engines: {node: '>= 0.10'} dev: true + /replace-ext/2.0.0: + resolution: {integrity: sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug==} + engines: {node: '>= 10'} + dev: true + /replace-homedir/1.0.0: resolution: {integrity: sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw=} engines: {node: '>= 0.10'} @@ -3356,7 +3497,6 @@ packages: chokidar: 3.5.3 immutable: 4.1.0 source-map-js: 1.0.2 - dev: false /sax/1.2.4: resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} @@ -3581,7 +3721,6 @@ packages: engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 - dev: false /strip-bom-string/1.0.0: resolution: {integrity: sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=} @@ -3647,6 +3786,18 @@ packages: xtend: 4.0.2 dev: true + /through2/3.0.1: + resolution: {integrity: sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==} + dependencies: + readable-stream: 3.6.0 + dev: true + + /through2/4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + dependencies: + readable-stream: 3.6.0 + dev: true + /time-stamp/1.1.0: resolution: {integrity: sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=} engines: {node: '>=0.10.0'} @@ -4047,6 +4198,12 @@ packages: vinyl: 2.2.1 dev: true + /vinyl-sourcemaps-apply/0.2.1: + resolution: {integrity: sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=} + dependencies: + source-map: 0.5.7 + dev: true + /vinyl/2.2.1: resolution: {integrity: sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==} engines: {node: '>= 0.10'}