From 94f48335eff35ccd96e77ee87b6e69d296183ada Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 08:12:49 -0500 Subject: [PATCH 01/51] Add performance-tests workspace --- performance-tests/.eslintrc | 5 + performance-tests/capture.mjs | 114 + performance-tests/flow.report.html | 5478 +++++++++++++++++++++++ performance-tests/jsconfig.json | 10 + performance-tests/lighthouse-config.mjs | 9 + performance-tests/package.json | 18 + pnpm-workspace.yaml | 1 + 7 files changed, 5635 insertions(+) create mode 100644 performance-tests/.eslintrc create mode 100644 performance-tests/capture.mjs create mode 100644 performance-tests/flow.report.html create mode 100644 performance-tests/jsconfig.json create mode 100644 performance-tests/lighthouse-config.mjs create mode 100644 performance-tests/package.json diff --git a/performance-tests/.eslintrc b/performance-tests/.eslintrc new file mode 100644 index 0000000000..10d2238837 --- /dev/null +++ b/performance-tests/.eslintrc @@ -0,0 +1,5 @@ +{ + "env": { + "node": true + } +} diff --git a/performance-tests/capture.mjs b/performance-tests/capture.mjs new file mode 100644 index 0000000000..805f84864f --- /dev/null +++ b/performance-tests/capture.mjs @@ -0,0 +1,114 @@ +import fs from "fs"; +import { startFlow } from "lighthouse"; +import open from "open"; +import puppeteer from "puppeteer"; + +import lighthouseConfig from "./lighthouse-config.mjs"; + +const examples = [ + "Range" + + // "AutoFocus", + // "ContainerAttributes", + // "Controlled", + // "ControlledSelection", + // "CssModules", + // "CssVariables" + // "CustomCaption", + // "CustomDayButton", + // "CustomMultiple", + // "CustomSingle", + // "CustomWeek", + // "DefaultMonth", + // "Dialog", + // "Disabled", + // "DisableNavigation", + // "Dropdown", + // "DropdownMultipleMonths", + // "Fixedweeks", + // "FocusRecursive", + // "Footer", + // "Formatters", + // "FromToMonth", + // "FromToYear", + // "HideNavigation", + // "Input", + // "InputRange", + // "InputTime", + // "ItalianLabels", + // "ItalianLabels", + // "Jalali", + // "Keyboard", + // "ModifiersClassnames", + // "ModifiersCustom", + // "ModifiersDisabled", + // "ModifiersHidden", + // "ModifiersSelected", + // "ModifiersStyle", + // "ModifiersToday", + // "Multiple", + // "MultipleMinMax", + // "MultipleRequired", + // "MultipleMonths", + // "MultipleMonthsPaged", + // "NumberingSystem", + // "OutsideDays", + // "PastDatesDisabled", + // "Range", + // "RangeExcludeDisabled", + // "RangeMinMax", + // "RangeRequired", + // "RangeShiftKey", + // "Rtl", + // "Single", + // "SingleControlled", + // "SingleRequired", + // "Spanish", + // "SpanishWeekStartsOn", + // "Start", + // "StartEndMonths", + // "StylingCss", + // "StylingInline", + // "StylingModifiers", + // "TailwindCSS", + // "Testcase1567", + // "TestCase2047", + // "TestCase2389", + // "TimeZone", + // "Utc", + // "WeekIso", + // "Weeknumber", + // "WeeknumberCustom", + // "WeeknumberIso", + // "WeekStartsOn" +]; + +async function captureReport() { + const browser = await puppeteer.launch({ headless: true }); + const page = await browser.newPage(); + await page.emulateMediaFeatures([ + { name: "prefers-color-scheme", value: "light" } + ]); + const flow = await startFlow(page, { + name: "DayPicker User Flow", + config: lighthouseConfig + }); + + for (const example of examples) { + process.stdout.write(`Navigating ${example} example...`); + await flow.navigate(`http://localhost:4173/?example=${example}`, { + name: `${example} example` + }); + process.stdout.write(" done.\n"); + } + + await browser.close(); + + const report = await flow.generateReport(); + + fs.writeFileSync("flow.report.html", report); + + open("flow.report.html", { wait: false }); +} + +captureReport(); diff --git a/performance-tests/flow.report.html b/performance-tests/flow.report.html new file mode 100644 index 0000000000..dca9a781f2 --- /dev/null +++ b/performance-tests/flow.report.html @@ -0,0 +1,5478 @@ + + + + + + + + Lighthouse Flow Report + + + + + + +
+ + + + + + diff --git a/performance-tests/jsconfig.json b/performance-tests/jsconfig.json new file mode 100644 index 0000000000..d40b171b47 --- /dev/null +++ b/performance-tests/jsconfig.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "checkJs": true, + "module": "esnext", + "target": "es6", + "allowJs": true, + "moduleResolution": "Node" + }, + "include": ["**/*.js", "**/*.mjs"] +} diff --git a/performance-tests/lighthouse-config.mjs b/performance-tests/lighthouse-config.mjs new file mode 100644 index 0000000000..75fd4b190a --- /dev/null +++ b/performance-tests/lighthouse-config.mjs @@ -0,0 +1,9 @@ +/** @type {import("lighthouse").Config} */ +const config = { + extends: "lighthouse:default", + settings: { + onlyCategories: ["performance", "accessibility", "best-practices"] + } +}; + +export default config; diff --git a/performance-tests/package.json b/performance-tests/package.json new file mode 100644 index 0000000000..d5d5d8a8d4 --- /dev/null +++ b/performance-tests/package.json @@ -0,0 +1,18 @@ +{ + "name": "performance-tests", + "version": "1.0.0", + "description": "Performance tests for react-day-picker", + "main": "capture.mjs", + "scripts": { + "capture": "node capture.mjs" + }, + "keywords": [], + "module": "true", + "author": "", + "license": "ISC", + "dependencies": { + "lighthouse": "^12.2.1", + "open": "^10.1.0", + "puppeteer": "^23.5.3" + } +} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 17743b23f6..385962ed20 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,4 @@ packages: - "website" - "examples-app" + - "performance-tests" From b0a67287072fa0c2036434dc766fb9dfc99edfc2 Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 11:56:07 -0500 Subject: [PATCH 02/51] Clean up .gitignore --- .gitignore | 2 -- performance-tests/.gitignore | 1 + website/.gitignore | 1 + 3 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 performance-tests/.gitignore diff --git a/.gitignore b/.gitignore index f2367f8d54..38b4c001b3 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,3 @@ node_modules dist -/website/docs/api -/test-website diff --git a/performance-tests/.gitignore b/performance-tests/.gitignore new file mode 100644 index 0000000000..27a3afbbc3 --- /dev/null +++ b/performance-tests/.gitignore @@ -0,0 +1 @@ +reports diff --git a/website/.gitignore b/website/.gitignore index b2d6de3062..5f22291212 100644 --- a/website/.gitignore +++ b/website/.gitignore @@ -7,6 +7,7 @@ # Generated files .docusaurus .cache-loader +/docs/api # Misc .DS_Store From a73df40b5b34a4429221d1c7b68743424f89b2bb Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 11:56:42 -0500 Subject: [PATCH 03/51] Add RangeLong example --- examples/RangeLong.tsx | 22 ++++++++++++++++++++++ examples/index.ts | 1 + 2 files changed, 23 insertions(+) create mode 100644 examples/RangeLong.tsx diff --git a/examples/RangeLong.tsx b/examples/RangeLong.tsx new file mode 100644 index 0000000000..9c3d4173d9 --- /dev/null +++ b/examples/RangeLong.tsx @@ -0,0 +1,22 @@ +import React, { useState } from "react"; + +import { type DateRange, DayPicker } from "react-day-picker"; + +export function RangeLong() { + const [range, setRange] = useState({ + from: new Date("0001-01-01"), + to: new Date(2024, 9, 10) + }); + + return ( + + ); +} diff --git a/examples/index.ts b/examples/index.ts index ddd1f02b9d..fe93dcbce0 100644 --- a/examples/index.ts +++ b/examples/index.ts @@ -50,6 +50,7 @@ export * from "./RangeExcludeDisabled"; export * from "./RangeMinMax"; export * from "./RangeRequired"; export * from "./RangeShiftKey"; +export * from "./RangeLong"; export * from "./Rtl"; export * from "./Single"; export * from "./SingleControlled"; From 79845931124d8bbadd899b0cf4672a520fde333b Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 11:57:01 -0500 Subject: [PATCH 04/51] Update capture and deps --- examples-app/tsconfig.app.json | 4 +- performance-tests/capture.mjs | 101 +- performance-tests/flow.report.html | 5478 ------------------------ performance-tests/flows/range-long.mjs | 17 + performance-tests/package.json | 1 + pnpm-lock.yaml | 1562 ++++++- react-day-picker.code-workspace | 3 + 7 files changed, 1367 insertions(+), 5799 deletions(-) delete mode 100644 performance-tests/flow.report.html create mode 100644 performance-tests/flows/range-long.mjs diff --git a/examples-app/tsconfig.app.json b/examples-app/tsconfig.app.json index d739292ae0..a628417089 100644 --- a/examples-app/tsconfig.app.json +++ b/examples-app/tsconfig.app.json @@ -19,8 +19,8 @@ /* Linting */ "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, + "noUnusedLocals": false, + "noUnusedParameters": false, "noFallthroughCasesInSwitch": true }, "include": ["src"] diff --git a/performance-tests/capture.mjs b/performance-tests/capture.mjs index 805f84864f..34d46bef85 100644 --- a/performance-tests/capture.mjs +++ b/performance-tests/capture.mjs @@ -3,112 +3,33 @@ import { startFlow } from "lighthouse"; import open from "open"; import puppeteer from "puppeteer"; +import { rangeLong } from "./flows/range-long.mjs"; import lighthouseConfig from "./lighthouse-config.mjs"; -const examples = [ - "Range" - - // "AutoFocus", - // "ContainerAttributes", - // "Controlled", - // "ControlledSelection", - // "CssModules", - // "CssVariables" - // "CustomCaption", - // "CustomDayButton", - // "CustomMultiple", - // "CustomSingle", - // "CustomWeek", - // "DefaultMonth", - // "Dialog", - // "Disabled", - // "DisableNavigation", - // "Dropdown", - // "DropdownMultipleMonths", - // "Fixedweeks", - // "FocusRecursive", - // "Footer", - // "Formatters", - // "FromToMonth", - // "FromToYear", - // "HideNavigation", - // "Input", - // "InputRange", - // "InputTime", - // "ItalianLabels", - // "ItalianLabels", - // "Jalali", - // "Keyboard", - // "ModifiersClassnames", - // "ModifiersCustom", - // "ModifiersDisabled", - // "ModifiersHidden", - // "ModifiersSelected", - // "ModifiersStyle", - // "ModifiersToday", - // "Multiple", - // "MultipleMinMax", - // "MultipleRequired", - // "MultipleMonths", - // "MultipleMonthsPaged", - // "NumberingSystem", - // "OutsideDays", - // "PastDatesDisabled", - // "Range", - // "RangeExcludeDisabled", - // "RangeMinMax", - // "RangeRequired", - // "RangeShiftKey", - // "Rtl", - // "Single", - // "SingleControlled", - // "SingleRequired", - // "Spanish", - // "SpanishWeekStartsOn", - // "Start", - // "StartEndMonths", - // "StylingCss", - // "StylingInline", - // "StylingModifiers", - // "TailwindCSS", - // "Testcase1567", - // "TestCase2047", - // "TestCase2389", - // "TimeZone", - // "Utc", - // "WeekIso", - // "Weeknumber", - // "WeeknumberCustom", - // "WeeknumberIso", - // "WeekStartsOn" -]; - async function captureReport() { - const browser = await puppeteer.launch({ headless: true }); + const browser = await puppeteer.launch({ + headless: false, + defaultViewport: { width: 1200, height: 800, deviceScaleFactor: 2 } + }); const page = await browser.newPage(); await page.emulateMediaFeatures([ { name: "prefers-color-scheme", value: "light" } ]); const flow = await startFlow(page, { - name: "DayPicker User Flow", + name: "DayPicker Examples Flow", config: lighthouseConfig }); - for (const example of examples) { - process.stdout.write(`Navigating ${example} example...`); - await flow.navigate(`http://localhost:4173/?example=${example}`, { - name: `${example} example` - }); - process.stdout.write(" done.\n"); - } + await rangeLong(flow, page); await browser.close(); const report = await flow.generateReport(); - fs.writeFileSync("flow.report.html", report); - - open("flow.report.html", { wait: false }); + const timestamp = new Date().toISOString().replace(/[:.]/g, "-"); + const reportFileName = `./reports/flow.report.${timestamp}.html`; + fs.writeFileSync(reportFileName, report); + open(reportFileName, { wait: false }); } captureReport(); diff --git a/performance-tests/flow.report.html b/performance-tests/flow.report.html deleted file mode 100644 index dca9a781f2..0000000000 --- a/performance-tests/flow.report.html +++ /dev/null @@ -1,5478 +0,0 @@ - - - - - - - - Lighthouse Flow Report - - - - - - -
- - - - - - diff --git a/performance-tests/flows/range-long.mjs b/performance-tests/flows/range-long.mjs new file mode 100644 index 0000000000..a95772422d --- /dev/null +++ b/performance-tests/flows/range-long.mjs @@ -0,0 +1,17 @@ +/** + * @param {import("lighthouse").UserFlow} flow + * @param {import("puppeteer").Page} page + */ +export async function rangeLong(flow, page) { + await flow.navigate("http://localhost:4173/?example=RangeLong", { + name: "Range selection with disabled dates" + }); + await flow.startTimespan(); + + // Click a day after the range + await page.click('td[data-day="2024-10-16"] button'); + + // Await the cell to be aria-selected + await page.waitForSelector('td[data-day="2024-10-16"][aria-selected="true"]'); + await flow.endTimespan(); +} diff --git a/performance-tests/package.json b/performance-tests/package.json index d5d5d8a8d4..e20d093659 100644 --- a/performance-tests/package.json +++ b/performance-tests/package.json @@ -4,6 +4,7 @@ "description": "Performance tests for react-day-picker", "main": "capture.mjs", "scripts": { + "start-server": "pnpm --filter examples-app run build && pnpm --filter examples-app run preview", "capture": "node capture.mjs" }, "keywords": [], diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1195383148..5449803010 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -68,7 +68,7 @@ importers: version: 2.30.0(@typescript-eslint/parser@8.6.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-typescript@3.6.3)(eslint@8.57.0) eslint-plugin-jest: specifier: ^28.8.3 - version: 28.8.3(@typescript-eslint/eslint-plugin@8.4.0(@typescript-eslint/parser@8.6.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(jest@29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@types/node@22.5.4)(typescript@5.5.4)))(typescript@5.5.4) + version: 28.8.3(@typescript-eslint/eslint-plugin@8.4.0(@typescript-eslint/parser@8.6.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(jest@29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@swc/core@1.7.35)(@types/node@22.5.4)(typescript@5.5.4)))(typescript@5.5.4) eslint-plugin-prettier: specifier: ^5.2.1 version: 5.2.1(@types/eslint@8.56.10)(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.3.3) @@ -86,10 +86,10 @@ importers: version: 6.3.0(eslint@8.57.0)(typescript@5.5.4) html-validate: specifier: ^8.23.0 - version: 8.23.0(jest-diff@29.7.0)(jest-snapshot@29.7.0)(jest@29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@types/node@22.5.4)(typescript@5.5.4))) + version: 8.23.0(jest-diff@29.7.0)(jest-snapshot@29.7.0)(jest@29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@swc/core@1.7.35)(@types/node@22.5.4)(typescript@5.5.4))) jest: specifier: ^29.7.0 - version: 29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@types/node@22.5.4)(typescript@5.5.4)) + version: 29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@swc/core@1.7.35)(@types/node@22.5.4)(typescript@5.5.4)) jest-environment-jsdom: specifier: ^29.7.0 version: 29.7.0 @@ -110,10 +110,10 @@ importers: version: 18.3.1(react@18.3.1) ts-jest: specifier: ^29.2.5 - version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@types/node@22.5.4)(typescript@5.5.4)))(typescript@5.5.4) + version: 29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@swc/core@1.7.35)(@types/node@22.5.4)(typescript@5.5.4)))(typescript@5.5.4) ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@22.5.4)(typescript@5.5.4) + version: 10.9.2(@swc/core@1.7.35)(@types/node@22.5.4)(typescript@5.5.4) tslib: specifier: ^2.7.0 version: 2.7.0 @@ -167,23 +167,35 @@ importers: specifier: ^5.4.8 version: 5.4.8(@types/node@22.5.4)(terser@5.31.1) + performance-tests: + dependencies: + lighthouse: + specifier: ^12.2.1 + version: 12.2.1 + open: + specifier: ^10.1.0 + version: 10.1.0 + puppeteer: + specifier: ^23.5.3 + version: 23.5.3(typescript@5.5.4) + website: dependencies: '@docusaurus/core': specifier: 3.5.2 - version: 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + version: 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) '@docusaurus/plugin-client-redirects': specifier: ^3.5.2 - version: 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + version: 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) '@docusaurus/preset-classic': specifier: ^3.5.2 - version: 3.5.2(@algolia/client-search@4.24.0)(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@types/react@18.3.8)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.14.0)(typescript@5.5.4) + version: 3.5.2(@algolia/client-search@4.24.0)(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(@types/react@18.3.8)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.14.0)(typescript@5.5.4) '@docusaurus/remark-plugin-npm2yarn': specifier: ^3.5.2 version: 3.5.2 '@docusaurus/theme-common': specifier: ^3.5.2 - version: 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + version: 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) '@mdx-js/react': specifier: ^3.0.1 version: 3.0.1(@types/react@18.3.8)(react@18.3.1) @@ -214,13 +226,13 @@ importers: devDependencies: '@docusaurus/module-type-aliases': specifier: 3.5.2 - version: 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@docusaurus/tsconfig': specifier: 3.5.2 version: 3.5.2 '@docusaurus/types': specifier: 3.5.2 - version: 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) docusaurus-plugin-typedoc: specifier: ^1.0.5 version: 1.0.5(typedoc-plugin-markdown@4.2.7(typedoc@0.26.7(typescript@5.5.4))) @@ -1424,6 +1436,21 @@ packages: resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + '@formatjs/ecma402-abstract@2.2.0': + resolution: {integrity: sha512-IpM+ev1E4QLtstniOE29W1rqH9eTdx5hQdNL8pzrflMj/gogfaoONZqL83LUeQScHAvyMbpqP5C9MzNf+fFwhQ==} + + '@formatjs/fast-memoize@2.2.1': + resolution: {integrity: sha512-XS2RcOSyWxmUB7BUjj3mlPH0exsUzlf6QfhhijgI941WaJhVxXQ6mEWkdUFIdnKi3TuTYxRdelsgv3mjieIGIA==} + + '@formatjs/icu-messageformat-parser@2.7.10': + resolution: {integrity: sha512-wlQfqCZ7PURkUNL2+8VTEFavPovtADU/isSKLFvDbdFmV7QPZIYqFMkhklaDYgMyLSBJa/h2MVQ2aFvoEJhxgg==} + + '@formatjs/icu-skeleton-parser@1.8.4': + resolution: {integrity: sha512-LMQ1+Wk1QSzU4zpd5aSu7+w5oeYhupRwZnMQckLPRYhSjf2/8JWQ882BauY9NyHxs5igpuQIXZDgfkaH3PoATg==} + + '@formatjs/intl-localematcher@0.5.5': + resolution: {integrity: sha512-t5tOGMgZ/i5+ALl2/offNqAQq/lfUnKLEw0mXQI4N4bqpedhrSE+fyKLpwnd22sK0dif6AV+ufQcTsKShB9J1g==} + '@hapi/hoek@9.3.0': resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} @@ -1577,6 +1604,9 @@ packages: resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} engines: {node: '>=12.4.0'} + '@paulirish/trace_engine@0.0.32': + resolution: {integrity: sha512-KxWFdRNbv13U8bhYaQvH6gLG9CVEt2jKeosyOOYILVntWEVWhovbgDrbOiZ12pJO3vjZs0Zgbd3/Zgde98woEA==} + '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} engines: {node: '>=14'} @@ -1600,6 +1630,11 @@ packages: '@polka/url@1.0.0-next.25': resolution: {integrity: sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==} + '@puppeteer/browsers@2.4.0': + resolution: {integrity: sha512-x8J1csfIygOwf6D6qUAZ0ASk3z63zPb7wkNeHRerCMh82qWKUrOgkuP005AJC8lDL6/evtXETGEJVcwykKT4/g==} + engines: {node: '>=18'} + hasBin: true + '@rollup/rollup-android-arm-eabi@4.21.0': resolution: {integrity: sha512-WTWD8PfoSAJ+qL87lE7votj3syLavxunWhzCnx3XFxFiI/BA/r3X7MUM8dVrH8rb2r4AiO8jJsr3ZjdaftmnfA==} cpu: [arm] @@ -1683,6 +1718,30 @@ packages: '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + '@sentry/core@6.19.7': + resolution: {integrity: sha512-tOfZ/umqB2AcHPGbIrsFLcvApdTm9ggpi/kQZFkej7kMphjT+SGBiQfYtjyg9jcRW+ilAR4JXC9BGKsdEQ+8Vw==} + engines: {node: '>=6'} + + '@sentry/hub@6.19.7': + resolution: {integrity: sha512-y3OtbYFAqKHCWezF0EGGr5lcyI2KbaXW2Ik7Xp8Mu9TxbSTuwTe4rTntwg8ngPjUQU3SUHzgjqVB8qjiGqFXCA==} + engines: {node: '>=6'} + + '@sentry/minimal@6.19.7': + resolution: {integrity: sha512-wcYmSJOdvk6VAPx8IcmZgN08XTXRwRtB1aOLZm+MVHjIZIhHoBGZJYTVQS/BWjldsamj2cX3YGbGXNunaCfYJQ==} + engines: {node: '>=6'} + + '@sentry/node@6.19.7': + resolution: {integrity: sha512-gtmRC4dAXKODMpHXKfrkfvyBL3cI8y64vEi3fDD046uqYcrWdgoQsffuBbxMAizc6Ez1ia+f0Flue6p15Qaltg==} + engines: {node: '>=6'} + + '@sentry/types@6.19.7': + resolution: {integrity: sha512-jH84pDYE+hHIbVnab3Hr+ZXr1v8QABfhx39KknxqKWr2l0oEItzepV0URvbEhB446lk/S/59230dlUUIBGsXbg==} + engines: {node: '>=6'} + + '@sentry/utils@6.19.7': + resolution: {integrity: sha512-z95ECmE3i9pbWoXQrD/7PgkBAzJYR+iXtPuTkpBjDKs86O3mT+PXOT3BAn79w2wkn7/i3vOGD2xVr1uiMl26dA==} + engines: {node: '>=6'} + '@shikijs/core@1.16.2': resolution: {integrity: sha512-XSVH5OZCvE4WLMgdoBqfPMYmGHGmCC3OgZhw0S7KcSi2XKZ+5oHGe71GFnTljgdOxvxx5WrRks6QoTLKrl1eAA==} @@ -1802,6 +1861,81 @@ packages: resolution: {integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==} engines: {node: '>=14'} + '@swc/core-darwin-arm64@1.7.35': + resolution: {integrity: sha512-BQSSozVxjxS+SVQz6e3GC/+OBWGIK3jfe52pWdANmycdjF3ch7lrCKTHTU7eHwyoJ96mofszPf5AsiVJF34Fwg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + + '@swc/core-darwin-x64@1.7.35': + resolution: {integrity: sha512-44TYdKN/EWtkU88foXR7IGki9JzhEJzaFOoPevfi9Xe7hjAD/x2+AJOWWqQNzDPMz9+QewLdUVLyR6s5okRgtg==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + + '@swc/core-linux-arm-gnueabihf@1.7.35': + resolution: {integrity: sha512-ccfA5h3zxwioD+/z/AmYtkwtKz9m4rWTV7RoHq6Jfsb0cXHrd6tbcvgqRWXra1kASlE+cDWsMtEZygs9dJRtUQ==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + + '@swc/core-linux-arm64-gnu@1.7.35': + resolution: {integrity: sha512-hx65Qz+G4iG/IVtxJKewC5SJdki8PAPFGl6gC/57Jb0+jA4BIoGLD/J3Q3rCPeoHfdqpkCYpahtyUq8CKx41Jg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-arm64-musl@1.7.35': + resolution: {integrity: sha512-kL6tQL9No7UEoEvDRuPxzPTpxrvbwYteNRbdChSSP74j13/55G2/2hLmult5yFFaWuyoyU/2lvzjRL/i8OLZxg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-x64-gnu@1.7.35': + resolution: {integrity: sha512-Ke4rcLQSwCQ2LHdJX1FtnqmYNQ3IX6BddKlUtS7mcK13IHkQzZWp0Dcu6MgNA3twzb/dBpKX5GLy07XdGgfmyw==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-linux-x64-musl@1.7.35': + resolution: {integrity: sha512-T30tlLnz0kYyDFyO5RQF5EQ4ENjW9+b56hEGgFUYmfhFhGA4E4V67iEx7KIG4u0whdPG7oy3qjyyIeTb7nElEw==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-win32-arm64-msvc@1.7.35': + resolution: {integrity: sha512-CfM/k8mvtuMyX+okRhemfLt784PLS0KF7Q9djA8/Dtavk0L5Ghnq+XsGltO3d8B8+XZ7YOITsB14CrjehzeHsg==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + + '@swc/core-win32-ia32-msvc@1.7.35': + resolution: {integrity: sha512-ATB3uuH8j/RmS64EXQZJSbo2WXfRNpTnQszHME/sGaexsuxeijrp3DTYSFAA3R2Bu6HbIIX6jempe1Au8I3j+A==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + + '@swc/core-win32-x64-msvc@1.7.35': + resolution: {integrity: sha512-iDGfQO1571NqWUXtLYDhwIELA/wadH42ioGn+J9R336nWx40YICzy9UQyslWRhqzhQ5kT+QXAW/MoCWc058N6Q==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] + + '@swc/core@1.7.35': + resolution: {integrity: sha512-3cUteCTbr2r5jqfgx0r091sfq5Mgh6F1SQh8XAOnSvtKzwv2bC31mvBHVAieD1uPa2kHJhLav20DQgXOhpEitw==} + engines: {node: '>=10'} + peerDependencies: + '@swc/helpers': '*' + peerDependenciesMeta: + '@swc/helpers': + optional: true + + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + '@swc/types@0.1.13': + resolution: {integrity: sha512-JL7eeCk6zWCbiYQg2xQSdLXQJl8Qoc9rXmG2cEKvHe3CKwMHwHGpfOb8frzNLmbycOo6I51qxnLnn9ESf4I20Q==} + '@szmarczak/http-timer@5.0.1': resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} engines: {node: '>=14.16'} @@ -1839,6 +1973,9 @@ packages: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} + '@tootallnate/quickjs-emscripten@0.23.0': + resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} + '@trivago/prettier-plugin-sort-imports@4.3.0': resolution: {integrity: sha512-r3n0onD3BTOVUNPhR4lhVK4/pABGpbA7bW3eumZnYdKaHkf1qEC+Mag6DPbGNuuh0eG8AaYj+YqmVHSiGslaTQ==} peerDependencies: @@ -2068,6 +2205,9 @@ packages: '@types/yargs@17.0.32': resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} + '@types/yauzl@2.10.3': + resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} + '@typescript-eslint/eslint-plugin@7.18.0': resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==} engines: {node: ^18.18.0 || >=20.0.0} @@ -2319,6 +2459,10 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} + agent-base@7.1.1: + resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} + engines: {node: '>= 14'} + aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} @@ -2358,6 +2502,10 @@ packages: ansi-align@3.0.1: resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} @@ -2449,6 +2597,10 @@ packages: resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} engines: {node: '>= 0.4'} + ast-types@0.13.4: + resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} + engines: {node: '>=4'} + astring@1.8.6: resolution: {integrity: sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==} hasBin: true @@ -2479,6 +2631,13 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} + axe-core@4.10.0: + resolution: {integrity: sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==} + engines: {node: '>=4'} + + b4a@1.6.7: + resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} + babel-jest@29.7.0: resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2535,6 +2694,28 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + bare-events@2.5.0: + resolution: {integrity: sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==} + + bare-fs@2.3.5: + resolution: {integrity: sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==} + + bare-os@2.4.4: + resolution: {integrity: sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ==} + + bare-path@2.1.3: + resolution: {integrity: sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==} + + bare-stream@2.3.0: + resolution: {integrity: sha512-pVRWciewGUeCyKEuRxwv06M079r+fRjAQjBEK2P6OYGrO43O+Z0LrPZZEjlc4mB6C2RpZ9AxJ1s7NLEtOHO6eA==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + + basic-ftp@5.0.5: + resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} + engines: {node: '>=10.0.0'} + batch@0.6.1: resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} @@ -2593,9 +2774,19 @@ packages: bser@2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} + buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + + bundle-name@4.1.0: + resolution: {integrity: sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==} + engines: {node: '>=18'} + bytes@3.0.0: resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} engines: {node: '>= 0.8'} @@ -2690,10 +2881,20 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} + chrome-launcher@1.1.2: + resolution: {integrity: sha512-YclTJey34KUm5jB1aEJCq807bSievi7Nb/TU4Gu504fUYi3jw3KCIaH6L7nFWQhdEgH3V+wCh+kKD1P5cXnfxw==} + engines: {node: '>=12.13.0'} + hasBin: true + chrome-trace-event@1.0.4: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} + chromium-bidi@0.8.0: + resolution: {integrity: sha512-uJydbGdTw0DEUjhoogGveneJVWX/9YuqkWePzMmkBYwtdAqo5d3J/ovNKFr+/2hWXYmYCr6it8mSSTIj6SS6Ug==} + peerDependencies: + devtools-protocol: '*' + ci-info@3.9.0: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} @@ -2809,6 +3010,10 @@ packages: config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} + configstore@5.0.1: + resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} + engines: {node: '>=8'} + configstore@6.0.0: resolution: {integrity: sha512-cD31W1v3GqUlQvbBCGcXmd2Nj9SvLDOP1oQ0YFuLETufzSPaKp11rYBsSOm7rCsW3OnIRAFM3OxRhceaXNYHkA==} engines: {node: '>=12'} @@ -2838,6 +3043,10 @@ packages: cookie-signature@1.0.6: resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + cookie@0.4.2: + resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} + engines: {node: '>= 0.6'} + cookie@0.6.0: resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==} engines: {node: '>= 0.6'} @@ -2877,6 +3086,15 @@ packages: typescript: optional: true + cosmiconfig@9.0.0: + resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + create-jest@29.7.0: resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -2889,10 +3107,17 @@ packages: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} + crypto-random-string@2.0.0: + resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} + engines: {node: '>=8'} + crypto-random-string@4.0.0: resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==} engines: {node: '>=12'} + csp_evaluator@1.1.1: + resolution: {integrity: sha512-N3ASg0C4kNPUaNxt1XAvzHIVuzdtr8KLgfk1O8WDyimp1GisPAHESupArO2ieHk9QWbrJ/WkQODyh21Ps/xhxw==} + css-declaration-sorter@7.2.0: resolution: {integrity: sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow==} engines: {node: ^14 || ^16 || >=18} @@ -3006,6 +3231,10 @@ packages: csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + data-uri-to-buffer@6.0.2: + resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} + engines: {node: '>= 14'} + data-urls@3.0.2: resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} engines: {node: '>=12'} @@ -3056,6 +3285,15 @@ packages: supports-color: optional: true + debug@4.3.7: + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + decimal.js@10.4.3: resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} @@ -3089,6 +3327,14 @@ packages: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} + default-browser-id@5.0.0: + resolution: {integrity: sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==} + engines: {node: '>=18'} + + default-browser@5.2.1: + resolution: {integrity: sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==} + engines: {node: '>=18'} + default-gateway@6.0.3: resolution: {integrity: sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==} engines: {node: '>= 10'} @@ -3105,10 +3351,18 @@ packages: resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} engines: {node: '>=8'} + define-lazy-prop@3.0.0: + resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==} + engines: {node: '>=12'} + define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} + degenerator@5.0.1: + resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} + engines: {node: '>= 14'} + del@6.1.1: resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} engines: {node: '>=10'} @@ -3153,6 +3407,12 @@ packages: devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + devtools-protocol@0.0.1312386: + resolution: {integrity: sha512-DPnhUXvmvKT2dFA/j7B+riVLUt9Q6RKJlcppojL5CoRywJJKLDYnRlw0gTFKfgDPHP5E04UoB71SxoJlVZy8FA==} + + devtools-protocol@0.0.1342118: + resolution: {integrity: sha512-75fMas7PkYNDTmDyb6PRJCH7ILmHLp+BhrZGeMsa4bCh40DTxgCz2NRy5UDzII4C5KuD0oBMZ9vXKhEl6UD/3w==} + diff-sequences@29.6.3: resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3222,6 +3482,10 @@ packages: dot-case@3.0.4: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} + dot-prop@5.3.0: + resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} + engines: {node: '>=8'} + dot-prop@6.0.1: resolution: {integrity: sha512-tE7ztYzXHIeyvc7N+hR3oi7FIbf/NIjVP9hmAt3yMXzrQ072/fpjGLx2GxNxGxUl5V73MEqYzioOMoVhGMJ5cA==} engines: {node: '>=10'} @@ -3270,10 +3534,17 @@ packages: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + enhanced-resolve@5.17.0: resolution: {integrity: sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==} engines: {node: '>=10.13.0'} + enquirer@2.4.1: + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} + entities@2.2.0: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} @@ -3281,6 +3552,10 @@ packages: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} @@ -3599,12 +3874,20 @@ packages: extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + extract-zip@2.0.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} fast-diff@1.3.0: resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} @@ -3631,6 +3914,9 @@ packages: fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + fd-slicer@1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + feed@4.2.2: resolution: {integrity: sha512-u5/sxGfiMfZNtJ3OvQpXcvotFpYkL0n9u9mM2vkui2nGo8b4wvDkJ8gAkYqbA8QpGyFCv3RK0Z+Iv+9veCS9bQ==} engines: {node: '>=0.4.0'} @@ -3792,6 +4078,10 @@ packages: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} engines: {node: '>=8.0.0'} + get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} @@ -3803,6 +4093,10 @@ packages: get-tsconfig@4.7.5: resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} + get-uri@6.0.3: + resolution: {integrity: sha512-BzUrJBS9EcUb4cFol8r4W3v1cPsSyajLSthNkz5BxbpDcHN5tIrM10E2eNvfnvBn3DaT3DUgx0OpsBKkaOpanw==} + engines: {node: '>= 14'} + github-slugger@1.5.0: resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} @@ -4036,6 +4330,10 @@ packages: resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} engines: {node: '>= 0.8'} + http-link-header@1.1.3: + resolution: {integrity: sha512-3cZ0SRL8fb9MUlU3mKM61FcQvPfXx2dBrZW3Vbg5CXa8jFlK8OaEpePenLe1oEXQduhz8b0QjsqfS59QP4AJDQ==} + engines: {node: '>=6.0.0'} + http-parser-js@0.5.8: resolution: {integrity: sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==} @@ -4043,6 +4341,10 @@ packages: resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} engines: {node: '>= 6'} + http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} + http-proxy-middleware@2.0.6: resolution: {integrity: sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==} engines: {node: '>=12.0.0'} @@ -4064,6 +4366,10 @@ packages: resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} engines: {node: '>= 6'} + https-proxy-agent@7.0.5: + resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} + engines: {node: '>= 14'} + human-signals@2.1.0: resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} engines: {node: '>=10.17.0'} @@ -4086,6 +4392,9 @@ packages: resolution: {integrity: sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==} engines: {node: '>=4'} + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + ignore@5.3.1: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} @@ -4099,6 +4408,9 @@ packages: engines: {node: '>=16.x'} hasBin: true + image-ssim@0.2.0: + resolution: {integrity: sha512-W7+sO6/yhxy83L0G7xR8YAc5Z5QFtYEXXRV6EaE8tuYBZJnA3gVgp3q7X7muhLZVodeb9UfvjSbwt9VJwjIYAg==} + immer@9.0.21: resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==} @@ -4158,9 +4470,16 @@ packages: resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} engines: {node: '>= 0.10'} + intl-messageformat@10.7.0: + resolution: {integrity: sha512-2P06M9jFTqJnEQzE072VGPjbAx6ZG1YysgopAwc8ui0ajSjtwX1MeQ6bXFXIzKcNENJTizKkcJIcZ0zlpl1zSg==} + invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} + ip-address@9.0.5: + resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} + engines: {node: '>= 12'} + ipaddr.js@1.9.1: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} @@ -4232,6 +4551,11 @@ packages: engines: {node: '>=8'} hasBin: true + is-docker@3.0.0: + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + hasBin: true + is-extendable@0.1.1: resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==} engines: {node: '>=0.10.0'} @@ -4262,6 +4586,11 @@ packages: is-hexadecimal@2.0.1: resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + is-inside-container@1.0.0: + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} + hasBin: true + is-installed-globally@0.4.0: resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} engines: {node: '>=10'} @@ -4374,6 +4703,10 @@ packages: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} + is-wsl@3.1.0: + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} + is-yarn-global@0.4.1: resolution: {integrity: sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ==} engines: {node: '>=12'} @@ -4581,6 +4914,13 @@ packages: joi@17.13.3: resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==} + jpeg-js@0.4.4: + resolution: {integrity: sha512-WZzeDOEtTOBK4Mdsar0IqEU5sMr3vSV2RqkAIzUEV2BHnUfKGyswWFPFwK5EeDo93K3FohSHbLAjj0s1Wzd+dg==} + + js-library-detector@6.7.0: + resolution: {integrity: sha512-c80Qupofp43y4cJ7+8TTDN/AsDwLi5oOm/plBrWI+iQt485vKXCco+yVmOwEgdo9VOdsYTuV0UlTeetVPTriXA==} + engines: {node: '>=12'} + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -4592,6 +4932,9 @@ packages: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true + jsbn@1.1.0: + resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} + jsdom@20.0.3: resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} engines: {node: '>=14'} @@ -4676,6 +5019,17 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} + lighthouse-logger@2.0.1: + resolution: {integrity: sha512-ioBrW3s2i97noEmnXxmUq7cjIcVRjT5HBpAYy8zE11CxU9HqlWHHeRxfeN1tn8F7OEMVPIC9x1f8t3Z7US9ehQ==} + + lighthouse-stack-packs@1.12.1: + resolution: {integrity: sha512-i4jTmg7tvZQFwNFiwB+nCK6a7ICR68Xcwo+VIVd6Spi71vBNFUlds5HiDrSbClZdkQDON2Bhqv+KKJIo5zkPeA==} + + lighthouse@12.2.1: + resolution: {integrity: sha512-3deFGaQ/eTCzQekgWUcgLdWAjS81KHPG406r+A61KKLsxEcORw34A1aixU6G2lgqpdd95QZpdoSKxyy/jJfsHg==} + engines: {node: '>=18.16'} + hasBin: true + lilconfig@3.1.2: resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} engines: {node: '>=14'} @@ -4732,6 +5086,9 @@ packages: longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + lookup-closest-locale@6.2.0: + resolution: {integrity: sha512-/c2kL+Vnp1jnV6K6RpDTHK3dgg0Tu2VVp+elEiJpjfS1UyY7AjOYHohRug6wT0OpoX2qFgNORndE9RqesfVxWQ==} + loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true @@ -4749,6 +5106,13 @@ packages: lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + lru-cache@7.18.3: + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} + engines: {node: '>=12'} + + lru_map@0.3.3: + resolution: {integrity: sha512-Pn9cox5CsMYngeDbmChANltQl+5pi6XmTrraMSzhPmMBbmgcxmqWry0U3PGapCU1yB4/LqCcom7qhHZiF/jGfQ==} + lunr@2.3.9: resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} @@ -4756,6 +5120,10 @@ packages: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true + make-dir@3.1.0: + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} + make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} @@ -4777,6 +5145,9 @@ packages: markdown-table@3.0.3: resolution: {integrity: sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==} + marky@1.2.5: + resolution: {integrity: sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==} + mdast-util-directive@3.0.0: resolution: {integrity: sha512-JUpYOqKI4mM3sZcNxmF/ox04XYFFkNwr0CFlrQIkCwbvH0xzMCqkMqAde9wRd80VAhaUrwFwKm2nxretdT1h7Q==} @@ -4858,6 +5229,9 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} + metaviewport-parser@0.3.0: + resolution: {integrity: sha512-EoYJ8xfjQ6kpe9VbVHvZTZHiOl4HL1Z18CrZ+qahvLXT7ZO4YTC2JMyt5FaUp9JJp6J4Ybb/z7IsCXZt86/QkQ==} + methods@1.1.2: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} @@ -5053,6 +5427,9 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} + mitt@3.0.1: + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + mockdate@3.0.5: resolution: {integrity: sha512-iniQP4rj1FhBdBYS/+eQv7j1tadJ9lJtdzgOpvsOHng/GbcDh2Fhdeq+ZRldrPYdXvCyfFUmFeEwEGXZB5I/AQ==} @@ -5088,6 +5465,10 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + netmask@2.0.2: + resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} + engines: {node: '>= 0.4.0'} + no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} @@ -5187,6 +5568,10 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} + open@10.1.0: + resolution: {integrity: sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==} + engines: {node: '>=18'} + open@8.4.2: resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} engines: {node: '>=12'} @@ -5243,6 +5628,14 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} + pac-proxy-agent@7.0.2: + resolution: {integrity: sha512-BFi3vZnO9X5Qt6NRz7ZOaPja3ic0PhlsmCRYLOpN11+mWBCR6XJDqW5RF3j8jm4WGGQZtBA+bTfxYzeKW73eHg==} + engines: {node: '>= 14'} + + pac-resolver@7.0.1: + resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==} + engines: {node: '>= 14'} + package-json-from-dist@1.0.0: resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} @@ -5257,6 +5650,9 @@ packages: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} + parse-cache-control@1.0.1: + resolution: {integrity: sha512-60zvsJReQPX5/QP0Kzfd/VrpjScIQ7SHBW6bFCYfEP+fp0Eppr1SHhIO5nd1PjZtvclzSzES9D/p5nFJurwfWg==} + parse-entities@4.0.1: resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} @@ -5323,6 +5719,9 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} + pend@1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + periscopic@3.1.0: resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} @@ -5640,6 +6039,10 @@ packages: process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + prompts@2.4.2: resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} engines: {node: '>= 6'} @@ -5657,9 +6060,19 @@ packages: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} + proxy-agent@6.4.0: + resolution: {integrity: sha512-u0piLU+nCOHMgGjRbimiXmA9kM/L9EHh3zL81xCdp7m+Y2pHIsnmbdDoEDoAz5geaonNR6q6+yOPQs6n4T6sBQ==} + engines: {node: '>= 14'} + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + psl@1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} + pump@3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} + punycode.js@2.3.1: resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} engines: {node: '>=6'} @@ -5675,6 +6088,15 @@ packages: resolution: {integrity: sha512-FLpr4flz5xZTSJxSeaheeMKN/EDzMdK7b8PTOC6a5PYFKTucWbdqjgqaEyH0shFiSJrVB1+Qqi4Tk19ccU6Aug==} engines: {node: '>=12.20'} + puppeteer-core@23.5.3: + resolution: {integrity: sha512-V58MZD/B3CwkYsqSEQlHKbavMJptF04fzhMdUpiCRCmUVhwZNwSGEPhaiZ1f8I3ABQUirg3VNhXVB6Z1ubHXtQ==} + engines: {node: '>=18'} + + puppeteer@23.5.3: + resolution: {integrity: sha512-FghmfBsr/UUpe48OiCg1gV3W4vVfQJKjQehbF07SjnQvEpWcvPTah1nykfGWdOQQ1ydJPIXcajzWN7fliCU3zw==} + engines: {node: '>=18'} + hasBin: true + pure-rand@6.1.0: resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} @@ -5688,6 +6110,9 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + queue-tick@1.0.1: + resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} + queue@6.0.2: resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} @@ -5967,6 +6392,10 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true + robots-parser@3.0.1: + resolution: {integrity: sha512-s+pyvQeIKIZ0dx5iJiQk1tPLJAWln39+MI5jtM8wnyws+G5azk+dMnMX0qfbqNetKKNgcWWOdi0sfm+FbQbgdQ==} + engines: {node: '>=10.0.0'} + rollup@4.21.0: resolution: {integrity: sha512-vo+S/lfA2lMS7rZ2Qoubi6I5hwZwzXeUIctILZLbHI+laNtvhhOIon2S1JksA5UEDQ7l3vberd0fxK44lTYjbQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} @@ -5980,6 +6409,10 @@ packages: engines: {node: '>=12.0.0'} hasBin: true + run-applescript@7.0.0: + resolution: {integrity: sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==} + engines: {node: '>=18'} + run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -6040,6 +6473,10 @@ packages: resolution: {integrity: sha512-0Ju4+6A8iOnpL/Thra7dZsSlOHYAHIeMxfhWQRI1/VLcT3WDBZKKtQt/QkBOsiIN9ZpuvHE6cGZ0x4glCMmfiA==} engines: {node: '>=12'} + semver@5.7.2: + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + hasBin: true + semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -6147,12 +6584,24 @@ packages: resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} engines: {node: '>=12'} + smart-buffer@4.2.0: + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + snake-case@3.0.4: resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} sockjs@0.3.24: resolution: {integrity: sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==} + socks-proxy-agent@8.0.4: + resolution: {integrity: sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==} + engines: {node: '>= 14'} + + socks@2.8.3: + resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + sort-css-media-queries@2.2.0: resolution: {integrity: sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA==} engines: {node: '>= 6.3.0'} @@ -6197,9 +6646,16 @@ packages: resolution: {integrity: sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==} engines: {node: '>=6.0.0'} + speedline-core@1.4.3: + resolution: {integrity: sha512-DI7/OuAUD+GMpR6dmu8lliO2Wg5zfeh+/xsdyJZCzd8o5JgFUjCeLsBDuZjIQJdwXS3J0L/uZYrELKYqx+PXog==} + engines: {node: '>=8.0'} + sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} + sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + srcset@4.0.0: resolution: {integrity: sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==} engines: {node: '>=12'} @@ -6219,6 +6675,9 @@ packages: std-env@3.7.0: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + streamx@2.20.1: + resolution: {integrity: sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==} + string-length@4.0.2: resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} engines: {node: '>=10'} @@ -6349,6 +6808,12 @@ packages: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} + tar-fs@3.0.6: + resolution: {integrity: sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==} + + tar-stream@3.1.7: + resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} + terser-webpack-plugin@5.3.10: resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} engines: {node: '>= 10.13.0'} @@ -6374,9 +6839,18 @@ packages: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} + text-decoder@1.2.0: + resolution: {integrity: sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg==} + text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + third-party-web@0.24.5: + resolution: {integrity: sha512-1rUOdMYpNTRajgk1F7CmHD26oA6rTKekBjHay854J6OkPXeNyPcR54rhWDaamlWyi9t2wAVPQESdedBhucmOLA==} + + through@2.3.8: + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + thunky@1.1.0: resolution: {integrity: sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==} @@ -6386,6 +6860,12 @@ packages: tiny-warning@1.0.3: resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} + tldts-core@6.1.51: + resolution: {integrity: sha512-bu9oCYYWC1iRjx+3UnAjqCsfrWNZV1ghNQf49b3w5xE8J/tNShHTzp5syWJfwGH+pxUgTTLUnzHnfuydW7wmbg==} + + tldts-icann@6.1.51: + resolution: {integrity: sha512-ve0Zra8PVxuKtgeUP2rNlkWvlgttgnxh+PPtfGvAynpVLqUikmocCmP9c6kYepg84WzrHhcLpIvdTM/1t2ssPg==} + tmpl@1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} @@ -6528,6 +7008,9 @@ packages: resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} engines: {node: '>= 0.4'} + typed-query-selector@2.12.0: + resolution: {integrity: sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==} + typedarray-to-buffer@3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} @@ -6563,6 +7046,9 @@ packages: unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + unbzip2-stream@1.4.3: + resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} + undici-types@6.19.6: resolution: {integrity: sha512-e/vggGopEfTKSvj4ihnOLTsqhrKRN3LeO6qSN/GxohhuRv8qH9bNQ4B8W7e/vFL+0XTnmHPB4/kegunZGA4Org==} @@ -6589,6 +7075,10 @@ packages: unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + unique-string@2.0.0: + resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} + engines: {node: '>=8'} + unique-string@3.0.0: resolution: {integrity: sha512-VGXBUVwxKMBUznyffQweQABPRRW1vHZAbadFZud4pLFAqRGvv/96vafgjWFqzourzr8YonlQiPgH0YCJfawoGQ==} engines: {node: '>=12'} @@ -6662,6 +7152,9 @@ packages: url-parse@1.5.10: resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + urlpattern-polyfill@10.0.0: + resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==} + util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -6900,6 +7393,22 @@ packages: utf-8-validate: optional: true + ws@8.18.0: + resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + xdg-basedir@4.0.0: + resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==} + engines: {node: '>=8'} + xdg-basedir@5.1.0: resolution: {integrity: sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ==} engines: {node: '>=12'} @@ -6944,6 +7453,9 @@ packages: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} + yauzl@2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + yn@3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} @@ -6956,6 +7468,9 @@ packages: resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} engines: {node: '>=12.20'} + zod@3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} @@ -7224,7 +7739,7 @@ snapshots: '@babel/core': 7.24.7 '@babel/helper-compilation-targets': 7.25.7 '@babel/helper-plugin-utils': 7.24.7 - debug: 4.3.5 + debug: 4.3.7 lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: @@ -7235,7 +7750,7 @@ snapshots: '@babel/core': 7.25.7 '@babel/helper-compilation-targets': 7.25.7 '@babel/helper-plugin-utils': 7.24.7 - debug: 4.3.5 + debug: 4.3.7 lodash.debounce: 4.0.8 resolve: 1.22.8 transitivePeerDependencies: @@ -8789,7 +9304,7 @@ snapshots: transitivePeerDependencies: - '@algolia/client-search' - '@docusaurus/core@3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': + '@docusaurus/core@3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': dependencies: '@babel/core': 7.24.7 '@babel/generator': 7.24.7 @@ -8803,13 +9318,13 @@ snapshots: '@babel/traverse': 7.24.7 '@docusaurus/cssnano-preset': 3.5.2 '@docusaurus/logger': 3.5.2 - '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) - '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(typescript@5.5.4) + '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(typescript@5.5.4) '@mdx-js/react': 3.0.1(@types/react@18.3.8)(react@18.3.1) autoprefixer: 10.4.19(postcss@8.4.41) - babel-loader: 9.1.3(@babel/core@7.24.7)(webpack@5.92.1) + babel-loader: 9.1.3(@babel/core@7.24.7)(webpack@5.92.1(@swc/core@1.7.35)) babel-plugin-dynamic-import-node: 2.3.3 boxen: 6.2.1 chalk: 4.1.2 @@ -8818,34 +9333,34 @@ snapshots: cli-table3: 0.6.5 combine-promises: 1.2.0 commander: 5.1.0 - copy-webpack-plugin: 11.0.0(webpack@5.92.1) + copy-webpack-plugin: 11.0.0(webpack@5.92.1(@swc/core@1.7.35)) core-js: 3.37.1 - css-loader: 6.11.0(webpack@5.92.1) - css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(webpack@5.92.1) + css-loader: 6.11.0(webpack@5.92.1(@swc/core@1.7.35)) + css-minimizer-webpack-plugin: 5.0.1(clean-css@5.3.3)(webpack@5.92.1(@swc/core@1.7.35)) cssnano: 6.1.2(postcss@8.4.41) del: 6.1.1 detect-port: 1.6.1 escape-html: 1.0.3 eta: 2.2.0 eval: 0.1.8 - file-loader: 6.2.0(webpack@5.92.1) + file-loader: 6.2.0(webpack@5.92.1(@swc/core@1.7.35)) fs-extra: 11.2.0 html-minifier-terser: 7.2.0 html-tags: 3.3.1 - html-webpack-plugin: 5.6.0(webpack@5.92.1) + html-webpack-plugin: 5.6.0(webpack@5.92.1(@swc/core@1.7.35)) leven: 3.1.0 lodash: 4.17.21 - mini-css-extract-plugin: 2.9.0(webpack@5.92.1) + mini-css-extract-plugin: 2.9.0(webpack@5.92.1(@swc/core@1.7.35)) p-map: 4.0.0 postcss: 8.4.41 - postcss-loader: 7.3.4(postcss@8.4.41)(typescript@5.5.4)(webpack@5.92.1) + postcss-loader: 7.3.4(postcss@8.4.41)(typescript@5.5.4)(webpack@5.92.1(@swc/core@1.7.35)) prompts: 2.4.2 react: 18.3.1 - react-dev-utils: 12.0.1(eslint@8.57.0)(typescript@5.5.4)(webpack@5.92.1) + react-dev-utils: 12.0.1(eslint@8.57.0)(typescript@5.5.4)(webpack@5.92.1(@swc/core@1.7.35)) react-dom: 18.3.1(react@18.3.1) react-helmet-async: 1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-loadable: '@docusaurus/react-loadable@6.0.0(react@18.3.1)' - react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@6.0.0(react@18.3.1))(webpack@5.92.1) + react-loadable-ssr-addon-v5-slorber: 1.0.1(@docusaurus/react-loadable@6.0.0(react@18.3.1))(webpack@5.92.1(@swc/core@1.7.35)) react-router: 5.3.4(react@18.3.1) react-router-config: 5.1.1(react-router@5.3.4(react@18.3.1))(react@18.3.1) react-router-dom: 5.3.4(react@18.3.1) @@ -8853,15 +9368,15 @@ snapshots: semver: 7.6.2 serve-handler: 6.1.5 shelljs: 0.8.5 - terser-webpack-plugin: 5.3.10(webpack@5.92.1) + terser-webpack-plugin: 5.3.10(@swc/core@1.7.35)(webpack@5.92.1(@swc/core@1.7.35)) tslib: 2.6.3 update-notifier: 6.0.2 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.92.1))(webpack@5.92.1) - webpack: 5.92.1 + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.92.1(@swc/core@1.7.35)))(webpack@5.92.1(@swc/core@1.7.35)) + webpack: 5.92.1(@swc/core@1.7.35) webpack-bundle-analyzer: 4.10.2 - webpack-dev-server: 4.15.2(webpack@5.92.1) + webpack-dev-server: 4.15.2(webpack@5.92.1(@swc/core@1.7.35)) webpack-merge: 5.10.0 - webpackbar: 5.0.2(webpack@5.92.1) + webpackbar: 5.0.2(webpack@5.92.1(@swc/core@1.7.35)) transitivePeerDependencies: - '@docusaurus/types' - '@parcel/css' @@ -8893,16 +9408,16 @@ snapshots: chalk: 4.1.2 tslib: 2.7.0 - '@docusaurus/mdx-loader@3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': + '@docusaurus/mdx-loader@3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': dependencies: '@docusaurus/logger': 3.5.2 - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(typescript@5.5.4) + '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(typescript@5.5.4) '@mdx-js/mdx': 3.0.1 '@slorber/remark-comment': 1.0.0 escape-html: 1.0.3 estree-util-value-to-estree: 3.1.2 - file-loader: 6.2.0(webpack@5.92.1) + file-loader: 6.2.0(webpack@5.92.1(@swc/core@1.7.35)) fs-extra: 11.2.0 image-size: 1.1.1 mdast-util-mdx: 3.0.0 @@ -8918,9 +9433,9 @@ snapshots: tslib: 2.6.3 unified: 11.0.5 unist-util-visit: 5.0.0 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.92.1))(webpack@5.92.1) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.92.1(@swc/core@1.7.35)))(webpack@5.92.1(@swc/core@1.7.35)) vfile: 6.0.1 - webpack: 5.92.1 + webpack: 5.92.1(@swc/core@1.7.35) transitivePeerDependencies: - '@docusaurus/types' - '@swc/core' @@ -8930,9 +9445,9 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/module-type-aliases@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@docusaurus/module-type-aliases@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@docusaurus/types': 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/types': 3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/history': 4.7.11 '@types/react': 18.3.8 '@types/react-router-config': 5.0.11 @@ -8948,13 +9463,13 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/plugin-client-redirects@3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': + '@docusaurus/plugin-client-redirects@3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) '@docusaurus/logger': 3.5.2 - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) - '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(typescript@5.5.4) + '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(typescript@5.5.4) eta: 2.2.0 fs-extra: 11.2.0 lodash: 4.17.21 @@ -8981,17 +9496,17 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/plugin-content-blog@3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': + '@docusaurus/plugin-content-blog@3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) '@docusaurus/logger': 3.5.2 - '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/types': 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) - '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/types': 3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(typescript@5.5.4) + '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(typescript@5.5.4) cheerio: 1.0.0-rc.12 feed: 4.2.2 fs-extra: 11.2.0 @@ -9003,7 +9518,7 @@ snapshots: tslib: 2.6.3 unist-util-visit: 5.0.0 utility-types: 3.11.0 - webpack: 5.92.1 + webpack: 5.92.1(@swc/core@1.7.35) transitivePeerDependencies: - '@mdx-js/react' - '@parcel/css' @@ -9023,17 +9538,17 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': + '@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) '@docusaurus/logger': 3.5.2 - '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/module-type-aliases': 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/types': 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) - '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/module-type-aliases': 3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/types': 3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(typescript@5.5.4) + '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(typescript@5.5.4) '@types/react-router-config': 5.0.11 combine-promises: 1.2.0 fs-extra: 11.2.0 @@ -9043,7 +9558,7 @@ snapshots: react-dom: 18.3.1(react@18.3.1) tslib: 2.6.3 utility-types: 3.11.0 - webpack: 5.92.1 + webpack: 5.92.1(@swc/core@1.7.35) transitivePeerDependencies: - '@mdx-js/react' - '@parcel/css' @@ -9063,18 +9578,18 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/plugin-content-pages@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': + '@docusaurus/plugin-content-pages@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/types': 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/types': 3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(typescript@5.5.4) + '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(typescript@5.5.4) fs-extra: 11.2.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) tslib: 2.6.3 - webpack: 5.92.1 + webpack: 5.92.1(@swc/core@1.7.35) transitivePeerDependencies: - '@mdx-js/react' - '@parcel/css' @@ -9094,11 +9609,11 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/plugin-debug@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': + '@docusaurus/plugin-debug@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/types': 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/types': 3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(typescript@5.5.4) fs-extra: 11.2.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -9123,11 +9638,11 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/plugin-google-analytics@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': + '@docusaurus/plugin-google-analytics@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/types': 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/types': 3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(typescript@5.5.4) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) tslib: 2.6.3 @@ -9150,11 +9665,11 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/plugin-google-gtag@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': + '@docusaurus/plugin-google-gtag@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/types': 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/types': 3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(typescript@5.5.4) '@types/gtag.js': 0.0.12 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -9178,11 +9693,11 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/plugin-google-tag-manager@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': + '@docusaurus/plugin-google-tag-manager@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/types': 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/types': 3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(typescript@5.5.4) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) tslib: 2.6.3 @@ -9205,14 +9720,14 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/plugin-sitemap@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': + '@docusaurus/plugin-sitemap@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) '@docusaurus/logger': 3.5.2 - '@docusaurus/types': 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) - '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/types': 3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(typescript@5.5.4) + '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(typescript@5.5.4) fs-extra: 11.2.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -9237,21 +9752,21 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/preset-classic@3.5.2(@algolia/client-search@4.24.0)(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@types/react@18.3.8)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.14.0)(typescript@5.5.4)': - dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/plugin-content-blog': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/plugin-content-pages': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/plugin-debug': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/plugin-google-analytics': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/plugin-google-gtag': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/plugin-google-tag-manager': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/plugin-sitemap': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/theme-classic': 3.5.2(@types/react@18.3.8)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/theme-search-algolia': 3.5.2(@algolia/client-search@4.24.0)(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@types/react@18.3.8)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.14.0)(typescript@5.5.4) - '@docusaurus/types': 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/preset-classic@3.5.2(@algolia/client-search@4.24.0)(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(@types/react@18.3.8)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.14.0)(typescript@5.5.4)': + dependencies: + '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/plugin-content-blog': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/plugin-content-pages': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/plugin-debug': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/plugin-google-analytics': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/plugin-google-gtag': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/plugin-google-tag-manager': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/plugin-sitemap': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/theme-classic': 3.5.2(@swc/core@1.7.35)(@types/react@18.3.8)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/theme-search-algolia': 3.5.2(@algolia/client-search@4.24.0)(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(@types/react@18.3.8)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.14.0)(typescript@5.5.4) + '@docusaurus/types': 3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) transitivePeerDependencies: @@ -9291,20 +9806,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@docusaurus/theme-classic@3.5.2(@types/react@18.3.8)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': + '@docusaurus/theme-classic@3.5.2(@swc/core@1.7.35)(@types/react@18.3.8)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': dependencies: - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/module-type-aliases': 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/plugin-content-blog': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/plugin-content-pages': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/module-type-aliases': 3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/plugin-content-blog': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/plugin-content-pages': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) '@docusaurus/theme-translations': 3.5.2 - '@docusaurus/types': 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) - '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/types': 3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(typescript@5.5.4) + '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(typescript@5.5.4) '@mdx-js/react': 3.0.1(@types/react@18.3.8)(react@18.3.1) clsx: 2.1.1 copy-text-to-clipboard: 3.2.0 @@ -9339,13 +9854,13 @@ snapshots: - vue-template-compiler - webpack-cli - '@docusaurus/theme-common@3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': + '@docusaurus/theme-common@3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': dependencies: - '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/module-type-aliases': 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) - '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@docusaurus/mdx-loader': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/module-type-aliases': 3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(typescript@5.5.4) + '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@types/history': 4.7.11 '@types/react': 18.3.8 '@types/react-router-config': 5.0.11 @@ -9365,16 +9880,16 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/theme-search-algolia@3.5.2(@algolia/client-search@4.24.0)(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@types/react@18.3.8)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.14.0)(typescript@5.5.4)': + '@docusaurus/theme-search-algolia@3.5.2(@algolia/client-search@4.24.0)(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(@types/react@18.3.8)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.14.0)(typescript@5.5.4)': dependencies: '@docsearch/react': 3.6.0(@algolia/client-search@4.24.0)(@types/react@18.3.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.14.0) - '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/core': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) '@docusaurus/logger': 3.5.2 - '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) - '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/plugin-content-docs': 3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/theme-common': 3.5.2(@docusaurus/plugin-content-docs@3.5.2(@mdx-js/react@3.0.1(@types/react@18.3.8)(react@18.3.1))(@swc/core@1.7.35)(eslint@8.57.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) '@docusaurus/theme-translations': 3.5.2 - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) - '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(typescript@5.5.4) + '@docusaurus/utils-validation': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(typescript@5.5.4) algoliasearch: 4.24.0 algoliasearch-helper: 3.22.1(algoliasearch@4.24.0) clsx: 2.1.1 @@ -9415,7 +9930,7 @@ snapshots: '@docusaurus/tsconfig@3.5.2': {} - '@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@mdx-js/mdx': 3.0.1 '@types/history': 4.7.11 @@ -9426,7 +9941,7 @@ snapshots: react-dom: 18.3.1(react@18.3.1) react-helmet-async: 1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) utility-types: 3.11.0 - webpack: 5.92.1 + webpack: 5.92.1(@swc/core@1.7.35) webpack-merge: 5.10.0 transitivePeerDependencies: - '@swc/core' @@ -9435,17 +9950,17 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils-common@3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': + '@docusaurus/utils-common@3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': dependencies: tslib: 2.7.0 optionalDependencies: - '@docusaurus/types': 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/types': 3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@docusaurus/utils-validation@3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4)': + '@docusaurus/utils-validation@3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(typescript@5.5.4)': dependencies: '@docusaurus/logger': 3.5.2 - '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) - '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@docusaurus/utils': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(typescript@5.5.4) + '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) fs-extra: 11.2.0 joi: 17.13.3 js-yaml: 4.1.0 @@ -9460,13 +9975,13 @@ snapshots: - uglify-js - webpack-cli - '@docusaurus/utils@3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4)': + '@docusaurus/utils@3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@swc/core@1.7.35)(typescript@5.5.4)': dependencies: '@docusaurus/logger': 3.5.2 - '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + '@docusaurus/utils-common': 3.5.2(@docusaurus/types@3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@svgr/webpack': 8.1.0(typescript@5.5.4) escape-string-regexp: 4.0.0 - file-loader: 6.2.0(webpack@5.92.1) + file-loader: 6.2.0(webpack@5.92.1(@swc/core@1.7.35)) fs-extra: 11.2.0 github-slugger: 1.5.0 globby: 11.1.0 @@ -9479,11 +9994,11 @@ snapshots: resolve-pathname: 3.0.0 shelljs: 0.8.5 tslib: 2.7.0 - url-loader: 4.1.1(file-loader@6.2.0(webpack@5.92.1))(webpack@5.92.1) + url-loader: 4.1.1(file-loader@6.2.0(webpack@5.92.1(@swc/core@1.7.35)))(webpack@5.92.1(@swc/core@1.7.35)) utility-types: 3.11.0 - webpack: 5.92.1 + webpack: 5.92.1(@swc/core@1.7.35) optionalDependencies: - '@docusaurus/types': 3.5.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/types': 3.5.2(@swc/core@1.7.35)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) transitivePeerDependencies: - '@swc/core' - esbuild @@ -9584,19 +10099,44 @@ snapshots: '@eslint/js@8.57.0': {} - '@hapi/hoek@9.3.0': {} + '@formatjs/ecma402-abstract@2.2.0': + dependencies: + '@formatjs/fast-memoize': 2.2.1 + '@formatjs/intl-localematcher': 0.5.5 + tslib: 2.7.0 - '@hapi/topo@5.1.0': + '@formatjs/fast-memoize@2.2.1': dependencies: - '@hapi/hoek': 9.3.0 + tslib: 2.7.0 - '@html-validate/stylish@4.2.0': + '@formatjs/icu-messageformat-parser@2.7.10': dependencies: - kleur: 4.1.5 + '@formatjs/ecma402-abstract': 2.2.0 + '@formatjs/icu-skeleton-parser': 1.8.4 + tslib: 2.7.0 - '@humanwhocodes/config-array@0.11.14': + '@formatjs/icu-skeleton-parser@1.8.4': dependencies: - '@humanwhocodes/object-schema': 2.0.3 + '@formatjs/ecma402-abstract': 2.2.0 + tslib: 2.7.0 + + '@formatjs/intl-localematcher@0.5.5': + dependencies: + tslib: 2.7.0 + + '@hapi/hoek@9.3.0': {} + + '@hapi/topo@5.1.0': + dependencies: + '@hapi/hoek': 9.3.0 + + '@html-validate/stylish@4.2.0': + dependencies: + kleur: 4.1.5 + + '@humanwhocodes/config-array@0.11.14': + dependencies: + '@humanwhocodes/object-schema': 2.0.3 debug: 4.3.5 minimatch: 3.1.2 transitivePeerDependencies: @@ -9634,7 +10174,7 @@ snapshots: jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@29.7.0(ts-node@10.9.2(@types/node@22.5.4)(typescript@5.5.4))': + '@jest/core@29.7.0(ts-node@10.9.2(@swc/core@1.7.35)(@types/node@22.5.4)(typescript@5.5.4))': dependencies: '@jest/console': 29.7.0 '@jest/reporters': 29.7.0 @@ -9648,7 +10188,7 @@ snapshots: exit: 0.1.2 graceful-fs: 4.2.11 jest-changed-files: 29.7.0 - jest-config: 29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@types/node@22.5.4)(typescript@5.5.4)) + jest-config: 29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@swc/core@1.7.35)(@types/node@22.5.4)(typescript@5.5.4)) jest-haste-map: 29.7.0 jest-message-util: 29.7.0 jest-regex-util: 29.6.3 @@ -9864,6 +10404,8 @@ snapshots: '@nolyfill/is-core-module@1.0.39': {} + '@paulirish/trace_engine@0.0.32': {} + '@pkgjs/parseargs@0.11.0': optional: true @@ -9883,6 +10425,19 @@ snapshots: '@polka/url@1.0.0-next.25': {} + '@puppeteer/browsers@2.4.0': + dependencies: + debug: 4.3.7 + extract-zip: 2.0.1 + progress: 2.0.3 + proxy-agent: 6.4.0 + semver: 7.6.3 + tar-fs: 3.0.6 + unbzip2-stream: 1.4.3 + yargs: 17.7.2 + transitivePeerDependencies: + - supports-color + '@rollup/rollup-android-arm-eabi@4.21.0': optional: true @@ -9933,6 +10488,46 @@ snapshots: '@rtsao/scc@1.1.0': {} + '@sentry/core@6.19.7': + dependencies: + '@sentry/hub': 6.19.7 + '@sentry/minimal': 6.19.7 + '@sentry/types': 6.19.7 + '@sentry/utils': 6.19.7 + tslib: 1.14.1 + + '@sentry/hub@6.19.7': + dependencies: + '@sentry/types': 6.19.7 + '@sentry/utils': 6.19.7 + tslib: 1.14.1 + + '@sentry/minimal@6.19.7': + dependencies: + '@sentry/hub': 6.19.7 + '@sentry/types': 6.19.7 + tslib: 1.14.1 + + '@sentry/node@6.19.7': + dependencies: + '@sentry/core': 6.19.7 + '@sentry/hub': 6.19.7 + '@sentry/types': 6.19.7 + '@sentry/utils': 6.19.7 + cookie: 0.4.2 + https-proxy-agent: 5.0.1 + lru_map: 0.3.3 + tslib: 1.14.1 + transitivePeerDependencies: + - supports-color + + '@sentry/types@6.19.7': {} + + '@sentry/utils@6.19.7': + dependencies: + '@sentry/types': 6.19.7 + tslib: 1.14.1 + '@shikijs/core@1.16.2': dependencies: '@shikijs/vscode-textmate': 9.2.0 @@ -10066,6 +10661,61 @@ snapshots: - supports-color - typescript + '@swc/core-darwin-arm64@1.7.35': + optional: true + + '@swc/core-darwin-x64@1.7.35': + optional: true + + '@swc/core-linux-arm-gnueabihf@1.7.35': + optional: true + + '@swc/core-linux-arm64-gnu@1.7.35': + optional: true + + '@swc/core-linux-arm64-musl@1.7.35': + optional: true + + '@swc/core-linux-x64-gnu@1.7.35': + optional: true + + '@swc/core-linux-x64-musl@1.7.35': + optional: true + + '@swc/core-win32-arm64-msvc@1.7.35': + optional: true + + '@swc/core-win32-ia32-msvc@1.7.35': + optional: true + + '@swc/core-win32-x64-msvc@1.7.35': + optional: true + + '@swc/core@1.7.35': + dependencies: + '@swc/counter': 0.1.3 + '@swc/types': 0.1.13 + optionalDependencies: + '@swc/core-darwin-arm64': 1.7.35 + '@swc/core-darwin-x64': 1.7.35 + '@swc/core-linux-arm-gnueabihf': 1.7.35 + '@swc/core-linux-arm64-gnu': 1.7.35 + '@swc/core-linux-arm64-musl': 1.7.35 + '@swc/core-linux-x64-gnu': 1.7.35 + '@swc/core-linux-x64-musl': 1.7.35 + '@swc/core-win32-arm64-msvc': 1.7.35 + '@swc/core-win32-ia32-msvc': 1.7.35 + '@swc/core-win32-x64-msvc': 1.7.35 + optional: true + + '@swc/counter@0.1.3': + optional: true + + '@swc/types@0.1.13': + dependencies: + '@swc/counter': 0.1.3 + optional: true + '@szmarczak/http-timer@5.0.1': dependencies: defer-to-connect: 2.0.1 @@ -10107,6 +10757,8 @@ snapshots: '@tootallnate/once@2.0.0': {} + '@tootallnate/quickjs-emscripten@0.23.0': {} + '@trivago/prettier-plugin-sort-imports@4.3.0(prettier@3.3.3)': dependencies: '@babel/generator': 7.17.7 @@ -10159,7 +10811,7 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.5.1 + '@types/node': 22.5.4 '@types/bonjour@3.5.13': dependencies: @@ -10172,7 +10824,7 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 22.5.1 + '@types/node': 22.5.4 '@types/css@0.0.30': {} @@ -10198,7 +10850,7 @@ snapshots: '@types/express-serve-static-core@4.19.5': dependencies: - '@types/node': 22.5.1 + '@types/node': 22.5.4 '@types/qs': 6.9.15 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -10230,7 +10882,7 @@ snapshots: '@types/http-proxy@1.17.14': dependencies: - '@types/node': 22.5.1 + '@types/node': 22.5.4 '@types/istanbul-lib-coverage@2.0.6': {} @@ -10269,7 +10921,7 @@ snapshots: '@types/node-forge@1.3.11': dependencies: - '@types/node': 22.5.1 + '@types/node': 22.5.4 '@types/node@17.0.45': {} @@ -10321,14 +10973,14 @@ snapshots: '@types/sax@1.2.7': dependencies: - '@types/node': 22.5.1 + '@types/node': 22.5.4 '@types/semver@7.5.8': {} '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.5.1 + '@types/node': 22.5.4 '@types/serve-index@1.9.4': dependencies: @@ -10375,6 +11027,11 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 + '@types/yauzl@2.10.3': + dependencies: + '@types/node': 22.5.4 + optional: true + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@8.6.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)': dependencies: '@eslint-community/regexpp': 4.10.1 @@ -10480,7 +11137,7 @@ snapshots: dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.5 + debug: 4.3.7 globby: 11.1.0 is-glob: 4.0.3 semver: 7.6.3 @@ -10509,7 +11166,7 @@ snapshots: dependencies: '@typescript-eslint/types': 8.4.0 '@typescript-eslint/visitor-keys': 8.4.0 - debug: 4.3.5 + debug: 4.3.7 fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 @@ -10715,7 +11372,13 @@ snapshots: agent-base@6.0.2: dependencies: - debug: 4.3.5 + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + + agent-base@7.1.1: + dependencies: + debug: 4.3.7 transitivePeerDependencies: - supports-color @@ -10778,6 +11441,8 @@ snapshots: dependencies: string-width: 4.2.3 + ansi-colors@4.1.3: {} + ansi-escapes@4.3.2: dependencies: type-fest: 0.21.3 @@ -10888,6 +11553,10 @@ snapshots: is-array-buffer: 3.0.4 is-shared-array-buffer: 1.0.3 + ast-types@0.13.4: + dependencies: + tslib: 2.7.0 + astring@1.8.6: {} async@3.2.5: {} @@ -10922,6 +11591,10 @@ snapshots: dependencies: possible-typed-array-names: 1.0.0 + axe-core@4.10.0: {} + + b4a@1.6.7: {} + babel-jest@29.7.0(@babel/core@7.25.7): dependencies: '@babel/core': 7.25.7 @@ -10935,12 +11608,12 @@ snapshots: transitivePeerDependencies: - supports-color - babel-loader@9.1.3(@babel/core@7.24.7)(webpack@5.92.1): + babel-loader@9.1.3(@babel/core@7.24.7)(webpack@5.92.1(@swc/core@1.7.35)): dependencies: '@babel/core': 7.24.7 find-cache-dir: 4.0.0 schema-utils: 4.2.0 - webpack: 5.92.1 + webpack: 5.92.1(@swc/core@1.7.35) babel-plugin-dynamic-import-node@2.3.3: dependencies: @@ -11037,6 +11710,34 @@ snapshots: balanced-match@1.0.2: {} + bare-events@2.5.0: + optional: true + + bare-fs@2.3.5: + dependencies: + bare-events: 2.5.0 + bare-path: 2.1.3 + bare-stream: 2.3.0 + optional: true + + bare-os@2.4.4: + optional: true + + bare-path@2.1.3: + dependencies: + bare-os: 2.4.4 + optional: true + + bare-stream@2.3.0: + dependencies: + b4a: 1.6.7 + streamx: 2.20.1 + optional: true + + base64-js@1.5.1: {} + + basic-ftp@5.0.5: {} + batch@0.6.1: {} big.js@5.2.2: {} @@ -11126,8 +11827,19 @@ snapshots: dependencies: node-int64: 0.4.0 + buffer-crc32@0.2.13: {} + buffer-from@1.1.2: {} + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + + bundle-name@4.1.0: + dependencies: + run-applescript: 7.0.0 + bytes@3.0.0: {} bytes@3.1.2: {} @@ -11237,8 +11949,24 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + chrome-launcher@1.1.2: + dependencies: + '@types/node': 22.5.4 + escape-string-regexp: 4.0.0 + is-wsl: 2.2.0 + lighthouse-logger: 2.0.1 + transitivePeerDependencies: + - supports-color + chrome-trace-event@1.0.4: {} + chromium-bidi@0.8.0(devtools-protocol@0.0.1342118): + dependencies: + devtools-protocol: 0.0.1342118 + mitt: 3.0.1 + urlpattern-polyfill: 10.0.0 + zod: 3.23.8 + ci-info@3.9.0: {} cjs-module-lexer@1.3.1: {} @@ -11338,6 +12066,15 @@ snapshots: ini: 1.3.8 proto-list: 1.2.4 + configstore@5.0.1: + dependencies: + dot-prop: 5.3.0 + graceful-fs: 4.2.11 + make-dir: 3.1.0 + unique-string: 2.0.0 + write-file-atomic: 3.0.3 + xdg-basedir: 4.0.0 + configstore@6.0.0: dependencies: dot-prop: 6.0.1 @@ -11362,11 +12099,13 @@ snapshots: cookie-signature@1.0.6: {} + cookie@0.4.2: {} + cookie@0.6.0: {} copy-text-to-clipboard@3.2.0: {} - copy-webpack-plugin@11.0.0(webpack@5.92.1): + copy-webpack-plugin@11.0.0(webpack@5.92.1(@swc/core@1.7.35)): dependencies: fast-glob: 3.3.2 glob-parent: 6.0.2 @@ -11374,7 +12113,7 @@ snapshots: normalize-path: 3.0.0 schema-utils: 4.2.0 serialize-javascript: 6.0.2 - webpack: 5.92.1 + webpack: 5.92.1(@swc/core@1.7.35) core-js-compat@3.37.1: dependencies: @@ -11403,13 +12142,22 @@ snapshots: optionalDependencies: typescript: 5.5.4 - create-jest@29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@types/node@22.5.4)(typescript@5.5.4)): + cosmiconfig@9.0.0(typescript@5.5.4): + dependencies: + env-paths: 2.2.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + parse-json: 5.2.0 + optionalDependencies: + typescript: 5.5.4 + + create-jest@29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@swc/core@1.7.35)(@types/node@22.5.4)(typescript@5.5.4)): dependencies: '@jest/types': 29.6.3 chalk: 4.1.2 exit: 0.1.2 graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@types/node@22.5.4)(typescript@5.5.4)) + jest-config: 29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@swc/core@1.7.35)(@types/node@22.5.4)(typescript@5.5.4)) jest-util: 29.7.0 prompts: 2.4.2 transitivePeerDependencies: @@ -11426,10 +12174,14 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + crypto-random-string@2.0.0: {} + crypto-random-string@4.0.0: dependencies: type-fest: 1.4.0 + csp_evaluator@1.1.1: {} + css-declaration-sorter@7.2.0(postcss@8.4.41): dependencies: postcss: 8.4.41 @@ -11438,7 +12190,7 @@ snapshots: dependencies: postcss: 8.4.45 - css-loader@6.11.0(webpack@5.92.1): + css-loader@6.11.0(webpack@5.92.1(@swc/core@1.7.35)): dependencies: icss-utils: 5.1.0(postcss@8.4.45) postcss: 8.4.45 @@ -11449,9 +12201,9 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.6.3 optionalDependencies: - webpack: 5.92.1 + webpack: 5.92.1(@swc/core@1.7.35) - css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(webpack@5.92.1): + css-minimizer-webpack-plugin@5.0.1(clean-css@5.3.3)(webpack@5.92.1(@swc/core@1.7.35)): dependencies: '@jridgewell/trace-mapping': 0.3.25 cssnano: 6.1.2(postcss@8.4.45) @@ -11459,7 +12211,7 @@ snapshots: postcss: 8.4.45 schema-utils: 4.2.0 serialize-javascript: 6.0.2 - webpack: 5.92.1 + webpack: 5.92.1(@swc/core@1.7.35) optionalDependencies: clean-css: 5.3.3 @@ -11615,6 +12367,8 @@ snapshots: csstype@3.1.3: {} + data-uri-to-buffer@6.0.2: {} + data-urls@3.0.2: dependencies: abab: 2.0.6 @@ -11657,6 +12411,10 @@ snapshots: dependencies: ms: 2.1.2 + debug@4.3.7: + dependencies: + ms: 2.1.3 + decimal.js@10.4.3: {} decode-named-character-reference@1.0.2: @@ -11677,6 +12435,13 @@ snapshots: deepmerge@4.3.1: {} + default-browser-id@5.0.0: {} + + default-browser@5.2.1: + dependencies: + bundle-name: 4.1.0 + default-browser-id: 5.0.0 + default-gateway@6.0.3: dependencies: execa: 5.1.1 @@ -11691,12 +12456,20 @@ snapshots: define-lazy-prop@2.0.0: {} + define-lazy-prop@3.0.0: {} + define-properties@1.2.1: dependencies: define-data-property: 1.1.4 has-property-descriptors: 1.0.2 object-keys: 1.1.1 + degenerator@5.0.1: + dependencies: + ast-types: 0.13.4 + escodegen: 2.1.0 + esprima: 4.0.1 + del@6.1.1: dependencies: globby: 11.1.0 @@ -11740,6 +12513,10 @@ snapshots: dependencies: dequal: 2.0.3 + devtools-protocol@0.0.1312386: {} + + devtools-protocol@0.0.1342118: {} + diff-sequences@29.6.3: {} diff@4.0.2: {} @@ -11815,6 +12592,10 @@ snapshots: no-case: 3.0.4 tslib: 2.7.0 + dot-prop@5.3.0: + dependencies: + is-obj: 2.0.0 + dot-prop@6.0.1: dependencies: is-obj: 2.0.0 @@ -11847,15 +12628,26 @@ snapshots: encodeurl@1.0.2: {} + end-of-stream@1.4.4: + dependencies: + once: 1.4.0 + enhanced-resolve@5.17.0: dependencies: graceful-fs: 4.2.11 tapable: 2.2.1 + enquirer@2.4.1: + dependencies: + ansi-colors: 4.1.3 + strip-ansi: 6.0.1 + entities@2.2.0: {} entities@4.5.0: {} + env-paths@2.2.1: {} + error-ex@1.3.2: dependencies: is-arrayish: 0.2.1 @@ -12084,13 +12876,13 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-jest@28.8.3(@typescript-eslint/eslint-plugin@8.4.0(@typescript-eslint/parser@8.6.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(jest@29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@types/node@22.5.4)(typescript@5.5.4)))(typescript@5.5.4): + eslint-plugin-jest@28.8.3(@typescript-eslint/eslint-plugin@8.4.0(@typescript-eslint/parser@8.6.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(jest@29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@swc/core@1.7.35)(@types/node@22.5.4)(typescript@5.5.4)))(typescript@5.5.4): dependencies: '@typescript-eslint/utils': 7.18.0(eslint@8.57.0)(typescript@5.5.4) eslint: 8.57.0 optionalDependencies: '@typescript-eslint/eslint-plugin': 8.4.0(@typescript-eslint/parser@8.6.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4) - jest: 29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@types/node@22.5.4)(typescript@5.5.4)) + jest: 29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@swc/core@1.7.35)(@types/node@22.5.4)(typescript@5.5.4)) transitivePeerDependencies: - supports-color - typescript @@ -12333,10 +13125,22 @@ snapshots: extend@3.0.2: {} + extract-zip@2.0.1: + dependencies: + debug: 4.3.7 + get-stream: 5.2.0 + yauzl: 2.10.0 + optionalDependencies: + '@types/yauzl': 2.10.3 + transitivePeerDependencies: + - supports-color + fast-deep-equal@3.1.3: {} fast-diff@1.3.0: {} + fast-fifo@1.3.2: {} + fast-glob@3.3.2: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -12369,6 +13173,10 @@ snapshots: dependencies: bser: 2.1.1 + fd-slicer@1.1.0: + dependencies: + pend: 1.2.0 + feed@4.2.2: dependencies: xml-js: 1.6.11 @@ -12377,11 +13185,11 @@ snapshots: dependencies: flat-cache: 3.2.0 - file-loader@6.2.0(webpack@5.92.1): + file-loader@6.2.0(webpack@5.92.1(@swc/core@1.7.35)): dependencies: loader-utils: 2.0.4 schema-utils: 3.3.0 - webpack: 5.92.1 + webpack: 5.92.1(@swc/core@1.7.35) filelist@1.0.4: dependencies: @@ -12450,7 +13258,7 @@ snapshots: cross-spawn: 7.0.3 signal-exit: 4.1.0 - fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.5.4)(webpack@5.92.1): + fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.0)(typescript@5.5.4)(webpack@5.92.1(@swc/core@1.7.35)): dependencies: '@babel/code-frame': 7.25.7 '@types/json-schema': 7.0.15 @@ -12466,7 +13274,7 @@ snapshots: semver: 7.6.3 tapable: 1.1.3 typescript: 5.5.4 - webpack: 5.92.1 + webpack: 5.92.1(@swc/core@1.7.35) optionalDependencies: eslint: 8.57.0 @@ -12533,6 +13341,10 @@ snapshots: get-package-type@0.1.0: {} + get-stream@5.2.0: + dependencies: + pump: 3.0.2 + get-stream@6.0.1: {} get-symbol-description@1.0.2: @@ -12545,6 +13357,15 @@ snapshots: dependencies: resolve-pkg-maps: 1.0.0 + get-uri@6.0.3: + dependencies: + basic-ftp: 5.0.5 + data-uri-to-buffer: 6.0.2 + debug: 4.3.7 + fs-extra: 11.2.0 + transitivePeerDependencies: + - supports-color + github-slugger@1.5.0: {} glob-parent@5.1.2: @@ -12826,7 +13647,7 @@ snapshots: html-tags@3.3.1: {} - html-validate@8.23.0(jest-diff@29.7.0)(jest-snapshot@29.7.0)(jest@29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@types/node@22.5.4)(typescript@5.5.4))): + html-validate@8.23.0(jest-diff@29.7.0)(jest-snapshot@29.7.0)(jest@29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@swc/core@1.7.35)(@types/node@22.5.4)(typescript@5.5.4))): dependencies: '@html-validate/stylish': 4.2.0 '@sidvind/better-ajv-errors': 3.0.1(ajv@8.16.0) @@ -12839,13 +13660,13 @@ snapshots: prompts: 2.4.2 semver: 7.6.3 optionalDependencies: - jest: 29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@types/node@22.5.4)(typescript@5.5.4)) + jest: 29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@swc/core@1.7.35)(@types/node@22.5.4)(typescript@5.5.4)) jest-diff: 29.7.0 jest-snapshot: 29.7.0 html-void-elements@3.0.0: {} - html-webpack-plugin@5.6.0(webpack@5.92.1): + html-webpack-plugin@5.6.0(webpack@5.92.1(@swc/core@1.7.35)): dependencies: '@types/html-minifier-terser': 6.1.0 html-minifier-terser: 6.1.0 @@ -12853,7 +13674,7 @@ snapshots: pretty-error: 4.0.0 tapable: 2.2.1 optionalDependencies: - webpack: 5.92.1 + webpack: 5.92.1(@swc/core@1.7.35) htmlparser2@6.1.0: dependencies: @@ -12888,13 +13709,22 @@ snapshots: statuses: 2.0.1 toidentifier: 1.0.1 + http-link-header@1.1.3: {} + http-parser-js@0.5.8: {} http-proxy-agent@5.0.0: dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.3.5 + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + + http-proxy-agent@7.0.2: + dependencies: + agent-base: 7.1.1 + debug: 4.3.7 transitivePeerDependencies: - supports-color @@ -12926,7 +13756,14 @@ snapshots: https-proxy-agent@5.0.1: dependencies: agent-base: 6.0.2 - debug: 4.3.5 + debug: 4.3.7 + transitivePeerDependencies: + - supports-color + + https-proxy-agent@7.0.5: + dependencies: + agent-base: 7.1.1 + debug: 4.3.7 transitivePeerDependencies: - supports-color @@ -12948,6 +13785,8 @@ snapshots: dependencies: harmony-reflect: 1.6.2 + ieee754@1.2.1: {} + ignore@5.3.1: {} ignore@5.3.2: {} @@ -12956,6 +13795,8 @@ snapshots: dependencies: queue: 6.0.2 + image-ssim@0.2.0: {} + immer@9.0.21: {} import-fresh@3.3.0: @@ -13001,10 +13842,22 @@ snapshots: interpret@1.4.0: {} + intl-messageformat@10.7.0: + dependencies: + '@formatjs/ecma402-abstract': 2.2.0 + '@formatjs/fast-memoize': 2.2.1 + '@formatjs/icu-messageformat-parser': 2.7.10 + tslib: 2.7.0 + invariant@2.2.4: dependencies: loose-envify: 1.4.0 + ip-address@9.0.5: + dependencies: + jsbn: 1.1.0 + sprintf-js: 1.1.3 + ipaddr.js@1.9.1: {} ipaddr.js@2.2.0: {} @@ -13070,6 +13923,8 @@ snapshots: is-docker@2.2.1: {} + is-docker@3.0.0: {} + is-extendable@0.1.1: {} is-extglob@2.1.1: {} @@ -13092,6 +13947,10 @@ snapshots: is-hexadecimal@2.0.1: {} + is-inside-container@1.0.0: + dependencies: + is-docker: 3.0.0 + is-installed-globally@0.4.0: dependencies: global-dirs: 3.0.1 @@ -13177,6 +14036,10 @@ snapshots: dependencies: is-docker: 2.2.1 + is-wsl@3.1.0: + dependencies: + is-inside-container: 1.0.0 + is-yarn-global@0.4.1: {} isarray@0.0.1: {} @@ -13219,7 +14082,7 @@ snapshots: istanbul-lib-source-maps@4.0.1: dependencies: - debug: 4.3.5 + debug: 4.3.7 istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -13285,16 +14148,16 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@types/node@22.5.4)(typescript@5.5.4)): + jest-cli@29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@swc/core@1.7.35)(@types/node@22.5.4)(typescript@5.5.4)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.5.4)(typescript@5.5.4)) + '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.7.35)(@types/node@22.5.4)(typescript@5.5.4)) '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@types/node@22.5.4)(typescript@5.5.4)) + create-jest: 29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@swc/core@1.7.35)(@types/node@22.5.4)(typescript@5.5.4)) exit: 0.1.2 import-local: 3.1.0 - jest-config: 29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@types/node@22.5.4)(typescript@5.5.4)) + jest-config: 29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@swc/core@1.7.35)(@types/node@22.5.4)(typescript@5.5.4)) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -13304,7 +14167,7 @@ snapshots: - supports-color - ts-node - jest-config@29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@types/node@22.5.4)(typescript@5.5.4)): + jest-config@29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@swc/core@1.7.35)(@types/node@22.5.4)(typescript@5.5.4)): dependencies: '@babel/core': 7.25.7 '@jest/test-sequencer': 29.7.0 @@ -13330,7 +14193,7 @@ snapshots: strip-json-comments: 3.1.1 optionalDependencies: '@types/node': 22.5.4 - ts-node: 10.9.2(@types/node@22.5.4)(typescript@5.5.4) + ts-node: 10.9.2(@swc/core@1.7.35)(@types/node@22.5.4)(typescript@5.5.4) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -13571,12 +14434,12 @@ snapshots: merge-stream: 2.0.0 supports-color: 8.1.1 - jest@29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@types/node@22.5.4)(typescript@5.5.4)): + jest@29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@swc/core@1.7.35)(@types/node@22.5.4)(typescript@5.5.4)): dependencies: - '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@22.5.4)(typescript@5.5.4)) + '@jest/core': 29.7.0(ts-node@10.9.2(@swc/core@1.7.35)(@types/node@22.5.4)(typescript@5.5.4)) '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@types/node@22.5.4)(typescript@5.5.4)) + jest-cli: 29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@swc/core@1.7.35)(@types/node@22.5.4)(typescript@5.5.4)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -13593,6 +14456,10 @@ snapshots: '@sideway/formula': 3.0.1 '@sideway/pinpoint': 2.0.0 + jpeg-js@0.4.4: {} + + js-library-detector@6.7.0: {} + js-tokens@4.0.0: {} js-yaml@3.14.1: @@ -13604,6 +14471,8 @@ snapshots: dependencies: argparse: 2.0.1 + jsbn@1.1.0: {} + jsdom@20.0.3: dependencies: abab: 2.0.6 @@ -13698,6 +14567,50 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 + lighthouse-logger@2.0.1: + dependencies: + debug: 2.6.9 + marky: 1.2.5 + transitivePeerDependencies: + - supports-color + + lighthouse-stack-packs@1.12.1: {} + + lighthouse@12.2.1: + dependencies: + '@paulirish/trace_engine': 0.0.32 + '@sentry/node': 6.19.7 + axe-core: 4.10.0 + chrome-launcher: 1.1.2 + configstore: 5.0.1 + csp_evaluator: 1.1.1 + devtools-protocol: 0.0.1312386 + enquirer: 2.4.1 + http-link-header: 1.1.3 + intl-messageformat: 10.7.0 + jpeg-js: 0.4.4 + js-library-detector: 6.7.0 + lighthouse-logger: 2.0.1 + lighthouse-stack-packs: 1.12.1 + lodash: 4.17.21 + lookup-closest-locale: 6.2.0 + metaviewport-parser: 0.3.0 + open: 8.4.2 + parse-cache-control: 1.0.1 + puppeteer-core: 23.5.3 + robots-parser: 3.0.1 + semver: 5.7.2 + speedline-core: 1.4.3 + third-party-web: 0.24.5 + tldts-icann: 6.1.51 + ws: 7.5.10 + yargs: 17.7.2 + yargs-parser: 21.1.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + lilconfig@3.1.2: {} lines-and-columns@1.2.4: {} @@ -13745,6 +14658,8 @@ snapshots: longest-streak@3.1.0: {} + lookup-closest-locale@6.2.0: {} + loose-envify@1.4.0: dependencies: js-tokens: 4.0.0 @@ -13761,10 +14676,18 @@ snapshots: dependencies: yallist: 3.1.1 + lru-cache@7.18.3: {} + + lru_map@0.3.3: {} + lunr@2.3.9: {} lz-string@1.5.0: {} + make-dir@3.1.0: + dependencies: + semver: 6.3.1 + make-dir@4.0.0: dependencies: semver: 7.6.3 @@ -13788,6 +14711,8 @@ snapshots: markdown-table@3.0.3: {} + marky@1.2.5: {} + mdast-util-directive@3.0.0: dependencies: '@types/mdast': 4.0.4 @@ -13993,6 +14918,8 @@ snapshots: merge2@1.4.1: {} + metaviewport-parser@0.3.0: {} + methods@1.1.2: {} micromark-core-commonmark@2.0.1: @@ -14271,7 +15198,7 @@ snapshots: micromark@4.0.0: dependencies: '@types/debug': 4.1.12 - debug: 4.3.5 + debug: 4.3.7 decode-named-character-reference: 1.0.2 devlop: 1.1.0 micromark-core-commonmark: 2.0.1 @@ -14317,11 +15244,11 @@ snapshots: min-indent@1.0.1: {} - mini-css-extract-plugin@2.9.0(webpack@5.92.1): + mini-css-extract-plugin@2.9.0(webpack@5.92.1(@swc/core@1.7.35)): dependencies: schema-utils: 4.2.0 tapable: 2.2.1 - webpack: 5.92.1 + webpack: 5.92.1(@swc/core@1.7.35) minimalistic-assert@1.0.1: {} @@ -14341,6 +15268,8 @@ snapshots: minipass@7.1.2: {} + mitt@3.0.1: {} + mockdate@3.0.5: {} mrmime@2.0.0: {} @@ -14364,6 +15293,8 @@ snapshots: neo-async@2.6.2: {} + netmask@2.0.2: {} + no-case@3.0.4: dependencies: lower-case: 2.0.2 @@ -14458,6 +15389,13 @@ snapshots: dependencies: mimic-fn: 2.1.0 + open@10.1.0: + dependencies: + default-browser: 5.2.1 + define-lazy-prop: 3.0.0 + is-inside-container: 1.0.0 + is-wsl: 3.1.0 + open@8.4.2: dependencies: define-lazy-prop: 2.0.0 @@ -14516,6 +15454,24 @@ snapshots: p-try@2.2.0: {} + pac-proxy-agent@7.0.2: + dependencies: + '@tootallnate/quickjs-emscripten': 0.23.0 + agent-base: 7.1.1 + debug: 4.3.7 + get-uri: 6.0.3 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.5 + pac-resolver: 7.0.1 + socks-proxy-agent: 8.0.4 + transitivePeerDependencies: + - supports-color + + pac-resolver@7.0.1: + dependencies: + degenerator: 5.0.1 + netmask: 2.0.2 + package-json-from-dist@1.0.0: {} package-json@8.1.1: @@ -14534,6 +15490,8 @@ snapshots: dependencies: callsites: 3.1.0 + parse-cache-control@1.0.1: {} + parse-entities@4.0.1: dependencies: '@types/unist': 2.0.10 @@ -14599,6 +15557,8 @@ snapshots: path-type@4.0.0: {} + pend@1.2.0: {} + periscopic@3.1.0: dependencies: '@types/estree': 1.0.5 @@ -14704,13 +15664,13 @@ snapshots: postcss: 8.4.45 postcss-selector-parser: 6.1.0 - postcss-loader@7.3.4(postcss@8.4.41)(typescript@5.5.4)(webpack@5.92.1): + postcss-loader@7.3.4(postcss@8.4.41)(typescript@5.5.4)(webpack@5.92.1(@swc/core@1.7.35)): dependencies: cosmiconfig: 8.3.6(typescript@5.5.4) jiti: 1.21.6 postcss: 8.4.41 semver: 7.6.3 - webpack: 5.92.1 + webpack: 5.92.1(@swc/core@1.7.35) transitivePeerDependencies: - typescript @@ -15042,6 +16002,8 @@ snapshots: process-nextick-args@2.0.1: {} + progress@2.0.3: {} + prompts@2.4.2: dependencies: kleur: 3.0.3 @@ -15062,8 +16024,28 @@ snapshots: forwarded: 0.2.0 ipaddr.js: 1.9.1 + proxy-agent@6.4.0: + dependencies: + agent-base: 7.1.1 + debug: 4.3.7 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.5 + lru-cache: 7.18.3 + pac-proxy-agent: 7.0.2 + proxy-from-env: 1.1.0 + socks-proxy-agent: 8.0.4 + transitivePeerDependencies: + - supports-color + + proxy-from-env@1.1.0: {} + psl@1.9.0: {} + pump@3.0.2: + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + punycode.js@2.3.1: {} punycode@1.4.1: {} @@ -15074,6 +16056,33 @@ snapshots: dependencies: escape-goat: 4.0.0 + puppeteer-core@23.5.3: + dependencies: + '@puppeteer/browsers': 2.4.0 + chromium-bidi: 0.8.0(devtools-protocol@0.0.1342118) + debug: 4.3.7 + devtools-protocol: 0.0.1342118 + typed-query-selector: 2.12.0 + ws: 8.18.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + puppeteer@23.5.3(typescript@5.5.4): + dependencies: + '@puppeteer/browsers': 2.4.0 + chromium-bidi: 0.8.0(devtools-protocol@0.0.1342118) + cosmiconfig: 9.0.0(typescript@5.5.4) + devtools-protocol: 0.0.1342118 + puppeteer-core: 23.5.3 + typed-query-selector: 2.12.0 + transitivePeerDependencies: + - bufferutil + - supports-color + - typescript + - utf-8-validate + pure-rand@6.1.0: {} qs@6.11.0: @@ -15084,6 +16093,8 @@ snapshots: queue-microtask@1.2.3: {} + queue-tick@1.0.1: {} + queue@6.0.2: dependencies: inherits: 2.0.4 @@ -15117,7 +16128,7 @@ snapshots: date-fns: 4.1.0 react: 18.3.1 - react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.5.4)(webpack@5.92.1): + react-dev-utils@12.0.1(eslint@8.57.0)(typescript@5.5.4)(webpack@5.92.1(@swc/core@1.7.35)): dependencies: '@babel/code-frame': 7.24.7 address: 1.2.2 @@ -15128,7 +16139,7 @@ snapshots: escape-string-regexp: 4.0.0 filesize: 8.0.7 find-up: 5.0.0 - fork-ts-checker-webpack-plugin: 6.5.3(eslint@8.57.0)(typescript@5.5.4)(webpack@5.92.1) + fork-ts-checker-webpack-plugin: 6.5.3(eslint@8.57.0)(typescript@5.5.4)(webpack@5.92.1(@swc/core@1.7.35)) global-modules: 2.0.0 globby: 11.1.0 gzip-size: 6.0.0 @@ -15143,7 +16154,7 @@ snapshots: shell-quote: 1.8.1 strip-ansi: 6.0.1 text-table: 0.2.0 - webpack: 5.92.1 + webpack: 5.92.1(@swc/core@1.7.35) optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: @@ -15188,11 +16199,11 @@ snapshots: dependencies: react: 18.3.1 - react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@6.0.0(react@18.3.1))(webpack@5.92.1): + react-loadable-ssr-addon-v5-slorber@1.0.1(@docusaurus/react-loadable@6.0.0(react@18.3.1))(webpack@5.92.1(@swc/core@1.7.35)): dependencies: '@babel/runtime': 7.24.7 react-loadable: '@docusaurus/react-loadable@6.0.0(react@18.3.1)' - webpack: 5.92.1 + webpack: 5.92.1(@swc/core@1.7.35) react-refresh@0.14.2: {} @@ -15457,6 +16468,8 @@ snapshots: dependencies: glob: 7.2.3 + robots-parser@3.0.1: {} + rollup@4.21.0: dependencies: '@types/estree': 1.0.5 @@ -15488,6 +16501,8 @@ snapshots: postcss: 8.4.45 strip-json-comments: 3.1.1 + run-applescript@7.0.0: {} + run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 @@ -15558,6 +16573,8 @@ snapshots: dependencies: semver: 7.6.3 + semver@5.7.2: {} + semver@6.3.1: {} semver@7.6.2: {} @@ -15698,6 +16715,8 @@ snapshots: slash@4.0.0: {} + smart-buffer@4.2.0: {} + snake-case@3.0.4: dependencies: dot-case: 3.0.4 @@ -15709,6 +16728,19 @@ snapshots: uuid: 8.3.2 websocket-driver: 0.7.4 + socks-proxy-agent@8.0.4: + dependencies: + agent-base: 7.1.1 + debug: 4.3.7 + socks: 2.8.3 + transitivePeerDependencies: + - supports-color + + socks@2.8.3: + dependencies: + ip-address: 9.0.5 + smart-buffer: 4.2.0 + sort-css-media-queries@2.2.0: {} source-map-js@1.2.0: {} @@ -15743,7 +16775,7 @@ snapshots: spdy-transport@3.0.0: dependencies: - debug: 4.3.5 + debug: 4.3.7 detect-node: 2.1.0 hpack.js: 2.1.6 obuf: 1.1.2 @@ -15754,7 +16786,7 @@ snapshots: spdy@4.0.2: dependencies: - debug: 4.3.5 + debug: 4.3.7 handle-thing: 2.0.1 http-deceiver: 1.2.7 select-hose: 2.0.0 @@ -15762,8 +16794,16 @@ snapshots: transitivePeerDependencies: - supports-color + speedline-core@1.4.3: + dependencies: + '@types/node': 22.5.4 + image-ssim: 0.2.0 + jpeg-js: 0.4.4 + sprintf-js@1.0.3: {} + sprintf-js@1.1.3: {} + srcset@4.0.0: {} stack-utils@2.0.6: @@ -15776,6 +16816,14 @@ snapshots: std-env@3.7.0: {} + streamx@2.20.1: + dependencies: + fast-fifo: 1.3.2 + queue-tick: 1.0.1 + text-decoder: 1.2.0 + optionalDependencies: + bare-events: 2.5.0 + string-length@4.0.2: dependencies: char-regex: 1.0.2 @@ -15932,14 +16980,30 @@ snapshots: tapable@2.2.1: {} - terser-webpack-plugin@5.3.10(webpack@5.92.1): + tar-fs@3.0.6: + dependencies: + pump: 3.0.2 + tar-stream: 3.1.7 + optionalDependencies: + bare-fs: 2.3.5 + bare-path: 2.1.3 + + tar-stream@3.1.7: + dependencies: + b4a: 1.6.7 + fast-fifo: 1.3.2 + streamx: 2.20.1 + + terser-webpack-plugin@5.3.10(@swc/core@1.7.35)(webpack@5.92.1(@swc/core@1.7.35)): dependencies: '@jridgewell/trace-mapping': 0.3.25 jest-worker: 27.5.1 schema-utils: 3.3.0 serialize-javascript: 6.0.2 terser: 5.31.1 - webpack: 5.92.1 + webpack: 5.92.1(@swc/core@1.7.35) + optionalDependencies: + '@swc/core': 1.7.35 terser@5.31.1: dependencies: @@ -15954,14 +17018,28 @@ snapshots: glob: 7.2.3 minimatch: 3.1.2 + text-decoder@1.2.0: + dependencies: + b4a: 1.6.7 + text-table@0.2.0: {} + third-party-web@0.24.5: {} + + through@2.3.8: {} + thunky@1.1.0: {} tiny-invariant@1.3.3: {} tiny-warning@1.0.3: {} + tldts-core@6.1.51: {} + + tldts-icann@6.1.51: + dependencies: + tldts-core: 6.1.51 + tmpl@1.0.5: {} to-fast-properties@2.0.0: {} @@ -15997,12 +17075,12 @@ snapshots: dependencies: typescript: 5.5.4 - ts-jest@29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@types/node@22.5.4)(typescript@5.5.4)))(typescript@5.5.4): + ts-jest@29.2.5(@babel/core@7.25.7)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.25.7))(jest@29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@swc/core@1.7.35)(@types/node@22.5.4)(typescript@5.5.4)))(typescript@5.5.4): dependencies: bs-logger: 0.2.6 ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@types/node@22.5.4)(typescript@5.5.4)) + jest: 29.7.0(@types/node@22.5.4)(ts-node@10.9.2(@swc/core@1.7.35)(@types/node@22.5.4)(typescript@5.5.4)) jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 @@ -16016,7 +17094,7 @@ snapshots: '@jest/types': 29.6.3 babel-jest: 29.7.0(@babel/core@7.25.7) - ts-node@10.9.2(@types/node@22.5.4)(typescript@5.5.4): + ts-node@10.9.2(@swc/core@1.7.35)(@types/node@22.5.4)(typescript@5.5.4): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 @@ -16033,6 +17111,8 @@ snapshots: typescript: 5.5.4 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 + optionalDependencies: + '@swc/core': 1.7.35 tsconfig-paths@3.15.0: dependencies: @@ -16103,6 +17183,8 @@ snapshots: is-typed-array: 1.1.13 possible-typed-array-names: 1.0.0 + typed-query-selector@2.12.0: {} + typedarray-to-buffer@3.1.5: dependencies: is-typedarray: 1.0.0 @@ -16142,6 +17224,11 @@ snapshots: has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 + unbzip2-stream@1.4.3: + dependencies: + buffer: 5.7.1 + through: 2.3.8 + undici-types@6.19.6: {} unicode-canonical-property-names-ecmascript@2.0.0: {} @@ -16167,6 +17254,10 @@ snapshots: trough: 2.2.0 vfile: 6.0.1 + unique-string@2.0.0: + dependencies: + crypto-random-string: 2.0.0 + unique-string@3.0.0: dependencies: crypto-random-string: 4.0.0 @@ -16212,7 +17303,7 @@ snapshots: update-browserslist-db@1.0.16(browserslist@4.23.1): dependencies: browserslist: 4.23.1 - escalade: 3.1.2 + escalade: 3.2.0 picocolors: 1.1.0 update-browserslist-db@1.1.1(browserslist@4.24.0): @@ -16244,20 +17335,22 @@ snapshots: urix@0.1.0: {} - url-loader@4.1.1(file-loader@6.2.0(webpack@5.92.1))(webpack@5.92.1): + url-loader@4.1.1(file-loader@6.2.0(webpack@5.92.1(@swc/core@1.7.35)))(webpack@5.92.1(@swc/core@1.7.35)): dependencies: loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.3.0 - webpack: 5.92.1 + webpack: 5.92.1(@swc/core@1.7.35) optionalDependencies: - file-loader: 6.2.0(webpack@5.92.1) + file-loader: 6.2.0(webpack@5.92.1(@swc/core@1.7.35)) url-parse@1.5.10: dependencies: querystringify: 2.2.0 requires-port: 1.0.0 + urlpattern-polyfill@10.0.0: {} + util-deprecate@1.0.2: {} utila@0.4.0: {} @@ -16345,16 +17438,16 @@ snapshots: - bufferutil - utf-8-validate - webpack-dev-middleware@5.3.4(webpack@5.92.1): + webpack-dev-middleware@5.3.4(webpack@5.92.1(@swc/core@1.7.35)): dependencies: colorette: 2.0.20 memfs: 3.5.3 mime-types: 2.1.35 range-parser: 1.2.1 schema-utils: 4.2.0 - webpack: 5.92.1 + webpack: 5.92.1(@swc/core@1.7.35) - webpack-dev-server@4.15.2(webpack@5.92.1): + webpack-dev-server@4.15.2(webpack@5.92.1(@swc/core@1.7.35)): dependencies: '@types/bonjour': 3.5.13 '@types/connect-history-api-fallback': 1.5.4 @@ -16384,10 +17477,10 @@ snapshots: serve-index: 1.9.1 sockjs: 0.3.24 spdy: 4.0.2 - webpack-dev-middleware: 5.3.4(webpack@5.92.1) + webpack-dev-middleware: 5.3.4(webpack@5.92.1(@swc/core@1.7.35)) ws: 8.17.1 optionalDependencies: - webpack: 5.92.1 + webpack: 5.92.1(@swc/core@1.7.35) transitivePeerDependencies: - bufferutil - debug @@ -16402,7 +17495,7 @@ snapshots: webpack-sources@3.2.3: {} - webpack@5.92.1: + webpack@5.92.1(@swc/core@1.7.35): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.5 @@ -16425,7 +17518,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.10(webpack@5.92.1) + terser-webpack-plugin: 5.3.10(@swc/core@1.7.35)(webpack@5.92.1(@swc/core@1.7.35)) watchpack: 2.4.1 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -16433,13 +17526,13 @@ snapshots: - esbuild - uglify-js - webpackbar@5.0.2(webpack@5.92.1): + webpackbar@5.0.2(webpack@5.92.1(@swc/core@1.7.35)): dependencies: chalk: 4.1.2 consola: 2.15.3 pretty-time: 1.1.0 std-env: 3.7.0 - webpack: 5.92.1 + webpack: 5.92.1(@swc/core@1.7.35) websocket-driver@0.7.4: dependencies: @@ -16544,6 +17637,10 @@ snapshots: ws@8.17.1: {} + ws@8.18.0: {} + + xdg-basedir@4.0.0: {} + xdg-basedir@5.1.0: {} xml-js@1.6.11: @@ -16569,17 +17666,24 @@ snapshots: yargs@17.7.2: dependencies: cliui: 8.0.1 - escalade: 3.1.2 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 y18n: 5.0.8 yargs-parser: 21.1.1 + yauzl@2.10.0: + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 + yn@3.1.1: {} yocto-queue@0.1.0: {} yocto-queue@1.0.0: {} + zod@3.23.8: {} + zwitch@2.0.4: {} diff --git a/react-day-picker.code-workspace b/react-day-picker.code-workspace index 884e8000b0..894b8e3fea 100644 --- a/react-day-picker.code-workspace +++ b/react-day-picker.code-workspace @@ -21,6 +21,9 @@ }, { "path": "examples-app" + }, + { + "path": "performance-tests" } ], "settings": { From 94393abe548d6c6e32ca39c8c721439a99440f15 Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 12:01:53 -0500 Subject: [PATCH 05/51] Add workflow --- .github/workflows/performance.yml | 37 +++++++++++++++++++++++++++++++ performance-tests/package.json | 3 +++ pnpm-lock.yaml | 37 +++++++++++++++++++++++++++++++ 3 files changed, 77 insertions(+) create mode 100644 .github/workflows/performance.yml diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml new file mode 100644 index 0000000000..889dc219e5 --- /dev/null +++ b/.github/workflows/performance.yml @@ -0,0 +1,37 @@ +name: Performance Test + +on: + pull_request: + types: [labeled] + +jobs: + run-performance-test: + if: contains(github.event.label.name, 'performance') + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Set up Node.js + uses: actions/setup-node@v2 + with: + node-version: '16' + + - name: Install dependencies + run: npm install + + - name: Run examples app + run: pnpm --filter performance-tests start-server & + + - name: Wait for server to start + run: npx wait-on http://localhost:4173 + + - name: Run performance test + run: node performance-tests/capture.mjs + + - name: Upload report + uses: actions/upload-artifact@v2 + with: + name: performance-report + path: reports/ diff --git a/performance-tests/package.json b/performance-tests/package.json index e20d093659..9eeacc668a 100644 --- a/performance-tests/package.json +++ b/performance-tests/package.json @@ -15,5 +15,8 @@ "lighthouse": "^12.2.1", "open": "^10.1.0", "puppeteer": "^23.5.3" + }, + "devDependencies": { + "wait-on": "^8.0.1" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5449803010..027ea48fcc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -178,6 +178,10 @@ importers: puppeteer: specifier: ^23.5.3 version: 23.5.3(typescript@5.5.4) + devDependencies: + wait-on: + specifier: ^8.0.1 + version: 8.0.1 website: dependencies: @@ -2635,6 +2639,9 @@ packages: resolution: {integrity: sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==} engines: {node: '>=4'} + axios@1.7.7: + resolution: {integrity: sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==} + b4a@1.6.7: resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} @@ -6416,6 +6423,9 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + safe-array-concat@1.1.2: resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} engines: {node: '>=0.4'} @@ -7231,6 +7241,11 @@ packages: resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} engines: {node: '>=14'} + wait-on@8.0.1: + resolution: {integrity: sha512-1wWQOyR2LVVtaqrcIL2+OM+x7bkpmzVROa0Nf6FryXkS+er5Sa1kzFGjzZRqLnHa3n1rACFLeTwUqE1ETL9Mig==} + engines: {node: '>=12.0.0'} + hasBin: true + walker@1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} @@ -11593,6 +11608,14 @@ snapshots: axe-core@4.10.0: {} + axios@1.7.7: + dependencies: + follow-redirects: 1.15.6 + form-data: 4.0.0 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + b4a@1.6.7: {} babel-jest@29.7.0(@babel/core@7.25.7): @@ -16507,6 +16530,10 @@ snapshots: dependencies: queue-microtask: 1.2.3 + rxjs@7.8.1: + dependencies: + tslib: 2.7.0 + safe-array-concat@1.1.2: dependencies: call-bind: 1.0.7 @@ -17403,6 +17430,16 @@ snapshots: dependencies: xml-name-validator: 4.0.0 + wait-on@8.0.1: + dependencies: + axios: 1.7.7 + joi: 17.13.3 + lodash: 4.17.21 + minimist: 1.2.8 + rxjs: 7.8.1 + transitivePeerDependencies: + - debug + walker@1.0.8: dependencies: makeerror: 1.0.12 From 47ba816eaf803d8b56e5610122948d7a6cd5031a Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 12:04:23 -0500 Subject: [PATCH 06/51] Update workflow --- .github/workflows/performance.yml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index 889dc219e5..40a3e3b620 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -10,16 +10,18 @@ jobs: runs-on: ubuntu-latest steps: - - name: Checkout repository - uses: actions/checkout@v2 - - - name: Set up Node.js - uses: actions/setup-node@v2 + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v4 + with: + version: 9.4.0 + - uses: actions/setup-node@v4 with: - node-version: '16' + node-version: 20.16 + cache: pnpm + - run: pnpm install --frozen-lockfile - name: Install dependencies - run: npm install + run: pnpm install - name: Run examples app run: pnpm --filter performance-tests start-server & From 2ce55ea6bbb5d6458a3364de9dbc0cb8136fcd7e Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 12:06:14 -0500 Subject: [PATCH 07/51] Fix workflow --- .github/workflows/performance.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index 40a3e3b620..29ededd166 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -2,7 +2,10 @@ name: Performance Test on: pull_request: - types: [labeled] + branches: + - main + types: + - labeled jobs: run-performance-test: From 807d06e8867c80a0f7d140fa8b81bfabbed802f4 Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 12:08:48 -0500 Subject: [PATCH 08/51] Fix workflow --- .github/workflows/performance.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index 29ededd166..7e6f895391 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -2,10 +2,12 @@ name: Performance Test on: pull_request: + types: [labeled] + branches: + - main + push: branches: - main - types: - - labeled jobs: run-performance-test: From ffb911513bc9426ef877f3781869036ca4e5bbe4 Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 12:11:11 -0500 Subject: [PATCH 09/51] Fix --- .github/workflows/performance.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index 7e6f895391..d0fb9959f5 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -38,7 +38,7 @@ jobs: run: node performance-tests/capture.mjs - name: Upload report - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: - name: performance-report - path: reports/ + name: reports + path: performance-tests/reports From 8e485ff808917c0496502a2340a1b770b40bbeac Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 12:11:43 -0500 Subject: [PATCH 10/51] Fix workflow --- .github/workflows/performance.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index d0fb9959f5..dea103263e 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -2,7 +2,6 @@ name: Performance Test on: pull_request: - types: [labeled] branches: - main push: @@ -11,7 +10,6 @@ on: jobs: run-performance-test: - if: contains(github.event.label.name, 'performance') runs-on: ubuntu-latest steps: From 6dd549a57ef341d38b00e4e91a4dcb0827427d62 Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 12:12:42 -0500 Subject: [PATCH 11/51] Update workflow --- .github/workflows/performance.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index dea103263e..d306048268 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -2,6 +2,7 @@ name: Performance Test on: pull_request: + types: [opened, synchronize, labeled] branches: - main push: From b242126532aa6da2a0591d655e875195433227ba Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 12:17:05 -0500 Subject: [PATCH 12/51] Update workflow --- .github/workflows/performance.yml | 42 ++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index d306048268..8719c7a4d7 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -10,9 +10,8 @@ on: - main jobs: - run-performance-test: + build-react-day-picker: runs-on: ubuntu-latest - steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 @@ -23,21 +22,34 @@ jobs: node-version: 20.16 cache: pnpm - run: pnpm install --frozen-lockfile + - run: pnpm build + - uses: actions/upload-artifact@v4 + with: + name: rdp-dist + path: dist - - name: Install dependencies - run: pnpm install - - - name: Run examples app - run: pnpm --filter performance-tests start-server & - - - name: Wait for server to start - run: npx wait-on http://localhost:4173 - - - name: Run performance test - run: node performance-tests/capture.mjs + run-performance-test: + needs: [build-react-day-picker] + runs-on: ubuntu-latest - - name: Upload report - uses: actions/upload-artifact@v4 + steps: + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v4 + with: + version: 9.4.0 + - uses: actions/setup-node@v4 + with: + node-version: 20.16 + cache: pnpm + - uses: actions/download-artifact@v4 + with: + name: rdp-dist + path: dist + - run: pnpm install --frozen-lockfile + - run: pnpm --filter performance-tests start-server & + - run: npx wait-on http://localhost:4173 + - run: node performance-tests/capture.mjs + - uses: actions/upload-artifact@v4 with: name: reports path: performance-tests/reports From 1cb41ac45baf75d40250e825d386f8fe91c0dbd6 Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 12:20:04 -0500 Subject: [PATCH 13/51] Headless --- performance-tests/capture.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/performance-tests/capture.mjs b/performance-tests/capture.mjs index 34d46bef85..791d6438b8 100644 --- a/performance-tests/capture.mjs +++ b/performance-tests/capture.mjs @@ -8,7 +8,7 @@ import lighthouseConfig from "./lighthouse-config.mjs"; async function captureReport() { const browser = await puppeteer.launch({ - headless: false, + headless: true, defaultViewport: { width: 1200, height: 800, deviceScaleFactor: 2 } }); const page = await browser.newPage(); From 1b4e9bfd90dcb3217190369160710e2a272bdbc8 Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 12:22:15 -0500 Subject: [PATCH 14/51] Install chrome --- .github/workflows/performance.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index 8719c7a4d7..40483f640f 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -22,6 +22,10 @@ jobs: node-version: 20.16 cache: pnpm - run: pnpm install --frozen-lockfile + - name: Install Chrome + run: | + sudo apt-get update + sudo apt-get install -y google-chrome-stable - run: pnpm build - uses: actions/upload-artifact@v4 with: From 42130c7ff2d3d22703e3e2a8c55d56f0b2444cbc Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 12:22:41 -0500 Subject: [PATCH 15/51] Update script --- .github/workflows/performance.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index 40483f640f..fc0d7e0a4b 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -22,10 +22,7 @@ jobs: node-version: 20.16 cache: pnpm - run: pnpm install --frozen-lockfile - - name: Install Chrome - run: | - sudo apt-get update - sudo apt-get install -y google-chrome-stable + - run: pnpm build - uses: actions/upload-artifact@v4 with: @@ -50,6 +47,10 @@ jobs: name: rdp-dist path: dist - run: pnpm install --frozen-lockfile + - name: Install Chrome + run: | + sudo apt-get update + sudo apt-get install -y google-chrome-stable - run: pnpm --filter performance-tests start-server & - run: npx wait-on http://localhost:4173 - run: node performance-tests/capture.mjs From 06fb0d596af394ff2bfffda91025f7303d73e8b4 Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 15:22:51 -0500 Subject: [PATCH 16/51] browser-actions/setup-chrome@v1 --- .github/workflows/performance.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index fc0d7e0a4b..cb1c9b35d0 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -35,6 +35,7 @@ jobs: steps: - uses: actions/checkout@v4 + - uses: browser-actions/setup-chrome@v1 - uses: pnpm/action-setup@v4 with: version: 9.4.0 From 3c7821c218aa4f94f14453c8afb044345867e447 Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 15:26:29 -0500 Subject: [PATCH 17/51] Add /opt/hostedtoolcache/setup-chrome/chromium/1368061/x64 --- performance-tests/capture.mjs | 1 + 1 file changed, 1 insertion(+) diff --git a/performance-tests/capture.mjs b/performance-tests/capture.mjs index 791d6438b8..057855e874 100644 --- a/performance-tests/capture.mjs +++ b/performance-tests/capture.mjs @@ -9,6 +9,7 @@ import lighthouseConfig from "./lighthouse-config.mjs"; async function captureReport() { const browser = await puppeteer.launch({ headless: true, + executablePath: "/opt/hostedtoolcache/setup-chrome/chromium/1368061/x64", defaultViewport: { width: 1200, height: 800, deviceScaleFactor: 2 } }); const page = await browser.newPage(); From a61946d51954840515a8064e73b0aebdd28ae82a Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 15:27:56 -0500 Subject: [PATCH 18/51] Echo --- .github/workflows/performance.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index cb1c9b35d0..f32bd2e9cc 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -36,6 +36,9 @@ jobs: steps: - uses: actions/checkout@v4 - uses: browser-actions/setup-chrome@v1 + id: setup-chrome + - run: | + echo ${{ steps.setup-chrome.outputs.chrome-path }} - uses: pnpm/action-setup@v4 with: version: 9.4.0 From 6e7fafebda1f8ab54712f34e7ff22f4c9099228c Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 15:29:30 -0500 Subject: [PATCH 19/51] Fix chrome path --- performance-tests/capture.mjs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/performance-tests/capture.mjs b/performance-tests/capture.mjs index 057855e874..4a0ded6c36 100644 --- a/performance-tests/capture.mjs +++ b/performance-tests/capture.mjs @@ -9,7 +9,8 @@ import lighthouseConfig from "./lighthouse-config.mjs"; async function captureReport() { const browser = await puppeteer.launch({ headless: true, - executablePath: "/opt/hostedtoolcache/setup-chrome/chromium/1368061/x64", + executablePath: + "/opt/hostedtoolcache/setup-chrome/chromium/1368061/x64/chrome", defaultViewport: { width: 1200, height: 800, deviceScaleFactor: 2 } }); const page = await browser.newPage(); From 5384e1c6f3935a8962060256522b4e9cf7adf009 Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 15:33:16 -0500 Subject: [PATCH 20/51] Add timeout, create dir --- .github/workflows/performance.yml | 7 ++----- performance-tests/package.json | 4 +--- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index f32bd2e9cc..9a1ca504f5 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -51,12 +51,9 @@ jobs: name: rdp-dist path: dist - run: pnpm install --frozen-lockfile - - name: Install Chrome - run: | - sudo apt-get update - sudo apt-get install -y google-chrome-stable - run: pnpm --filter performance-tests start-server & - - run: npx wait-on http://localhost:4173 + - run: pnpx wait-on http://localhost:4173 --timeout 5000 + - run: mkdir performance-tests/reports - run: node performance-tests/capture.mjs - uses: actions/upload-artifact@v4 with: diff --git a/performance-tests/package.json b/performance-tests/package.json index 9eeacc668a..d9ed7dba5f 100644 --- a/performance-tests/package.json +++ b/performance-tests/package.json @@ -14,9 +14,7 @@ "dependencies": { "lighthouse": "^12.2.1", "open": "^10.1.0", + "wait-on": "^8.0.1", "puppeteer": "^23.5.3" - }, - "devDependencies": { - "wait-on": "^8.0.1" } } From 58ee51d162b3e0dbbe3fc68d3e728e31b4f7e09c Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 15:34:12 -0500 Subject: [PATCH 21/51] Update pnpm-lock.yaml --- pnpm-lock.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 027ea48fcc..b0a895aba8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -178,7 +178,6 @@ importers: puppeteer: specifier: ^23.5.3 version: 23.5.3(typescript@5.5.4) - devDependencies: wait-on: specifier: ^8.0.1 version: 8.0.1 From 7cc7250256cb669b582095e7f40d8cb1d419f855 Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 15:37:10 -0500 Subject: [PATCH 22/51] Fix --- .github/workflows/performance.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index 9a1ca504f5..3799e5f72d 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -53,9 +53,9 @@ jobs: - run: pnpm install --frozen-lockfile - run: pnpm --filter performance-tests start-server & - run: pnpx wait-on http://localhost:4173 --timeout 5000 - - run: mkdir performance-tests/reports + - run: mkdir -p ./reports - run: node performance-tests/capture.mjs - uses: actions/upload-artifact@v4 with: name: reports - path: performance-tests/reports + path: ./reports From 74f5fba22a8f644493c7e80bd466c48b8b54d6cd Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 15:38:30 -0500 Subject: [PATCH 23/51] Update performance.yml --- .github/workflows/performance.yml | 89 ++++++++++++++++++++++++------- 1 file changed, 69 insertions(+), 20 deletions(-) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index 3799e5f72d..4850c60dce 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -13,18 +13,36 @@ jobs: build-react-day-picker: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: pnpm/action-setup@v4 + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up pnpm + uses: pnpm/action-setup@v4 with: version: 9.4.0 - - uses: actions/setup-node@v4 + + - name: Set up Node.js + uses: actions/setup-node@v4 with: node-version: 20.16 cache: pnpm - - run: pnpm install --frozen-lockfile - - - run: pnpm build - - uses: actions/upload-artifact@v4 + + - name: Cache node_modules + uses: actions/cache@v3 + with: + path: ~/.pnpm-store + key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm- + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Build project + run: pnpm build + + - name: Upload build artifacts + uses: actions/upload-artifact@v4 with: name: rdp-dist path: dist @@ -34,28 +52,59 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: browser-actions/setup-chrome@v1 + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Chrome + uses: browser-actions/setup-chrome@v1 id: setup-chrome - - run: | - echo ${{ steps.setup-chrome.outputs.chrome-path }} - - uses: pnpm/action-setup@v4 + + - name: Set up pnpm + uses: pnpm/action-setup@v4 with: version: 9.4.0 - - uses: actions/setup-node@v4 + + - name: Set up Node.js + uses: actions/setup-node@v4 with: node-version: 20.16 cache: pnpm - - uses: actions/download-artifact@v4 + + - name: Download build artifacts + uses: actions/download-artifact@v4 with: name: rdp-dist path: dist - - run: pnpm install --frozen-lockfile - - run: pnpm --filter performance-tests start-server & - - run: pnpx wait-on http://localhost:4173 --timeout 5000 - - run: mkdir -p ./reports - - run: node performance-tests/capture.mjs - - uses: actions/upload-artifact@v4 + + - name: Cache node_modules + uses: actions/cache@v3 + with: + path: ~/.pnpm-store + key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm- + + - name: Install dependencies + run: pnpm install --frozen-lockfile + + - name: Start server + run: pnpm --filter performance-tests start-server & + env: + CHROME_PATH: ${{ steps.setup-chrome.outputs.chrome-path }} + + - name: Wait for server to start + run: pnpx wait-on http://localhost:4173 --timeout 10000 + + - name: Create reports directory + run: mkdir -p ./reports + + - name: Run performance test + run: node performance-tests/capture.mjs + env: + CHROME_PATH: ${{ steps.setup-chrome.outputs.chrome-path }} + + - name: Upload reports + uses: actions/upload-artifact@v4 with: name: reports path: ./reports From 9fa198b97521012b2e3e1f619a88ed4a1cbda6b5 Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 15:47:02 -0500 Subject: [PATCH 24/51] Tuning --- performance-tests/capture.mjs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/performance-tests/capture.mjs b/performance-tests/capture.mjs index 4a0ded6c36..fbb31a8da9 100644 --- a/performance-tests/capture.mjs +++ b/performance-tests/capture.mjs @@ -9,8 +9,7 @@ import lighthouseConfig from "./lighthouse-config.mjs"; async function captureReport() { const browser = await puppeteer.launch({ headless: true, - executablePath: - "/opt/hostedtoolcache/setup-chrome/chromium/1368061/x64/chrome", + executablePath: process.env.CHROME_PATH || undefined, defaultViewport: { width: 1200, height: 800, deviceScaleFactor: 2 } }); const page = await browser.newPage(); @@ -24,12 +23,15 @@ async function captureReport() { await rangeLong(flow, page); - await browser.close(); + await flow.snapshot(); const report = await flow.generateReport(); + await browser.close(); + const timestamp = new Date().toISOString().replace(/[:.]/g, "-"); const reportFileName = `./reports/flow.report.${timestamp}.html`; + fs.writeFileSync(reportFileName, report); open(reportFileName, { wait: false }); } From 6fa9ffcf9388bcb8741bc768ddd4511ed4808a2e Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 15:50:07 -0500 Subject: [PATCH 25/51] .pnpm-store --- .github/workflows/performance.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index 4850c60dce..2dd9eb987e 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -27,6 +27,9 @@ jobs: node-version: 20.16 cache: pnpm + - name: Create pnpm store directory + run: mkdir -p ~/.pnpm-store + - name: Cache node_modules uses: actions/cache@v3 with: @@ -76,6 +79,9 @@ jobs: name: rdp-dist path: dist + - name: Create pnpm store directory + run: mkdir -p ~/.pnpm-store + - name: Cache node_modules uses: actions/cache@v3 with: From b9a0110b81b176149940476ff7ec19b0f585c7d1 Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 15:51:17 -0500 Subject: [PATCH 26/51] Remove version --- .github/workflows/performance.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index 2dd9eb987e..312251533d 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -18,13 +18,10 @@ jobs: - name: Set up pnpm uses: pnpm/action-setup@v4 - with: - version: 9.4.0 - name: Set up Node.js uses: actions/setup-node@v4 with: - node-version: 20.16 cache: pnpm - name: Create pnpm store directory @@ -64,13 +61,10 @@ jobs: - name: Set up pnpm uses: pnpm/action-setup@v4 - with: - version: 9.4.0 - name: Set up Node.js uses: actions/setup-node@v4 with: - node-version: 20.16 cache: pnpm - name: Download build artifacts From ada51053438f4d77ef447290bd6268e69ec116dc Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 15:52:32 -0500 Subject: [PATCH 27/51] Headless browser --- .github/workflows/performance.yml | 1 + performance-tests/capture.mjs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index 312251533d..e5141c3900 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -102,6 +102,7 @@ jobs: run: node performance-tests/capture.mjs env: CHROME_PATH: ${{ steps.setup-chrome.outputs.chrome-path }} + HEADLESS: true - name: Upload reports uses: actions/upload-artifact@v4 diff --git a/performance-tests/capture.mjs b/performance-tests/capture.mjs index fbb31a8da9..c0a85ee1cc 100644 --- a/performance-tests/capture.mjs +++ b/performance-tests/capture.mjs @@ -8,7 +8,7 @@ import lighthouseConfig from "./lighthouse-config.mjs"; async function captureReport() { const browser = await puppeteer.launch({ - headless: true, + headless: Boolean(process.env.HEADLESS) || false, executablePath: process.env.CHROME_PATH || undefined, defaultViewport: { width: 1200, height: 800, deviceScaleFactor: 2 } }); From 38f28dcc8cc1c262451a7feb335c0f372c07d4eb Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 15:53:37 -0500 Subject: [PATCH 28/51] Use latest --- .github/workflows/performance.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index e5141c3900..280e8661f5 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -18,6 +18,8 @@ jobs: - name: Set up pnpm uses: pnpm/action-setup@v4 + with: + version: 6.16.0 - name: Set up Node.js uses: actions/setup-node@v4 @@ -61,6 +63,8 @@ jobs: - name: Set up pnpm uses: pnpm/action-setup@v4 + with: + version: 6.16.0 - name: Set up Node.js uses: actions/setup-node@v4 From a3c22fa6ac267a8b84d248aae6eb136ac7cc3d34 Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 15:55:00 -0500 Subject: [PATCH 29/51] Fix package manager --- .github/workflows/performance.yml | 4 ---- performance-tests/package.json | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index 280e8661f5..e5141c3900 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -18,8 +18,6 @@ jobs: - name: Set up pnpm uses: pnpm/action-setup@v4 - with: - version: 6.16.0 - name: Set up Node.js uses: actions/setup-node@v4 @@ -63,8 +61,6 @@ jobs: - name: Set up pnpm uses: pnpm/action-setup@v4 - with: - version: 6.16.0 - name: Set up Node.js uses: actions/setup-node@v4 diff --git a/performance-tests/package.json b/performance-tests/package.json index d9ed7dba5f..30d1604118 100644 --- a/performance-tests/package.json +++ b/performance-tests/package.json @@ -2,6 +2,7 @@ "name": "performance-tests", "version": "1.0.0", "description": "Performance tests for react-day-picker", + "packageManager": "pnpm@9.11.0", "main": "capture.mjs", "scripts": { "start-server": "pnpm --filter examples-app run build && pnpm --filter examples-app run preview", From e6f158942ddb8d7730986377d10ad29d623c76ba Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 15:56:15 -0500 Subject: [PATCH 30/51] Fix CI env --- .github/workflows/performance.yml | 2 +- performance-tests/capture.mjs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index e5141c3900..7060099b2a 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -102,7 +102,7 @@ jobs: run: node performance-tests/capture.mjs env: CHROME_PATH: ${{ steps.setup-chrome.outputs.chrome-path }} - HEADLESS: true + CI: true - name: Upload reports uses: actions/upload-artifact@v4 diff --git a/performance-tests/capture.mjs b/performance-tests/capture.mjs index c0a85ee1cc..89706c7f2f 100644 --- a/performance-tests/capture.mjs +++ b/performance-tests/capture.mjs @@ -8,7 +8,7 @@ import lighthouseConfig from "./lighthouse-config.mjs"; async function captureReport() { const browser = await puppeteer.launch({ - headless: Boolean(process.env.HEADLESS) || false, + headless: Boolean(process.env.CI) === true, executablePath: process.env.CHROME_PATH || undefined, defaultViewport: { width: 1200, height: 800, deviceScaleFactor: 2 } }); From c4afbddbc52be11d2b61d6fbd6e68a510d1f8fbf Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 15:58:03 -0500 Subject: [PATCH 31/51] Fix packageManager --- package.json | 1 + performance-tests/package.json | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 61f3cd20d7..5dc303ec29 100644 --- a/package.json +++ b/package.json @@ -4,6 +4,7 @@ "description": "Customizable Date Picker for React", "author": "Giampaolo Bellavite ", "homepage": "https://daypicker.dev", + "packageManager": "pnpm@9.11.0", "license": "MIT", "repository": { "type": "git", diff --git a/performance-tests/package.json b/performance-tests/package.json index 30d1604118..d9ed7dba5f 100644 --- a/performance-tests/package.json +++ b/performance-tests/package.json @@ -2,7 +2,6 @@ "name": "performance-tests", "version": "1.0.0", "description": "Performance tests for react-day-picker", - "packageManager": "pnpm@9.11.0", "main": "capture.mjs", "scripts": { "start-server": "pnpm --filter examples-app run build && pnpm --filter examples-app run preview", From 63eeaefdf02805ae8c2b1f9f4f344ab4d5368a56 Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 16:00:52 -0500 Subject: [PATCH 32/51] Fix package manager --- .github/workflows/package.yml | 10 ---------- .github/workflows/website.yml | 6 ------ 2 files changed, 16 deletions(-) diff --git a/.github/workflows/package.yml b/.github/workflows/package.yml index fdd5f8546f..bbe0bfec46 100644 --- a/.github/workflows/package.yml +++ b/.github/workflows/package.yml @@ -23,8 +23,6 @@ jobs: steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 - with: - version: 9.4.0 - uses: actions/setup-node@v4 with: node-version: 20.16 @@ -37,8 +35,6 @@ jobs: steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 - with: - version: 9.4.0 - uses: actions/setup-node@v4 with: node-version: 20.16 @@ -52,8 +48,6 @@ jobs: steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 - with: - version: 9.4.0 - uses: actions/setup-node@v4 with: node-version: 20.16 @@ -66,8 +60,6 @@ jobs: steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 - with: - version: 9.4.0 - uses: actions/setup-node@v4 with: node-version: 20.16 @@ -88,8 +80,6 @@ jobs: steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 - with: - version: 9.4.0 - uses: actions/setup-node@v4 with: node-version: 20.16 diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml index 0def0cd86e..b36c273cd5 100644 --- a/.github/workflows/website.yml +++ b/.github/workflows/website.yml @@ -16,8 +16,6 @@ jobs: steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 - with: - version: 9.4.0 - uses: actions/setup-node@v4 with: node-version: 20.16 @@ -35,8 +33,6 @@ jobs: steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 - with: - version: 9.4.0 - uses: actions/setup-node@v4 with: node-version: 20.16 @@ -54,8 +50,6 @@ jobs: steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 - with: - version: 9.4.0 - uses: actions/setup-node@v4 with: node-version: 20.16 From 5d65e7492ffdf74ff809a904710b2cccb0a9a221 Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 16:04:22 -0500 Subject: [PATCH 33/51] Fix engines --- .github/workflows/performance.yml | 4 ++-- package.json | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index 7060099b2a..0f00296327 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -28,7 +28,7 @@ jobs: run: mkdir -p ~/.pnpm-store - name: Cache node_modules - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.pnpm-store key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} @@ -77,7 +77,7 @@ jobs: run: mkdir -p ~/.pnpm-store - name: Cache node_modules - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.pnpm-store key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }} diff --git a/package.json b/package.json index 5dc303ec29..bd6d21151d 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,9 @@ "author": "Giampaolo Bellavite ", "homepage": "https://daypicker.dev", "packageManager": "pnpm@9.11.0", + "engines": { + "node": ">=20.0.0" + }, "license": "MIT", "repository": { "type": "git", From e9ea1ae52a16f5eaa3eb3104991e684a27b2eea6 Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 16:18:18 -0500 Subject: [PATCH 34/51] Run only if labeled performance --- .github/workflows/performance.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index 0f00296327..bb7541b2d4 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -11,6 +11,7 @@ on: jobs: build-react-day-picker: + if: contains(github.event.label.name, 'performance') runs-on: ubuntu-latest steps: - name: Checkout repository @@ -48,9 +49,9 @@ jobs: path: dist run-performance-test: + if: contains(github.event.label.name, 'performance') needs: [build-react-day-picker] runs-on: ubuntu-latest - steps: - name: Checkout repository uses: actions/checkout@v4 From 251d77c0cde6c3acd88aa25b269b7895efadc8bc Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 16:19:50 -0500 Subject: [PATCH 35/51] Fix label --- .github/workflows/performance.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index bb7541b2d4..e597c326f8 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -2,7 +2,7 @@ name: Performance Test on: pull_request: - types: [opened, synchronize, labeled] + types: [labeled] branches: - main push: @@ -11,7 +11,7 @@ on: jobs: build-react-day-picker: - if: contains(github.event.label.name, 'performance') + if: github.event_name == 'push' || contains(github.event.label.name, 'performance') runs-on: ubuntu-latest steps: - name: Checkout repository @@ -49,7 +49,6 @@ jobs: path: dist run-performance-test: - if: contains(github.event.label.name, 'performance') needs: [build-react-day-picker] runs-on: ubuntu-latest steps: From 7465d49069bde8f35357f7c380776022bbb31d65 Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 17:04:37 -0500 Subject: [PATCH 36/51] Add reports dir --- performance-tests/.gitignore | 2 +- performance-tests/reports/.gitkeep | 0 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 performance-tests/reports/.gitkeep diff --git a/performance-tests/.gitignore b/performance-tests/.gitignore index 27a3afbbc3..e47df3924f 100644 --- a/performance-tests/.gitignore +++ b/performance-tests/.gitignore @@ -1 +1 @@ -reports +!reports/.gitkeep diff --git a/performance-tests/reports/.gitkeep b/performance-tests/reports/.gitkeep new file mode 100644 index 0000000000..e69de29bb2 From 660bfa85822ebcccef1842ca220d88bc76bba6f4 Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 17:07:35 -0500 Subject: [PATCH 37/51] add linkt to download --- .github/workflows/performance.yml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index e597c326f8..9cc6ec4840 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -104,8 +104,16 @@ jobs: CHROME_PATH: ${{ steps.setup-chrome.outputs.chrome-path }} CI: true - - name: Upload reports - uses: actions/upload-artifact@v4 + - name: Post comment with download link + if: success() + uses: actions/github-script@v7 with: - name: reports - path: ./reports + script: | + const { context, github } = require('@actions/github'); + const artifactUrl = `https://github.com/${context.repo.owner}/${context.repo.repo}/suites/${context.runId}/artifacts/${context.runNumber}`; + const comment = `Performance test reports are available [here](${artifactUrl}).`; + github.rest.issues.createComment({ + ...context.repo, + issue_number: context.issue.number, + body: comment + }); From ae6f8e90f0613ddf54db35408a064a797c76ebf2 Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 17:16:19 -0500 Subject: [PATCH 38/51] Add comment --- .github/workflows/performance.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index 9cc6ec4840..ea7573a04f 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -2,7 +2,7 @@ name: Performance Test on: pull_request: - types: [labeled] + types: [labeled, synchronize, opened] branches: - main push: @@ -109,7 +109,6 @@ jobs: uses: actions/github-script@v7 with: script: | - const { context, github } = require('@actions/github'); const artifactUrl = `https://github.com/${context.repo.owner}/${context.repo.repo}/suites/${context.runId}/artifacts/${context.runNumber}`; const comment = `Performance test reports are available [here](${artifactUrl}).`; github.rest.issues.createComment({ From 1cfab75327f2ffd1be4cfb2db586e2fb22d5b73e Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 17:18:28 -0500 Subject: [PATCH 39/51] Run only --- .github/workflows/performance.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index ea7573a04f..25bada9814 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -11,7 +11,7 @@ on: jobs: build-react-day-picker: - if: github.event_name == 'push' || contains(github.event.label.name, 'performance') + if: contains(github.event.label.name, 'performance') runs-on: ubuntu-latest steps: - name: Checkout repository From 1bb5283992b0d2ce00d259b2df43b44dff088195 Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 17:21:05 -0500 Subject: [PATCH 40/51] Fix event name --- .github/workflows/performance.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index 25bada9814..a3572d65cc 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -11,7 +11,7 @@ on: jobs: build-react-day-picker: - if: contains(github.event.label.name, 'performance') + if: github.event_name == 'pull_request' && contains(github.event.label.name, 'performance') runs-on: ubuntu-latest steps: - name: Checkout repository From f84bdb8c10467c0f791cc4cfacc3fd9c8e6836db Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 17:27:16 -0500 Subject: [PATCH 41/51] Capture report --- .github/workflows/performance.yml | 13 ++++++++----- performance-tests/capture.mjs | 3 +-- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index a3572d65cc..9fca884cd6 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -95,15 +95,18 @@ jobs: - name: Wait for server to start run: pnpx wait-on http://localhost:4173 --timeout 10000 - - name: Create reports directory - run: mkdir -p ./reports - - - name: Run performance test - run: node performance-tests/capture.mjs + - name: Capture performance test + run: pnpm --filter performance-tests run capture env: CHROME_PATH: ${{ steps.setup-chrome.outputs.chrome-path }} CI: true + - name: Upload report + uses: actions/upload-artifact@v4 + with: + name: report + path: ./performance-tests/reports/report.html + - name: Post comment with download link if: success() uses: actions/github-script@v7 diff --git a/performance-tests/capture.mjs b/performance-tests/capture.mjs index 89706c7f2f..96a4cd779d 100644 --- a/performance-tests/capture.mjs +++ b/performance-tests/capture.mjs @@ -29,8 +29,7 @@ async function captureReport() { await browser.close(); - const timestamp = new Date().toISOString().replace(/[:.]/g, "-"); - const reportFileName = `./reports/flow.report.${timestamp}.html`; + const reportFileName = `./reports/report.html`; fs.writeFileSync(reportFileName, report); open(reportFileName, { wait: false }); From e01709ada6e43b1f81c1ea4a80cce08792b3a3db Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 17:29:13 -0500 Subject: [PATCH 42/51] Fix workflow --- .github/workflows/performance.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index 9fca884cd6..a8e79fb3f3 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -2,7 +2,6 @@ name: Performance Test on: pull_request: - types: [labeled, synchronize, opened] branches: - main push: @@ -11,7 +10,7 @@ on: jobs: build-react-day-picker: - if: github.event_name == 'pull_request' && contains(github.event.label.name, 'performance') + if: contains(github.event.pull_request.labels.*.name, 'performance') runs-on: ubuntu-latest steps: - name: Checkout repository From 46c5818233425abc06da1e35445629e0f69d9e6f Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 17:34:01 -0500 Subject: [PATCH 43/51] Throw error --- performance-tests/capture.mjs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/performance-tests/capture.mjs b/performance-tests/capture.mjs index 96a4cd779d..ba419280b1 100644 --- a/performance-tests/capture.mjs +++ b/performance-tests/capture.mjs @@ -31,6 +31,27 @@ async function captureReport() { const reportFileName = `./reports/report.html`; + const jsonReport = await flow.createFlowResult(); // Generate the JSON report + let hasFailure = false; + + for (const step of jsonReport.steps) { + const accessibilityScore = step.lhr.categories.accessibility.score; + const performanceScore = step.lhr.categories.performance.score; + + if (accessibilityScore < 1 || performanceScore < 1) { + console.error( + `Test failed on step "${step.name}": Accessibility score: ${accessibilityScore}, Performance score: ${performanceScore}` + ); + hasFailure = true; // Mark as failure but continue + } + } + + if (hasFailure) { + process.exit(1); // Exit only if one or more steps failed + } else { + console.log("Test passed: All steps meet the score threshold."); + } + fs.writeFileSync(reportFileName, report); open(reportFileName, { wait: false }); } From 1c7ec2c7179c4ce460e31cf5c84b02023281e8ff Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 17:40:55 -0500 Subject: [PATCH 44/51] Add CLI support --- performance-tests/capture.mjs | 39 +- performance-tests/flows/range-long.mjs | 2 +- performance-tests/reports/report.html | 5478 ++++++++++++++++++++++++ 3 files changed, 5501 insertions(+), 18 deletions(-) create mode 100644 performance-tests/reports/report.html diff --git a/performance-tests/capture.mjs b/performance-tests/capture.mjs index ba419280b1..3a7bffdbbc 100644 --- a/performance-tests/capture.mjs +++ b/performance-tests/capture.mjs @@ -6,6 +6,8 @@ import puppeteer from "puppeteer"; import { rangeLong } from "./flows/range-long.mjs"; import lighthouseConfig from "./lighthouse-config.mjs"; +const reportFileName = `./reports/report.html`; + async function captureReport() { const browser = await puppeteer.launch({ headless: Boolean(process.env.CI) === true, @@ -23,37 +25,40 @@ async function captureReport() { await rangeLong(flow, page); - await flow.snapshot(); - const report = await flow.generateReport(); - await browser.close(); - const reportFileName = `./reports/report.html`; + fs.writeFileSync(reportFileName, report); - const jsonReport = await flow.createFlowResult(); // Generate the JSON report + const jsonReport = await flow.createFlowResult(); let hasFailure = false; - for (const step of jsonReport.steps) { - const accessibilityScore = step.lhr.categories.accessibility.score; - const performanceScore = step.lhr.categories.performance.score; - - if (accessibilityScore < 1 || performanceScore < 1) { - console.error( - `Test failed on step "${step.name}": Accessibility score: ${accessibilityScore}, Performance score: ${performanceScore}` - ); - hasFailure = true; // Mark as failure but continue + const categories = step.lhr.categories; + + for (const key in categories) { + const score = categories[key]?.score; + + if (score !== undefined && score < 1) { + console.error( + `Test failed on step "${step.name}" in category "${key}": Score: ${score}` + ); + hasFailure = true; // Mark as failure but continue + } } } + if (process.env.CI && hasFailure) { + throw new Error("Test failed: Some steps do not meet the score threshold."); + } if (hasFailure) { - process.exit(1); // Exit only if one or more steps failed + console.error("Test failed: Some steps do not meet the score threshold."); } else { console.log("Test passed: All steps meet the score threshold."); } - fs.writeFileSync(reportFileName, report); - open(reportFileName, { wait: false }); + if (!process.env.CI) { + open(reportFileName, { wait: false }); + } } captureReport(); diff --git a/performance-tests/flows/range-long.mjs b/performance-tests/flows/range-long.mjs index a95772422d..14965f70fa 100644 --- a/performance-tests/flows/range-long.mjs +++ b/performance-tests/flows/range-long.mjs @@ -6,7 +6,7 @@ export async function rangeLong(flow, page) { await flow.navigate("http://localhost:4173/?example=RangeLong", { name: "Range selection with disabled dates" }); - await flow.startTimespan(); + await flow.startTimespan({ name: "Range selection with disabled dates" }); // Click a day after the range await page.click('td[data-day="2024-10-16"] button'); diff --git a/performance-tests/reports/report.html b/performance-tests/reports/report.html new file mode 100644 index 0000000000..97240e5bb1 --- /dev/null +++ b/performance-tests/reports/report.html @@ -0,0 +1,5478 @@ + + + + + + + + Lighthouse Flow Report + + + + + + +
+ + + + + + From c340f96e69f3c3f860f958b5f3d460d2c3773193 Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 17:41:22 -0500 Subject: [PATCH 45/51] Remove extra file --- .gitignore | 1 + performance-tests/reports/report.html | 5478 ------------------------- 2 files changed, 1 insertion(+), 5478 deletions(-) delete mode 100644 performance-tests/reports/report.html diff --git a/.gitignore b/.gitignore index 38b4c001b3..eaa81d6578 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ node_modules dist +/performance-tests/reports/report.html diff --git a/performance-tests/reports/report.html b/performance-tests/reports/report.html deleted file mode 100644 index 97240e5bb1..0000000000 --- a/performance-tests/reports/report.html +++ /dev/null @@ -1,5478 +0,0 @@ - - - - - - - - Lighthouse Flow Report - - - - - - -
- - - - - - From d669e6049c26da89e62858cc8389a4169f86bf53 Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 17:45:20 -0500 Subject: [PATCH 46/51] Fix download url --- .github/workflows/performance.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index a8e79fb3f3..2c46735f2e 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -111,7 +111,7 @@ jobs: uses: actions/github-script@v7 with: script: | - const artifactUrl = `https://github.com/${context.repo.owner}/${context.repo.repo}/suites/${context.runId}/artifacts/${context.runNumber}`; + const artifactUrl = `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}`; const comment = `Performance test reports are available [here](${artifactUrl}).`; github.rest.issues.createComment({ ...context.repo, From f01ba0a13faf20d8da944e1f8b5f650544afaf3c Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 17:48:18 -0500 Subject: [PATCH 47/51] Updates --- package.json | 2 +- performance-tests/capture.mjs | 15 ++++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index bd6d21151d..c440937a12 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "homepage": "https://daypicker.dev", "packageManager": "pnpm@9.11.0", "engines": { - "node": ">=20.0.0" + "node": ">=18" }, "license": "MIT", "repository": { diff --git a/performance-tests/capture.mjs b/performance-tests/capture.mjs index 3a7bffdbbc..d00665b2d3 100644 --- a/performance-tests/capture.mjs +++ b/performance-tests/capture.mjs @@ -39,21 +39,22 @@ async function captureReport() { const score = categories[key]?.score; if (score !== undefined && score < 1) { - console.error( - `Test failed on step "${step.name}" in category "${key}": Score: ${score}` + console.warn( + `❌ Test failed on step "${step.name}" in category "${key}": Score: ${score}` ); hasFailure = true; // Mark as failure but continue } } } - if (process.env.CI && hasFailure) { - throw new Error("Test failed: Some steps do not meet the score threshold."); - } if (hasFailure) { - console.error("Test failed: Some steps do not meet the score threshold."); + console.warn("❌ Test failed: Some steps do not meet the score threshold."); } else { - console.log("Test passed: All steps meet the score threshold."); + console.log("✅ Test passed: All steps meet the score threshold."); + } + + if (process.env.CI && hasFailure) { + process.exit(1); } if (!process.env.CI) { From fc61c7c0acc810d0c7a137ddef86c810fa42ba0b Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 17:58:24 -0500 Subject: [PATCH 48/51] Fix markdown report --- .github/workflows/performance.yml | 34 ++++++++++++++++++++++++-- performance-tests/capture.mjs | 30 +++++++++++++++++++++-- performance-tests/flows/range-long.mjs | 6 +++-- 3 files changed, 64 insertions(+), 6 deletions(-) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index 2c46735f2e..caf591dcbf 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -106,15 +106,45 @@ jobs: name: report path: ./performance-tests/reports/report.html - - name: Post comment with download link + - name: Upload markdown report + uses: actions/upload-artifact@v4 + with: + name: markdown-report + path: ./performance-tests/reports/markdown-report.md + + - name: Download markdown report + uses: actions/download-artifact@v4 + with: + name: markdown-report + path: ./markdown-report + + - name: Read markdown report + id: read-markdown + run: echo "markdown=$(cat ./markdown-report/markdown-report.md)" >> $GITHUB_ENV + + - name: Post comment with download link and markdown content if: success() uses: actions/github-script@v7 with: script: | const artifactUrl = `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}`; - const comment = `Performance test reports are available [here](${artifactUrl}).`; + const markdownContent = process.env.markdown; + const comment = `Performance test reports are available [here](${artifactUrl}).\n\n### Markdown Report:\n\n${markdownContent}`; github.rest.issues.createComment({ ...context.repo, issue_number: context.issue.number, body: comment }); + + # - name: Post comment with download link + # if: success() + # uses: actions/github-script@v7 + # with: + # script: | + # const artifactUrl = `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}`; + # const comment = `Performance test reports are available [here](${artifactUrl}).`; + # github.rest.issues.createComment({ + # ...context.repo, + # issue_number: context.issue.number, + # body: comment + # }); diff --git a/performance-tests/capture.mjs b/performance-tests/capture.mjs index d00665b2d3..c40d329f77 100644 --- a/performance-tests/capture.mjs +++ b/performance-tests/capture.mjs @@ -39,7 +39,7 @@ async function captureReport() { const score = categories[key]?.score; if (score !== undefined && score < 1) { - console.warn( + console.error( `❌ Test failed on step "${step.name}" in category "${key}": Score: ${score}` ); hasFailure = true; // Mark as failure but continue @@ -47,8 +47,34 @@ async function captureReport() { } } + let markdownReport = "# Lighthouse Report\n\n"; + + // Add table header + markdownReport += + "| Step Name | Accessibility | Performance | Best Practices |\n"; + markdownReport += + "|-----------------|---------------|-------------|----------------|\n"; + + // Iterate through each step and build table rows + for (const step of jsonReport.steps) { + const categories = step.lhr.categories; + + const accessibilityScore = categories["accessibility"]?.score ?? "/"; + const performanceScore = categories["performance"]?.score ?? "/"; + const bestPracticesScore = categories["best-practices"]?.score ?? "/"; + + // Append row for the current step + markdownReport += `| ${step.name} | ${accessibilityScore} | ${performanceScore} | ${bestPracticesScore} |\n`; + } + + // Write the markdown report to a file + fs.writeFileSync("./reports/markdown-report.md", markdownReport); + console.log(`Markdown report generated: ${reportFileName}`); + if (hasFailure) { - console.warn("❌ Test failed: Some steps do not meet the score threshold."); + console.error( + "❌ Test failed: Some steps do not meet the score threshold." + ); } else { console.log("✅ Test passed: All steps meet the score threshold."); } diff --git a/performance-tests/flows/range-long.mjs b/performance-tests/flows/range-long.mjs index 14965f70fa..02725a7e61 100644 --- a/performance-tests/flows/range-long.mjs +++ b/performance-tests/flows/range-long.mjs @@ -4,9 +4,11 @@ */ export async function rangeLong(flow, page) { await flow.navigate("http://localhost:4173/?example=RangeLong", { - name: "Range selection with disabled dates" + name: "Range selection with long range" + }); + await flow.startTimespan({ + name: "Day selection" }); - await flow.startTimespan({ name: "Range selection with disabled dates" }); // Click a day after the range await page.click('td[data-day="2024-10-16"] button'); From a139aeb483edfbda18c3da294e85e5fa519efc35 Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 17:58:35 -0500 Subject: [PATCH 49/51] Add gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index eaa81d6578..1533ae721c 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ node_modules dist /performance-tests/reports/report.html +/performance-tests/reports/markdown-report.md From c70a6965e3e24a7a19fa3c2d7abf05c181449050 Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 18:00:53 -0500 Subject: [PATCH 50/51] Fix --- performance-tests/capture.mjs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/performance-tests/capture.mjs b/performance-tests/capture.mjs index c40d329f77..3c46e8219c 100644 --- a/performance-tests/capture.mjs +++ b/performance-tests/capture.mjs @@ -79,10 +79,6 @@ async function captureReport() { console.log("✅ Test passed: All steps meet the score threshold."); } - if (process.env.CI && hasFailure) { - process.exit(1); - } - if (!process.env.CI) { open(reportFileName, { wait: false }); } From 8e7b6a37f4e7b0395dbad5c4fcb5e4ffe770a800 Mon Sep 17 00:00:00 2001 From: Giampaolo Bellavite Date: Sun, 13 Oct 2024 18:04:58 -0500 Subject: [PATCH 51/51] Fix content --- .github/workflows/performance.yml | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index caf591dcbf..a9b429ab24 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -120,7 +120,11 @@ jobs: - name: Read markdown report id: read-markdown - run: echo "markdown=$(cat ./markdown-report/markdown-report.md)" >> $GITHUB_ENV + run: | + markdown_content=$(cat ./markdown-report/markdown-report.md) + echo "markdown_content<> $GITHUB_ENV + echo "$markdown_content" >> $GITHUB_ENV + echo "EOF" >> $GITHUB_ENV - name: Post comment with download link and markdown content if: success() @@ -128,7 +132,7 @@ jobs: with: script: | const artifactUrl = `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}`; - const markdownContent = process.env.markdown; + const markdownContent = process.env.markdown_content; const comment = `Performance test reports are available [here](${artifactUrl}).\n\n### Markdown Report:\n\n${markdownContent}`; github.rest.issues.createComment({ ...context.repo, @@ -136,6 +140,20 @@ jobs: body: comment }); + # - name: Post comment with download link and markdown content + # if: success() + # uses: actions/github-script@v7 + # with: + # script: | + # const artifactUrl = `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}`; + # const markdownContent = process.env.markdown; + # const comment = `Performance test reports are available [here](${artifactUrl}).\n\n### Markdown Report:\n\n${markdownContent}`; + # github.rest.issues.createComment({ + # ...context.repo, + # issue_number: context.issue.number, + # body: comment + # }); + # - name: Post comment with download link # if: success() # uses: actions/github-script@v7