From e5d43fc98bc2b4e4a3a9c7dc98ccc31626d4d90c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mateusz=20Burzy=C5=84ski?=
Date: Thu, 12 Dec 2024 00:44:25 +0100
Subject: [PATCH] Drop Enzyme's support (#3292)
* Drop Enzyme's support
* update lockfile
* update snapshots
* rename to setup-env
* update snapshots agains
---
.changeset/polite-items-cheat.md | 5 +
docs/testing.mdx | 19 +-
package.json | 3 -
packages/cache/__tests__/index.js | 2 +-
.../__snapshots__/selectivity.test.js.snap | 22 +-
packages/css/test/component-selector.test.js | 2 +-
packages/css/test/css.test.js | 2 +-
packages/css/test/cx.test.js | 2 +-
packages/css/test/inject-global.test.js | 2 +-
packages/css/test/instance/css.test.js | 2 +-
packages/css/test/keyframes.test.js | 10 +-
packages/css/test/label-pattern.test.js | 2 +-
packages/css/test/no-babel/index.test.js | 2 +-
packages/css/test/no-babel/warnings.test.js | 2 +-
packages/css/test/selectivity.test.js | 2 +-
.../__snapshots__/source-map.test.js.snap | 28 +-
.../css/test/source-map/source-map.test.js | 2 +-
packages/css/test/warnings.test.js | 2 +-
packages/jest/README.md | 12 +-
packages/jest/enzyme-serializer/package.json | 5 -
packages/jest/enzyme/package.json | 4 -
packages/jest/package.json | 22 +-
packages/jest/src/create-enzyme-serializer.js | 107 ---
packages/jest/src/create-serializer.js | 40 -
packages/jest/src/enzyme-serializer.d.ts | 1 -
packages/jest/src/enzyme-serializer.js | 2 -
packages/jest/src/enzyme-tickler.js | 24 -
packages/jest/src/enzyme.d.ts | 1 -
packages/jest/src/enzyme.js | 2 -
packages/jest/src/utils.js | 24 +-
.../__snapshots__/react-enzyme.test.js.snap | 814 ------------------
packages/jest/test/matchers.test.js | 71 +-
packages/jest/test/printer.test.js | 2 +-
packages/jest/test/prod.test.js | 2 +-
packages/jest/test/react-enzyme.test.js | 413 ---------
packages/jest/types/enzyme-serializer.d.ts | 9 -
packages/jest/types/enzyme.d.ts | 21 -
packages/primitives/package.json | 2 -
packages/react/__tests__/babel/css.js | 2 +-
packages/react/__tests__/class-names.js | 2 +-
packages/react/__tests__/css-cache-hash.js | 2 +-
packages/react/__tests__/css.js | 2 +-
packages/react/__tests__/custom-cache.js | 2 +-
packages/react/__tests__/keyframes.js | 2 +-
packages/react/__tests__/legacy-class-name.js | 2 +-
.../react/__tests__/theme-provider.dom.js | 2 +-
packages/react/__tests__/theme-provider.js | 2 +-
packages/react/__tests__/use-theme.js | 2 +-
packages/react/__tests__/warnings.js | 2 +-
packages/styled/__tests__/as-prop.js | 2 +-
packages/styled/__tests__/edge-cases.js | 2 +-
packages/styled/__tests__/styled.js | 2 +-
packages/styled/__tests__/warnings.js | 2 +-
packages/styled/test/babel-plugin.test.js | 2 +-
.../styled/test/component-selector.test.js | 2 +-
packages/styled/test/composition.test.js | 2 +-
packages/styled/test/index.test.js | 2 +-
packages/styled/test/prop-filtering.test.js | 2 +-
packages/styled/test/theming.dom.test.js | 2 +-
packages/styled/test/theming.test.js | 2 +-
scripts/test-utils/enzyme-env.js | 4 -
scripts/test-utils/legacy-env.js | 5 -
.../test-utils/{next-env.js => setup-env.js} | 0
yarn.lock | 355 +-------
64 files changed, 87 insertions(+), 2010 deletions(-)
create mode 100644 .changeset/polite-items-cheat.md
delete mode 100644 packages/jest/enzyme-serializer/package.json
delete mode 100644 packages/jest/enzyme/package.json
delete mode 100644 packages/jest/src/create-enzyme-serializer.js
delete mode 100644 packages/jest/src/enzyme-serializer.d.ts
delete mode 100644 packages/jest/src/enzyme-serializer.js
delete mode 100644 packages/jest/src/enzyme-tickler.js
delete mode 100644 packages/jest/src/enzyme.d.ts
delete mode 100644 packages/jest/src/enzyme.js
delete mode 100644 packages/jest/test/__snapshots__/react-enzyme.test.js.snap
delete mode 100644 packages/jest/test/react-enzyme.test.js
delete mode 100644 packages/jest/types/enzyme-serializer.d.ts
delete mode 100644 packages/jest/types/enzyme.d.ts
delete mode 100644 scripts/test-utils/enzyme-env.js
delete mode 100644 scripts/test-utils/legacy-env.js
rename scripts/test-utils/{next-env.js => setup-env.js} (100%)
diff --git a/.changeset/polite-items-cheat.md b/.changeset/polite-items-cheat.md
new file mode 100644
index 0000000000..71c4dd8b07
--- /dev/null
+++ b/.changeset/polite-items-cheat.md
@@ -0,0 +1,5 @@
+---
+'@emotion/jest': major
+---
+
+Drop support for Enzyme
diff --git a/docs/testing.mdx b/docs/testing.mdx
index c55211b5a9..cd4b92ad1a 100644
--- a/docs/testing.mdx
+++ b/docs/testing.mdx
@@ -32,26 +32,9 @@ import { createSerializer } from '@emotion/jest'
expect.addSnapshotSerializer(createSerializer())
```
-When using Enzyme, you can add `"@emotion/jest/enzyme-serializer"` instead.
-
-```json
-{
- "snapshotSerializers": ["@emotion/jest/enzyme-serializer"]
-}
-```
-
-Or use `expect.addSnapshotSerializer` to add it like this:
-
-```javascript
-// also adds the enzyme-to-json serializer
-import { createEnzymeSerializer } from '@emotion/jest/enzyme-serializer'
-
-expect.addSnapshotSerializer(createEnzymeSerializer())
-```
-
### Writing a test
-Writing a test with `@emotion/jest` involves creating a snapshot from the `react-test-renderer` or `enzyme-to-json`'s resulting JSON.
+Writing a test with `@emotion/jest` involves creating a snapshot from the `react-test-renderer`'s resulting JSON.
```jsx
import React from 'react'
diff --git a/package.json b/package.json
index ac464ba243..fba49a4d31 100644
--- a/package.json
+++ b/package.json
@@ -201,9 +201,6 @@
"bundlesize": "^0.13.2",
"codecov": "^2.3.1",
"cssjanus": "^1.2.0",
- "enzyme": "^3.11.0",
- "enzyme-adapter-react-16": "^1.15.5",
- "enzyme-to-json": "^3.6.1",
"eslint": "^8.57.0",
"eslint-config-prettier": "^9.1.0",
"eslint-config-react": "^1.1.7",
diff --git a/packages/cache/__tests__/index.js b/packages/cache/__tests__/index.js
index 931c506877..8987be5f1f 100644
--- a/packages/cache/__tests__/index.js
+++ b/packages/cache/__tests__/index.js
@@ -1,5 +1,5 @@
/** @jsx jsx */
-import 'test-utils/next-env'
+import 'test-utils/setup-env'
import { safeQuerySelector } from 'test-utils'
import createCache from '@emotion/cache'
import { jsx, CacheProvider } from '@emotion/react'
diff --git a/packages/css/test/__snapshots__/selectivity.test.js.snap b/packages/css/test/__snapshots__/selectivity.test.js.snap
index 5829b6e2d3..f80acc0ada 100644
--- a/packages/css/test/__snapshots__/selectivity.test.js.snap
+++ b/packages/css/test/__snapshots__/selectivity.test.js.snap
@@ -15,62 +15,62 @@ exports[`css complex nested media queries 1`] = `
`;
exports[`css complex nested styles 1`] = `
-".css-52fshx {
+".css-1fh6au3 {
color: blue;
}
-.css-52fshx:hover {
+.css-1fh6au3:hover {
color: green;
}
-.css-52fshx:hover .name {
+.css-1fh6au3:hover .name {
color: amethyst;
}
-.css-52fshx:hover .name:focus {
+.css-1fh6au3:hover .name:focus {
color: burlywood;
}
@media (min-width: 420px) {
- .css-52fshx:hover .name:focus {
+ .css-1fh6au3:hover .name:focus {
color: rebeccapurple;
}
}"
`;
exports[`css handles media query merges 1`] = `
-".css-19kb3dc {
+".css-uzr6q5 {
color: darkslateblue;
color: red;
color: purple;
}
@media (min-width: 420px) {
- .css-19kb3dc {
+ .css-uzr6q5 {
color: amethyst;
}
}
@media (min-width: 640px) {
- .css-19kb3dc {
+ .css-uzr6q5 {
color: rebeccapurple;
}
}
@media (min-width: 960px) {
- .css-19kb3dc {
+ .css-uzr6q5 {
color: burlywood;
}
}
@media (min-width: 640px) {
- .css-19kb3dc {
+ .css-uzr6q5 {
color: blue;
}
}
@media (min-width: 640px) {
- .css-19kb3dc {
+ .css-uzr6q5 {
color: aquamarine;
}
}"
diff --git a/packages/css/test/component-selector.test.js b/packages/css/test/component-selector.test.js
index ce5bbbada2..a7eab145e1 100644
--- a/packages/css/test/component-selector.test.js
+++ b/packages/css/test/component-selector.test.js
@@ -1,4 +1,4 @@
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import React from 'react'
import styled from '@emotion/styled'
import renderer from 'react-test-renderer'
diff --git a/packages/css/test/css.test.js b/packages/css/test/css.test.js
index 7b44dab7a8..df86dd5722 100644
--- a/packages/css/test/css.test.js
+++ b/packages/css/test/css.test.js
@@ -1,4 +1,4 @@
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import React from 'react'
import renderer from 'react-test-renderer'
import { css, flush, sheet } from '@emotion/css'
diff --git a/packages/css/test/cx.test.js b/packages/css/test/cx.test.js
index 30370209ed..a05b72002f 100644
--- a/packages/css/test/cx.test.js
+++ b/packages/css/test/cx.test.js
@@ -1,4 +1,4 @@
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import React from 'react'
import renderer from 'react-test-renderer'
import { css, cx } from '@emotion/css'
diff --git a/packages/css/test/inject-global.test.js b/packages/css/test/inject-global.test.js
index 44050042ee..e4139a0441 100644
--- a/packages/css/test/inject-global.test.js
+++ b/packages/css/test/inject-global.test.js
@@ -1,4 +1,4 @@
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import { injectGlobal, sheet, flush, css } from '@emotion/css'
describe('injectGlobal', () => {
diff --git a/packages/css/test/instance/css.test.js b/packages/css/test/instance/css.test.js
index 67a2a02ea4..cce9704274 100644
--- a/packages/css/test/instance/css.test.js
+++ b/packages/css/test/instance/css.test.js
@@ -1,4 +1,4 @@
-import 'test-utils/next-env'
+import 'test-utils/setup-env'
import React from 'react'
import renderer from 'react-test-renderer'
import { css as differentCss, flush, sheet } from './emotion-instance'
diff --git a/packages/css/test/keyframes.test.js b/packages/css/test/keyframes.test.js
index 961568ca82..863a6ab4ad 100644
--- a/packages/css/test/keyframes.test.js
+++ b/packages/css/test/keyframes.test.js
@@ -1,4 +1,4 @@
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import React from 'react'
import renderer from 'react-test-renderer'
import { keyframes, flush, css } from '@emotion/css'
@@ -13,17 +13,17 @@ describe('keyframes', () => {
animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000);
transform: translate3d(0,0,0);
}
-
+
40%, 43% {
animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
transform: translate3d(0, -30px, 0);
}
-
+
70% {
animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060);
transform: translate3d(0, -15px, 0);
}
-
+
90% {
transform: translate3d(0,-4px,0);
}
@@ -54,7 +54,7 @@ describe('keyframes', () => {
from {
transform: rotate(0deg);
}
-
+
to {
transform: rotate(${endingRotation});
}
diff --git a/packages/css/test/label-pattern.test.js b/packages/css/test/label-pattern.test.js
index 92bf2203ef..94e54bc440 100644
--- a/packages/css/test/label-pattern.test.js
+++ b/packages/css/test/label-pattern.test.js
@@ -1,4 +1,4 @@
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import React from 'react'
import styled from '@emotion/styled'
import renderer from 'react-test-renderer'
diff --git a/packages/css/test/no-babel/index.test.js b/packages/css/test/no-babel/index.test.js
index 0695aa3db0..da31f40cf4 100644
--- a/packages/css/test/no-babel/index.test.js
+++ b/packages/css/test/no-babel/index.test.js
@@ -1,4 +1,4 @@
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import React from 'react'
import renderer from 'react-test-renderer'
import { css } from '@emotion/css'
diff --git a/packages/css/test/no-babel/warnings.test.js b/packages/css/test/no-babel/warnings.test.js
index 533e08a4ee..04228426d0 100644
--- a/packages/css/test/no-babel/warnings.test.js
+++ b/packages/css/test/no-babel/warnings.test.js
@@ -1,4 +1,4 @@
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import { css } from '@emotion/css'
console.error = jest.fn()
diff --git a/packages/css/test/selectivity.test.js b/packages/css/test/selectivity.test.js
index c6782b88d2..54e245e51a 100644
--- a/packages/css/test/selectivity.test.js
+++ b/packages/css/test/selectivity.test.js
@@ -1,4 +1,4 @@
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import { css, sheet, flush } from '@emotion/css'
describe('css', () => {
diff --git a/packages/css/test/source-map/__snapshots__/source-map.test.js.snap b/packages/css/test/source-map/__snapshots__/source-map.test.js.snap
index 44163b7fba..8d9faa3c9c 100644
--- a/packages/css/test/source-map/__snapshots__/source-map.test.js.snap
+++ b/packages/css/test/source-map/__snapshots__/source-map.test.js.snap
@@ -2,30 +2,30 @@
exports[`css css without newline or semicolon 1`] = `
".css-6kh100-cls{color:hotpink;}
-/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3RG1CIiwiZmlsZSI6InNvdXJjZS1tYXAudGVzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAndGVzdC11dGlscy9sZWdhY3ktZW52J1xuaW1wb3J0IHsgY3NzLCBzaGVldCwgZmx1c2ggfSBmcm9tICdAZW1vdGlvbi9jc3MnXG5cbmNvbnN0IGNvbW1lbnRQYXR0ZXJuID0gL1xcL1xcKltcXHNcXFNdKj9cXCpcXC8vZ1xuY29uc3QgZ2V0U3R5bGVzID0gc2hlZXQgPT5cbiAgc2hlZXQudGFnc1xuICAgIC5tYXAodGFnID0+IHRhZy50ZXh0Q29udGVudCB8fCAnJylcbiAgICAuam9pbignJylcbiAgICAucmVwbGFjZShjb21tZW50UGF0dGVybiwgJ1xcbiQmXFxuJylcblxuZGVzY3JpYmUoJ2NzcycsICgpID0+IHtcbiAgYWZ0ZXJFYWNoKCgpID0+IGZsdXNoKCkpXG4gIHRlc3QoJ3NvdXJjZS1tYXAgbmVzdGVkIHN0eWxlcycsICgpID0+IHtcbiAgICBjb25zdCBtcSA9IFtcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA0MjBweCknLFxuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDY0MHB4KScsXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogOTYwcHgpJ1xuICAgIF1cblxuICAgIGNzcyh7XG4gICAgICBjb2xvcjogJ2JsdWUnLFxuICAgICAgJyY6aG92ZXInOiB7XG4gICAgICAgICcmIC5uYW1lJzoge1xuICAgICAgICAgIGNvbG9yOiAnYW1ldGh5c3QnLFxuICAgICAgICAgICcmOmZvY3VzJzoge1xuICAgICAgICAgICAgY29sb3I6ICdidXJseXdvb2QnLFxuICAgICAgICAgICAgW21xWzBdXToge1xuICAgICAgICAgICAgICBjb2xvcjogJ3JlYmVjY2FwdXJwbGUnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBjb2xvcjogJ2dyZWVuJ1xuICAgICAgfVxuICAgIH0pXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG5cbiAgdGVzdCgnc291cmNlLW1hcCBuZXN0ZWQgbWVkaWEgcXVlcmllcycsICgpID0+IHtcbiAgICBjc3NgXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICAgICAgaDEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS40cmVtO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA0MDBweCksIChtYXgtaGVpZ2h0OiA0MjBweCkge1xuICAgICAgICBoMSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjFyZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBgXG5cbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcbiAgdGVzdCgnY3NzIHdpdGhvdXQgbmV3bGluZSBvciBzZW1pY29sb24nLCAoKSA9PiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgY29uc3QgY2xzID0gY3NzYFxuICAgICAgY29sb3I6IGhvdHBpbms7XG4gICAgYFxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxufSlcbiJdfQ== */
+/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3RG1CIiwiZmlsZSI6InNvdXJjZS1tYXAudGVzdC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAndGVzdC11dGlscy9zZXR1cC1lbnYnXG5pbXBvcnQgeyBjc3MsIHNoZWV0LCBmbHVzaCB9IGZyb20gJ0BlbW90aW9uL2NzcydcblxuY29uc3QgY29tbWVudFBhdHRlcm4gPSAvXFwvXFwqW1xcc1xcU10qP1xcKlxcLy9nXG5jb25zdCBnZXRTdHlsZXMgPSBzaGVldCA9PlxuICBzaGVldC50YWdzXG4gICAgLm1hcCh0YWcgPT4gdGFnLnRleHRDb250ZW50IHx8ICcnKVxuICAgIC5qb2luKCcnKVxuICAgIC5yZXBsYWNlKGNvbW1lbnRQYXR0ZXJuLCAnXFxuJCZcXG4nKVxuXG5kZXNjcmliZSgnY3NzJywgKCkgPT4ge1xuICBhZnRlckVhY2goKCkgPT4gZmx1c2goKSlcbiAgdGVzdCgnc291cmNlLW1hcCBuZXN0ZWQgc3R5bGVzJywgKCkgPT4ge1xuICAgIGNvbnN0IG1xID0gW1xuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDQyMHB4KScsXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNjQwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA5NjBweCknXG4gICAgXVxuXG4gICAgY3NzKHtcbiAgICAgIGNvbG9yOiAnYmx1ZScsXG4gICAgICAnJjpob3Zlcic6IHtcbiAgICAgICAgJyYgLm5hbWUnOiB7XG4gICAgICAgICAgY29sb3I6ICdhbWV0aHlzdCcsXG4gICAgICAgICAgJyY6Zm9jdXMnOiB7XG4gICAgICAgICAgICBjb2xvcjogJ2J1cmx5d29vZCcsXG4gICAgICAgICAgICBbbXFbMF1dOiB7XG4gICAgICAgICAgICAgIGNvbG9yOiAncmViZWNjYXB1cnBsZSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNvbG9yOiAnZ3JlZW4nXG4gICAgICB9XG4gICAgfSlcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcblxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBtZWRpYSBxdWVyaWVzJywgKCkgPT4ge1xuICAgIGNzc2BcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICBoMSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQwMHB4KSwgKG1heC1oZWlnaHQ6IDQyMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGBcblxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuICB0ZXN0KCdjc3Mgd2l0aG91dCBuZXdsaW5lIG9yIHNlbWljb2xvbicsICgpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBjb25zdCBjbHMgPSBjc3NgXG4gICAgICBjb2xvcjogaG90cGluaztcbiAgICBgXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG59KVxuIl19 */
"
`;
exports[`css source-map nested media queries 1`] = `
".css-1vjvce5{}
-/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzQ08iLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL2xlZ2FjeS1lbnYnXG5pbXBvcnQgeyBjc3MsIHNoZWV0LCBmbHVzaCB9IGZyb20gJ0BlbW90aW9uL2NzcydcblxuY29uc3QgY29tbWVudFBhdHRlcm4gPSAvXFwvXFwqW1xcc1xcU10qP1xcKlxcLy9nXG5jb25zdCBnZXRTdHlsZXMgPSBzaGVldCA9PlxuICBzaGVldC50YWdzXG4gICAgLm1hcCh0YWcgPT4gdGFnLnRleHRDb250ZW50IHx8ICcnKVxuICAgIC5qb2luKCcnKVxuICAgIC5yZXBsYWNlKGNvbW1lbnRQYXR0ZXJuLCAnXFxuJCZcXG4nKVxuXG5kZXNjcmliZSgnY3NzJywgKCkgPT4ge1xuICBhZnRlckVhY2goKCkgPT4gZmx1c2goKSlcbiAgdGVzdCgnc291cmNlLW1hcCBuZXN0ZWQgc3R5bGVzJywgKCkgPT4ge1xuICAgIGNvbnN0IG1xID0gW1xuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDQyMHB4KScsXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNjQwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA5NjBweCknXG4gICAgXVxuXG4gICAgY3NzKHtcbiAgICAgIGNvbG9yOiAnYmx1ZScsXG4gICAgICAnJjpob3Zlcic6IHtcbiAgICAgICAgJyYgLm5hbWUnOiB7XG4gICAgICAgICAgY29sb3I6ICdhbWV0aHlzdCcsXG4gICAgICAgICAgJyY6Zm9jdXMnOiB7XG4gICAgICAgICAgICBjb2xvcjogJ2J1cmx5d29vZCcsXG4gICAgICAgICAgICBbbXFbMF1dOiB7XG4gICAgICAgICAgICAgIGNvbG9yOiAncmViZWNjYXB1cnBsZSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNvbG9yOiAnZ3JlZW4nXG4gICAgICB9XG4gICAgfSlcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcblxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBtZWRpYSBxdWVyaWVzJywgKCkgPT4ge1xuICAgIGNzc2BcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICBoMSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQwMHB4KSwgKG1heC1oZWlnaHQ6IDQyMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGBcblxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuICB0ZXN0KCdjc3Mgd2l0aG91dCBuZXdsaW5lIG9yIHNlbWljb2xvbicsICgpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBjb25zdCBjbHMgPSBjc3NgXG4gICAgICBjb2xvcjogaG90cGluaztcbiAgICBgXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG59KVxuIl19 */
+/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzQ08iLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL3NldHVwLWVudidcbmltcG9ydCB7IGNzcywgc2hlZXQsIGZsdXNoIH0gZnJvbSAnQGVtb3Rpb24vY3NzJ1xuXG5jb25zdCBjb21tZW50UGF0dGVybiA9IC9cXC9cXCpbXFxzXFxTXSo/XFwqXFwvL2dcbmNvbnN0IGdldFN0eWxlcyA9IHNoZWV0ID0+XG4gIHNoZWV0LnRhZ3NcbiAgICAubWFwKHRhZyA9PiB0YWcudGV4dENvbnRlbnQgfHwgJycpXG4gICAgLmpvaW4oJycpXG4gICAgLnJlcGxhY2UoY29tbWVudFBhdHRlcm4sICdcXG4kJlxcbicpXG5cbmRlc2NyaWJlKCdjc3MnLCAoKSA9PiB7XG4gIGFmdGVyRWFjaCgoKSA9PiBmbHVzaCgpKVxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBzdHlsZXMnLCAoKSA9PiB7XG4gICAgY29uc3QgbXEgPSBbXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNDIwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA2NDBweCknLFxuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDk2MHB4KSdcbiAgICBdXG5cbiAgICBjc3Moe1xuICAgICAgY29sb3I6ICdibHVlJyxcbiAgICAgICcmOmhvdmVyJzoge1xuICAgICAgICAnJiAubmFtZSc6IHtcbiAgICAgICAgICBjb2xvcjogJ2FtZXRoeXN0JyxcbiAgICAgICAgICAnJjpmb2N1cyc6IHtcbiAgICAgICAgICAgIGNvbG9yOiAnYnVybHl3b29kJyxcbiAgICAgICAgICAgIFttcVswXV06IHtcbiAgICAgICAgICAgICAgY29sb3I6ICdyZWJlY2NhcHVycGxlJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY29sb3I6ICdncmVlbidcbiAgICAgIH1cbiAgICB9KVxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuXG4gIHRlc3QoJ3NvdXJjZS1tYXAgbmVzdGVkIG1lZGlhIHF1ZXJpZXMnLCAoKSA9PiB7XG4gICAgY3NzYFxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDAwcHgpLCAobWF4LWhlaWdodDogNDIwcHgpIHtcbiAgICAgICAgaDEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYFxuXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG4gIHRlc3QoJ2NzcyB3aXRob3V0IG5ld2xpbmUgb3Igc2VtaWNvbG9uJywgKCkgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIGNvbnN0IGNscyA9IGNzc2BcbiAgICAgIGNvbG9yOiBob3RwaW5rO1xuICAgIGBcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcbn0pXG4iXX0= */
@media (max-width: 600px){.css-1vjvce5 h1{font-size:1.4rem;}}
-/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzQ08iLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL2xlZ2FjeS1lbnYnXG5pbXBvcnQgeyBjc3MsIHNoZWV0LCBmbHVzaCB9IGZyb20gJ0BlbW90aW9uL2NzcydcblxuY29uc3QgY29tbWVudFBhdHRlcm4gPSAvXFwvXFwqW1xcc1xcU10qP1xcKlxcLy9nXG5jb25zdCBnZXRTdHlsZXMgPSBzaGVldCA9PlxuICBzaGVldC50YWdzXG4gICAgLm1hcCh0YWcgPT4gdGFnLnRleHRDb250ZW50IHx8ICcnKVxuICAgIC5qb2luKCcnKVxuICAgIC5yZXBsYWNlKGNvbW1lbnRQYXR0ZXJuLCAnXFxuJCZcXG4nKVxuXG5kZXNjcmliZSgnY3NzJywgKCkgPT4ge1xuICBhZnRlckVhY2goKCkgPT4gZmx1c2goKSlcbiAgdGVzdCgnc291cmNlLW1hcCBuZXN0ZWQgc3R5bGVzJywgKCkgPT4ge1xuICAgIGNvbnN0IG1xID0gW1xuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDQyMHB4KScsXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNjQwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA5NjBweCknXG4gICAgXVxuXG4gICAgY3NzKHtcbiAgICAgIGNvbG9yOiAnYmx1ZScsXG4gICAgICAnJjpob3Zlcic6IHtcbiAgICAgICAgJyYgLm5hbWUnOiB7XG4gICAgICAgICAgY29sb3I6ICdhbWV0aHlzdCcsXG4gICAgICAgICAgJyY6Zm9jdXMnOiB7XG4gICAgICAgICAgICBjb2xvcjogJ2J1cmx5d29vZCcsXG4gICAgICAgICAgICBbbXFbMF1dOiB7XG4gICAgICAgICAgICAgIGNvbG9yOiAncmViZWNjYXB1cnBsZSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNvbG9yOiAnZ3JlZW4nXG4gICAgICB9XG4gICAgfSlcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcblxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBtZWRpYSBxdWVyaWVzJywgKCkgPT4ge1xuICAgIGNzc2BcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICBoMSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQwMHB4KSwgKG1heC1oZWlnaHQ6IDQyMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGBcblxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuICB0ZXN0KCdjc3Mgd2l0aG91dCBuZXdsaW5lIG9yIHNlbWljb2xvbicsICgpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBjb25zdCBjbHMgPSBjc3NgXG4gICAgICBjb2xvcjogaG90cGluaztcbiAgICBgXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG59KVxuIl19 */
+/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzQ08iLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL3NldHVwLWVudidcbmltcG9ydCB7IGNzcywgc2hlZXQsIGZsdXNoIH0gZnJvbSAnQGVtb3Rpb24vY3NzJ1xuXG5jb25zdCBjb21tZW50UGF0dGVybiA9IC9cXC9cXCpbXFxzXFxTXSo/XFwqXFwvL2dcbmNvbnN0IGdldFN0eWxlcyA9IHNoZWV0ID0+XG4gIHNoZWV0LnRhZ3NcbiAgICAubWFwKHRhZyA9PiB0YWcudGV4dENvbnRlbnQgfHwgJycpXG4gICAgLmpvaW4oJycpXG4gICAgLnJlcGxhY2UoY29tbWVudFBhdHRlcm4sICdcXG4kJlxcbicpXG5cbmRlc2NyaWJlKCdjc3MnLCAoKSA9PiB7XG4gIGFmdGVyRWFjaCgoKSA9PiBmbHVzaCgpKVxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBzdHlsZXMnLCAoKSA9PiB7XG4gICAgY29uc3QgbXEgPSBbXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNDIwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA2NDBweCknLFxuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDk2MHB4KSdcbiAgICBdXG5cbiAgICBjc3Moe1xuICAgICAgY29sb3I6ICdibHVlJyxcbiAgICAgICcmOmhvdmVyJzoge1xuICAgICAgICAnJiAubmFtZSc6IHtcbiAgICAgICAgICBjb2xvcjogJ2FtZXRoeXN0JyxcbiAgICAgICAgICAnJjpmb2N1cyc6IHtcbiAgICAgICAgICAgIGNvbG9yOiAnYnVybHl3b29kJyxcbiAgICAgICAgICAgIFttcVswXV06IHtcbiAgICAgICAgICAgICAgY29sb3I6ICdyZWJlY2NhcHVycGxlJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY29sb3I6ICdncmVlbidcbiAgICAgIH1cbiAgICB9KVxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuXG4gIHRlc3QoJ3NvdXJjZS1tYXAgbmVzdGVkIG1lZGlhIHF1ZXJpZXMnLCAoKSA9PiB7XG4gICAgY3NzYFxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDAwcHgpLCAobWF4LWhlaWdodDogNDIwcHgpIHtcbiAgICAgICAgaDEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYFxuXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG4gIHRlc3QoJ2NzcyB3aXRob3V0IG5ld2xpbmUgb3Igc2VtaWNvbG9uJywgKCkgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIGNvbnN0IGNscyA9IGNzc2BcbiAgICAgIGNvbG9yOiBob3RwaW5rO1xuICAgIGBcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcbn0pXG4iXX0= */
@media (max-width: 400px),(max-height: 420px){.css-1vjvce5 h1{font-size:1.1rem;}}
-/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzQ08iLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL2xlZ2FjeS1lbnYnXG5pbXBvcnQgeyBjc3MsIHNoZWV0LCBmbHVzaCB9IGZyb20gJ0BlbW90aW9uL2NzcydcblxuY29uc3QgY29tbWVudFBhdHRlcm4gPSAvXFwvXFwqW1xcc1xcU10qP1xcKlxcLy9nXG5jb25zdCBnZXRTdHlsZXMgPSBzaGVldCA9PlxuICBzaGVldC50YWdzXG4gICAgLm1hcCh0YWcgPT4gdGFnLnRleHRDb250ZW50IHx8ICcnKVxuICAgIC5qb2luKCcnKVxuICAgIC5yZXBsYWNlKGNvbW1lbnRQYXR0ZXJuLCAnXFxuJCZcXG4nKVxuXG5kZXNjcmliZSgnY3NzJywgKCkgPT4ge1xuICBhZnRlckVhY2goKCkgPT4gZmx1c2goKSlcbiAgdGVzdCgnc291cmNlLW1hcCBuZXN0ZWQgc3R5bGVzJywgKCkgPT4ge1xuICAgIGNvbnN0IG1xID0gW1xuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDQyMHB4KScsXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNjQwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA5NjBweCknXG4gICAgXVxuXG4gICAgY3NzKHtcbiAgICAgIGNvbG9yOiAnYmx1ZScsXG4gICAgICAnJjpob3Zlcic6IHtcbiAgICAgICAgJyYgLm5hbWUnOiB7XG4gICAgICAgICAgY29sb3I6ICdhbWV0aHlzdCcsXG4gICAgICAgICAgJyY6Zm9jdXMnOiB7XG4gICAgICAgICAgICBjb2xvcjogJ2J1cmx5d29vZCcsXG4gICAgICAgICAgICBbbXFbMF1dOiB7XG4gICAgICAgICAgICAgIGNvbG9yOiAncmViZWNjYXB1cnBsZSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNvbG9yOiAnZ3JlZW4nXG4gICAgICB9XG4gICAgfSlcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcblxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBtZWRpYSBxdWVyaWVzJywgKCkgPT4ge1xuICAgIGNzc2BcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICBoMSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQwMHB4KSwgKG1heC1oZWlnaHQ6IDQyMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGBcblxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuICB0ZXN0KCdjc3Mgd2l0aG91dCBuZXdsaW5lIG9yIHNlbWljb2xvbicsICgpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBjb25zdCBjbHMgPSBjc3NgXG4gICAgICBjb2xvcjogaG90cGluaztcbiAgICBgXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG59KVxuIl19 */
+/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzQ08iLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL3NldHVwLWVudidcbmltcG9ydCB7IGNzcywgc2hlZXQsIGZsdXNoIH0gZnJvbSAnQGVtb3Rpb24vY3NzJ1xuXG5jb25zdCBjb21tZW50UGF0dGVybiA9IC9cXC9cXCpbXFxzXFxTXSo/XFwqXFwvL2dcbmNvbnN0IGdldFN0eWxlcyA9IHNoZWV0ID0+XG4gIHNoZWV0LnRhZ3NcbiAgICAubWFwKHRhZyA9PiB0YWcudGV4dENvbnRlbnQgfHwgJycpXG4gICAgLmpvaW4oJycpXG4gICAgLnJlcGxhY2UoY29tbWVudFBhdHRlcm4sICdcXG4kJlxcbicpXG5cbmRlc2NyaWJlKCdjc3MnLCAoKSA9PiB7XG4gIGFmdGVyRWFjaCgoKSA9PiBmbHVzaCgpKVxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBzdHlsZXMnLCAoKSA9PiB7XG4gICAgY29uc3QgbXEgPSBbXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNDIwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA2NDBweCknLFxuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDk2MHB4KSdcbiAgICBdXG5cbiAgICBjc3Moe1xuICAgICAgY29sb3I6ICdibHVlJyxcbiAgICAgICcmOmhvdmVyJzoge1xuICAgICAgICAnJiAubmFtZSc6IHtcbiAgICAgICAgICBjb2xvcjogJ2FtZXRoeXN0JyxcbiAgICAgICAgICAnJjpmb2N1cyc6IHtcbiAgICAgICAgICAgIGNvbG9yOiAnYnVybHl3b29kJyxcbiAgICAgICAgICAgIFttcVswXV06IHtcbiAgICAgICAgICAgICAgY29sb3I6ICdyZWJlY2NhcHVycGxlJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY29sb3I6ICdncmVlbidcbiAgICAgIH1cbiAgICB9KVxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuXG4gIHRlc3QoJ3NvdXJjZS1tYXAgbmVzdGVkIG1lZGlhIHF1ZXJpZXMnLCAoKSA9PiB7XG4gICAgY3NzYFxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDAwcHgpLCAobWF4LWhlaWdodDogNDIwcHgpIHtcbiAgICAgICAgaDEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYFxuXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG4gIHRlc3QoJ2NzcyB3aXRob3V0IG5ld2xpbmUgb3Igc2VtaWNvbG9uJywgKCkgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIGNvbnN0IGNscyA9IGNzc2BcbiAgICAgIGNvbG9yOiBob3RwaW5rO1xuICAgIGBcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcbn0pXG4iXX0= */
"
`;
exports[`css source-map nested styles 1`] = `
-".css-3v0nwm{color:blue;}
-/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkkiLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL2xlZ2FjeS1lbnYnXG5pbXBvcnQgeyBjc3MsIHNoZWV0LCBmbHVzaCB9IGZyb20gJ0BlbW90aW9uL2NzcydcblxuY29uc3QgY29tbWVudFBhdHRlcm4gPSAvXFwvXFwqW1xcc1xcU10qP1xcKlxcLy9nXG5jb25zdCBnZXRTdHlsZXMgPSBzaGVldCA9PlxuICBzaGVldC50YWdzXG4gICAgLm1hcCh0YWcgPT4gdGFnLnRleHRDb250ZW50IHx8ICcnKVxuICAgIC5qb2luKCcnKVxuICAgIC5yZXBsYWNlKGNvbW1lbnRQYXR0ZXJuLCAnXFxuJCZcXG4nKVxuXG5kZXNjcmliZSgnY3NzJywgKCkgPT4ge1xuICBhZnRlckVhY2goKCkgPT4gZmx1c2goKSlcbiAgdGVzdCgnc291cmNlLW1hcCBuZXN0ZWQgc3R5bGVzJywgKCkgPT4ge1xuICAgIGNvbnN0IG1xID0gW1xuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDQyMHB4KScsXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNjQwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA5NjBweCknXG4gICAgXVxuXG4gICAgY3NzKHtcbiAgICAgIGNvbG9yOiAnYmx1ZScsXG4gICAgICAnJjpob3Zlcic6IHtcbiAgICAgICAgJyYgLm5hbWUnOiB7XG4gICAgICAgICAgY29sb3I6ICdhbWV0aHlzdCcsXG4gICAgICAgICAgJyY6Zm9jdXMnOiB7XG4gICAgICAgICAgICBjb2xvcjogJ2J1cmx5d29vZCcsXG4gICAgICAgICAgICBbbXFbMF1dOiB7XG4gICAgICAgICAgICAgIGNvbG9yOiAncmViZWNjYXB1cnBsZSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNvbG9yOiAnZ3JlZW4nXG4gICAgICB9XG4gICAgfSlcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcblxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBtZWRpYSBxdWVyaWVzJywgKCkgPT4ge1xuICAgIGNzc2BcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICBoMSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQwMHB4KSwgKG1heC1oZWlnaHQ6IDQyMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGBcblxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuICB0ZXN0KCdjc3Mgd2l0aG91dCBuZXdsaW5lIG9yIHNlbWljb2xvbicsICgpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBjb25zdCBjbHMgPSBjc3NgXG4gICAgICBjb2xvcjogaG90cGluaztcbiAgICBgXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG59KVxuIl19 */
-.css-3v0nwm:hover{color:green;}
-/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkkiLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL2xlZ2FjeS1lbnYnXG5pbXBvcnQgeyBjc3MsIHNoZWV0LCBmbHVzaCB9IGZyb20gJ0BlbW90aW9uL2NzcydcblxuY29uc3QgY29tbWVudFBhdHRlcm4gPSAvXFwvXFwqW1xcc1xcU10qP1xcKlxcLy9nXG5jb25zdCBnZXRTdHlsZXMgPSBzaGVldCA9PlxuICBzaGVldC50YWdzXG4gICAgLm1hcCh0YWcgPT4gdGFnLnRleHRDb250ZW50IHx8ICcnKVxuICAgIC5qb2luKCcnKVxuICAgIC5yZXBsYWNlKGNvbW1lbnRQYXR0ZXJuLCAnXFxuJCZcXG4nKVxuXG5kZXNjcmliZSgnY3NzJywgKCkgPT4ge1xuICBhZnRlckVhY2goKCkgPT4gZmx1c2goKSlcbiAgdGVzdCgnc291cmNlLW1hcCBuZXN0ZWQgc3R5bGVzJywgKCkgPT4ge1xuICAgIGNvbnN0IG1xID0gW1xuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDQyMHB4KScsXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNjQwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA5NjBweCknXG4gICAgXVxuXG4gICAgY3NzKHtcbiAgICAgIGNvbG9yOiAnYmx1ZScsXG4gICAgICAnJjpob3Zlcic6IHtcbiAgICAgICAgJyYgLm5hbWUnOiB7XG4gICAgICAgICAgY29sb3I6ICdhbWV0aHlzdCcsXG4gICAgICAgICAgJyY6Zm9jdXMnOiB7XG4gICAgICAgICAgICBjb2xvcjogJ2J1cmx5d29vZCcsXG4gICAgICAgICAgICBbbXFbMF1dOiB7XG4gICAgICAgICAgICAgIGNvbG9yOiAncmViZWNjYXB1cnBsZSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNvbG9yOiAnZ3JlZW4nXG4gICAgICB9XG4gICAgfSlcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcblxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBtZWRpYSBxdWVyaWVzJywgKCkgPT4ge1xuICAgIGNzc2BcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICBoMSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQwMHB4KSwgKG1heC1oZWlnaHQ6IDQyMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGBcblxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuICB0ZXN0KCdjc3Mgd2l0aG91dCBuZXdsaW5lIG9yIHNlbWljb2xvbicsICgpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBjb25zdCBjbHMgPSBjc3NgXG4gICAgICBjb2xvcjogaG90cGluaztcbiAgICBgXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG59KVxuIl19 */
-.css-3v0nwm:hover .name{color:amethyst;}
-/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkkiLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL2xlZ2FjeS1lbnYnXG5pbXBvcnQgeyBjc3MsIHNoZWV0LCBmbHVzaCB9IGZyb20gJ0BlbW90aW9uL2NzcydcblxuY29uc3QgY29tbWVudFBhdHRlcm4gPSAvXFwvXFwqW1xcc1xcU10qP1xcKlxcLy9nXG5jb25zdCBnZXRTdHlsZXMgPSBzaGVldCA9PlxuICBzaGVldC50YWdzXG4gICAgLm1hcCh0YWcgPT4gdGFnLnRleHRDb250ZW50IHx8ICcnKVxuICAgIC5qb2luKCcnKVxuICAgIC5yZXBsYWNlKGNvbW1lbnRQYXR0ZXJuLCAnXFxuJCZcXG4nKVxuXG5kZXNjcmliZSgnY3NzJywgKCkgPT4ge1xuICBhZnRlckVhY2goKCkgPT4gZmx1c2goKSlcbiAgdGVzdCgnc291cmNlLW1hcCBuZXN0ZWQgc3R5bGVzJywgKCkgPT4ge1xuICAgIGNvbnN0IG1xID0gW1xuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDQyMHB4KScsXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNjQwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA5NjBweCknXG4gICAgXVxuXG4gICAgY3NzKHtcbiAgICAgIGNvbG9yOiAnYmx1ZScsXG4gICAgICAnJjpob3Zlcic6IHtcbiAgICAgICAgJyYgLm5hbWUnOiB7XG4gICAgICAgICAgY29sb3I6ICdhbWV0aHlzdCcsXG4gICAgICAgICAgJyY6Zm9jdXMnOiB7XG4gICAgICAgICAgICBjb2xvcjogJ2J1cmx5d29vZCcsXG4gICAgICAgICAgICBbbXFbMF1dOiB7XG4gICAgICAgICAgICAgIGNvbG9yOiAncmViZWNjYXB1cnBsZSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNvbG9yOiAnZ3JlZW4nXG4gICAgICB9XG4gICAgfSlcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcblxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBtZWRpYSBxdWVyaWVzJywgKCkgPT4ge1xuICAgIGNzc2BcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICBoMSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQwMHB4KSwgKG1heC1oZWlnaHQ6IDQyMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGBcblxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuICB0ZXN0KCdjc3Mgd2l0aG91dCBuZXdsaW5lIG9yIHNlbWljb2xvbicsICgpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBjb25zdCBjbHMgPSBjc3NgXG4gICAgICBjb2xvcjogaG90cGluaztcbiAgICBgXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG59KVxuIl19 */
-.css-3v0nwm:hover .name:focus{color:burlywood;}
-/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkkiLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL2xlZ2FjeS1lbnYnXG5pbXBvcnQgeyBjc3MsIHNoZWV0LCBmbHVzaCB9IGZyb20gJ0BlbW90aW9uL2NzcydcblxuY29uc3QgY29tbWVudFBhdHRlcm4gPSAvXFwvXFwqW1xcc1xcU10qP1xcKlxcLy9nXG5jb25zdCBnZXRTdHlsZXMgPSBzaGVldCA9PlxuICBzaGVldC50YWdzXG4gICAgLm1hcCh0YWcgPT4gdGFnLnRleHRDb250ZW50IHx8ICcnKVxuICAgIC5qb2luKCcnKVxuICAgIC5yZXBsYWNlKGNvbW1lbnRQYXR0ZXJuLCAnXFxuJCZcXG4nKVxuXG5kZXNjcmliZSgnY3NzJywgKCkgPT4ge1xuICBhZnRlckVhY2goKCkgPT4gZmx1c2goKSlcbiAgdGVzdCgnc291cmNlLW1hcCBuZXN0ZWQgc3R5bGVzJywgKCkgPT4ge1xuICAgIGNvbnN0IG1xID0gW1xuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDQyMHB4KScsXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNjQwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA5NjBweCknXG4gICAgXVxuXG4gICAgY3NzKHtcbiAgICAgIGNvbG9yOiAnYmx1ZScsXG4gICAgICAnJjpob3Zlcic6IHtcbiAgICAgICAgJyYgLm5hbWUnOiB7XG4gICAgICAgICAgY29sb3I6ICdhbWV0aHlzdCcsXG4gICAgICAgICAgJyY6Zm9jdXMnOiB7XG4gICAgICAgICAgICBjb2xvcjogJ2J1cmx5d29vZCcsXG4gICAgICAgICAgICBbbXFbMF1dOiB7XG4gICAgICAgICAgICAgIGNvbG9yOiAncmViZWNjYXB1cnBsZSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNvbG9yOiAnZ3JlZW4nXG4gICAgICB9XG4gICAgfSlcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcblxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBtZWRpYSBxdWVyaWVzJywgKCkgPT4ge1xuICAgIGNzc2BcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICBoMSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQwMHB4KSwgKG1heC1oZWlnaHQ6IDQyMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGBcblxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuICB0ZXN0KCdjc3Mgd2l0aG91dCBuZXdsaW5lIG9yIHNlbWljb2xvbicsICgpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBjb25zdCBjbHMgPSBjc3NgXG4gICAgICBjb2xvcjogaG90cGluaztcbiAgICBgXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG59KVxuIl19 */
-@media(min-width: 420px){.css-3v0nwm:hover .name:focus{color:rebeccapurple;}}
-/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkkiLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL2xlZ2FjeS1lbnYnXG5pbXBvcnQgeyBjc3MsIHNoZWV0LCBmbHVzaCB9IGZyb20gJ0BlbW90aW9uL2NzcydcblxuY29uc3QgY29tbWVudFBhdHRlcm4gPSAvXFwvXFwqW1xcc1xcU10qP1xcKlxcLy9nXG5jb25zdCBnZXRTdHlsZXMgPSBzaGVldCA9PlxuICBzaGVldC50YWdzXG4gICAgLm1hcCh0YWcgPT4gdGFnLnRleHRDb250ZW50IHx8ICcnKVxuICAgIC5qb2luKCcnKVxuICAgIC5yZXBsYWNlKGNvbW1lbnRQYXR0ZXJuLCAnXFxuJCZcXG4nKVxuXG5kZXNjcmliZSgnY3NzJywgKCkgPT4ge1xuICBhZnRlckVhY2goKCkgPT4gZmx1c2goKSlcbiAgdGVzdCgnc291cmNlLW1hcCBuZXN0ZWQgc3R5bGVzJywgKCkgPT4ge1xuICAgIGNvbnN0IG1xID0gW1xuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDQyMHB4KScsXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNjQwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA5NjBweCknXG4gICAgXVxuXG4gICAgY3NzKHtcbiAgICAgIGNvbG9yOiAnYmx1ZScsXG4gICAgICAnJjpob3Zlcic6IHtcbiAgICAgICAgJyYgLm5hbWUnOiB7XG4gICAgICAgICAgY29sb3I6ICdhbWV0aHlzdCcsXG4gICAgICAgICAgJyY6Zm9jdXMnOiB7XG4gICAgICAgICAgICBjb2xvcjogJ2J1cmx5d29vZCcsXG4gICAgICAgICAgICBbbXFbMF1dOiB7XG4gICAgICAgICAgICAgIGNvbG9yOiAncmViZWNjYXB1cnBsZSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGNvbG9yOiAnZ3JlZW4nXG4gICAgICB9XG4gICAgfSlcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcblxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBtZWRpYSBxdWVyaWVzJywgKCkgPT4ge1xuICAgIGNzc2BcbiAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA2MDBweCkge1xuICAgICAgICBoMSB7XG4gICAgICAgICAgZm9udC1zaXplOiAxLjRyZW07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDQwMHB4KSwgKG1heC1oZWlnaHQ6IDQyMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuMXJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGBcblxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuICB0ZXN0KCdjc3Mgd2l0aG91dCBuZXdsaW5lIG9yIHNlbWljb2xvbicsICgpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBjb25zdCBjbHMgPSBjc3NgXG4gICAgICBjb2xvcjogaG90cGluaztcbiAgICBgXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG59KVxuIl19 */
+".css-7lm4iz{color:blue;}
+/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkkiLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL3NldHVwLWVudidcbmltcG9ydCB7IGNzcywgc2hlZXQsIGZsdXNoIH0gZnJvbSAnQGVtb3Rpb24vY3NzJ1xuXG5jb25zdCBjb21tZW50UGF0dGVybiA9IC9cXC9cXCpbXFxzXFxTXSo/XFwqXFwvL2dcbmNvbnN0IGdldFN0eWxlcyA9IHNoZWV0ID0+XG4gIHNoZWV0LnRhZ3NcbiAgICAubWFwKHRhZyA9PiB0YWcudGV4dENvbnRlbnQgfHwgJycpXG4gICAgLmpvaW4oJycpXG4gICAgLnJlcGxhY2UoY29tbWVudFBhdHRlcm4sICdcXG4kJlxcbicpXG5cbmRlc2NyaWJlKCdjc3MnLCAoKSA9PiB7XG4gIGFmdGVyRWFjaCgoKSA9PiBmbHVzaCgpKVxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBzdHlsZXMnLCAoKSA9PiB7XG4gICAgY29uc3QgbXEgPSBbXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNDIwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA2NDBweCknLFxuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDk2MHB4KSdcbiAgICBdXG5cbiAgICBjc3Moe1xuICAgICAgY29sb3I6ICdibHVlJyxcbiAgICAgICcmOmhvdmVyJzoge1xuICAgICAgICAnJiAubmFtZSc6IHtcbiAgICAgICAgICBjb2xvcjogJ2FtZXRoeXN0JyxcbiAgICAgICAgICAnJjpmb2N1cyc6IHtcbiAgICAgICAgICAgIGNvbG9yOiAnYnVybHl3b29kJyxcbiAgICAgICAgICAgIFttcVswXV06IHtcbiAgICAgICAgICAgICAgY29sb3I6ICdyZWJlY2NhcHVycGxlJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY29sb3I6ICdncmVlbidcbiAgICAgIH1cbiAgICB9KVxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuXG4gIHRlc3QoJ3NvdXJjZS1tYXAgbmVzdGVkIG1lZGlhIHF1ZXJpZXMnLCAoKSA9PiB7XG4gICAgY3NzYFxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDAwcHgpLCAobWF4LWhlaWdodDogNDIwcHgpIHtcbiAgICAgICAgaDEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYFxuXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG4gIHRlc3QoJ2NzcyB3aXRob3V0IG5ld2xpbmUgb3Igc2VtaWNvbG9uJywgKCkgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIGNvbnN0IGNscyA9IGNzc2BcbiAgICAgIGNvbG9yOiBob3RwaW5rO1xuICAgIGBcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcbn0pXG4iXX0= */
+.css-7lm4iz:hover{color:green;}
+/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkkiLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL3NldHVwLWVudidcbmltcG9ydCB7IGNzcywgc2hlZXQsIGZsdXNoIH0gZnJvbSAnQGVtb3Rpb24vY3NzJ1xuXG5jb25zdCBjb21tZW50UGF0dGVybiA9IC9cXC9cXCpbXFxzXFxTXSo/XFwqXFwvL2dcbmNvbnN0IGdldFN0eWxlcyA9IHNoZWV0ID0+XG4gIHNoZWV0LnRhZ3NcbiAgICAubWFwKHRhZyA9PiB0YWcudGV4dENvbnRlbnQgfHwgJycpXG4gICAgLmpvaW4oJycpXG4gICAgLnJlcGxhY2UoY29tbWVudFBhdHRlcm4sICdcXG4kJlxcbicpXG5cbmRlc2NyaWJlKCdjc3MnLCAoKSA9PiB7XG4gIGFmdGVyRWFjaCgoKSA9PiBmbHVzaCgpKVxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBzdHlsZXMnLCAoKSA9PiB7XG4gICAgY29uc3QgbXEgPSBbXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNDIwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA2NDBweCknLFxuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDk2MHB4KSdcbiAgICBdXG5cbiAgICBjc3Moe1xuICAgICAgY29sb3I6ICdibHVlJyxcbiAgICAgICcmOmhvdmVyJzoge1xuICAgICAgICAnJiAubmFtZSc6IHtcbiAgICAgICAgICBjb2xvcjogJ2FtZXRoeXN0JyxcbiAgICAgICAgICAnJjpmb2N1cyc6IHtcbiAgICAgICAgICAgIGNvbG9yOiAnYnVybHl3b29kJyxcbiAgICAgICAgICAgIFttcVswXV06IHtcbiAgICAgICAgICAgICAgY29sb3I6ICdyZWJlY2NhcHVycGxlJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY29sb3I6ICdncmVlbidcbiAgICAgIH1cbiAgICB9KVxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuXG4gIHRlc3QoJ3NvdXJjZS1tYXAgbmVzdGVkIG1lZGlhIHF1ZXJpZXMnLCAoKSA9PiB7XG4gICAgY3NzYFxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDAwcHgpLCAobWF4LWhlaWdodDogNDIwcHgpIHtcbiAgICAgICAgaDEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYFxuXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG4gIHRlc3QoJ2NzcyB3aXRob3V0IG5ld2xpbmUgb3Igc2VtaWNvbG9uJywgKCkgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIGNvbnN0IGNscyA9IGNzc2BcbiAgICAgIGNvbG9yOiBob3RwaW5rO1xuICAgIGBcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcbn0pXG4iXX0= */
+.css-7lm4iz:hover .name{color:amethyst;}
+/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkkiLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL3NldHVwLWVudidcbmltcG9ydCB7IGNzcywgc2hlZXQsIGZsdXNoIH0gZnJvbSAnQGVtb3Rpb24vY3NzJ1xuXG5jb25zdCBjb21tZW50UGF0dGVybiA9IC9cXC9cXCpbXFxzXFxTXSo/XFwqXFwvL2dcbmNvbnN0IGdldFN0eWxlcyA9IHNoZWV0ID0+XG4gIHNoZWV0LnRhZ3NcbiAgICAubWFwKHRhZyA9PiB0YWcudGV4dENvbnRlbnQgfHwgJycpXG4gICAgLmpvaW4oJycpXG4gICAgLnJlcGxhY2UoY29tbWVudFBhdHRlcm4sICdcXG4kJlxcbicpXG5cbmRlc2NyaWJlKCdjc3MnLCAoKSA9PiB7XG4gIGFmdGVyRWFjaCgoKSA9PiBmbHVzaCgpKVxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBzdHlsZXMnLCAoKSA9PiB7XG4gICAgY29uc3QgbXEgPSBbXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNDIwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA2NDBweCknLFxuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDk2MHB4KSdcbiAgICBdXG5cbiAgICBjc3Moe1xuICAgICAgY29sb3I6ICdibHVlJyxcbiAgICAgICcmOmhvdmVyJzoge1xuICAgICAgICAnJiAubmFtZSc6IHtcbiAgICAgICAgICBjb2xvcjogJ2FtZXRoeXN0JyxcbiAgICAgICAgICAnJjpmb2N1cyc6IHtcbiAgICAgICAgICAgIGNvbG9yOiAnYnVybHl3b29kJyxcbiAgICAgICAgICAgIFttcVswXV06IHtcbiAgICAgICAgICAgICAgY29sb3I6ICdyZWJlY2NhcHVycGxlJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY29sb3I6ICdncmVlbidcbiAgICAgIH1cbiAgICB9KVxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuXG4gIHRlc3QoJ3NvdXJjZS1tYXAgbmVzdGVkIG1lZGlhIHF1ZXJpZXMnLCAoKSA9PiB7XG4gICAgY3NzYFxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDAwcHgpLCAobWF4LWhlaWdodDogNDIwcHgpIHtcbiAgICAgICAgaDEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYFxuXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG4gIHRlc3QoJ2NzcyB3aXRob3V0IG5ld2xpbmUgb3Igc2VtaWNvbG9uJywgKCkgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIGNvbnN0IGNscyA9IGNzc2BcbiAgICAgIGNvbG9yOiBob3RwaW5rO1xuICAgIGBcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcbn0pXG4iXX0= */
+.css-7lm4iz:hover .name:focus{color:burlywood;}
+/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkkiLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL3NldHVwLWVudidcbmltcG9ydCB7IGNzcywgc2hlZXQsIGZsdXNoIH0gZnJvbSAnQGVtb3Rpb24vY3NzJ1xuXG5jb25zdCBjb21tZW50UGF0dGVybiA9IC9cXC9cXCpbXFxzXFxTXSo/XFwqXFwvL2dcbmNvbnN0IGdldFN0eWxlcyA9IHNoZWV0ID0+XG4gIHNoZWV0LnRhZ3NcbiAgICAubWFwKHRhZyA9PiB0YWcudGV4dENvbnRlbnQgfHwgJycpXG4gICAgLmpvaW4oJycpXG4gICAgLnJlcGxhY2UoY29tbWVudFBhdHRlcm4sICdcXG4kJlxcbicpXG5cbmRlc2NyaWJlKCdjc3MnLCAoKSA9PiB7XG4gIGFmdGVyRWFjaCgoKSA9PiBmbHVzaCgpKVxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBzdHlsZXMnLCAoKSA9PiB7XG4gICAgY29uc3QgbXEgPSBbXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNDIwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA2NDBweCknLFxuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDk2MHB4KSdcbiAgICBdXG5cbiAgICBjc3Moe1xuICAgICAgY29sb3I6ICdibHVlJyxcbiAgICAgICcmOmhvdmVyJzoge1xuICAgICAgICAnJiAubmFtZSc6IHtcbiAgICAgICAgICBjb2xvcjogJ2FtZXRoeXN0JyxcbiAgICAgICAgICAnJjpmb2N1cyc6IHtcbiAgICAgICAgICAgIGNvbG9yOiAnYnVybHl3b29kJyxcbiAgICAgICAgICAgIFttcVswXV06IHtcbiAgICAgICAgICAgICAgY29sb3I6ICdyZWJlY2NhcHVycGxlJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY29sb3I6ICdncmVlbidcbiAgICAgIH1cbiAgICB9KVxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuXG4gIHRlc3QoJ3NvdXJjZS1tYXAgbmVzdGVkIG1lZGlhIHF1ZXJpZXMnLCAoKSA9PiB7XG4gICAgY3NzYFxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDAwcHgpLCAobWF4LWhlaWdodDogNDIwcHgpIHtcbiAgICAgICAgaDEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYFxuXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG4gIHRlc3QoJ2NzcyB3aXRob3V0IG5ld2xpbmUgb3Igc2VtaWNvbG9uJywgKCkgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIGNvbnN0IGNscyA9IGNzc2BcbiAgICAgIGNvbG9yOiBob3RwaW5rO1xuICAgIGBcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcbn0pXG4iXX0= */
+@media(min-width: 420px){.css-7lm4iz:hover .name:focus{color:rebeccapurple;}}
+/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZS1tYXAudGVzdC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkkiLCJmaWxlIjoic291cmNlLW1hcC50ZXN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICd0ZXN0LXV0aWxzL3NldHVwLWVudidcbmltcG9ydCB7IGNzcywgc2hlZXQsIGZsdXNoIH0gZnJvbSAnQGVtb3Rpb24vY3NzJ1xuXG5jb25zdCBjb21tZW50UGF0dGVybiA9IC9cXC9cXCpbXFxzXFxTXSo/XFwqXFwvL2dcbmNvbnN0IGdldFN0eWxlcyA9IHNoZWV0ID0+XG4gIHNoZWV0LnRhZ3NcbiAgICAubWFwKHRhZyA9PiB0YWcudGV4dENvbnRlbnQgfHwgJycpXG4gICAgLmpvaW4oJycpXG4gICAgLnJlcGxhY2UoY29tbWVudFBhdHRlcm4sICdcXG4kJlxcbicpXG5cbmRlc2NyaWJlKCdjc3MnLCAoKSA9PiB7XG4gIGFmdGVyRWFjaCgoKSA9PiBmbHVzaCgpKVxuICB0ZXN0KCdzb3VyY2UtbWFwIG5lc3RlZCBzdHlsZXMnLCAoKSA9PiB7XG4gICAgY29uc3QgbXEgPSBbXG4gICAgICAnQG1lZGlhKG1pbi13aWR0aDogNDIwcHgpJyxcbiAgICAgICdAbWVkaWEobWluLXdpZHRoOiA2NDBweCknLFxuICAgICAgJ0BtZWRpYShtaW4td2lkdGg6IDk2MHB4KSdcbiAgICBdXG5cbiAgICBjc3Moe1xuICAgICAgY29sb3I6ICdibHVlJyxcbiAgICAgICcmOmhvdmVyJzoge1xuICAgICAgICAnJiAubmFtZSc6IHtcbiAgICAgICAgICBjb2xvcjogJ2FtZXRoeXN0JyxcbiAgICAgICAgICAnJjpmb2N1cyc6IHtcbiAgICAgICAgICAgIGNvbG9yOiAnYnVybHl3b29kJyxcbiAgICAgICAgICAgIFttcVswXV06IHtcbiAgICAgICAgICAgICAgY29sb3I6ICdyZWJlY2NhcHVycGxlJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY29sb3I6ICdncmVlbidcbiAgICAgIH1cbiAgICB9KVxuICAgIGV4cGVjdChnZXRTdHlsZXMoc2hlZXQpKS50b01hdGNoU25hcHNob3QoKVxuICB9KVxuXG4gIHRlc3QoJ3NvdXJjZS1tYXAgbmVzdGVkIG1lZGlhIHF1ZXJpZXMnLCAoKSA9PiB7XG4gICAgY3NzYFxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgICAgIGgxIHtcbiAgICAgICAgICBmb250LXNpemU6IDEuNHJlbTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDAwcHgpLCAobWF4LWhlaWdodDogNDIwcHgpIHtcbiAgICAgICAgaDEge1xuICAgICAgICAgIGZvbnQtc2l6ZTogMS4xcmVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYFxuXG4gICAgZXhwZWN0KGdldFN0eWxlcyhzaGVldCkpLnRvTWF0Y2hTbmFwc2hvdCgpXG4gIH0pXG4gIHRlc3QoJ2NzcyB3aXRob3V0IG5ld2xpbmUgb3Igc2VtaWNvbG9uJywgKCkgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIGNvbnN0IGNscyA9IGNzc2BcbiAgICAgIGNvbG9yOiBob3RwaW5rO1xuICAgIGBcbiAgICBleHBlY3QoZ2V0U3R5bGVzKHNoZWV0KSkudG9NYXRjaFNuYXBzaG90KClcbiAgfSlcbn0pXG4iXX0= */
"
`;
diff --git a/packages/css/test/source-map/source-map.test.js b/packages/css/test/source-map/source-map.test.js
index 62dce7ab1c..b40f988476 100644
--- a/packages/css/test/source-map/source-map.test.js
+++ b/packages/css/test/source-map/source-map.test.js
@@ -1,4 +1,4 @@
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import { css, sheet, flush } from '@emotion/css'
const commentPattern = /\/\*[\s\S]*?\*\//g
diff --git a/packages/css/test/warnings.test.js b/packages/css/test/warnings.test.js
index a692085a7b..5769bdd238 100644
--- a/packages/css/test/warnings.test.js
+++ b/packages/css/test/warnings.test.js
@@ -1,4 +1,4 @@
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import { css } from '@emotion/css'
import createCss from '@emotion/css/create-instance'
import * as React from 'react'
diff --git a/packages/jest/README.md b/packages/jest/README.md
index 7f90e5d220..b7c28917e8 100644
--- a/packages/jest/README.md
+++ b/packages/jest/README.md
@@ -22,17 +22,7 @@ module.exports = {
}
```
-To assist with shallow rendering, there's a custom enzyme snapshot serializer, that includes the `enzyme-to-json` serializer, which is available by importing `@emotion/jest/enzyme-serializer`. If you already have the `enzyme-to-json` serializer added to `snapshotSerializers`, it will need to be removed to allow this to work.
-
-```js
-// jest.config.js
-module.exports = {
- // ... other config
- snapshotSerializers: ['@emotion/jest/enzyme-serializer']
-}
-```
-
-Or you can add the serializer via the `expect.addSnapshotSerializer` method like so: (the example below is with react-test-renderer but @emotion/jest also works with enzyme and react-testing-library)
+Or you can add the serializer via the `expect.addSnapshotSerializer` method like so:
```jsx
import React from 'react'
diff --git a/packages/jest/enzyme-serializer/package.json b/packages/jest/enzyme-serializer/package.json
deleted file mode 100644
index 5afdff682d..0000000000
--- a/packages/jest/enzyme-serializer/package.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "main": "dist/emotion-jest-enzyme-serializer.cjs.js",
- "module": "dist/emotion-jest-enzyme-serializer.esm.js",
- "types": "../types/enzyme-serializer"
-}
diff --git a/packages/jest/enzyme/package.json b/packages/jest/enzyme/package.json
deleted file mode 100644
index b5e67c5a8f..0000000000
--- a/packages/jest/enzyme/package.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "main": "dist/emotion-jest-enzyme.cjs.js",
- "module": "dist/emotion-jest-enzyme.esm.js"
-}
diff --git a/packages/jest/package.json b/packages/jest/package.json
index f1d7b4b345..f017a682c8 100644
--- a/packages/jest/package.json
+++ b/packages/jest/package.json
@@ -14,15 +14,6 @@
"import": "./dist/emotion-jest.cjs.mjs",
"default": "./dist/emotion-jest.cjs.js"
},
- "./enzyme": {
- "types": {
- "import": "./enzyme/dist/emotion-jest-enzyme.cjs.mjs",
- "default": "./enzyme/dist/emotion-jest-enzyme.cjs.js"
- },
- "module": "./enzyme/dist/emotion-jest-enzyme.esm.js",
- "import": "./enzyme/dist/emotion-jest-enzyme.cjs.mjs",
- "default": "./enzyme/dist/emotion-jest-enzyme.cjs.js"
- },
"./serializer": {
"types": {
"import": "./serializer/dist/emotion-jest-serializer.cjs.mjs",
@@ -32,15 +23,6 @@
"import": "./serializer/dist/emotion-jest-serializer.cjs.mjs",
"default": "./serializer/dist/emotion-jest-serializer.cjs.js"
},
- "./enzyme-serializer": {
- "types": {
- "import": "./enzyme-serializer/dist/emotion-jest-enzyme-serializer.cjs.mjs",
- "default": "./enzyme-serializer/dist/emotion-jest-enzyme-serializer.cjs.js"
- },
- "module": "./enzyme-serializer/dist/emotion-jest-enzyme-serializer.esm.js",
- "import": "./enzyme-serializer/dist/emotion-jest-enzyme-serializer.cjs.mjs",
- "default": "./enzyme-serializer/dist/emotion-jest-enzyme-serializer.cjs.js"
- },
"./package.json": "./package.json"
},
"types": "types/index.d.ts",
@@ -104,9 +86,7 @@
"preconstruct": {
"entrypoints": [
"./index.js",
- "./serializer.js",
- "./enzyme.js",
- "./enzyme-serializer.js"
+ "./serializer.js"
]
}
}
diff --git a/packages/jest/src/create-enzyme-serializer.js b/packages/jest/src/create-enzyme-serializer.js
deleted file mode 100644
index 2178056037..0000000000
--- a/packages/jest/src/create-enzyme-serializer.js
+++ /dev/null
@@ -1,107 +0,0 @@
-/* import type { Options } from './create-serializer' */
-import { createSerializer as createEmotionSerializer } from './create-serializer'
-import * as enzymeTickler from './enzyme-tickler'
-import { createSerializer as createEnzymeToJsonSerializer } from 'enzyme-to-json'
-import {
- isEmotionCssPropElementType,
- isStyledElementType,
- unwrapFromPotentialFragment
-} from './utils'
-
-const enzymeToJsonSerializer = createEnzymeToJsonSerializer({
- map: json => {
- if (typeof json.node.type === 'string') {
- return json
- }
- const isRealStyled = json.node.type.__emotion_real === json.node.type
- if (isRealStyled) {
- return {
- ...json,
- children: json.children.slice(-1)
- }
- }
- return json
- }
-})
-
-// this is a hack, leveraging the internal/implementation knowledge about the enzyme's ShallowWrapper
-// there is no sane way to get this information otherwise though
-const getUnrenderedElement = shallowWrapper => {
- const symbols = Object.getOwnPropertySymbols(shallowWrapper)
- const elementValues = symbols.filter(sym => {
- const val = shallowWrapper[sym]
- return !!val && val.$$typeof === Symbol.for('react.element')
- })
- if (elementValues.length !== 1) {
- throw new Error(
- "Could not get unrendered element reliably from the Enzyme's ShallowWrapper. This is a bug in Emotion - please open an issue with repro steps included:\n" +
- 'https://github.com/emotion-js/emotion/issues/new?assignees=&labels=bug%2C+needs+triage&template=--bug-report.md&title='
- )
- }
- return shallowWrapper[elementValues[0]]
-}
-
-const wrappedEnzymeSerializer = {
- test: enzymeToJsonSerializer.test,
- print: (enzymeWrapper, printer) => {
- const isShallow = !!enzymeWrapper.dive
-
- if (isShallow && enzymeWrapper.root() === enzymeWrapper) {
- const unrendered = getUnrenderedElement(enzymeWrapper)
- if (
- isEmotionCssPropElementType(unrendered) ||
- isStyledElementType(unrendered)
- ) {
- return enzymeToJsonSerializer.print(
- unwrapFromPotentialFragment(enzymeWrapper),
- printer
- )
- }
- }
-
- return enzymeToJsonSerializer.print(enzymeWrapper, printer)
- }
-}
-
-export function createEnzymeSerializer({
- classNameReplacer,
- DOMElements = true,
- includeStyles = true
-} /* : Options */ = {}) {
- const emotionSerializer = createEmotionSerializer({
- classNameReplacer,
- DOMElements,
- includeStyles
- })
- return {
- test(node) {
- return wrappedEnzymeSerializer.test(node) || emotionSerializer.test(node)
- },
- serialize(
- node,
- config,
- indentation /*: string */,
- depth /*: number */,
- refs,
- printer /*: Function */
- ) {
- if (wrappedEnzymeSerializer.test(node)) {
- const tickled = enzymeTickler.tickle(node)
- return wrappedEnzymeSerializer.print(
- tickled,
- // https://github.com/facebook/jest/blob/470ef2d29c576d6a10de344ec25d5a855f02d519/packages/pretty-format/src/index.ts#L281
- valChild => printer(valChild, config, indentation, depth, refs)
- )
- }
- // we know here it had to match against emotionSerializer
- return emotionSerializer.serialize(
- node,
- config,
- indentation,
- depth,
- refs,
- printer
- )
- }
- }
-}
diff --git a/packages/jest/src/create-serializer.js b/packages/jest/src/create-serializer.js
index 533b7ecf0c..d5b67ea2c4 100644
--- a/packages/jest/src/create-serializer.js
+++ b/packages/jest/src/create-serializer.js
@@ -1,11 +1,9 @@
import prettify from '@emotion/css-prettifier'
import { replaceClassNames } from './replace-class-names'
-import * as enzymeTickler from './enzyme-tickler'
import {
getClassNamesFromNodes,
isReactElement,
isEmotionCssPropElementType,
- isEmotionCssPropEnzymeElement,
isDOMElement,
getStylesFromClassNames,
getStyleElements,
@@ -102,49 +100,11 @@ function getLabelsFromClassName(keys, className) {
}).filter(Boolean)
}
-function isShallowEnzymeElement(
- element /*: any */,
- keys /*: string[] */,
- labels /*: string[] */
-) {
- const childClassNames = (element.children || [])
- .map(({ props = {} }) => props.className || '')
- .filter(Boolean)
-
- return !childClassNames.some(className => {
- const childLabels = getLabelsFromClassName(keys, className)
- return childLabels.every(childLabel => labels.includes(childLabel))
- })
-}
-
const createConvertEmotionElements =
(keys /*: string[]*/) => (node /*: any*/) => {
if (isPrimitive(node)) {
return node
}
- if (isEmotionCssPropEnzymeElement(node)) {
- const className = enzymeTickler.getTickledClassName(node.props.css)
- const labels = getLabelsFromClassName(keys, className || '')
-
- if (isShallowEnzymeElement(node, keys, labels)) {
- const emotionType = node.props.__EMOTION_TYPE_PLEASE_DO_NOT_USE__
- // emotionType will be a string for DOM elements
- const type =
- typeof emotionType === 'string'
- ? emotionType
- : emotionType.displayName || emotionType.name || 'Component'
- return {
- ...node,
- props: filterEmotionProps({
- ...node.props,
- className
- }),
- type
- }
- } else {
- return node.children[node.children.length - 1]
- }
- }
if (isEmotionCssPropElementType(node)) {
return {
...node,
diff --git a/packages/jest/src/enzyme-serializer.d.ts b/packages/jest/src/enzyme-serializer.d.ts
deleted file mode 100644
index 7e9e849dfa..0000000000
--- a/packages/jest/src/enzyme-serializer.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '../types/enzyme-serializer'
diff --git a/packages/jest/src/enzyme-serializer.js b/packages/jest/src/enzyme-serializer.js
deleted file mode 100644
index 2b73962978..0000000000
--- a/packages/jest/src/enzyme-serializer.js
+++ /dev/null
@@ -1,2 +0,0 @@
-import { createEnzymeSerializer } from './create-enzyme-serializer'
-export const { test, serialize } = createEnzymeSerializer()
diff --git a/packages/jest/src/enzyme-tickler.js b/packages/jest/src/enzyme-tickler.js
deleted file mode 100644
index 45b52f72cd..0000000000
--- a/packages/jest/src/enzyme-tickler.js
+++ /dev/null
@@ -1,24 +0,0 @@
-import { unwrapFromPotentialFragment } from './utils'
-
-const tickledCssProps = new WeakMap()
-
-export const getTickledClassName = cssProp => tickledCssProps.get(cssProp)
-
-export const tickle = wrapper => {
- const isShallow = typeof wrapper.dive === 'function'
-
- wrapper.find('EmotionCssPropInternal').forEach(el => {
- const cssProp = el.props().css
-
- if (!cssProp) {
- return
- }
-
- const rendered = (isShallow ? el.dive() : el.children()).last()
- tickledCssProps.set(
- cssProp,
- unwrapFromPotentialFragment(rendered).props().className
- )
- })
- return wrapper
-}
diff --git a/packages/jest/src/enzyme.d.ts b/packages/jest/src/enzyme.d.ts
deleted file mode 100644
index fdcaa2b47c..0000000000
--- a/packages/jest/src/enzyme.d.ts
+++ /dev/null
@@ -1 +0,0 @@
-export * from '../types/enzyme'
diff --git a/packages/jest/src/enzyme.js b/packages/jest/src/enzyme.js
deleted file mode 100644
index 72fdee8bd1..0000000000
--- a/packages/jest/src/enzyme.js
+++ /dev/null
@@ -1,2 +0,0 @@
-export { createEnzymeSerializer } from './create-enzyme-serializer'
-export { matchers } from './matchers'
diff --git a/packages/jest/src/utils.js b/packages/jest/src/utils.js
index acf2f871de..6f07d60756 100644
--- a/packages/jest/src/utils.js
+++ b/packages/jest/src/utils.js
@@ -94,16 +94,6 @@ export function unwrapFromPotentialFragment(node) {
return node
}
-function getClassNamesFromEnzyme(selectors, nodeWithPotentialFragment) {
- const node = unwrapFromPotentialFragment(nodeWithPotentialFragment)
- // We need to dive in to get the className if we have a styled element from a shallow render
- const isShallow = shouldDive(node)
- const nodeWithClassName = findNodeWithClassName(
- isShallow ? node.dive() : node
- )
- return getClassNames(selectors, getClassNameProp(nodeWithClassName))
-}
-
function getClassNamesFromCheerio(selectors, node) {
const classes = node.attr('class')
return getClassNames(selectors, classes)
@@ -135,12 +125,6 @@ export function isStyledElementType(val /* : any */) /* : boolean */ {
return type.__emotion_real === type
}
-export function isEmotionCssPropEnzymeElement(val /* : any */) /*: boolean */ {
- return (
- val.$$typeof === Symbol.for('react.test.json') &&
- val.type === 'EmotionCssPropInternal'
- )
-}
const domElementPattern = /^((HTML|SVG)\w*)?Element$/
export function isDOMElement(val) /*: boolean */ {
@@ -152,19 +136,13 @@ export function isDOMElement(val) /*: boolean */ {
)
}
-function isEnzymeElement(val) /*: boolean */ {
- return typeof val.findWhere === 'function'
-}
-
function isCheerioElement(val) /*: boolean */ {
return val.cheerio === '[cheerio object]'
}
export function getClassNamesFromNodes(nodes /*: Array */) {
return nodes.reduce((selectors, node) => {
- if (isEnzymeElement(node)) {
- return getClassNamesFromEnzyme(selectors, node)
- } else if (isCheerioElement(node)) {
+ if (isCheerioElement(node)) {
return getClassNamesFromCheerio(selectors, node)
} else if (isReactElement(node)) {
return getClassNamesFromTestRenderer(selectors, node)
diff --git a/packages/jest/test/__snapshots__/react-enzyme.test.js.snap b/packages/jest/test/__snapshots__/react-enzyme.test.js.snap
deleted file mode 100644
index 12f2a6d524..0000000000
--- a/packages/jest/test/__snapshots__/react-enzyme.test.js.snap
+++ /dev/null
@@ -1,814 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`enzyme mount basic 1`] = `
-.emotion-0 {
- background-color: red;
-}
-
-
-
- hello
-
-
-`;
-
-exports[`enzyme mount conditional styles 1`] = `
-.emotion-0 {
- background-color: black;
-}
-
-
-
- Test content
-
-
-`;
-
-exports[`enzyme mount displayName 1`] = `
-.emotion-0 {
- color: hotpink;
-}
-
-
-
- Hello
-
-
-`;
-
-exports[`enzyme mount empty styled 1`] = `
-
-
- Hello
-
-
-`;
-
-exports[`enzyme mount fragment with multiple css prop elements 1`] = `
-.emotion-0 {
- background-color: hotpink;
-}
-
-.emotion-1 {
- background-color: green;
-}
-
-.emotion-2 {
- background-color: blue;
-}
-
-
-
-
-
-
-`;
-
-exports[`enzyme mount multiple selected components 1`] = `
-[
- .emotion-0 {
- background-color: hotpink;
-}
-
-
- hello
- ,
- .emotion-0 {
- background-color: blue;
-}
-
-
- beautiful
- ,
- .emotion-0 {
- background-color: green;
-}
-
-
- world
- ,
-]
-`;
-
-exports[`enzyme mount nested 1`] = `
-.emotion-0 {
- background-color: red;
-}
-
-
-`;
-
-exports[`enzyme mount nested displayName 1`] = `
-.emotion-0 {
- color: hotpink;
-}
-
-
-`;
-
-exports[`enzyme mount nested styled 1`] = `
-.emotion-0 {
- background-color: red;
-}
-
-
-`;
-
-exports[`enzyme mount nested styled with css prop 1`] = `
-.emotion-0 {
- background-color: black;
-}
-
-.emotion-1 {
- color: red;
- background-color: black;
-}
-
-
-
-
-`;
-
-exports[`enzyme mount parent and child using css property 1`] = `
-.emotion-0 {
- background-color: black;
-}
-
-.emotion-1 {
- color: white;
-}
-
-
-`;
-
-exports[`enzyme mount styled 1`] = `
-.emotion-0 {
- background-color: red;
-}
-
-
-
- Hello
-
-
-`;
-
-exports[`enzyme mount styled with css prop 1`] = `
-.emotion-0 {
- background-color: black;
-}
-
-.emotion-1 {
- color: red;
- background-color: black;
-}
-
-
-
- iChenLei
-
-
-`;
-
-exports[`enzyme mount theming 1`] = `
-.emotion-0 {
- color: red;
- border: 2px solid red;
-}
-
-.emotion-2 {
- color: blue;
- border: 2px solid blue;
-}
-
-
-
-
- Normal
-
-
-
-
-
- Themed
-
-
-
-
-`;
-
-exports[`enzyme mount unmatched selector 1`] = `null`;
-
-exports[`enzyme mount with array of styles as css prop 1`] = `
-.emotion-0 {
- background-color: black;
- color: white;
-}
-
-
- Test content
-
-`;
-
-exports[`enzyme mount with array of styles in a composite inner child 1`] = `
-.emotion-0 {
- background-color: black;
- color: white;
-}
-
-
-
-
- Test content
-
-
-
-`;
-
-exports[`enzyme mount with prop containing css element 1`] = `
-.emotion-0 {
- background-color: blue;
-}
-
-
- Hello
-
- }
->
-
-
-`;
-
-exports[`enzyme mount with prop containing css element not at the top level 1`] = `
-.emotion-0 {
- background-color: blue;
-}
-
-
-
- Hello
-
- }
- >
-
-
-
-`;
-
-exports[`enzyme mount with prop containing css element with other label 1`] = `
-.emotion-0 {
- background-color: blue;
-}
-
-
- Hello
-
- }
->
-
- }
- >
-
- Hello
-
-
- World!
-
-
-`;
-
-exports[`enzyme mount with prop containing css element with other props 1`] = `
-.emotion-0 {
- background-color: blue;
-}
-
-
- Hello
-
- }
->
-
-
-`;
-
-exports[`enzyme mount with prop containing regular element 1`] = `
-
- Foo
-
- }
->
-
- Foo
-
-
-`;
-
-exports[`enzyme mount with styles on top level 1`] = `
-.emotion-0 {
- background-color: red;
-}
-
-
-
- Hello
-
-
-`;
-
-exports[`enzyme shallow basic 1`] = `
-.emotion-0 {
- background-color: red;
-}
-
-
- hello
-
-`;
-
-exports[`enzyme shallow conditional styles 1`] = `
-.emotion-0 {
- background-color: black;
-}
-
-
-
- Test content
-
-
-`;
-
-exports[`enzyme shallow displayName 1`] = `
-.emotion-0 {
- color: hotpink;
-}
-
-
-`;
-
-exports[`enzyme shallow empty styled 1`] = `
-
- Hello
-
-`;
-
-exports[`enzyme shallow fragment with multiple css prop elements 1`] = `
-.emotion-0 {
- background-color: hotpink;
-}
-
-.emotion-1 {
- background-color: green;
-}
-
-.emotion-2 {
- background-color: blue;
-}
-
-
-
-
-
-
-`;
-
-exports[`enzyme shallow multiple selected components 1`] = `
-[
- .emotion-0 {
- background-color: hotpink;
-}
-
-
- hello
- ,
- .emotion-0 {
- background-color: blue;
-}
-
-
- beautiful
- ,
- .emotion-0 {
- background-color: green;
-}
-
-
- world
- ,
-]
-`;
-
-exports[`enzyme shallow nested 1`] = `
-
-
- hello
-
-
-`;
-
-exports[`enzyme shallow nested displayName 1`] = `
-.emotion-0 {
- color: hotpink;
-}
-
-
-
-
-`;
-
-exports[`enzyme shallow nested styled 1`] = `
-
-
- Hello
-
-
-`;
-
-exports[`enzyme shallow nested styled with css prop 1`] = `
-.emotion-0 {
- background-color: black;
-}
-
-
-
- iChenLei
-
-
-`;
-
-exports[`enzyme shallow parent and child using css property 1`] = `
-.emotion-0 {
- background-color: black;
-}
-
-.emotion-1 {
- color: white;
-}
-
-
-`;
-
-exports[`enzyme shallow styled 1`] = `
-.emotion-0 {
- background-color: red;
-}
-
-
- Hello
-
-`;
-
-exports[`enzyme shallow styled with css prop 1`] = `
-.emotion-0 {
- background-color: black;
-}
-
-
- iChenLei
-
-`;
-
-exports[`enzyme shallow theming 1`] = `
-
-
- Normal
-
-
-
- Themed
-
-
-
-`;
-
-exports[`enzyme shallow unmatched selector 1`] = `null`;
-
-exports[`enzyme shallow with array of styles as css prop 1`] = `
-.emotion-0 {
- background-color: black;
- color: white;
-}
-
-
- Test content
-
-`;
-
-exports[`enzyme shallow with array of styles in a composite inner child 1`] = `
-.emotion-0 {
- background-color: black;
- color: white;
-}
-
-
-
- Test content
-
-
-`;
-
-exports[`enzyme shallow with prop containing css element 1`] = `
-.emotion-0 {
- background-color: blue;
-}
-
-
-`;
-
-exports[`enzyme shallow with prop containing css element not at the top level 1`] = `
-
-
- Hello
-
- }
- >
- World!
-
-
-`;
-
-exports[`enzyme shallow with prop containing css element with other label 1`] = `
-.emotion-0 {
- background-color: blue;
-}
-
-
- }
->
-
- Hello
-
-
- World!
-
-`;
-
-exports[`enzyme shallow with prop containing css element with other props 1`] = `
-.emotion-0 {
- background-color: blue;
-}
-
-
-`;
-
-exports[`enzyme shallow with prop containing regular element 1`] = `
-
- Foo
-
-`;
-
-exports[`enzyme shallow with styles on top level 1`] = `
-.emotion-0 {
- background-color: red;
-}
-
-
- Hello
-
-`;
-
-exports[`enzyme with prop containing css element in fragment 1`] = `
-.emotion-0 {
- background-color: blue;
-}
-
-
- x
- [
- "",
-
- y
-
,
- ]
-
-`;
diff --git a/packages/jest/test/matchers.test.js b/packages/jest/test/matchers.test.js
index 13ac3c955f..6eb9a75adc 100644
--- a/packages/jest/test/matchers.test.js
+++ b/packages/jest/test/matchers.test.js
@@ -1,8 +1,7 @@
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import renderer from 'react-test-renderer'
/** @jsx jsx */
import * as React from 'react'
-import * as enzyme from 'enzyme'
import { css, jsx } from '@emotion/react'
import styled from '@emotion/styled'
import { matchers } from '@emotion/jest'
@@ -322,72 +321,4 @@ describe('toHaveStyleRule', () => {
`"\`toHaveStyleRule\` expects to receive a single element but it received an array."`
)
})
- ;(isReact16 ? describe : describe.skip)('enzyme', () => {
- test('supports enzyme `mount` method', () => {
- const Component = () => (
-
-
-
- )
-
- const wrapper = enzyme.mount()
- expect(wrapper).toHaveStyleRule('color', 'red')
- expect(wrapper).not.toHaveStyleRule('width', '100%')
- const svgNode = wrapper.find('svg')
- expect(svgNode).toHaveStyleRule('width', '100%')
- expect(svgNode).not.toHaveStyleRule('color', 'red')
- })
-
- test('supports enzyme `render` method', () => {
- const Component = () => (
-
-
-
- )
-
- const wrapper = enzyme.render()
- expect(wrapper).toHaveStyleRule('color', 'red')
- expect(wrapper).not.toHaveStyleRule('width', '100%')
- const svgNode = wrapper.find('svg')
- expect(svgNode).toHaveStyleRule('width', '100%')
- expect(svgNode).not.toHaveStyleRule('color', 'red')
- })
-
- test('supports enzyme `shallow` method', () => {
- const Component = () => (
-
-
-
- )
-
- const wrapper = enzyme.shallow()
- expect(wrapper).toHaveStyleRule('color', 'red')
- expect(wrapper).not.toHaveStyleRule('width', '100%')
- const svgNode = wrapper.childAt(0)
- expect(svgNode).toHaveStyleRule('width', '100%')
- expect(svgNode).not.toHaveStyleRule('color', 'red')
- })
-
- test('supports styled components', () => {
- const Div = styled('div')`
- color: red;
- `
- const Svg = styled('svg')`
- width: 100%;
- `
- ;['mount', 'render', 'shallow'].forEach(method => {
- const wrapper = enzyme[method](
-
-
-
- )
- expect(wrapper).toHaveStyleRule('color', 'red')
- expect(wrapper).not.toHaveStyleRule('width', '100%')
- const svgNode =
- method === 'render' ? wrapper.find('svg') : wrapper.find(Svg)
- expect(svgNode).toHaveStyleRule('width', '100%')
- expect(svgNode).not.toHaveStyleRule('color', 'red')
- })
- })
- })
})
diff --git a/packages/jest/test/printer.test.js b/packages/jest/test/printer.test.js
index bf59ae6fb1..2c22b2c186 100644
--- a/packages/jest/test/printer.test.js
+++ b/packages/jest/test/printer.test.js
@@ -1,5 +1,5 @@
import React from 'react'
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import renderer from 'react-test-renderer'
import prettyFormat from 'pretty-format'
/** @jsx jsx */
diff --git a/packages/jest/test/prod.test.js b/packages/jest/test/prod.test.js
index 4e594e3c93..0e691ec7a0 100644
--- a/packages/jest/test/prod.test.js
+++ b/packages/jest/test/prod.test.js
@@ -1,4 +1,4 @@
-import 'test-utils/next-env'
+import 'test-utils/setup-env'
import renderer from 'react-test-renderer'
/** @jsx jsx */
import * as React from 'react'
diff --git a/packages/jest/test/react-enzyme.test.js b/packages/jest/test/react-enzyme.test.js
deleted file mode 100644
index 487da8d954..0000000000
--- a/packages/jest/test/react-enzyme.test.js
+++ /dev/null
@@ -1,413 +0,0 @@
-import 'test-utils/enzyme-env'
-/** @jsx jsx */
-
-import jestInCase from 'jest-in-case'
-import * as enzyme from 'enzyme'
-import {
- __unsafe_useEmotionCache,
- css,
- jsx,
- ThemeProvider,
- EmotionCache
-} from '@emotion/react'
-import styled from '@emotion/styled'
-import React from 'react'
-import toJson from 'enzyme-to-json'
-
-import { matchers } from '@emotion/jest'
-import * as serializer from '@emotion/jest/enzyme-serializer'
-
-afterEach(() => {
- let cache
- function GetCache() {
- cache = __unsafe_useEmotionCache()
- return null
- }
- enzyme.shallow()
-
- cache.registered = {}
- cache.inserted = {}
- cache.sheet.flush()
-})
-
-const isReact16 = React.version.split('.')[0] === '16'
-
-expect.extend(matchers)
-expect.addSnapshotSerializer(serializer)
-
-const identity = v => v
-
-const cases = {
- basic: {
- render() {
- const Greeting = ({ children }) => (
- {children}
- )
- return hello
- }
- },
- styled: {
- render() {
- const Greeting = styled.div`
- background-color: red;
- `
- return Hello
- }
- },
- 'styled with css prop': {
- render() {
- const style1 = css`
- background-color: black;
- `
- const Button = styled.button`
- color: red;
- `
- return iChenLei
- }
- },
- nested: {
- render() {
- const Greeting = ({ children }) => (
- {children}
- )
- return (
-
- hello
-
- )
- }
- },
- 'nested styled': {
- render() {
- const Greeting = styled.div`
- background-color: red;
- `
- return (
-
- Hello
-
- )
- }
- },
- 'nested styled with css prop': {
- render() {
- const style1 = css`
- background-color: black;
- `
- const Button = styled.button`
- color: red;
- `
- return (
-
- iChenLei
-
- )
- }
- },
- 'empty styled': {
- render() {
- const Greeting = styled.div``
- return Hello
- }
- },
- 'with styles on top level': {
- render() {
- const Greeting = ({ children, className }) => (
- {children}
- )
- return Hello
- }
- },
- 'with prop containing css element': {
- render() {
- const Greeting = ({ children, content }) => (
-
- {content} {children}
-
- )
- return (
- Hello}>
- World!
-
- )
- }
- },
- 'with prop containing regular element': {
- render() {
- const Test = ({ element }) => element
- return Foo} />
- }
- },
- 'with prop containing css element not at the top level': {
- render() {
- const Greeting = ({ children, content }) => (
-
- {content} {children}
-
- )
-
- return (
-
-
- Hello
-
- }
- >
- World!
-
-
- )
- }
- },
- 'with prop containing css element with other props': {
- render() {
- const Greeting = ({ children, content }) => (
-
- {content} {children}
-
- )
-
- return (
-
- Hello
-
- }
- >
- World!
-
- )
- }
- },
- 'with prop containing css element with other label': {
- render() {
- const Thing = ({ content, children }) => {
- return children
- }
- const Greeting = ({ children, content }) => (
- }>
- {content} {children}
-
- )
-
- return (
-
- Hello
-
- }
- >
- World!
-
- )
- }
- },
- 'with array of styles as css prop': {
- render() {
- const style1 = css`
- background-color: black;
- `
-
- const style2 = css`
- color: white;
- `
-
- return Test content
- }
- },
- 'with array of styles in a composite inner child': {
- render() {
- const style1 = css`
- background-color: black;
- `
-
- const style2 = css`
- color: white;
- `
-
- function Inner(props) {
- return
- }
-
- return (
-
- Test content
-
- )
- }
- },
- 'conditional styles': {
- render() {
- const style1 = css`
- background-color: black;
- `
-
- const style2 = css`
- color: white;
- `
-
- return (
-
- Test content
-
- )
- }
- },
- theming: {
- render() {
- const Button = styled.button`
- color: ${props => props.theme.main ?? 'red'};
- border: 2px solid ${props => props.theme.main ?? 'red'};
- `
-
- const theme = {
- main: 'blue'
- }
-
- return (
-
- Normal
-
- Themed
-
-
- )
- }
- },
- displayName: {
- render() {
- const Comp = props => Hello
- Comp.displayName = 'CustomDisplayName'
- return
- }
- },
- 'nested displayName': {
- render() {
- const Comp = props => Hello
- Comp.displayName = 'CustomDisplayName'
- return (
-
-
-
- )
- }
- },
- 'parent and child using css property': {
- render() {
- const parentStyle = css`
- background-color: black;
- `
-
- const childStyle = css`
- color: white;
- `
-
- return (
-
- )
- }
- },
- 'fragment with multiple css prop elements': {
- render() {
- const Component = () => {
- return (
- <>
-
-
-
- >
- )
- }
- return
- }
- },
- 'multiple selected components': {
- selector: tree =>
- // with simple `tree.find('[data-item]')` we get elements twice with `mount` since it selects both the css prop element and the host element
- tree.findWhere(
- n => typeof n.type() !== 'string' && n.props()['data-item']
- ),
- render() {
- return (
-
- -
- {'hello'}
-
- -
- {'beautiful'}
-
- -
- {'world'}
-
-
- )
- }
- },
- 'unmatched selector': {
- selector: tree => tree.find('div'),
- render() {
- return (
-
- - {'hello'}
- - {'beautiful'}
- - {'world'}
-
- )
- }
- }
-}
-
-;(isReact16 ? describe : describe.skip)('enzyme', () => {
- jestInCase(
- 'shallow',
- ({ render, selector = identity }) => {
- const wrapper = enzyme.shallow(render())
- expect(selector(wrapper)).toMatchSnapshot()
- },
- cases
- )
-
- jestInCase(
- 'mount',
- ({ render, selector = identity }) => {
- const wrapper = enzyme.mount(render())
- expect(selector(wrapper)).toMatchSnapshot()
- },
- cases
- )
-
- test('with prop containing css element in fragment', () => {
- const FragmentComponent = () => (
-
- xy
-
- )
-
- const wrapper = enzyme.mount(
-
-
-
- )
-
- expect(toJson(wrapper, { mode: 'deep' })).toMatchSnapshot()
- })
-
- test('toHaveStyleRule on react.element', () => {
- const tree = enzyme.mount(
-
- )
- expect(tree.find('li').get(0)).toHaveStyleRule(
- 'background-color',
- 'hotpink'
- )
- })
-})
diff --git a/packages/jest/types/enzyme-serializer.d.ts b/packages/jest/types/enzyme-serializer.d.ts
deleted file mode 100644
index e53372b1db..0000000000
--- a/packages/jest/types/enzyme-serializer.d.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-///
-
-type SnapshotSerializerPlugin = Extract<
- jest.SnapshotSerializerPlugin,
- { serialize: any }
->
-
-export const test: SnapshotSerializerPlugin['test']
-export const serialize: SnapshotSerializerPlugin['serialize']
diff --git a/packages/jest/types/enzyme.d.ts b/packages/jest/types/enzyme.d.ts
deleted file mode 100644
index 3fdd86e7fb..0000000000
--- a/packages/jest/types/enzyme.d.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-// TypeScript Version: 4.3
-
-///
-
-import {
- CreateSerializerOptions,
- EmotionMatchers,
- StyleRuleOptions
-} from './index'
-export { CreateSerializerOptions, EmotionMatchers, StyleRuleOptions }
-
-type SnapshotSerializerPlugin = Extract<
- jest.SnapshotSerializerPlugin,
- { serialize: any }
->
-
-export const matchers: EmotionMatchers
-
-export function createEnzymeSerializer(
- options?: CreateSerializerOptions
-): SnapshotSerializerPlugin
diff --git a/packages/primitives/package.json b/packages/primitives/package.json
index 3553ca13ab..0126f1f8e1 100644
--- a/packages/primitives/package.json
+++ b/packages/primitives/package.json
@@ -18,8 +18,6 @@
"react-primitives": "^0.8.1"
},
"devDependencies": {
- "enzyme": "^3.11.0",
- "enzyme-adapter-react-16": "^1.15.5",
"react": "16.14.0",
"react-primitives": "^0.8.1"
},
diff --git a/packages/react/__tests__/babel/css.js b/packages/react/__tests__/babel/css.js
index 44db96ea29..57ceef7bf6 100644
--- a/packages/react/__tests__/babel/css.js
+++ b/packages/react/__tests__/babel/css.js
@@ -1,5 +1,5 @@
/** @jsx jsx */
-import 'test-utils/next-env'
+import 'test-utils/setup-env'
import { jsx, css } from '@emotion/react'
import renderer from 'react-test-renderer'
diff --git a/packages/react/__tests__/class-names.js b/packages/react/__tests__/class-names.js
index c6edd021d3..6b214ddee1 100644
--- a/packages/react/__tests__/class-names.js
+++ b/packages/react/__tests__/class-names.js
@@ -1,5 +1,5 @@
import * as React from 'react'
-import 'test-utils/next-env'
+import 'test-utils/setup-env'
import { ClassNames, ThemeProvider } from '@emotion/react'
import renderer from 'react-test-renderer'
diff --git a/packages/react/__tests__/css-cache-hash.js b/packages/react/__tests__/css-cache-hash.js
index f7428bf46c..ef885b7e70 100644
--- a/packages/react/__tests__/css-cache-hash.js
+++ b/packages/react/__tests__/css-cache-hash.js
@@ -1,5 +1,5 @@
/** @jsx jsx */
-import 'test-utils/next-env'
+import 'test-utils/setup-env'
import { jsx, css } from '@emotion/react'
import { serializeStyles } from '@emotion/serialize'
import * as renderer from 'react-test-renderer'
diff --git a/packages/react/__tests__/css.js b/packages/react/__tests__/css.js
index c0084b03fb..510e143a1e 100644
--- a/packages/react/__tests__/css.js
+++ b/packages/react/__tests__/css.js
@@ -1,5 +1,5 @@
/** @jsx jsx */
-import 'test-utils/next-env'
+import 'test-utils/setup-env'
import { safeQuerySelector } from 'test-utils'
import * as React from 'react'
import { jsx, css, Global, CacheProvider, ThemeProvider } from '@emotion/react'
diff --git a/packages/react/__tests__/custom-cache.js b/packages/react/__tests__/custom-cache.js
index 43907de7a4..8062dae39e 100644
--- a/packages/react/__tests__/custom-cache.js
+++ b/packages/react/__tests__/custom-cache.js
@@ -4,7 +4,7 @@ import { CacheProvider, Global, jsx } from '@emotion/react'
import { StyleSheet } from '@emotion/sheet'
import renderer from 'react-test-renderer'
import { safeQuerySelector } from 'test-utils'
-import 'test-utils/next-env'
+import 'test-utils/setup-env'
function stylisPlugin(element) {
if (element.type === 'decl' && element.value.startsWith('color:')) {
diff --git a/packages/react/__tests__/keyframes.js b/packages/react/__tests__/keyframes.js
index 481f866e08..2e13f0652f 100644
--- a/packages/react/__tests__/keyframes.js
+++ b/packages/react/__tests__/keyframes.js
@@ -1,5 +1,5 @@
/** @jsx jsx */
-import 'test-utils/next-env'
+import 'test-utils/setup-env'
import { jsx, css, keyframes } from '@emotion/react'
import { safeQuerySelector, throwIfFalsy } from 'test-utils'
import cases from 'jest-in-case'
diff --git a/packages/react/__tests__/legacy-class-name.js b/packages/react/__tests__/legacy-class-name.js
index 82345c4203..e67518b5f5 100644
--- a/packages/react/__tests__/legacy-class-name.js
+++ b/packages/react/__tests__/legacy-class-name.js
@@ -1,5 +1,5 @@
/** @jsx jsx */
-import 'test-utils/next-env'
+import 'test-utils/setup-env'
import { jsx, css } from '@emotion/react'
import renderer from 'react-test-renderer'
diff --git a/packages/react/__tests__/theme-provider.dom.js b/packages/react/__tests__/theme-provider.dom.js
index c3ea4e0f47..91bf4fe812 100644
--- a/packages/react/__tests__/theme-provider.dom.js
+++ b/packages/react/__tests__/theme-provider.dom.js
@@ -1,5 +1,5 @@
/** @jsx jsx */
-import 'test-utils/next-env'
+import 'test-utils/setup-env'
import { render, fireEvent } from '@testing-library/react'
import { safeQuerySelector } from 'test-utils'
import * as React from 'react'
diff --git a/packages/react/__tests__/theme-provider.js b/packages/react/__tests__/theme-provider.js
index 1e6b84bc64..2d1ff63e24 100644
--- a/packages/react/__tests__/theme-provider.js
+++ b/packages/react/__tests__/theme-provider.js
@@ -1,5 +1,5 @@
/** @jsx jsx */
-import 'test-utils/next-env'
+import 'test-utils/setup-env'
import { ignoreConsoleErrors } from 'test-utils'
import { jsx, ThemeProvider } from '@emotion/react'
import renderer from 'react-test-renderer'
diff --git a/packages/react/__tests__/use-theme.js b/packages/react/__tests__/use-theme.js
index 301b5c3f07..130fd91594 100644
--- a/packages/react/__tests__/use-theme.js
+++ b/packages/react/__tests__/use-theme.js
@@ -1,5 +1,5 @@
/** @jsx jsx */
-import 'test-utils/next-env'
+import 'test-utils/setup-env'
import * as renderer from 'react-test-renderer'
import { jsx, useTheme, ThemeProvider } from '@emotion/react'
diff --git a/packages/react/__tests__/warnings.js b/packages/react/__tests__/warnings.js
index 98083bb84f..55d68d4cae 100644
--- a/packages/react/__tests__/warnings.js
+++ b/packages/react/__tests__/warnings.js
@@ -1,5 +1,5 @@
/** @jsx jsx */
-import 'test-utils/next-env'
+import 'test-utils/setup-env'
import { jsx, css, Global, keyframes, ClassNames } from '@emotion/react'
import styled from '@emotion/styled'
import renderer from 'react-test-renderer'
diff --git a/packages/styled/__tests__/as-prop.js b/packages/styled/__tests__/as-prop.js
index 69c57c4375..1dd805ad43 100644
--- a/packages/styled/__tests__/as-prop.js
+++ b/packages/styled/__tests__/as-prop.js
@@ -1,4 +1,4 @@
-import 'test-utils/next-env'
+import 'test-utils/setup-env'
import React from 'react'
import { render, cleanup } from '@testing-library/react'
import styled from '@emotion/styled'
diff --git a/packages/styled/__tests__/edge-cases.js b/packages/styled/__tests__/edge-cases.js
index 3bf21f72f2..30b08bf534 100644
--- a/packages/styled/__tests__/edge-cases.js
+++ b/packages/styled/__tests__/edge-cases.js
@@ -1,4 +1,4 @@
-import 'test-utils/next-env'
+import 'test-utils/setup-env'
import * as React from 'react'
import renderer from 'react-test-renderer'
import styled from '@emotion/styled'
diff --git a/packages/styled/__tests__/styled.js b/packages/styled/__tests__/styled.js
index 1d83e00198..1890607fcb 100644
--- a/packages/styled/__tests__/styled.js
+++ b/packages/styled/__tests__/styled.js
@@ -1,5 +1,5 @@
/** @jsx jsx */
-import 'test-utils/next-env'
+import 'test-utils/setup-env'
import renderer from 'react-test-renderer'
import hoistNonReactStatics from 'hoist-non-react-statics'
import styled from '@emotion/styled'
diff --git a/packages/styled/__tests__/warnings.js b/packages/styled/__tests__/warnings.js
index a9e985d2cf..af276d574c 100644
--- a/packages/styled/__tests__/warnings.js
+++ b/packages/styled/__tests__/warnings.js
@@ -1,4 +1,4 @@
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import * as React from 'react'
import { css } from '@emotion/react'
import styled from '@emotion/styled'
diff --git a/packages/styled/test/babel-plugin.test.js b/packages/styled/test/babel-plugin.test.js
index c1c9492f20..053ba35078 100644
--- a/packages/styled/test/babel-plugin.test.js
+++ b/packages/styled/test/babel-plugin.test.js
@@ -1,4 +1,4 @@
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import React from 'react'
import * as renderer from 'react-test-renderer'
import styled from '@emotion/styled'
diff --git a/packages/styled/test/component-selector.test.js b/packages/styled/test/component-selector.test.js
index bc0cf94e53..f87565d585 100644
--- a/packages/styled/test/component-selector.test.js
+++ b/packages/styled/test/component-selector.test.js
@@ -1,4 +1,4 @@
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import React from 'react'
import styled from '@emotion/styled'
import * as renderer from 'react-test-renderer'
diff --git a/packages/styled/test/composition.test.js b/packages/styled/test/composition.test.js
index 208ac0fd19..a4676b9dd8 100644
--- a/packages/styled/test/composition.test.js
+++ b/packages/styled/test/composition.test.js
@@ -1,5 +1,5 @@
/** @jsx jsx */
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import * as renderer from 'react-test-renderer'
import { jsx, css } from '@emotion/react'
import styled from '@emotion/styled'
diff --git a/packages/styled/test/index.test.js b/packages/styled/test/index.test.js
index d8aaffa5d7..bca425ef6e 100644
--- a/packages/styled/test/index.test.js
+++ b/packages/styled/test/index.test.js
@@ -1,4 +1,4 @@
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import React from 'react'
import * as renderer from 'react-test-renderer'
import { css } from '@emotion/react'
diff --git a/packages/styled/test/prop-filtering.test.js b/packages/styled/test/prop-filtering.test.js
index 7d776bf19a..5931a974c0 100644
--- a/packages/styled/test/prop-filtering.test.js
+++ b/packages/styled/test/prop-filtering.test.js
@@ -1,4 +1,4 @@
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import React from 'react'
import * as renderer from 'react-test-renderer'
import styled from '@emotion/styled'
diff --git a/packages/styled/test/theming.dom.test.js b/packages/styled/test/theming.dom.test.js
index bae7d46f71..e56d450710 100644
--- a/packages/styled/test/theming.dom.test.js
+++ b/packages/styled/test/theming.dom.test.js
@@ -1,4 +1,4 @@
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import React from 'react'
import styled from '@emotion/styled'
import { ThemeProvider } from '@emotion/react'
diff --git a/packages/styled/test/theming.test.js b/packages/styled/test/theming.test.js
index 69a1431d66..18375f21b5 100644
--- a/packages/styled/test/theming.test.js
+++ b/packages/styled/test/theming.test.js
@@ -1,4 +1,4 @@
-import 'test-utils/legacy-env'
+import 'test-utils/setup-env'
import React from 'react'
import * as renderer from 'react-test-renderer'
import styled from '@emotion/styled'
diff --git a/scripts/test-utils/enzyme-env.js b/scripts/test-utils/enzyme-env.js
deleted file mode 100644
index 88c8c3b323..0000000000
--- a/scripts/test-utils/enzyme-env.js
+++ /dev/null
@@ -1,4 +0,0 @@
-import Enzyme from 'enzyme'
-import Adapter from 'enzyme-adapter-react-16'
-
-Enzyme.configure({ adapter: new Adapter() })
diff --git a/scripts/test-utils/legacy-env.js b/scripts/test-utils/legacy-env.js
deleted file mode 100644
index 6810e1cbc9..0000000000
--- a/scripts/test-utils/legacy-env.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/* eslint-env jest */
-import 'test-utils/enzyme-env'
-import { createEnzymeSerializer } from '@emotion/jest/enzyme'
-
-expect.addSnapshotSerializer(createEnzymeSerializer())
diff --git a/scripts/test-utils/next-env.js b/scripts/test-utils/setup-env.js
similarity index 100%
rename from scripts/test-utils/next-env.js
rename to scripts/test-utils/setup-env.js
diff --git a/yarn.lock b/yarn.lock
index d5aac40662..a5121e8ee2 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2873,8 +2873,6 @@ __metadata:
"@emotion/babel-plugin": ^11.11.0
"@emotion/is-prop-valid": ^1.2.1
"@emotion/primitives-core": ^11.13.0
- enzyme: ^3.11.0
- enzyme-adapter-react-16: ^1.15.5
react: 16.14.0
react-primitives: ^0.8.1
peerDependencies:
@@ -7400,25 +7398,6 @@ __metadata:
languageName: node
linkType: hard
-"airbnb-prop-types@npm:^2.16.0":
- version: 2.16.0
- resolution: "airbnb-prop-types@npm:2.16.0"
- dependencies:
- array.prototype.find: ^2.1.1
- function.prototype.name: ^1.1.2
- is-regex: ^1.1.0
- object-is: ^1.1.2
- object.assign: ^4.1.0
- object.entries: ^1.1.2
- prop-types: ^15.7.2
- prop-types-exact: ^1.2.0
- react-is: ^16.13.1
- peerDependencies:
- react: ^0.14 || ^15.0.0 || ^16.0.0-alpha
- checksum: 393a5988b99f122c4b935296a6b8c8cbd10345418d67d547cdbcd71d57636cb9abdf9d6556940f70d0b76c3f83448627376557a75b5faf570fb8d262ed4a472f
- languageName: node
- linkType: hard
-
"ajv-errors@npm:^1.0.0":
version: 1.0.1
resolution: "ajv-errors@npm:1.0.1"
@@ -7922,13 +7901,6 @@ __metadata:
languageName: node
linkType: hard
-"array-filter@npm:^1.0.0":
- version: 1.0.0
- resolution: "array-filter@npm:1.0.0"
- checksum: 467054291f522d7f633b1f5e79aac9008ade50a7354e0178d9ec8f0091ec03bc19a41d4eb22985daf2279a5c27be6d7cf410733539e7fccb0742145b89aca438
- languageName: node
- linkType: hard
-
"array-filter@npm:~0.0.0":
version: 0.0.1
resolution: "array-filter@npm:0.0.1"
@@ -8046,16 +8018,6 @@ __metadata:
languageName: node
linkType: hard
-"array.prototype.find@npm:^2.1.1":
- version: 2.1.1
- resolution: "array.prototype.find@npm:2.1.1"
- dependencies:
- define-properties: ^1.1.3
- es-abstract: ^1.17.4
- checksum: 805574b1446324ace4211b4942503dd4c7e043491fa67860d6935ae5f35b33cf36647da8c19bed7e19287c5088f1d02688d4fd5ab6c34944f510220f4b7011ea
- languageName: node
- linkType: hard
-
"array.prototype.findlast@npm:^1.2.5":
version: 1.2.5
resolution: "array.prototype.findlast@npm:1.2.5"
@@ -9971,20 +9933,6 @@ __metadata:
languageName: node
linkType: hard
-"cheerio@npm:^1.0.0-rc.3":
- version: 1.0.0-rc.3
- resolution: "cheerio@npm:1.0.0-rc.3"
- dependencies:
- css-select: ~1.2.0
- dom-serializer: ~0.1.1
- entities: ~1.1.1
- htmlparser2: ^3.9.1
- lodash: ^4.15.0
- parse5: ^3.0.1
- checksum: 90163e8f360d3a9ac27d7ee83edd891236cad63df75e4fde5efcc27269996716a3f8c8dfcefaa2e77ddd6a21c8e54ed6169138096c869913e571abe2264f36fe
- languageName: node
- linkType: hard
-
"chokidar@npm:^2.1.8":
version: 2.1.8
resolution: "chokidar@npm:2.1.8"
@@ -11116,7 +11064,7 @@ __metadata:
languageName: node
linkType: hard
-"css-select@npm:^1.1.0, css-select@npm:~1.2.0":
+"css-select@npm:^1.1.0":
version: 1.2.0
resolution: "css-select@npm:1.2.0"
dependencies:
@@ -12190,13 +12138,6 @@ __metadata:
languageName: node
linkType: hard
-"discontinuous-range@npm:1.0.0":
- version: 1.0.0
- resolution: "discontinuous-range@npm:1.0.0"
- checksum: 8ee88d7082445b6eadc7c03bebe6dc978f96760c45e9f65d16ca66174d9e086a9e3855ee16acf65625e1a07a846a17de674f02a5964a6aebe5963662baf8b5c8
- languageName: node
- linkType: hard
-
"dns-equal@npm:^1.0.0":
version: 1.0.0
resolution: "dns-equal@npm:1.0.0"
@@ -12288,16 +12229,6 @@ __metadata:
languageName: node
linkType: hard
-"dom-serializer@npm:~0.1.1":
- version: 0.1.1
- resolution: "dom-serializer@npm:0.1.1"
- dependencies:
- domelementtype: ^1.3.0
- entities: ^1.1.1
- checksum: 4f6a3eff802273741931cfd3c800fab4e683236eed10628d6605f52538a6bc0ce4770f3ca2ad68a27412c103ae9b6cdaed3c0a8e20d2704192bde497bc875215
- languageName: node
- linkType: hard
-
"domain-browser@npm:^1.1.1":
version: 1.2.0
resolution: "domain-browser@npm:1.2.0"
@@ -12312,7 +12243,7 @@ __metadata:
languageName: node
linkType: hard
-"domelementtype@npm:1, domelementtype@npm:^1.3.0, domelementtype@npm:^1.3.1":
+"domelementtype@npm:1, domelementtype@npm:^1.3.1":
version: 1.3.1
resolution: "domelementtype@npm:1.3.1"
checksum: 7893da40218ae2106ec6ffc146b17f203487a52f5228b032ea7aa470e41dfe03e1bd762d0ee0139e792195efda765434b04b43cddcf63207b098f6ae44b36ad6
@@ -12645,9 +12576,6 @@ __metadata:
bundlesize: ^0.13.2
codecov: ^2.3.1
cssjanus: ^1.2.0
- enzyme: ^3.11.0
- enzyme-adapter-react-16: ^1.15.5
- enzyme-to-json: ^3.6.1
eslint: ^8.57.0
eslint-config-prettier: ^9.1.0
eslint-config-react: ^1.1.7
@@ -12808,7 +12736,7 @@ __metadata:
languageName: node
linkType: hard
-"entities@npm:^1.1.1, entities@npm:~1.1.1":
+"entities@npm:^1.1.1":
version: 1.1.2
resolution: "entities@npm:1.1.2"
checksum: d537b02799bdd4784ffd714d000597ed168727bddf4885da887c5a491d735739029a00794f1998abbf35f3f6aeda32ef5c15010dca1817d401903a501b6d3e05
@@ -12852,53 +12780,6 @@ __metadata:
languageName: node
linkType: hard
-"enzyme-adapter-react-16@npm:^1.15.5":
- version: 1.15.5
- resolution: "enzyme-adapter-react-16@npm:1.15.5"
- dependencies:
- enzyme-adapter-utils: ^1.13.1
- enzyme-shallow-equal: ^1.0.4
- has: ^1.0.3
- object.assign: ^4.1.0
- object.values: ^1.1.1
- prop-types: ^15.7.2
- react-is: ^16.13.1
- react-test-renderer: ^16.0.0-0
- semver: ^5.7.0
- peerDependencies:
- enzyme: ^3.0.0
- react: ^16.0.0-0
- react-dom: ^16.0.0-0
- checksum: 3e1a7e1bff19721a960c917d84fc057e1429b8d63ea74fcc284103571dc3348f48de1d32e4eee17664b41f5eb0c5caf0f0f3077940efb9553901e8c837dd72bf
- languageName: node
- linkType: hard
-
-"enzyme-adapter-utils@npm:^1.13.1":
- version: 1.13.1
- resolution: "enzyme-adapter-utils@npm:1.13.1"
- dependencies:
- airbnb-prop-types: ^2.16.0
- function.prototype.name: ^1.1.2
- object.assign: ^4.1.0
- object.fromentries: ^2.0.2
- prop-types: ^15.7.2
- semver: ^5.7.1
- peerDependencies:
- react: 0.13.x || 0.14.x || ^15.0.0-0 || ^16.0.0-0
- checksum: 5e3300e66a4d3b035a949022ecba45359b5047b9e112b733773880ad91831ec830af7e23ca6987a0db2a5f8e7c6eb1d00233402e9efceb7181d7790a0211ca47
- languageName: node
- linkType: hard
-
-"enzyme-shallow-equal@npm:^1.0.1, enzyme-shallow-equal@npm:^1.0.4":
- version: 1.0.4
- resolution: "enzyme-shallow-equal@npm:1.0.4"
- dependencies:
- has: ^1.0.3
- object-is: ^1.1.2
- checksum: 54bbad0955683f09252568bfcb9d7e934a27c06634057db9e82b54c0d9f7a27b6160d77643177d973c133b87d404f284cc6aa0481c0a1c81cdff05b072e2bb49
- languageName: node
- linkType: hard
-
"enzyme-to-json@npm:^3.6.1":
version: 3.6.1
resolution: "enzyme-to-json@npm:3.6.1"
@@ -12912,36 +12793,6 @@ __metadata:
languageName: node
linkType: hard
-"enzyme@npm:^3.11.0":
- version: 3.11.0
- resolution: "enzyme@npm:3.11.0"
- dependencies:
- array.prototype.flat: ^1.2.3
- cheerio: ^1.0.0-rc.3
- enzyme-shallow-equal: ^1.0.1
- function.prototype.name: ^1.1.2
- has: ^1.0.3
- html-element-map: ^1.2.0
- is-boolean-object: ^1.0.1
- is-callable: ^1.1.5
- is-number-object: ^1.0.4
- is-regex: ^1.0.5
- is-string: ^1.0.5
- is-subset: ^0.1.1
- lodash.escape: ^4.0.1
- lodash.isequal: ^4.5.0
- object-inspect: ^1.7.0
- object-is: ^1.0.2
- object.assign: ^4.1.0
- object.entries: ^1.1.1
- object.values: ^1.1.1
- raf: ^3.4.1
- rst-selector-parser: ^2.2.3
- string.prototype.trim: ^1.2.1
- checksum: 69ae80049c3f405122b8e619f1cf8b04f32b3cc2b6134c29ed8c0f05e87a0b15080f1121096ec211954a710f4787300af9157078c863012de87eee16e98e64ea
- languageName: node
- linkType: hard
-
"err-code@npm:^2.0.2":
version: 2.0.3
resolution: "err-code@npm:2.0.3"
@@ -13002,7 +12853,7 @@ __metadata:
languageName: node
linkType: hard
-"es-abstract@npm:^1.17.0, es-abstract@npm:^1.17.0-next.1, es-abstract@npm:^1.17.4, es-abstract@npm:^1.17.5":
+"es-abstract@npm:^1.17.0, es-abstract@npm:^1.17.0-next.1, es-abstract@npm:^1.17.5":
version: 1.17.7
resolution: "es-abstract@npm:1.17.7"
dependencies:
@@ -15174,17 +15025,6 @@ __metadata:
languageName: node
linkType: hard
-"function.prototype.name@npm:^1.1.2":
- version: 1.1.2
- resolution: "function.prototype.name@npm:1.1.2"
- dependencies:
- define-properties: ^1.1.3
- es-abstract: ^1.17.0-next.1
- functions-have-names: ^1.2.0
- checksum: 68b4e1fc4bf3a6a88ac5a69d84f46c33c24dc83db33123b6f11c16330c9aa65ac0e7c6e31654f8429cf5229d2a83eb2673641fc059ad5a98d6c44184589b871d
- languageName: node
- linkType: hard
-
"function.prototype.name@npm:^1.1.5, function.prototype.name@npm:^1.1.6":
version: 1.1.6
resolution: "function.prototype.name@npm:1.1.6"
@@ -15204,13 +15044,6 @@ __metadata:
languageName: node
linkType: hard
-"functions-have-names@npm:^1.2.0":
- version: 1.2.1
- resolution: "functions-have-names@npm:1.2.1"
- checksum: 34a3f18ce1d6ce54b9e7df3209d25718106206aee3951ae82a639dbda71c7c57112836628734b4ba18aeddf5f6e8d8c92c7b825df8cbe1ef8b6f683afecaf38a
- languageName: node
- linkType: hard
-
"functions-have-names@npm:^1.2.3":
version: 1.2.3
resolution: "functions-have-names@npm:1.2.3"
@@ -16269,15 +16102,6 @@ __metadata:
languageName: node
linkType: hard
-"html-element-map@npm:^1.2.0":
- version: 1.2.0
- resolution: "html-element-map@npm:1.2.0"
- dependencies:
- array-filter: ^1.0.0
- checksum: b5e7cad2da46cce47b4b595f60a59eb3e933202030302885e705bef16bd2ac016d4a1bba1ef812c831802d04fc6b0c6d7d918c6fb069da6a61e7b7623f75124e
- languageName: node
- linkType: hard
-
"html-encoding-sniffer@npm:^1.0.2":
version: 1.0.2
resolution: "html-encoding-sniffer@npm:1.0.2"
@@ -16410,7 +16234,7 @@ __metadata:
languageName: node
linkType: hard
-"htmlparser2@npm:^3.3.0, htmlparser2@npm:^3.9.1, htmlparser2@npm:^3.9.2":
+"htmlparser2@npm:^3.3.0, htmlparser2@npm:^3.9.2":
version: 3.10.1
resolution: "htmlparser2@npm:3.10.1"
dependencies:
@@ -17280,13 +17104,6 @@ __metadata:
languageName: node
linkType: hard
-"is-boolean-object@npm:^1.0.1":
- version: 1.0.1
- resolution: "is-boolean-object@npm:1.0.1"
- checksum: a357d1d80f621e720110044e5c23a106b252bc41a4183a63e28cfbb3aae8485225609a3cd4bba28418de699a77967a611a7622478c40285bc7ec29a611a2eb6b
- languageName: node
- linkType: hard
-
"is-boolean-object@npm:^1.1.0":
version: 1.1.0
resolution: "is-boolean-object@npm:1.1.0"
@@ -17324,7 +17141,7 @@ __metadata:
languageName: node
linkType: hard
-"is-callable@npm:^1.1.5, is-callable@npm:^1.2.2":
+"is-callable@npm:^1.2.2":
version: 1.2.2
resolution: "is-callable@npm:1.2.2"
checksum: 2bbf65bd5d39ccad3cae3954c482019466565a9b8027769a21cf2deebb25c195fb10f4974295b6118a815f6be3440bd7b7555ac742cf145f65a6a7d2484ebc3a
@@ -17903,7 +17720,7 @@ __metadata:
languageName: node
linkType: hard
-"is-regex@npm:^1.0.5, is-regex@npm:^1.1.0, is-regex@npm:^1.1.1":
+"is-regex@npm:^1.1.1":
version: 1.1.1
resolution: "is-regex@npm:1.1.1"
dependencies:
@@ -18015,13 +17832,6 @@ __metadata:
languageName: node
linkType: hard
-"is-subset@npm:^0.1.1":
- version: 0.1.1
- resolution: "is-subset@npm:0.1.1"
- checksum: 97b8d7852af165269b7495095691a6ce6cf20bdfa1f846f97b4560ee190069686107af4e277fbd93aa0845c4d5db704391460ff6e9014aeb73264ba87893df44
- languageName: node
- linkType: hard
-
"is-svg@npm:^3.0.0":
version: 3.0.0
resolution: "is-svg@npm:3.0.0"
@@ -20443,27 +20253,6 @@ __metadata:
languageName: node
linkType: hard
-"lodash.escape@npm:^4.0.1":
- version: 4.0.1
- resolution: "lodash.escape@npm:4.0.1"
- checksum: fcb54f457497256964d619d5cccbd80a961916fca60df3fe0fa3e7f052715c2944c0ed5aefb4f9e047d127d44aa2d55555f3350cb42c6549e9e293fb30b41e7f
- languageName: node
- linkType: hard
-
-"lodash.flattendeep@npm:^4.4.0":
- version: 4.4.0
- resolution: "lodash.flattendeep@npm:4.4.0"
- checksum: 8521c919acac3d4bcf0aaf040c1ca9cb35d6c617e2d72e9b4d51c9a58b4366622cd6077441a18be626c3f7b28227502b3bf042903d447b056ee7e0b11d45c722
- languageName: node
- linkType: hard
-
-"lodash.isequal@npm:^4.5.0":
- version: 4.5.0
- resolution: "lodash.isequal@npm:4.5.0"
- checksum: da27515dc5230eb1140ba65ff8de3613649620e8656b19a6270afe4866b7bd461d9ba2ac8a48dcc57f7adac4ee80e1de9f965d89d4d81a0ad52bb3eec2609644
- languageName: node
- linkType: hard
-
"lodash.memoize@npm:^4.1.2":
version: 4.1.2
resolution: "lodash.memoize@npm:4.1.2"
@@ -20532,7 +20321,7 @@ __metadata:
languageName: node
linkType: hard
-"lodash@npm:>=3.5 <5, lodash@npm:^4.15.0, lodash@npm:^4.17.10, lodash@npm:^4.17.11, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.4, lodash@npm:^4.17.5, lodash@npm:^4.3.0":
+"lodash@npm:>=3.5 <5, lodash@npm:^4.17.10, lodash@npm:^4.17.11, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.4, lodash@npm:^4.17.5, lodash@npm:^4.3.0":
version: 4.17.15
resolution: "lodash@npm:4.17.15"
checksum: bb689bc88c0645b7002a045cdbe32292ae51d5d2a6f6a5272cb5a5ace9b06700bb3d30c6be6ecfae9a70f9c943f60e90765033fc7ff706cf9219374eeda314ad
@@ -22484,13 +22273,6 @@ __metadata:
languageName: node
linkType: hard
-"moo@npm:^0.4.3":
- version: 0.4.3
- resolution: "moo@npm:0.4.3"
- checksum: f13bfb22ea62fc1e3584029d2efd62add90bf1dcb14de2a1eb9d59552a7f2ac3710739c0270e525049e48e58105effd93f8563520d687cae1ab7d76216ff6c2b
- languageName: node
- linkType: hard
-
"move-concurrently@npm:^1.0.1":
version: 1.0.1
resolution: "move-concurrently@npm:1.0.1"
@@ -22684,24 +22466,6 @@ __metadata:
languageName: node
linkType: hard
-"nearley@npm:^2.7.10":
- version: 2.18.0
- resolution: "nearley@npm:2.18.0"
- dependencies:
- commander: ^2.19.0
- moo: ^0.4.3
- railroad-diagrams: ^1.0.0
- randexp: 0.4.6
- semver: ^5.4.1
- bin:
- nearley-railroad: bin/nearley-railroad.js
- nearley-test: bin/nearley-test.js
- nearley-unparse: bin/nearley-unparse.js
- nearleyc: bin/nearleyc.js
- checksum: 5641c0bfb64c9ff2beae5697d96aa7df9826de1d73726eb8d9289575726c8285c281f3d93da1746bf88100537903cc9505ae70ae4cf929470934e3d58a24daa3
- languageName: node
- linkType: hard
-
"needle@npm:^2.2.1":
version: 2.4.0
resolution: "needle@npm:2.4.0"
@@ -23446,7 +23210,7 @@ __metadata:
languageName: node
linkType: hard
-"object-inspect@npm:^1.7.0, object-inspect@npm:^1.8.0":
+"object-inspect@npm:^1.8.0":
version: 1.8.0
resolution: "object-inspect@npm:1.8.0"
checksum: 1bb4ed43972ad29537bee9b2b3f543d7e6463ee3b929048ecddcb50f7796c418c679ba2104f2e37cd7fa486782b6278b9d1c9cccb4bbc7ca17cd529f3ae4dc1f
@@ -23470,16 +23234,6 @@ __metadata:
languageName: node
linkType: hard
-"object-is@npm:^1.0.2, object-is@npm:^1.1.2":
- version: 1.1.3
- resolution: "object-is@npm:1.1.3"
- dependencies:
- define-properties: ^1.1.3
- es-abstract: ^1.18.0-next.1
- checksum: 8b03d2706f489b4f86c1de803e16389bdf7facd6e715c044bd898376d370b98a47aafdf64c26be6c6151e57cf8b4e499210d2768935b24b369dac90ad2ce8a19
- languageName: node
- linkType: hard
-
"object-keys@npm:^1.0.11, object-keys@npm:^1.0.12, object-keys@npm:^1.1.1":
version: 1.1.1
resolution: "object-keys@npm:1.1.1"
@@ -23562,17 +23316,6 @@ __metadata:
languageName: node
linkType: hard
-"object.entries@npm:^1.1.1, object.entries@npm:^1.1.2":
- version: 1.1.2
- resolution: "object.entries@npm:1.1.2"
- dependencies:
- define-properties: ^1.1.3
- es-abstract: ^1.17.5
- has: ^1.0.3
- checksum: fa97173d30312086b6adbff2b87b60799656c7aca5016f2bc69b20f313125e7763ca5bc1c1cbfd0949942291cc1b5d4cdfd362817dc6ab79f136c0e5df072e64
- languageName: node
- linkType: hard
-
"object.entries@npm:^1.1.8":
version: 1.1.8
resolution: "object.entries@npm:1.1.8"
@@ -23584,18 +23327,6 @@ __metadata:
languageName: node
linkType: hard
-"object.fromentries@npm:^2.0.2":
- version: 2.0.2
- resolution: "object.fromentries@npm:2.0.2"
- dependencies:
- define-properties: ^1.1.3
- es-abstract: ^1.17.0-next.1
- function-bind: ^1.1.1
- has: ^1.0.3
- checksum: 950ab9e9064814a1531d84cc2d0237120035514d9038d3e24bfca849ec612c5036398bd7969145431b16c4752fd216c6420dd86dc2cd6d4a48ff8ca8d1111414
- languageName: node
- linkType: hard
-
"object.fromentries@npm:^2.0.4":
version: 2.0.4
resolution: "object.fromentries@npm:2.0.4"
@@ -24387,15 +24118,6 @@ __metadata:
languageName: node
linkType: hard
-"parse5@npm:^3.0.1":
- version: 3.0.3
- resolution: "parse5@npm:3.0.3"
- dependencies:
- "@types/node": "*"
- checksum: 6a82d59d60496f4a8bba99daee37eda728adb403197b9c9a163dcc02e369758992bcc67f1618d4f1445f4b12e7651e001c2847e446b8376d4d706e1d571f570d
- languageName: node
- linkType: hard
-
"parse5@npm:^7.0.0, parse5@npm:^7.1.1":
version: 7.1.2
resolution: "parse5@npm:7.1.2"
@@ -26411,17 +26133,6 @@ __metadata:
languageName: node
linkType: hard
-"prop-types-exact@npm:^1.2.0":
- version: 1.2.0
- resolution: "prop-types-exact@npm:1.2.0"
- dependencies:
- has: ^1.0.3
- object.assign: ^4.1.0
- reflect.ownkeys: ^0.2.0
- checksum: 21676a16d5b2623c345ca938554faba7bf29c6ad589eac3f490eda2207bcfd8d25cb3dfda5e5f8e6805239aabd2c6943f7bfbe726a1de708bae2b7a01c03eead
- languageName: node
- linkType: hard
-
"prop-types@npm:^15.6.0, prop-types@npm:^15.6.2, prop-types@npm:^15.7.2":
version: 15.7.2
resolution: "prop-types@npm:15.7.2"
@@ -26694,23 +26405,6 @@ __metadata:
languageName: node
linkType: hard
-"railroad-diagrams@npm:^1.0.0":
- version: 1.0.0
- resolution: "railroad-diagrams@npm:1.0.0"
- checksum: 9e312af352b5ed89c2118edc0c06cef2cc039681817f65266719606e4e91ff6ae5374c707cc9033fe29a82c2703edf3c63471664f97f0167c85daf6f93496319
- languageName: node
- linkType: hard
-
-"randexp@npm:0.4.6":
- version: 0.4.6
- resolution: "randexp@npm:0.4.6"
- dependencies:
- discontinuous-range: 1.0.0
- ret: ~0.1.10
- checksum: 3c0d440a3f89d6d36844aa4dd57b5cdb0cab938a41956a16da743d3a3578ab32538fc41c16cc0984b6938f2ae4cbc0216967e9829e52191f70e32690d8e3445d
- languageName: node
- linkType: hard
-
"randombytes@npm:^2.0.0, randombytes@npm:^2.0.1, randombytes@npm:^2.0.5, randombytes@npm:^2.1.0":
version: 2.1.0
resolution: "randombytes@npm:2.1.0"
@@ -27077,7 +26771,7 @@ __metadata:
languageName: node
linkType: hard
-"react-test-renderer@npm:16.8.6, react-test-renderer@npm:^16.0.0-0":
+"react-test-renderer@npm:16.8.6":
version: 16.8.6
resolution: "react-test-renderer@npm:16.8.6"
dependencies:
@@ -27326,13 +27020,6 @@ __metadata:
languageName: node
linkType: hard
-"reflect.ownkeys@npm:^0.2.0":
- version: 0.2.0
- resolution: "reflect.ownkeys@npm:0.2.0"
- checksum: 9530b166569e547c2cf25ade3cdc39c662212feeccf3e0ed46e6d8abf92f5683c82d7857011cee6230bf648eb0b99b6b419a007012b8571dcd4bb4d818d3b88d
- languageName: node
- linkType: hard
-
"regenerate-unicode-properties@npm:^10.0.1":
version: 10.0.1
resolution: "regenerate-unicode-properties@npm:10.0.1"
@@ -28271,16 +27958,6 @@ __metadata:
languageName: node
linkType: hard
-"rst-selector-parser@npm:^2.2.3":
- version: 2.2.3
- resolution: "rst-selector-parser@npm:2.2.3"
- dependencies:
- lodash.flattendeep: ^4.4.0
- nearley: ^2.7.10
- checksum: fbfb2f6a7d4c9b3e013ef555ac06e5dba444e0d37dc959b94c507b6c34093ef10fe98141338d9cac58e5ae0f9453a5ef7f85af3d5e6386b237c1b3552debe4a0
- languageName: node
- linkType: hard
-
"rsvp@npm:^4.8.4":
version: 4.8.5
resolution: "rsvp@npm:4.8.5"
@@ -28668,7 +28345,7 @@ __metadata:
languageName: node
linkType: hard
-"semver@npm:^5.4.1, semver@npm:^5.5.0, semver@npm:^5.7.1":
+"semver@npm:^5.4.1, semver@npm:^5.5.0":
version: 5.7.1
resolution: "semver@npm:5.7.1"
bin:
@@ -29831,16 +29508,6 @@ __metadata:
languageName: node
linkType: hard
-"string.prototype.trim@npm:^1.2.1":
- version: 1.2.2
- resolution: "string.prototype.trim@npm:1.2.2"
- dependencies:
- define-properties: ^1.1.3
- es-abstract: ^1.18.0-next.0
- checksum: 4392f2ccfa2ec61db502efc5498c60a708d12fb38cb746d02a02ef9c106820edc2bfd67087e88ec2909d3fe64b3b464cd0b53852f4bc85cb11cb6287ff1a960e
- languageName: node
- linkType: hard
-
"string.prototype.trim@npm:^1.2.9":
version: 1.2.9
resolution: "string.prototype.trim@npm:1.2.9"