From aef82c2839fdbd83dfefbe2cec7a7bcaa927bf9c Mon Sep 17 00:00:00 2001 From: Vladimir Agafonkin Date: Thu, 11 Feb 2021 18:26:37 +0200 Subject: [PATCH] Switch dev environment to native ESM to support Node 12+ (#10367) * use native ES modules for unit tests * update CircleCI Node image to v14.15 * bump yarn cache key on Circle CI * expose bundles as CommonJS in Node * upgrade postcss and use CJS for config * convert harness and some scripts to esm * fix lint and flow * make sure testem runs with native esm * testem fixups * use custom json loader to support named exports * use a valid access token in unit tests * work around testem refusing to load cjs configs * fix lint * fix testem runs on CI hopefully * fix webpack build --- .circleci/config.yml | 8 +- .gitignore | 4 +- bench/rollup_config_benchmarks.js | 6 +- build/check-bundle-size.js | 13 +- build/diff-tarball.js | 6 +- build/generate-access-token-script.js | 10 +- build/generate-flow-typed-style-spec.js | 12 +- build/generate-release-list.js | 6 +- build/node-loader.js | 39 + build/rollup_plugins.js | 12 +- build/run-node | 2 +- build/run-tap | 2 +- build/test/build-tape.js | 10 +- dist/package.json | 2 + package.json | 34 +- postcss.config.js => postcss.config.cjs | 0 rollup.config.js | 11 +- src/render/painter.js | 2 +- src/render/program.js | 2 +- src/shaders/index.js | 20 - src/shaders/shaders.js | 64 +- src/style-spec/package.json | 1 + src/style-spec/rollup.config.js | 13 +- test/build/min.test.js | 14 +- test/build/style-spec.test.js | 6 + test/expression.test.js | 3 + test/integration/lib/expression.js | 3 + test/integration/lib/generate-fixture-json.js | 16 +- test/integration/lib/harness.js | 16 +- test/integration/lib/localize-urls.js | 17 +- test/integration/lib/server.js | 23 +- test/integration/testem/package.json | 3 + test/integration/{ => testem}/testem.js | 34 +- test/unit/changelog.js | 3 + test/unit/data/fill_bucket.test.js | 3 + test/unit/data/line_bucket.test.js | 3 + test/unit/data/load_geometry.test.js | 3 + test/unit/data/symbol_bucket.test.js | 3 + test/unit/data/vertex_buffer.test.js | 7 +- test/unit/source/tile.test.js | 3 + test/unit/source/vector_tile_source.test.js | 11 +- .../source/vector_tile_worker_source.test.js | 3 + test/unit/style-spec/migrate.test.js | 3 + test/unit/style-spec/validate.test.js | 3 + .../validate_mapbox_api_supported.test.js | 3 + test/unit/style/load_glyph_range.test.js | 5 + test/unit/symbol/shaping.test.js | 5 +- test/unit/ui/control/attribution.test.js | 3 +- test/unit/ui/control/geolocate.test.js | 24 +- test/unit/util/classify_rings.test.js | 3 + test/util/index.js | 2 + yarn.lock | 887 +++++++++++++----- 52 files changed, 966 insertions(+), 425 deletions(-) create mode 100644 build/node-loader.js create mode 100644 dist/package.json rename postcss.config.js => postcss.config.cjs (100%) delete mode 100644 src/shaders/index.js create mode 100644 test/integration/testem/package.json rename test/integration/{ => testem}/testem.js (85%) diff --git a/.circleci/config.yml b/.circleci/config.yml index 9b6a53c6cb0..58e611e45e4 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -102,11 +102,11 @@ workflows: only: /v[0-9]+.[0-9]+.[0-9]+(-.+)?/ branches: ignore: /.*/ - + defaults: &defaults docker: - - image: circleci/node:10.16-browsers + - image: circleci/node:14.15-browsers working_directory: ~/mapbox-gl-js jobs: @@ -116,10 +116,10 @@ jobs: - checkout - restore_cache: keys: - - v3-yarn-{{ checksum "yarn.lock" }} + - v4-yarn-{{ checksum "yarn.lock" }} - run: yarn - save_cache: - key: v3-yarn-{{ checksum "yarn.lock" }} + key: v4-yarn-{{ checksum "yarn.lock" }} paths: - '~/.yarn' - 'node_modules' diff --git a/.gitignore b/.gitignore index cd01db1f6e8..b7a1aed19c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ /rollup/build/ -/dist/ +/dist/mapbox-gl* +/dist/versions* +/dist/style-spec *.es.js *.js.map node_modules diff --git a/bench/rollup_config_benchmarks.js b/bench/rollup_config_benchmarks.js index cda04889c97..3fce0194910 100644 --- a/bench/rollup_config_benchmarks.js +++ b/bench/rollup_config_benchmarks.js @@ -1,9 +1,9 @@ import fs from 'fs'; import sourcemaps from 'rollup-plugin-sourcemaps'; -import replace from 'rollup-plugin-replace'; +import replace from '@rollup/plugin-replace'; import {plugins} from '../build/rollup_plugins.js'; -import resolve from 'rollup-plugin-node-resolve'; -import commonjs from 'rollup-plugin-commonjs'; +import resolve from '@rollup/plugin-node-resolve'; +import commonjs from '@rollup/plugin-commonjs'; let styles = ['mapbox://styles/mapbox/streets-v10']; diff --git a/build/check-bundle-size.js b/build/check-bundle-size.js index 583b9a13d63..f25419e831f 100755 --- a/build/check-bundle-size.js +++ b/build/check-bundle-size.js @@ -1,12 +1,11 @@ #!/usr/bin/env node -/* eslint-disable */ -const { Octokit } = require("@octokit/rest"); -const { createAppAuth } = require("@octokit/auth-app"); -const prettyBytes = require('pretty-bytes'); -const fs = require('fs'); -const {execSync} = require('child_process'); -const zlib = require('zlib'); +import { Octokit } from "@octokit/rest"; +import { createAppAuth } from "@octokit/auth-app"; +import prettyBytes from 'pretty-bytes'; +import fs from 'fs'; +import {execSync} from 'child_process'; +import zlib from 'zlib'; process.on('unhandledRejection', error => { // don't log `error` directly, because errors from child_process.execSync diff --git a/build/diff-tarball.js b/build/diff-tarball.js index 43970decde2..a5c000319b0 100644 --- a/build/diff-tarball.js +++ b/build/diff-tarball.js @@ -1,5 +1,5 @@ -const packlist = require('npm-packlist') -const npmContent = require('list-npm-contents'); +import packlist from 'npm-packlist'; +import npmContent from 'list-npm-contents'; npmContent('mapbox-gl').then(function(last_version_files) { packlist({ path: '.' }).then(function(new_version_files) { @@ -15,4 +15,4 @@ npmContent('mapbox-gl').then(function(last_version_files) { console.log('-', file); }); }); -}); \ No newline at end of file +}); diff --git a/build/generate-access-token-script.js b/build/generate-access-token-script.js index 0eb7d3d60bf..1781a5dbe7e 100644 --- a/build/generate-access-token-script.js +++ b/build/generate-access-token-script.js @@ -1,11 +1,9 @@ -/* eslint-disable */ -'use strict'; -const fs = require('fs'); -const path = require('path'); -const script = fs.readFileSync(path.join(__dirname, '../debug/access_token.js'), 'utf-8') +import fs from 'fs'; + +const script = fs.readFileSync(new URL('../debug/access_token.js', import.meta.url), 'utf-8') .replace('process.env.MapboxAccessToken', JSON.stringify(process.env.MapboxAccessToken)) .replace('process.env.MAPBOX_ACCESS_TOKEN', JSON.stringify(process.env.MAPBOX_ACCESS_TOKEN)); -fs.writeFileSync(path.join(__dirname, '../debug/access_token_generated.js'), script); +fs.writeFileSync(new URL('../debug/access_token_generated.js', import.meta.url), script); diff --git a/build/generate-flow-typed-style-spec.js b/build/generate-flow-typed-style-spec.js index c0295bbf321..1e0f006c376 100644 --- a/build/generate-flow-typed-style-spec.js +++ b/build/generate-flow-typed-style-spec.js @@ -1,6 +1,8 @@ -const spec = require('../src/style-spec/reference/v8.json'); -const properties = require('../src/style-spec/util/properties'); -const fs = require('fs'); + +import fs from 'fs'; +import path from 'path'; +import {supportsPropertyExpression, supportsZoomExpression} from '../src/style-spec/util/properties.js'; +import spec from '../src/style-spec/reference/v8.json'; function flowEnum(values) { if (Array.isArray(values)) { @@ -43,9 +45,9 @@ function flowType(property) { } })(); - if (properties.supportsPropertyExpression(property)) { + if (supportsPropertyExpression(property)) { return `DataDrivenPropertyValueSpecification<${baseType}>`; - } else if (properties.supportsZoomExpression(property)) { + } else if (supportsZoomExpression(property)) { return `PropertyValueSpecification<${baseType}>`; } else if (property.expression) { return `ExpressionSpecification`; diff --git a/build/generate-release-list.js b/build/generate-release-list.js index f19d382f4d6..624e3469b7f 100644 --- a/build/generate-release-list.js +++ b/build/generate-release-list.js @@ -1,9 +1,9 @@ -const octokit = require('@octokit/rest')(); -const fs = require('fs'); +import octokit from '@octokit/rest'; +import fs from 'fs'; const list = {}; -octokit +octokit() .paginate(octokit.repos.listReleases.endpoint({ owner: 'mapbox', repo: 'mapbox-gl-js' diff --git a/build/node-loader.js b/build/node-loader.js new file mode 100644 index 00000000000..e68d0a214b7 --- /dev/null +++ b/build/node-loader.js @@ -0,0 +1,39 @@ +import flowRemoveTypes from '@mapbox/flow-remove-types'; +import {dataToEsm} from '@rollup/pluginutils'; + +const glslRe = /\.glsl$/; +const jsonRe = /\.json$/; + +export function resolve(specifier, context, defaultResolve) { + if (glslRe.test(specifier)) { + const url = new URL(specifier, context.parentURL).href; + return {url}; + } + return defaultResolve(specifier, context, defaultResolve); +} + +export function getFormat(url, context, defaultGetFormat) { + if (glslRe.test(url) || jsonRe.test(url)) { + return {format: 'module'}; + } + return defaultGetFormat(url, context, defaultGetFormat); +} + +export function transformSource(source, context, defaultTransformSource) { + if (source.indexOf('@flow') >= 0) { + source = flowRemoveTypes(source.toString()).toString(); + return {source}; + } + if (glslRe.test(context.url)) { + return {source: `export default \`${source}\``}; + } + if (jsonRe.test(context.url)) { + source = dataToEsm(JSON.parse(source), { + preferConst: true, + namedExports: true, + indent: ' ' + }); + return {source}; + } + return defaultTransformSource(source, context, defaultTransformSource); +} diff --git a/build/rollup_plugins.js b/build/rollup_plugins.js index 0b8825cac8f..dc084bea3ba 100644 --- a/build/rollup_plugins.js +++ b/build/rollup_plugins.js @@ -1,14 +1,14 @@ import flowRemoveTypes from '@mapbox/flow-remove-types'; -import resolve from 'rollup-plugin-node-resolve'; -import commonjs from 'rollup-plugin-commonjs'; +import resolve from '@rollup/plugin-node-resolve'; +import commonjs from '@rollup/plugin-commonjs'; import unassert from 'rollup-plugin-unassert'; -import json from 'rollup-plugin-json'; +import json from '@rollup/plugin-json'; import {terser} from 'rollup-plugin-terser'; -import minifyStyleSpec from './rollup_plugin_minify_style_spec'; -import {createFilter} from 'rollup-pluginutils'; +import minifyStyleSpec from './rollup_plugin_minify_style_spec.js'; +import {createFilter} from '@rollup/pluginutils'; import strip from '@rollup/plugin-strip'; -import replace from 'rollup-plugin-replace'; +import replace from '@rollup/plugin-replace'; // Common set of plugins/transformations shared across different rollup // builds (main mapboxgl bundle, style-spec package, benchmarks bundle) diff --git a/build/run-node b/build/run-node index 778623cf50a..3e41150915f 100755 --- a/build/run-node +++ b/build/run-node @@ -1,3 +1,3 @@ #!/usr/bin/env bash -node -r @mapbox/flow-remove-types/register -r esm ${@} +node --no-warnings --experimental-loader ./build/node-loader.js ${@} diff --git a/build/run-tap b/build/run-tap index e5b300cfed2..4cf182a61f9 100755 --- a/build/run-tap +++ b/build/run-tap @@ -5,4 +5,4 @@ else arg="${@}" fi -node_modules/.bin/tap --node-arg -r --node-arg @mapbox/flow-remove-types/register --node-arg -r --node-arg esm $arg --node-arg +node_modules/.bin/tap --node-arg --no-warnings --node-arg --experimental-loader --node-arg ./build/node-loader.js $arg --node-arg diff --git a/build/test/build-tape.js b/build/test/build-tape.js index cd558c12ce3..ea5e6b716fc 100644 --- a/build/test/build-tape.js +++ b/build/test/build-tape.js @@ -1,11 +1,11 @@ -/* eslint-disable import/no-commonjs */ /* eslint-disable flowtype/require-valid-file-annotation */ -const browserify = require('browserify'); -const fs = require('fs'); +import browserify from 'browserify'; +import fs from 'fs'; +import {fileURLToPath} from 'url'; -module.exports = function() { +export default function() { return new Promise((resolve, reject) => { - browserify(require.resolve('../../test/util/tape_config.js'), { standalone: 'tape' }) + browserify(fileURLToPath(new URL('../../test/util/tape_config.js', import.meta.url)), { standalone: 'tape' }) .transform("babelify", {presets: ["@babel/preset-env"], global: true, compact: true}) .bundle((err, buff) => { if (err) { throw err; } diff --git a/dist/package.json b/dist/package.json new file mode 100644 index 00000000000..2c63c085104 --- /dev/null +++ b/dist/package.json @@ -0,0 +1,2 @@ +{ +} diff --git a/package.json b/package.json index 00616e71672..abfb6f778e5 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "main": "dist/mapbox-gl.js", "style": "dist/mapbox-gl.css", "license": "SEE LICENSE IN LICENSE.txt", + "type": "module", "repository": { "type": "git", "url": "git://github.com/mapbox/mapbox-gl-js.git" @@ -39,13 +40,17 @@ }, "devDependencies": { "@babel/core": "^7.9.0", - "@mapbox/flow-remove-types": "^1.3.0-await.upstream.2", + "@mapbox/flow-remove-types": "^2.0.0", "@mapbox/gazetteer": "^4.0.4", "@mapbox/mapbox-gl-rtl-text": "^0.2.1", "@mapbox/mvt-fixtures": "^3.6.0", "@octokit/auth-app": "^2.4.7", "@octokit/rest": "^18.0.0", - "@rollup/plugin-strip": "^1.3.1", + "@rollup/plugin-commonjs": "^17.1.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^11.1.1", + "@rollup/plugin-replace": "^2.3.4", + "@rollup/plugin-strip": "^2.0.0", "address": "^1.1.2", "babel-eslint": "^10.0.1", "babelify": "^10.0.0", @@ -66,7 +71,6 @@ "eslint-plugin-import": "^2.16.0", "eslint-plugin-jsdoc": "^17.1.2", "eslint-plugin-react": "^7.12.4", - "esm": "~3.0.84", "flow-bin": "^0.100.0", "gl": "^4.5.3", "glob": "^7.1.4", @@ -86,21 +90,18 @@ "nyc": "^13.3.0", "pirates": "^4.0.1", "pixelmatch": "^5.1.0", - "postcss-cli": "^6.1.2", - "postcss-inline-svg": "^3.1.1", + "postcss": "^8.2.4", + "postcss-cli": "^8.3.1", + "postcss-inline-svg": "^5.0.0", "pretty-bytes": "^5.1.0", "puppeteer": "^1.18.0", "qrcode-terminal": "^0.12.0", "react": "^16.8.6", "react-dom": "^16.8.6", "request": "^2.88.0", - "rollup": "^1.23.1", - "rollup-plugin-commonjs": "^10.1.0", - "rollup-plugin-json": "^4.0.0", - "rollup-plugin-node-resolve": "^5.2.0", - "rollup-plugin-replace": "^2.2.0", - "rollup-plugin-sourcemaps": "^0.4.2", - "rollup-plugin-terser": "^5.1.2", + "rollup": "^2.38.4", + "rollup-plugin-sourcemaps": "^0.6.3", + "rollup-plugin-terser": "^7.0.2", "rollup-plugin-unassert": "^0.3.0", "selenium-webdriver": "^4.0.0-alpha.5", "shuffle-seed": "^1.1.6", @@ -118,7 +119,6 @@ "./src/util/window.js": "./src/util/browser/window.js", "./src/util/web_worker.js": "./src/util/browser/web_worker.js" }, - "esm": true, "scripts": { "build-dev": "rollup -c --environment BUILD:dev", "watch-dev": "rollup -c --environment BUILD:dev --watch", @@ -150,10 +150,10 @@ "test-unit": "build/run-tap --reporter classic --no-coverage test/unit", "test-build": "build/run-tap --no-coverage test/build/**/*.test.js", "test-browser": "build/run-tap --reporter spec --no-coverage test/browser/**/*.test.js", - "watch-render": "SUITE_NAME=render testem -f test/integration/testem.js", - "watch-query": "SUITE_NAME=query testem -f test/integration/testem.js", - "test-render": "SUITE_NAME=render CI=true testem ci -f test/integration/testem.js", - "test-query": "SUITE_NAME=query CI=true testem ci -f test/integration/testem.js", + "watch-render": "SUITE_NAME=render testem -f test/integration/testem/testem.js", + "watch-query": "SUITE_NAME=query testem -f test/integration/testem/testem.js", + "test-render": "SUITE_NAME=render CI=true testem ci -f test/integration/testem/testem.js", + "test-query": "SUITE_NAME=query CI=true testem ci -f test/integration/testem/testem.js", "test-expressions": "build/run-node test/expression.test.js", "test-flow": "build/run-node build/generate-flow-typed-style-spec && flow .", "test-cov": "nyc --require=@mapbox/flow-remove-types/register --reporter=text-summary --reporter=lcov --cache run-s test-unit test-expressions test-query test-render", diff --git a/postcss.config.js b/postcss.config.cjs similarity index 100% rename from postcss.config.js rename to postcss.config.cjs diff --git a/rollup.config.js b/rollup.config.js index a0185e77841..20974ba32a0 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,7 +1,8 @@ import fs from 'fs'; import sourcemaps from 'rollup-plugin-sourcemaps'; -import {plugins} from './build/rollup_plugins'; -import banner from './build/banner'; +import {plugins} from './build/rollup_plugins.js'; +import banner from './build/banner.js'; +import {fileURLToPath} from 'url'; const {BUILD, MINIFY} = process.env; const minified = MINIFY === 'true'; @@ -10,14 +11,14 @@ const bench = BUILD === 'bench'; function buildType(build, minified) { switch (build) { - case 'production': + case 'production': if (minified) return 'dist/mapbox-gl.js'; return 'dist/mapbox-gl-unminified.js'; case 'bench': return 'dist/mapbox-gl-bench.js'; case 'dev': return 'dist/mapbox-gl-dev.js'; - default: + default: return 'dist/mapbox-gl-dev.js'; } } @@ -53,7 +54,7 @@ export default [{ format: 'umd', sourcemap: production ? true : 'inline', indent: false, - intro: fs.readFileSync(require.resolve('./rollup/bundle_prelude.js'), 'utf8'), + intro: fs.readFileSync(fileURLToPath(new URL('./rollup/bundle_prelude.js', import.meta.url)), 'utf8'), banner }, treeshake: false, diff --git a/src/render/painter.js b/src/render/painter.js index 596572c80ea..0b2ab0fde85 100644 --- a/src/render/painter.js +++ b/src/render/painter.js @@ -14,7 +14,7 @@ import rasterBoundsAttributes from '../data/raster_bounds_attributes.js'; import posAttributes from '../data/pos_attributes.js'; import ProgramConfiguration from '../data/program_configuration.js'; import CrossTileSymbolIndex from '../symbol/cross_tile_symbol_index.js'; -import * as shaders from '../shaders/index.js'; +import shaders from '../shaders/shaders.js'; import Program from './program.js'; import {programUniforms} from './program/program_uniforms.js'; import Context from '../gl/context.js'; diff --git a/src/render/program.js b/src/render/program.js index c205f93e1cc..94bcb0419c9 100644 --- a/src/render/program.js +++ b/src/render/program.js @@ -1,6 +1,6 @@ // @flow -import {prelude, preludeTerrain} from '../shaders/index.js'; +import {prelude, preludeTerrain} from '../shaders/shaders.js'; import assert from 'assert'; import ProgramConfiguration from '../data/program_configuration.js'; import VertexArrayObject from './vertex_array_object.js'; diff --git a/src/shaders/index.js b/src/shaders/index.js deleted file mode 100644 index e20894e2c79..00000000000 --- a/src/shaders/index.js +++ /dev/null @@ -1,20 +0,0 @@ -// This file is intended for use in the GL-JS test suite -// It provides the shaders entry point for Node (tests and GL Native) -// In a browser environment, this file is replaced with ./src/shaders/shaders.js -// when Rollup builds the main bundle. -// See package.json#browser - -/* eslint-disable import/unambiguous, import/no-commonjs, flowtype/require-valid-file-annotation, no-global-assign */ - -const fs = require('fs'); - -// enable ES Modules in Node -require = require("esm")(module); - -// enable requiring GLSL in Node -require.extensions['.glsl'] = function (module, filename) { - const content = fs.readFileSync(filename, 'utf8'); - module._compile(`module.exports = \`${content}\``, filename); -}; - -module.exports = require("./shaders.js"); diff --git a/src/shaders/shaders.js b/src/shaders/shaders.js index d8aa42e33aa..f0ced1d5b43 100644 --- a/src/shaders/shaders.js +++ b/src/shaders/shaders.js @@ -68,39 +68,41 @@ import skyboxCaptureVert from './skybox_capture.vertex.glsl'; export let preludeTerrain = {}; preludeTerrain = compile('', preludeTerrainVert, true); export const prelude = compile(preludeFrag, preludeVert); -export const background = compile(backgroundFrag, backgroundVert); -export const backgroundPattern = compile(backgroundPatternFrag, backgroundPatternVert); -export const circle = compile(circleFrag, circleVert); -export const clippingMask = compile(clippingMaskFrag, clippingMaskVert); -export const heatmap = compile(heatmapFrag, heatmapVert); -export const heatmapTexture = compile(heatmapTextureFrag, heatmapTextureVert); -export const collisionBox = compile(collisionBoxFrag, collisionBoxVert); -export const collisionCircle = compile(collisionCircleFrag, collisionCircleVert); -export const debug = compile(debugFrag, debugVert); -export const fill = compile(fillFrag, fillVert); -export const fillOutline = compile(fillOutlineFrag, fillOutlineVert); -export const fillOutlinePattern = compile(fillOutlinePatternFrag, fillOutlinePatternVert); -export const fillPattern = compile(fillPatternFrag, fillPatternVert); -export const fillExtrusion = compile(fillExtrusionFrag, fillExtrusionVert); -export const fillExtrusionPattern = compile(fillExtrusionPatternFrag, fillExtrusionPatternVert); -export const hillshadePrepare = compile(hillshadePrepareFrag, hillshadePrepareVert); -export const hillshade = compile(hillshadeFrag, hillshadeVert); -export const line = compile(lineFrag, lineVert); -export const lineGradient = compile(lineGradientFrag, lineGradientVert); -export const linePattern = compile(linePatternFrag, linePatternVert); -export const lineSDF = compile(lineSDFFrag, lineSDFVert); -export const raster = compile(rasterFrag, rasterVert); -export const symbolIcon = compile(symbolIconFrag, symbolIconVert); -export const symbolSDF = compile(symbolSDFFrag, symbolSDFVert); -export const symbolTextAndIcon = compile(symbolTextAndIconFrag, symbolTextAndIconVert); -export const terrainRaster = compile(terrainRasterFrag, terrainRasterVert); -export const terrainDepth = compile(terrainDepthFrag, terrainDepthVert); -export const skybox = compile(skyboxFrag, skyboxVert); -export const skyboxGradient = compile(skyboxGradientFrag, skyboxVert); -export const skyboxCapture = compile(skyboxCaptureFrag, skyboxCaptureVert); -// Expand #pragmas to #ifdefs. +export default { + background: compile(backgroundFrag, backgroundVert), + backgroundPattern: compile(backgroundPatternFrag, backgroundPatternVert), + circle: compile(circleFrag, circleVert), + clippingMask: compile(clippingMaskFrag, clippingMaskVert), + heatmap: compile(heatmapFrag, heatmapVert), + heatmapTexture: compile(heatmapTextureFrag, heatmapTextureVert), + collisionBox: compile(collisionBoxFrag, collisionBoxVert), + collisionCircle: compile(collisionCircleFrag, collisionCircleVert), + debug: compile(debugFrag, debugVert), + fill: compile(fillFrag, fillVert), + fillOutline: compile(fillOutlineFrag, fillOutlineVert), + fillOutlinePattern: compile(fillOutlinePatternFrag, fillOutlinePatternVert), + fillPattern: compile(fillPatternFrag, fillPatternVert), + fillExtrusion: compile(fillExtrusionFrag, fillExtrusionVert), + fillExtrusionPattern: compile(fillExtrusionPatternFrag, fillExtrusionPatternVert), + hillshadePrepare: compile(hillshadePrepareFrag, hillshadePrepareVert), + hillshade: compile(hillshadeFrag, hillshadeVert), + line: compile(lineFrag, lineVert), + lineGradient: compile(lineGradientFrag, lineGradientVert), + linePattern: compile(linePatternFrag, linePatternVert), + lineSDF: compile(lineSDFFrag, lineSDFVert), + raster: compile(rasterFrag, rasterVert), + symbolIcon: compile(symbolIconFrag, symbolIconVert), + symbolSDF: compile(symbolSDFFrag, symbolSDFVert), + symbolTextAndIcon: compile(symbolTextAndIconFrag, symbolTextAndIconVert), + terrainRaster: compile(terrainRasterFrag, terrainRasterVert), + terrainDepth: compile(terrainDepthFrag, terrainDepthVert), + skybox: compile(skyboxFrag, skyboxVert), + skyboxGradient: compile(skyboxGradientFrag, skyboxVert), + skyboxCapture: compile(skyboxCaptureFrag, skyboxCaptureVert) +}; +// Expand #pragmas to #ifdefs. function compile(fragmentSource, vertexSource, isPreludeTerrainShader) { const re = /#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g; diff --git a/src/style-spec/package.json b/src/style-spec/package.json index e95a8c47f47..efbeb87556e 100644 --- a/src/style-spec/package.json +++ b/src/style-spec/package.json @@ -11,6 +11,7 @@ "license": "ISC", "main": "./dist/index.js", "module": "./dist/index.es.js", + "type": "module", "scripts": { "copy-flow-typed": "cp -R ../../flow-typed .", "build": "../../node_modules/.bin/rollup -c && ../../node_modules/.bin/rollup -c --environment esm", diff --git a/src/style-spec/rollup.config.js b/src/style-spec/rollup.config.js index 077c37b2a48..63030f31604 100644 --- a/src/style-spec/rollup.config.js +++ b/src/style-spec/rollup.config.js @@ -1,15 +1,16 @@ import path from 'path'; -import replace from 'rollup-plugin-replace'; -import resolve from 'rollup-plugin-node-resolve'; -import commonjs from 'rollup-plugin-commonjs'; +import replace from '@rollup/plugin-replace'; +import resolve from '@rollup/plugin-node-resolve'; +import commonjs from '@rollup/plugin-commonjs'; import unassert from 'rollup-plugin-unassert'; -import json from 'rollup-plugin-json'; +import json from '@rollup/plugin-json'; import {flow} from '../../build/rollup_plugins.js'; // Build es modules? const esm = 'esm' in process.env; -const ROOT_DIR = __dirname; +import {fileURLToPath} from 'url'; +const __dirname = fileURLToPath(new URL('.', import.meta.url)); const config = [{ input: `${__dirname}/style-spec.js`, @@ -28,7 +29,7 @@ const config = [{ // This check will cause the build to fail on CI allowing these issues to be caught. if (importer && !importer.includes('node_modules')) { const resolvedPath = path.join(importer, source); - const fromRoot = path.relative(ROOT_DIR, resolvedPath); + const fromRoot = path.relative(__dirname, resolvedPath); if (fromRoot.length > 2 && fromRoot.slice(0, 2) === '..') { throw new Error(`Module ${importer} imports ${source} from outside the style-spec package root directory.`); } diff --git a/test/build/min.test.js b/test/build/min.test.js index 8019c4159fb..2c5c8fed62f 100644 --- a/test/build/min.test.js +++ b/test/build/min.test.js @@ -3,6 +3,10 @@ import fs from 'fs'; import path from 'path'; import reference from '../../src/style-spec/reference/latest.js'; import {scripts} from '../../package.json'; +import browserify from 'browserify'; + +import {fileURLToPath} from 'url'; +const __dirname = fileURLToPath(new URL('.', import.meta.url)); const minBundle = fs.readFileSync('dist/mapbox-gl.js', 'utf8'); @@ -16,7 +20,10 @@ test('trims package.json assets', (t) => { // confirm that the entire package.json isn't present by asserting // the absence of each of our script strings for (const name in scripts) { - t.assert(minBundle.indexOf(scripts[name]) === -1); + if (minBundle.indexOf(scripts[name]) >= 0) { + t.fail(); + break; + } } t.end(); }); @@ -28,7 +35,6 @@ test('trims reference.json fields', (t) => { }); test('can be browserified', (t) => { - const browserify = require('browserify'); browserify(path.join(__dirname, 'browserify-test-fixture.js')).bundle((err) => { t.ifError(err); t.end(); @@ -36,6 +42,8 @@ test('can be browserified', (t) => { }); test('evaluates without errors', (t) => { - t.doesNotThrow(() => require(path.join(__dirname, '../../dist/mapbox-gl.js'))); + t.doesNotThrow(async () => { + await import(path.join(__dirname, '../../dist/mapbox-gl.js')); + }); t.end(); }); diff --git a/test/build/style-spec.test.js b/test/build/style-spec.test.js index e837ccce30b..b5a80f4845a 100644 --- a/test/build/style-spec.test.js +++ b/test/build/style-spec.test.js @@ -5,6 +5,12 @@ import {rollup} from 'rollup'; import {test} from '../util/test.js'; import rollupConfig from '../../src/style-spec/rollup.config.js'; +import {createRequire} from 'module'; +const require = createRequire(import.meta.url); + +import {fileURLToPath} from 'url'; +const __dirname = fileURLToPath(new URL('.', import.meta.url)); + const styleSpecDirectory = path.join(__dirname, '../../src/style-spec'); import styleSpecPackage from '../../src/style-spec/package.json'; diff --git a/test/expression.test.js b/test/expression.test.js index cab12bc88f3..2c4155d43f6 100644 --- a/test/expression.test.js +++ b/test/expression.test.js @@ -7,6 +7,9 @@ import ignores from './ignores.json'; import {CanonicalTileID} from '../src/source/tile_id.js'; import MercatorCoordinate from '../src/geo/mercator_coordinate.js'; +import {fileURLToPath} from 'url'; +const __filename = fileURLToPath(import.meta.url); + function getPoint(coord, canonical) { const p = canonical.getTilePoint(MercatorCoordinate.fromLngLat({lng: coord[0], lat: coord[1]}, 0)); p.x = Math.round(p.x); diff --git a/test/integration/lib/expression.js b/test/integration/lib/expression.js index 101fb567c95..f1462ee3b7a 100644 --- a/test/integration/lib/expression.js +++ b/test/integration/lib/expression.js @@ -4,6 +4,9 @@ import fs from 'fs'; import harness from './harness.js'; import compactStringify from 'json-stringify-pretty-compact'; +import {fileURLToPath} from 'url'; +const __dirname = fileURLToPath(new URL('.', import.meta.url)); + // we have to handle this edge case here because we have test fixtures for this // edge case, and we don't want UPDATE=1 to mess with them function stringify(v) { diff --git a/test/integration/lib/generate-fixture-json.js b/test/integration/lib/generate-fixture-json.js index 355b013531b..9ed7ac68ebd 100644 --- a/test/integration/lib/generate-fixture-json.js +++ b/test/integration/lib/generate-fixture-json.js @@ -1,11 +1,7 @@ -/* eslint-disable import/no-commonjs */ -const path = require('path'); -const fs = require('fs'); -const glob = require('glob'); -const localizeURLs = require('./localize-urls'); - -exports.generateFixtureJson = generateFixtureJson; -exports.getAllFixtureGlobs = getAllFixtureGlobs; +import path from 'path'; +import fs from 'fs'; +import glob from 'glob'; +import localizeURLs from './localize-urls.js'; /** * Analyzes the contents of the specified `path.join(rootDirectory, suiteDirectory)`, and inlines @@ -16,7 +12,7 @@ exports.getAllFixtureGlobs = getAllFixtureGlobs; * @param {string} suiteDirectory * @param {boolean} includeImages */ -function generateFixtureJson(rootDirectory, suiteDirectory, outputDirectory = 'test/integration/dist', includeImages = false) { +export function generateFixtureJson(rootDirectory, suiteDirectory, outputDirectory = 'test/integration/dist', includeImages = false) { const globs = getAllFixtureGlobs(rootDirectory, suiteDirectory); const jsonPaths = globs[0]; const imagePaths = globs[1]; @@ -84,7 +80,7 @@ function generateFixtureJson(rootDirectory, suiteDirectory, outputDirectory = 't }); } -function getAllFixtureGlobs(rootDirectory, suiteDirectory) { +export function getAllFixtureGlobs(rootDirectory, suiteDirectory) { const basePath = path.join(rootDirectory, suiteDirectory); const jsonPaths = path.join(basePath, '/**/[!actual]*.json'); const imagePaths = path.join(basePath, '/**/*.png'); diff --git a/test/integration/lib/harness.js b/test/integration/lib/harness.js index 6d1bfc7502a..b9fe428762b 100644 --- a/test/integration/lib/harness.js +++ b/test/integration/lib/harness.js @@ -3,14 +3,20 @@ import path from 'path'; import fs from 'fs'; import glob from 'glob'; -import {shuffle} from 'shuffle-seed'; -import {queue} from 'd3'; +import shuffleSeed from 'shuffle-seed'; +import d3 from 'd3'; // eslint-disable-line import colors from 'chalk'; import template from 'lodash.template'; import createServer from './server.js'; +import {fileURLToPath} from 'url'; +const __dirname = fileURLToPath(new URL('.', import.meta.url)); + +import {createRequire} from 'module'; +const require = createRequire(import.meta.url); + export default function (directory, implementation, options, run) { - const q = queue(1); + const q = d3.queue(1); const server = createServer(); const tests = options.tests || []; @@ -58,7 +64,7 @@ export default function (directory, implementation, options, run) { if (options.shuffle) { console.log(colors.white(`* shuffle seed: `) + colors.bold(`${options.seed}`)); - sequence = shuffle(sequence, options.seed); + sequence = shuffleSeed.shuffle(sequence, options.seed); } q.defer(server.listen); @@ -185,7 +191,7 @@ export default function (directory, implementation, options, run) { const p = path.join(directory, options.recycleMap ? 'index-recycle-map.html' : 'index.html'); const out = fs.createWriteStream(p); - const q = queue(1); + const q = d3.queue(1); q.defer(write, out, resultsShell[0]); for (const test of tests) { q.defer(write, out, itemTemplate({r: test, hasFailedTests: unsuccessful.length > 0})); diff --git a/test/integration/lib/localize-urls.js b/test/integration/lib/localize-urls.js index 040572cf1f9..6c509a02977 100644 --- a/test/integration/lib/localize-urls.js +++ b/test/integration/lib/localize-urls.js @@ -1,9 +1,14 @@ -/* eslint-disable import/no-commonjs */ -const path = require('path'); -const fs = require('fs'); -const colors = require('chalk'); +import path from 'path'; +import fs from 'fs'; +import colors from 'chalk'; -module.exports = function localizeURLs(style, port) { +import {fileURLToPath} from 'url'; +const __dirname = fileURLToPath(new URL('.', import.meta.url)); + +import {createRequire} from 'module'; +const require = createRequire(import.meta.url); + +export default function localizeURLs(style, port) { localizeStyleURLs(style, port); if (style.metadata && style.metadata.test && style.metadata.test.operations) { style.metadata.test.operations.forEach((op) => { @@ -42,7 +47,7 @@ module.exports = function localizeURLs(style, port) { } }); } -}; +} function localizeURL(url, port) { return url.replace(/^local:\/\//, `http://localhost:${port}/`); diff --git a/test/integration/lib/server.js b/test/integration/lib/server.js index a16adc4d2c7..873c87eb2a2 100644 --- a/test/integration/lib/server.js +++ b/test/integration/lib/server.js @@ -1,11 +1,16 @@ -/* eslint-disable import/no-commonjs */ -const path = require('path'); -const fs = require('fs'); -const st = require('st'); -const {createServer} = require('http'); -const localizeURLs = require('./localize-urls'); - -module.exports = function () { +import path from 'path'; +import fs from 'fs'; +import st from 'st'; +import {createServer} from 'http'; +import localizeURLs from './localize-urls.js'; + +import {fileURLToPath} from 'url'; +const __dirname = fileURLToPath(new URL('.', import.meta.url)); + +import {createRequire} from 'module'; +const require = createRequire(import.meta.url); + +export default function () { const port = 2900; const integrationMount = st({path: path.join(__dirname, '..')}); const mapboxGLStylesMount = st({path: path.dirname(require.resolve('mapbox-gl-styles')), url: 'mapbox-gl-styles'}); @@ -52,4 +57,4 @@ module.exports = function () { return localizeURLs(style, port); } }; -}; +} diff --git a/test/integration/testem/package.json b/test/integration/testem/package.json new file mode 100644 index 00000000000..5bbefffbabe --- /dev/null +++ b/test/integration/testem/package.json @@ -0,0 +1,3 @@ +{ + "type": "commonjs" +} diff --git a/test/integration/testem.js b/test/integration/testem/testem.js similarity index 85% rename from test/integration/testem.js rename to test/integration/testem/testem.js index bd9601c2ec1..994778c8f7f 100644 --- a/test/integration/testem.js +++ b/test/integration/testem/testem.js @@ -1,16 +1,22 @@ -/* eslint-disable no-global-assign */ /* eslint-disable import/no-commonjs */ /* eslint-disable flowtype/require-valid-file-annotation */ -require = require("esm")(module); -const {generateFixtureJson, getAllFixtureGlobs} = require('./lib/generate-fixture-json'); -const createServer = require('./lib/server'); -const buildTape = require('../../build/test/build-tape'); const runAll = require('npm-run-all'); const chokidar = require('chokidar'); const rollup = require('rollup'); const notifier = require('node-notifier'); -const rollupDevConfig = require('../../rollup.config').default; -const rollupTestConfig = require('./rollup.config.test').default; + +// hack to be able to import ES modules inside a CommonJS one +let generateFixtureJson, getAllFixtureGlobs, createServer, buildTape, rollupDevConfig, rollupTestConfig; +async function loadModules() { + const generateFixture = await import('../lib/generate-fixture-json.js'); + generateFixtureJson = generateFixture.generateFixtureJson; + getAllFixtureGlobs = generateFixture.getAllFixtureGlobs; + + createServer = (await import('../lib/server.js')).default; + buildTape = (await import('../../../build/test/build-tape.js')).default; + rollupDevConfig = (await import('../../../rollup.config.js')).default; + rollupTestConfig = (await import('../rollup.config.test.js')).default; +} const rootFixturePath = 'test/integration/'; const outputPath = `${rootFixturePath}dist`; @@ -75,12 +81,14 @@ const defaultTestemConfig = { }, "before_tests"(config, data, callback) { if (!beforeHookInvoked) { - server = createServer(); - const buildPromise = config.appMode === 'ci' ? buildArtifactsCi() : buildArtifactsDev(); - buildPromise.then(() => { - server.listen(callback); - }).catch((e) => { - callback(e); + loadModules().then(() => { + server = createServer(); + const buildPromise = config.appMode === 'ci' ? buildArtifactsCi() : buildArtifactsDev(); + buildPromise.then(() => { + server.listen(callback); + }).catch((e) => { + callback(e); + }); }); beforeHookInvoked = true; diff --git a/test/unit/changelog.js b/test/unit/changelog.js index 9514a1f1674..9ce29b4983d 100644 --- a/test/unit/changelog.js +++ b/test/unit/changelog.js @@ -3,6 +3,9 @@ import fs from 'fs'; import path from 'path'; import {version} from '../../package.json'; +import {fileURLToPath} from 'url'; +const __dirname = fileURLToPath(new URL('.', import.meta.url)); + test('changelog', (t) => { const changelog = fs.readFileSync(path.join(__dirname, '../../CHANGELOG.md'), 'utf8'); t.test('latest version is in changelog', (t) => { diff --git a/test/unit/data/fill_bucket.test.js b/test/unit/data/fill_bucket.test.js index d5f257fc05c..65a12c34f11 100644 --- a/test/unit/data/fill_bucket.test.js +++ b/test/unit/data/fill_bucket.test.js @@ -8,6 +8,9 @@ import segment from '../../../src/data/segment.js'; import FillBucket from '../../../src/data/bucket/fill_bucket.js'; import FillStyleLayer from '../../../src/style/style_layer/fill_style_layer.js'; +import {fileURLToPath} from 'url'; +const __dirname = fileURLToPath(new URL('.', import.meta.url)); + // Load a fill feature from fixture tile. const vt = new VectorTile(new Protobuf(fs.readFileSync(path.join(__dirname, '/../../fixtures/mbsv5-6-18-23.vector.pbf')))); const feature = vt.layers.water.feature(0); diff --git a/test/unit/data/line_bucket.test.js b/test/unit/data/line_bucket.test.js index cfd84b41259..67dba172696 100644 --- a/test/unit/data/line_bucket.test.js +++ b/test/unit/data/line_bucket.test.js @@ -8,6 +8,9 @@ import segment from '../../../src/data/segment.js'; import LineBucket from '../../../src/data/bucket/line_bucket.js'; import LineStyleLayer from '../../../src/style/style_layer/line_style_layer.js'; +import {fileURLToPath} from 'url'; +const __dirname = fileURLToPath(new URL('.', import.meta.url)); + // Load a line feature from fixture tile. const vt = new VectorTile(new Protobuf(fs.readFileSync(path.join(__dirname, '/../../fixtures/mbsv5-6-18-23.vector.pbf')))); const feature = vt.layers.road.feature(0); diff --git a/test/unit/data/load_geometry.test.js b/test/unit/data/load_geometry.test.js index dbce33b58e2..185e7f7c2cd 100644 --- a/test/unit/data/load_geometry.test.js +++ b/test/unit/data/load_geometry.test.js @@ -5,6 +5,9 @@ import Protobuf from 'pbf'; import {VectorTile} from '@mapbox/vector-tile'; import loadGeometry from '../../../src/data/load_geometry.js'; +import {fileURLToPath} from 'url'; +const __dirname = fileURLToPath(new URL('.', import.meta.url)); + // Load a line feature from fixture tile. const vt = new VectorTile(new Protobuf(fs.readFileSync(path.join(__dirname, '/../../fixtures/mbsv5-6-18-23.vector.pbf')))); diff --git a/test/unit/data/symbol_bucket.test.js b/test/unit/data/symbol_bucket.test.js index c4f8eccaca9..71f7e2530a3 100644 --- a/test/unit/data/symbol_bucket.test.js +++ b/test/unit/data/symbol_bucket.test.js @@ -14,6 +14,9 @@ import CrossTileSymbolIndex from '../../../src/symbol/cross_tile_symbol_index.js import FeatureIndex from '../../../src/data/feature_index.js'; import {createSymbolBucket} from '../../util/create_symbol_layer.js'; +import {fileURLToPath} from 'url'; +const __dirname = fileURLToPath(new URL('.', import.meta.url)); + // Load a point feature from fixture tile. const vt = new VectorTile(new Protobuf(fs.readFileSync(path.join(__dirname, '/../../fixtures/mbsv5-6-18-23.vector.pbf')))); const feature = vt.layers.place_label.feature(10); diff --git a/test/unit/data/vertex_buffer.test.js b/test/unit/data/vertex_buffer.test.js index 76bba703ecb..b6b793dd6cc 100644 --- a/test/unit/data/vertex_buffer.test.js +++ b/test/unit/data/vertex_buffer.test.js @@ -2,6 +2,7 @@ import {test} from '../../util/test.js'; import VertexBuffer from '../../../src/gl/vertex_buffer.js'; import {StructArrayLayout3i6} from '../../../src/data/array_types.js'; import Context from '../../../src/gl/context.js'; +import headlessGL from 'gl'; test('VertexBuffer', (t) => { class TestArray extends StructArrayLayout3i6 {} @@ -11,7 +12,7 @@ test('VertexBuffer', (t) => { ]; t.test('constructs itself', (t) => { - const context = new Context(require('gl')(10, 10)); + const context = new Context(headlessGL(10, 10)); const array = new TestArray(); array.emplaceBack(1, 1, 1); array.emplaceBack(1, 1, 1); @@ -29,7 +30,7 @@ test('VertexBuffer', (t) => { }); t.test('enableAttributes', (t) => { - const context = new Context(require('gl')(10, 10)); + const context = new Context(headlessGL(10, 10)); const array = new TestArray(); const buffer = new VertexBuffer(context, array, attributes); t.stub(context.gl, 'enableVertexAttribArray').callsFake(() => {}); @@ -39,7 +40,7 @@ test('VertexBuffer', (t) => { }); t.test('setVertexAttribPointers', (t) => { - const context = new Context(require('gl')(10, 10)); + const context = new Context(headlessGL(10, 10)); const array = new TestArray(); const buffer = new VertexBuffer(context, array, attributes); t.stub(context.gl, 'vertexAttribPointer').callsFake(() => {}); diff --git a/test/unit/source/tile.test.js b/test/unit/source/tile.test.js index 68937c08223..4d3e0811fae 100644 --- a/test/unit/source/tile.test.js +++ b/test/unit/source/tile.test.js @@ -11,6 +11,9 @@ import {CollisionBoxArray} from '../../../src/data/array_types.js'; import {extend} from '../../../src/util/util.js'; import {serialize, deserialize} from '../../../src/util/web_worker_transfer.js'; +import {fileURLToPath} from 'url'; +const __dirname = fileURLToPath(new URL('.', import.meta.url)); + test('querySourceFeatures', (t) => { const features = [{ type: 1, diff --git a/test/unit/source/vector_tile_source.test.js b/test/unit/source/vector_tile_source.test.js index 0f1f020130b..b0736ca8177 100644 --- a/test/unit/source/vector_tile_source.test.js +++ b/test/unit/source/vector_tile_source.test.js @@ -4,6 +4,7 @@ import {OverscaledTileID} from '../../../src/source/tile_id.js'; import window from '../../../src/util/window.js'; import {Evented} from '../../../src/util/evented.js'; import {RequestManager} from '../../../src/util/mapbox.js'; +import sourceFixture from '../../fixtures/source.json'; const wrapDispatcher = (dispatcher) => { return { @@ -69,7 +70,7 @@ test('VectorTileSource', (t) => { }); t.test('can be constructed from a TileJSON URL', (t) => { - window.server.respondWith('/source.json', JSON.stringify(require('../../fixtures/source'))); + window.server.respondWith('/source.json', JSON.stringify(sourceFixture)); const source = createSource({url: "/source.json"}); @@ -87,7 +88,7 @@ test('VectorTileSource', (t) => { }); t.test('transforms the request for TileJSON URL', (t) => { - window.server.respondWith('/source.json', JSON.stringify(require('../../fixtures/source'))); + window.server.respondWith('/source.json', JSON.stringify(sourceFixture)); const transformSpy = t.spy((url) => { return {url}; }); @@ -100,7 +101,7 @@ test('VectorTileSource', (t) => { }); t.test('fires event with metadata property', (t) => { - window.server.respondWith('/source.json', JSON.stringify(require('../../fixtures/source'))); + window.server.respondWith('/source.json', JSON.stringify(sourceFixture)); const source = createSource({url: "/source.json"}); source.on('data', (e) => { if (e.sourceDataType === 'content') t.end(); @@ -109,7 +110,7 @@ test('VectorTileSource', (t) => { }); t.test('fires "dataloading" event', (t) => { - window.server.respondWith('/source.json', JSON.stringify(require('../../fixtures/source'))); + window.server.respondWith('/source.json', JSON.stringify(sourceFixture)); const evented = new Evented(); let dataloadingFired = false; evented.on('dataloading', () => { @@ -183,7 +184,7 @@ test('VectorTileSource', (t) => { testScheme('tms', 'http://example.com/10/5/1018.png'); t.test('transforms tile urls before requesting', (t) => { - window.server.respondWith('/source.json', JSON.stringify(require('../../fixtures/source'))); + window.server.respondWith('/source.json', JSON.stringify(sourceFixture)); const source = createSource({url: "/source.json"}); const transformSpy = t.spy(source.map._requestManager, 'transformRequest'); diff --git a/test/unit/source/vector_tile_worker_source.test.js b/test/unit/source/vector_tile_worker_source.test.js index 20a0224bf92..be47fcb9c2f 100644 --- a/test/unit/source/vector_tile_worker_source.test.js +++ b/test/unit/source/vector_tile_worker_source.test.js @@ -7,6 +7,9 @@ import VectorTileWorkerSource from '../../../src/source/vector_tile_worker_sourc import StyleLayerIndex from '../../../src/style/style_layer_index.js'; import perf from '../../../src/util/performance.js'; +import {fileURLToPath} from 'url'; +const __dirname = fileURLToPath(new URL('.', import.meta.url)); + const actor = {send: () => {}}; test('VectorTileWorkerSource#abortTile aborts pending request', (t) => { diff --git a/test/unit/style-spec/migrate.test.js b/test/unit/style-spec/migrate.test.js index ca2f764cad5..000a77b62f3 100644 --- a/test/unit/style-spec/migrate.test.js +++ b/test/unit/style-spec/migrate.test.js @@ -9,6 +9,9 @@ import migrate from '../../../src/style-spec/migrate.js'; /* eslint-disable import/namespace */ import * as spec from '../../../src/style-spec/style-spec.js'; +import {fileURLToPath} from 'url'; +const __dirname = fileURLToPath(new URL('.', import.meta.url)); + const UPDATE = !!process.env.UPDATE; test('does not migrate from version 5', (t) => { diff --git a/test/unit/style-spec/validate.test.js b/test/unit/style-spec/validate.test.js index bc1709c8e1e..2a0d4ffdfc2 100644 --- a/test/unit/style-spec/validate.test.js +++ b/test/unit/style-spec/validate.test.js @@ -4,6 +4,9 @@ import fs from 'fs'; import path from 'path'; import validate from '../../../src/style-spec/validate_style.js'; +import {fileURLToPath} from 'url'; +const __dirname = fileURLToPath(new URL('.', import.meta.url)); + const UPDATE = !!process.env.UPDATE; glob.sync(`${__dirname}/fixture/*.input.json`).forEach((file) => { diff --git a/test/unit/style-spec/validate_mapbox_api_supported.test.js b/test/unit/style-spec/validate_mapbox_api_supported.test.js index b535fe68a26..1eeece9ae5d 100644 --- a/test/unit/style-spec/validate_mapbox_api_supported.test.js +++ b/test/unit/style-spec/validate_mapbox_api_supported.test.js @@ -4,6 +4,9 @@ import fs from 'fs'; import path from 'path'; import validateMapboxApiSupported from '../../../src/style-spec/validate_mapbox_api_supported.js'; +import {fileURLToPath} from 'url'; +const __dirname = fileURLToPath(new URL('.', import.meta.url)); + const UPDATE = !!process.env.UPDATE; glob.sync(`${__dirname}/fixture/*.input.json`).forEach((file) => { diff --git a/test/unit/style/load_glyph_range.test.js b/test/unit/style/load_glyph_range.test.js index 2f8b7f81295..69b7e92c09f 100644 --- a/test/unit/style/load_glyph_range.test.js +++ b/test/unit/style/load_glyph_range.test.js @@ -7,6 +7,10 @@ import window from '../../../src/util/window.js'; import {RequestManager} from '../../../src/util/mapbox.js'; import loadGlyphRange from '../../../src/style/load_glyph_range.js'; +import {fileURLToPath} from 'url'; +// $FlowFixMe https://github.com/facebook/flow/issues/6913 +const __dirname = fileURLToPath(new URL('.', import/*:: ("")*/.meta.url)); + test('loadGlyphRange', (t) => { window.useFakeXMLHttpRequest(); @@ -46,6 +50,7 @@ test('loadGlyphRange', (t) => { t.equal(request.url, 'https://localhost/fonts/v1/Arial Unicode MS/0-255.pbf'); request.setStatus(200); + // $FlowFixMe https://github.com/facebook/flow/pull/8465 request.response = fs.readFileSync(path.join(__dirname, '../../fixtures/0-255.pbf')); request.onload(); diff --git a/test/unit/symbol/shaping.test.js b/test/unit/symbol/shaping.test.js index fb4988f731f..c2ba04c8a2b 100644 --- a/test/unit/symbol/shaping.test.js +++ b/test/unit/symbol/shaping.test.js @@ -7,6 +7,9 @@ import ResolvedImage from '../../../src/style-spec/expression/types/resolved_ima import {ImagePosition} from '../../../src/render/image_atlas.js'; const WritingMode = shaping.WritingMode; +import {fileURLToPath} from 'url'; +const __dirname = fileURLToPath(new URL('.', import.meta.url)); + let UPDATE = false; if (typeof process !== 'undefined' && process.env !== undefined) { UPDATE = !!process.env.UPDATE; @@ -57,7 +60,7 @@ test('shaping', (t) => { // Line break. shaped = shaping.shapeText(Formatted.fromString('abcde abcde'), glyphs, glyphPositions, images, fontStack, 4 * oneEm, oneEm, 'center', 'center', 0 * oneEm, [0, 0], WritingMode.horizontal, false, 'point', layoutTextSize, layoutTextSizeThisZoom); if (UPDATE) fs.writeFileSync(path.join(__dirname, '/../../expected/text-shaping-linebreak.json'), JSON.stringify(shaped, null, 2)); - t.deepEqual(shaped, require('../../expected/text-shaping-linebreak.json')); + t.deepEqual(shaped, JSON.parse(fs.readFileSync(path.join(__dirname, '../../expected/text-shaping-linebreak.json')))); const expectedNewLine = JSON.parse(fs.readFileSync(path.join(__dirname, '/../../expected/text-shaping-newline.json'))); diff --git a/test/unit/ui/control/attribution.test.js b/test/unit/ui/control/attribution.test.js index f96f20c6ded..d9481d8bd35 100644 --- a/test/unit/ui/control/attribution.test.js +++ b/test/unit/ui/control/attribution.test.js @@ -5,10 +5,9 @@ import {createMap as globalCreateMap} from '../../../util/index.js'; import simulate from '../../../util/simulate_interaction.js'; function createMap(t) { - config.ACCESS_TOKEN = 'pk.123'; - return globalCreateMap(t, { attributionControl: false, + accessToken: 'pk.123', style: { version: 8, sources: {}, diff --git a/test/unit/ui/control/geolocate.test.js b/test/unit/ui/control/geolocate.test.js index eba8eea954b..ac733312acb 100644 --- a/test/unit/ui/control/geolocate.test.js +++ b/test/unit/ui/control/geolocate.test.js @@ -3,15 +3,21 @@ import window from '../../../../src/util/window.js'; import {createMap} from '../../../util/index.js'; import GeolocateControl from '../../../../src/ui/control/geolocate_control.js'; -// window and navigator globals need to be set for mock-geolocation -global.window = {}; -global.navigator = {}; -const geolocation = require('mock-geolocation'); // eslint-disable-line import/no-commonjs -geolocation.use(); - -// assign the mock geolocation to window -global.window.navigator = global.navigator; -window.navigator.geolocation = global.window.navigator.geolocation; +let geolocation; + +test('geolocation mock loads properly', async (t) => { + // window and navigator globals need to be set for mock-geolocation + global.window = {}; + global.navigator = {}; + geolocation = await import('mock-geolocation'); + geolocation.use(); + + // assign the mock geolocation to window + global.window.navigator = global.navigator; + window.navigator.geolocation = global.window.navigator.geolocation; + + t.end(); +}); // convert the coordinates of a LngLat object to a fixed number of digits function lngLatAsFixed(lngLat, digits) { diff --git a/test/unit/util/classify_rings.test.js b/test/unit/util/classify_rings.test.js index f474bf476e9..54d41f66d61 100644 --- a/test/unit/util/classify_rings.test.js +++ b/test/unit/util/classify_rings.test.js @@ -5,6 +5,9 @@ import Protobuf from 'pbf'; import {VectorTile} from '@mapbox/vector-tile'; import classifyRings from '../../../src/util/classify_rings.js'; +import {fileURLToPath} from 'url'; +const __dirname = fileURLToPath(new URL('.', import.meta.url)); + // Load a fill feature from fixture tile. const vt = new VectorTile(new Protobuf(fs.readFileSync(path.join(__dirname, '/../../fixtures/mbsv5-6-18-23.vector.pbf')))); const feature = vt.layers.water.feature(0); diff --git a/test/util/index.js b/test/util/index.js index dc5c6d28386..e3d6707e54f 100644 --- a/test/util/index.js +++ b/test/util/index.js @@ -9,6 +9,8 @@ export function createMap(t, options, callback) { interactive: false, attributionControl: false, trackResize: true, + // this token is a fallback for CI and testing. it is domain restricted to localhost + accessToken: 'pk.eyJ1IjoibWFwYm94LWdsLWpzIiwiYSI6ImNram9ybGI1ajExYjQyeGxlemppb2pwYjIifQ.LGy5UGNIsXUZdYMvfYRiAQ', style: { "version": 8, "sources": {}, diff --git a/yarn.lock b/yarn.lock index 47f145002cd..9d904023b09 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,13 +2,20 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== dependencies: "@babel/highlight" "^7.8.3" +"@babel/code-frame@^7.10.4": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" + integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== + dependencies: + "@babel/highlight" "^7.12.13" + "@babel/compat-data@^7.8.6", "@babel/compat-data@^7.9.0": version "7.9.0" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.9.0.tgz#04815556fc90b0c174abd2c0c1bb966faa036a6c" @@ -236,6 +243,11 @@ dependencies: "@babel/types" "^7.8.3" +"@babel/helper-validator-identifier@^7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" + integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== + "@babel/helper-validator-identifier@^7.9.0": version "7.9.0" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz#ad53562a7fc29b3b9a91bbf7d10397fd146346ed" @@ -260,6 +272,15 @@ "@babel/traverse" "^7.9.0" "@babel/types" "^7.9.0" +"@babel/highlight@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.12.13.tgz#8ab538393e00370b26271b01fa08f7f27f2e795c" + integrity sha512-kocDQvIbgMKlWxXe9fof3TQ+gkIPOUSEYhJjqUjvKMez3krV7vbzYCDq39Oj11UAVK7JqPVGQPlgE85dPNlQww== + dependencies: + "@babel/helper-validator-identifier" "^7.12.11" + chalk "^2.0.0" + js-tokens "^4.0.0" + "@babel/highlight@^7.8.3": version "7.9.0" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079" @@ -274,6 +295,11 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.1.3.tgz#2c92469bac2b7fbff810b67fca07bd138b48af77" integrity sha512-gqmspPZOMW3MIRb9HlrnbZHXI1/KHTOroBwN1NcLL6pWxzqzEKGvRTq0W/PxS45OtQGbaFikSQpkS5zbnsQm2w== +"@babel/parser@^7.12.15": + version "7.12.15" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.12.15.tgz#2b20de7f0b4b332d9b119dd9c33409c538b8aacf" + integrity sha512-AQBOU2Z9kWwSZMd6lNjCX0GUgFonL1wAM1db8L8PMk9UDaGsRCArBkU4Sc+UCM3AE4hjbXx+h58Lb3QT4oRmrA== + "@babel/parser@^7.4.3", "@babel/parser@^7.7.0", "@babel/parser@^7.8.6", "@babel/parser@^7.9.0": version "7.9.4" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8" @@ -1025,15 +1051,15 @@ lodash "^4.17.13" to-fast-properties "^2.0.0" -"@mapbox/flow-remove-types@^1.3.0-await.upstream.2": - version "1.3.0-await.upstream.2" - resolved "https://registry.yarnpkg.com/@mapbox/flow-remove-types/-/flow-remove-types-1.3.0-await.upstream.2.tgz#bb8613e5cfd3f69d764658c5084d7f5d501097a2" - integrity sha512-OYVWXwkluP+9Jz2uenNSeum7U2Hp6RncPAS8iz3qnJ37kE/acae5dD1207BFqWsJ2JsBqULG8g2wB+hUQzPeYg== +"@mapbox/flow-remove-types@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@mapbox/flow-remove-types/-/flow-remove-types-2.0.0.tgz#3b1edf359faa51db137e2cdea6d9fcfc97285ad6" + integrity sha512-FZIrEhfDJ4YUsedDrRJUptVg5gs1PJECdv8PzFEjgqNXn/dQBg0gXIvcsqNweuptybyGM+/Dl2E1QIvarxaMSw== dependencies: - babylon "^7.0.0-beta.41" + "@babel/parser" "^7.12.15" node-modules-regexp "^1.0.0" - pirates "^3.0.2" - vlq "^0.2.1" + pirates "^4.0.1" + vlq "^1.0.1" "@mapbox/gazetteer@^4.0.4": version "4.0.4" @@ -1132,11 +1158,32 @@ call-me-maybe "^1.0.1" glob-to-regexp "^0.3.0" +"@nodelib/fs.scandir@2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz#d4b3549a5db5de2683e0c1071ab4f140904bbf69" + integrity sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA== + dependencies: + "@nodelib/fs.stat" "2.0.4" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.4", "@nodelib/fs.stat@^2.0.2": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz#a3f2dd61bab43b8db8fa108a121cfffe4c676655" + integrity sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q== + "@nodelib/fs.stat@^1.1.2": version "1.1.3" resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== +"@nodelib/fs.walk@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz#cce9396b30aa5afe9e3756608f5831adcb53d063" + integrity sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow== + dependencies: + "@nodelib/fs.scandir" "2.1.4" + fastq "^1.6.0" + "@octokit/auth-app@^2.4.7": version "2.4.7" resolved "https://registry.yarnpkg.com/@octokit/auth-app/-/auth-app-2.4.7.tgz#a036755c2f801d1414a50fad304050e8cbf2898f" @@ -1254,10 +1301,50 @@ dependencies: "@types/node" ">= 8" -"@rollup/plugin-strip@^1.3.1": - version "1.3.2" - resolved "https://registry.yarnpkg.com/@rollup/plugin-strip/-/plugin-strip-1.3.2.tgz#9f52e99add99b835a4a3c14e02385f3726514923" - integrity sha512-dByULCvYdklJRJ50XqmA/ntyvVuVnnxOrgZ6cIIMBLLzQrsm9Ui15VD+6I8a11w8Ob9R7ySwYjFck9YCMzseKA== +"@rollup/plugin-commonjs@^17.1.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-17.1.0.tgz#757ec88737dffa8aa913eb392fade2e45aef2a2d" + integrity sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew== + dependencies: + "@rollup/pluginutils" "^3.1.0" + commondir "^1.0.1" + estree-walker "^2.0.1" + glob "^7.1.6" + is-reference "^1.2.1" + magic-string "^0.25.7" + resolve "^1.17.0" + +"@rollup/plugin-json@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3" + integrity sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw== + dependencies: + "@rollup/pluginutils" "^3.0.8" + +"@rollup/plugin-node-resolve@^11.1.1": + version "11.1.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.1.1.tgz#47bc34252914794a1b06fb50371d7520a03f91f3" + integrity sha512-zlBXR4eRS+2m79TsUZWhsd0slrHUYdRx4JF+aVQm+MI0wsKdlpC2vlDVjmlGvtZY1vsefOT9w3JxvmWSBei+Lg== + dependencies: + "@rollup/pluginutils" "^3.1.0" + "@types/resolve" "1.17.1" + builtin-modules "^3.1.0" + deepmerge "^4.2.2" + is-module "^1.0.0" + resolve "^1.19.0" + +"@rollup/plugin-replace@^2.3.4": + version "2.3.4" + resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-2.3.4.tgz#7dd84c17755d62b509577f2db37eb524d7ca88ca" + integrity sha512-waBhMzyAtjCL1GwZes2jaE9MjuQ/DQF2BatH3fRivUF3z0JBFrU0U6iBNC/4WR+2rLKhaAhPWDNPYp4mI6RqdQ== + dependencies: + "@rollup/pluginutils" "^3.1.0" + magic-string "^0.25.7" + +"@rollup/plugin-strip@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-strip/-/plugin-strip-2.0.0.tgz#46014ca2bc30bfff4ac289c52d7174671418173d" + integrity sha512-1xtE2FDk7Wwr2dEPugkQp3M2FGtSVYeRQaJnHJIkHzcXpBlxT/z+jJoVUvm8LGXso+bLWgO65WrmQ6bC6e/x+A== dependencies: "@rollup/pluginutils" "^3.0.4" estree-walker "^1.0.1" @@ -1270,6 +1357,15 @@ dependencies: estree-walker "^1.0.1" +"@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.0.9", "@rollup/pluginutils@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" + integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== + dependencies: + "@types/estree" "0.0.39" + estree-walker "^1.0.1" + picomatch "^2.2.2" + "@sinonjs/commons@^1", "@sinonjs/commons@^1.3.0", "@sinonjs/commons@^1.4.0", "@sinonjs/commons@^1.7.0": version "1.7.1" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.7.1.tgz#da5fd19a5f71177a53778073978873964f49acf1" @@ -1305,9 +1401,9 @@ integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== "@types/estree@*": - version "0.0.44" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.44.tgz#980cc5a29a3ef3bea6ff1f7d021047d7ea575e21" - integrity sha512-iaIVzr+w2ZJ5HkidlZ3EJM8VTZb2MJLCjw3V+505yVts0gRC4UMvjw0d1HPtGqI/HQC/KdsYtayfzl+AXY2R8g== + version "0.0.46" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.46.tgz#0fb6bfbbeabd7a30880504993369c4bf1deab1fe" + integrity sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg== "@types/estree@0.0.39": version "0.0.39" @@ -1355,15 +1451,20 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.13.tgz#ee1128e881b874c371374c1f72201893616417c9" integrity sha512-rouEWBImiRaSJsVA+ITTFM6ZxibuAlTuNOCyxVbwreu6k6+ujs7DfnU9o+PShFhET78pMBl3eH+AGSI5eOTkPA== +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + "@types/q@^1.5.1": version "1.5.2" resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== -"@types/resolve@0.0.8": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194" - integrity sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ== +"@types/resolve@1.17.1": + version "1.17.1" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" + integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== dependencies: "@types/node" "*" @@ -1461,7 +1562,7 @@ acorn@^6.0.1, acorn@^6.0.4, acorn@^6.0.7, acorn@^6.1.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== -acorn@^7.0.0, acorn@^7.1.0: +acorn@^7.0.0: version "7.1.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf" integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg== @@ -1540,6 +1641,13 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" +ansi-styles@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + ansi-styles@^4.1.0: version "4.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" @@ -1664,6 +1772,11 @@ array-union@^1.0.2: dependencies: array-uniq "^1.0.1" +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + array-uniq@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" @@ -1758,6 +1871,11 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + atob@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" @@ -1810,11 +1928,6 @@ babelify@^10.0.0: resolved "https://registry.yarnpkg.com/babelify/-/babelify-10.0.0.tgz#fe73b1a22583f06680d8d072e25a1e0d1d1d7fb5" integrity sha512-X40FaxyH7t3X+JFAKvb1H9wooWKLRCi8pg3m8poqtdZaIng+bjzp9RvKQCvRjF9isHiPkXspbbXT/zwXLtwgwg== -babylon@^7.0.0-beta.41: - version "7.0.0-beta.47" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-7.0.0-beta.47.tgz#6d1fa44f0abec41ab7c780481e62fd9aafbdea80" - integrity sha512-+rq2cr4GDhtToEzKFD6KZZMDBXhjFAr9JjPw9pAppZACeEWqNM294j+NdBzkSHYXwzzBmVjZ3nEVJlOhbR2gOQ== - backbone@^1.1.2: version "1.4.0" resolved "https://registry.yarnpkg.com/backbone/-/backbone-1.4.0.tgz#54db4de9df7c3811c3f032f34749a4cd27f3bd12" @@ -2013,7 +2126,7 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@~3.0.2: +braces@^3.0.1, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== @@ -2396,6 +2509,14 @@ chalk@^3.0.0: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" + integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chalk@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f" @@ -2437,7 +2558,7 @@ charm@^1.0.0: dependencies: inherits "^2.0.1" -chokidar@^2.0.0, chokidar@^2.0.4: +chokidar@^2.0.4: version "2.1.8" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== @@ -2471,6 +2592,21 @@ chokidar@^3.0.2: optionalDependencies: fsevents "~2.1.2" +chokidar@^3.3.0: + 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== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.5.0" + optionalDependencies: + fsevents "~2.3.1" + chownr@^1.1.1: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" @@ -2520,6 +2656,15 @@ cliui@^4.0.0: strip-ansi "^4.0.0" wrap-ansi "^2.0.0" +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + clone-buffer@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" @@ -2624,6 +2769,11 @@ color@^3.0.0: color-convert "^1.9.1" color-string "^1.5.2" +colorette@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" + integrity sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw== + colors@~0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/colors/-/colors-0.6.2.tgz#2423fe6678ac0c5dae8852e5d0e5be08c997abcc" @@ -2844,6 +2994,17 @@ cosmiconfig@^5.0.0: js-yaml "^3.13.1" parse-json "^4.0.0" +cosmiconfig@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" + integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.2.1" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.10.0" + coveralls@^3.0.2: version "3.0.11" resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-3.0.11.tgz#e141da0922b632fcc66620f334460c3f0026a4ce" @@ -2947,16 +3108,6 @@ css-select-base-adapter@^0.1.1: resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== -css-select@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" - integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= - dependencies: - boolbase "~1.0.0" - css-what "2.1" - domutils "1.5.1" - nth-check "~1.0.1" - css-select@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" @@ -2967,6 +3118,17 @@ css-select@^2.0.0: domutils "^1.7.0" nth-check "^1.0.2" +css-select@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-3.1.2.tgz#d52cbdc6fee379fba97fb0d3925abbd18af2d9d8" + integrity sha512-qmss1EihSuBNWNNhHjxzxSfJoFBM/lERB/Q4EnsJQQC62R2evJDW481091oAdOr9uh46/0n4nrg0It5cAnj1RA== + dependencies: + boolbase "^1.0.0" + css-what "^4.0.0" + domhandler "^4.0.0" + domutils "^2.4.3" + nth-check "^2.0.0" + css-tree@1.0.0-alpha.37: version "1.0.0-alpha.37" resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" @@ -2983,16 +3145,16 @@ css-tree@1.0.0-alpha.39: mdn-data "2.0.6" source-map "^0.6.1" -css-what@2.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" - integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== - css-what@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.2.1.tgz#f4a8f12421064621b456755e34a03a2c22df5da1" integrity sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw== +css-what@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-4.0.0.tgz#35e73761cab2eeb3d3661126b23d7aa0e8432233" + integrity sha512-teijzG7kwYfNVsUh2H/YN62xW3KK9YhXEgSlbxMlcyjPNvdKJqFx5lrwlJgoFP1ZHlB89iGDlo/JyshKeRhv5A== + csscolorparser@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/csscolorparser/-/csscolorparser-1.0.3.tgz#b34f391eea4da8f3e98231e2ccd8df9c041f171b" @@ -3537,6 +3699,11 @@ deep-is@~0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + default-require-extensions@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-2.0.0.tgz#f5f8fbb18a7d6d50b21f641f649ebb522cfe24f7" @@ -3593,10 +3760,10 @@ depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= -dependency-graph@^0.8.0: - version "0.8.1" - resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.8.1.tgz#9b8cae3aa2c7bd95ccb3347a09a2d1047a6c3c5a" - integrity sha512-g213uqF8fyk40W8SBjm079n3CZB4qSpCrA2ye1fLGzH/4HEgB6tzuW2CbLE7leb4t45/6h44Ud59Su1/ROTfqw== +dependency-graph@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.9.0.tgz#11aed7e203bc8b00f48356d92db27b265c445318" + integrity sha512-9YLIBURXj4DJMFALxXw9K3Y3rwb5Fk0X5/8ipCzaN84+gKxoHK43tVKRNakCQbiEx07E8Uwhuq21BpUagFhZ8w== deprecation@^2.0.0, deprecation@^2.3.1: version "2.3.1" @@ -3686,6 +3853,13 @@ dir-glob@^2.2.2: dependencies: path-type "^3.0.0" +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + doctrine-temporary-fork@2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine-temporary-fork/-/doctrine-temporary-fork-2.1.0.tgz#36f2154f556ee4f1e60311d391cd23de5187ed57" @@ -3794,20 +3968,21 @@ dom-serializer@0: domelementtype "^2.0.1" entities "^2.0.0" -dom-serializer@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.1.tgz#1ec4059e284babed36eec2941d4a970a189ce7c0" - integrity sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA== +dom-serializer@^1.0.1, dom-serializer@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.2.0.tgz#3433d9136aeb3c627981daa385fc7f32d27c48f1" + integrity sha512-n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA== dependencies: - domelementtype "^1.3.0" - entities "^1.1.1" + domelementtype "^2.0.1" + domhandler "^4.0.0" + entities "^2.0.0" domain-browser@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== -domelementtype@1, domelementtype@^1.3.0, domelementtype@^1.3.1: +domelementtype@1, domelementtype@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== @@ -3817,6 +3992,11 @@ domelementtype@^2.0.1: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== +domelementtype@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e" + integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== + domexception@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" @@ -3831,13 +4011,19 @@ domhandler@^2.3.0: dependencies: domelementtype "1" -domutils@1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" - integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= +domhandler@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-3.3.0.tgz#6db7ea46e4617eb15cf875df68b2b8524ce0037a" + integrity sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA== dependencies: - dom-serializer "0" - domelementtype "1" + domelementtype "^2.0.1" + +domhandler@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.0.0.tgz#01ea7821de996d85f69029e81fa873c21833098e" + integrity sha512-KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA== + dependencies: + domelementtype "^2.1.0" domutils@^1.5.1, domutils@^1.7.0: version "1.7.0" @@ -3847,6 +4033,15 @@ domutils@^1.5.1, domutils@^1.7.0: dom-serializer "0" domelementtype "1" +domutils@^2.4.2, domutils@^2.4.3: + version "2.4.4" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.4.4.tgz#282739c4b150d022d34699797369aad8d19bbbd3" + integrity sha512-jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.0.1" + domhandler "^4.0.0" + dot-prop@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" @@ -4070,6 +4265,11 @@ es6-promisify@^5.0.0: dependencies: es6-promise "^4.0.3" +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -4237,11 +4437,6 @@ eslint@^5.15.3: table "^5.2.3" text-table "^0.2.0" -esm@~3.0.84: - version "3.0.84" - resolved "https://registry.yarnpkg.com/esm/-/esm-3.0.84.tgz#bb108989f4673b32d4f62406869c28eed3815a63" - integrity sha512-SzSGoZc17S7P+12R9cg21Bdb7eybX25RnIeRZ80xZs+VZ3kdQKzqTp2k4hZJjR7p9l0186TTXSgrxzlMDBktlw== - espree@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" @@ -4295,6 +4490,11 @@ estree-walker@^1.0.1: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== +estree-walker@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -4482,6 +4682,18 @@ fast-glob@^2.2.6: merge2 "^1.2.3" micromatch "^3.1.10" +fast-glob@^3.1.1: + version "3.2.5" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.5.tgz#7939af2a656de79a4f1901903ee8adcaa7cb9661" + integrity sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.0" + merge2 "^1.3.0" + micromatch "^4.0.2" + picomatch "^2.2.1" + fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" @@ -4497,6 +4709,13 @@ fast-safe-stringify@^2.0.7: resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743" integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA== +fastq@^1.6.0: + version "1.10.1" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.10.1.tgz#8b8f2ac8bf3632d67afcd65dac248d5fdc45385e" + integrity sha512-AWuv6Ery3pM+dY7LYS8YIaCiQvUaos9OB1RyNgaOWnaX+Tik7Onvcsf8x8c+YtDeT0maYLniBip2hox5KtEXXA== + dependencies: + reusify "^1.0.4" + faye-websocket@~0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" @@ -4709,14 +4928,15 @@ fs-exists-cached@^1.0.0: resolved "https://registry.yarnpkg.com/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz#cf25554ca050dc49ae6656b41de42258989dcbce" integrity sha1-zyVVTKBQ3EmuZla0HeQiWJidy84= -fs-extra@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" - integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== +fs-extra@^9.0.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" fs-minipass@^1.2.5: version "1.2.7" @@ -4751,6 +4971,11 @@ fsevents@~2.1.2: resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805" integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA== +fsevents@~2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.1.tgz#b209ab14c61012636c8863507edf7fb68cc54e9f" + integrity sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw== + fstream@^1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" @@ -4810,6 +5035,11 @@ get-caller-file@^1.0.1: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + get-npm-tarball-url@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/get-npm-tarball-url/-/get-npm-tarball-url-2.0.1.tgz#43c15223c35096e3e4068d8a6c6747bbdfc23462" @@ -4832,6 +5062,11 @@ get-stdin@^6.0.0: resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b" integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g== +get-stdin@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" + integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg== + get-stream@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" @@ -4916,7 +5151,7 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@~5.1.0: +glob-parent@^5.1.0, glob-parent@~5.1.0: version "5.1.1" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== @@ -4993,6 +5228,18 @@ globals@^11.1.0, globals@^11.7.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== +globby@^11.0.0: + version "11.0.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.2.tgz#1af538b766a3b540ebfb58a32b2e2d5897321d83" + integrity sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + globby@^9.0.0: version "9.2.0" resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" @@ -5048,7 +5295,7 @@ graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2 resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== -graceful-fs@^4.2.2: +graceful-fs@^4.2.0, graceful-fs@^4.2.2: version "4.2.4" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== @@ -5288,7 +5535,7 @@ htmlescape@^1.1.0: resolved "https://registry.yarnpkg.com/htmlescape/-/htmlescape-1.1.1.tgz#3a03edc2214bca3b66424a3e7959349509cb0351" integrity sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E= -htmlparser2@^3.10.0, htmlparser2@^3.9.0: +htmlparser2@^3.10.0: version "3.10.1" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== @@ -5300,6 +5547,16 @@ htmlparser2@^3.10.0, htmlparser2@^3.9.0: inherits "^2.0.1" readable-stream "^3.1.1" +htmlparser2@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-5.0.1.tgz#7daa6fc3e35d6107ac95a4fc08781f091664f6e7" + integrity sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ== + dependencies: + domelementtype "^2.0.1" + domhandler "^3.3.0" + domutils "^2.4.2" + entities "^2.0.0" + http-errors@1.7.2: version "1.7.2" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" @@ -5387,17 +5644,22 @@ ignore@^5.0.4: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A== +ignore@^5.1.4: + version "5.1.8" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" + integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== + immediate@~3.0.5: version "3.0.6" resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= -import-cwd@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" - integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= +import-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-3.0.0.tgz#20845547718015126ea9b3676b7592fb8bd4cf92" + integrity sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg== dependencies: - import-from "^2.1.0" + import-from "^3.0.0" import-fresh@^2.0.0: version "2.0.0" @@ -5415,12 +5677,20 @@ import-fresh@^3.0.0: parent-module "^1.0.0" resolve-from "^4.0.0" -import-from@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" - integrity sha1-M1238qev/VOqpHHUuAId7ja387E= +import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: - resolve-from "^3.0.0" + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-3.0.0.tgz#055cfec38cd5a27d8057ca51376d7d3bf0891966" + integrity sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ== + dependencies: + resolve-from "^5.0.0" import-lazy@^3.1.0: version "3.1.0" @@ -5658,6 +5928,13 @@ is-color-stop@^1.0.0: rgb-regex "^1.0.1" rgba-regex "^1.0.0" +is-core-module@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" + integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -5819,12 +6096,12 @@ is-redirect@^1.0.0: resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= -is-reference@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.1.4.tgz#3f95849886ddb70256a3e6d062b1a68c13c51427" - integrity sha512-uJA/CDPO3Tao3GTrxYn6AwkM4nUPJiGGYu5+cB8qbC7WGFlrKZbiRo7SFKxUAEpFUfiHofWCXBUNhvYJMh+6zw== +is-reference@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" + integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== dependencies: - "@types/estree" "0.0.39" + "@types/estree" "*" is-regex@^1.0.4, is-regex@^1.0.5, is-regex@~1.0.5: version "1.0.5" @@ -6039,13 +6316,14 @@ istanbul-reports@^2.1.1: dependencies: html-escaper "^2.0.0" -jest-worker@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" - integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== +jest-worker@^26.2.1: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== dependencies: + "@types/node" "*" merge-stream "^2.0.0" - supports-color "^6.1.0" + supports-color "^7.0.0" "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" @@ -6117,6 +6395,11 @@ json-parse-better-errors@^1.0.1: resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -6156,10 +6439,12 @@ json5@^2.1.2: dependencies: minimist "^1.2.5" -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" optionalDependencies: graceful-fs "^4.1.6" @@ -6347,6 +6632,11 @@ lie@~3.3.0: dependencies: immediate "~3.0.5" +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + list-npm-contents@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/list-npm-contents/-/list-npm-contents-1.0.2.tgz#4fadf7a0e2c894fad92fcfc0092b0cec69444683" @@ -6458,6 +6748,11 @@ lodash.debounce@^3.1.1: dependencies: lodash._getnative "^3.0.0" +lodash.difference@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c" + integrity sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw= + lodash.find@^4.5.1: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-4.6.0.tgz#cb0704d47ab71789ffa0de8b97dd926fb88b13b1" @@ -6476,6 +6771,21 @@ lodash.flattendeep@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" integrity sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI= +lodash.forown@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.forown/-/lodash.forown-4.4.0.tgz#85115cf04f73ef966eced52511d3893cc46683af" + integrity sha1-hRFc8E9z75ZuztUlEdOJPMRmg68= + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= + +lodash.groupby@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.groupby/-/lodash.groupby-4.6.0.tgz#0b08a1dcf68397c397855c3239783832df7403d1" + integrity sha1-Cwih3PaDl8OXhVwyOXg4Mt90A9E= + lodash.includes@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" @@ -6647,7 +6957,7 @@ macos-release@^2.2.0: resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.3.0.tgz#eb1930b036c0800adebccd5f17bc4c12de8bb71f" integrity sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA== -magic-string@^0.25.2, magic-string@^0.25.5: +magic-string@^0.25.5, magic-string@^0.25.7: version "0.25.7" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== @@ -6874,6 +7184,11 @@ merge2@^1.2.3: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== +merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" @@ -6898,6 +7213,14 @@ micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.5: snapdragon "^0.8.1" to-regex "^3.0.2" +micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + miller-rabin@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" @@ -7123,6 +7446,11 @@ nan@^2.14.1: resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== +nanoid@^3.1.20: + version "3.1.20" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" + integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== + nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" @@ -7393,13 +7721,20 @@ npmlog@^4.0.0, npmlog@^4.0.1, npmlog@^4.0.2, npmlog@^4.1.2: gauge "~2.7.3" set-blocking "~2.0.0" -nth-check@^1.0.2, nth-check@~1.0.1: +nth-check@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== dependencies: boolbase "~1.0.0" +nth-check@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.0.tgz#1bb4f6dac70072fc313e8c9cd1417b5074c0a125" + integrity sha512-i4sc/Kj8htBrAiH1viZ0TgU8Y5XqCaV/FziYK6TBczxmeKm3AEFWqqF3195yKudrarqy7Zu80Ra5dobFjn9X/Q== + dependencies: + boolbase "^1.0.0" + num2fraction@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" @@ -7790,6 +8125,16 @@ parse-json@^4.0.0: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + parse-path@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.1.tgz#0ec769704949778cb3b8eda5e994c32073a1adff" @@ -7931,6 +8276,11 @@ path-type@^3.0.0: dependencies: pify "^3.0.0" +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + pbf@^3.0.5, pbf@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/pbf/-/pbf-3.2.1.tgz#b4c1b9e72af966cd82c6531691115cc0409ffe2a" @@ -7960,7 +8310,7 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= -picomatch@^2.0.4, picomatch@^2.0.7: +picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.0.7, picomatch@^2.2.1, picomatch@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== @@ -7997,13 +8347,6 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= -pirates@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/pirates/-/pirates-3.0.2.tgz#7e6f85413fd9161ab4e12b539b06010d85954bb9" - integrity sha512-c5CgUJq6H2k6MJz72Ak1F5sN9n9wlSlJyEnwvpm9/y3WB4E3pHBDT2c6PEiS1vyJvq2bUxUAIu0EGf8Cx4Ic7Q== - dependencies: - node-modules-regexp "^1.0.0" - pirates@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87" @@ -8068,23 +8411,23 @@ postcss-calc@^7.0.1: postcss-selector-parser "^6.0.2" postcss-value-parser "^4.0.2" -postcss-cli@^6.1.2: - version "6.1.3" - resolved "https://registry.yarnpkg.com/postcss-cli/-/postcss-cli-6.1.3.tgz#a9eec3e9cde4aaa90170546baf706f8af6f8ecec" - integrity sha512-eieqJU+OR1OFc/lQqMsDmROTJpoMZFvoAQ+82utBQ8/8qGMTfH9bBSPsTdsagYA8uvNzxHw2I2cNSSJkLAGhvw== - dependencies: - chalk "^2.1.0" - chokidar "^2.0.0" - dependency-graph "^0.8.0" - fs-extra "^7.0.0" - get-stdin "^6.0.0" - globby "^9.0.0" - postcss "^7.0.0" - postcss-load-config "^2.0.0" - postcss-reporter "^6.0.0" +postcss-cli@^8.3.1: + version "8.3.1" + resolved "https://registry.yarnpkg.com/postcss-cli/-/postcss-cli-8.3.1.tgz#865dad08300ac59ae9cecb7066780aa81c767a77" + integrity sha512-leHXsQRq89S3JC9zw/tKyiVV2jAhnfQe0J8VI4eQQbUjwIe0XxVqLrR+7UsahF1s9wi4GlqP6SJ8ydf44cgF2Q== + dependencies: + chalk "^4.0.0" + chokidar "^3.3.0" + dependency-graph "^0.9.0" + fs-extra "^9.0.0" + get-stdin "^8.0.0" + globby "^11.0.0" + postcss-load-config "^3.0.0" + postcss-reporter "^7.0.0" pretty-hrtime "^1.0.3" read-cache "^1.0.0" - yargs "^12.0.1" + slash "^3.0.0" + yargs "^16.0.0" postcss-colormin@^4.0.3: version "4.0.3" @@ -8140,16 +8483,15 @@ postcss-html@^0.36.0: dependencies: htmlparser2 "^3.10.0" -postcss-inline-svg@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/postcss-inline-svg/-/postcss-inline-svg-3.1.1.tgz#b4215f4b2bee605889d2ae9e6007d5c70cdec34a" - integrity sha512-G2BkarW6gGpGFGAiKzW7aiulUS0/6QuCgq1riZEiX4oMaUTpU1pdW7BU6UFRDrdKkwS0r4icK2pU0bg6sCSOjw== +postcss-inline-svg@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-inline-svg/-/postcss-inline-svg-5.0.0.tgz#ab8d1cd14defcbf5655fd618f7789993c70f5297" + integrity sha512-Agqkrn91Qgi+KAO+cTvUS1IAZbHPD4sryPoG0q5U0ThokL4UGoMcmwvNV6tDoRp69B5tgD1VNkn9P09E+xpQAg== dependencies: - css-select "^1.2.0" - dom-serializer "^0.1.0" - htmlparser2 "^3.9.0" - postcss "^6.0.1" - postcss-value-parser "^3.2.3" + css-select "^3.1.0" + dom-serializer "^1.1.0" + htmlparser2 "^5.0.1" + postcss-value-parser "^4.0.0" postcss-jsx@^0.36.0: version "0.36.4" @@ -8165,13 +8507,13 @@ postcss-less@^3.1.0: dependencies: postcss "^7.0.14" -postcss-load-config@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003" - integrity sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q== +postcss-load-config@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.0.0.tgz#850bb066edd65b734329eacf83af0c0764226c87" + integrity sha512-lErrN8imuEF1cSiHBV8MiR7HeuzlDpCGNtaMyYHlOBuJHHOGw6S4xOMZp8BbXPr7AGQp14L6PZDlIOpfFJ6f7w== dependencies: - cosmiconfig "^5.0.0" - import-cwd "^2.0.0" + cosmiconfig "^7.0.0" + import-cwd "^3.0.0" postcss-markdown@^0.36.0: version "0.36.0" @@ -8368,6 +8710,18 @@ postcss-reporter@^6.0.0: log-symbols "^2.2.0" postcss "^7.0.7" +postcss-reporter@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-7.0.2.tgz#03e9e7381c1afe40646f9c22e7aeeb860e051065" + integrity sha512-JyQ96NTQQsso42y6L1H1RqHfWH1C3Jr0pt91mVv5IdYddZAE9DUZxuferNgk6q0o6vBVOrfVJb10X1FgDzjmDw== + dependencies: + colorette "^1.2.1" + lodash.difference "^4.5.0" + lodash.forown "^4.4.0" + lodash.get "^4.4.2" + lodash.groupby "^4.6.0" + lodash.sortby "^4.7.0" + postcss-resolve-nested-selector@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz#29ccbc7c37dedfac304e9fff0bf1596b3f6a0e4e" @@ -8437,25 +8791,21 @@ postcss-unique-selectors@^4.0.1: postcss "^7.0.0" uniqs "^2.0.0" -postcss-value-parser@^3.0.0, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: +postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.0: version "3.3.1" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== +postcss-value-parser@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" + integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== + postcss-value-parser@^4.0.2, postcss-value-parser@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz#651ff4593aa9eda8d5d0d66593a2417aeaeb325d" integrity sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg== -postcss@^6.0.1: - version "6.0.23" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" - integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== - dependencies: - chalk "^2.4.1" - source-map "^0.6.1" - supports-color "^5.4.0" - postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.13, postcss@^7.0.14, postcss@^7.0.2, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.7: version "7.0.27" resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.27.tgz#cc67cdc6b0daa375105b7c424a85567345fc54d9" @@ -8465,6 +8815,15 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.13, postcss@^7.0.14, postcss@^7.0.2 source-map "^0.6.1" supports-color "^6.1.0" +postcss@^8.2.4: + version "8.2.4" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.2.4.tgz#20a98a39cf303d15129c2865a9ec37eda0031d04" + integrity sha512-kRFftRoExRVXZlwUuay9iC824qmXPcQQVzAjbCCgjpXnkdMCJYBu2gTwAaFBzv8ewND6O8xFb3aELmEkh9zTzg== + dependencies: + colorette "^1.2.1" + nanoid "^3.1.20" + source-map "^0.6.1" + potpack@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/potpack/-/potpack-1.0.1.tgz#d1b1afd89e4c8f7762865ec30bd112ab767e2ebf" @@ -8701,7 +9060,7 @@ quickselect@^2.0.0: resolved "https://registry.yarnpkg.com/quickselect/-/quickselect-2.0.0.tgz#f19680a486a5eefb581303e023e98faaf25dd018" integrity sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw== -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: +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" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== @@ -8919,6 +9278,13 @@ readdirp@~3.3.0: dependencies: picomatch "^2.0.7" +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== + dependencies: + picomatch "^2.2.1" + redent@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" @@ -9274,6 +9640,11 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + resolve-options@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/resolve-options/-/resolve-options-1.1.0.tgz#32bb9e39c06d67338dc9378c0d6d6074566ad131" @@ -9298,13 +9669,21 @@ resolve@1.1.7: resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= -resolve@^1.1.3, resolve@^1.1.4, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.15.1, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.8.1, resolve@~1.15.1: +resolve@^1.1.3, resolve@^1.1.4, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.15.1, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.8.1, resolve@~1.15.1: version "1.15.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8" integrity sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w== dependencies: path-parse "^1.0.6" +resolve@^1.17.0, resolve@^1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" + integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== + dependencies: + is-core-module "^2.1.0" + path-parse "^1.0.6" + restore-cursor@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" @@ -9325,6 +9704,11 @@ ret@~0.1.10: resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + rgb-regex@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" @@ -9362,61 +9746,23 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" -rollup-plugin-commonjs@^10.1.0: - version "10.1.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-commonjs/-/rollup-plugin-commonjs-10.1.0.tgz#417af3b54503878e084d127adf4d1caf8beb86fb" - integrity sha512-jlXbjZSQg8EIeAAvepNwhJj++qJWNJw1Cl0YnOqKtP5Djx+fFGkp3WRh+W0ASCaFG5w1jhmzDxgu3SJuVxPF4Q== +rollup-plugin-sourcemaps@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.6.3.tgz#bf93913ffe056e414419607f1d02780d7ece84ed" + integrity sha512-paFu+nT1xvuO1tPFYXGe+XnQvg4Hjqv/eIhG8i5EspfYYPBKL57X7iVbfv55aNVASg3dzWvES9dmWsL2KhfByw== dependencies: - estree-walker "^0.6.1" - is-reference "^1.1.2" - magic-string "^0.25.2" - resolve "^1.11.0" - rollup-pluginutils "^2.8.1" + "@rollup/pluginutils" "^3.0.9" + source-map-resolve "^0.6.0" -rollup-plugin-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-json/-/rollup-plugin-json-4.0.0.tgz#a18da0a4b30bf5ca1ee76ddb1422afbb84ae2b9e" - integrity sha512-hgb8N7Cgfw5SZAkb3jf0QXii6QX/FOkiIq2M7BAQIEydjHvTyxXHQiIzZaTFgx1GK0cRCHOCBHIyEkkLdWKxow== - dependencies: - rollup-pluginutils "^2.5.0" - -rollup-plugin-node-resolve@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-5.2.0.tgz#730f93d10ed202473b1fb54a5997a7db8c6d8523" - integrity sha512-jUlyaDXts7TW2CqQ4GaO5VJ4PwwaV8VUGA7+km3n6k6xtOEacf61u0VXwN80phY/evMcaS+9eIeJ9MOyDxt5Zw== - dependencies: - "@types/resolve" "0.0.8" - builtin-modules "^3.1.0" - is-module "^1.0.0" - resolve "^1.11.1" - rollup-pluginutils "^2.8.1" - -rollup-plugin-replace@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-replace/-/rollup-plugin-replace-2.2.0.tgz#f41ae5372e11e7a217cde349c8b5d5fd115e70e3" - integrity sha512-/5bxtUPkDHyBJAKketb4NfaeZjL5yLZdeUihSfbF2PQMz+rSTEb8ARKoOl3UBT4m7/X+QOXJo3sLTcq+yMMYTA== - dependencies: - magic-string "^0.25.2" - rollup-pluginutils "^2.6.0" - -rollup-plugin-sourcemaps@^0.4.2: - version "0.4.2" - resolved "https://registry.yarnpkg.com/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.4.2.tgz#62125aa94087aadf7b83ef4dfaf629b473135e87" - integrity sha1-YhJaqUCHqt97g+9N+vYptHMTXoc= - dependencies: - rollup-pluginutils "^2.0.1" - source-map-resolve "^0.5.0" - -rollup-plugin-terser@^5.1.2: - version "5.3.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-5.3.0.tgz#9c0dd33d5771df9630cd027d6a2559187f65885e" - integrity sha512-XGMJihTIO3eIBsVGq7jiNYOdDMb3pVxuzY0uhOE/FM4x/u9nQgr3+McsjzqBn3QfHIpNSZmFnpoKAwHBEcsT7g== +rollup-plugin-terser@^7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" + integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ== dependencies: - "@babel/code-frame" "^7.5.5" - jest-worker "^24.9.0" - rollup-pluginutils "^2.8.2" - serialize-javascript "^2.1.2" - terser "^4.6.2" + "@babel/code-frame" "^7.10.4" + jest-worker "^26.2.1" + serialize-javascript "^4.0.0" + terser "^5.0.0" rollup-plugin-unassert@^0.3.0: version "0.3.0" @@ -9430,21 +9776,19 @@ rollup-plugin-unassert@^0.3.0: rollup-pluginutils "^2.5.0" unassert "^1.5.1" -rollup-pluginutils@^2.0.1, rollup-pluginutils@^2.5.0, rollup-pluginutils@^2.6.0, rollup-pluginutils@^2.8.1, rollup-pluginutils@^2.8.2: +rollup-pluginutils@^2.5.0: version "2.8.2" resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== dependencies: estree-walker "^0.6.1" -rollup@^1.23.1: - version "1.32.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.32.1.tgz#4480e52d9d9e2ae4b46ba0d9ddeaf3163940f9c4" - integrity sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A== - dependencies: - "@types/estree" "*" - "@types/node" "*" - acorn "^7.1.0" +rollup@^2.38.4: + version "2.38.4" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.38.4.tgz#1b84ea8728c73b1a00a6a6e9c630ec8c3fe48cea" + integrity sha512-B0LcJhjiwKkTl79aGVF/u5KdzsH8IylVfV56Ut6c9ouWLJcUK17T83aZBetNYSnZtXf2OHD4+2PbmRW+Fp5ulg== + optionalDependencies: + fsevents "~2.3.1" run-async@^2.2.0: version "2.4.0" @@ -9453,6 +9797,11 @@ run-async@^2.2.0: dependencies: is-promise "^2.1.0" +run-parallel@^1.1.9: + version "1.1.10" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.10.tgz#60a51b2ae836636c81377df16cb107351bcd13ef" + integrity sha512-zb/1OuZ6flOlH6tQyMPUrE3x3Ulxjlo9WIVXR4yVYi4H9UXQaeIsPbLn2R3O3vQCnDKkAl2qHiuocKKX4Tz/Sw== + rw@1, rw@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" @@ -9560,10 +9909,12 @@ send@0.17.1: range-parser "~1.2.1" statuses "~1.5.0" -serialize-javascript@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" - integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" serve-static@1.14.1: version "1.14.1" @@ -9709,6 +10060,11 @@ slash@^2.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + slice-ansi@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" @@ -9814,7 +10170,15 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.5.10, source-map-support@^0.5.6, source-map-support@~0.5.12: +source-map-resolve@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.6.0.tgz#3d9df87e236b53f16d01e58150fc7711138e5ed2" + integrity sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + +source-map-support@^0.5.10, source-map-support@^0.5.6: version "0.5.16" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== @@ -9822,6 +10186,14 @@ source-map-support@^0.5.10, source-map-support@^0.5.6, source-map-support@~0.5.1 buffer-from "^1.0.0" source-map "^0.6.0" +source-map-support@~0.5.19: + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + source-map-url@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" @@ -9844,6 +10216,11 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== +source-map@~0.7.2: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + sourcemap-codec@^1.4.4: version "1.4.8" resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" @@ -10052,7 +10429,7 @@ string-width@^3.0.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.0.0: +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== @@ -10307,7 +10684,7 @@ supercluster@^7.1.2: dependencies: kdbush "^3.0.0" -supports-color@^5.0.0, supports-color@^5.3.0, supports-color@^5.4.0, supports-color@^5.5.0: +supports-color@^5.0.0, supports-color@^5.3.0, supports-color@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== @@ -10321,6 +10698,13 @@ supports-color@^6.0.0, supports-color@^6.1.0: dependencies: has-flag "^3.0.0" +supports-color@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + supports-color@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" @@ -10519,14 +10903,14 @@ tar@^4, tar@^4.4.12: safe-buffer "^5.1.2" yallist "^3.0.3" -terser@^4.6.2: - version "4.6.7" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.7.tgz#478d7f9394ec1907f0e488c5f6a6a9a2bad55e72" - integrity sha512-fmr7M1f7DBly5cX2+rFDvmGBAaaZyPrHYK4mMdHEDAdNTqXSZgSOfqsfGq2HqPGT/1V0foZZuCZFx8CHKgAk3g== +terser@^5.0.0: + version "5.5.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.5.1.tgz#540caa25139d6f496fdea056e414284886fb2289" + integrity sha512-6VGWZNVP2KTUcltUQJ25TtNjx/XgdDsBDKGt8nN0MpydU36LmbPPcMBd2kmtZNNGVVDLg44k7GKeHHj+4zPIBQ== dependencies: commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" + source-map "~0.7.2" + source-map-support "~0.5.19" test-exclude@^5.1.0: version "5.2.3" @@ -11066,10 +11450,10 @@ universal-user-agent@^5.0.0: dependencies: os-name "^3.1.0" -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" @@ -11335,10 +11719,10 @@ vinyl@^2.0.0, vinyl@^2.1.0: remove-trailing-separator "^1.0.1" replace-ext "^1.0.0" -vlq@^0.2.1: - version "0.2.3" - resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26" - integrity sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow== +vlq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/vlq/-/vlq-1.0.1.tgz#c003f6e7c0b4c1edd623fd6ee50bbc0d6a1de468" + integrity sha512-gQpnTgkubC6hQgdIcRdYGDSDc+SaujOdyesZQMv6JlfQee/9Mp0Qhnys6WxDWvQnL5WZdT7o2Ul187aSt0Rq+w== vm-browserify@^1.0.0: version "1.1.2" @@ -11467,6 +11851,15 @@ wrap-ansi@^2.0.0: string-width "^1.0.1" strip-ansi "^3.0.1" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" @@ -11554,6 +11947,11 @@ xregexp@^4.3.0: resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== +y18n@^5.0.5: + version "5.0.5" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" + integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== + yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" @@ -11564,6 +11962,11 @@ yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== +yaml@^1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" + integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg== + yapool@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/yapool/-/yapool-1.0.0.tgz#f693f29a315b50d9a9da2646a7a6645c96985b6a" @@ -11584,7 +11987,12 @@ yargs-parser@^11.1.1: camelcase "^5.0.0" decamelize "^1.2.0" -yargs@^12.0.1, yargs@^12.0.2, yargs@^12.0.5: +yargs-parser@^20.2.2: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + +yargs@^12.0.2, yargs@^12.0.5: version "12.0.5" resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== @@ -11602,6 +12010,19 @@ yargs@^12.0.1, yargs@^12.0.2, yargs@^12.0.5: y18n "^3.2.1 || ^4.0.0" yargs-parser "^11.1.1" +yargs@^16.0.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + yauzl@^2.10.0, yauzl@^2.9.1: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9"