diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index bb9d6cbd8..16791b110 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -153,6 +153,48 @@ jobs:
- name: Test
run: pnpm run test
+ e2e:
+ name: 'E2E: ${{ matrix.os }} (node@${{ matrix.node_version }})'
+ runs-on: ${{ matrix.os }}
+ env:
+ ASTRO_TELEMETRY_DISABLED: true
+ strategy:
+ matrix:
+ os: [ubuntu-latest]
+ node_version: [14, 16]
+ include:
+ - os: windows-latest
+ node_version: 16
+ - os: macos-latest
+ node_version: 16
+ fail-fast: false
+ needs:
+ - build
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - name: Setup PNPM
+ uses: pnpm/action-setup@v2.2.1
+
+ - name: Setup node@${{ matrix.node_version }}
+ uses: actions/setup-node@v3
+ with:
+ node-version: ${{ matrix.node_version }}
+ cache: 'pnpm'
+
+ - name: Download Build Artifacts
+ uses: actions/download-artifact@v3
+
+ - name: Extract Artifacts
+ run: ./.github/extract-artifacts.sh
+
+ - name: Install dependencies
+ run: pnpm install
+
+ - name: Test
+ run: pnpm run test:e2e
+
smoke:
name: 'Test (Smoke) ${{ matrix.os }}'
runs-on: ${{ matrix.os }}
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 9ff3bae3a..b325fc8d1 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -59,6 +59,24 @@ pnpm run test
pnpm run test:match "$STRING_MATCH"
```
+#### E2E tests
+
+Certain features, like HMR and client hydration, need end-to-end tests to verify functionality in the dev server. [Playwright](https://playwright.dev/) is used to test against the dev server.
+
+```shell
+# run this in the top-level project root to run all E2E tests
+pnpm run test:e2e
+# run only a few tests, great for working on a single feature
+# (example - `pnpm run test:e2e:match "Tailwind CSS" runs `tailwindcss.test.js`)
+pnpm run test:e2e:match "$STRING_MATCH"
+```
+
+**When should you add E2E tests?**
+
+Any tests for `astro build` output should use the main `mocha` tests rather than E2E - these tests will run faster than having Playwright start the `astro preview` server.
+
+If a test needs to validate what happens on the page after it's loading in the browser, that's a perfect use for E2E dev server tests, i.e. to verify that hot-module reloading works in `astro dev` or that components were client hydrated and are interactive.
+
### Other useful commands
```shell
diff --git a/package.json b/package.json
index b1ca3d673..030c2bdd3 100644
--- a/package.json
+++ b/package.json
@@ -18,6 +18,7 @@
"test:templates": "turbo run test --filter=create-astro --concurrency=1",
"test:smoke": "node scripts/smoke/index.js",
"test:vite-ci": "turbo run test --no-deps --scope=astro --concurrency=1",
+ "test:e2e": "cd packages/astro && pnpm playwright install && pnpm run test:e2e",
"benchmark": "turbo run benchmark --scope=astro",
"lint": "eslint \"packages/**/*.ts\"",
"format": "prettier -w .",
diff --git a/packages/astro/e2e/fixtures/tailwindcss/astro.config.mjs b/packages/astro/e2e/fixtures/tailwindcss/astro.config.mjs
new file mode 100644
index 000000000..473be9666
--- /dev/null
+++ b/packages/astro/e2e/fixtures/tailwindcss/astro.config.mjs
@@ -0,0 +1,12 @@
+import { defineConfig } from 'astro/config';
+import tailwind from '@astrojs/tailwind';
+
+// https://astro.build/config
+export default defineConfig({
+ integrations: [tailwind()],
+ vite: {
+ build: {
+ assetsInlineLimit: 0,
+ },
+ },
+});
diff --git a/packages/astro/e2e/fixtures/tailwindcss/package.json b/packages/astro/e2e/fixtures/tailwindcss/package.json
new file mode 100644
index 000000000..4bcc56872
--- /dev/null
+++ b/packages/astro/e2e/fixtures/tailwindcss/package.json
@@ -0,0 +1,9 @@
+{
+ "name": "@test/e2e-tailwindcss",
+ "version": "0.0.0",
+ "private": true,
+ "dependencies": {
+ "astro": "workspace:*",
+ "@astrojs/tailwind": "workspace:*"
+ }
+}
diff --git a/packages/astro/e2e/fixtures/tailwindcss/postcss.config.js b/packages/astro/e2e/fixtures/tailwindcss/postcss.config.js
new file mode 100644
index 000000000..7df5ecb39
--- /dev/null
+++ b/packages/astro/e2e/fixtures/tailwindcss/postcss.config.js
@@ -0,0 +1,9 @@
+const path = require('path');
+module.exports = {
+ plugins: {
+ tailwindcss: {
+ config: path.join(__dirname, 'tailwind.config.js'), // update this if your path differs!
+ },
+ autoprefixer: {}
+ },
+};
diff --git a/packages/astro/e2e/fixtures/tailwindcss/src/components/Button.astro b/packages/astro/e2e/fixtures/tailwindcss/src/components/Button.astro
new file mode 100644
index 000000000..6e0872173
--- /dev/null
+++ b/packages/astro/e2e/fixtures/tailwindcss/src/components/Button.astro
@@ -0,0 +1,10 @@
+---
+let { type = 'button' } = Astro.props;
+---
+
+
diff --git a/packages/astro/e2e/fixtures/tailwindcss/src/components/Complex.astro b/packages/astro/e2e/fixtures/tailwindcss/src/components/Complex.astro
new file mode 100644
index 000000000..bd30373c8
--- /dev/null
+++ b/packages/astro/e2e/fixtures/tailwindcss/src/components/Complex.astro
@@ -0,0 +1 @@
+
diff --git a/packages/astro/e2e/fixtures/tailwindcss/src/pages/index.astro b/packages/astro/e2e/fixtures/tailwindcss/src/pages/index.astro
new file mode 100644
index 000000000..d901b4233
--- /dev/null
+++ b/packages/astro/e2e/fixtures/tailwindcss/src/pages/index.astro
@@ -0,0 +1,18 @@
+---
+// Component Imports
+import Button from '../components/Button.astro';
+import Complex from '../components/Complex.astro';
+---
+
+
+
+
+
+ Astro + TailwindCSS
+
+
+
+
+
+
+
diff --git a/packages/astro/e2e/fixtures/tailwindcss/src/pages/markdown-page.md b/packages/astro/e2e/fixtures/tailwindcss/src/pages/markdown-page.md
new file mode 100644
index 000000000..e4c6b6bc9
--- /dev/null
+++ b/packages/astro/e2e/fixtures/tailwindcss/src/pages/markdown-page.md
@@ -0,0 +1,11 @@
+---
+title: "Markdown + Tailwind"
+setup: |
+ import Button from '../components/Button.astro';
+ import Complex from '../components/Complex.astro';
+---
+
+
+
+
+
\ No newline at end of file
diff --git a/packages/astro/e2e/fixtures/tailwindcss/tailwind.config.js b/packages/astro/e2e/fixtures/tailwindcss/tailwind.config.js
new file mode 100644
index 000000000..7aeb483c1
--- /dev/null
+++ b/packages/astro/e2e/fixtures/tailwindcss/tailwind.config.js
@@ -0,0 +1,14 @@
+const path = require('path');
+
+module.exports = {
+ content: [path.join(__dirname, 'src/**/*.{astro,html,js,jsx,md,svelte,ts,tsx,vue}')],
+ theme: {
+ extend: {
+ colors: {
+ dawn: '#f3e9fa',
+ dusk: '#514375',
+ midnight: '#31274a',
+ }
+ }
+ }
+};
diff --git a/packages/astro/e2e/tailwindcss.test.js b/packages/astro/e2e/tailwindcss.test.js
new file mode 100644
index 000000000..e156a7be7
--- /dev/null
+++ b/packages/astro/e2e/tailwindcss.test.js
@@ -0,0 +1,51 @@
+import { test as base, expect } from '@playwright/test';
+import { loadFixture } from './test-utils.js';
+
+const test = base.extend({
+ astro: async ({}, use) => {
+ const fixture = await loadFixture({ root: './fixtures/tailwindcss/' });
+ await use(fixture);
+ },
+});
+
+let devServer;
+
+test.beforeAll(async ({ astro }) => {
+ devServer = await astro.startDevServer();
+});
+
+test.afterAll(async ({ astro }) => {
+ await devServer.stop();
+});
+
+test('Tailwind CSS', async ({ page, astro }) => {
+ await page.goto(astro.resolveUrl('/'));
+
+ await test.step('body', async () => {
+ const body = page.locator('body');
+
+ await expect(body, 'should have classes').toHaveClass('bg-dawn text-midnight');
+ await expect(body, 'should have background color').toHaveCSS(
+ 'background-color',
+ 'rgb(243, 233, 250)'
+ );
+ await expect(body, 'should have color').toHaveCSS('color', 'rgb(49, 39, 74)');
+ });
+
+ await test.step('button', async () => {
+ const button = page.locator('button');
+
+ await expect(button, 'should have bg-purple-600').toHaveClass(/bg-purple-600/);
+ await expect(button, 'should have background color').toHaveCSS(
+ 'background-color',
+ 'rgb(147, 51, 234)'
+ );
+
+ await expect(button, 'should have lg:py-3').toHaveClass(/lg:py-3/);
+ await expect(button, 'should have padding bottom').toHaveCSS('padding-bottom', '12px');
+ await expect(button, 'should have padding top').toHaveCSS('padding-top', '12px');
+
+ await expect(button, 'should have font-[900]').toHaveClass(/font-\[900\]/);
+ await expect(button, 'should have font weight').toHaveCSS('font-weight', '900');
+ });
+});
diff --git a/packages/astro/e2e/test-utils.js b/packages/astro/e2e/test-utils.js
new file mode 100644
index 000000000..e2552042c
--- /dev/null
+++ b/packages/astro/e2e/test-utils.js
@@ -0,0 +1,13 @@
+import { loadFixture as baseLoadFixture } from '../test/test-utils.js';
+
+export function loadFixture(inlineConfig) {
+ if (!inlineConfig || !inlineConfig.root)
+ throw new Error("Must provide { root: './fixtures/...' }");
+
+ // resolve the relative root (i.e. "./fixtures/tailwindcss") to a full filepath
+ // without this, the main `loadFixture` helper will resolve relative to `packages/astro/test`
+ return baseLoadFixture({
+ ...inlineConfig,
+ root: new URL(inlineConfig.root, import.meta.url).toString()
+ })
+}
diff --git a/packages/astro/package.json b/packages/astro/package.json
index 86939565e..c4d266a5d 100644
--- a/packages/astro/package.json
+++ b/packages/astro/package.json
@@ -72,7 +72,8 @@
"postbuild": "astro-scripts copy \"src/**/*.astro\"",
"benchmark": "node test/benchmark/dev.bench.js && node test/benchmark/build.bench.js",
"test": "mocha --exit --timeout 20000 --ignore **/lit-element.test.js && mocha --timeout 20000 **/lit-element.test.js",
- "test:match": "mocha --timeout 20000 -g"
+ "test:match": "mocha --timeout 20000 -g",
+ "test:e2e": "playwright test e2e"
},
"dependencies": {
"@astrojs/compiler": "^0.14.2",
@@ -134,7 +135,8 @@
"zod": "^3.16.0"
},
"devDependencies": {
- "@babel/types": "^7.17.10",
+ "@babel/types": "^7.17.0",
+ "@playwright/test": "^1.21.1",
"@types/babel__core": "^7.1.19",
"@types/babel__generator": "^7.6.4",
"@types/babel__traverse": "^7.17.1",
diff --git a/packages/astro/test/tailwindcss.test.js b/packages/astro/test/tailwindcss.test.js
index c8fad9f4c..2facca9e4 100644
--- a/packages/astro/test/tailwindcss.test.js
+++ b/packages/astro/test/tailwindcss.test.js
@@ -70,50 +70,4 @@ describe('Tailwind', () => {
expect(bundledCSS, 'includes used component classes').to.match(/\.bg-purple-600{/);
});
});
-
- // with "build" handling CSS checking, the dev tests are mostly testing the paths resolve in dev
- describe('dev', () => {
- let devServer;
- let $;
-
- before(async () => {
- devServer = await fixture.startDevServer();
- const html = await fixture.fetch('/').then((res) => res.text());
- $ = cheerio.load(html);
- });
-
- after(async () => {
- devServer && (await devServer.stop());
- });
-
- it('resolves CSS in src/styles', async () => {
- const bundledCSSHREF = $('link[rel=stylesheet]').attr('href');
- const res = await fixture.fetch(bundledCSSHREF);
- expect(res.status).to.equal(200);
-
- const text = await res.text();
- expect(text, 'includes used component classes').to.match(/\.bg-purple-600/);
-
- // tests a random tailwind class that isn't used on the page
- expect(text, 'purges unused classes').not.to.match(/\.bg-blue-600/);
-
- // tailwind escapes colons, `lg:py-3` compiles to `lg\:py-3`
- expect(text, 'includes responsive classes').to.match(/\.lg\\\\:py-3/);
-
- // tailwind escapes brackets, `font-[900]` compiles to `font-\[900\]`
- expect(text, 'supports arbitrary value classes').to.match(/.font-\\[900\\]/);
-
- // custom theme colors were included
- expect(text, 'includes custom theme colors').to.match(/\.text-midnight/);
- expect(text, 'includes custom theme colors').to.match(/\.bg-dawn/);
- });
-
- it('maintains classes in HTML', async () => {
- const button = $('button');
-
- expect(button.hasClass('text-white'), 'basic class').to.be.true;
- expect(button.hasClass('lg:py-3'), 'responsive class').to.be.true;
- expect(button.hasClass('font-[900]', 'arbitrary value')).to.be.true;
- });
- });
});
diff --git a/packages/astro/test/test-utils.js b/packages/astro/test/test-utils.js
index 267e4039f..bc7ff3f0b 100644
--- a/packages/astro/test/test-utils.js
+++ b/packages/astro/test/test-utils.js
@@ -25,6 +25,7 @@ polyfill(globalThis, {
*
* @typedef {Object} Fixture
* @property {typeof build} build
+ * @property {(url: string) => string} resolveUrl
* @property {(url: string, opts: any) => Promise} fetch
* @property {(path: string) => Promise} readFile
* @property {(path: string) => Promise} readdir
@@ -93,6 +94,8 @@ export async function loadFixture(inlineConfig) {
},
};
+ const resolveUrl = (url) => `http://${'127.0.0.1'}:${config.server.port}${url.replace(/^\/?/, '/')}`;
+
return {
build: (opts = {}) => build(config, { mode: 'development', logging, telemetry, ...opts }),
startDevServer: async (opts = {}) => {
@@ -101,8 +104,9 @@ export async function loadFixture(inlineConfig) {
return devResult;
},
config,
+ resolveUrl,
fetch: (url, init) =>
- fetch(`http://${'127.0.0.1'}:${config.server.port}${url.replace(/^\/?/, '/')}`, init),
+ fetch(resolveUrl(url), init),
preview: async (opts = {}) => {
const previewServer = await preview(config, { logging, telemetry, ...opts });
return previewServer;
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 1f81977c7..497caf730 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -469,7 +469,8 @@ importers:
'@babel/generator': ^7.17.10
'@babel/parser': ^7.17.10
'@babel/traverse': ^7.17.10
- '@babel/types': ^7.17.10
+ '@babel/types': ^7.17.0
+ '@playwright/test': ^1.21.1
'@proload/core': ^0.3.2
'@proload/plugin-tsm': ^0.2.1
'@types/babel__core': ^7.1.19
@@ -603,6 +604,7 @@ importers:
zod: 3.16.0
devDependencies:
'@babel/types': 7.17.10
+ '@playwright/test': 1.21.1
'@types/babel__core': 7.1.19
'@types/babel__generator': 7.6.4
'@types/babel__traverse': 7.17.1
@@ -659,6 +661,14 @@ importers:
chai-as-promised: 7.1.1_chai@4.3.6
mocha: 9.2.2
+ packages/astro/e2e/fixtures/tailwindcss:
+ specifiers:
+ '@astrojs/tailwind': workspace:*
+ astro: workspace:*
+ dependencies:
+ '@astrojs/tailwind': link:../../../../integrations/tailwind
+ astro: link:../../..
+
packages/astro/test/fixtures/0-css:
specifiers:
'@astrojs/react': workspace:*
@@ -1870,6 +1880,29 @@ packages:
resolution: {integrity: sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==}
engines: {node: '>=6.9.0'}
+ /@babel/core/7.16.12:
+ resolution: {integrity: sha512-dK5PtG1uiN2ikk++5OzSYsitZKny4wOCD0nrO4TqnW4BVBTQ2NGS3NgilvT/TEyxTST7LNyWV/T4tXDoD3fOgg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/code-frame': 7.16.7
+ '@babel/generator': 7.17.10
+ '@babel/helper-compilation-targets': 7.17.10_@babel+core@7.16.12
+ '@babel/helper-module-transforms': 7.17.7
+ '@babel/helpers': 7.17.9
+ '@babel/parser': 7.17.10
+ '@babel/template': 7.16.7
+ '@babel/traverse': 7.17.10
+ '@babel/types': 7.17.10
+ convert-source-map: 1.8.0
+ debug: 4.3.4
+ gensync: 1.0.0-beta.2
+ json5: 2.2.1
+ semver: 6.3.0
+ source-map: 0.5.7
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/@babel/core/7.17.10:
resolution: {integrity: sha512-liKoppandF3ZcBnIYFjfSDHZLKdLHGJRkoWtG8zQyGJBQfIYobpnVGI5+pLBNtS6psFLDzyq8+h5HiVljW9PNA==}
engines: {node: '>=6.9.0'}
@@ -1914,6 +1947,22 @@ packages:
'@babel/types': 7.17.10
dev: true
+ /@babel/helper-compilation-targets/7.17.10_@babel+core@7.16.12:
+ resolution: {integrity: sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/compat-data': 7.17.10
+ '@babel/core': 7.16.12
+ '@babel/helper-validator-option': 7.16.7
+ browserslist: 4.20.3
+ semver: 6.3.0
+ dev: true
+
/@babel/helper-compilation-targets/7.17.10_@babel+core@7.17.10:
resolution: {integrity: sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ==}
engines: {node: '>=6.9.0'}
@@ -1929,6 +1978,27 @@ packages:
browserslist: 4.20.3
semver: 6.3.0
+ /@babel/helper-create-class-features-plugin/7.17.9_@babel+core@7.16.12:
+ resolution: {integrity: sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/core': 7.16.12
+ '@babel/helper-annotate-as-pure': 7.16.7
+ '@babel/helper-environment-visitor': 7.16.7
+ '@babel/helper-function-name': 7.17.9
+ '@babel/helper-member-expression-to-functions': 7.17.7
+ '@babel/helper-optimise-call-expression': 7.16.7
+ '@babel/helper-replace-supers': 7.16.7
+ '@babel/helper-split-export-declaration': 7.16.7
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/@babel/helper-create-class-features-plugin/7.17.9_@babel+core@7.17.10:
resolution: {integrity: sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ==}
engines: {node: '>=6.9.0'}
@@ -2190,6 +2260,22 @@ packages:
- supports-color
dev: true
+ /@babel/plugin-proposal-class-properties/7.16.7_@babel+core@7.16.12:
+ resolution: {integrity: sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/core': 7.16.12
+ '@babel/helper-create-class-features-plugin': 7.17.9_@babel+core@7.16.12
+ '@babel/helper-plugin-utils': 7.16.7
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/@babel/plugin-proposal-class-properties/7.16.7_@babel+core@7.17.10:
resolution: {integrity: sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==}
engines: {node: '>=6.9.0'}
@@ -2223,6 +2309,20 @@ packages:
- supports-color
dev: true
+ /@babel/plugin-proposal-dynamic-import/7.16.7_@babel+core@7.16.12:
+ resolution: {integrity: sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/core': 7.16.12
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.16.12
+ dev: true
+
/@babel/plugin-proposal-dynamic-import/7.16.7_@babel+core@7.17.10:
resolution: {integrity: sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==}
engines: {node: '>=6.9.0'}
@@ -2237,6 +2337,20 @@ packages:
'@babel/plugin-syntax-dynamic-import': 7.8.3_@babel+core@7.17.10
dev: true
+ /@babel/plugin-proposal-export-namespace-from/7.16.7_@babel+core@7.16.12:
+ resolution: {integrity: sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/core': 7.16.12
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/plugin-syntax-export-namespace-from': 7.8.3_@babel+core@7.16.12
+ dev: true
+
/@babel/plugin-proposal-export-namespace-from/7.16.7_@babel+core@7.17.10:
resolution: {integrity: sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==}
engines: {node: '>=6.9.0'}
@@ -2265,6 +2379,20 @@ packages:
'@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.17.10
dev: true
+ /@babel/plugin-proposal-logical-assignment-operators/7.16.7_@babel+core@7.16.12:
+ resolution: {integrity: sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/core': 7.16.12
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.16.12
+ dev: true
+
/@babel/plugin-proposal-logical-assignment-operators/7.16.7_@babel+core@7.17.10:
resolution: {integrity: sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==}
engines: {node: '>=6.9.0'}
@@ -2279,6 +2407,20 @@ packages:
'@babel/plugin-syntax-logical-assignment-operators': 7.10.4_@babel+core@7.17.10
dev: true
+ /@babel/plugin-proposal-nullish-coalescing-operator/7.16.7_@babel+core@7.16.12:
+ resolution: {integrity: sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/core': 7.16.12
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.16.12
+ dev: true
+
/@babel/plugin-proposal-nullish-coalescing-operator/7.16.7_@babel+core@7.17.10:
resolution: {integrity: sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==}
engines: {node: '>=6.9.0'}
@@ -2293,6 +2435,20 @@ packages:
'@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3_@babel+core@7.17.10
dev: true
+ /@babel/plugin-proposal-numeric-separator/7.16.7_@babel+core@7.16.12:
+ resolution: {integrity: sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/core': 7.16.12
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/plugin-syntax-numeric-separator': 7.10.4_@babel+core@7.16.12
+ dev: true
+
/@babel/plugin-proposal-numeric-separator/7.16.7_@babel+core@7.17.10:
resolution: {integrity: sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==}
engines: {node: '>=6.9.0'}
@@ -2338,6 +2494,21 @@ packages:
'@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.17.10
dev: true
+ /@babel/plugin-proposal-optional-chaining/7.16.7_@babel+core@7.16.12:
+ resolution: {integrity: sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/core': 7.16.12
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/helper-skip-transparent-expression-wrappers': 7.16.0
+ '@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.16.12
+ dev: true
+
/@babel/plugin-proposal-optional-chaining/7.16.7_@babel+core@7.17.10:
resolution: {integrity: sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==}
engines: {node: '>=6.9.0'}
@@ -2353,6 +2524,22 @@ packages:
'@babel/plugin-syntax-optional-chaining': 7.8.3_@babel+core@7.17.10
dev: true
+ /@babel/plugin-proposal-private-methods/7.16.11_@babel+core@7.16.12:
+ resolution: {integrity: sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/core': 7.16.12
+ '@babel/helper-create-class-features-plugin': 7.17.9_@babel+core@7.16.12
+ '@babel/helper-plugin-utils': 7.16.7
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/@babel/plugin-proposal-private-methods/7.16.11_@babel+core@7.17.10:
resolution: {integrity: sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==}
engines: {node: '>=6.9.0'}
@@ -2369,6 +2556,24 @@ packages:
- supports-color
dev: true
+ /@babel/plugin-proposal-private-property-in-object/7.16.7_@babel+core@7.16.12:
+ resolution: {integrity: sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/core': 7.16.12
+ '@babel/helper-annotate-as-pure': 7.16.7
+ '@babel/helper-create-class-features-plugin': 7.17.9_@babel+core@7.16.12
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5_@babel+core@7.16.12
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/@babel/plugin-proposal-private-property-in-object/7.16.7_@babel+core@7.17.10:
resolution: {integrity: sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==}
engines: {node: '>=6.9.0'}
@@ -2401,6 +2606,18 @@ packages:
'@babel/helper-plugin-utils': 7.16.7
dev: true
+ /@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.16.12:
+ resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/core': 7.16.12
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
/@babel/plugin-syntax-async-generators/7.8.4_@babel+core@7.17.10:
resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
peerDependencies:
@@ -2438,6 +2655,18 @@ packages:
'@babel/helper-plugin-utils': 7.16.7
dev: true
+ /@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.16.12:
+ resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/core': 7.16.12
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
/@babel/plugin-syntax-dynamic-import/7.8.3_@babel+core@7.17.10:
resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==}
peerDependencies:
@@ -2450,6 +2679,18 @@ packages:
'@babel/helper-plugin-utils': 7.16.7
dev: true
+ /@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.16.12:
+ resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/core': 7.16.12
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
/@babel/plugin-syntax-export-namespace-from/7.8.3_@babel+core@7.17.10:
resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==}
peerDependencies:
@@ -2462,6 +2703,18 @@ packages:
'@babel/helper-plugin-utils': 7.16.7
dev: true
+ /@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.16.12:
+ resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/core': 7.16.12
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
/@babel/plugin-syntax-json-strings/7.8.3_@babel+core@7.17.10:
resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
peerDependencies:
@@ -2486,6 +2739,18 @@ packages:
'@babel/helper-plugin-utils': 7.16.7
dev: false
+ /@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.16.12:
+ resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/core': 7.16.12
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
/@babel/plugin-syntax-logical-assignment-operators/7.10.4_@babel+core@7.17.10:
resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==}
peerDependencies:
@@ -2498,6 +2763,18 @@ packages:
'@babel/helper-plugin-utils': 7.16.7
dev: true
+ /@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.16.12:
+ resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/core': 7.16.12
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
/@babel/plugin-syntax-nullish-coalescing-operator/7.8.3_@babel+core@7.17.10:
resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==}
peerDependencies:
@@ -2510,6 +2787,18 @@ packages:
'@babel/helper-plugin-utils': 7.16.7
dev: true
+ /@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.16.12:
+ resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/core': 7.16.12
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
/@babel/plugin-syntax-numeric-separator/7.10.4_@babel+core@7.17.10:
resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==}
peerDependencies:
@@ -2522,6 +2811,18 @@ packages:
'@babel/helper-plugin-utils': 7.16.7
dev: true
+ /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.16.12:
+ resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/core': 7.16.12
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
/@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.17.10:
resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
peerDependencies:
@@ -2534,6 +2835,18 @@ packages:
'@babel/helper-plugin-utils': 7.16.7
dev: true
+ /@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.16.12:
+ resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/core': 7.16.12
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
/@babel/plugin-syntax-optional-catch-binding/7.8.3_@babel+core@7.17.10:
resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==}
peerDependencies:
@@ -2546,6 +2859,18 @@ packages:
'@babel/helper-plugin-utils': 7.16.7
dev: true
+ /@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.16.12:
+ resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/core': 7.16.12
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
/@babel/plugin-syntax-optional-chaining/7.8.3_@babel+core@7.17.10:
resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==}
peerDependencies:
@@ -2558,6 +2883,19 @@ packages:
'@babel/helper-plugin-utils': 7.16.7
dev: true
+ /@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.16.12:
+ resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/core': 7.16.12
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
/@babel/plugin-syntax-private-property-in-object/7.14.5_@babel+core@7.17.10:
resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==}
engines: {node: '>=6.9.0'}
@@ -2584,6 +2922,19 @@ packages:
'@babel/helper-plugin-utils': 7.16.7
dev: true
+ /@babel/plugin-syntax-typescript/7.17.10_@babel+core@7.16.12:
+ resolution: {integrity: sha512-xJefea1DWXW09pW4Tm9bjwVlPDyYA2it3fWlmEjpYz6alPvTUjL0EOzNzI/FEOyI3r4/J7uVH5UqKgl1TQ5hqQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/core': 7.16.12
+ '@babel/helper-plugin-utils': 7.16.7
+ dev: true
+
/@babel/plugin-transform-arrow-functions/7.16.7_@babel+core@7.17.10:
resolution: {integrity: sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==}
engines: {node: '>=6.9.0'}
@@ -2800,6 +3151,24 @@ packages:
- supports-color
dev: true
+ /@babel/plugin-transform-modules-commonjs/7.16.8_@babel+core@7.16.12:
+ resolution: {integrity: sha512-oflKPvsLT2+uKQopesJt3ApiaIS2HW+hzHFcwRNtyDGieAeC/dIHZX8buJQ2J2X1rxGPy4eRcUijm3qcSPjYcA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/core': 7.16.12
+ '@babel/helper-module-transforms': 7.17.7
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/helper-simple-access': 7.17.7
+ babel-plugin-dynamic-import-node: 2.3.3
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/@babel/plugin-transform-modules-commonjs/7.17.9_@babel+core@7.17.10:
resolution: {integrity: sha512-2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw==}
engines: {node: '>=6.9.0'}
@@ -3029,6 +3398,23 @@ packages:
'@babel/helper-plugin-utils': 7.16.7
dev: true
+ /@babel/plugin-transform-typescript/7.16.8_@babel+core@7.16.12:
+ resolution: {integrity: sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/core': 7.16.12
+ '@babel/helper-create-class-features-plugin': 7.17.9_@babel+core@7.16.12
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/plugin-syntax-typescript': 7.17.10_@babel+core@7.16.12
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/@babel/plugin-transform-unicode-escapes/7.16.7_@babel+core@7.17.10:
resolution: {integrity: sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==}
engines: {node: '>=6.9.0'}
@@ -3160,6 +3546,23 @@ packages:
esutils: 2.0.3
dev: true
+ /@babel/preset-typescript/7.16.7_@babel+core@7.16.12:
+ resolution: {integrity: sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ peerDependenciesMeta:
+ '@babel/core':
+ optional: true
+ dependencies:
+ '@babel/core': 7.16.12
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/helper-validator-option': 7.16.7
+ '@babel/plugin-transform-typescript': 7.16.8_@babel+core@7.16.12
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/@babel/runtime/7.17.9:
resolution: {integrity: sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==}
engines: {node: '>=6.9.0'}
@@ -3492,6 +3895,17 @@ packages:
- supports-color
dev: true
+ /@jest/types/27.5.1:
+ resolution: {integrity: sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+ dependencies:
+ '@types/istanbul-lib-coverage': 2.0.4
+ '@types/istanbul-reports': 3.0.1
+ '@types/node': 17.0.32
+ '@types/yargs': 16.0.4
+ chalk: 4.1.2
+ dev: true
+
/@jridgewell/gen-mapping/0.1.1:
resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==}
engines: {node: '>=6.0.0'}
@@ -3771,6 +4185,51 @@ packages:
'@octokit/openapi-types': 11.2.0
dev: true
+ /@playwright/test/1.21.1:
+ resolution: {integrity: sha512-XkkTXl5gvEm4fciqeHvY5IuSS/OfQef0MO6RpBNmtm6EuYSdtUvP/sDVuWRKsDqyVdB3WSA0az7iSw79f2//JQ==}
+ engines: {node: '>=12'}
+ hasBin: true
+ dependencies:
+ '@babel/code-frame': 7.16.7
+ '@babel/core': 7.16.12
+ '@babel/helper-plugin-utils': 7.16.7
+ '@babel/plugin-proposal-class-properties': 7.16.7_@babel+core@7.16.12
+ '@babel/plugin-proposal-dynamic-import': 7.16.7_@babel+core@7.16.12
+ '@babel/plugin-proposal-export-namespace-from': 7.16.7_@babel+core@7.16.12
+ '@babel/plugin-proposal-logical-assignment-operators': 7.16.7_@babel+core@7.16.12
+ '@babel/plugin-proposal-nullish-coalescing-operator': 7.16.7_@babel+core@7.16.12
+ '@babel/plugin-proposal-numeric-separator': 7.16.7_@babel+core@7.16.12
+ '@babel/plugin-proposal-optional-chaining': 7.16.7_@babel+core@7.16.12
+ '@babel/plugin-proposal-private-methods': 7.16.11_@babel+core@7.16.12
+ '@babel/plugin-proposal-private-property-in-object': 7.16.7_@babel+core@7.16.12
+ '@babel/plugin-syntax-async-generators': 7.8.4_@babel+core@7.16.12
+ '@babel/plugin-syntax-json-strings': 7.8.3_@babel+core@7.16.12
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.16.12
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3_@babel+core@7.16.12
+ '@babel/plugin-transform-modules-commonjs': 7.16.8_@babel+core@7.16.12
+ '@babel/preset-typescript': 7.16.7_@babel+core@7.16.12
+ colors: 1.4.0
+ commander: 8.3.0
+ debug: 4.3.3
+ expect: 27.2.5
+ jest-matcher-utils: 27.2.5
+ json5: 2.2.1
+ mime: 3.0.0
+ minimatch: 3.0.4
+ ms: 2.1.3
+ open: 8.4.0
+ pirates: 4.0.4
+ playwright-core: 1.21.1
+ rimraf: 3.0.2
+ source-map-support: 0.4.18
+ stack-utils: 2.0.5
+ yazl: 2.5.1
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+ dev: true
+
/@polka/url/1.0.0-next.21:
resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==}
@@ -4054,6 +4513,22 @@ packages:
ci-info: 3.3.1
dev: true
+ /@types/istanbul-lib-coverage/2.0.4:
+ resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==}
+ dev: true
+
+ /@types/istanbul-lib-report/3.0.0:
+ resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==}
+ dependencies:
+ '@types/istanbul-lib-coverage': 2.0.4
+ dev: true
+
+ /@types/istanbul-reports/3.0.1:
+ resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==}
+ dependencies:
+ '@types/istanbul-lib-report': 3.0.0
+ dev: true
+
/@types/json-schema/7.0.11:
resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==}
dev: true
@@ -4216,6 +4691,10 @@ packages:
'@types/node': 17.0.32
dev: true
+ /@types/stack-utils/2.0.1:
+ resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==}
+ dev: true
+
/@types/tailwindcss/3.0.10:
resolution: {integrity: sha512-1UnZIHO0NOPyPlPFV0HuMjki2SHkvG9uBA1ZehWj/OQMSROk503nuNyyfmJSIT289yewxTbKoPG+KLxYRvfIIg==}
dev: true
@@ -4234,6 +4713,20 @@ packages:
resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==}
dev: true
+ /@types/yargs/16.0.4:
+ resolution: {integrity: sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==}
+ dependencies:
+ '@types/yargs-parser': 21.0.0
+ dev: true
+
+ /@types/yauzl/2.10.0:
+ resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==}
+ requiresBuild: true
+ dependencies:
+ '@types/node': 17.0.32
+ dev: true
+ optional: true
+
/@typescript-eslint/eslint-plugin/5.23.0_c63nfttrfhylg3zmgcxfslaw44:
resolution: {integrity: sha512-hEcSmG4XodSLiAp1uxv/OQSGsDY6QN3TcRU32gANp+19wGE1QQZLRS8/GV58VRUoXhnkuJ3ZxNQ3T6Z6zM59DA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -4739,6 +5232,11 @@ packages:
dependencies:
color-convert: 2.0.1
+ /ansi-styles/5.2.0:
+ resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
+ engines: {node: '>=10'}
+ dev: true
+
/ansi-styles/6.1.0:
resolution: {integrity: sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==}
engines: {node: '>=12'}
@@ -5036,7 +5534,6 @@ packages:
/buffer-crc32/0.2.13:
resolution: {integrity: sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=}
- dev: false
/buffer-from/1.1.2:
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
@@ -5328,6 +5825,11 @@ packages:
resolution: {integrity: sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==}
dev: true
+ /colors/1.4.0:
+ resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==}
+ engines: {node: '>=0.1.90'}
+ dev: true
+
/comma-separated-tokens/2.0.2:
resolution: {integrity: sha512-G5yTt3KQN4Yn7Yk4ed73hlZ1evrFKXeUW3086p3PRFNp7m2vIjI6Pg+Kgb+oyzhd9F2qdcoj67+y3SdxL5XWsg==}
@@ -5335,6 +5837,11 @@ packages:
resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
dev: true
+ /commander/8.3.0:
+ resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
+ engines: {node: '>= 12'}
+ dev: true
+
/common-ancestor-path/1.0.1:
resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==}
dev: false
@@ -5491,6 +5998,18 @@ packages:
ms: 2.1.3
dev: false
+ /debug/4.3.3:
+ resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.1.2
+ dev: true
+
/debug/4.3.3_supports-color@8.1.1:
resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==}
engines: {node: '>=6.0'}
@@ -5574,6 +6093,11 @@ packages:
dependencies:
clone: 1.0.4
+ /define-lazy-prop/2.0.0:
+ resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==}
+ engines: {node: '>=8'}
+ dev: true
+
/define-properties/1.1.4:
resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==}
engines: {node: '>= 0.4'}
@@ -5659,6 +6183,11 @@ packages:
/didyoumean/1.2.2:
resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
+ /diff-sequences/27.5.1:
+ resolution: {integrity: sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+ dev: true
+
/diff/5.0.0:
resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==}
engines: {node: '>=0.3.1'}
@@ -6023,6 +6552,11 @@ packages:
resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=}
engines: {node: '>=0.8.0'}
+ /escape-string-regexp/2.0.0:
+ resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==}
+ engines: {node: '>=8'}
+ dev: true
+
/escape-string-regexp/4.0.0:
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
engines: {node: '>=10'}
@@ -6265,6 +6799,18 @@ packages:
engines: {node: '>=6'}
dev: true
+ /expect/27.2.5:
+ resolution: {integrity: sha512-ZrO0w7bo8BgGoP/bLz+HDCI+0Hfei9jUSZs5yI/Wyn9VkG9w8oJ7rHRgYj+MA7yqqFa0IwHA3flJzZtYugShJA==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+ dependencies:
+ '@jest/types': 27.5.1
+ ansi-styles: 5.2.0
+ jest-get-type: 27.5.1
+ jest-matcher-utils: 27.2.5
+ jest-message-util: 27.5.1
+ jest-regex-util: 27.5.1
+ dev: true
+
/extend-shallow/2.0.1:
resolution: {integrity: sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=}
engines: {node: '>=0.10.0'}
@@ -6288,6 +6834,20 @@ packages:
tmp: 0.0.33
dev: true
+ /extract-zip/2.0.1:
+ resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==}
+ engines: {node: '>= 10.17.0'}
+ hasBin: true
+ dependencies:
+ debug: 4.3.4
+ get-stream: 5.2.0
+ yauzl: 2.10.0
+ optionalDependencies:
+ '@types/yauzl': 2.10.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/fast-deep-equal/3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
dev: true
@@ -6326,6 +6886,12 @@ packages:
dependencies:
reusify: 1.0.4
+ /fd-slicer/1.1.0:
+ resolution: {integrity: sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=}
+ dependencies:
+ pend: 1.2.0
+ dev: true
+
/fetch-blob/3.1.5:
resolution: {integrity: sha512-N64ZpKqoLejlrwkIAnb9iLSA3Vx/kjgzpcDhygcqJ2KKjky8nCgUQ+dzXtbrLaWZGZNmNfQTsiQ0weZ1svglHg==}
engines: {node: ^12.20 || >= 14.13}
@@ -6550,6 +7116,13 @@ packages:
resolution: {integrity: sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==}
dev: true
+ /get-stream/5.2.0:
+ resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==}
+ engines: {node: '>=8'}
+ dependencies:
+ pump: 3.0.0
+ dev: true
+
/get-stream/6.0.1:
resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
engines: {node: '>=10'}
@@ -6912,6 +7485,16 @@ packages:
- supports-color
dev: true
+ /https-proxy-agent/5.0.0:
+ resolution: {integrity: sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==}
+ engines: {node: '>= 6'}
+ dependencies:
+ agent-base: 6.0.2
+ debug: 4.3.4
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/https-proxy-agent/5.0.1:
resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
engines: {node: '>= 6'}
@@ -7321,6 +7904,51 @@ packages:
minimatch: 3.1.2
dev: true
+ /jest-diff/27.5.1:
+ resolution: {integrity: sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+ dependencies:
+ chalk: 4.1.2
+ diff-sequences: 27.5.1
+ jest-get-type: 27.5.1
+ pretty-format: 27.5.1
+ dev: true
+
+ /jest-get-type/27.5.1:
+ resolution: {integrity: sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+ dev: true
+
+ /jest-matcher-utils/27.2.5:
+ resolution: {integrity: sha512-qNR/kh6bz0Dyv3m68Ck2g1fLW5KlSOUNcFQh87VXHZwWc/gY6XwnKofx76Qytz3x5LDWT09/2+yXndTkaG4aWg==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+ dependencies:
+ chalk: 4.1.2
+ jest-diff: 27.5.1
+ jest-get-type: 27.5.1
+ pretty-format: 27.5.1
+ dev: true
+
+ /jest-message-util/27.5.1:
+ resolution: {integrity: sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+ dependencies:
+ '@babel/code-frame': 7.16.7
+ '@jest/types': 27.5.1
+ '@types/stack-utils': 2.0.1
+ chalk: 4.1.2
+ graceful-fs: 4.2.10
+ micromatch: 4.0.5
+ pretty-format: 27.5.1
+ slash: 3.0.0
+ stack-utils: 2.0.5
+ dev: true
+
+ /jest-regex-util/27.5.1:
+ resolution: {integrity: sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+ dev: true
+
/jest-worker/26.6.2:
resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==}
engines: {node: '>= 10.13.0'}
@@ -7335,6 +7963,10 @@ packages:
hasBin: true
dev: true
+ /jpeg-js/0.4.3:
+ resolution: {integrity: sha512-ru1HWKek8octvUHFHvE5ZzQ1yAsJmIvRdGWvSoKV52XKyuyYA437QWDttXT8eZXDSbuMpHlLzPDZUPd6idIz+Q==}
+ dev: true
+
/js-tokens/4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
@@ -8103,7 +8735,6 @@ packages:
resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==}
engines: {node: '>=10.0.0'}
hasBin: true
- dev: false
/mimic-fn/2.1.0:
resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
@@ -8122,6 +8753,12 @@ packages:
resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
engines: {node: '>=4'}
+ /minimatch/3.0.4:
+ resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==}
+ dependencies:
+ brace-expansion: 1.1.11
+ dev: true
+
/minimatch/3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
dependencies:
@@ -8517,6 +9154,15 @@ packages:
is-wsl: 2.2.0
dev: true
+ /open/8.4.0:
+ resolution: {integrity: sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==}
+ engines: {node: '>=12'}
+ dependencies:
+ define-lazy-prop: 2.0.0
+ is-docker: 2.2.1
+ is-wsl: 2.2.0
+ dev: true
+
/optionator/0.8.3:
resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==}
engines: {node: '>= 0.8.0'}
@@ -8767,6 +9413,10 @@ packages:
resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==}
dev: true
+ /pend/1.2.0:
+ resolution: {integrity: sha1-elfrVQpng/kRUzH89GY9XI4AelA=}
+ dev: true
+
/picocolors/1.0.0:
resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
@@ -8778,12 +9428,63 @@ packages:
resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
engines: {node: '>=6'}
+ /pirates/4.0.4:
+ resolution: {integrity: sha512-ZIrVPH+A52Dw84R0L3/VS9Op04PuQ2SEoJL6bkshmiTic/HldyW9Tf7oH5mhJZBK7NmDx27vSMrYEXPXclpDKw==}
+ engines: {node: '>= 6'}
+ dev: true
+
+ /pixelmatch/5.2.1:
+ resolution: {integrity: sha512-WjcAdYSnKrrdDdqTcVEY7aB7UhhwjYQKYhHiBXdJef0MOaQeYpUdQ+iVyBLa5YBKS8MPVPPMX7rpOByISLpeEQ==}
+ hasBin: true
+ dependencies:
+ pngjs: 4.0.1
+ dev: true
+
/pkg-dir/4.2.0:
resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
engines: {node: '>=8'}
dependencies:
find-up: 4.1.0
+ /playwright-core/1.21.1:
+ resolution: {integrity: sha512-SbK5dEsai9ZUKlxcinqegorBq4GnftXd4/GfW+pLsdQIQWrLCM/JNh6YQ2Rf2enVykXCejtoXW8L5vJXBBVSJQ==}
+ engines: {node: '>=12'}
+ hasBin: true
+ dependencies:
+ colors: 1.4.0
+ commander: 8.3.0
+ debug: 4.3.3
+ extract-zip: 2.0.1
+ https-proxy-agent: 5.0.0
+ jpeg-js: 0.4.3
+ mime: 3.0.0
+ pixelmatch: 5.2.1
+ pngjs: 6.0.0
+ progress: 2.0.3
+ proper-lockfile: 4.1.2
+ proxy-from-env: 1.1.0
+ rimraf: 3.0.2
+ socks-proxy-agent: 6.1.1
+ stack-utils: 2.0.5
+ ws: 8.4.2
+ yauzl: 2.10.0
+ yazl: 2.5.1
+ transitivePeerDependencies:
+ - bufferutil
+ - supports-color
+ - utf-8-validate
+ dev: true
+
+ /pngjs/4.0.1:
+ resolution: {integrity: sha512-rf5+2/ioHeQxR6IxuYNYGFytUyG3lma/WW1nsmjeHlWwtb2aByla6dkVc8pmJ9nplzkTA0q2xx7mMWrOTqT4Gg==}
+ engines: {node: '>=8.0.0'}
+ dev: true
+
+ /pngjs/6.0.0:
+ resolution: {integrity: sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg==}
+ engines: {node: '>=12.13.0'}
+ dev: true
+
/postcss-js/4.0.0_postcss@8.4.13:
resolution: {integrity: sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==}
engines: {node: ^12 || ^14 || >= 16}
@@ -8936,6 +9637,15 @@ packages:
engines: {node: ^14.13.1 || >=16.0.0}
dev: true
+ /pretty-format/27.5.1:
+ resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==}
+ engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
+ dependencies:
+ ansi-regex: 5.0.1
+ ansi-styles: 5.2.0
+ react-is: 17.0.2
+ dev: true
+
/pretty-format/3.8.0:
resolution: {integrity: sha1-v77VbV6ad2ZF9LH/eqGjrE+jw4U=}
dev: false
@@ -8947,6 +9657,11 @@ packages:
/process-nextick-args/2.0.1:
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
+ /progress/2.0.3:
+ resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==}
+ engines: {node: '>=0.4.0'}
+ dev: true
+
/prompts/2.4.2:
resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==}
engines: {node: '>= 6'}
@@ -8955,6 +9670,14 @@ packages:
sisteransi: 1.0.5
dev: false
+ /proper-lockfile/4.1.2:
+ resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==}
+ dependencies:
+ graceful-fs: 4.2.10
+ retry: 0.12.0
+ signal-exit: 3.0.7
+ dev: true
+
/property-information/6.1.1:
resolution: {integrity: sha512-hrzC564QIl0r0vy4l6MvRLhafmUowhO/O3KgVSoXIbbA2Sz4j8HGpJc6T2cubRVwMwpdiG/vKGfhT4IixmKN9w==}
@@ -9050,6 +9773,10 @@ packages:
react: 18.1.0
scheduler: 0.22.0
+ /react-is/17.0.2:
+ resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
+ dev: true
+
/react/17.0.2:
resolution: {integrity: sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==}
engines: {node: '>=0.10.0'}
@@ -9367,6 +10094,11 @@ packages:
unified: 10.1.2
dev: false
+ /retry/0.12.0:
+ resolution: {integrity: sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=}
+ engines: {node: '>= 4'}
+ dev: true
+
/reusify/1.0.4:
resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
@@ -9664,6 +10396,17 @@ packages:
- supports-color
dev: true
+ /socks-proxy-agent/6.1.1:
+ resolution: {integrity: sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==}
+ engines: {node: '>= 10'}
+ dependencies:
+ agent-base: 6.0.2
+ debug: 4.3.4
+ socks: 2.6.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/socks/2.6.2:
resolution: {integrity: sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==}
engines: {node: '>= 10.13.0', npm: '>= 3.0.0'}
@@ -9696,6 +10439,12 @@ packages:
resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
engines: {node: '>=0.10.0'}
+ /source-map-support/0.4.18:
+ resolution: {integrity: sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==}
+ dependencies:
+ source-map: 0.5.7
+ dev: true
+
/source-map-support/0.5.21:
resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
dependencies:
@@ -9703,6 +10452,11 @@ packages:
source-map: 0.6.1
dev: true
+ /source-map/0.5.7:
+ resolution: {integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
/source-map/0.6.1:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
@@ -9766,6 +10520,13 @@ packages:
resolution: {integrity: sha512-JWp4cG2eybkvKA1QUHGoNK6JDEYcOnSuhzNGjZuYUPqXreDl/VkkvP2sZW7Rmh+icuCttrR9ccb2WPIazyM/Cw==}
dev: true
+ /stack-utils/2.0.5:
+ resolution: {integrity: sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==}
+ engines: {node: '>=10'}
+ dependencies:
+ escape-string-regexp: 2.0.0
+ dev: true
+
/statuses/2.0.1:
resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
engines: {node: '>= 0.8'}
@@ -11149,6 +11910,19 @@ packages:
/wrappy/1.0.2:
resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=}
+ /ws/8.4.2:
+ resolution: {integrity: sha512-Kbk4Nxyq7/ZWqr/tarI9yIt/+iNNFOjBXEWgTb4ydaNHBNGgvf2QHbS9fdfsndfjFlFwEd4Al+mw83YkaD10ZA==}
+ engines: {node: '>=10.0.0'}
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: ^5.0.2
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+ dev: true
+
/xregexp/2.0.0:
resolution: {integrity: sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=}
dev: true
@@ -11238,6 +12012,19 @@ packages:
yargs-parser: 20.2.4
dev: true
+ /yauzl/2.10.0:
+ resolution: {integrity: sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=}
+ dependencies:
+ buffer-crc32: 0.2.13
+ fd-slicer: 1.1.0
+ dev: true
+
+ /yazl/2.5.1:
+ resolution: {integrity: sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==}
+ dependencies:
+ buffer-crc32: 0.2.13
+ dev: true
+
/yocto-queue/0.1.0:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}