diff options
author | Evan Read <eread@gitlab.com> | 2022-07-28 02:16:20 +0300 |
---|---|---|
committer | Evan Read <eread@gitlab.com> | 2022-07-28 02:16:20 +0300 |
commit | 2e56e7d93470f97ca92cca106f767ca69d73b2e4 (patch) | |
tree | 66f55ad7877ed1132b71c1a7c3ba8652fc4774bd | |
parent | 8ec615fdc121011f7ac65c33cd70a126bbf25493 (diff) | |
parent | 713ca1d2fa44042f96ea498edadb76efd0b1a58b (diff) |
Merge branch 'versions-menu-13.12' into '13.12'13.12
Backport Versions menu to 13.12
See merge request gitlab-org/gitlab-docs!2973
-rw-r--r-- | .gitlab-ci.yml | 2 | ||||
-rw-r--r-- | commands/frontend.rb | 9 | ||||
-rw-r--r-- | content/assets/stylesheets/stylesheet.scss | 45 | ||||
-rw-r--r-- | content/frontend/default/components/versions_menu.vue | 94 | ||||
-rw-r--r-- | content/frontend/default/default.js | 17 | ||||
-rw-r--r-- | content/frontend/default/environment.js | 22 | ||||
-rw-r--r-- | content/frontend/services/fetch_versions.js | 8 | ||||
-rw-r--r-- | layouts/cta.html | 2 | ||||
-rw-r--r-- | layouts/default.html | 1 | ||||
-rw-r--r-- | layouts/header.html | 34 | ||||
-rw-r--r-- | layouts/home.html | 2 | ||||
-rw-r--r-- | package.json | 7 | ||||
-rw-r--r-- | patches/@gitlab+ui+29.38.1.patch | 19 | ||||
-rw-r--r-- | rollup.config.js | 8 | ||||
-rw-r--r-- | spec/frontend/default/components/helpers/versions_menu_helper.js | 14 | ||||
-rw-r--r-- | spec/frontend/default/components/versions_menu_spec.js | 87 | ||||
-rw-r--r-- | yarn.lock | 225 |
17 files changed, 513 insertions, 83 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6e36ddb1..5cfd38ce 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,6 @@ include: - project: gitlab-org/frontend/untamper-my-lockfile - file: .gitlab-ci-template.yml + file: templates/merge_request_pipelines.yml default: image: registry.gitlab.com/gitlab-org/gitlab-docs:base diff --git a/commands/frontend.rb b/commands/frontend.rb index ed4a5346..532fe54c 100644 --- a/commands/frontend.rb +++ b/commands/frontend.rb @@ -26,13 +26,4 @@ run do |opts, args, cmd| ERROR end - puts 'Create icons.svg ...' - root = File.expand_path('../', __dir__) - path = 'node_modules/@gitlab/svgs/dist/icons.svg' - - if File.write('public/assets/images/icons.svg', File.read("#{root}/#{path}")) - puts 'Done!' - else - puts 'Failed to create icons.svg!' - end end diff --git a/content/assets/stylesheets/stylesheet.scss b/content/assets/stylesheets/stylesheet.scss index 0dd5e910..0c5ad447 100644 --- a/content/assets/stylesheets/stylesheet.scss +++ b/content/assets/stylesheets/stylesheet.scss @@ -243,11 +243,6 @@ h1 { } } - .btn { - line-height: 1rem; - font-size: 0.875rem; - } - .navbar-nav { margin-top: 0; @@ -295,8 +290,44 @@ h1 { } } - .dropdown-toggle { + .btn, + .gl-dropdown-toggle.gl-button.btn-default, + .gl-dropdown-toggle.gl-button.btn-default:hover, + .gl-dropdown-toggle.gl-button.btn-default:focus { background-color: $help-indigo-500; + font-size: 0.875rem; + line-height: 1; + color: $gds-white; + box-shadow: none; + svg { + fill: $gds-white; + } + } + .dropdown-menu:focus-visible, + .gl-new-dropdown-inner:focus-visible, + .gl-new-dropdown-contents:focus-visible { + outline: none; + } + .gl-new-dropdown ul { + margin: 0.125rem 0 0 !important; + padding-left: 0; + } + hr.dropdown-divider { + margin: 0.5rem 0; + } + li.gl-new-dropdown-item { + margin-bottom: 0; + } + a.dropdown-item, + a.dropdown-item:hover { + border-bottom: 0; + color: $gds-gray-900; + } + p.gl-new-dropdown-item-text-primary { + margin: 0; + } + .dropdown-toggle::after { + display: none; } @media all and (max-width: $bp-md) { @@ -451,7 +482,7 @@ h1 { } .btn-cta { - background-color: $header-free-trial-button-color; + background-color: $header-free-trial-button-color !important; } h2[id]::before, diff --git a/content/frontend/default/components/versions_menu.vue b/content/frontend/default/components/versions_menu.vue new file mode 100644 index 00000000..f29e7af5 --- /dev/null +++ b/content/frontend/default/components/versions_menu.vue @@ -0,0 +1,94 @@ +<script> +import { GlDropdown, GlDropdownItem, GlDropdownDivider } from '@gitlab/ui'; +import { getVersions } from '../../services/fetch_versions'; +import { isGitLabHosted } from '../environment'; + +export default { + components: { + GlDropdown, + GlDropdownItem, + GlDropdownDivider, + }, + data() { + return { + versions: {}, + activeVersion: '', + }; + }, + async created() { + // Only build this menu if this is a GitLab-hosted copy of the site. + // Self-hosted Docs will only contain a single version. + if (isGitLabHosted()) { + try { + this.versions = await getVersions(); + this.activeVersion = this.getActiveVersion(this.versions); + } catch (err) { + console.error(`Failed to fetch versions.json: ${err}`); // eslint-disable-line no-console + } + } + }, + methods: { + getVersionPath(versionNumber) { + let path = window.location.pathname; + + // If we're viewing an older version, drop its version prefix when creating links. + if (this.activeVersion !== this.versions.next) { + const pathArr = window.location.pathname.split('/').filter((n) => n); + pathArr.shift(); + path = `/${pathArr.join('/')}`; + } + + if (versionNumber) { + path = `/${versionNumber}${path}`; + } + return path; + }, + getActiveVersion(versions) { + let activeVersion = versions.next; + + // Check if the first item in the URL path is a valid version. + // If so, that should be the active menu item. + const versionPath = window.location.pathname.split('/')[1]; + + Object.keys(versions).forEach((key) => { + if ( + versions[key] === versionPath || + (versions[key].constructor === Array && versions[key].includes(versionPath)) + ) { + activeVersion = versionPath; + } + }); + return activeVersion; + }, + }, +}; +</script> + +<template> + <gl-dropdown + v-if="versions.next" + :text="activeVersion" + class="mb-2 mb-md-0 mr-md-3 ml-md-3 d-flex" + data-testid="versions-menu" + > + <gl-dropdown-item :href="getVersionPath()"> + <span data-testid="next-version">{{ versions.next }}</span> (not yet released) + </gl-dropdown-item> + <gl-dropdown-divider /> + + <gl-dropdown-item :href="getVersionPath(versions.current)"> + {{ versions.current }} (recently released) + </gl-dropdown-item> + <gl-dropdown-item v-for="v in versions.last_minor" :key="v" :href="getVersionPath(v)"> + {{ v }} + </gl-dropdown-item> + <gl-dropdown-divider /> + + <gl-dropdown-item v-for="v in versions.last_major" :key="v" :href="getVersionPath(v)"> + {{ v }} + </gl-dropdown-item> + <gl-dropdown-divider /> + + <gl-dropdown-item href="/archives">Archives</gl-dropdown-item> + </gl-dropdown> +</template> diff --git a/content/frontend/default/default.js b/content/frontend/default/default.js index fa6933be..3935d9e2 100644 --- a/content/frontend/default/default.js +++ b/content/frontend/default/default.js @@ -1,10 +1,15 @@ import Vue from 'vue'; import NavigationToggle from './components/navigation_toggle.vue'; import VersionBanner from './components/version_banner.vue'; +import VersionsMenu from './components/versions_menu.vue'; import { setupTableOfContents } from './setup_table_of_contents'; document.addEventListener('DOMContentLoaded', () => { const versionBanner = document.querySelector('#js-version-banner'); + if (!versionBanner) { + return; + } + const isOutdated = versionBanner.hasAttribute('data-is-outdated'); const { latestVersionUrl, archivesUrl } = versionBanner.dataset; @@ -44,3 +49,15 @@ document.addEventListener('DOMContentLoaded', () => { setupTableOfContents(); }); + +document.addEventListener('DOMContentLoaded', () => { + return new Vue({ + el: '.js-versions-menu', + components: { + VersionsMenu, + }, + render(createElement) { + return createElement(VersionsMenu); + }, + }); +}); diff --git a/content/frontend/default/environment.js b/content/frontend/default/environment.js new file mode 100644 index 00000000..05e8ced5 --- /dev/null +++ b/content/frontend/default/environment.js @@ -0,0 +1,22 @@ +/** + * Utilities for determining site environment. + */ + +export const GlHosts = [ + { + environment: 'production', + host: 'docs.gitlab.com', + }, + { + environment: 'review', + host: '35.193.151.162.nip.io', + }, + { + environment: 'local', + host: 'localhost', + }, +]; + +export function isGitLabHosted() { + return GlHosts.some((e) => window.location.host.includes(e.host)); +} diff --git a/content/frontend/services/fetch_versions.js b/content/frontend/services/fetch_versions.js new file mode 100644 index 00000000..e65f396c --- /dev/null +++ b/content/frontend/services/fetch_versions.js @@ -0,0 +1,8 @@ +export function getVersions() { + return fetch('https://docs.gitlab.com/versions.json') + .then((response) => response.json()) + .then((data) => { + return data[0]; + }) + .catch((error) => console.error(error)); // eslint-disable-line no-console +} diff --git a/layouts/cta.html b/layouts/cta.html index 03e12984..bdfb35dd 100644 --- a/layouts/cta.html +++ b/layouts/cta.html @@ -1,3 +1,3 @@ -<a class="btn btn-danger btn-cta text-white" href="https://about.gitlab.com/free-trial/" target="_blank" rel="noopener noreferrer" role="button"> +<a class="gl-button btn btn-cta text-white gl-shadow-none! pr-md-3" href="https://about.gitlab.com/free-trial/?glm_source=docs.gitlab.com&glm_content=navigation-cta-docs" target="_blank" rel="noopener noreferrer" role="button"> Get free trial </a> diff --git a/layouts/default.html b/layouts/default.html index 939a6583..c15eb766 100644 --- a/layouts/default.html +++ b/layouts/default.html @@ -95,6 +95,7 @@ </div> </div> </section> + <script src="https://unpkg.com/regenerator-runtime@0.13.1/runtime.js"></script> <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous"></script> <script src="<%= @items['/assets/javascripts/toggle_popover.*'].path %>"></script> diff --git a/layouts/header.html b/layouts/header.html index 343ad61f..3b14398b 100644 --- a/layouts/header.html +++ b/layouts/header.html @@ -21,35 +21,13 @@ </li> </ul> <ul class="navbar-nav mb-0"> - <li class="nav-item p-2 dropdown"> - <button class="btn dropdown-toggle text-white" type="button" id="navbarDropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> - <%= version_dropdown_title %> - </button> - <div class="dropdown-menu" aria-labelledby="navbarDropdown"> - <a class="dropdown-item" <%= active_dropdown(ENV['CI_DEFAULT_BRANCH']) %> href='<%= @item.identifier.without_ext + '.html' %>' class="versions-tooltip"><%= dotcom %> - <i class="fa fa-question-circle-o" aria-hidden="true" data-toggle="tooltip" data-placement="bottom" title="Latest pre-release version of GitLab, with features available or about to become available on GitLab.com. For self-managed GitLab installations, select your version number as listed at your GitLab instance's /help URL."></i> - </a> - <% if display_previous_versions? %> - <!-- Start of online versions --> - <div class="dropdown-divider"></div> - <% data_versions[:online].each do |version| %> - <%= render '/partials/versions_list.*', version: version %> - <% end %> - <!-- End of online versions --> - - <!-- Start of last major versions --> - <div class="dropdown-divider"></div> - <% data_versions[:previous_majors].each do |version| %> - <%= render '/partials/versions_list.*', version: version %> - <% end %> - <!-- End of last major versions --> - - <% end %> - <div class="dropdown-divider"></div> - <a class="dropdown-item" <%= active_dropdown('archives') %> href='/archives/'>Archives</a> - </div> + <li class="nav-item active"> + <a class="nav-link" href="https://about.gitlab.com/releases/categories/releases/" target="_blank">What's new?</a> </li> - <li class="nav-item p-2"> + </ul> + <div class="js-versions-menu"></div> + <ul class="navbar-nav mb-3 mb-md-0 pr-md-3 pl-0"> + <li class="nav-item"> <% if @item.identifier.to_s.split('/')[1] == 'omnibus' %> <%= render '/cta_omnibus.*' %> <% else %> diff --git a/layouts/home.html b/layouts/home.html index d5aefa52..376efc8b 100644 --- a/layouts/home.html +++ b/layouts/home.html @@ -14,10 +14,12 @@ <%= render '/analytics.*' %> <% end %> <%= render '/schema-microdata.*' %> + <script src="https://unpkg.com/regenerator-runtime@0.13.1/runtime.js"></script> <script src="<%= @items['/frontend/header/index.*'].path %>"></script> <script src="<%= @items['/frontend/home/index.*'].path %>"></script> <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.bundle.min.js" integrity="sha384-LtrjvnR4Twt/qOuYxE721u19sVFLVSA4hf/rRt6PrZTmiPltdZcI7q7PXQBYTKyf" crossorigin="anonymous"></script> <script type="application/javascript" src="<%= @items['/assets/javascripts/badges.*'].path %>"></script> + <script src="<%= @items['/frontend/default/default.*'].path %>"></script> </body> </html> diff --git a/package.json b/package.json index 952e79db..4b8e96fe 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,8 @@ "test": "jest", "eslint": "eslint --max-warnings 0 --ext .js,.vue .", "prettier": "prettier --check '**/*.{js,vue}'", - "prettier:fix": "prettier --write '**/*.{js,vue}'" + "prettier:fix": "prettier --write '**/*.{js,vue}'", + "postinstall": "patch-package" }, "devDependencies": { "@babel/core": "^7.14.2", @@ -21,6 +22,7 @@ "babel-core": "^7.0.0-bridge.0", "babel-jest": "^26.6.3", "eslint": "^7.26.0", + "flush-promises": "^1.0.2", "glob": "^7.1.7", "jest": "^26.6.3", "prettier": "^2.3.0", @@ -37,11 +39,14 @@ "dependencies": { "@gitlab/svgs": "^1.197.0", "@gitlab/ui": "^29.26.0", + "@rollup/plugin-url": "^7.0.0", "@tnir/instantsearch.js": "4.13.2-q.1", "algoliasearch": "4.9.1", "bootstrap": "^4.6.0", + "patch-package": "^6.4.7", "pikaday": "^1.8.2", "popper.js": "1.16.1-lts", + "postinstall-postinstall": "^2.1.0", "vue": "^2.6.12" } } diff --git a/patches/@gitlab+ui+29.38.1.patch b/patches/@gitlab+ui+29.38.1.patch new file mode 100644 index 00000000..49141f56 --- /dev/null +++ b/patches/@gitlab+ui+29.38.1.patch @@ -0,0 +1,19 @@ +diff --git a/node_modules/@gitlab/ui/dist/directives/safe_html/safe_html.js b/node_modules/@gitlab/ui/dist/directives/safe_html/safe_html.js +index 0716ba5..7485119 100644 +--- a/node_modules/@gitlab/ui/dist/directives/safe_html/safe_html.js ++++ b/node_modules/@gitlab/ui/dist/directives/safe_html/safe_html.js +@@ -1,4 +1,4 @@ +-import { sanitize } from 'dompurify'; ++import Dompurify from "dompurify"; + + function _defineProperty(obj, key, value) { + if (key in obj) { +@@ -65,7 +65,7 @@ var transform = function transform(el, binding) { + var config = _objectSpread2(_objectSpread2({}, DEFAULT_CONFIG), (_binding$arg = binding.arg) !== null && _binding$arg !== void 0 ? _binding$arg : {}); + + el.textContent = ''; +- el.appendChild(sanitize(binding.value, config)); ++ el.appendChild(Dompurify.sanitize(binding.value, config)); + } + }; + diff --git a/rollup.config.js b/rollup.config.js index 7f4fd01a..9568f07b 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,12 +1,12 @@ const json = require('@rollup/plugin-json'); const { nodeResolve } = require('@rollup/plugin-node-resolve'); const replace = require('@rollup/plugin-replace'); +const url = require('@rollup/plugin-url'); const glob = require('glob'); const babel = require('rollup-plugin-babel'); const commonjs = require('rollup-plugin-commonjs'); const importResolver = require('rollup-plugin-import-resolver'); const nodePolyfills = require('rollup-plugin-node-polyfills'); -const svg = require('rollup-plugin-svg'); const vue = require('rollup-plugin-vue'); function mapDirectory(file) { @@ -24,7 +24,11 @@ module.exports = glob.sync('content/frontend/**/*.js').map((file) => ({ nodeResolve({ browser: true, preferBuiltins: false }), commonjs(), vue(), - svg(), + url({ + destDir: 'public/assets/images', + publicPath: '/assets/images/', + fileName: 'icons.svg', + }), nodePolyfills(), babel({ exclude: 'node_modules/**', diff --git a/spec/frontend/default/components/helpers/versions_menu_helper.js b/spec/frontend/default/components/helpers/versions_menu_helper.js new file mode 100644 index 00000000..bdc1fa88 --- /dev/null +++ b/spec/frontend/default/components/helpers/versions_menu_helper.js @@ -0,0 +1,14 @@ +/** + * Creates a mock browser window object with a given path. + * @param {String} pathname + */ +export const setWindowPath = (pathname) => { + const location = { + ...window.location, + pathname, + }; + Object.defineProperty(window, 'location', { + writable: true, + value: location, + }); +}; diff --git a/spec/frontend/default/components/versions_menu_spec.js b/spec/frontend/default/components/versions_menu_spec.js new file mode 100644 index 00000000..01bb43e2 --- /dev/null +++ b/spec/frontend/default/components/versions_menu_spec.js @@ -0,0 +1,87 @@ +/** + * @jest-environment jsdom + */ + +import { mount } from '@vue/test-utils'; +import flushPromises from 'flush-promises'; +import VersionsMenu from '../../../../content/frontend/default/components/versions_menu.vue'; +import { getVersions } from '../../../../content/frontend/services/fetch_versions'; +import { setWindowPath } from './helpers/versions_menu_helper'; + +jest.mock('../../../../content/frontend/services/fetch_versions'); +const mockVersions = { + next: '15.3', + current: '15.2', + last_minor: ['15.1', '15.0'], + last_major: ['14.10', '13.12'], +}; + +beforeEach(() => { + jest.clearAllMocks(); + getVersions.mockResolvedValueOnce(mockVersions); +}); + +describe('component: Versions menu', () => { + it('Fetches versions.json and displays current version', async () => { + const wrapper = mount(VersionsMenu); + await flushPromises(); + + expect(getVersions).toHaveBeenCalledTimes(1); + + const nextVersion = wrapper.find('[data-testid="next-version"]').element.textContent; + expect(nextVersion).toEqual(mockVersions.next); + }); + + it('Generates correct menu links from the homepage', async () => { + setWindowPath('/'); + const wrapper = mount(VersionsMenu); + + expect(wrapper.vm.getVersionPath('')).toBe('/'); + expect(wrapper.vm.getVersionPath(mockVersions.current)).toBe(`/${mockVersions.current}/`); + + Object.values([...mockVersions.last_major, ...mockVersions.last_minor]).forEach( + function testLink(v) { + expect(wrapper.vm.getVersionPath(v)).toBe(`/${v}/`); + }, + ); + }); + + it('Generates correct menu links from an interior page', async () => { + setWindowPath('/ee/user/project/issue_board.html'); + const wrapper = mount(VersionsMenu); + await wrapper.setData({ activeVersion: '15.3', versions: mockVersions }); + + expect(wrapper.vm.getVersionPath('')).toBe('/ee/user/project/issue_board.html'); + expect(wrapper.vm.getVersionPath(mockVersions.current)).toBe( + `/${mockVersions.current}/ee/user/project/issue_board.html`, + ); + + Object.values([...mockVersions.last_major, ...mockVersions.last_minor]).forEach( + function testLink(v) { + expect(wrapper.vm.getVersionPath(v)).toBe(`/${v}/ee/user/project/issue_board.html`); + }, + ); + }); + + it('Generates correct menu links from an older version', async () => { + setWindowPath('/14.10/runner'); + const wrapper = mount(VersionsMenu); + await wrapper.setData({ activeVersion: '14.10', versions: mockVersions }); + + expect(wrapper.vm.getVersionPath('')).toBe('/runner'); + expect(wrapper.vm.getVersionPath(mockVersions.current)).toBe(`/${mockVersions.current}/runner`); + + Object.values([...mockVersions.last_major, ...mockVersions.last_minor]).forEach( + function testLink(v) { + expect(wrapper.vm.getVersionPath(v)).toBe(`/${v}/runner`); + }, + ); + }); + + it('Detects the active version from the page URL', async () => { + setWindowPath('/14.10/runner'); + const wrapper = mount(VersionsMenu); + await flushPromises(); + expect(wrapper.vm.getActiveVersion(mockVersions)).toBe('14.10'); + }); +}); @@ -986,9 +986,9 @@ regenerator-runtime "^0.13.4" "@babel/standalone@^7.0.0": - version "7.16.12" - resolved "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.16.12.tgz#bfa53fe78d223a781ca4fd8e14139743b2e0a038" - integrity sha512-Yhx3HHbBLCE0AzpmAXQ2h0adOz0N4Ga64EC7BibFPbdE0c9/davL/NCdHJf/xuQUbwtCg99g1ZLUsMvTLgBQ2w== + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.18.9.tgz#27d9bccac590df9e2d34b632e5d600f68b3fe581" + integrity sha512-6E+p5azHMHcMkHzGFnA7Pqhtgfwx1cClwjMqomMHhdFupCLZDDpVQUctRGYE7p7nn7cXJZSI/L9en+tt30AP3w== "@babel/template@^7.16.7", "@babel/template@^7.3.3": version "7.16.7" @@ -1329,13 +1329,13 @@ fastq "^1.6.0" "@nuxt/opencollective@^0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@nuxt/opencollective/-/opencollective-0.3.2.tgz#83cb70cdb2bac5fad6f8c93529e7b11187d49c02" - integrity sha512-XG7rUdXG9fcafu9KTDIYjJSkRO38EwjlKYIb5TQ/0WDbiTUTtUtgncMscKOYzfsY86kGs05pAuMOR+3Fi0aN3A== + version "0.3.3" + resolved "https://registry.yarnpkg.com/@nuxt/opencollective/-/opencollective-0.3.3.tgz#80ff0eb8f6fca1d0ed5a089b9688f41bff2dd8ab" + integrity sha512-6IKCd+gP0HliixqZT/p8nW3tucD6Sv/u/eR2A9X4rxT/6hXlMzA4GZQzq4d2qnBAwSwGpmKyzkyTjNjrhaA25A== dependencies: chalk "^4.1.0" consola "^2.15.0" - node-fetch "^2.6.1" + node-fetch "^2.6.7" "@rollup/plugin-json@^4.1.0": version "4.1.0" @@ -1364,6 +1364,15 @@ "@rollup/pluginutils" "^3.1.0" magic-string "^0.25.7" +"@rollup/plugin-url@^7.0.0": + version "7.0.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-url/-/plugin-url-7.0.0.tgz#571f6fd51c3d0e00f7404c67efdb93492bfac7f8" + integrity sha512-cIWcEObrmEPAU8q8NluGWlCPlQDuoSKvkyI3eOFO4fx6W02mLNj4ZEiUT0X2mKMIvQzoWL1feEK9d1yr1ICgrw== + dependencies: + "@rollup/pluginutils" "^4.2.1" + make-dir "^3.1.0" + mime "^2.4.6" + "@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" @@ -1373,6 +1382,14 @@ estree-walker "^1.0.1" picomatch "^2.2.2" +"@rollup/pluginutils@^4.2.1": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" + integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== + dependencies: + estree-walker "^2.0.1" + picomatch "^2.2.2" + "@sinonjs/commons@^1.7.0": version "1.8.3" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" @@ -1640,6 +1657,11 @@ lodash "^4.17.15" pretty "^2.0.0" +"@yarnpkg/lockfile@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" + integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== + abab@^2.0.3, abab@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" @@ -2283,7 +2305,7 @@ chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.1: +chalk@^2.0.0, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -2457,7 +2479,7 @@ component-emitter@^1.2.1: concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== condense-newlines@^0.2.1: version "0.2.1" @@ -2468,7 +2490,7 @@ condense-newlines@^0.2.1: is-whitespace "^0.3.0" kind-of "^3.0.2" -config-chain@^1.1.12: +config-chain@^1.1.12, config-chain@^1.1.13: version "1.1.13" resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4" integrity sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ== @@ -2551,7 +2573,7 @@ cosmiconfig@^7.0.0: path-type "^4.0.0" yaml "^1.10.0" -cross-spawn@^6.0.0: +cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== @@ -2828,9 +2850,9 @@ domhandler@^2.3.0: domelementtype "1" dompurify@^2.2.9: - version "2.3.4" - resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.3.4.tgz#1cf5cf0105ccb4debdf6db162525bd41e6ddacc6" - integrity sha512-6BVcgOAVFXjI0JTjEvZy901Rghm+7fDQOrNIcxB4+gdhj6Kwp6T9VBhBY/AbagKHJocRkDYGd6wvI+p4/10xtQ== + version "2.3.10" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.3.10.tgz#901f7390ffe16a91a5a556b94043314cd4850385" + integrity sha512-o7Fg/AgC7p/XpKjf/+RC3Ok6k4St5F7Q6q6+Nnm3p2zGWioAY6dh0CbbuwOhH2UcSzKsdniE/YnE2/92JcsA+g== domutils@^1.5.1: version "1.7.0" @@ -3215,6 +3237,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" @@ -3438,6 +3465,13 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" +find-yarn-workspace-root@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz#f47fb8d239c900eb78179aa81b66673eac88f7bd" + integrity sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ== + dependencies: + micromatch "^4.0.2" + flat-cache@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" @@ -3451,6 +3485,11 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.4.tgz#28d9969ea90661b5134259f312ab6aa7929ac5e2" integrity sha512-8/sOawo8tJ4QOBX8YlQBMxL8+RLZfxMQOif9o0KUKTNTjMYElWPE0r/m5VNFxTRd0NSw8qSy8dajrwX4RYI1Hw== +flush-promises@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/flush-promises/-/flush-promises-1.0.2.tgz#4948fd58f15281fed79cbafc86293d5bb09b2ced" + integrity sha512-G0sYfLQERwKz4+4iOZYQEZVpOt9zQrlItIxQAAYAWpfby3gbHrx0osCHz5RLl/XoXevXk0xoN4hDFky/VV9TrA== + for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -3472,10 +3511,19 @@ fragment-cache@^0.2.1: dependencies: map-cache "^0.2.2" +fs-extra@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@^2.1.2, fsevents@~2.3.2: version "2.3.2" @@ -3567,7 +3615,7 @@ glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7: +glob@^7.1.1, glob@^7.1.2, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7: version "7.2.0" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== @@ -3579,6 +3627,18 @@ glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^7.1.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + global-modules@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" @@ -3636,6 +3696,11 @@ gonzales-pe@^4.3.0: dependencies: minimist "^1.2.5" +graceful-fs@^4.1.11, graceful-fs@^4.1.6: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + graceful-fs@^4.1.2, graceful-fs@^4.2.4: version "4.2.9" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" @@ -3880,7 +3945,7 @@ indent-string@^4.0.0: inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" wrappy "1" @@ -4227,7 +4292,7 @@ is-windows@^1.0.2: resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== -is-wsl@^2.2.0: +is-wsl@^2.1.1, is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== @@ -4686,7 +4751,7 @@ js-base64@^2.1.9: resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== -js-beautify@^1.6.12, js-beautify@^1.6.14, js-beautify@^1.8.8: +js-beautify@^1.6.12, js-beautify@^1.6.14: version "1.14.0" resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.14.0.tgz#2ce790c555d53ce1e3d7363227acf5dc69024c2d" integrity sha512-yuck9KirNSCAwyNJbqW+BxJqJ0NLJ4PwBUzQQACl5O3qHMBXVkXb/rD0ilh/Lat/tn88zSZ+CAHOlk0DsY7GuQ== @@ -4696,6 +4761,16 @@ js-beautify@^1.6.12, js-beautify@^1.6.14, js-beautify@^1.8.8: glob "^7.1.3" nopt "^5.0.0" +js-beautify@^1.8.8: + version "1.14.4" + resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.14.4.tgz#187d600a835f84de67a6d09ceaf3f199b7284c82" + integrity sha512-+b4A9c3glceZEmxyIbxDOYB0ZJdReLvyU1077RqKsO4dZx9FUHjTOJn8VHwpg33QoucIykOiYbh7MfqBOghnrA== + dependencies: + config-chain "^1.1.13" + editorconfig "^0.15.3" + glob "^7.1.3" + nopt "^5.0.0" + js-stringify@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/js-stringify/-/js-stringify-1.0.2.tgz#1736fddfd9724f28a3682adc6230ae7e4e9679db" @@ -4801,6 +4876,13 @@ 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 sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== + optionalDependencies: + graceful-fs "^4.1.6" + jstransformer@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/jstransformer/-/jstransformer-1.0.0.tgz#ed8bf0921e2f3f1ed4d5c1a44f68709ed24722c3" @@ -4833,6 +4915,13 @@ kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== +klaw-sync@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-6.0.0.tgz#1fd2cfd56ebb6250181114f0a581167099c2b28c" + integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ== + dependencies: + graceful-fs "^4.1.11" + kleur@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" @@ -5005,7 +5094,7 @@ make-dir@^2.1.0: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.0: +make-dir@^3.0.0, make-dir@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== @@ -5161,6 +5250,11 @@ mime@^1.4.1: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== +mime@^2.4.6: + version "2.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" + integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== + mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" @@ -5171,13 +5265,20 @@ min-indent@^1.0.0: resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== -minimatch@^3.0.2, minimatch@^3.0.4: +minimatch@^3.0.2: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" +minimatch@^3.0.4, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + minimist-options@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" @@ -5270,7 +5371,7 @@ node-cache@^4.1.1: clone "2.x" lodash "^4.17.15" -node-fetch@^2.6.1: +node-fetch@^2.6.7: version "2.6.7" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== @@ -5448,7 +5549,7 @@ object.values@^1.1.5: once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" @@ -5459,6 +5560,14 @@ onetime@^5.1.0: dependencies: mimic-fn "^2.1.0" +open@^7.4.2: + version "7.4.2" + resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" + integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== + dependencies: + is-docker "^2.0.0" + is-wsl "^2.1.1" + optionator@^0.8.1: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" @@ -5483,6 +5592,11 @@ optionator@^0.9.1: type-check "^0.4.0" word-wrap "^1.2.3" +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + p-each-series@^2.1.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" @@ -5570,6 +5684,25 @@ pascalcase@^0.1.1: resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= +patch-package@^6.4.7: + version "6.4.7" + resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-6.4.7.tgz#2282d53c397909a0d9ef92dae3fdeb558382b148" + integrity sha512-S0vh/ZEafZ17hbhgqdnpunKDfzHQibQizx9g8yEf5dcVk3KOflOfdufRXQX8CSEkyOQwuM/bNz1GwKvFj54kaQ== + dependencies: + "@yarnpkg/lockfile" "^1.1.0" + chalk "^2.4.2" + cross-spawn "^6.0.5" + find-yarn-workspace-root "^2.0.0" + fs-extra "^7.0.1" + is-ci "^2.0.0" + klaw-sync "^6.0.0" + minimist "^1.2.0" + open "^7.4.2" + rimraf "^2.6.3" + semver "^5.6.0" + slash "^2.0.0" + tmp "^0.0.33" + path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -5583,7 +5716,7 @@ path-exists@^4.0.0: path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" @@ -5786,6 +5919,11 @@ postcss@^7.0.14, postcss@^7.0.2, postcss@^7.0.21, postcss@^7.0.26, postcss@^7.0. picocolors "^0.2.1" source-map "^0.6.1" +postinstall-postinstall@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postinstall-postinstall/-/postinstall-postinstall-2.1.0.tgz#4f7f77441ef539d1512c40bd04c71b06a4704ca3" + integrity sha512-7hQX6ZlZXIoRiWNrbMQaLzUUfH+sSx39u8EJ9HYuDc1kLo9IXKWjM5RSquZN1ad5GnH8CGFM78fsAAQi3OKEEQ== + preact@^10.0.0: version "10.6.4" resolved "https://registry.yarnpkg.com/preact/-/preact-10.6.4.tgz#ad12c409ff1b4316158486e0a7b8d43636f7ced8" @@ -5857,7 +5995,7 @@ prop-types@^15.5.10: proto-list@~1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= + integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== prr@~1.0.1: version "1.0.1" @@ -5867,7 +6005,7 @@ prr@~1.0.1: pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== psl@^1.1.33: version "1.8.0" @@ -6230,6 +6368,13 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== +rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -6476,7 +6621,7 @@ side-channel@^1.0.4: sigmund@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" - integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA= + integrity sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g== signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.6" @@ -6488,6 +6633,11 @@ sisteransi@^1.0.5: resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== +slash@^2.0.0: + version "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" @@ -6921,6 +7071,13 @@ throat@^5.0.0: resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + tmpl@1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" @@ -6971,7 +7128,7 @@ to-regex@^3.0.1, to-regex@^3.0.2: toggle-selection@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32" - integrity sha1-bkWxJj8gF/oKzH2J14sVuL932jI= + integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ== token-stream@1.0.0: version "1.0.0" @@ -6997,7 +7154,7 @@ tr46@^2.1.0: tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" - integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== trim-newlines@^3.0.0: version "3.0.1" @@ -7166,7 +7323,7 @@ unist-util-stringify-position@^2.0.0: dependencies: "@types/unist" "^2.0.2" -universalify@^0.1.2: +universalify@^0.1.0, universalify@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== @@ -7338,7 +7495,7 @@ walker@^1.0.7, walker@~1.0.5: webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" - integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE= + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== webidl-conversions@^5.0.0: version "5.0.0" @@ -7365,7 +7522,7 @@ whatwg-mimetype@^2.3.0: whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" - integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0= + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" webidl-conversions "^3.0.0" @@ -7436,7 +7593,7 @@ wrap-ansi@^6.2.0: wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== write-file-atomic@^3.0.0, write-file-atomic@^3.0.3: version "3.0.3" @@ -7471,7 +7628,7 @@ y18n@^4.0.0: yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== yallist@^4.0.0: version "4.0.0" |