From 1e99fb8dcbdbfad47a34d03d34c9ff1281a93140 Mon Sep 17 00:00:00 2001 From: Zacky Ma Date: Thu, 13 Jun 2024 16:40:52 -0700 Subject: [PATCH 01/15] use adopted style sheets to set theme tokens --- .../src/theme/set-theme.stories.ts | 23 ++++++++ .../web-components/src/theme/set-theme.ts | 56 ++++++++++++------- 2 files changed, 60 insertions(+), 19 deletions(-) create mode 100644 packages/web-components/src/theme/set-theme.stories.ts diff --git a/packages/web-components/src/theme/set-theme.stories.ts b/packages/web-components/src/theme/set-theme.stories.ts new file mode 100644 index 00000000000000..cba0089c4718d9 --- /dev/null +++ b/packages/web-components/src/theme/set-theme.stories.ts @@ -0,0 +1,23 @@ +import { html } from '@microsoft/fast-element'; +import { + teamsDarkTheme, + teamsHighContrastTheme, + teamsLightTheme, + webDarkTheme, + webLightTheme, +} from '@fluentui/tokens'; + +import { renderComponent } from '../helpers.stories.js'; +import { setTheme } from './set-theme.js'; + +export default { + title: 'Theme/SetTheme', +}; + +export const SetTheme = renderComponent(html` + webLightTheme + webDarkTheme + teamsLightTheme + teamsDarkTheme + teamsHighContrastTheme +`); diff --git a/packages/web-components/src/theme/set-theme.ts b/packages/web-components/src/theme/set-theme.ts index bbd2c5d969dc6e..70583bfd5d5ff0 100644 --- a/packages/web-components/src/theme/set-theme.ts +++ b/packages/web-components/src/theme/set-theme.ts @@ -3,34 +3,52 @@ import * as tokens from './design-tokens.js'; const tokenNames = Object.keys(tokens) as (keyof Theme)[]; +const SUPPORTS_REGISTER_PROPERTY = 'registerProperty' in CSS; +const SUPPORTS_ADOPTED_STYLE_SHEETS = 'adoptedStyleSheets' in document; +const themeStyleSheet = new CSSStyleSheet(); +const themeStyleTextMap = new Map(); + /** * Sets the theme tokens on defaultNode. * @param theme - Flat object of theme token values. * @internal */ export const setTheme = (theme: Theme) => { - for (const t of tokenNames) { - let registered = false; - - if ('registerProperty' in CSS) { - try { - CSS.registerProperty({ - name: `--${t}`, - inherits: true, - initialValue: theme[t] as string, - }); - registered = true; - } catch { - // Do nothing. + // Assuming if a user agent supports `CSS.registerProperty()`, it’d also + // support `document.adoptedStyleSheets`. + if (!SUPPORTS_ADOPTED_STYLE_SHEETS) { + setThemeFor(document.body, theme); + return; + } + + if (!themeStyleTextMap.has(theme)) { + const tokenDeclarations: string[] = []; + + for (const t of tokenNames) { + if (SUPPORTS_REGISTER_PROPERTY) { + try { + CSS.registerProperty({ + name: `--${t}`, + inherits: true, + initialValue: theme[t] as string, + }); + } catch { + // Do nothing (need this comment to pass eslint’s `no-empty` rule) + } } + tokenDeclarations.push(`--${t}: ${theme[t] as string};`); } - if (!registered) { - // TODO: Find a better way to update the values. Current approach adds - // lots of code to the `style` attribute on ``. Maybe look into - // `document.adoptedStyleSheets`. - setThemeFor(document.body, theme); - } + themeStyleTextMap.set(theme, `body{${tokenDeclarations.join('')}}`); + } + + if (!document.adoptedStyleSheets.includes(themeStyleSheet)) { + document.adoptedStyleSheets.push(themeStyleSheet); + } else { + // The very first call to `setTheme()` within a document doesn’t need to + // call `replaceSync()`, because `CSS.registerProperty()` above is + // sufficient to set the tokens. + themeStyleSheet.replaceSync(themeStyleTextMap.get(theme)!); } }; From 0b7871ed6aad361e44bf4c47736d3e194f425f0f Mon Sep 17 00:00:00 2001 From: Zacky Ma Date: Thu, 13 Jun 2024 16:44:08 -0700 Subject: [PATCH 02/15] add change file --- ...eb-components-22e3e36e-c30c-4866-85ad-9e28421977d6.json | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 change/@fluentui-web-components-22e3e36e-c30c-4866-85ad-9e28421977d6.json diff --git a/change/@fluentui-web-components-22e3e36e-c30c-4866-85ad-9e28421977d6.json b/change/@fluentui-web-components-22e3e36e-c30c-4866-85ad-9e28421977d6.json new file mode 100644 index 00000000000000..a13aba16cffb7a --- /dev/null +++ b/change/@fluentui-web-components-22e3e36e-c30c-4866-85ad-9e28421977d6.json @@ -0,0 +1,7 @@ +{ + "type": "prerelease", + "comment": "refactor setTheme() to use adoptedStyleSheets", + "packageName": "@fluentui/web-components", + "email": "machi@microsoft.com", + "dependentChangeType": "patch" +} From f8e01aefd80558b6b757a831e126122aa06e862d Mon Sep 17 00:00:00 2001 From: Zacky Ma Date: Thu, 13 Jun 2024 16:54:08 -0700 Subject: [PATCH 03/15] update comment for clarify --- packages/web-components/src/theme/set-theme.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/web-components/src/theme/set-theme.ts b/packages/web-components/src/theme/set-theme.ts index 70583bfd5d5ff0..ce0ca437032f48 100644 --- a/packages/web-components/src/theme/set-theme.ts +++ b/packages/web-components/src/theme/set-theme.ts @@ -14,8 +14,9 @@ const themeStyleTextMap = new Map(); * @internal */ export const setTheme = (theme: Theme) => { - // Assuming if a user agent supports `CSS.registerProperty()`, it’d also - // support `document.adoptedStyleSheets`. + // Fallback to setting token custom properties on `` element’s `style` + // attribute, with the assumption that if a user agent supports + // `document.adoptedStyleSheets`, it’d also support `CSS.registerProperty()`. if (!SUPPORTS_ADOPTED_STYLE_SHEETS) { setThemeFor(document.body, theme); return; From 129a62fcf8852c52795b7eb2c90823cc58cac6b5 Mon Sep 17 00:00:00 2001 From: Zacky Ma Date: Thu, 13 Jun 2024 17:04:42 -0700 Subject: [PATCH 04/15] update code format --- packages/web-components/src/theme/set-theme.stories.ts | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/packages/web-components/src/theme/set-theme.stories.ts b/packages/web-components/src/theme/set-theme.stories.ts index cba0089c4718d9..c5bb29206cefa4 100644 --- a/packages/web-components/src/theme/set-theme.stories.ts +++ b/packages/web-components/src/theme/set-theme.stories.ts @@ -1,11 +1,5 @@ import { html } from '@microsoft/fast-element'; -import { - teamsDarkTheme, - teamsHighContrastTheme, - teamsLightTheme, - webDarkTheme, - webLightTheme, -} from '@fluentui/tokens'; +import { teamsDarkTheme, teamsHighContrastTheme, teamsLightTheme, webDarkTheme, webLightTheme } from '@fluentui/tokens'; import { renderComponent } from '../helpers.stories.js'; import { setTheme } from './set-theme.js'; From 2ef46297ff5798f3bd6f33eca06d05e7edb12357 Mon Sep 17 00:00:00 2001 From: Zacky Ma Date: Tue, 18 Jun 2024 09:27:21 -0700 Subject: [PATCH 05/15] remove ref to high contrast theme --- packages/web-components/src/theme/set-theme.stories.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/web-components/src/theme/set-theme.stories.ts b/packages/web-components/src/theme/set-theme.stories.ts index c5bb29206cefa4..2ce35466847d2d 100644 --- a/packages/web-components/src/theme/set-theme.stories.ts +++ b/packages/web-components/src/theme/set-theme.stories.ts @@ -1,5 +1,5 @@ import { html } from '@microsoft/fast-element'; -import { teamsDarkTheme, teamsHighContrastTheme, teamsLightTheme, webDarkTheme, webLightTheme } from '@fluentui/tokens'; +import { teamsDarkTheme, teamsLightTheme, webDarkTheme, webLightTheme } from '@fluentui/tokens'; import { renderComponent } from '../helpers.stories.js'; import { setTheme } from './set-theme.js'; @@ -13,5 +13,4 @@ export const SetTheme = renderComponent(html` webDarkTheme teamsLightTheme teamsDarkTheme - teamsHighContrastTheme `); From d5e0717123504f9edbb530fd79d00464e5b84631 Mon Sep 17 00:00:00 2001 From: Zacky Ma Date: Tue, 18 Jun 2024 09:32:14 -0700 Subject: [PATCH 06/15] correct comment --- packages/web-components/src/theme/set-theme.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/web-components/src/theme/set-theme.ts b/packages/web-components/src/theme/set-theme.ts index ce0ca437032f48..b20497d8563beb 100644 --- a/packages/web-components/src/theme/set-theme.ts +++ b/packages/web-components/src/theme/set-theme.ts @@ -15,8 +15,9 @@ const themeStyleTextMap = new Map(); */ export const setTheme = (theme: Theme) => { // Fallback to setting token custom properties on `` element’s `style` - // attribute, with the assumption that if a user agent supports - // `document.adoptedStyleSheets`, it’d also support `CSS.registerProperty()`. + // attribute, only checking the support of `document.adoptedStyleSheets` + // here because it has broader support than `CSS.registerProperty()`, which + // is checked later. if (!SUPPORTS_ADOPTED_STYLE_SHEETS) { setThemeFor(document.body, theme); return; From 4c4673a99990aa2ab4fffa1145c880a14e0e89fc Mon Sep 17 00:00:00 2001 From: Zacky Ma Date: Tue, 18 Jun 2024 10:19:43 -0700 Subject: [PATCH 07/15] allow empty catch in eslint --- packages/web-components/.eslintrc.json | 6 ++++++ packages/web-components/src/theme/set-theme.ts | 4 +--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/web-components/.eslintrc.json b/packages/web-components/.eslintrc.json index 0b1511be1817a2..5fd2fd28e79aae 100644 --- a/packages/web-components/.eslintrc.json +++ b/packages/web-components/.eslintrc.json @@ -15,6 +15,12 @@ } }, "rules": { + "no-empty": [ + "error", + { + "allowEmptyCatch": true + } + ], "no-extra-boolean-cast": "off", "no-prototype-builtins": "off", "no-fallthrough": "off", diff --git a/packages/web-components/src/theme/set-theme.ts b/packages/web-components/src/theme/set-theme.ts index b20497d8563beb..a312c4c2a2cf26 100644 --- a/packages/web-components/src/theme/set-theme.ts +++ b/packages/web-components/src/theme/set-theme.ts @@ -34,9 +34,7 @@ export const setTheme = (theme: Theme) => { inherits: true, initialValue: theme[t] as string, }); - } catch { - // Do nothing (need this comment to pass eslint’s `no-empty` rule) - } + } catch {} } tokenDeclarations.push(`--${t}: ${theme[t] as string};`); } From c60fac5812617e9bf301f289ba604bebb9331a05 Mon Sep 17 00:00:00 2001 From: Zacky Ma Date: Tue, 18 Jun 2024 16:19:39 -0700 Subject: [PATCH 08/15] add perf test --- packages/web-components/package.json | 1 + .../src/theme/set-theme.bench.ts | 47 +++++++++++++++++++ yarn.lock | 2 +- 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 packages/web-components/src/theme/set-theme.bench.ts diff --git a/packages/web-components/package.json b/packages/web-components/package.json index 101159e15eb05d..02f552b2cb9e21 100644 --- a/packages/web-components/package.json +++ b/packages/web-components/package.json @@ -218,6 +218,7 @@ "devDependencies": { "@types/web": "^0.0.142", "@storybook/html": "6.5.15", + "@tensile-perf/tools": "^0.1.7", "@tensile-perf/web-components": "~0.1.15", "chromedriver": "^125.0.0" }, diff --git a/packages/web-components/src/theme/set-theme.bench.ts b/packages/web-components/src/theme/set-theme.bench.ts new file mode 100644 index 00000000000000..ec27a810e9cb07 --- /dev/null +++ b/packages/web-components/src/theme/set-theme.bench.ts @@ -0,0 +1,47 @@ +// eslint-disable-next-line +// @ts-nocheck +import { measureJavascript, measureLayout } from '@tensile-perf/tools'; +import { teamsDarkTheme, teamsLightTheme, webDarkTheme, webLightTheme } from '@fluentui/tokens'; + +import { setTheme } from './set-theme.js'; + +const measurePerformance = () => { + let startTime: number; + + const startMeasure = () => { + startTime = performance.now(); + } + + const endMeasure = () => { + measureJavascript(startTime, performance.now()); + measureLayout(); + }; + + return { startMeasure, endMeasure }; +}; + +const tests = { + 'mount': ({ onComplete }) => { + const { startMeasure, endMeasure} = measurePerformance(); + + startMeasure(); + + // Newly set themes + setTheme(webLightTheme); + setTheme(webDarkTheme); + setTheme(teamsDarkTheme); + setTheme(teamsLightTheme); + + // Cached themes + setTheme(webLightTheme); + setTheme(webDarkTheme); + setTheme(teamsDarkTheme); + setTheme(teamsLightTheme); + + endMeasure(); + + onComplete(); + }, +}; + +export { tests }; diff --git a/yarn.lock b/yarn.lock index 717ec22313c57f..a045d49f2daf90 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4607,7 +4607,7 @@ tachometer "0.7.0" yargs "17.7.1" -"@tensile-perf/tools@0.1.7": +"@tensile-perf/tools@0.1.7", "@tensile-perf/tools@^0.1.7": version "0.1.7" resolved "https://registry.yarnpkg.com/@tensile-perf/tools/-/tools-0.1.7.tgz#27ba71213b160df4b2c35d9496dec37d1bfd704d" integrity sha512-b2jOC1JHQ5ecNM95IlQw/6s3ET743yaQ2zMIOnPCtXdJJaSIO6wwCbgK82ESkA84O6qJv8IHgyVhsBsXXPR4vQ== From 3a22a091ed8773d8a79a49655ec0c0627b8b678b Mon Sep 17 00:00:00 2001 From: Zacky Ma Date: Fri, 21 Jun 2024 12:46:21 -0700 Subject: [PATCH 09/15] fix formatting --- packages/web-components/src/theme/set-theme.bench.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/web-components/src/theme/set-theme.bench.ts b/packages/web-components/src/theme/set-theme.bench.ts index ec27a810e9cb07..0f26154488c8db 100644 --- a/packages/web-components/src/theme/set-theme.bench.ts +++ b/packages/web-components/src/theme/set-theme.bench.ts @@ -10,7 +10,7 @@ const measurePerformance = () => { const startMeasure = () => { startTime = performance.now(); - } + }; const endMeasure = () => { measureJavascript(startTime, performance.now()); @@ -21,8 +21,8 @@ const measurePerformance = () => { }; const tests = { - 'mount': ({ onComplete }) => { - const { startMeasure, endMeasure} = measurePerformance(); + mount: ({ onComplete }) => { + const { startMeasure, endMeasure } = measurePerformance(); startMeasure(); From 0440cc22b0f460c7fbbca6e4fe61ae7ba0dd4688 Mon Sep 17 00:00:00 2001 From: Zacky Ma Date: Fri, 21 Jun 2024 15:16:50 -0700 Subject: [PATCH 10/15] apply token custom properties to root element instead of body --- packages/web-components/docs/api-report.md | 2 ++ packages/web-components/src/theme/set-theme.ts | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/web-components/docs/api-report.md b/packages/web-components/docs/api-report.md index b341c5901050ac..69a6925daf8895 100644 --- a/packages/web-components/docs/api-report.md +++ b/packages/web-components/docs/api-report.md @@ -4,6 +4,8 @@ ```ts +/// + import type { Constructable } from '@microsoft/fast-element'; import { CSSDirective } from '@microsoft/fast-element'; import { Direction } from '@microsoft/fast-web-utilities'; diff --git a/packages/web-components/src/theme/set-theme.ts b/packages/web-components/src/theme/set-theme.ts index a312c4c2a2cf26..252975dd5cf5a8 100644 --- a/packages/web-components/src/theme/set-theme.ts +++ b/packages/web-components/src/theme/set-theme.ts @@ -14,12 +14,12 @@ const themeStyleTextMap = new Map(); * @internal */ export const setTheme = (theme: Theme) => { - // Fallback to setting token custom properties on `` element’s `style` + // Fallback to setting token custom properties on `` element’s `style` // attribute, only checking the support of `document.adoptedStyleSheets` // here because it has broader support than `CSS.registerProperty()`, which // is checked later. if (!SUPPORTS_ADOPTED_STYLE_SHEETS) { - setThemeFor(document.body, theme); + setThemeFor(document.documentElement, theme); return; } @@ -39,7 +39,7 @@ export const setTheme = (theme: Theme) => { tokenDeclarations.push(`--${t}: ${theme[t] as string};`); } - themeStyleTextMap.set(theme, `body{${tokenDeclarations.join('')}}`); + themeStyleTextMap.set(theme, `html{${tokenDeclarations.join('')}}`); } if (!document.adoptedStyleSheets.includes(themeStyleSheet)) { From 863dc7d11f901caaa92048f8430df303e2f74400 Mon Sep 17 00:00:00 2001 From: Zacky Ma Date: Mon, 24 Jun 2024 18:23:03 -0700 Subject: [PATCH 11/15] update deps --- packages/web-components/package.json | 2 +- yarn.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/web-components/package.json b/packages/web-components/package.json index e893de3464cf4a..ec7e05510f7e34 100644 --- a/packages/web-components/package.json +++ b/packages/web-components/package.json @@ -219,7 +219,7 @@ "@microsoft/fast-element": "2.0.0-beta.26", "@types/web": "^0.0.142", "@storybook/html": "6.5.15", - "@tensile-perf/tools": "^0.1.7", + "@tensile-perf/tools": "0.1.7", "@tensile-perf/web-components": "~0.1.15", "chromedriver": "^125.0.0" }, diff --git a/yarn.lock b/yarn.lock index 009f7af0810e28..59ecd0510f5593 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4602,7 +4602,7 @@ tachometer "0.7.0" yargs "17.7.1" -"@tensile-perf/tools@0.1.7", "@tensile-perf/tools@^0.1.7": +"@tensile-perf/tools@0.1.7": version "0.1.7" resolved "https://registry.yarnpkg.com/@tensile-perf/tools/-/tools-0.1.7.tgz#27ba71213b160df4b2c35d9496dec37d1bfd704d" integrity sha512-b2jOC1JHQ5ecNM95IlQw/6s3ET743yaQ2zMIOnPCtXdJJaSIO6wwCbgK82ESkA84O6qJv8IHgyVhsBsXXPR4vQ== From f44f0a5e03ca4f77d9abca5af1c3ebbe1dfe63e1 Mon Sep 17 00:00:00 2001 From: Zacky Ma Date: Tue, 25 Jun 2024 11:01:40 -0700 Subject: [PATCH 12/15] reenable ts check --- packages/web-components/docs/api-report.md | 2 ++ packages/web-components/src/theme/set-theme.bench.ts | 5 ++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/web-components/docs/api-report.md b/packages/web-components/docs/api-report.md index fb06d461a7361a..c07f8dcb169e0c 100644 --- a/packages/web-components/docs/api-report.md +++ b/packages/web-components/docs/api-report.md @@ -3108,6 +3108,8 @@ class Text_2 extends FASTElement { block: boolean; // (undocumented) connectedCallback(): void; + // (undocumented) + disconnectedCallback(): void; // @internal elementInternals: ElementInternals; font?: TextFont; diff --git a/packages/web-components/src/theme/set-theme.bench.ts b/packages/web-components/src/theme/set-theme.bench.ts index 0f26154488c8db..7908f76f266eed 100644 --- a/packages/web-components/src/theme/set-theme.bench.ts +++ b/packages/web-components/src/theme/set-theme.bench.ts @@ -1,5 +1,4 @@ -// eslint-disable-next-line -// @ts-nocheck +import type { TestRenderFunction } from '@tensile-perf/web-components'; import { measureJavascript, measureLayout } from '@tensile-perf/tools'; import { teamsDarkTheme, teamsLightTheme, webDarkTheme, webLightTheme } from '@fluentui/tokens'; @@ -20,7 +19,7 @@ const measurePerformance = () => { return { startMeasure, endMeasure }; }; -const tests = { +const tests: Record = { mount: ({ onComplete }) => { const { startMeasure, endMeasure } = measurePerformance(); From 577d4cdb3a4cbbccd66c0becc59c368b268f37bb Mon Sep 17 00:00:00 2001 From: Zacky Ma Date: Tue, 25 Jun 2024 11:13:32 -0700 Subject: [PATCH 13/15] move tensile-perf deps to root --- package.json | 2 ++ packages/web-components/package.json | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 60e2741043e918..2e25a657bbe328 100644 --- a/package.json +++ b/package.json @@ -125,6 +125,8 @@ "@swc/cli": "0.1.62", "@swc/core": "1.3.87", "@swc/helpers": "0.5.1", + "@tensile-perf/tools": "0.1.7", + "@tensile-perf/web-components": "~0.1.15", "@testing-library/dom": "8.11.3", "@testing-library/jest-dom": "5.16.5", "@testing-library/react": "12.1.2", diff --git a/packages/web-components/package.json b/packages/web-components/package.json index 1323302035e896..5a22f8746c36f3 100644 --- a/packages/web-components/package.json +++ b/packages/web-components/package.json @@ -219,8 +219,6 @@ "@microsoft/fast-element": "2.0.0-beta.26", "@types/web": "^0.0.142", "@storybook/html": "6.5.15", - "@tensile-perf/tools": "0.1.7", - "@tensile-perf/web-components": "~0.1.15", "chromedriver": "^125.0.0" }, "dependencies": { From 2821ca9624f676dfcd7033f9ae1066b30cec5777 Mon Sep 17 00:00:00 2001 From: Zacky Ma Date: Tue, 25 Jun 2024 17:39:22 -0700 Subject: [PATCH 14/15] update dependencies --- package.json | 2 - packages/web-components/package.json | 1 + .../src/theme/set-theme.bench.ts | 18 +-- yarn.lock | 131 +++++++++++++----- 4 files changed, 96 insertions(+), 56 deletions(-) diff --git a/package.json b/package.json index 2e25a657bbe328..60e2741043e918 100644 --- a/package.json +++ b/package.json @@ -125,8 +125,6 @@ "@swc/cli": "0.1.62", "@swc/core": "1.3.87", "@swc/helpers": "0.5.1", - "@tensile-perf/tools": "0.1.7", - "@tensile-perf/web-components": "~0.1.15", "@testing-library/dom": "8.11.3", "@testing-library/jest-dom": "5.16.5", "@testing-library/react": "12.1.2", diff --git a/packages/web-components/package.json b/packages/web-components/package.json index 5a22f8746c36f3..5c5454464ebc2d 100644 --- a/packages/web-components/package.json +++ b/packages/web-components/package.json @@ -217,6 +217,7 @@ }, "devDependencies": { "@microsoft/fast-element": "2.0.0-beta.26", + "@tensile-perf/web-components": "~0.2.0", "@types/web": "^0.0.142", "@storybook/html": "6.5.15", "chromedriver": "^125.0.0" diff --git a/packages/web-components/src/theme/set-theme.bench.ts b/packages/web-components/src/theme/set-theme.bench.ts index 7908f76f266eed..9edcc959fc33b9 100644 --- a/packages/web-components/src/theme/set-theme.bench.ts +++ b/packages/web-components/src/theme/set-theme.bench.ts @@ -1,24 +1,8 @@ -import type { TestRenderFunction } from '@tensile-perf/web-components'; -import { measureJavascript, measureLayout } from '@tensile-perf/tools'; +import { measurePerformance, type TestRenderFunction } from '@tensile-perf/web-components'; import { teamsDarkTheme, teamsLightTheme, webDarkTheme, webLightTheme } from '@fluentui/tokens'; import { setTheme } from './set-theme.js'; -const measurePerformance = () => { - let startTime: number; - - const startMeasure = () => { - startTime = performance.now(); - }; - - const endMeasure = () => { - measureJavascript(startTime, performance.now()); - measureLayout(); - }; - - return { startMeasure, endMeasure }; -}; - const tests: Record = { mount: ({ onComplete }) => { const { startMeasure, endMeasure } = measurePerformance(); diff --git a/yarn.lock b/yarn.lock index fa2f7f810d8b37..327bf05de418d5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -264,7 +264,7 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@7.24.6", "@babel/generator@>=7", "@babel/generator@^7.10.3", "@babel/generator@^7.12.11", "@babel/generator@^7.12.13", "@babel/generator@^7.12.5", "@babel/generator@^7.23.0", "@babel/generator@^7.24.6", "@babel/generator@^7.4.4", "@babel/generator@^7.7.2": +"@babel/generator@7.24.6", "@babel/generator@>=7", "@babel/generator@^7.10.3", "@babel/generator@^7.12.11", "@babel/generator@^7.12.13", "@babel/generator@^7.12.5", "@babel/generator@^7.23.0", "@babel/generator@^7.24.6", "@babel/generator@^7.7.2": version "7.24.6" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.6.tgz#dfac82a228582a9d30c959fe50ad28951d4737a7" integrity sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg== @@ -274,6 +274,16 @@ "@jridgewell/trace-mapping" "^0.3.25" jsesc "^2.5.1" +"@babel/generator@^7.4.4": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.7.tgz#1654d01de20ad66b4b4d99c135471bc654c55e6d" + integrity sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA== + dependencies: + "@babel/types" "^7.24.7" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^2.5.1" + "@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.10.4", "@babel/helper-annotate-as-pure@^7.18.6", "@babel/helper-annotate-as-pure@^7.24.6": version "7.24.6" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.6.tgz#517af93abc77924f9b2514c407bbef527fb8938d" @@ -454,11 +464,21 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.6.tgz#28583c28b15f2a3339cfafafeaad42f9a0e828df" integrity sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q== +"@babel/helper-string-parser@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz#4d2d0f14820ede3b9807ea5fc36dfc8cd7da07f2" + integrity sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg== + "@babel/helper-validator-identifier@^7.24.6": version "7.24.6" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz#08bb6612b11bdec78f3feed3db196da682454a5e" integrity sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw== +"@babel/helper-validator-identifier@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" + integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== + "@babel/helper-validator-option@^7.23.5", "@babel/helper-validator-option@^7.24.6": version "7.24.6" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.6.tgz#59d8e81c40b7d9109ab7e74457393442177f460a" @@ -491,11 +511,16 @@ js-tokens "^4.0.0" picocolors "^1.0.0" -"@babel/parser@7.24.6", "@babel/parser@^7.1.0", "@babel/parser@^7.10.3", "@babel/parser@^7.12.11", "@babel/parser@^7.12.7", "@babel/parser@^7.13.16", "@babel/parser@^7.14.7", "@babel/parser@^7.20.0", "@babel/parser@^7.20.7", "@babel/parser@^7.24.4", "@babel/parser@^7.24.6", "@babel/parser@^7.4.5": +"@babel/parser@7.24.6", "@babel/parser@^7.1.0", "@babel/parser@^7.10.3", "@babel/parser@^7.12.11", "@babel/parser@^7.12.7", "@babel/parser@^7.13.16", "@babel/parser@^7.14.7", "@babel/parser@^7.20.0", "@babel/parser@^7.20.7", "@babel/parser@^7.24.4", "@babel/parser@^7.24.6": version "7.24.6" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.6.tgz#5e030f440c3c6c78d195528c3b688b101a365328" integrity sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q== +"@babel/parser@^7.4.5": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.7.tgz#9a5226f92f0c5c8ead550b750f5608e766c8ce85" + integrity sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw== + "@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.24.6": version "7.24.6" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.6.tgz#283a74ef365b1e954cda6b2724c678a978215e88" @@ -1493,6 +1518,15 @@ "@babel/helper-validator-identifier" "^7.24.6" to-fast-properties "^2.0.0" +"@babel/types@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.7.tgz#6027fe12bc1aa724cd32ab113fb7f1988f1f66f2" + integrity sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q== + dependencies: + "@babel/helper-string-parser" "^7.24.7" + "@babel/helper-validator-identifier" "^7.24.7" + to-fast-properties "^2.0.0" + "@base2/pretty-print-object@1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@base2/pretty-print-object/-/pretty-print-object-1.0.1.tgz#371ba8be66d556812dc7fb169ebc3c08378f69d4" @@ -2107,6 +2141,11 @@ normalize-path "^2.0.1" through2 "^2.0.3" +"@hapi/bourne@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-3.0.0.tgz#f11fdf7dda62fe8e336fa7c6642d9041f30356d7" + integrity sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w== + "@hot-loader/react-dom@17.0.2": version "17.0.2" resolved "https://registry.yarnpkg.com/@hot-loader/react-dom/-/react-dom-17.0.2.tgz#0b24e484093e8f97eb5c72bebdda44fc20bc8400" @@ -4632,10 +4671,10 @@ dependencies: "@tensile-perf/tools" "0.1.7" -"@tensile-perf/web-components@~0.1.15": - version "0.1.15" - resolved "https://registry.yarnpkg.com/@tensile-perf/web-components/-/web-components-0.1.15.tgz#95587b220d0b09b79b339da4e4f8694772fab91a" - integrity sha512-gawc20t7uvZyWUZOqBCA6/2Z7wEGECy2ytxe2/FMplDOuUj/CLXKoDY9mtS1dlo+6HjERuL8iP4IjdqURXo2UA== +"@tensile-perf/web-components@~0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@tensile-perf/web-components/-/web-components-0.2.0.tgz#355ac463a121656e68c0567f9c15accf19b61734" + integrity sha512-NEKH6d/2HrOJgW60E/oZ/O2D4vjzBv9xgSQmAz1cQnrEyQ/Odz/l3OWDwfEobcg8VHm6iODVoNAyvYAr4ESTKQ== dependencies: "@tensile-perf/runner" "0.4.0" "@tensile-perf/tools" "0.1.7" @@ -6120,9 +6159,9 @@ tslib "^1.10.0" "@wdio/logger@^8.6.6": - version "8.28.0" - resolved "https://registry.yarnpkg.com/@wdio/logger/-/logger-8.28.0.tgz#ab97ee1a9f6a30305e1a07ff2b67fa23e1281e73" - integrity sha512-/s6zNCqwy1hoc+K4SJypis0Ud0dlJ+urOelJFO1x0G0rwDRWyFiUP6ijTaCcFxAm29jYEcEPWijl2xkVIHwOyA== + version "8.38.0" + resolved "https://registry.yarnpkg.com/@wdio/logger/-/logger-8.38.0.tgz#a96406267e800bef9c58ac95de00f42ab0d3ac5c" + integrity sha512-kcHL86RmNbcQP+Gq/vQUGlArfU6IIcbbnNp32rRIraitomZow+iEoc519rdQmSVusDozMS5DZthkgDdxK+vz6Q== dependencies: chalk "^5.1.2" loglevel "^1.6.0" @@ -8979,10 +9018,11 @@ clsx@^1.0.1: integrity sha512-3avwM37fSK5oP6M5rQ9CNe99lwxhXDOeSWVPAOYF6OazUTgZCMb0yWlJpmdD74REy1gkEaFiub2ULv4fq9GUhA== co-body@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/co-body/-/co-body-6.1.0.tgz#d87a8efc3564f9bfe3aced8ef5cd04c7a8766547" - integrity sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ== + version "6.2.0" + resolved "https://registry.yarnpkg.com/co-body/-/co-body-6.2.0.tgz#afd776d60e5659f4eee862df83499698eb1aea1b" + integrity sha512-Kbpv2Yd1NdL1V/V4cwLVxraHDV6K8ayohr2rmH0J87Er8+zJjcTa6dAn9QMPC9CRgU8+aNajKbSf1TzDB1yKPA== dependencies: + "@hapi/bourne" "^3.0.0" inflation "^2.0.0" qs "^6.5.2" raw-body "^2.3.3" @@ -9818,9 +9858,9 @@ csstype@^3.0.2, csstype@^3.1.3: integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== csv-stringify@^6.2.0: - version "6.4.6" - resolved "https://registry.yarnpkg.com/csv-stringify/-/csv-stringify-6.4.6.tgz#9ccf87cb8b017c96673a9fa061768c8ba83e8b98" - integrity sha512-h2V2XZ3uOTLilF5dPIptgUfN/o2ia/80Ie0Lly18LAnw5s8Eb7kt8rfxSUy24AztJZas9f6DPZpVlzDUtFt/ag== + version "6.5.0" + resolved "https://registry.yarnpkg.com/csv-stringify/-/csv-stringify-6.5.0.tgz#7b1491893c917e018a97de9bf9604e23b88647c2" + integrity sha512-edlXFVKcUx7r8Vx5zQucsuMg4wb/xT6qyz+Sr1vnLrdXqlLD1+UKyWNyZ9zn6mUW1ewmGxrpVwAcChGF0HQ/2Q== currently-unhandled@^0.4.1: version "0.4.1" @@ -18016,9 +18056,9 @@ node-forge@^1: integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== node-gyp-build@^4.2.2: - version "4.8.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.0.tgz#3fee9c1731df4581a3f9ead74664369ff00d26dd" - integrity sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og== + version "4.8.1" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.1.tgz#976d3ad905e71b76086f4f0b0d3637fe79b6cda5" + integrity sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw== node-int64@^0.4.0: version "0.4.0" @@ -19767,13 +19807,20 @@ qs@6.10.4: dependencies: side-channel "^1.0.4" -qs@6.11.0, qs@^6.10.0, qs@^6.5.2, qs@^6.8.0, qs@^6.9.1: +qs@6.11.0, qs@^6.10.0, qs@^6.8.0, qs@^6.9.1: version "6.11.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== dependencies: side-channel "^1.0.4" +qs@^6.5.2: + version "6.12.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.1.tgz#39422111ca7cbdb70425541cba20c7d7b216599a" + integrity sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ== + dependencies: + side-channel "^1.0.6" + qs@~6.5.2: version "6.5.3" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" @@ -21418,9 +21465,9 @@ select@^1.1.2: integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= selenium-webdriver@^4.0.0-alpha.8: - version "4.20.0" - resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-4.20.0.tgz#14941ab4a59e8956a5e4b4491a8ba2bd6619d1ac" - integrity sha512-s/G44lGQ1xB3tmtX6NNPomlkpL6CxLdmAvp/AGWWwi4qv5Te1+qji7tPSyr6gyuoPpdYiof1rKnWe3luy0MrYA== + version "4.22.0" + resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-4.22.0.tgz#da9426aed5004ef16532010224b41a3a8b8dd132" + integrity sha512-GNbrkCHmy249ai885wgXqTfqL2lZnclUH/P8pwTDIqzyFxU3YhDiN7p/c9tMFA4NhgRdEBO2QCG+CWmG7xr/Mw== dependencies: jszip "^3.10.1" tmp "^0.2.3" @@ -21682,7 +21729,7 @@ shell-quote@^1.8.1: resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== -side-channel@^1.0.4: +side-channel@^1.0.4, side-channel@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== @@ -22650,9 +22697,9 @@ syncpack@10.6.1: ts-toolbelt "9.6.0" systeminformation@^5.3.3: - version "5.22.8" - resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-5.22.8.tgz#403126772defa1d2a2e4cf039e9f6d57d3f1f3ba" - integrity sha512-F1iWQ+PSfOzvLMGh2UXASaWLDq5o+1h1db13Kddl6ojcQ47rsJhpMtRrmBXfTA5QJgutC4KV67YRmXLuroIxrA== + version "5.22.11" + resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-5.22.11.tgz#42be7b650ce0a8b940c06219a6647f6ab3f7a349" + integrity sha512-aLws5yi4KCHTb0BVvbodQY5bY8eW4asMRDTxTW46hqw9lGjACX6TlLdJrkdoHYRB0qs+MekqEq1zG7WDnWE8Ug== tabbable@^6.2.0: version "6.2.0" @@ -23323,7 +23370,7 @@ tsconfig-paths@^3.14.1, tsconfig-paths@^3.15.0: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@2.5.0, tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.4.1, tslib@^2.5.0: +tslib@2.5.0, tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.4.1: version "2.5.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== @@ -23333,6 +23380,11 @@ tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.2.tgz#9c79d83272c9a7aaf166f73915c9667ecdde3cc9" integrity sha512-tTSkux6IGPnUGUd1XAZHcpu85MOkIl5zX49pO+jfsie3eP0B6pyhOlLXm3cAC6T7s+euSDDUUV+Acop5WmtkVg== +tslib@^2.5.0: + version "2.6.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" + integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== + tsscmp@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb" @@ -23508,9 +23560,9 @@ typical@^5.2.0: integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== ua-parser-js@^1.0.2: - version "1.0.37" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.37.tgz#b5dc7b163a5c1f0c510b08446aed4da92c46373f" - integrity sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ== + version "1.0.38" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.38.tgz#66bb0c4c0e322fe48edfe6d446df6042e62f25e2" + integrity sha512-Aq5ppTOfvrCMgAPneW1HfWj66Xi7XL+/mIy996R1/CLS/rcyJQm6QZdsKrUeivDFQ+Oc9Wyuwor8Ze8peEoUoQ== uglify-js@^3.1.4: version "3.17.4" @@ -23981,9 +24033,9 @@ user-home@^1.1.1: integrity sha1-K1viOjK2Onyd640PKNSFcko98ZA= utf8-byte-length@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" - integrity sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA== + version "1.0.5" + resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.5.tgz#f9f63910d15536ee2b2d5dd4665389715eac5c1e" + integrity sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA== util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" @@ -24844,16 +24896,21 @@ ws@8.11.0: resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143" integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg== -ws@>=8.16.0, ws@^8.11.0, ws@^8.13.0, ws@^8.2.3: - version "8.17.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.0.tgz#d145d18eca2ed25aaf791a183903f7be5e295fea" - integrity sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow== +ws@>=8.16.0: + version "8.17.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" + integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== ws@^7.2.0, ws@^7.3.1: version "7.5.6" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b" integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== +ws@^8.11.0, ws@^8.13.0, ws@^8.2.3: + version "8.17.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.0.tgz#d145d18eca2ed25aaf791a183903f7be5e295fea" + integrity sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow== + x-default-browser@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/x-default-browser/-/x-default-browser-0.4.0.tgz#70cf0da85da7c0ab5cb0f15a897f2322a6bdd481" From 69b320bb9b9b04a6f53ae2eea176320cf19d6092 Mon Sep 17 00:00:00 2001 From: Zacky Ma Date: Tue, 25 Jun 2024 18:52:48 -0700 Subject: [PATCH 15/15] attempt to fix deps dedupe --- yarn.lock | 123 +++++++++++++++--------------------------------------- 1 file changed, 33 insertions(+), 90 deletions(-) diff --git a/yarn.lock b/yarn.lock index ce582ace16044e..6bce8317ecc61b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -264,7 +264,7 @@ json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@7.24.6", "@babel/generator@>=7", "@babel/generator@^7.10.3", "@babel/generator@^7.12.11", "@babel/generator@^7.12.13", "@babel/generator@^7.12.5", "@babel/generator@^7.23.0", "@babel/generator@^7.24.6", "@babel/generator@^7.7.2": +"@babel/generator@7.24.6", "@babel/generator@>=7", "@babel/generator@^7.10.3", "@babel/generator@^7.12.11", "@babel/generator@^7.12.13", "@babel/generator@^7.12.5", "@babel/generator@^7.23.0", "@babel/generator@^7.24.6", "@babel/generator@^7.4.4", "@babel/generator@^7.7.2": version "7.24.6" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.6.tgz#dfac82a228582a9d30c959fe50ad28951d4737a7" integrity sha512-S7m4eNa6YAPJRHmKsLHIDJhNAGNKoWNiWefz1MBbpnt8g9lvMDl1hir4P9bo/57bQEmuwEhnRU/AMWsD0G/Fbg== @@ -274,16 +274,6 @@ "@jridgewell/trace-mapping" "^0.3.25" jsesc "^2.5.1" -"@babel/generator@^7.4.4": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.7.tgz#1654d01de20ad66b4b4d99c135471bc654c55e6d" - integrity sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA== - dependencies: - "@babel/types" "^7.24.7" - "@jridgewell/gen-mapping" "^0.3.5" - "@jridgewell/trace-mapping" "^0.3.25" - jsesc "^2.5.1" - "@babel/helper-annotate-as-pure@^7.0.0", "@babel/helper-annotate-as-pure@^7.10.4", "@babel/helper-annotate-as-pure@^7.18.6", "@babel/helper-annotate-as-pure@^7.24.6": version "7.24.6" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.6.tgz#517af93abc77924f9b2514c407bbef527fb8938d" @@ -464,21 +454,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.6.tgz#28583c28b15f2a3339cfafafeaad42f9a0e828df" integrity sha512-WdJjwMEkmBicq5T9fm/cHND3+UlFa2Yj8ALLgmoSQAJZysYbBjw+azChSGPN4DSPLXOcooGRvDwZWMcF/mLO2Q== -"@babel/helper-string-parser@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz#4d2d0f14820ede3b9807ea5fc36dfc8cd7da07f2" - integrity sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg== - "@babel/helper-validator-identifier@^7.24.6": version "7.24.6" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.6.tgz#08bb6612b11bdec78f3feed3db196da682454a5e" integrity sha512-4yA7s865JHaqUdRbnaxarZREuPTHrjpDT+pXoAZ1yhyo6uFnIEpS8VMu16siFOHDpZNKYv5BObhsB//ycbICyw== -"@babel/helper-validator-identifier@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" - integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== - "@babel/helper-validator-option@^7.23.5", "@babel/helper-validator-option@^7.24.6": version "7.24.6" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.6.tgz#59d8e81c40b7d9109ab7e74457393442177f460a" @@ -511,16 +491,11 @@ js-tokens "^4.0.0" picocolors "^1.0.0" -"@babel/parser@7.24.6", "@babel/parser@^7.1.0", "@babel/parser@^7.10.3", "@babel/parser@^7.12.11", "@babel/parser@^7.12.7", "@babel/parser@^7.13.16", "@babel/parser@^7.14.7", "@babel/parser@^7.20.0", "@babel/parser@^7.20.7", "@babel/parser@^7.24.4", "@babel/parser@^7.24.6": +"@babel/parser@7.24.6", "@babel/parser@^7.1.0", "@babel/parser@^7.10.3", "@babel/parser@^7.12.11", "@babel/parser@^7.12.7", "@babel/parser@^7.13.16", "@babel/parser@^7.14.7", "@babel/parser@^7.20.0", "@babel/parser@^7.20.7", "@babel/parser@^7.24.4", "@babel/parser@^7.24.6", "@babel/parser@^7.4.5": version "7.24.6" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.6.tgz#5e030f440c3c6c78d195528c3b688b101a365328" integrity sha512-eNZXdfU35nJC2h24RznROuOpO94h6x8sg9ju0tT9biNtLZ2vuP8SduLqqV+/8+cebSLV9SJEAN5Z3zQbJG/M+Q== -"@babel/parser@^7.4.5": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.7.tgz#9a5226f92f0c5c8ead550b750f5608e766c8ce85" - integrity sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw== - "@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.24.6": version "7.24.6" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.6.tgz#283a74ef365b1e954cda6b2724c678a978215e88" @@ -1518,15 +1493,6 @@ "@babel/helper-validator-identifier" "^7.24.6" to-fast-properties "^2.0.0" -"@babel/types@^7.24.7": - version "7.24.7" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.7.tgz#6027fe12bc1aa724cd32ab113fb7f1988f1f66f2" - integrity sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q== - dependencies: - "@babel/helper-string-parser" "^7.24.7" - "@babel/helper-validator-identifier" "^7.24.7" - to-fast-properties "^2.0.0" - "@base2/pretty-print-object@1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@base2/pretty-print-object/-/pretty-print-object-1.0.1.tgz#371ba8be66d556812dc7fb169ebc3c08378f69d4" @@ -2141,11 +2107,6 @@ normalize-path "^2.0.1" through2 "^2.0.3" -"@hapi/bourne@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-3.0.0.tgz#f11fdf7dda62fe8e336fa7c6642d9041f30356d7" - integrity sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w== - "@hot-loader/react-dom@17.0.2": version "17.0.2" resolved "https://registry.yarnpkg.com/@hot-loader/react-dom/-/react-dom-17.0.2.tgz#0b24e484093e8f97eb5c72bebdda44fc20bc8400" @@ -6159,9 +6120,9 @@ tslib "^1.10.0" "@wdio/logger@^8.6.6": - version "8.38.0" - resolved "https://registry.yarnpkg.com/@wdio/logger/-/logger-8.38.0.tgz#a96406267e800bef9c58ac95de00f42ab0d3ac5c" - integrity sha512-kcHL86RmNbcQP+Gq/vQUGlArfU6IIcbbnNp32rRIraitomZow+iEoc519rdQmSVusDozMS5DZthkgDdxK+vz6Q== + version "8.28.0" + resolved "https://registry.yarnpkg.com/@wdio/logger/-/logger-8.28.0.tgz#ab97ee1a9f6a30305e1a07ff2b67fa23e1281e73" + integrity sha512-/s6zNCqwy1hoc+K4SJypis0Ud0dlJ+urOelJFO1x0G0rwDRWyFiUP6ijTaCcFxAm29jYEcEPWijl2xkVIHwOyA== dependencies: chalk "^5.1.2" loglevel "^1.6.0" @@ -9018,11 +8979,10 @@ clsx@^1.0.1: integrity sha512-3avwM37fSK5oP6M5rQ9CNe99lwxhXDOeSWVPAOYF6OazUTgZCMb0yWlJpmdD74REy1gkEaFiub2ULv4fq9GUhA== co-body@^6.0.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/co-body/-/co-body-6.2.0.tgz#afd776d60e5659f4eee862df83499698eb1aea1b" - integrity sha512-Kbpv2Yd1NdL1V/V4cwLVxraHDV6K8ayohr2rmH0J87Er8+zJjcTa6dAn9QMPC9CRgU8+aNajKbSf1TzDB1yKPA== + version "6.1.0" + resolved "https://registry.yarnpkg.com/co-body/-/co-body-6.1.0.tgz#d87a8efc3564f9bfe3aced8ef5cd04c7a8766547" + integrity sha512-m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ== dependencies: - "@hapi/bourne" "^3.0.0" inflation "^2.0.0" qs "^6.5.2" raw-body "^2.3.3" @@ -9858,9 +9818,9 @@ csstype@^3.0.2, csstype@^3.1.3: integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== csv-stringify@^6.2.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/csv-stringify/-/csv-stringify-6.5.0.tgz#7b1491893c917e018a97de9bf9604e23b88647c2" - integrity sha512-edlXFVKcUx7r8Vx5zQucsuMg4wb/xT6qyz+Sr1vnLrdXqlLD1+UKyWNyZ9zn6mUW1ewmGxrpVwAcChGF0HQ/2Q== + version "6.4.6" + resolved "https://registry.yarnpkg.com/csv-stringify/-/csv-stringify-6.4.6.tgz#9ccf87cb8b017c96673a9fa061768c8ba83e8b98" + integrity sha512-h2V2XZ3uOTLilF5dPIptgUfN/o2ia/80Ie0Lly18LAnw5s8Eb7kt8rfxSUy24AztJZas9f6DPZpVlzDUtFt/ag== currently-unhandled@^0.4.1: version "0.4.1" @@ -18056,9 +18016,9 @@ node-forge@^1: integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== node-gyp-build@^4.2.2: - version "4.8.1" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.1.tgz#976d3ad905e71b76086f4f0b0d3637fe79b6cda5" - integrity sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw== + version "4.8.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.0.tgz#3fee9c1731df4581a3f9ead74664369ff00d26dd" + integrity sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og== node-int64@^0.4.0: version "0.4.0" @@ -19807,20 +19767,13 @@ qs@6.10.4: dependencies: side-channel "^1.0.4" -qs@6.11.0, qs@^6.10.0, qs@^6.8.0, qs@^6.9.1: +qs@6.11.0, qs@^6.10.0, qs@^6.5.2, qs@^6.8.0, qs@^6.9.1: version "6.11.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== dependencies: side-channel "^1.0.4" -qs@^6.5.2: - version "6.12.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.1.tgz#39422111ca7cbdb70425541cba20c7d7b216599a" - integrity sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ== - dependencies: - side-channel "^1.0.6" - qs@~6.5.2: version "6.5.3" resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" @@ -21465,9 +21418,9 @@ select@^1.1.2: integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= selenium-webdriver@^4.0.0-alpha.8: - version "4.22.0" - resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-4.22.0.tgz#da9426aed5004ef16532010224b41a3a8b8dd132" - integrity sha512-GNbrkCHmy249ai885wgXqTfqL2lZnclUH/P8pwTDIqzyFxU3YhDiN7p/c9tMFA4NhgRdEBO2QCG+CWmG7xr/Mw== + version "4.20.0" + resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-4.20.0.tgz#14941ab4a59e8956a5e4b4491a8ba2bd6619d1ac" + integrity sha512-s/G44lGQ1xB3tmtX6NNPomlkpL6CxLdmAvp/AGWWwi4qv5Te1+qji7tPSyr6gyuoPpdYiof1rKnWe3luy0MrYA== dependencies: jszip "^3.10.1" tmp "^0.2.3" @@ -21729,7 +21682,7 @@ shell-quote@^1.8.1: resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.1.tgz#6dbf4db75515ad5bac63b4f1894c3a154c766680" integrity sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA== -side-channel@^1.0.4, side-channel@^1.0.6: +side-channel@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2" integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== @@ -22697,9 +22650,9 @@ syncpack@10.6.1: ts-toolbelt "9.6.0" systeminformation@^5.3.3: - version "5.22.11" - resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-5.22.11.tgz#42be7b650ce0a8b940c06219a6647f6ab3f7a349" - integrity sha512-aLws5yi4KCHTb0BVvbodQY5bY8eW4asMRDTxTW46hqw9lGjACX6TlLdJrkdoHYRB0qs+MekqEq1zG7WDnWE8Ug== + version "5.22.8" + resolved "https://registry.yarnpkg.com/systeminformation/-/systeminformation-5.22.8.tgz#403126772defa1d2a2e4cf039e9f6d57d3f1f3ba" + integrity sha512-F1iWQ+PSfOzvLMGh2UXASaWLDq5o+1h1db13Kddl6ojcQ47rsJhpMtRrmBXfTA5QJgutC4KV67YRmXLuroIxrA== tabbable@^6.2.0: version "6.2.0" @@ -23370,7 +23323,7 @@ tsconfig-paths@^3.14.1, tsconfig-paths@^3.15.0: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@2.5.0, tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.4.1: +tslib@2.5.0, tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.4.1, tslib@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== @@ -23380,11 +23333,6 @@ tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0, tslib@^1.9.3: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.2.tgz#9c79d83272c9a7aaf166f73915c9667ecdde3cc9" integrity sha512-tTSkux6IGPnUGUd1XAZHcpu85MOkIl5zX49pO+jfsie3eP0B6pyhOlLXm3cAC6T7s+euSDDUUV+Acop5WmtkVg== -tslib@^2.5.0: - version "2.6.3" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" - integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== - tsscmp@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/tsscmp/-/tsscmp-1.0.6.tgz#85b99583ac3589ec4bfef825b5000aa911d605eb" @@ -23560,9 +23508,9 @@ typical@^5.2.0: integrity sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg== ua-parser-js@^1.0.2: - version "1.0.38" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.38.tgz#66bb0c4c0e322fe48edfe6d446df6042e62f25e2" - integrity sha512-Aq5ppTOfvrCMgAPneW1HfWj66Xi7XL+/mIy996R1/CLS/rcyJQm6QZdsKrUeivDFQ+Oc9Wyuwor8Ze8peEoUoQ== + version "1.0.37" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.37.tgz#b5dc7b163a5c1f0c510b08446aed4da92c46373f" + integrity sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ== uglify-js@^3.1.4: version "3.17.4" @@ -24033,9 +23981,9 @@ user-home@^1.1.1: integrity sha1-K1viOjK2Onyd640PKNSFcko98ZA= utf8-byte-length@^1.0.1: - version "1.0.5" - resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.5.tgz#f9f63910d15536ee2b2d5dd4665389715eac5c1e" - integrity sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" + integrity sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA== util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" @@ -24896,21 +24844,16 @@ ws@8.11.0: resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143" integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg== -ws@>=8.16.0: - version "8.17.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" - integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== +ws@>=8.16.0, ws@^8.11.0, ws@^8.13.0, ws@^8.2.3: + version "8.17.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.0.tgz#d145d18eca2ed25aaf791a183903f7be5e295fea" + integrity sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow== ws@^7.2.0, ws@^7.3.1: version "7.5.6" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.6.tgz#e59fc509fb15ddfb65487ee9765c5a51dec5fe7b" integrity sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA== -ws@^8.11.0, ws@^8.13.0, ws@^8.2.3: - version "8.17.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.0.tgz#d145d18eca2ed25aaf791a183903f7be5e295fea" - integrity sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow== - x-default-browser@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/x-default-browser/-/x-default-browser-0.4.0.tgz#70cf0da85da7c0ab5cb0f15a897f2322a6bdd481"