diff --git a/cli/tauri.js/package.json b/cli/tauri.js/package.json index 55997fece..08721a42d 100644 --- a/cli/tauri.js/package.json +++ b/cli/tauri.js/package.json @@ -53,9 +53,9 @@ "fs-extra": "9.0.0", "http-proxy": "1.18.0", "imagemin": "7.0.1", - "imagemin-optipng": "7.1.0", + "imagemin-optipng": "8.0.0", "imagemin-pngquant": "8.0.0", - "imagemin-zopfli": "6.0.0", + "imagemin-zopfli": "7.0.0", "is-png": "2.0.0", "isbinaryfile": "4.0.6", "jsdom": "16.2.2", @@ -73,7 +73,7 @@ "@babel/preset-env": "7.9.6", "@babel/preset-typescript": "7.9.0", "@types/cross-spawn": "6.0.1", - "@types/fs-extra": "8.1.0", + "@types/fs-extra": "9.0.1", "@types/http-proxy": "1.17.4", "@types/imagemin": "7.0.0", "@types/imagemin-optipng": "5.2.0", @@ -82,12 +82,12 @@ "@types/ms": "0.7.31", "@types/sharp": "0.25.0", "@types/webpack-merge": "4.1.5", - "@typescript-eslint/eslint-plugin": "2.31.0", - "@typescript-eslint/parser": "2.31.0", + "@typescript-eslint/eslint-plugin": "3.0.2", + "@typescript-eslint/parser": "3.0.2", "babel-jest": "26.0.1", "dotenv": "8.2.0", - "eslint": "6.8.0", - "eslint-config-standard-with-typescript": "16.0.0", + "eslint": "7.1.0", + "eslint-config-standard-with-typescript": "18.0.2", "eslint-plugin-import": "2.20.2", "eslint-plugin-lodash-template": "0.16.0", "eslint-plugin-node": "11.1.0", diff --git a/cli/tauri.js/src/api/info.ts b/cli/tauri.js/src/api/info.ts index 1325392a1..cae4dff0e 100644 --- a/cli/tauri.js/src/api/info.ts +++ b/cli/tauri.js/src/api/info.ts @@ -6,6 +6,7 @@ import os from 'os' import path from 'path' import { appDir, tauriDir } from '../helpers/app-paths' import { TauriConfig } from './../types/config' +import { CargoToml } from './../types/cargo' import nonWebpackRequire from '../helpers/non-webpack-require' interface DirInfo { @@ -73,9 +74,8 @@ function printAppInfo(tauriDir: string): void { try { const tomlPath = path.join(tauriDir, 'Cargo.toml') - const tomlFile = fs.readFileSync(tomlPath) - // @ts-ignore - const tomlContents = toml.parse(tomlFile) + const tomlFile = fs.readFileSync(tomlPath).toString() + const tomlContents = toml.parse(tomlFile) as any as CargoToml const tauriVersion = (): string => { const tauri = tomlContents.dependencies.tauri @@ -93,9 +93,8 @@ function printAppInfo(tauriDir: string): void { tauri.path, 'Cargo.toml' ) - const tauriTomlFile = fs.readFileSync(tauriTomlPath) - // @ts-ignore - const tauriTomlContents = toml.parse(tauriTomlFile) + const tauriTomlFile = fs.readFileSync(tauriTomlPath).toString() + const tauriTomlContents = toml.parse(tauriTomlFile) as any as CargoToml return chalk.green( // eslint-disable-next-line @typescript-eslint/restrict-template-expressions `${tauriTomlContents.package.version} (from source)` @@ -161,7 +160,7 @@ module.exports = () => { printInfo({ key: ' Node.js', value: chalk.green(process.version.slice(1)) }) printInfo({ key: ' tauri.js', - value: chalk.green(require('../../package.json').version) + value: chalk.green((require('../../package.json') as { version: string }).version) }) printInfo({ key: 'Rust environment', section: true }) printInfo({ diff --git a/cli/tauri.js/src/api/tauricon.ts b/cli/tauri.js/src/api/tauricon.ts index 5fa97f9cc..0bb9924cc 100644 --- a/cli/tauri.js/src/api/tauricon.ts +++ b/cli/tauri.js/src/api/tauricon.ts @@ -1,5 +1,7 @@ 'use strict' +/* eslint-disable @typescript-eslint/restrict-template-expressions, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call */ + /** * This is a module that takes an original image and resizes * it to common icon sizes and will put them in a folder. @@ -15,7 +17,7 @@ import { access, ensureDir, ensureFileSync, writeFileSync } from 'fs-extra' import imagemin, { Plugin } from 'imagemin' import optipng from 'imagemin-optipng' -import pngquant from 'imagemin-pngquant' +import pngquant, { Options as PngQuantOptions } from 'imagemin-pngquant' import zopfli from 'imagemin-zopfli' import isPng from 'is-png' import path from 'path' @@ -25,9 +27,10 @@ import sharp from 'sharp' import { appDir, tauriDir } from '../helpers/app-paths' import logger from '../helpers/logger' import * as settings from '../helpers/tauricon.config' +import chalk from 'chalk' const log = logger('app:spawn') -const warn = logger('app:spawn', 'red') +const warn = logger('app:spawn', chalk.red) let image: boolean | sharp.Sharp = false const spinnerInterval = false @@ -173,7 +176,6 @@ const spinner = (): NodeJS.Timeout => { }, 500) } -/* eslint-disable @typescript-eslint/restrict-template-expressions */ const tauricon = (exports.tauricon = { validate: async function(src: string, target: string) { await validate(src, target) @@ -345,9 +347,11 @@ const tauricon = (exports.tauricon = { sharpSrc = sharp(splashSrc).flatten({ background: { r: rgb.r, g: rgb.g, b: rgb.b, alpha: 1 } }) + } else { + throw new Error(`unknown options.splashscreen_type: ${options.splashscreen_type}`) } // TODO: determine if this really could be undefined - // @ts-ignore + // @ts-expect-error const data = await sharpSrc.toBuffer() for (const optionKey in options) { @@ -395,8 +399,7 @@ const tauricon = (exports.tauricon = { switch (strategy) { case 'pngquant': // TODO: is minify.pngquantOptions the proper format? - // @ts-ignore - cmd = pngquant(minify.pngquantOptions) + cmd = pngquant(minify.pngquantOptions as any as PngQuantOptions) break case 'optipng': cmd = optipng(minify.optipngOptions) @@ -404,9 +407,11 @@ const tauricon = (exports.tauricon = { case 'zopfli': cmd = zopfli(minify.zopfliOptions) break + default: + throw new Error('unknown strategy' + strategy) } - const __minifier = async (pvar: string[]): Promise => { + const minifier = async (pvar: string[], cmd: Plugin): Promise => { await imagemin([pvar[0]], { destination: pvar[1], plugins: [cmd] @@ -414,11 +419,10 @@ const tauricon = (exports.tauricon = { warn(err) }) } + switch (mode) { case 'singlefile': - // TODO: the __minifier function only accepts one arg, why is cmd passed? - // @ts-ignore - await __minifier([target, path.dirname(target)], cmd) + await minifier([target, path.dirname(target)], cmd) break case 'batch': // eslint-disable-next-line no-case-declarations @@ -426,16 +430,12 @@ const tauricon = (exports.tauricon = { // eslint-disable-next-line @typescript-eslint/no-for-in-array for (const n in folders) { const folder = folders[Number(n)] - // TODO: The log argument doesn't accept multiple args, should this be fixed? - // @ts-ignore - log('batch minify:', folder) - await __minifier( + log('batch minify:' + String(folder)) + await minifier( [ `${target}${path.sep}${folder}${path.sep}*.png`, `${target}${path.sep}${folder}` ], - // TODO: the __minifier function only accepts one arg, why is this here? - // @ts-ignore cmd ) } diff --git a/cli/tauri.js/src/helpers/app-paths.ts b/cli/tauri.js/src/helpers/app-paths.ts index bf5b47df4..5d9c382c6 100644 --- a/cli/tauri.js/src/helpers/app-paths.ts +++ b/cli/tauri.js/src/helpers/app-paths.ts @@ -1,7 +1,9 @@ import { existsSync } from 'fs' import { join, normalize, resolve, sep, isAbsolute } from 'path' import logger from './logger' -const warn = logger('tauri', 'red') +import chalk from 'chalk' + +const warn = logger('tauri', chalk.red) function resolvePath(basePath: string, dir: string): string { return dir && isAbsolute(dir) diff --git a/cli/tauri.js/src/helpers/logger.ts b/cli/tauri.js/src/helpers/logger.ts index c3ad83c17..f0b6d9c46 100644 --- a/cli/tauri.js/src/helpers/logger.ts +++ b/cli/tauri.js/src/helpers/logger.ts @@ -3,7 +3,7 @@ import ms from 'ms' let prevTime: number -export default (banner: string, color: string = 'green') => { +export default (banner: string, color: chalk.Chalk = chalk.green) => { return (msg?: string) => { const curr = +new Date() const diff = curr - (prevTime || curr) @@ -13,9 +13,8 @@ export default (banner: string, color: string = 'green') => { if (msg) { console.log( // TODO: proper typings for color and banner - // @ts-ignore - // eslint-disable-next-line @typescript-eslint/restrict-template-expressions - ` ${chalk[String(color)](String(banner))} ${msg} ${chalk.green(`+${ms(diff)}`)}` + // eslint-disable-next-line @typescript-eslint/restrict-template-expressions, @typescript-eslint/no-unsafe-call + ` ${color(String(banner))} ${msg} ${chalk.green(`+${ms(diff)}`)}` ) } else { console.log() diff --git a/cli/tauri.js/src/helpers/net.ts b/cli/tauri.js/src/helpers/net.ts index 600f6875e..905e780d8 100644 --- a/cli/tauri.js/src/helpers/net.ts +++ b/cli/tauri.js/src/helpers/net.ts @@ -18,7 +18,7 @@ async function findClosestOpenPort(port: number, host: string): Promise async function isPortAvailable(port: number, host: string): Promise { return await new Promise((resolve, reject) => { const tester = net.createServer() - .once('error', (err: any) => { + .once('error', (err: NodeJS.ErrnoException) => { if (err.code === 'EADDRNOTAVAIL') { reject(new Error('ERROR_NETWORK_ADDRESS_NOT_AVAIL')) } else if (err.code === 'EADDRINUSE') { diff --git a/cli/tauri.js/src/helpers/non-webpack-require.ts b/cli/tauri.js/src/helpers/non-webpack-require.ts index 26d01addd..456a0c5e2 100644 --- a/cli/tauri.js/src/helpers/non-webpack-require.ts +++ b/cli/tauri.js/src/helpers/non-webpack-require.ts @@ -1,4 +1,5 @@ // this function has been moved to a module so we can mock it export default (path: string): any => { + // eslint-disable-next-line @typescript-eslint/no-unsafe-return return __non_webpack_require__(path) } diff --git a/cli/tauri.js/src/helpers/spawn.ts b/cli/tauri.js/src/helpers/spawn.ts index 349d8f63d..68bdd9992 100644 --- a/cli/tauri.js/src/helpers/spawn.ts +++ b/cli/tauri.js/src/helpers/spawn.ts @@ -1,8 +1,9 @@ import crossSpawn from 'cross-spawn' import logger from './logger' +import chalk from 'chalk' const log = logger('app:spawn') -const warn = logger('app:spawn', 'red') +const warn = logger('app:spawn', chalk.red) /* Returns pid, takes onClose diff --git a/cli/tauri.js/src/helpers/tauri-config.ts b/cli/tauri.js/src/helpers/tauri-config.ts index df1bbd564..2fe2aaccf 100644 --- a/cli/tauri.js/src/helpers/tauri-config.ts +++ b/cli/tauri.js/src/helpers/tauri-config.ts @@ -4,8 +4,9 @@ import merge from 'webpack-merge' import logger from '../helpers/logger' import * as appPaths from './app-paths' import nonWebpackRequire from '../helpers/non-webpack-require' +import chalk from 'chalk' -const error = logger('ERROR:', 'red') +const error = logger('ERROR:', chalk.red) const getTauriConfig = (cfg: Partial): TauriConfig => { const pkgPath = appPaths.resolve.app('package.json') @@ -20,8 +21,8 @@ const getTauriConfig = (cfg: Partial): TauriConfig => { ) process.exit(1) } - const tauriConf = nonWebpackRequire(tauriConfPath) - const pkg = nonWebpackRequire(pkgPath) + const tauriConf = nonWebpackRequire(tauriConfPath) as TauriConfig + const pkg = nonWebpackRequire(pkgPath) as { productName: string } const config = merge( { @@ -60,7 +61,7 @@ const getTauriConfig = (cfg: Partial): TauriConfig => { } } } as any, - tauriConf, + tauriConf as any, cfg as any ) as TauriConfig diff --git a/cli/tauri.js/src/runner.ts b/cli/tauri.js/src/runner.ts index 7079a1159..3787c1685 100644 --- a/cli/tauri.js/src/runner.ts +++ b/cli/tauri.js/src/runner.ts @@ -16,11 +16,13 @@ import onShutdown from './helpers/on-shutdown' import { spawn, spawnSync } from './helpers/spawn' import { exec } from 'child_process' import { TauriConfig } from './types/config' +import { CargoToml } from './types/cargo' import getTauriConfig from './helpers/tauri-config' import httpProxy from 'http-proxy' +import chalk from 'chalk' -const log = logger('app:tauri', 'green') -const warn = logger('app:tauri (runner)', 'red') +const log = logger('app:tauri') +const warn = logger('app:tauri (runner)', chalk.red) class Runner { pid: number @@ -67,9 +69,9 @@ class Runner { ls.stdout && ls.stdout.pipe(process.stdout) } - const tomlContents = this.__getManifest() + const tomlContents = this.__getManifest() as any as CargoToml this.__whitelistApi(cfg, tomlContents) - this.__rewriteManifest(tomlContents) + this.__rewriteManifest(tomlContents as any as JsonMap) entry.generate(tauriDir, cfg) @@ -78,6 +80,7 @@ class Runner { let inlinedAssets: string[] = [] if (runningDevServer) { + // eslint-disable-next-line @typescript-eslint/no-this-alias const self = this const devUrl = new URL(devPath) const proxy = httpProxy.createProxyServer({ @@ -89,14 +92,14 @@ class Runner { selfHandleResponse: true }) - proxy.on('proxyRes', function (proxyRes: http.IncomingMessage, req: http.IncomingMessage, res: http.ServerResponse) { + proxy.on('proxyRes', function(proxyRes: http.IncomingMessage, req: http.IncomingMessage, res: http.ServerResponse) { if (req.url === '/') { - let body: Uint8Array[] = [] - proxyRes.on('data', function (chunk: Uint8Array) { + const body: Uint8Array[] = [] + proxyRes.on('data', function(chunk: Uint8Array) { body.push(chunk) }) - proxyRes.on('end', function () { - let bodyStr = body.join('') + proxyRes.on('end', function() { + const bodyStr = body.join('') const indexDir = os.tmpdir() writeFileSync(path.join(indexDir, 'index.html'), bodyStr) self.__parseHtml(cfg, indexDir, false) @@ -139,7 +142,7 @@ class Runner { this.devPath = devPath const startDevTauri = async (): Promise => { - return this.__runCargoCommand({ + return await this.__runCargoCommand({ cargoArgs: ['run'], dev: true, exitOnPanic: cfg.ctx.exitOnPanic @@ -150,9 +153,9 @@ class Runner { // eslint-disable-next-line security/detect-non-literal-fs-filename let tauriPaths: string[] = [] - // @ts-ignore - if (tomlContents.dependencies.tauri.path) { - // @ts-ignore + // @ts-expect-error + if (typeof tomlContents.dependencies.tauri !== 'string' && tomlContents.dependencies.tauri.path) { + // @ts-expect-error const tauriPath = path.resolve(tauriDir, tomlContents.dependencies.tauri.path) tauriPaths = [ tauriPath, @@ -227,7 +230,7 @@ class Runner { ] const buildFn = async (target?: string): Promise => - this.__runCargoCommand({ + await this.__runCargoCommand({ cargoArgs: [ cfg.tauri.bundle.active ? 'tauri-bundler' : 'build', '--features', @@ -236,7 +239,7 @@ class Runner { cfg.tauri.bundle.active && Array.isArray(cfg.tauri.bundle.targets) && cfg.tauri.bundle.targets.length ? ['--format'].concat(cfg.tauri.bundle.targets) : [] - ) + ) ] .concat(cfg.ctx.debug ? [] : ['--release']) .concat(target ? ['--target', target] : []) @@ -258,7 +261,7 @@ class Runner { async __parseHtml(cfg: TauriConfig, indexDir: string, inlinerEnabled = cfg.tauri.inliner.active): Promise<{ inlinedAssets: string[], html: string }> { const inlinedAssets: string[] = [] - return new Promise((resolve, reject) => { + return await new Promise((resolve, reject) => { const indexPath = path.join(indexDir, 'index.html') if (!existsSync(indexPath)) { warn( @@ -296,8 +299,8 @@ class Runner { } const tauriScript = document.createElement('script') - // @ts-ignore - tauriScript.text = readFileSync(path.join(tauriDir, 'tauri.js')) + // @ts-expect-error + tauriScript.text = readFileSync(path.join(tauriDir, 'tauri.js')).toString() document.body.insertBefore(tauriScript, document.body.firstChild) const csp = cfg.tauri.security.csp @@ -331,7 +334,7 @@ class Runner { resolve({ inlinedAssets, html }) } else { const cwd = process.cwd() - process.chdir( indexDir) // the inliner requires this to properly work + process.chdir(indexDir) // the inliner requires this to properly work new Inliner({ source: originalHtml }, (err: Error, html: string) => { process.chdir(cwd) // reset CWD if (err) { @@ -349,7 +352,7 @@ class Runner { } async stop(): Promise { - return new Promise((resolve, reject) => { + return await new Promise((resolve, reject) => { this.devServer && this.devServer.close() this.tauriWatcher && this.tauriWatcher.close() this.__stopCargo() @@ -369,7 +372,7 @@ class Runner { dev?: boolean exitOnPanic?: boolean }): Promise { - return new Promise((resolve, reject) => { + return await new Promise((resolve, reject) => { this.pid = spawn( 'cargo', @@ -418,13 +421,13 @@ class Runner { const pid = this.pid if (!pid) { - return Promise.resolve() + return await Promise.resolve() } log('Shutting down tauri process...') this.pid = 0 - return new Promise((resolve, reject) => { + return await new Promise((resolve, reject) => { this.killPromise = resolve try { process.kill(pid) diff --git a/cli/tauri.js/src/template/index.ts b/cli/tauri.js/src/template/index.ts index 3ca3db3d7..b230319c0 100644 --- a/cli/tauri.js/src/template/index.ts +++ b/cli/tauri.js/src/template/index.ts @@ -5,9 +5,10 @@ import merge from 'webpack-merge' import copyTemplates from '../helpers/copy-templates' import logger from '../helpers/logger' import defaultConfig from './defaultConfig' +import chalk from 'chalk' -const log = logger('app:tauri', 'green') -const warn = logger('app:tauri (template)', 'red') +const log = logger('app:tauri') +const warn = logger('app:tauri (template)', chalk.red) interface InjectOptions { force: false | InjectionType diff --git a/cli/tauri.js/src/types/cargo.ts b/cli/tauri.js/src/types/cargo.ts new file mode 100644 index 000000000..3d53e9ff7 --- /dev/null +++ b/cli/tauri.js/src/types/cargo.ts @@ -0,0 +1,9 @@ +export interface CargoToml { + dependencies: { [k: string]: string | CargoTomlDependency } + package: { version: string } +} + +export interface CargoTomlDependency { + version: string + path: string +} diff --git a/cli/tauri.js/src/types/modules.d.ts b/cli/tauri.js/src/types/modules.d.ts index 9b0313cfa..a5cfaee79 100644 --- a/cli/tauri.js/src/types/modules.d.ts +++ b/cli/tauri.js/src/types/modules.d.ts @@ -1,5 +1,5 @@ declare module '@tauri-apps/tauri-inliner' declare module 'imagemin-zopfli' -// eslint-disable-next-line @typescript-eslint/camelcase +// eslint-disable-next-line @typescript-eslint/naming-convention declare const __non_webpack_require__: Function diff --git a/cli/tauri.js/yarn.lock b/cli/tauri.js/yarn.lock index e962c7dee..2d1c14ffa 100644 --- a/cli/tauri.js/yarn.lock +++ b/cli/tauri.js/yarn.lock @@ -1211,10 +1211,10 @@ resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== -"@types/fs-extra@8.1.0": - version "8.1.0" - resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-8.1.0.tgz#1114834b53c3914806cd03b3304b37b3bd221a4d" - integrity sha512-UoOfVEzAUpeSPmjm7h1uk5MH6KZma2z2O7a75onTGjnNvAvMVrPzPL/vBbT65iIGHWj6rokwfmYcmxmlSf2uwg== +"@types/fs-extra@9.0.1": + version "9.0.1" + resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.1.tgz#91c8fc4c51f6d5dbe44c2ca9ab09310bd00c7918" + integrity sha512-B42Sxuaz09MhC3DDeW5kubRcQ5by4iuVQ0cRRWM2lggLzAa/KVom0Aft/208NgMvNQQZ86s5rVcqDdn/SH0/mg== dependencies: "@types/node" "*" @@ -1408,80 +1408,48 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@2.31.0": - version "2.31.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.31.0.tgz#942c921fec5e200b79593c71fafb1e3f57aa2e36" - integrity sha512-iIC0Pb8qDaoit+m80Ln/aaeu9zKQdOLF4SHcGLarSeY1gurW6aU4JsOPMjKQwXlw70MvWKZQc6S2NamA8SJ/gg== +"@typescript-eslint/eslint-plugin@3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.0.2.tgz#4a114a066e2f9659b25682ee59d4866e15a17ec3" + integrity sha512-ER3bSS/A/pKQT/hjMGCK8UQzlL0yLjuCZ/G8CDFJFVTfl3X65fvq2lNYqOG8JPTfrPa2RULCdwfOyFjZEMNExQ== dependencies: - "@typescript-eslint/experimental-utils" "2.31.0" + "@typescript-eslint/experimental-utils" "3.0.2" functional-red-black-tree "^1.0.1" regexpp "^3.0.0" + semver "^7.3.2" tsutils "^3.17.1" -"@typescript-eslint/experimental-utils@2.29.0": - version "2.29.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.29.0.tgz#3cb8060de9265ba131625a96bbfec31ba6d4a0fe" - integrity sha512-H/6VJr6eWYstyqjWXBP2Nn1hQJyvJoFdDtsHxGiD+lEP7piGnGpb/ZQd+z1ZSB1F7dN+WsxUDh8+S4LwI+f3jw== +"@typescript-eslint/experimental-utils@3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.0.2.tgz#bb2131baede8df28ec5eacfa540308ca895e5fee" + integrity sha512-4Wc4EczvoY183SSEnKgqAfkj1eLtRgBQ04AAeG+m4RhTVyaazxc1uI8IHf0qLmu7xXe9j1nn+UoDJjbmGmuqXQ== dependencies: "@types/json-schema" "^7.0.3" - "@typescript-eslint/typescript-estree" "2.29.0" + "@typescript-eslint/typescript-estree" "3.0.2" eslint-scope "^5.0.0" eslint-utils "^2.0.0" -"@typescript-eslint/experimental-utils@2.31.0": - version "2.31.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.31.0.tgz#a9ec514bf7fd5e5e82bc10dcb6a86d58baae9508" - integrity sha512-MI6IWkutLYQYTQgZ48IVnRXmLR/0Q6oAyJgiOror74arUMh7EWjJkADfirZhRsUMHeLJ85U2iySDwHTSnNi9vA== - dependencies: - "@types/json-schema" "^7.0.3" - "@typescript-eslint/typescript-estree" "2.31.0" - eslint-scope "^5.0.0" - eslint-utils "^2.0.0" - -"@typescript-eslint/parser@2.31.0": - version "2.31.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.31.0.tgz#beddd4e8efe64995108b229b2862cd5752d40d6f" - integrity sha512-uph+w6xUOlyV2DLSC6o+fBDzZ5i7+3/TxAsH4h3eC64tlga57oMb96vVlXoMwjR/nN+xyWlsnxtbDkB46M2EPQ== +"@typescript-eslint/parser@3.0.2", "@typescript-eslint/parser@^3.0.1": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-3.0.2.tgz#a92ef339added9bf7fb92605ac99c93ef243e834" + integrity sha512-80Z7s83e8QXHNUspqVlWwb4t5gdz/1bBBmafElbK1wwAwiD/yvJsFyHRxlEpNrt4rdK6eB3p+2WEFkEDHAKk9w== dependencies: "@types/eslint-visitor-keys" "^1.0.0" - "@typescript-eslint/experimental-utils" "2.31.0" - "@typescript-eslint/typescript-estree" "2.31.0" + "@typescript-eslint/experimental-utils" "3.0.2" + "@typescript-eslint/typescript-estree" "3.0.2" eslint-visitor-keys "^1.1.0" -"@typescript-eslint/parser@^2.26.0": - version "2.29.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.29.0.tgz#6e3c4e21ed6393dc05b9d8b47f0b7e731ef21c9c" - integrity sha512-H78M+jcu5Tf6m/5N8iiFblUUv+HJDguMSdFfzwa6vSg9lKR8Mk9BsgeSjO8l2EshKnJKcbv0e8IDDOvSNjl0EA== - dependencies: - "@types/eslint-visitor-keys" "^1.0.0" - "@typescript-eslint/experimental-utils" "2.29.0" - "@typescript-eslint/typescript-estree" "2.29.0" - eslint-visitor-keys "^1.1.0" - -"@typescript-eslint/typescript-estree@2.29.0": - version "2.29.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.29.0.tgz#1be6612bb02fc37ac9f466521c1459a4744e8d3a" - integrity sha512-3YGbtnWy4az16Egy5Fj5CckkVlpIh0MADtAQza+jiMADRSKkjdpzZp/5WuvwK/Qib3Z0HtzrDFeWanS99dNhnA== +"@typescript-eslint/typescript-estree@3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.0.2.tgz#67a1ce4307ebaea43443fbf3f3be7e2627157293" + integrity sha512-cs84mxgC9zQ6viV8MEcigfIKQmKtBkZNDYf8Gru2M+MhnA6z9q0NFMZm2IEzKqAwN8lY5mFVd1Z8DiHj6zQ3Tw== dependencies: debug "^4.1.1" eslint-visitor-keys "^1.1.0" glob "^7.1.6" is-glob "^4.0.1" lodash "^4.17.15" - semver "^6.3.0" - tsutils "^3.17.1" - -"@typescript-eslint/typescript-estree@2.31.0": - version "2.31.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.31.0.tgz#ac536c2d46672aa1f27ba0ec2140d53670635cfd" - integrity sha512-vxW149bXFXXuBrAak0eKHOzbcu9cvi6iNcJDzEtOkRwGHxJG15chiAQAwhLOsk+86p9GTr/TziYvw+H9kMaIgA== - dependencies: - debug "^4.1.1" - eslint-visitor-keys "^1.1.0" - glob "^7.1.6" - is-glob "^4.0.1" - lodash "^4.17.15" - semver "^6.3.0" + semver "^7.3.2" tsutils "^3.17.1" "@webassemblyjs/ast@1.9.0": @@ -2443,7 +2411,7 @@ caw@^2.0.0, caw@^2.0.1: tunnel-agent "^0.6.0" url-to-options "^1.0.1" -chalk@2.4.2, chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: +chalk@2.4.2, chalk@^2.0.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -2902,7 +2870,7 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" -cross-spawn@6.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5: +cross-spawn@6.0.5, cross-spawn@^6.0.0: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== @@ -2931,6 +2899,15 @@ cross-spawn@^5.0.1: shebang-command "^1.2.0" which "^1.2.9" +cross-spawn@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -3169,7 +3146,7 @@ deep-extend@^0.6.0: resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== -deep-is@~0.1.3: +deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= @@ -3577,12 +3554,12 @@ escodegen@^1.14.1: optionalDependencies: source-map "~0.6.1" -eslint-config-standard-with-typescript@16.0.0: - version "16.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-16.0.0.tgz#71418b9a3eb82ebff31cac67222562c683959ae4" - integrity sha512-SpEQcg8x4DchhOq4fCDA4cb83GzSVxEKzPyjxAc7p136sKAflPr3E/zvn9x9ooOXqtBlbISDpB0wC2L3K8nWZQ== +eslint-config-standard-with-typescript@18.0.2: + version "18.0.2" + resolved "https://registry.yarnpkg.com/eslint-config-standard-with-typescript/-/eslint-config-standard-with-typescript-18.0.2.tgz#eb02d5358b17fe083c6f993ff829492c8f96b18f" + integrity sha512-6D++u/gifJgj2hQ13e+YRyNs+1v3oihkfsL36P6HjeQjiOBdhRC/0wq3PRqfOwFA0hMCkcWBvhfO0GXWtGW9bg== dependencies: - "@typescript-eslint/parser" "^2.26.0" + "@typescript-eslint/parser" "^3.0.1" eslint-config-standard "^14.1.1" eslint-config-standard@^14.1.1: @@ -3685,13 +3662,6 @@ eslint-scope@^5.0.0: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-utils@^1.4.3: - version "1.4.3" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" - integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== - dependencies: - eslint-visitor-keys "^1.1.0" - eslint-utils@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz#7be1cc70f27a72a76cd14aa698bcabed6890e1cd" @@ -3704,22 +3674,22 @@ eslint-visitor-keys@^1.1.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== -eslint@6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" - integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== +eslint@7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.1.0.tgz#d9a1df25e5b7859b0a3d86bb05f0940ab676a851" + integrity sha512-DfS3b8iHMK5z/YLSme8K5cge168I8j8o1uiVmFCgnnjxZQbCGyraF8bMl7Ju4yfBmCuxD7shOF7eqGkcuIHfsA== dependencies: "@babel/code-frame" "^7.0.0" ajv "^6.10.0" - chalk "^2.1.0" - cross-spawn "^6.0.5" + chalk "^4.0.0" + cross-spawn "^7.0.2" debug "^4.0.1" doctrine "^3.0.0" eslint-scope "^5.0.0" - eslint-utils "^1.4.3" + eslint-utils "^2.0.0" eslint-visitor-keys "^1.1.0" - espree "^6.1.2" - esquery "^1.0.1" + espree "^7.0.0" + esquery "^1.2.0" esutils "^2.0.2" file-entry-cache "^5.0.1" functional-red-black-tree "^1.0.1" @@ -3732,25 +3702,24 @@ eslint@6.8.0: is-glob "^4.0.0" js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" + levn "^0.4.1" lodash "^4.17.14" minimatch "^3.0.4" - mkdirp "^0.5.1" natural-compare "^1.4.0" - optionator "^0.8.3" + optionator "^0.9.1" progress "^2.0.0" - regexpp "^2.0.1" - semver "^6.1.2" - strip-ansi "^5.2.0" - strip-json-comments "^3.0.1" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" table "^5.2.3" text-table "^0.2.0" v8-compile-cache "^2.0.3" -espree@^6.1.2: - version "6.2.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" - integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== +espree@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.0.0.tgz#8a7a60f218e69f120a842dc24c5a88aa7748a74e" + integrity sha512-/r2XEx5Mw4pgKdyb7GNLQNsu++asx/dltf/CI8RFi9oGHxmQFgvLbc5Op4U6i8Oaj+kdslhJtVlEZeAqH5qOTw== dependencies: acorn "^7.1.1" acorn-jsx "^5.2.0" @@ -3761,7 +3730,7 @@ esprima@^4.0.0, esprima@^4.0.1: resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.0.1: +esquery@^1.0.1, esquery@^1.2.0: version "1.3.1" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== @@ -4017,7 +3986,7 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@~2.0.6: +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= @@ -4820,14 +4789,14 @@ ignore@^5.1.1: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A== -imagemin-optipng@7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/imagemin-optipng/-/imagemin-optipng-7.1.0.tgz#2225c82c35e5c29b7fa98d4f9ecee1161a68e888" - integrity sha512-JNORTZ6j6untH7e5gF4aWdhDCxe3ODsSLKs/f7Grewy3ebZpl1ZsU+VUTPY4rzeHgaFA8GSWOoA8V2M3OixWZQ== +imagemin-optipng@8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/imagemin-optipng/-/imagemin-optipng-8.0.0.tgz#b88e5cf6da25cc8479e07cdf38c3ae0479df7ef2" + integrity sha512-CUGfhfwqlPjAC0rm8Fy+R2DJDBGjzy2SkfyT09L8rasnF9jSoHFqJ1xxSZWK6HVPZBMhGPMxCTL70OgTHlLF5A== dependencies: exec-buffer "^3.0.0" is-png "^2.0.0" - optipng-bin "^6.0.0" + optipng-bin "^7.0.0" imagemin-pngquant@8.0.0: version "8.0.0" @@ -4840,14 +4809,14 @@ imagemin-pngquant@8.0.0: ow "^0.13.2" pngquant-bin "^5.0.0" -imagemin-zopfli@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/imagemin-zopfli/-/imagemin-zopfli-6.0.0.tgz#2070a966da7288b347da37786b3afee60df62ee1" - integrity sha512-vmhMzV7m5o6QxgHpIDaBbKx/exWdIylwxV0hrxKECnPmt072A2qPtM8HCHu9EbrQctFk3KR8kN+cWFnk6EwzKQ== +imagemin-zopfli@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/imagemin-zopfli/-/imagemin-zopfli-7.0.0.tgz#a44daa3bb80e2620cd1dc883d823b20b4d3788d6" + integrity sha512-nmffj58rVb0O3AlCZLBBVKGyZ5MYPZZfKxUhvA7bwPGougHl/F7EUKSse9jkgXjdvtJYG2ojJeh5N67mYgBM9g== dependencies: exec-buffer "^3.0.0" - is-png "^1.0.0" - zopflipng-bin "^5.0.0" + is-png "^2.0.0" + zopflipng-bin "^6.0.0" imagemin@7.0.1: version "7.0.1" @@ -5212,11 +5181,6 @@ is-png@2.0.0, is-png@^2.0.0: resolved "https://registry.yarnpkg.com/is-png/-/is-png-2.0.0.tgz#ee8cbc9e9b050425cedeeb4a6fb74a649b0a4a8d" integrity sha512-4KPGizaVGj2LK7xwJIz8o5B2ubu1D/vcQsgOGFEDlpcvgZHto4gBnyd0ig7Ws+67ixmwKoNmu0hYnpo6AaKb5g== -is-png@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-png/-/is-png-1.1.0.tgz#d574b12bf275c0350455570b0e5b57ab062077ce" - integrity sha1-1XSxK/J1wDUEVVcLDltXqwYgd84= - is-potential-custom-element-name@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397" @@ -5952,7 +5916,15 @@ levenary@^1.1.1: dependencies: leven "^3.1.0" -levn@^0.3.0, levn@~0.3.0: +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= @@ -6844,7 +6816,7 @@ opencollective-postinstall@^2.0.2: resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz#5657f1bede69b6e33a45939b061eb53d3c6c3a89" integrity sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw== -optionator@^0.8.1, optionator@^0.8.3: +optionator@^0.8.1: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== @@ -6856,10 +6828,22 @@ optionator@^0.8.1, optionator@^0.8.3: type-check "~0.3.2" word-wrap "~1.2.3" -optipng-bin@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/optipng-bin/-/optipng-bin-6.0.0.tgz#376120fa79d5e71eee2f524176efdd3a5eabd316" - integrity sha512-95bB4y8IaTsa/8x6QH4bLUuyvyOoGBCLDA7wOgDL8UFqJpSUh1Hob8JRJhit+wC1ZLN3tQ7mFt7KuBj0x8F2Wg== +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +optipng-bin@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/optipng-bin/-/optipng-bin-7.0.0.tgz#2dfcc68a5f006e7746e76ad64d317d6fb7c7f9ed" + integrity sha512-mesUAwfedu5p9gRQwlYgD6Svw5IH3VUIWDJj/9cNpP3yFNbbEVqkTMWYhrIEn/cxmbGA3LpZrdoV2Yl8OfmnIA== dependencies: bin-build "^3.0.0" bin-wrapper "^4.0.0" @@ -7326,6 +7310,11 @@ prebuild-install@^5.3.3: tunnel-agent "^0.6.0" which-pm-runs "^1.0.0" +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -7684,12 +7673,7 @@ regex-not@^1.0.0, regex-not@^1.0.2: extend-shallow "^3.0.2" safe-regex "^1.1.0" -regexpp@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" - integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== - -regexpp@^3.0.0: +regexpp@^3.0.0, regexpp@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== @@ -8057,7 +8041,7 @@ semver@7.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@^6.0.0, semver@^6.1.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.1.0, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== @@ -8607,7 +8591,7 @@ strip-indent@^1.0.1: dependencies: get-stdin "^4.0.1" -strip-json-comments@^3.0.1: +strip-json-comments@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180" integrity sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w== @@ -8984,6 +8968,13 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0: resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" @@ -9454,7 +9445,7 @@ with-open-file@^0.1.6: p-try "^2.1.0" pify "^4.0.1" -word-wrap@~1.2.3: +word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== @@ -9616,10 +9607,10 @@ yauzl@^2.4.2: buffer-crc32 "~0.2.3" fd-slicer "~1.1.0" -zopflipng-bin@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/zopflipng-bin/-/zopflipng-bin-5.0.0.tgz#e5f1ce3486032a5348cc099293f083fb4c061fa5" - integrity sha512-8AWRT/CPkIBEup96LSiVdhLT4n7b4bpzY0BcQ26OjdRnjODa+JWNK55Ii63CiOEyqObPSwjLifuUI5ooFmjiGQ== +zopflipng-bin@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/zopflipng-bin/-/zopflipng-bin-6.0.0.tgz#e638baf74c799bc6cebad3c81e197991b3343a5b" + integrity sha512-UVaWMTb8LM1bRa2JWrSIOu7gJ01mOnz8scBELv6+idbSAL5hiQ69NdkNnvWWdjfX6Wv8dX4uV0zo9ZK6FcoZ8w== dependencies: bin-build "^3.0.0" bin-wrapper "^4.0.1"