From 3de5ea2ff37ea3ea0b373a17be8618a689bf6e80 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 12:14:45 +0300 Subject: [PATCH 01/53] test: Setup SSR fixtures for package components --- package-lock.json | 370 +++++++++++++++++++++++++ package.json | 1 + src/components/input/input.ssr.spec.ts | 28 ++ web-test-runner.config.mjs | 3 + 4 files changed, 402 insertions(+) create mode 100644 src/components/input/input.ssr.spec.ts diff --git a/package-lock.json b/package-lock.json index d3049f88f..f7f8e8885 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,6 +17,7 @@ "@biomejs/biome": "1.8.3", "@custom-elements-manifest/analyzer": "^0.10.3", "@igniteui/material-icons-extended": "^3.0.2", + "@lit-labs/testing": "^0.2.4", "@open-wc/testing": "^4.0.0", "@storybook/addon-a11y": "^8.2.9", "@storybook/addon-actions": "^8.2.9", @@ -3092,12 +3093,248 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@lit-labs/ssr": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr/-/ssr-3.2.2.tgz", + "integrity": "sha512-He5TzeNPM9ECmVpgXRYmVlz0UA5YnzHlT43kyLi2Lu6mUidskqJVonk9W5K699+2DKhoXp8Ra4EJmHR6KrcW1Q==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@lit-labs/ssr-client": "^1.1.7", + "@lit-labs/ssr-dom-shim": "^1.2.0", + "@lit/reactive-element": "^2.0.4", + "@parse5/tools": "^0.3.0", + "@types/node": "^16.0.0", + "enhanced-resolve": "^5.10.0", + "lit": "^3.1.2", + "lit-element": "^4.0.4", + "lit-html": "^3.1.2", + "node-fetch": "^3.2.8", + "parse5": "^7.1.1" + }, + "engines": { + "node": ">=13.9.0" + } + }, + "node_modules/@lit-labs/ssr-client": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@lit-labs/ssr-client/-/ssr-client-1.1.7.tgz", + "integrity": "sha512-VvqhY/iif3FHrlhkzEPsuX/7h/NqnfxLwVf0p8ghNIlKegRyRqgeaJevZ57s/u/LiFyKgqksRP5n+LmNvpxN+A==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@lit/reactive-element": "^2.0.4", + "lit": "^3.1.2", + "lit-html": "^3.1.2" + } + }, "node_modules/@lit-labs/ssr-dom-shim": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.1.tgz", "integrity": "sha512-wx4aBmgeGvFmOKucFKY+8VFJSYZxs9poN3SDNQFF6lT6NrQUnHiPB2PWz2sc4ieEcAaYYzN+1uWahEeTq2aRIQ==", "license": "BSD-3-Clause" }, + "node_modules/@lit-labs/ssr/node_modules/@types/node": { + "version": "16.18.108", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.108.tgz", + "integrity": "sha512-fj42LD82fSv6yN9C6Q4dzS+hujHj+pTv0IpRR3kI20fnYeS0ytBpjFO9OjmDowSPPt4lNKN46JLaKbCyP+BW2A==", + "dev": true, + "license": "MIT" + }, + "node_modules/@lit-labs/ssr/node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, + "node_modules/@lit-labs/testing": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@lit-labs/testing/-/testing-0.2.4.tgz", + "integrity": "sha512-NasNKbELasyfA1vIcfMwM0H/2mE98uFsyf/yDWtcl9fAEsTpRRWrmPdQDrHDyim5LKnsQutCzBP3Fof83hSCIA==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "@lit-labs/ssr": "^3.1.8", + "@lit-labs/ssr-client": "^1.1.4", + "@web/test-runner-commands": "^0.6.1", + "@webcomponents/template-shadowroot": "^0.1.0", + "lit": "^2.0.0 || ^3.0.0" + } + }, + "node_modules/@lit-labs/testing/node_modules/@web/browser-logs": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.2.6.tgz", + "integrity": "sha512-CNjNVhd4FplRY8PPWIAt02vAowJAVcOoTNrR/NNb/o9pka7yI9qdjpWrWhEbPr2pOXonWb52AeAgdK66B8ZH7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "errorstacks": "^2.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@lit-labs/testing/node_modules/@web/dev-server-core": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.4.1.tgz", + "integrity": "sha512-KdYwejXZwIZvb6tYMCqU7yBiEOPfKLQ3V9ezqqEz8DA9V9R3oQWaowckvCpFB9IxxPfS/P8/59OkdzGKQjcIUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/koa": "^2.11.6", + "@types/ws": "^7.4.0", + "@web/parse5-utils": "^1.3.1", + "chokidar": "^3.4.3", + "clone": "^2.1.2", + "es-module-lexer": "^1.0.0", + "get-stream": "^6.0.0", + "is-stream": "^2.0.0", + "isbinaryfile": "^5.0.0", + "koa": "^2.13.0", + "koa-etag": "^4.0.0", + "koa-send": "^5.0.1", + "koa-static": "^5.0.0", + "lru-cache": "^6.0.0", + "mime-types": "^2.1.27", + "parse5": "^6.0.1", + "picomatch": "^2.2.2", + "ws": "^7.4.2" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@lit-labs/testing/node_modules/@web/parse5-utils": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-1.3.1.tgz", + "integrity": "sha512-haCgDchZrAOB9EhBJ5XqiIjBMsS/exsM5Ru7sCSyNkXVEJWskyyKuKMFk66BonnIGMPpDtqDrTUfYEis5Zi3XA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/parse5": "^6.0.1", + "parse5": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@lit-labs/testing/node_modules/@web/test-runner-commands": { + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.6.6.tgz", + "integrity": "sha512-2DcK/+7f8QTicQpGFq/TmvKHDK/6Zald6rn1zqRlmj3pcH8fX6KHNVMU60Za9QgAKdorMBPfd8dJwWba5otzdw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@web/test-runner-core": "^0.10.29", + "mkdirp": "^1.0.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@lit-labs/testing/node_modules/@web/test-runner-core": { + "version": "0.10.29", + "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.10.29.tgz", + "integrity": "sha512-0/ZALYaycEWswHhpyvl5yqo0uIfCmZe8q14nGPi1dMmNiqLcHjyFGnuIiLexI224AW74ljHcHllmDlXK9FUKGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.11", + "@types/babel__code-frame": "^7.0.2", + "@types/co-body": "^6.1.0", + "@types/convert-source-map": "^2.0.0", + "@types/debounce": "^1.2.0", + "@types/istanbul-lib-coverage": "^2.0.3", + "@types/istanbul-reports": "^3.0.0", + "@web/browser-logs": "^0.2.6", + "@web/dev-server-core": "^0.4.1", + "chokidar": "^3.4.3", + "cli-cursor": "^3.1.0", + "co-body": "^6.1.0", + "convert-source-map": "^2.0.0", + "debounce": "^1.2.0", + "dependency-graph": "^0.11.0", + "globby": "^11.0.1", + "ip": "^1.1.5", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-reports": "^3.0.2", + "log-update": "^4.0.0", + "nanocolors": "^0.2.1", + "nanoid": "^3.1.25", + "open": "^8.0.2", + "picomatch": "^2.2.2", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@lit-labs/testing/node_modules/es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@lit-labs/testing/node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@lit-labs/testing/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@lit-labs/testing/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@lit-labs/testing/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, "node_modules/@lit-labs/virtualizer": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/@lit-labs/virtualizer/-/virtualizer-2.0.14.tgz", @@ -3229,6 +3466,29 @@ "lit-html": "^2.0.0 || ^3.0.0" } }, + "node_modules/@parse5/tools": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@parse5/tools/-/tools-0.3.0.tgz", + "integrity": "sha512-zxRyTHkqb7WQMV8kTNBKWb1BeOFUKXBXTBWuxg9H9hfvQB3IwP6Iw2U75Ia5eyRxPNltmY7E8YAlz6zWwUnjKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "parse5": "^7.0.0" + } + }, + "node_modules/@parse5/tools/node_modules/parse5": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -5400,6 +5660,13 @@ "node": ">=8" } }, + "node_modules/@webcomponents/template-shadowroot": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@webcomponents/template-shadowroot/-/template-shadowroot-0.1.0.tgz", + "integrity": "sha512-ry84Vft6xtRBbd4M/ptRodbOLodV5AD15TYhyRghCRgIcJJKmYmJ2v2BaaWxygENwh6Uq3zTfGPmlckKT/GXsQ==", + "dev": true, + "license": "BSD-3-Clause" + }, "node_modules/@yarnpkg/fslib": { "version": "2.10.3", "resolved": "https://registry.npmjs.org/@yarnpkg/fslib/-/fslib-2.10.3.tgz", @@ -8535,6 +8802,30 @@ "pend": "~1.2.0" } }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, "node_modules/file-entry-cache": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.0.0.tgz", @@ -8793,6 +9084,19 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fetch-blob": "^3.1.2" + }, + "engines": { + "node": ">=12.20.0" + } + }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -9634,6 +9938,13 @@ "url": "https://github.com/sindresorhus/internal-ip?sponsor=1" } }, + "node_modules/ip": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.9.tgz", + "integrity": "sha512-cyRxvOEpNHNtchU3Ln9KC/auJgup87llfQpQ+t5ghoC/UhL16SWzbueiCsdTnWmqAWl7LadfuwhlqmtOaqMHdQ==", + "dev": true, + "license": "MIT" + }, "node_modules/ip-address": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", @@ -11917,6 +12228,45 @@ "node": ">= 0.10.5" } }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, "node_modules/node-fetch-native": { "version": "1.6.4", "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.4.tgz", @@ -11924,6 +12274,16 @@ "dev": true, "license": "MIT" }, + "node_modules/node-fetch/node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, "node_modules/node-releases": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", @@ -17001,6 +17361,16 @@ "node": ">=14.17" } }, + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, "node_modules/webidl-conversions": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", diff --git a/package.json b/package.json index fe749b5b6..52e6afda1 100644 --- a/package.json +++ b/package.json @@ -60,6 +60,7 @@ "@biomejs/biome": "1.8.3", "@custom-elements-manifest/analyzer": "^0.10.3", "@igniteui/material-icons-extended": "^3.0.2", + "@lit-labs/testing": "^0.2.4", "@open-wc/testing": "^4.0.0", "@storybook/addon-a11y": "^8.2.9", "@storybook/addon-actions": "^8.2.9", diff --git a/src/components/input/input.ssr.spec.ts b/src/components/input/input.ssr.spec.ts new file mode 100644 index 000000000..716f41629 --- /dev/null +++ b/src/components/input/input.ssr.spec.ts @@ -0,0 +1,28 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { expect } from '@open-wc/testing'; +import { html } from 'lit'; +import type IgcInputComponent from './input.js'; + +afterEach(() => cleanupFixtures()); + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-input`, () => { + it('renders as expected', async () => { + const element = await fixture( + html``, + { + modules: ['./input.js'], + } + ); + + expect(element).not.to.be.undefined; + expect(element.shadowRoot).not.to.be.null; + }); + }); +} diff --git a/web-test-runner.config.mjs b/web-test-runner.config.mjs index d432bf4c1..0ca7797b6 100644 --- a/web-test-runner.config.mjs +++ b/web-test-runner.config.mjs @@ -1,4 +1,5 @@ import { playwrightLauncher } from '@web/test-runner-playwright'; +import { litSsrPlugin } from '@lit-labs/testing/web-test-runner-ssr-plugin.js'; export default /** @type {import("@web/test-runner").TestRunnerConfig} */ ({ files: ['dist/**/*.spec.js'], @@ -16,6 +17,8 @@ export default /** @type {import("@web/test-runner").TestRunnerConfig} */ ({ exclude: ['node_modules/**/*', '**/themes/**'], }, + plugins: [litSsrPlugin()], + // See documentation for all available options // https://modern-web.dev/docs/test-runner/cli-and-configuration/#configuration-file }); From a81e3b8d81d68856eeb77938d3ee5f4ee173278b Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 12:24:51 +0300 Subject: [PATCH 02/53] refactor: Exposed self-registering entry points for SSR tests The entry points for the SSR tests are not included in the production build of the package. --- scripts/tsconfig.prod.json | 5 ++--- src/components/input/input-auto-register.ts | 4 ++++ src/components/input/input.ssr.spec.ts | 2 +- 3 files changed, 7 insertions(+), 4 deletions(-) create mode 100644 src/components/input/input-auto-register.ts diff --git a/scripts/tsconfig.prod.json b/scripts/tsconfig.prod.json index 597e1689a..d8252d9fa 100644 --- a/scripts/tsconfig.prod.json +++ b/scripts/tsconfig.prod.json @@ -1,6 +1,7 @@ { "extends": "../tsconfig.json", "exclude": [ + "../**/*-auto-register.ts", "../vite.config.ts", "../**/*.spec.ts", "../stories" @@ -12,7 +13,5 @@ "declarationMap": false, "removeComments": true }, - "include": [ - "../**/*.ts" - ] + "include": ["../**/*.ts"] } diff --git a/src/components/input/input-auto-register.ts b/src/components/input/input-auto-register.ts new file mode 100644 index 000000000..8227916c6 --- /dev/null +++ b/src/components/input/input-auto-register.ts @@ -0,0 +1,4 @@ +import IgcInputComponent from './input.js'; +IgcInputComponent.register(); + +export default IgcInputComponent; diff --git a/src/components/input/input.ssr.spec.ts b/src/components/input/input.ssr.spec.ts index 716f41629..74ddf3801 100644 --- a/src/components/input/input.ssr.spec.ts +++ b/src/components/input/input.ssr.spec.ts @@ -17,7 +17,7 @@ for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { const element = await fixture( html``, { - modules: ['./input.js'], + modules: ['./input-auto-register.js'], } ); From 686e99b2208fce2294d96ca590c4c9c59d606fa5 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 12:51:42 +0300 Subject: [PATCH 03/53] fix(form-mixin): Do not add invalid handler in server env --- src/components/common/mixins/form-associated.ts | 6 ++++-- src/components/common/utils.spec.ts | 13 ++++++++++++- src/components/input/input-auto-register.ts | 1 + src/components/input/input.ssr.spec.ts | 6 +++--- 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/components/common/mixins/form-associated.ts b/src/components/common/mixins/form-associated.ts index 5d9ac6cc9..9c07595c9 100644 --- a/src/components/common/mixins/form-associated.ts +++ b/src/components/common/mixins/form-associated.ts @@ -1,4 +1,4 @@ -import type { LitElement } from 'lit'; +import { type LitElement, isServer } from 'lit'; import { property } from 'lit/decorators.js'; import type { Validator } from '../validators.js'; @@ -216,7 +216,9 @@ export function FormAssociatedMixin>( constructor(...args: any[]) { super(args); this.__internals = this.attachInternals(); - this.addEventListener('invalid', this.handleInvalid); + if (!isServer) { + this.addEventListener('invalid', this.handleInvalid); + } } public override connectedCallback(): void { diff --git a/src/components/common/utils.spec.ts b/src/components/common/utils.spec.ts index 04038da07..c6de63ccc 100644 --- a/src/components/common/utils.spec.ts +++ b/src/components/common/utils.spec.ts @@ -1,5 +1,5 @@ import { expect, fixture, html } from '@open-wc/testing'; -import type { TemplateResult } from 'lit'; +import type { LitElement, TemplateResult } from 'lit'; import { parseKeys } from './controllers/key-bindings.js'; import type { FormAssociatedElementInterface } from './mixins/form-associated.js'; @@ -241,3 +241,14 @@ export function scrolledIntoView(el: HTMLElement, view: HTMLElement) { export function isFocused(element?: Element) { return element ? element.matches(':focus') : false; } + +export function isSsrRendered(element: LitElement) { + expect(element).to.exist; + expect(element.shadowRoot).to.exist; +} + +export function isSsrStyled(element: LitElement) { + expect( + getComputedStyle(element).getPropertyValue('--is-large').startsWith('clamp') + ); +} diff --git a/src/components/input/input-auto-register.ts b/src/components/input/input-auto-register.ts index 8227916c6..633b0ed55 100644 --- a/src/components/input/input-auto-register.ts +++ b/src/components/input/input-auto-register.ts @@ -1,3 +1,4 @@ +// NOTE: Self-registering import for SSR fixtures. import IgcInputComponent from './input.js'; IgcInputComponent.register(); diff --git a/src/components/input/input.ssr.spec.ts b/src/components/input/input.ssr.spec.ts index 74ddf3801..5c1f36f3a 100644 --- a/src/components/input/input.ssr.spec.ts +++ b/src/components/input/input.ssr.spec.ts @@ -5,8 +5,8 @@ import { ssrNonHydratedFixture, } from '@lit-labs/testing/fixtures.js'; -import { expect } from '@open-wc/testing'; import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; import type IgcInputComponent from './input.js'; afterEach(() => cleanupFixtures()); @@ -21,8 +21,8 @@ for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { } ); - expect(element).not.to.be.undefined; - expect(element.shadowRoot).not.to.be.null; + isSsrRendered(element); + isSsrStyled(element); }); }); } From 7a25b0e4ecc006d0922b76c6782210093b92ebd4 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 13:04:39 +0300 Subject: [PATCH 04/53] test(accordion, avatar): Added SSR fixtures --- .../accordion/accordion-auto-register.ts | 5 +++ .../accordion/accordion.ssr.spec.ts | 40 +++++++++++++++++++ src/components/avatar/avatar-auto-register.ts | 5 +++ src/components/avatar/avatar.ssr.spec.ts | 27 +++++++++++++ src/components/input/input-auto-register.ts | 6 +-- 5 files changed, 80 insertions(+), 3 deletions(-) create mode 100644 src/components/accordion/accordion-auto-register.ts create mode 100644 src/components/accordion/accordion.ssr.spec.ts create mode 100644 src/components/avatar/avatar-auto-register.ts create mode 100644 src/components/avatar/avatar.ssr.spec.ts diff --git a/src/components/accordion/accordion-auto-register.ts b/src/components/accordion/accordion-auto-register.ts new file mode 100644 index 000000000..c26d6f7cb --- /dev/null +++ b/src/components/accordion/accordion-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './accordion.js'; +Component.register(); + +export default Component; diff --git a/src/components/accordion/accordion.ssr.spec.ts b/src/components/accordion/accordion.ssr.spec.ts new file mode 100644 index 000000000..b214e277a --- /dev/null +++ b/src/components/accordion/accordion.ssr.spec.ts @@ -0,0 +1,40 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcAccordionComponent from './accordion.js'; + +afterEach(() => cleanupFixtures()); + +const template = html` + + +

Expansion panel 1 title

+

Expansion panel 1 subtitle

+

Sample content

+
+ +

Expansion panel 2 title

+

Expansion panel 2 subtitle

+

Sample content

+
+
+`; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-accordion`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./accordion-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} diff --git a/src/components/avatar/avatar-auto-register.ts b/src/components/avatar/avatar-auto-register.ts new file mode 100644 index 000000000..9d7fb77bf --- /dev/null +++ b/src/components/avatar/avatar-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './avatar.js'; +Component.register(); + +export default Component; diff --git a/src/components/avatar/avatar.ssr.spec.ts b/src/components/avatar/avatar.ssr.spec.ts new file mode 100644 index 000000000..ce2ac2cbd --- /dev/null +++ b/src/components/avatar/avatar.ssr.spec.ts @@ -0,0 +1,27 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcAvatarComponent from './avatar.js'; + +afterEach(() => cleanupFixtures()); + +const template = html``; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-accordion`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./avatar-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} diff --git a/src/components/input/input-auto-register.ts b/src/components/input/input-auto-register.ts index 633b0ed55..886a26305 100644 --- a/src/components/input/input-auto-register.ts +++ b/src/components/input/input-auto-register.ts @@ -1,5 +1,5 @@ // NOTE: Self-registering import for SSR fixtures. -import IgcInputComponent from './input.js'; -IgcInputComponent.register(); +import Component from './input.js'; +Component.register(); -export default IgcInputComponent; +export default Component; From d4c7b1b253dca48a1d77a656953cd7e8ec471b50 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 13:07:53 +0300 Subject: [PATCH 05/53] test(badge): Added SSR fixtures --- src/components/badge/badge-auto-register.ts | 5 ++++ src/components/badge/badge.ssr.spec.ts | 27 +++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 src/components/badge/badge-auto-register.ts create mode 100644 src/components/badge/badge.ssr.spec.ts diff --git a/src/components/badge/badge-auto-register.ts b/src/components/badge/badge-auto-register.ts new file mode 100644 index 000000000..47cccec37 --- /dev/null +++ b/src/components/badge/badge-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './badge.js'; +Component.register(); + +export default Component; diff --git a/src/components/badge/badge.ssr.spec.ts b/src/components/badge/badge.ssr.spec.ts new file mode 100644 index 000000000..47df81b7f --- /dev/null +++ b/src/components/badge/badge.ssr.spec.ts @@ -0,0 +1,27 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcBadgeComponent from './badge.js'; + +afterEach(() => cleanupFixtures()); + +const template = html``; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-accordion`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./badge-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} From a5f74415627760bf3ed0e230d288a059e0f378cb Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 13:10:18 +0300 Subject: [PATCH 06/53] test(banner): Added SSR fixtures --- src/components/avatar/avatar.ssr.spec.ts | 2 +- src/components/badge/badge.ssr.spec.ts | 2 +- src/components/banner/banner-auto-register.ts | 5 ++++ src/components/banner/banner.ssr.spec.ts | 27 +++++++++++++++++++ 4 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 src/components/banner/banner-auto-register.ts create mode 100644 src/components/banner/banner.ssr.spec.ts diff --git a/src/components/avatar/avatar.ssr.spec.ts b/src/components/avatar/avatar.ssr.spec.ts index ce2ac2cbd..e544c7ed6 100644 --- a/src/components/avatar/avatar.ssr.spec.ts +++ b/src/components/avatar/avatar.ssr.spec.ts @@ -14,7 +14,7 @@ afterEach(() => cleanupFixtures()); const template = html``; for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { - describe(`[${fixture.name}] - igc-accordion`, () => { + describe(`[${fixture.name}] - igc-avatar`, () => { it('renders as expected', async () => { const element = await fixture(template, { modules: ['./avatar-auto-register.js'], diff --git a/src/components/badge/badge.ssr.spec.ts b/src/components/badge/badge.ssr.spec.ts index 47df81b7f..64e34e453 100644 --- a/src/components/badge/badge.ssr.spec.ts +++ b/src/components/badge/badge.ssr.spec.ts @@ -14,7 +14,7 @@ afterEach(() => cleanupFixtures()); const template = html``; for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { - describe(`[${fixture.name}] - igc-accordion`, () => { + describe(`[${fixture.name}] - igc-badge`, () => { it('renders as expected', async () => { const element = await fixture(template, { modules: ['./badge-auto-register.js'], diff --git a/src/components/banner/banner-auto-register.ts b/src/components/banner/banner-auto-register.ts new file mode 100644 index 000000000..a2820d35c --- /dev/null +++ b/src/components/banner/banner-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './banner.js'; +Component.register(); + +export default Component; diff --git a/src/components/banner/banner.ssr.spec.ts b/src/components/banner/banner.ssr.spec.ts new file mode 100644 index 000000000..5aa6663c6 --- /dev/null +++ b/src/components/banner/banner.ssr.spec.ts @@ -0,0 +1,27 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcBannerComponent from './banner.js'; + +afterEach(() => cleanupFixtures()); + +const template = html`You are currently offline!`; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-banner`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./banner-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} From 9ada067ac7b18ced6cf61034ec3dbe67849820b3 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 13:19:20 +0300 Subject: [PATCH 07/53] test(button, icon-button): Added SSR fixtures --- src/components/button/button-auto-register.ts | 5 ++++ src/components/button/button.ssr.spec.ts | 27 +++++++++++++++++ .../button/icon-button-auto-register.ts | 5 ++++ src/components/button/icon-button.ssr.spec.ts | 29 +++++++++++++++++++ 4 files changed, 66 insertions(+) create mode 100644 src/components/button/button-auto-register.ts create mode 100644 src/components/button/button.ssr.spec.ts create mode 100644 src/components/button/icon-button-auto-register.ts create mode 100644 src/components/button/icon-button.ssr.spec.ts diff --git a/src/components/button/button-auto-register.ts b/src/components/button/button-auto-register.ts new file mode 100644 index 000000000..93f84a50f --- /dev/null +++ b/src/components/button/button-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './button.js'; +Component.register(); + +export default Component; diff --git a/src/components/button/button.ssr.spec.ts b/src/components/button/button.ssr.spec.ts new file mode 100644 index 000000000..fe48ef002 --- /dev/null +++ b/src/components/button/button.ssr.spec.ts @@ -0,0 +1,27 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcButtonComponent from './button.js'; + +afterEach(() => cleanupFixtures()); + +const template = html`Click`; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-button`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./button-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} diff --git a/src/components/button/icon-button-auto-register.ts b/src/components/button/icon-button-auto-register.ts new file mode 100644 index 000000000..0bc3821f5 --- /dev/null +++ b/src/components/button/icon-button-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './icon-button.js'; +Component.register(); + +export default Component; diff --git a/src/components/button/icon-button.ssr.spec.ts b/src/components/button/icon-button.ssr.spec.ts new file mode 100644 index 000000000..9e0253d6c --- /dev/null +++ b/src/components/button/icon-button.ssr.spec.ts @@ -0,0 +1,29 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcIconButtonComponent from './icon-button.js'; + +afterEach(() => cleanupFixtures()); + +const template = html` + Click +`; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-icon-button`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./icon-button-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} From 2727b87a5ebfab9a62b08145cbb8b525f3d6d6e9 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 13:21:59 +0300 Subject: [PATCH 08/53] test(button-group): Added SSR fixtures --- .../button-group-auto-register.ts | 5 +++ .../button-group/button-group.ssr.spec.ts | 33 +++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 src/components/button-group/button-group-auto-register.ts create mode 100644 src/components/button-group/button-group.ssr.spec.ts diff --git a/src/components/button-group/button-group-auto-register.ts b/src/components/button-group/button-group-auto-register.ts new file mode 100644 index 000000000..342482271 --- /dev/null +++ b/src/components/button-group/button-group-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './button-group.js'; +Component.register(); + +export default Component; diff --git a/src/components/button-group/button-group.ssr.spec.ts b/src/components/button-group/button-group.ssr.spec.ts new file mode 100644 index 000000000..f9bb5f948 --- /dev/null +++ b/src/components/button-group/button-group.ssr.spec.ts @@ -0,0 +1,33 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcButtonGroupComponent from './button-group.js'; + +afterEach(() => cleanupFixtures()); + +const template = html` + + Left + Center + Right + +`; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-button-group`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./button-group-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} From 6a32dd9e60b33aa8ccdb562241ef9fa5fedbce40 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 13:27:52 +0300 Subject: [PATCH 09/53] test(calendar): Added SSR fixtures --- .../calendar/calendar-auto-register.ts | 5 ++++ src/components/calendar/calendar.ssr.spec.ts | 27 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 src/components/calendar/calendar-auto-register.ts create mode 100644 src/components/calendar/calendar.ssr.spec.ts diff --git a/src/components/calendar/calendar-auto-register.ts b/src/components/calendar/calendar-auto-register.ts new file mode 100644 index 000000000..e47f49043 --- /dev/null +++ b/src/components/calendar/calendar-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './calendar.js'; +Component.register(); + +export default Component; diff --git a/src/components/calendar/calendar.ssr.spec.ts b/src/components/calendar/calendar.ssr.spec.ts new file mode 100644 index 000000000..9c39aba21 --- /dev/null +++ b/src/components/calendar/calendar.ssr.spec.ts @@ -0,0 +1,27 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcCalendarComponent from './calendar.js'; + +afterEach(() => cleanupFixtures()); + +const template = html``; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-calendar`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./calendar-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} From fef5ab0812d9aef5c684e1d8f9948179ecb65dc2 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 13:31:56 +0300 Subject: [PATCH 10/53] test(card): Added SSR fixtures --- src/components/card/card-auto-register.ts | 5 +++ src/components/card/card.ssr.spec.ts | 46 +++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 src/components/card/card-auto-register.ts create mode 100644 src/components/card/card.ssr.spec.ts diff --git a/src/components/card/card-auto-register.ts b/src/components/card/card-auto-register.ts new file mode 100644 index 000000000..ab9400031 --- /dev/null +++ b/src/components/card/card-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './card.js'; +Component.register(); + +export default Component; diff --git a/src/components/card/card.ssr.spec.ts b/src/components/card/card.ssr.spec.ts new file mode 100644 index 000000000..0420babd8 --- /dev/null +++ b/src/components/card/card.ssr.spec.ts @@ -0,0 +1,46 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcCardComponent from './card.js'; + +afterEach(() => cleanupFixtures()); + +const template = html` + + +

Title

+

Subtitle

+
+ + + + + + +

Some content

+
+ + + + +
+`; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-card`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./card-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} From bf50258a16aef6f627440b9dd3b3020b9587f1fd Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 13:35:51 +0300 Subject: [PATCH 11/53] test(checkbox, switch): Added SSR fixtures --- .../checkbox/checkbox-auto-register.ts | 5 ++++ src/components/checkbox/checkbox.ssr.spec.ts | 27 +++++++++++++++++++ .../checkbox/switch-auto-register.ts | 5 ++++ src/components/checkbox/switch.ssr.spec.ts | 27 +++++++++++++++++++ 4 files changed, 64 insertions(+) create mode 100644 src/components/checkbox/checkbox-auto-register.ts create mode 100644 src/components/checkbox/checkbox.ssr.spec.ts create mode 100644 src/components/checkbox/switch-auto-register.ts create mode 100644 src/components/checkbox/switch.ssr.spec.ts diff --git a/src/components/checkbox/checkbox-auto-register.ts b/src/components/checkbox/checkbox-auto-register.ts new file mode 100644 index 000000000..caaee8053 --- /dev/null +++ b/src/components/checkbox/checkbox-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './checkbox.js'; +Component.register(); + +export default Component; diff --git a/src/components/checkbox/checkbox.ssr.spec.ts b/src/components/checkbox/checkbox.ssr.spec.ts new file mode 100644 index 000000000..5aecabfd2 --- /dev/null +++ b/src/components/checkbox/checkbox.ssr.spec.ts @@ -0,0 +1,27 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcCheckboxComponent from './checkbox.js'; + +afterEach(() => cleanupFixtures()); + +const template = html`Label`; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-checkbox`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./checkbox-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} diff --git a/src/components/checkbox/switch-auto-register.ts b/src/components/checkbox/switch-auto-register.ts new file mode 100644 index 000000000..14f45dc5c --- /dev/null +++ b/src/components/checkbox/switch-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './switch.js'; +Component.register(); + +export default Component; diff --git a/src/components/checkbox/switch.ssr.spec.ts b/src/components/checkbox/switch.ssr.spec.ts new file mode 100644 index 000000000..eb884dc49 --- /dev/null +++ b/src/components/checkbox/switch.ssr.spec.ts @@ -0,0 +1,27 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcSwitchComponent from './switch.js'; + +afterEach(() => cleanupFixtures()); + +const template = html`Label`; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-switch`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./switch-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} From 69e7a27656756b7076ab7899c247502c3a2bc3e1 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 13:38:29 +0300 Subject: [PATCH 12/53] test(chip): Added SSR fixtures --- src/components/chip/chip-auto-register.ts | 5 +++++ src/components/chip/chip.ssr.spec.ts | 27 +++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 src/components/chip/chip-auto-register.ts create mode 100644 src/components/chip/chip.ssr.spec.ts diff --git a/src/components/chip/chip-auto-register.ts b/src/components/chip/chip-auto-register.ts new file mode 100644 index 000000000..9b414707d --- /dev/null +++ b/src/components/chip/chip-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './chip.js'; +Component.register(); + +export default Component; diff --git a/src/components/chip/chip.ssr.spec.ts b/src/components/chip/chip.ssr.spec.ts new file mode 100644 index 000000000..873c5dc07 --- /dev/null +++ b/src/components/chip/chip.ssr.spec.ts @@ -0,0 +1,27 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcChipComponent from './chip.js'; + +afterEach(() => cleanupFixtures()); + +const template = html`Chip`; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-chip`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./chip-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} From 9b196043dd30f7c1f72161918fa55d93e664c0d3 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 13:47:12 +0300 Subject: [PATCH 13/53] test(combo): Added SSR fixtures --- src/components/combo/combo-auto-register.ts | 5 ++++ src/components/combo/combo.ssr.spec.ts | 33 +++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 src/components/combo/combo-auto-register.ts create mode 100644 src/components/combo/combo.ssr.spec.ts diff --git a/src/components/combo/combo-auto-register.ts b/src/components/combo/combo-auto-register.ts new file mode 100644 index 000000000..65dcc754f --- /dev/null +++ b/src/components/combo/combo-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './combo.js'; +Component.register(); + +export default Component; diff --git a/src/components/combo/combo.ssr.spec.ts b/src/components/combo/combo.ssr.spec.ts new file mode 100644 index 000000000..8ae9c64ca --- /dev/null +++ b/src/components/combo/combo.ssr.spec.ts @@ -0,0 +1,33 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcComboComponent from './combo.js'; + +afterEach(() => cleanupFixtures()); + +const data = [ + { id: 1, value: 1 }, + { id: 2, value: 2 }, +]; +const template = html` + +`; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-combo`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./combo-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} From 391da0a7d330b23915fa36db4cd9abf8ff83cf2f Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 15:42:53 +0300 Subject: [PATCH 14/53] test(date-picker,date-time-input): Added SSR fixtures --- .../date-picker/date-picker-auto-register.ts | 5 ++++ .../date-picker/date-picker.ssr.spec.ts | 27 +++++++++++++++++++ .../date-time-input-auto-register.ts | 5 ++++ .../date-time-input.ssr.spec.ts | 27 +++++++++++++++++++ 4 files changed, 64 insertions(+) create mode 100644 src/components/date-picker/date-picker-auto-register.ts create mode 100644 src/components/date-picker/date-picker.ssr.spec.ts create mode 100644 src/components/date-time-input/date-time-input-auto-register.ts create mode 100644 src/components/date-time-input/date-time-input.ssr.spec.ts diff --git a/src/components/date-picker/date-picker-auto-register.ts b/src/components/date-picker/date-picker-auto-register.ts new file mode 100644 index 000000000..414949602 --- /dev/null +++ b/src/components/date-picker/date-picker-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './date-picker.js'; +Component.register(); + +export default Component; diff --git a/src/components/date-picker/date-picker.ssr.spec.ts b/src/components/date-picker/date-picker.ssr.spec.ts new file mode 100644 index 000000000..a41e2f5b0 --- /dev/null +++ b/src/components/date-picker/date-picker.ssr.spec.ts @@ -0,0 +1,27 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcDatePickerComponent from './date-picker.js'; + +afterEach(() => cleanupFixtures()); + +const template = html``; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-date-picker`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./date-picker-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} diff --git a/src/components/date-time-input/date-time-input-auto-register.ts b/src/components/date-time-input/date-time-input-auto-register.ts new file mode 100644 index 000000000..dd5e3a341 --- /dev/null +++ b/src/components/date-time-input/date-time-input-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './date-time-input.js'; +Component.register(); + +export default Component; diff --git a/src/components/date-time-input/date-time-input.ssr.spec.ts b/src/components/date-time-input/date-time-input.ssr.spec.ts new file mode 100644 index 000000000..97aeb9c97 --- /dev/null +++ b/src/components/date-time-input/date-time-input.ssr.spec.ts @@ -0,0 +1,27 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcDateTimeInputComponent from './date-time-input.js'; + +afterEach(() => cleanupFixtures()); + +const template = html``; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-date-time-input`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./date-time-input-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} From 912dd5a89d61d1d8142b62a5ad2e444a12e9d9b0 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 15:44:40 +0300 Subject: [PATCH 15/53] test(dialog): Added SSR fixtures --- src/components/dialog/dialog-auto-register.ts | 5 ++++ src/components/dialog/dialog.ssr.spec.ts | 27 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 src/components/dialog/dialog-auto-register.ts create mode 100644 src/components/dialog/dialog.ssr.spec.ts diff --git a/src/components/dialog/dialog-auto-register.ts b/src/components/dialog/dialog-auto-register.ts new file mode 100644 index 000000000..1618c672a --- /dev/null +++ b/src/components/dialog/dialog-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './dialog.js'; +Component.register(); + +export default Component; diff --git a/src/components/dialog/dialog.ssr.spec.ts b/src/components/dialog/dialog.ssr.spec.ts new file mode 100644 index 000000000..5a9f80eb5 --- /dev/null +++ b/src/components/dialog/dialog.ssr.spec.ts @@ -0,0 +1,27 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcDialogComponent from './dialog.js'; + +afterEach(() => cleanupFixtures()); + +const template = html`Dialog`; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-dialog`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./dialog-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} From c88236250583792546d6752ad7924ce1fef4d535 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 15:55:49 +0300 Subject: [PATCH 16/53] test(divider): Added SSR fixtures --- .../divider/divider-auto-register.ts | 5 ++++ src/components/divider/divider.ssr.spec.ts | 27 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 src/components/divider/divider-auto-register.ts create mode 100644 src/components/divider/divider.ssr.spec.ts diff --git a/src/components/divider/divider-auto-register.ts b/src/components/divider/divider-auto-register.ts new file mode 100644 index 000000000..75e6ade6b --- /dev/null +++ b/src/components/divider/divider-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './divider.js'; +Component.register(); + +export default Component; diff --git a/src/components/divider/divider.ssr.spec.ts b/src/components/divider/divider.ssr.spec.ts new file mode 100644 index 000000000..2e6bb74c2 --- /dev/null +++ b/src/components/divider/divider.ssr.spec.ts @@ -0,0 +1,27 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcDividerComponent from './divider.js'; + +afterEach(() => cleanupFixtures()); + +const template = html``; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-divider`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./divider-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} From bdd366f2439e5128e46ec33308daff43cc4f0999 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 15:58:21 +0300 Subject: [PATCH 17/53] test(dropdown): Added SSR fixtures --- .../dropdown/dropdown-auto-register.ts | 5 +++ src/components/dropdown/dropdown.ssr.spec.ts | 36 +++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 src/components/dropdown/dropdown-auto-register.ts create mode 100644 src/components/dropdown/dropdown.ssr.spec.ts diff --git a/src/components/dropdown/dropdown-auto-register.ts b/src/components/dropdown/dropdown-auto-register.ts new file mode 100644 index 000000000..1e3ef115a --- /dev/null +++ b/src/components/dropdown/dropdown-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './dropdown.js'; +Component.register(); + +export default Component; diff --git a/src/components/dropdown/dropdown.ssr.spec.ts b/src/components/dropdown/dropdown.ssr.spec.ts new file mode 100644 index 000000000..8ff6c171d --- /dev/null +++ b/src/components/dropdown/dropdown.ssr.spec.ts @@ -0,0 +1,36 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcDropdownComponent from './dropdown.js'; + +afterEach(() => cleanupFixtures()); + +const template = html` + + + Header + + 1 + 2 + + +`; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-dropdown`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./dropdown-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} From fa9882273671fd4e623e4885bf33bf6f111a259e Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 16:05:57 +0300 Subject: [PATCH 18/53] test(expansion-panel): Added SSR fixtures --- .../expansion-panel-auto-register.ts | 5 +++ .../expansion-panel.ssr.spec.ts | 33 +++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 src/components/expansion-panel/expansion-panel-auto-register.ts create mode 100644 src/components/expansion-panel/expansion-panel.ssr.spec.ts diff --git a/src/components/expansion-panel/expansion-panel-auto-register.ts b/src/components/expansion-panel/expansion-panel-auto-register.ts new file mode 100644 index 000000000..600c38f06 --- /dev/null +++ b/src/components/expansion-panel/expansion-panel-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './expansion-panel.js'; +Component.register(); + +export default Component; diff --git a/src/components/expansion-panel/expansion-panel.ssr.spec.ts b/src/components/expansion-panel/expansion-panel.ssr.spec.ts new file mode 100644 index 000000000..c940edd8c --- /dev/null +++ b/src/components/expansion-panel/expansion-panel.ssr.spec.ts @@ -0,0 +1,33 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcExpansionPanelComponent from './expansion-panel.js'; + +afterEach(() => cleanupFixtures()); + +const template = html` + +

Title

+

Subtitle

+

Content

+
+`; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-expansion-panel`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./expansion-panel-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} From 7bf5a39af5d0206417c06058a0232ce2a493a88a Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 16:08:16 +0300 Subject: [PATCH 19/53] test(icon): Added SSR fixtures --- src/components/icon/icon-auto-registry.ts | 5 +++++ src/components/icon/icon.ssr.spec.ts | 27 +++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 src/components/icon/icon-auto-registry.ts create mode 100644 src/components/icon/icon.ssr.spec.ts diff --git a/src/components/icon/icon-auto-registry.ts b/src/components/icon/icon-auto-registry.ts new file mode 100644 index 000000000..b3d357dc2 --- /dev/null +++ b/src/components/icon/icon-auto-registry.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './icon.js'; +Component.register(); + +export default Component; diff --git a/src/components/icon/icon.ssr.spec.ts b/src/components/icon/icon.ssr.spec.ts new file mode 100644 index 000000000..25c5d0643 --- /dev/null +++ b/src/components/icon/icon.ssr.spec.ts @@ -0,0 +1,27 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcIconComponent from './icon.js'; + +afterEach(() => cleanupFixtures()); + +const template = html``; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-icon`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./icon-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} From 4368d693b89fd622f103d8f8129badd2e9b367c9 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 16:10:46 +0300 Subject: [PATCH 20/53] test(list): Added SSR fixtures --- src/components/list/list-auto-register.ts | 5 ++++ src/components/list/list.ssr.spec.ts | 36 +++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 src/components/list/list-auto-register.ts create mode 100644 src/components/list/list.ssr.spec.ts diff --git a/src/components/list/list-auto-register.ts b/src/components/list/list-auto-register.ts new file mode 100644 index 000000000..488fd6511 --- /dev/null +++ b/src/components/list/list-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './list.js'; +Component.register(); + +export default Component; diff --git a/src/components/list/list.ssr.spec.ts b/src/components/list/list.ssr.spec.ts new file mode 100644 index 000000000..51f813935 --- /dev/null +++ b/src/components/list/list.ssr.spec.ts @@ -0,0 +1,36 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcListComponent from './list.js'; + +afterEach(() => cleanupFixtures()); + +const template = html` + + Header + 1 + 2 + +`; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-list`, () => { + it('renders as expected', async () => { + const element = await fixture( + html``, + { + modules: ['./list-auto-register.js'], + } + ); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} From f0e060eb4d731bb612489a6a3b0c61bff7f75da1 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 16:12:54 +0300 Subject: [PATCH 21/53] test(mask-input): Added SSR fixtures --- src/components/list/list.ssr.spec.ts | 9 +++---- .../mask-input/mask-input-auto-register.ts | 5 ++++ .../mask-input/mask-input.ssr.spec.ts | 27 +++++++++++++++++++ 3 files changed, 35 insertions(+), 6 deletions(-) create mode 100644 src/components/mask-input/mask-input-auto-register.ts create mode 100644 src/components/mask-input/mask-input.ssr.spec.ts diff --git a/src/components/list/list.ssr.spec.ts b/src/components/list/list.ssr.spec.ts index 51f813935..c799af694 100644 --- a/src/components/list/list.ssr.spec.ts +++ b/src/components/list/list.ssr.spec.ts @@ -22,12 +22,9 @@ const template = html` for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { describe(`[${fixture.name}] - igc-list`, () => { it('renders as expected', async () => { - const element = await fixture( - html``, - { - modules: ['./list-auto-register.js'], - } - ); + const element = await fixture(template, { + modules: ['./list-auto-register.js'], + }); isSsrRendered(element); isSsrStyled(element); diff --git a/src/components/mask-input/mask-input-auto-register.ts b/src/components/mask-input/mask-input-auto-register.ts new file mode 100644 index 000000000..5171b1dc9 --- /dev/null +++ b/src/components/mask-input/mask-input-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './mask-input.js'; +Component.register(); + +export default Component; diff --git a/src/components/mask-input/mask-input.ssr.spec.ts b/src/components/mask-input/mask-input.ssr.spec.ts new file mode 100644 index 000000000..355dd209d --- /dev/null +++ b/src/components/mask-input/mask-input.ssr.spec.ts @@ -0,0 +1,27 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcMaskInputComponent from './mask-input.js'; + +afterEach(() => cleanupFixtures()); + +const template = html``; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-mask-input`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./mask-input-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} From bb3f564b9e80f53d6d3bc75f823429c766961c92 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 16:19:02 +0300 Subject: [PATCH 22/53] test(nav-drawer): Added SSR fixtures --- .../nav-drawer/nav-drawer-auto-register.ts | 5 +++ .../nav-drawer/nav-drawer.ssr.spec.ts | 33 +++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 src/components/nav-drawer/nav-drawer-auto-register.ts create mode 100644 src/components/nav-drawer/nav-drawer.ssr.spec.ts diff --git a/src/components/nav-drawer/nav-drawer-auto-register.ts b/src/components/nav-drawer/nav-drawer-auto-register.ts new file mode 100644 index 000000000..e85342c64 --- /dev/null +++ b/src/components/nav-drawer/nav-drawer-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './nav-drawer.js'; +Component.register(); + +export default Component; diff --git a/src/components/nav-drawer/nav-drawer.ssr.spec.ts b/src/components/nav-drawer/nav-drawer.ssr.spec.ts new file mode 100644 index 000000000..4d1f48528 --- /dev/null +++ b/src/components/nav-drawer/nav-drawer.ssr.spec.ts @@ -0,0 +1,33 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcNavDrawerComponent from './nav-drawer.js'; + +afterEach(() => cleanupFixtures()); + +const template = html` + + Header + 1 + 2 + +`; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-nav-drawer`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./nav-drawer-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} From 8b9371371950f7fda511c18f728897eb8054e098 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 16:21:10 +0300 Subject: [PATCH 23/53] test(navbar): Added SSR fixture --- src/components/navbar/navbar-auto-register.ts | 5 ++++ src/components/navbar/navbar.ssr.spec.ts | 27 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 src/components/navbar/navbar-auto-register.ts create mode 100644 src/components/navbar/navbar.ssr.spec.ts diff --git a/src/components/navbar/navbar-auto-register.ts b/src/components/navbar/navbar-auto-register.ts new file mode 100644 index 000000000..cfe515b2c --- /dev/null +++ b/src/components/navbar/navbar-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './navbar.js'; +Component.register(); + +export default Component; diff --git a/src/components/navbar/navbar.ssr.spec.ts b/src/components/navbar/navbar.ssr.spec.ts new file mode 100644 index 000000000..b8a7401ec --- /dev/null +++ b/src/components/navbar/navbar.ssr.spec.ts @@ -0,0 +1,27 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcNavbarComponent from './navbar.js'; + +afterEach(() => cleanupFixtures()); + +const template = html`Navigation`; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-navbar`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./navbar-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} From 841ab691568f2781611d7eac9da774201bd22974 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 16:28:00 +0300 Subject: [PATCH 24/53] test(icon): Fix SSR module import --- .../icon/{icon-auto-registry.ts => icon-auto-register.ts} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/components/icon/{icon-auto-registry.ts => icon-auto-register.ts} (100%) diff --git a/src/components/icon/icon-auto-registry.ts b/src/components/icon/icon-auto-register.ts similarity index 100% rename from src/components/icon/icon-auto-registry.ts rename to src/components/icon/icon-auto-register.ts From 0f4ff1e3b40eff54f9a11df8c42f899962f0c0eb Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 16:33:16 +0300 Subject: [PATCH 25/53] test(progress): Added SSR fixtures --- .../circular-progress-auto-register.ts | 5 ++ .../progress/circular-progress.ssr.spec.ts | 46 +++++++++++++++++++ .../progress/linear-progress-auto-register.ts | 5 ++ .../progress/linear-progress.ssr.spec.ts | 27 +++++++++++ 4 files changed, 83 insertions(+) create mode 100644 src/components/progress/circular-progress-auto-register.ts create mode 100644 src/components/progress/circular-progress.ssr.spec.ts create mode 100644 src/components/progress/linear-progress-auto-register.ts create mode 100644 src/components/progress/linear-progress.ssr.spec.ts diff --git a/src/components/progress/circular-progress-auto-register.ts b/src/components/progress/circular-progress-auto-register.ts new file mode 100644 index 000000000..ddb1a27be --- /dev/null +++ b/src/components/progress/circular-progress-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './circular-progress.js'; +Component.register(); + +export default Component; diff --git a/src/components/progress/circular-progress.ssr.spec.ts b/src/components/progress/circular-progress.ssr.spec.ts new file mode 100644 index 000000000..2fd9402d6 --- /dev/null +++ b/src/components/progress/circular-progress.ssr.spec.ts @@ -0,0 +1,46 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcCircularProgressComponent from './circular-progress.js'; + +afterEach(() => cleanupFixtures()); + +const template = html` + + + + + +`; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-circular-gradient`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./circular-progress-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} diff --git a/src/components/progress/linear-progress-auto-register.ts b/src/components/progress/linear-progress-auto-register.ts new file mode 100644 index 000000000..e2eea5690 --- /dev/null +++ b/src/components/progress/linear-progress-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './linear-progress.js'; +Component.register(); + +export default Component; diff --git a/src/components/progress/linear-progress.ssr.spec.ts b/src/components/progress/linear-progress.ssr.spec.ts new file mode 100644 index 000000000..7a2892db6 --- /dev/null +++ b/src/components/progress/linear-progress.ssr.spec.ts @@ -0,0 +1,27 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcLinearProgressComponent from './linear-progress.js'; + +afterEach(() => cleanupFixtures()); + +const template = html``; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-linear-progress`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./linear-progress-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} From f7b26902c04b7f590f0f62fa2f3cf68ef3637626 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 16:37:18 +0300 Subject: [PATCH 26/53] test(radio, radio-group): Add SSR fixtures --- .../radio-group/radio-group-auto-register.ts | 5 +++ .../radio-group/radio-group.ssr.spec.ts | 33 +++++++++++++++++++ src/components/radio/radio-auto-register.ts | 5 +++ src/components/radio/radio.ssr.spec.ts | 27 +++++++++++++++ 4 files changed, 70 insertions(+) create mode 100644 src/components/radio-group/radio-group-auto-register.ts create mode 100644 src/components/radio-group/radio-group.ssr.spec.ts create mode 100644 src/components/radio/radio-auto-register.ts create mode 100644 src/components/radio/radio.ssr.spec.ts diff --git a/src/components/radio-group/radio-group-auto-register.ts b/src/components/radio-group/radio-group-auto-register.ts new file mode 100644 index 000000000..3b3322dfd --- /dev/null +++ b/src/components/radio-group/radio-group-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './radio-group.js'; +Component.register(); + +export default Component; diff --git a/src/components/radio-group/radio-group.ssr.spec.ts b/src/components/radio-group/radio-group.ssr.spec.ts new file mode 100644 index 000000000..5440bb4d0 --- /dev/null +++ b/src/components/radio-group/radio-group.ssr.spec.ts @@ -0,0 +1,33 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcRadioGroupComponent from './radio-group.js'; + +afterEach(() => cleanupFixtures()); + +const template = html` + + 1 + 2 + 3 + +`; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-radio-group`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./radio-group-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} diff --git a/src/components/radio/radio-auto-register.ts b/src/components/radio/radio-auto-register.ts new file mode 100644 index 000000000..b90cbbb73 --- /dev/null +++ b/src/components/radio/radio-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './radio.js'; +Component.register(); + +export default Component; diff --git a/src/components/radio/radio.ssr.spec.ts b/src/components/radio/radio.ssr.spec.ts new file mode 100644 index 000000000..f4e81a2fe --- /dev/null +++ b/src/components/radio/radio.ssr.spec.ts @@ -0,0 +1,27 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcRadioComponent from './radio.js'; + +afterEach(() => cleanupFixtures()); + +const template = html``; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-radio`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./radio-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} From 0f3d1050df292112c79bf2c91cc76ab6c3f53508 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 16:39:00 +0300 Subject: [PATCH 27/53] test(rating): Added SSR fixtures --- src/components/rating/rating-auto-register.ts | 5 ++++ src/components/rating/rating.ssr.spec.ts | 27 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 src/components/rating/rating-auto-register.ts create mode 100644 src/components/rating/rating.ssr.spec.ts diff --git a/src/components/rating/rating-auto-register.ts b/src/components/rating/rating-auto-register.ts new file mode 100644 index 000000000..825ffa7fb --- /dev/null +++ b/src/components/rating/rating-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './rating.js'; +Component.register(); + +export default Component; diff --git a/src/components/rating/rating.ssr.spec.ts b/src/components/rating/rating.ssr.spec.ts new file mode 100644 index 000000000..7df29d88d --- /dev/null +++ b/src/components/rating/rating.ssr.spec.ts @@ -0,0 +1,27 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcRatingComponent from './rating.js'; + +afterEach(() => cleanupFixtures()); + +const template = html``; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-rating`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./rating-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} From 9337c10ed260dd7c52d06b892aae99d6e916f296 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 16:40:36 +0300 Subject: [PATCH 28/53] test(ripple): Added SSR fixtures --- src/components/ripple/ripple-auto-register.ts | 5 +++ src/components/ripple/ripple.ssr.spec.ts | 35 +++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 src/components/ripple/ripple-auto-register.ts create mode 100644 src/components/ripple/ripple.ssr.spec.ts diff --git a/src/components/ripple/ripple-auto-register.ts b/src/components/ripple/ripple-auto-register.ts new file mode 100644 index 000000000..89150b031 --- /dev/null +++ b/src/components/ripple/ripple-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './ripple.js'; +Component.register(); + +export default Component; diff --git a/src/components/ripple/ripple.ssr.spec.ts b/src/components/ripple/ripple.ssr.spec.ts new file mode 100644 index 000000000..da1814bc1 --- /dev/null +++ b/src/components/ripple/ripple.ssr.spec.ts @@ -0,0 +1,35 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcRippleComponent from './ripple.js'; + +afterEach(() => cleanupFixtures()); + +const template = html` + + Click + + +`; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-rating`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: [ + './ripple-auto-register.js', + '../button/button-auto-register.ts', + ], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} From 030146e0eb63bf850e1404eec2d93f5926ed2390 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 16:43:59 +0300 Subject: [PATCH 29/53] test(select): Added SSR fixtures --- src/components/ripple/ripple.ssr.spec.ts | 2 +- src/components/select/select-auto-register.ts | 5 +++ src/components/select/select.ssr.spec.ts | 35 +++++++++++++++++++ 3 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 src/components/select/select-auto-register.ts create mode 100644 src/components/select/select.ssr.spec.ts diff --git a/src/components/ripple/ripple.ssr.spec.ts b/src/components/ripple/ripple.ssr.spec.ts index da1814bc1..c01214419 100644 --- a/src/components/ripple/ripple.ssr.spec.ts +++ b/src/components/ripple/ripple.ssr.spec.ts @@ -19,7 +19,7 @@ const template = html` `; for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { - describe(`[${fixture.name}] - igc-rating`, () => { + describe(`[${fixture.name}] - igc-ripple`, () => { it('renders as expected', async () => { const element = await fixture(template, { modules: [ diff --git a/src/components/select/select-auto-register.ts b/src/components/select/select-auto-register.ts new file mode 100644 index 000000000..dee3490ab --- /dev/null +++ b/src/components/select/select-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './select.js'; +Component.register(); + +export default Component; diff --git a/src/components/select/select.ssr.spec.ts b/src/components/select/select.ssr.spec.ts new file mode 100644 index 000000000..1aca953de --- /dev/null +++ b/src/components/select/select.ssr.spec.ts @@ -0,0 +1,35 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcSelectComponent from './select.js'; + +afterEach(() => cleanupFixtures()); + +const template = html` + + Header + + 1 + 2 + + +`; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-select`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./select-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} From 5ee49ae2d3a3902baeb42b8e1eba2ea39777f5e8 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 16:48:45 +0300 Subject: [PATCH 30/53] test(slider): Added SSR fixtures --- .../slider/range-slider-auto-register.ts | 5 ++++ .../slider/range-slider.ssr.spec.ts | 27 +++++++++++++++++++ src/components/slider/slider-auto-register.ts | 5 ++++ src/components/slider/slider.ssr.spec.ts | 27 +++++++++++++++++++ 4 files changed, 64 insertions(+) create mode 100644 src/components/slider/range-slider-auto-register.ts create mode 100644 src/components/slider/range-slider.ssr.spec.ts create mode 100644 src/components/slider/slider-auto-register.ts create mode 100644 src/components/slider/slider.ssr.spec.ts diff --git a/src/components/slider/range-slider-auto-register.ts b/src/components/slider/range-slider-auto-register.ts new file mode 100644 index 000000000..1cd96465f --- /dev/null +++ b/src/components/slider/range-slider-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './range-slider.js'; +Component.register(); + +export default Component; diff --git a/src/components/slider/range-slider.ssr.spec.ts b/src/components/slider/range-slider.ssr.spec.ts new file mode 100644 index 000000000..4a193c1cb --- /dev/null +++ b/src/components/slider/range-slider.ssr.spec.ts @@ -0,0 +1,27 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcRangeSliderComponent from './range-slider.js'; + +afterEach(() => cleanupFixtures()); + +const template = html``; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-range-slider`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./range-slider-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} diff --git a/src/components/slider/slider-auto-register.ts b/src/components/slider/slider-auto-register.ts new file mode 100644 index 000000000..17dc7db7a --- /dev/null +++ b/src/components/slider/slider-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './slider.js'; +Component.register(); + +export default Component; diff --git a/src/components/slider/slider.ssr.spec.ts b/src/components/slider/slider.ssr.spec.ts new file mode 100644 index 000000000..49323ed06 --- /dev/null +++ b/src/components/slider/slider.ssr.spec.ts @@ -0,0 +1,27 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcSliderComponent from './slider.js'; + +afterEach(() => cleanupFixtures()); + +const template = html``; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-slider`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./slider-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} From c7e45fdb9901c73a7f61f32dde55c21f2e8b9b55 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 16:54:30 +0300 Subject: [PATCH 31/53] test(ripple): Fix button import --- src/components/ripple/ripple.ssr.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/ripple/ripple.ssr.spec.ts b/src/components/ripple/ripple.ssr.spec.ts index c01214419..e39699143 100644 --- a/src/components/ripple/ripple.ssr.spec.ts +++ b/src/components/ripple/ripple.ssr.spec.ts @@ -24,7 +24,7 @@ for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { const element = await fixture(template, { modules: [ './ripple-auto-register.js', - '../button/button-auto-register.ts', + '../button/button-auto-register.js', ], }); From 4e441c5cc16c1b5e0959757782fd977f97675d0e Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 16:57:43 +0300 Subject: [PATCH 32/53] test(snackbar, toast): Added SSR fixtures --- .../snackbar/snackbar-auto-register.ts | 5 ++++ src/components/snackbar/snackbar.ssr.spec.ts | 27 +++++++++++++++++++ src/components/toast/toast-auto-register.ts | 5 ++++ src/components/toast/toast.ssr.spec.ts | 27 +++++++++++++++++++ 4 files changed, 64 insertions(+) create mode 100644 src/components/snackbar/snackbar-auto-register.ts create mode 100644 src/components/snackbar/snackbar.ssr.spec.ts create mode 100644 src/components/toast/toast-auto-register.ts create mode 100644 src/components/toast/toast.ssr.spec.ts diff --git a/src/components/snackbar/snackbar-auto-register.ts b/src/components/snackbar/snackbar-auto-register.ts new file mode 100644 index 000000000..98f854501 --- /dev/null +++ b/src/components/snackbar/snackbar-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './snackbar.js'; +Component.register(); + +export default Component; diff --git a/src/components/snackbar/snackbar.ssr.spec.ts b/src/components/snackbar/snackbar.ssr.spec.ts new file mode 100644 index 000000000..307c2fcd0 --- /dev/null +++ b/src/components/snackbar/snackbar.ssr.spec.ts @@ -0,0 +1,27 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcSnackbarComponent from './snackbar.js'; + +afterEach(() => cleanupFixtures()); + +const template = html`Snackbar`; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-snackbar`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./snackbar-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} diff --git a/src/components/toast/toast-auto-register.ts b/src/components/toast/toast-auto-register.ts new file mode 100644 index 000000000..bbde5b37f --- /dev/null +++ b/src/components/toast/toast-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './toast.js'; +Component.register(); + +export default Component; diff --git a/src/components/toast/toast.ssr.spec.ts b/src/components/toast/toast.ssr.spec.ts new file mode 100644 index 000000000..7075d3ce7 --- /dev/null +++ b/src/components/toast/toast.ssr.spec.ts @@ -0,0 +1,27 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcToastComponent from './toast.js'; + +afterEach(() => cleanupFixtures()); + +const template = html`Snackbar`; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-toast`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./toast-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} From 7e7c10851a2dfbd25b29a9d9629392e920e7c59f Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 17:02:00 +0300 Subject: [PATCH 33/53] fix(icon): Safely create DOM parser --- src/components/icon/registry/parser.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/components/icon/registry/parser.ts b/src/components/icon/registry/parser.ts index bff57b181..06ba15cd2 100644 --- a/src/components/icon/registry/parser.ts +++ b/src/components/icon/registry/parser.ts @@ -1,11 +1,14 @@ +import { isServer } from 'lit'; import type { SvgIcon } from './types.js'; /* blazorSuppress */ export class SvgIconParser { - private _parser: DOMParser; + private _parser!: DOMParser; constructor() { - this._parser = new DOMParser(); + if (!isServer) { + this._parser = new DOMParser(); + } } public parse(svgString: string): SvgIcon { From a2d029443332415d4e12bc66bd815d707ef58861 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 17:27:52 +0300 Subject: [PATCH 34/53] fix(accordion): Added safe addEventListener --- src/components/accordion/accordion.ts | 3 ++- src/components/common/util.ts | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/components/accordion/accordion.ts b/src/components/accordion/accordion.ts index 65716f20e..130c21a72 100644 --- a/src/components/accordion/accordion.ts +++ b/src/components/accordion/accordion.ts @@ -11,6 +11,7 @@ import { shiftKey, } from '../common/controllers/key-bindings.js'; import { registerComponent } from '../common/definitions/register.js'; +import { ssrAddEventListener } from '../common/util.js'; import IgcExpansionPanelComponent from '../expansion-panel/expansion-panel.js'; import { styles } from './themes/accordion.base.css.js'; @@ -59,7 +60,7 @@ export default class IgcAccordionComponent extends LitElement { constructor() { super(); - this.addEventListener('igcOpening', this.handlePanelOpening); + ssrAddEventListener(this, 'igcOpening', this.handlePanelOpening); addKeybindings(this, { skip: this.skipKeybinding, diff --git a/src/components/common/util.ts b/src/components/common/util.ts index a6a518c23..08e04e7e0 100644 --- a/src/components/common/util.ts +++ b/src/components/common/util.ts @@ -1,3 +1,5 @@ +import { isServer } from 'lit'; + export interface PartNameInfo { readonly [name: string]: string | boolean | number; } @@ -256,3 +258,13 @@ export function* chunk(arr: T[], size: number) { yield arr.slice(i, i + size); } } + +export function ssrAddEventListener( + element: Element, + type: string, + handler: (event: Event) => unknown +) { + if (!isServer) { + element.addEventListener(type, handler); + } +} From 97ce58edbb6eda1de41e4cb9ff4db49521c64233 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 17:28:43 +0300 Subject: [PATCH 35/53] fix: MutationObserver controller safe initialization --- .../common/controllers/mutation-observer.ts | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/components/common/controllers/mutation-observer.ts b/src/components/common/controllers/mutation-observer.ts index ed48a52af..5f0a9145c 100644 --- a/src/components/common/controllers/mutation-observer.ts +++ b/src/components/common/controllers/mutation-observer.ts @@ -1,4 +1,8 @@ -import type { ReactiveController, ReactiveControllerHost } from 'lit'; +import { + type ReactiveController, + type ReactiveControllerHost, + isServer, +} from 'lit'; import { isElement } from '../util.js'; @@ -62,7 +66,7 @@ function mutationFilter(nodes: T[], filter?: MutationControllerFilter) { class MutationController implements ReactiveController { private _host: ReactiveControllerHost & Element; - private _observer: MutationObserver; + private _observer!: MutationObserver; private _target: Element; private _config: MutationObserverInit; private _callback: MutationControllerCallback; @@ -78,21 +82,23 @@ class MutationController implements ReactiveController { this._target = options.target ?? this._host; this._filter = options.filter ?? []; - this._observer = new MutationObserver((records) => { - this.disconnect(); - this._callback.call(this._host, this._process(records)); - this.observe(); - }); + if (!isServer) { + this._observer = new MutationObserver((records) => { + this.disconnect(); + this._callback.call(this._host, this._process(records)); + this.observe(); + }); + } host.addController(this); } public hostConnected() { - this.observe(); + this?.observe(); } public hostDisconnected() { - this.disconnect(); + this?.disconnect(); } private _process(records: MutationRecord[]): MutationControllerParams { From 8cdcede46a1be8561944879777e21df636e47fec Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 17:42:10 +0300 Subject: [PATCH 36/53] fix(calendar): Added safe addEventListener --- src/components/calendar/days-view/days-view.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/components/calendar/days-view/days-view.ts b/src/components/calendar/days-view/days-view.ts index 6a59fabee..3eeee917e 100644 --- a/src/components/calendar/days-view/days-view.ts +++ b/src/components/calendar/days-view/days-view.ts @@ -11,7 +11,14 @@ import { IgcCalendarResourceStringEN } from '../../common/i18n/calendar.resource import { createDateTimeFormatters } from '../../common/localization/intl-formatters.js'; import type { Constructor } from '../../common/mixins/constructor.js'; import { EventEmitterMixin } from '../../common/mixins/event-emitter.js'; -import { chunk, first, last, partNameMap, take } from '../../common/util.js'; +import { + chunk, + first, + last, + partNameMap, + ssrAddEventListener, + take, +} from '../../common/util.js'; import { IgcCalendarBaseComponent } from '../base.js'; import { areSameMonth, @@ -137,7 +144,7 @@ export default class IgcDaysViewComponent extends EventEmitterMixin< bindingDefaults: { preventDefault: true }, }).setActivateHandler(this.handleInteraction); - this.addEventListener('click', this.handleInteraction); + ssrAddEventListener(this, 'click', this.handleInteraction); } public override connectedCallback() { From 2bd1a11c6545c42580b4bcb7f9c55fdc42e10cf2 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 17:55:02 +0300 Subject: [PATCH 37/53] fix(combo): Added safe addEventListener --- src/components/combo/combo.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/components/combo/combo.ts b/src/components/combo/combo.ts index ce5a5d7fb..a0496b708 100644 --- a/src/components/combo/combo.ts +++ b/src/components/combo/combo.ts @@ -17,7 +17,7 @@ import { registerComponent } from '../common/definitions/register.js'; import type { Constructor } from '../common/mixins/constructor.js'; import { EventEmitterMixin } from '../common/mixins/event-emitter.js'; import { FormAssociatedRequiredMixin } from '../common/mixins/form-associated-required.js'; -import { partNameMap } from '../common/util.js'; +import { partNameMap, ssrAddEventListener } from '../common/util.js'; import IgcIconComponent from '../icon/icon.js'; import IgcInputComponent from '../input/input.js'; import IgcPopoverComponent from '../popover/popover.js'; @@ -355,7 +355,7 @@ export default class IgcComboComponent< constructor() { super(); - this.addEventListener('blur', () => { + ssrAddEventListener(this, 'blur', () => { const { selected } = this.selectionController; if (selected.size === 0) { @@ -366,9 +366,13 @@ export default class IgcComboComponent< this.invalid = !this.checkValidity(); }); - this.addEventListener( + // TODO: Fix types + ssrAddEventListener( + this, 'keydown', - this.navigationController.navigateHost.bind(this.navigationController) + this.navigationController.navigateHost.bind( + this.navigationController + ) as any ); } From e4831b18770cedd460392cf2163b5bfd52ce7aae Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 9 Sep 2024 17:55:23 +0300 Subject: [PATCH 38/53] fix: Root click controller safe addEventListener --- src/components/common/controllers/root-click.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/components/common/controllers/root-click.ts b/src/components/common/controllers/root-click.ts index 14a12b14f..6f1d802aa 100644 --- a/src/components/common/controllers/root-click.ts +++ b/src/components/common/controllers/root-click.ts @@ -1,4 +1,8 @@ -import type { ReactiveController, ReactiveControllerHost } from 'lit'; +import { + type ReactiveController, + type ReactiveControllerHost, + isServer, +} from 'lit'; import { findElementFromEventPath } from '../util.js'; type RootClickControllerConfig = { @@ -22,13 +26,15 @@ export class RootClickController implements ReactiveController { } private addEventListeners() { - if (!this.host.keepOpenOnOutsideClick) { + if (!this.host.keepOpenOnOutsideClick && !isServer) { document.addEventListener('click', this, { capture: true }); } } private removeEventListeners() { - document.removeEventListener('click', this, { capture: true }); + if (!isServer) { + document.removeEventListener('click', this, { capture: true }); + } } private configureListeners() { From 0bfe61806978abca2fcd6f62574a8b921185b1eb Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Tue, 10 Sep 2024 08:17:37 +0300 Subject: [PATCH 39/53] test(stepper): Added SSR fixtures --- .../stepper/stepper-auto-register.ts | 5 +++ src/components/stepper/stepper.ssr.spec.ts | 38 +++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 src/components/stepper/stepper-auto-register.ts create mode 100644 src/components/stepper/stepper.ssr.spec.ts diff --git a/src/components/stepper/stepper-auto-register.ts b/src/components/stepper/stepper-auto-register.ts new file mode 100644 index 000000000..b0ed9262f --- /dev/null +++ b/src/components/stepper/stepper-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './stepper.js'; +Component.register(); + +export default Component; diff --git a/src/components/stepper/stepper.ssr.spec.ts b/src/components/stepper/stepper.ssr.spec.ts new file mode 100644 index 000000000..c1e41a365 --- /dev/null +++ b/src/components/stepper/stepper.ssr.spec.ts @@ -0,0 +1,38 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcStepperComponent from './stepper.js'; + +afterEach(() => cleanupFixtures()); + +const template = html` + + + Step 1 + Step 1 content + + + Step 2 + Step 2 content + + +`; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-stepper`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./stepper-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} From ade58d7c0db452cc6f612b376d6b769498a21436 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Tue, 10 Sep 2024 08:19:41 +0300 Subject: [PATCH 40/53] test(tabs): Added SSR fixtures --- src/components/tabs/tabs-auto-register.ts | 5 ++++ src/components/tabs/tabs.ssr.spec.ts | 36 +++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 src/components/tabs/tabs-auto-register.ts create mode 100644 src/components/tabs/tabs.ssr.spec.ts diff --git a/src/components/tabs/tabs-auto-register.ts b/src/components/tabs/tabs-auto-register.ts new file mode 100644 index 000000000..12834dd88 --- /dev/null +++ b/src/components/tabs/tabs-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './tabs.js'; +Component.register(); + +export default Component; diff --git a/src/components/tabs/tabs.ssr.spec.ts b/src/components/tabs/tabs.ssr.spec.ts new file mode 100644 index 000000000..268466914 --- /dev/null +++ b/src/components/tabs/tabs.ssr.spec.ts @@ -0,0 +1,36 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcTabsComponent from './tabs.js'; + +afterEach(() => cleanupFixtures()); + +const template = html` + + Tab 1 + Tab 2 + Tab 3 + Content 1 + Content 2 + Content 3 + +`; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-tabs`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./tabs-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} From 8ce63781e71109e832721a4cdea07aa64ddfdbf7 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Tue, 10 Sep 2024 08:21:31 +0300 Subject: [PATCH 41/53] test(textarea): Added SSR fixtures --- .../textarea/textarea-auto-register.ts | 5 ++++ src/components/textarea/textarea.ssr.spec.ts | 27 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 src/components/textarea/textarea-auto-register.ts create mode 100644 src/components/textarea/textarea.ssr.spec.ts diff --git a/src/components/textarea/textarea-auto-register.ts b/src/components/textarea/textarea-auto-register.ts new file mode 100644 index 000000000..bab438eff --- /dev/null +++ b/src/components/textarea/textarea-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './textarea.js'; +Component.register(); + +export default Component; diff --git a/src/components/textarea/textarea.ssr.spec.ts b/src/components/textarea/textarea.ssr.spec.ts new file mode 100644 index 000000000..97f03c972 --- /dev/null +++ b/src/components/textarea/textarea.ssr.spec.ts @@ -0,0 +1,27 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcTextareaComponent from './textarea.js'; + +afterEach(() => cleanupFixtures()); + +const template = html`Textarea content`; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-textarea`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./textarea-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} From e63529d92172651a4cca5b4e8798cd1d428996cf Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Tue, 10 Sep 2024 09:40:25 +0300 Subject: [PATCH 42/53] fix(date-picker): Added safe addEventListener --- src/components/accordion/accordion.ts | 2 +- src/components/combo/combo.ts | 5 +---- src/components/common/util.ts | 14 ++++++++++---- src/components/date-picker/date-picker.ts | 10 +++++++--- src/components/focus-trap/focus-trap.ts | 6 +++--- 5 files changed, 22 insertions(+), 15 deletions(-) diff --git a/src/components/accordion/accordion.ts b/src/components/accordion/accordion.ts index 130c21a72..062ac003e 100644 --- a/src/components/accordion/accordion.ts +++ b/src/components/accordion/accordion.ts @@ -60,7 +60,7 @@ export default class IgcAccordionComponent extends LitElement { constructor() { super(); - ssrAddEventListener(this, 'igcOpening', this.handlePanelOpening); + ssrAddEventListener(this, 'igcOpening' as any, this.handlePanelOpening); addKeybindings(this, { skip: this.skipKeybinding, diff --git a/src/components/combo/combo.ts b/src/components/combo/combo.ts index a0496b708..bb4ca42bd 100644 --- a/src/components/combo/combo.ts +++ b/src/components/combo/combo.ts @@ -366,13 +366,10 @@ export default class IgcComboComponent< this.invalid = !this.checkValidity(); }); - // TODO: Fix types ssrAddEventListener( this, 'keydown', - this.navigationController.navigateHost.bind( - this.navigationController - ) as any + this.navigationController.navigateHost.bind(this.navigationController) ); } diff --git a/src/components/common/util.ts b/src/components/common/util.ts index 08e04e7e0..663186575 100644 --- a/src/components/common/util.ts +++ b/src/components/common/util.ts @@ -259,12 +259,18 @@ export function* chunk(arr: T[], size: number) { } } -export function ssrAddEventListener( +/** + * Skips adding event listeners in SSR environments. + */ +export function ssrAddEventListener( element: Element, - type: string, - handler: (event: Event) => unknown + type: keyof HTMLElementEventMap, + handler: (event: T) => unknown ) { if (!isServer) { - element.addEventListener(type, handler); + element.addEventListener( + type, + handler as EventListenerOrEventListenerObject + ); } } diff --git a/src/components/date-picker/date-picker.ts b/src/components/date-picker/date-picker.ts index ed58207ea..b86cf71aa 100644 --- a/src/components/date-picker/date-picker.ts +++ b/src/components/date-picker/date-picker.ts @@ -28,7 +28,11 @@ import { IgcBaseComboBoxLikeComponent } from '../common/mixins/combo-box.js'; import type { AbstractConstructor } from '../common/mixins/constructor.js'; import { EventEmitterMixin } from '../common/mixins/event-emitter.js'; import { FormAssociatedRequiredMixin } from '../common/mixins/form-associated-required.js'; -import { createCounter, findElementFromEventPath } from '../common/util.js'; +import { + createCounter, + findElementFromEventPath, + ssrAddEventListener, +} from '../common/util.js'; import IgcDateTimeInputComponent from '../date-time-input/date-time-input.js'; import type { DatePart } from '../date-time-input/date-util.js'; import IgcDialogComponent from '../dialog/dialog.js'; @@ -421,8 +425,8 @@ export default class IgcDatePickerComponent extends FormAssociatedRequiredMixin( constructor() { super(); - this.addEventListener('focusin', this.handleFocusIn); - this.addEventListener('focusout', this.handleFocusOut); + ssrAddEventListener(this, 'focusin', this.handleFocusIn); + ssrAddEventListener(this, 'focusout', this.handleFocusOut); this._rootClickController.update({ hideCallback: this.handleClosing }); diff --git a/src/components/focus-trap/focus-trap.ts b/src/components/focus-trap/focus-trap.ts index 28478adef..00fb8a98e 100644 --- a/src/components/focus-trap/focus-trap.ts +++ b/src/components/focus-trap/focus-trap.ts @@ -2,7 +2,7 @@ import { LitElement, css, html, nothing } from 'lit'; import { property, state } from 'lit/decorators.js'; import { registerComponent } from '../common/definitions/register.js'; -import { isDefined } from '../common/util.js'; +import { isDefined, ssrAddEventListener } from '../common/util.js'; /* blazorSuppress */ /** @@ -49,8 +49,8 @@ export default class IgcFocusTrapComponent extends LitElement { constructor() { super(); - this.addEventListener('focusin', this.onFocusIn); - this.addEventListener('focusout', this.onFocusOut); + ssrAddEventListener(this, 'focusin', this.onFocusIn); + ssrAddEventListener(this, 'focusout', this.onFocusOut); } private onFocusIn() { From 548038d1a5ca7620e44e58171dd386149c1af729 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Tue, 10 Sep 2024 09:48:15 +0300 Subject: [PATCH 43/53] fix: Made LTR helper server aware --- src/components/common/util.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/common/util.ts b/src/components/common/util.ts index 663186575..2a0f75316 100644 --- a/src/components/common/util.ts +++ b/src/components/common/util.ts @@ -69,7 +69,7 @@ export function createCounter() { * Returns whether an element has a Left-to-Right directionality. */ export function isLTR(element: HTMLElement) { - return element.matches(':dir(ltr)'); + return isServer ? true : element.matches(':dir(ltr)'); } /** From 8351b8342521e6e1e496e1bf2efd622fb093cdf6 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Tue, 10 Sep 2024 09:51:46 +0300 Subject: [PATCH 44/53] fix(ripple): Added safe addEventListener --- src/components/ripple/ripple.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/components/ripple/ripple.ts b/src/components/ripple/ripple.ts index 6ddab9f02..680f01a10 100644 --- a/src/components/ripple/ripple.ts +++ b/src/components/ripple/ripple.ts @@ -1,6 +1,7 @@ import { LitElement, html } from 'lit'; import { registerComponent } from '../common/definitions/register.js'; +import { ssrAddEventListener } from '../common/util.js'; import { styles } from './ripple.material.css.js'; const rippleFrames: Keyframe[] = [ @@ -40,10 +41,10 @@ export default class IgcRippleComponent extends LitElement { constructor() { super(); - this.addEventListener('pointerdown', this.handler); + ssrAddEventListener(this, 'pointerdown', this.handler); } - private handler = ({ clientX, clientY }: PointerEvent) => { + private handler({ clientX, clientY }: PointerEvent) { const element = getRippleElement(); const { radius, top, left } = this.getDimensions(clientX, clientY); @@ -70,7 +71,7 @@ export default class IgcRippleComponent extends LitElement { element .animate(rippleFrames, rippleAnimation) .finished.then(() => element.remove()); - }; + } private getDimensions(x: number, y: number) { const rect = this.getBoundingClientRect(); From 8e2cde8ebbc833d583254db4ad25366c479cfd8f Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Tue, 10 Sep 2024 09:56:16 +0300 Subject: [PATCH 45/53] fix(select): Added safe addEventListener --- src/components/select/select.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/components/select/select.ts b/src/components/select/select.ts index 4413ad7ab..757224120 100644 --- a/src/components/select/select.ts +++ b/src/components/select/select.ts @@ -37,7 +37,11 @@ import { import type { AbstractConstructor } from '../common/mixins/constructor.js'; import { EventEmitterMixin } from '../common/mixins/event-emitter.js'; import { FormAssociatedRequiredMixin } from '../common/mixins/form-associated-required.js'; -import { findElementFromEventPath, partNameMap } from '../common/util.js'; +import { + findElementFromEventPath, + partNameMap, + ssrAddEventListener, +} from '../common/util.js'; import IgcIconComponent from '../icon/icon.js'; import IgcInputComponent from '../input/input.js'; import IgcPopoverComponent, { type IgcPlacement } from '../popover/popover.js'; @@ -291,9 +295,9 @@ export default class IgcSelectComponent extends FormAssociatedRequiredMixin( .set(spaceBar, this.onSpaceBarKey) .set(enterKey, this.onEnterKey); - this.addEventListener('keydown', this.handleSearch); - this.addEventListener('focusin', this.handleFocusIn); - this.addEventListener('focusout', this.handleFocusOut); + ssrAddEventListener(this, 'keydown', this.handleSearch); + ssrAddEventListener(this, 'focusin', this.handleFocusIn); + ssrAddEventListener(this, 'focusout', this.handleFocusOut); } protected override createRenderRoot() { From 55bcc9e36334e7b78d55522b4d437aaec29d6448 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Tue, 10 Sep 2024 09:59:38 +0300 Subject: [PATCH 46/53] fix(slider): Added safe addEventListener --- src/components/slider/slider-base.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/components/slider/slider-base.ts b/src/components/slider/slider-base.ts index 621326307..35afd14e4 100644 --- a/src/components/slider/slider-base.ts +++ b/src/components/slider/slider-base.ts @@ -30,6 +30,7 @@ import { formatString, isDefined, isLTR, + ssrAddEventListener, } from '../common/util.js'; import { styles as shared } from './themes/shared/slider.common.css.js'; import { styles } from './themes/slider.base.css.js'; @@ -278,10 +279,10 @@ export class IgcSliderBaseComponent extends LitElement { constructor() { super(); - this.addEventListener('pointerdown', this.pointerDown); - this.addEventListener('pointermove', this.pointerMove); - this.addEventListener('lostpointercapture', this.lostPointerCapture); - this.addEventListener('keyup', this.handleKeyUp); + ssrAddEventListener(this, 'pointerdown', this.pointerDown); + ssrAddEventListener(this, 'pointermove', this.pointerMove); + ssrAddEventListener(this, 'lostpointercapture', this.lostPointerCapture); + ssrAddEventListener(this, 'keyup', this.handleKeyUp); addKeybindings(this, { skip: () => this.disabled, From 9f87f66606977d85aeb24744af375fbe70628c76 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Tue, 10 Sep 2024 10:04:04 +0300 Subject: [PATCH 47/53] fix(textarea): Added safe addEventListener and check for observer --- src/components/textarea/textarea.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/components/textarea/textarea.ts b/src/components/textarea/textarea.ts index 1789501c1..ddbe47cb6 100644 --- a/src/components/textarea/textarea.ts +++ b/src/components/textarea/textarea.ts @@ -15,7 +15,12 @@ import { registerComponent } from '../common/definitions/register.js'; import type { Constructor } from '../common/mixins/constructor.js'; import { EventEmitterMixin } from '../common/mixins/event-emitter.js'; import { FormAssociatedRequiredMixin } from '../common/mixins/form-associated-required.js'; -import { asNumber, createCounter, partNameMap } from '../common/util.js'; +import { + asNumber, + createCounter, + partNameMap, + ssrAddEventListener, +} from '../common/util.js'; import type { RangeTextSelectMode, SelectionRangeDirection } from '../types.js'; import { styles as shared } from './themes/shared/textarea.common.css.js'; import { styles } from './themes/textarea.base.css.js'; @@ -270,10 +275,10 @@ export default class IgcTextareaComponent extends FormAssociatedRequiredMixin( constructor() { super(); - this.addEventListener('focus', () => { + ssrAddEventListener(this, 'focus', () => { this._dirty = true; }); - this.addEventListener('blur', () => { + ssrAddEventListener(this, 'blur', () => { this.updateValidity(); this.setInvalidState(); }); @@ -291,7 +296,7 @@ export default class IgcTextareaComponent extends FormAssociatedRequiredMixin( } public override disconnectedCallback(): void { - this.observer.disconnect(); + this.observer?.disconnect(); super.disconnectedCallback(); } From 5e6d1dac5c1c760cc51e1568910fe3ad6defe7db Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Tue, 10 Sep 2024 10:37:40 +0300 Subject: [PATCH 48/53] test: Ignore SSR entry points from coverage --- web-test-runner.config.mjs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/web-test-runner.config.mjs b/web-test-runner.config.mjs index 0ca7797b6..1a1d50485 100644 --- a/web-test-runner.config.mjs +++ b/web-test-runner.config.mjs @@ -14,7 +14,12 @@ export default /** @type {import("@web/test-runner").TestRunnerConfig} */ ({ }, coverageConfig: { - exclude: ['node_modules/**/*', '**/themes/**'], + exclude: [ + 'node_modules/**/*', + '**/themes/**', + '**/*auto-register.js', + '**/*.css.js', + ], }, plugins: [litSsrPlugin()], From ea96b9a14de98c1ddcce2e484bf76b35c4076d8c Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Tue, 10 Sep 2024 10:40:25 +0300 Subject: [PATCH 49/53] fix: Made getElementFromRoot server aware --- src/components/common/util.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/components/common/util.ts b/src/components/common/util.ts index 2a0f75316..2591e17e5 100644 --- a/src/components/common/util.ts +++ b/src/components/common/util.ts @@ -164,7 +164,9 @@ export function* iterNodes( } export function getElementByIdFromRoot(root: HTMLElement, id: string) { - return (root.getRootNode() as Document | ShadowRoot).getElementById(id); + return isServer + ? null + : (root.getRootNode() as Document | ShadowRoot).getElementById(id); } export function isElement(node: unknown): node is Element { From 4aa78409e09d096e7f7252f41db75a876684b978 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Tue, 10 Sep 2024 12:10:54 +0300 Subject: [PATCH 50/53] fix(icon): Changed life-cycle icon refs resolution --- src/components/icon/icon.ssr.spec.ts | 5 ++++- src/components/icon/icon.ts | 27 +++++++++++++++++++-------- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/components/icon/icon.ssr.spec.ts b/src/components/icon/icon.ssr.spec.ts index 25c5d0643..b60553e7b 100644 --- a/src/components/icon/icon.ssr.spec.ts +++ b/src/components/icon/icon.ssr.spec.ts @@ -11,7 +11,10 @@ import type IgcIconComponent from './icon.js'; afterEach(() => cleanupFixtures()); -const template = html``; +const template = html` + +`; for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { describe(`[${fixture.name}] - igc-icon`, () => { diff --git a/src/components/icon/icon.ts b/src/components/icon/icon.ts index f93ced7ed..977c86b85 100644 --- a/src/components/icon/icon.ts +++ b/src/components/icon/icon.ts @@ -62,13 +62,23 @@ export default class IgcIconComponent extends LitElement { @property({ type: Boolean, reflect: true }) public mirrored = false; + @watch('name', { waitUntilFirstUpdate: true }) + @watch('collection', { waitUntilFirstUpdate: true }) + protected iconChanged(prev: string, curr: string) { + if (prev !== curr) { + this.getIcon(); + } + } + constructor() { super(); + this.__internals = this.attachInternals(); this.__internals.role = 'img'; + } - getThemeController(this)!.onThemeChanged = (theme) => - getIconRegistry().setRefsByTheme(theme); + protected override firstUpdated() { + this._setInitialReferencesByTheme(); } public override connectedCallback() { @@ -81,12 +91,13 @@ export default class IgcIconComponent extends LitElement { super.disconnectedCallback(); } - @watch('name') - @watch('collection') - protected iconChanged(prev: string, curr: string) { - if (prev !== curr) { - this.getIcon(); - } + private _setInitialReferencesByTheme() { + const registry = getIconRegistry(); + const controller = getThemeController(this); + + registry.setRefsByTheme(controller?.theme ?? 'bootstrap'); + controller!.onThemeChanged = (theme) => registry.setRefsByTheme(theme); + this.getIcon(); } private iconLoaded = (name: string, collection: string) => { From 98572973d9f77fc23fdedcc28898b938fa0c1c24 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Tue, 10 Sep 2024 14:32:02 +0300 Subject: [PATCH 51/53] test(tree): Added SSR fixtures --- src/components/tree/tree-auto-register.ts | 5 +++ src/components/tree/tree.ssr.spec.ts | 40 +++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 src/components/tree/tree-auto-register.ts create mode 100644 src/components/tree/tree.ssr.spec.ts diff --git a/src/components/tree/tree-auto-register.ts b/src/components/tree/tree-auto-register.ts new file mode 100644 index 000000000..0a7b18cf6 --- /dev/null +++ b/src/components/tree/tree-auto-register.ts @@ -0,0 +1,5 @@ +// NOTE: Self-registering import for SSR fixtures. +import Component from './tree.js'; +Component.register(); + +export default Component; diff --git a/src/components/tree/tree.ssr.spec.ts b/src/components/tree/tree.ssr.spec.ts new file mode 100644 index 000000000..89b4395d7 --- /dev/null +++ b/src/components/tree/tree.ssr.spec.ts @@ -0,0 +1,40 @@ +import { + cleanupFixtures, + csrFixture, + ssrHydratedFixture, + ssrNonHydratedFixture, +} from '@lit-labs/testing/fixtures.js'; + +import { html } from 'lit'; +import { isSsrRendered, isSsrStyled } from '../common/utils.spec.js'; +import type IgcTreeComponent from './tree.js'; + +afterEach(() => cleanupFixtures()); + +const template = html` + + + + + + + + + + + + +`; + +for (const fixture of [csrFixture, ssrHydratedFixture, ssrNonHydratedFixture]) { + describe(`[${fixture.name}] - igc-tree`, () => { + it('renders as expected', async () => { + const element = await fixture(template, { + modules: ['./tree-auto-register.js'], + }); + + isSsrRendered(element); + isSsrStyled(element); + }); + }); +} From 54f0556598a7c17e702021e08ad52bbadc5ed075 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Thu, 12 Sep 2024 11:35:47 +0300 Subject: [PATCH 52/53] refactor: Better typing for the safe addEventListener Disabled the Lit plugin no-import rule since we don't autoregister by default. --- package-lock.json | 2476 ++++++++++++++++--------- src/components/accordion/accordion.ts | 17 +- src/components/card/card.ssr.spec.ts | 2 +- src/components/common/util.ts | 17 +- tsconfig.json | 5 +- 5 files changed, 1664 insertions(+), 853 deletions(-) diff --git a/package-lock.json b/package-lock.json index d5cc6ceea..84c57f533 100644 --- a/package-lock.json +++ b/package-lock.json @@ -63,29 +63,6 @@ "vite": "^5.4.4" } }, - "node_modules/@75lb/deep-merge": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@75lb/deep-merge/-/deep-merge-1.1.2.tgz", - "integrity": "sha512-08K9ou5VNbheZFxM5tDWoqjA3ImC50DiuuJ2tj1yEPRfkp8lLLg6XAaJ4On+a0yAXor/8ay5gHnAIshRM44Kpw==", - "dev": true, - "dependencies": { - "lodash": "^4.17.21", - "typical": "^7.1.1" - }, - "engines": { - "node": ">=12.17" - } - }, - "node_modules/@75lb/deep-merge/node_modules/typical": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", - "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.17" - } - }, "node_modules/@babel/code-frame": { "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", @@ -137,13 +114,13 @@ } }, "node_modules/@babel/parser": { - "version": "7.25.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.3.tgz", - "integrity": "sha512-iLTJKDbJ4hMvFPgQwwsVoxtHyWpKKPBrxkANrSYewDPaPpT5py5yeVkgPIJ7XYXhndxJpaA3PyALSXQ7u8e/Dw==", + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.6.tgz", + "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.2" + "@babel/types": "^7.25.6" }, "bin": { "parser": "bin/babel-parser.js" @@ -153,9 +130,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.7.tgz", - "integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==", + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.6.tgz", + "integrity": "sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==", "dev": true, "license": "MIT", "dependencies": { @@ -166,9 +143,9 @@ } }, "node_modules/@babel/types": { - "version": "7.25.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.2.tgz", - "integrity": "sha512-YTnYtra7W9e6/oAZEHj0bJehPRUlLH9/fbpT5LfB0NhQXyALCRkRs3zH9v07IYhkgpqX6Z78FnuccZr/l4Fs4Q==", + "version": "7.25.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz", + "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", "dev": true, "license": "MIT", "dependencies": { @@ -964,12 +941,12 @@ } }, "node_modules/@floating-ui/core": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.4.tgz", - "integrity": "sha512-a4IowK4QkXl4SCWTGUR0INAfEOX3wtsYw3rKK5InQEHMGObkR8Xk44qYQD9P4r6HHw0iIfK6GUKECmY8sTkqRA==", + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.7.tgz", + "integrity": "sha512-yDzVT/Lm101nQ5TCVeK65LtdN7Tj4Qpr9RTXJ2vPFLqtLxwOrpoxAHAJI8J3yYWUc40J0BDBheaitK5SJmno2g==", "license": "MIT", "dependencies": { - "@floating-ui/utils": "^0.2.4" + "@floating-ui/utils": "^0.2.7" } }, "node_modules/@floating-ui/dom": { @@ -1188,19 +1165,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@lit-labs/ssr/node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, "node_modules/@lit-labs/testing": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/@lit-labs/testing/-/testing-0.2.4.tgz", @@ -1215,173 +1179,6 @@ "lit": "^2.0.0 || ^3.0.0" } }, - "node_modules/@lit-labs/testing/node_modules/@web/browser-logs": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.2.6.tgz", - "integrity": "sha512-CNjNVhd4FplRY8PPWIAt02vAowJAVcOoTNrR/NNb/o9pka7yI9qdjpWrWhEbPr2pOXonWb52AeAgdK66B8ZH7w==", - "dev": true, - "license": "MIT", - "dependencies": { - "errorstacks": "^2.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@lit-labs/testing/node_modules/@web/dev-server-core": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.4.1.tgz", - "integrity": "sha512-KdYwejXZwIZvb6tYMCqU7yBiEOPfKLQ3V9ezqqEz8DA9V9R3oQWaowckvCpFB9IxxPfS/P8/59OkdzGKQjcIUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/koa": "^2.11.6", - "@types/ws": "^7.4.0", - "@web/parse5-utils": "^1.3.1", - "chokidar": "^3.4.3", - "clone": "^2.1.2", - "es-module-lexer": "^1.0.0", - "get-stream": "^6.0.0", - "is-stream": "^2.0.0", - "isbinaryfile": "^5.0.0", - "koa": "^2.13.0", - "koa-etag": "^4.0.0", - "koa-send": "^5.0.1", - "koa-static": "^5.0.0", - "lru-cache": "^6.0.0", - "mime-types": "^2.1.27", - "parse5": "^6.0.1", - "picomatch": "^2.2.2", - "ws": "^7.4.2" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@lit-labs/testing/node_modules/@web/parse5-utils": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-1.3.1.tgz", - "integrity": "sha512-haCgDchZrAOB9EhBJ5XqiIjBMsS/exsM5Ru7sCSyNkXVEJWskyyKuKMFk66BonnIGMPpDtqDrTUfYEis5Zi3XA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/parse5": "^6.0.1", - "parse5": "^6.0.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/@lit-labs/testing/node_modules/@web/test-runner-commands": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.6.6.tgz", - "integrity": "sha512-2DcK/+7f8QTicQpGFq/TmvKHDK/6Zald6rn1zqRlmj3pcH8fX6KHNVMU60Za9QgAKdorMBPfd8dJwWba5otzdw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@web/test-runner-core": "^0.10.29", - "mkdirp": "^1.0.4" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@lit-labs/testing/node_modules/@web/test-runner-core": { - "version": "0.10.29", - "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.10.29.tgz", - "integrity": "sha512-0/ZALYaycEWswHhpyvl5yqo0uIfCmZe8q14nGPi1dMmNiqLcHjyFGnuIiLexI224AW74ljHcHllmDlXK9FUKGA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.12.11", - "@types/babel__code-frame": "^7.0.2", - "@types/co-body": "^6.1.0", - "@types/convert-source-map": "^2.0.0", - "@types/debounce": "^1.2.0", - "@types/istanbul-lib-coverage": "^2.0.3", - "@types/istanbul-reports": "^3.0.0", - "@web/browser-logs": "^0.2.6", - "@web/dev-server-core": "^0.4.1", - "chokidar": "^3.4.3", - "cli-cursor": "^3.1.0", - "co-body": "^6.1.0", - "convert-source-map": "^2.0.0", - "debounce": "^1.2.0", - "dependency-graph": "^0.11.0", - "globby": "^11.0.1", - "ip": "^1.1.5", - "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-report": "^3.0.0", - "istanbul-reports": "^3.0.2", - "log-update": "^4.0.0", - "nanocolors": "^0.2.1", - "nanoid": "^3.1.25", - "open": "^8.0.2", - "picomatch": "^2.2.2", - "source-map": "^0.7.3" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@lit-labs/testing/node_modules/es-module-lexer": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", - "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@lit-labs/testing/node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@lit-labs/testing/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@lit-labs/testing/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/@lit-labs/testing/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" - }, "node_modules/@lit-labs/virtualizer": { "version": "2.0.14", "resolved": "https://registry.npmjs.org/@lit-labs/virtualizer/-/virtualizer-2.0.14.tgz", @@ -1486,6 +1283,20 @@ "@web/test-runner-commands": "^0.9.0" } }, + "node_modules/@open-wc/semantic-dom-diff/node_modules/@web/test-runner-commands": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.9.0.tgz", + "integrity": "sha512-zeLI6QdH0jzzJMDV5O42Pd8WLJtYqovgdt0JdytgHc0d1EpzXDsc7NTCJSImboc2NcayIsWAvvGGeRF69SMMYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@web/test-runner-core": "^0.13.0", + "mkdirp": "^1.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/@open-wc/testing": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@open-wc/testing/-/testing-4.0.0.tgz", @@ -1523,19 +1334,6 @@ "parse5": "^7.0.0" } }, - "node_modules/@parse5/tools/node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, - "license": "MIT", - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -1586,19 +1384,31 @@ "node": ">=18" } }, - "node_modules/@puppeteer/browsers/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "node_modules/@puppeteer/browsers/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" }, "engines": { - "node": ">=10" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, + "node_modules/@puppeteer/browsers/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/@rollup/plugin-node-resolve": { "version": "15.2.3", "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz", @@ -1649,9 +1459,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.1.tgz", - "integrity": "sha512-2thheikVEuU7ZxFXubPDOtspKn1x0yqaYQwvALVtEcvFhMifPADBrgRPyHV0TF3b+9BgvgjgagVyvA/UqPZHmg==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.3.tgz", + "integrity": "sha512-MmKSfaB9GX+zXl6E8z4koOr/xU63AMVleLEa64v7R0QF/ZloMs5vcD1sHgM64GXXS1csaJutG+ddtzcueI/BLg==", "cpu": [ "arm" ], @@ -1663,9 +1473,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.1.tgz", - "integrity": "sha512-t1lLYn4V9WgnIFHXy1d2Di/7gyzBWS8G5pQSXdZqfrdCGTwi1VasRMSS81DTYb+avDs/Zz4A6dzERki5oRYz1g==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.3.tgz", + "integrity": "sha512-zrt8ecH07PE3sB4jPOggweBjJMzI1JG5xI2DIsUbkA+7K+Gkjys6eV7i9pOenNSDJH3eOr/jLb/PzqtmdwDq5g==", "cpu": [ "arm64" ], @@ -1677,9 +1487,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.1.tgz", - "integrity": "sha512-AH/wNWSEEHvs6t4iJ3RANxW5ZCK3fUnmf0gyMxWCesY1AlUj8jY7GC+rQE4wd3gwmZ9XDOpL0kcFnCjtN7FXlA==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.3.tgz", + "integrity": "sha512-P0UxIOrKNBFTQaXTxOH4RxuEBVCgEA5UTNV6Yz7z9QHnUJ7eLX9reOd/NYMO3+XZO2cco19mXTxDMXxit4R/eQ==", "cpu": [ "arm64" ], @@ -1691,9 +1501,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.1.tgz", - "integrity": "sha512-dO0BIz/+5ZdkLZrVgQrDdW7m2RkrLwYTh2YMFG9IpBtlC1x1NPNSXkfczhZieOlOLEqgXOFH3wYHB7PmBtf+Bg==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.3.tgz", + "integrity": "sha512-L1M0vKGO5ASKntqtsFEjTq/fD91vAqnzeaF6sfNAy55aD+Hi2pBI5DKwCO+UNDQHWsDViJLqshxOahXyLSh3EA==", "cpu": [ "x64" ], @@ -1705,9 +1515,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.1.tgz", - "integrity": "sha512-sWWgdQ1fq+XKrlda8PsMCfut8caFwZBmhYeoehJ05FdI0YZXk6ZyUjWLrIgbR/VgiGycrFKMMgp7eJ69HOF2pQ==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.3.tgz", + "integrity": "sha512-btVgIsCjuYFKUjopPoWiDqmoUXQDiW2A4C3Mtmp5vACm7/GnyuprqIDPNczeyR5W8rTXEbkmrJux7cJmD99D2g==", "cpu": [ "arm" ], @@ -1719,9 +1529,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.1.tgz", - "integrity": "sha512-9OIiSuj5EsYQlmwhmFRA0LRO0dRRjdCVZA3hnmZe1rEwRk11Jy3ECGGq3a7RrVEZ0/pCsYWx8jG3IvcrJ6RCew==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.3.tgz", + "integrity": "sha512-zmjbSphplZlau6ZTkxd3+NMtE4UKVy7U4aVFMmHcgO5CUbw17ZP6QCgyxhzGaU/wFFdTfiojjbLG3/0p9HhAqA==", "cpu": [ "arm" ], @@ -1733,9 +1543,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.1.tgz", - "integrity": "sha512-0kuAkRK4MeIUbzQYu63NrJmfoUVicajoRAL1bpwdYIYRcs57iyIV9NLcuyDyDXE2GiZCL4uhKSYAnyWpjZkWow==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.3.tgz", + "integrity": "sha512-nSZfcZtAnQPRZmUkUQwZq2OjQciR6tEoJaZVFvLHsj0MF6QhNMg0fQ6mUOsiCUpTqxTx0/O6gX0V/nYc7LrgPw==", "cpu": [ "arm64" ], @@ -1747,9 +1557,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.1.tgz", - "integrity": "sha512-/6dYC9fZtfEY0vozpc5bx1RP4VrtEOhNQGb0HwvYNwXD1BBbwQ5cKIbUVVU7G2d5WRE90NfB922elN8ASXAJEA==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.3.tgz", + "integrity": "sha512-MnvSPGO8KJXIMGlQDYfvYS3IosFN2rKsvxRpPO2l2cum+Z3exiExLwVU+GExL96pn8IP+GdH8Tz70EpBhO0sIQ==", "cpu": [ "arm64" ], @@ -1761,9 +1571,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.1.tgz", - "integrity": "sha512-ltUWy+sHeAh3YZ91NUsV4Xg3uBXAlscQe8ZOXRCVAKLsivGuJsrkawYPUEyCV3DYa9urgJugMLn8Z3Z/6CeyRQ==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.3.tgz", + "integrity": "sha512-+W+p/9QNDr2vE2AXU0qIy0qQE75E8RTwTwgqS2G5CRQ11vzq0tbnfBd6brWhS9bCRjAjepJe2fvvkvS3dno+iw==", "cpu": [ "ppc64" ], @@ -1775,9 +1585,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.1.tgz", - "integrity": "sha512-BggMndzI7Tlv4/abrgLwa/dxNEMn2gC61DCLrTzw8LkpSKel4o+O+gtjbnkevZ18SKkeN3ihRGPuBxjaetWzWg==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.3.tgz", + "integrity": "sha512-yXH6K6KfqGXaxHrtr+Uoy+JpNlUlI46BKVyonGiaD74ravdnF9BUNC+vV+SIuB96hUMGShhKV693rF9QDfO6nQ==", "cpu": [ "riscv64" ], @@ -1789,9 +1599,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.1.tgz", - "integrity": "sha512-z/9rtlGd/OMv+gb1mNSjElasMf9yXusAxnRDrBaYB+eS1shFm6/4/xDH1SAISO5729fFKUkJ88TkGPRUh8WSAA==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.3.tgz", + "integrity": "sha512-R8cwY9wcnApN/KDYWTH4gV/ypvy9yZUHlbJvfaiXSB48JO3KpwSpjOGqO4jnGkLDSk1hgjYkTbTt6Q7uvPf8eg==", "cpu": [ "s390x" ], @@ -1803,9 +1613,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.1.tgz", - "integrity": "sha512-kXQVcWqDcDKw0S2E0TmhlTLlUgAmMVqPrJZR+KpH/1ZaZhLSl23GZpQVmawBQGVhyP5WXIsIQ/zqbDBBYmxm5w==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.3.tgz", + "integrity": "sha512-kZPbX/NOPh0vhS5sI+dR8L1bU2cSO9FgxwM8r7wHzGydzfSjLRCFAT87GR5U9scj2rhzN3JPYVC7NoBbl4FZ0g==", "cpu": [ "x64" ], @@ -1817,9 +1627,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.1.tgz", - "integrity": "sha512-CbFv/WMQsSdl+bpX6rVbzR4kAjSSBuDgCqb1l4J68UYsQNalz5wOqLGYj4ZI0thGpyX5kc+LLZ9CL+kpqDovZA==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.3.tgz", + "integrity": "sha512-S0Yq+xA1VEH66uiMNhijsWAafffydd2X5b77eLHfRmfLsRSpbiAWiRHV6DEpz6aOToPsgid7TI9rGd6zB1rhbg==", "cpu": [ "x64" ], @@ -1831,9 +1641,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.1.tgz", - "integrity": "sha512-3Q3brDgA86gHXWHklrwdREKIrIbxC0ZgU8lwpj0eEKGBQH+31uPqr0P2v11pn0tSIxHvcdOWxa4j+YvLNx1i6g==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.3.tgz", + "integrity": "sha512-9isNzeL34yquCPyerog+IMCNxKR8XYmGd0tHSV+OVx0TmE0aJOo9uw4fZfUuk2qxobP5sug6vNdZR6u7Mw7Q+Q==", "cpu": [ "arm64" ], @@ -1845,9 +1655,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.1.tgz", - "integrity": "sha512-tNg+jJcKR3Uwe4L0/wY3Ro0H+u3nrb04+tcq1GSYzBEmKLeOQF2emk1whxlzNqb6MMrQ2JOcQEpuuiPLyRcSIw==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.3.tgz", + "integrity": "sha512-nMIdKnfZfzn1Vsk+RuOvl43ONTZXoAPUUxgcU0tXooqg4YrAqzfKzVenqqk2g5efWh46/D28cKFrOzDSW28gTA==", "cpu": [ "ia32" ], @@ -1859,9 +1669,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.1.tgz", - "integrity": "sha512-xGiIH95H1zU7naUyTKEyOA/I0aexNMUdO9qRv0bLKN3qu25bBdrxZHqA3PTJ24YNN/GdMzG4xkDcd/GvjuhfLg==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.3.tgz", + "integrity": "sha512-fOvu7PCQjAj4eWDEuD8Xz5gpzFqXzGlxHZozHP4b9Jxv9APtdxL6STqztDzMLuRXEc4UpXGGhx029Xgm91QBeA==", "cpu": [ "x64" ], @@ -1873,34 +1683,72 @@ ] }, "node_modules/@shikijs/core": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.16.2.tgz", - "integrity": "sha512-XSVH5OZCvE4WLMgdoBqfPMYmGHGmCC3OgZhw0S7KcSi2XKZ+5oHGe71GFnTljgdOxvxx5WrRks6QoTLKrl1eAA==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.17.0.tgz", + "integrity": "sha512-Mkk4Mp4bNnW1kytU8I7S5PK5teNSe0iKlfqxPss4sdwnlcU8a2N62Z3te2gVmZfU9t1HF6L3wyWuM43IvEeEsg==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/vscode-textmate": "^9.2.0", - "@types/hast": "^3.0.4" + "@shikijs/engine-javascript": "1.17.0", + "@shikijs/engine-oniguruma": "1.17.0", + "@shikijs/types": "1.17.0", + "@shikijs/vscode-textmate": "^9.2.2", + "@types/hast": "^3.0.4", + "hast-util-to-html": "^9.0.2" } }, - "node_modules/@shikijs/vscode-textmate": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-9.2.0.tgz", - "integrity": "sha512-5FinaOp6Vdh/dl4/yaOTh0ZeKch+rYS8DUb38V3GMKYVkdqzxw53lViRKUYkVILRiVQT7dcPC7VvAKOR73zVtQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@sindresorhus/merge-streams": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", - "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "node_modules/@shikijs/engine-javascript": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-1.17.0.tgz", + "integrity": "sha512-EiBVlxmzJZdC2ypzn8k+vxLngbBNgHLS4RilwrFOABGRc72kUZubbD/6Chrq2RcVtD3yq1GtiiIdFMGd9BTX3Q==", "dev": true, "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "dependencies": { + "@shikijs/types": "1.17.0", + "oniguruma-to-js": "0.3.3", + "regex": "4.3.2" + } + }, + "node_modules/@shikijs/engine-oniguruma": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.17.0.tgz", + "integrity": "sha512-nsXzJGLQ0fhKmA4Gwt1cF7vC8VuZ1HSDrTRuj48h/qDeX/TzmOlTDXQ3uPtyuhyg/2rbZRzNhN8UFU4fSnQfXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "1.17.0", + "@shikijs/vscode-textmate": "^9.2.2" + } + }, + "node_modules/@shikijs/types": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.17.0.tgz", + "integrity": "sha512-Tvu2pA69lbpXB+MmgIaROP1tio8y0uYvKb5Foh3q0TJBTAJuaoa5eDEtS/0LquyveacsiVrYF4uEZILju+7Ybg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/vscode-textmate": "^9.2.2", + "@types/hast": "^3.0.4" + } + }, + "node_modules/@shikijs/vscode-textmate": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-9.2.2.tgz", + "integrity": "sha512-TMp15K+GGYrWlZM8+Lnj9EaHEFmOen0WJBrfa17hF7taDOYthuPPV0GWzfd/9iMij0akS/8Yw2ikquH7uVi/fg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@sindresorhus/merge-streams": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", + "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/@sinonjs/commons": { @@ -1946,9 +1794,9 @@ } }, "node_modules/@sinonjs/text-encoding": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", - "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.3.tgz", + "integrity": "sha512-DE427ROAphMQzU4ENbliGYrBSYPXF+TtLg9S8vzeA+OF4ZKzoDdzfL8sxuMUGS/lgRhM6j1URSk9ghf7Xo1tyA==", "dev": true, "license": "(Unlicense OR Apache-2.0)" }, @@ -2325,19 +2173,6 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/core/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@storybook/core/node_modules/ws": { "version": "8.18.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", @@ -2523,9 +2358,9 @@ "license": "MIT" }, "node_modules/@ts-graphviz/adapter": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@ts-graphviz/adapter/-/adapter-2.0.3.tgz", - "integrity": "sha512-wHSN23UdLz4vuYUBZCzq2/tfLicwStSo3cUWnzvMNxG2ngcuYauQCQInv4CI5IObq+PFol28RVrG9Ffa9BuIRA==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@ts-graphviz/adapter/-/adapter-2.0.4.tgz", + "integrity": "sha512-fQMtFNeKEUy8yvQwzVxal6nbhnLMV5hfMGxugK6RBnAQ7R7ig6uTjHep6DKt3X/PpSf2A96NDgBLwfcv3OEE5w==", "dev": true, "funding": [ { @@ -2539,16 +2374,16 @@ ], "license": "MIT", "dependencies": { - "@ts-graphviz/common": "^2.1.2" + "@ts-graphviz/common": "^2.1.3" }, "engines": { "node": ">=18" } }, "node_modules/@ts-graphviz/ast": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@ts-graphviz/ast/-/ast-2.0.3.tgz", - "integrity": "sha512-NhOgJdOHGSn5h5ydsFreLIKFBwQ59drzZ6y0B98+KeEMqduv5hXxcQoDabw8yzeNe9B92AfR5OpUYthcdAsYgw==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@ts-graphviz/ast/-/ast-2.0.4.tgz", + "integrity": "sha512-qCzhBW3fgLW1eMnbRnm4brvoXciOlJnQTlYPNqunz7TpUNolPst/bFcb53EUCBk2oo09AIX3fbRvdpJUvD7osQ==", "dev": true, "funding": [ { @@ -2562,16 +2397,16 @@ ], "license": "MIT", "dependencies": { - "@ts-graphviz/common": "^2.1.2" + "@ts-graphviz/common": "^2.1.3" }, "engines": { "node": ">=18" } }, "node_modules/@ts-graphviz/common": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ts-graphviz/common/-/common-2.1.2.tgz", - "integrity": "sha512-Wyh5fOZNYyNP1mymbcHg/9atWR33NhHWIDrNa4hfbel3v340YQ+q+LMwAuIPuPt1qXINvOEhkowO5dvJWqfnPA==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@ts-graphviz/common/-/common-2.1.3.tgz", + "integrity": "sha512-cGqlvgiAkHwlkItj6hgzcVTFAP0k5id7loHE7CnSEfGfCKBoDyG/KHhKJo5WdauZmqb82xKDheBhS73ZxZOqmg==", "dev": true, "funding": [ { @@ -2589,9 +2424,9 @@ } }, "node_modules/@ts-graphviz/core": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@ts-graphviz/core/-/core-2.0.3.tgz", - "integrity": "sha512-EZ+XlSwjdLtscoBOnA/Ba6QBrmoxAR73tJFjnWxaJQsZxWBQv6bLUrDgZUdXkXRAOSkRHn0uXY6Wq/3SsV2WtQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@ts-graphviz/core/-/core-2.0.4.tgz", + "integrity": "sha512-NYUv1h9EDHlHDA5iYJBvSdrScvrI/u8CKg0XDBFf3EU1qX9OTKN37AECoxFWdMl4X7cwmFuH5ujJ91PN7CTKZw==", "dev": true, "funding": [ { @@ -2605,8 +2440,8 @@ ], "license": "MIT", "dependencies": { - "@ts-graphviz/ast": "^2.0.3", - "@ts-graphviz/common": "^2.1.2" + "@ts-graphviz/ast": "^2.0.4", + "@ts-graphviz/common": "^2.1.3" }, "engines": { "node": ">=18" @@ -2641,9 +2476,9 @@ } }, "node_modules/@types/chai": { - "version": "4.3.16", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.16.tgz", - "integrity": "sha512-PatH4iOdyh3MyWtmHVFXLWCCIhUbopaltqddG9BzB+gMIzee2MJrvd+jouii9Z3wzQJruGWAm7WOMjgfG8hQlQ==", + "version": "4.3.19", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.19.tgz", + "integrity": "sha512-2hHHvQBVE2FiSK4eN0Br6snX9MtolHaTo/batnLjlGRhoQzlCL61iVpxoqO7SfFyOw+P/pwv+0zNHzKoGWz9Cw==", "dev": true, "license": "MIT" }, @@ -2868,6 +2703,16 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, "node_modules/@types/mdx": { "version": "2.0.13", "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", @@ -2890,13 +2735,13 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "18.19.49", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.49.tgz", - "integrity": "sha512-ALCeIR6n0nQ7j0FUF1ycOhrp6+XutJWqEu/vtdEqXFUQwkBfgUA5cEg3ZNmjWGF/ZYA/FcF9QMkL55Ar0O6UrA==", + "version": "22.5.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.4.tgz", + "integrity": "sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.19.2" } }, "node_modules/@types/parse5": { @@ -3003,9 +2848,9 @@ "license": "MIT" }, "node_modules/@types/unist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", - "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", "dev": true, "license": "MIT" }, @@ -3090,6 +2935,24 @@ "balanced-match": "^1.0.0" } }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/@typescript-eslint/typescript-estree/node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -3127,18 +2990,12 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "node_modules/@typescript-eslint/typescript-estree/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } + "license": "MIT" }, "node_modules/@typescript-eslint/typescript-estree/node_modules/slash": { "version": "3.0.0", @@ -3176,70 +3033,70 @@ "license": "ISC" }, "node_modules/@vscode/web-custom-data": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/@vscode/web-custom-data/-/web-custom-data-0.4.11.tgz", - "integrity": "sha512-cJuycq8j3mSBwTvUS5fCjUG/VV0n1ht/iJF6n1nR3BbZ51ICK/51pTtYqFNZQmYuH/PxzMvqzhy1H15Vz6l0UQ==", + "version": "0.4.12", + "resolved": "https://registry.npmjs.org/@vscode/web-custom-data/-/web-custom-data-0.4.12.tgz", + "integrity": "sha512-bCemuvwCC84wJQbJoaPou86sjz9DUvZgGa6sAWQwzw7oIELD7z+WnUj2Rdsu8/8XPhKLcg3IswQ2+Pm3OMinIg==", "dev": true, "license": "MIT" }, "node_modules/@vue/compiler-core": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.38.tgz", - "integrity": "sha512-8IQOTCWnLFqfHzOGm9+P8OPSEDukgg3Huc92qSG49if/xI2SAwLHQO2qaPQbjCWPBcQoO1WYfXfTACUrWV3c5A==", + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.4.tgz", + "integrity": "sha512-oNwn+BAt3n9dK9uAYvI+XGlutwuTq/wfj4xCBaZCqwwVIGtD7D6ViihEbyYZrDHIHTDE3Q6oL3/hqmAyFEy9DQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.24.7", - "@vue/shared": "3.4.38", + "@babel/parser": "^7.25.3", + "@vue/shared": "3.5.4", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-dom": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.38.tgz", - "integrity": "sha512-Osc/c7ABsHXTsETLgykcOwIxFktHfGSUDkb05V61rocEfsFDcjDLH/IHJSNJP+/Sv9KeN2Lx1V6McZzlSb9EhQ==", + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.4.tgz", + "integrity": "sha512-yP9RRs4BDLOLfldn6ah+AGCNovGjMbL9uHvhDHf5wan4dAHLnFGOkqtfE7PPe4HTXIqE7l/NILdYw53bo1C8jw==", "dev": true, "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.4.38", - "@vue/shared": "3.4.38" + "@vue/compiler-core": "3.5.4", + "@vue/shared": "3.5.4" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.38.tgz", - "integrity": "sha512-s5QfZ+9PzPh3T5H4hsQDJtI8x7zdJaew/dCGgqZ2630XdzaZ3AD8xGZfBqpT8oaD/p2eedd+pL8tD5vvt5ZYJQ==", + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.4.tgz", + "integrity": "sha512-P+yiPhL+NYH7m0ZgCq7AQR2q7OIE+mpAEgtkqEeH9oHSdIRvUO+4X6MPvblJIWcoe4YC5a2Gdf/RsoyP8FFiPQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.24.7", - "@vue/compiler-core": "3.4.38", - "@vue/compiler-dom": "3.4.38", - "@vue/compiler-ssr": "3.4.38", - "@vue/shared": "3.4.38", + "@babel/parser": "^7.25.3", + "@vue/compiler-core": "3.5.4", + "@vue/compiler-dom": "3.5.4", + "@vue/compiler-ssr": "3.5.4", + "@vue/shared": "3.5.4", "estree-walker": "^2.0.2", - "magic-string": "^0.30.10", - "postcss": "^8.4.40", + "magic-string": "^0.30.11", + "postcss": "^8.4.44", "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.38.tgz", - "integrity": "sha512-YXznKFQ8dxYpAz9zLuVvfcXhc31FSPFDcqr0kyujbOwNhlmaNvL2QfIy+RZeJgSn5Fk54CWoEUeW+NVBAogGaw==", + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.4.tgz", + "integrity": "sha512-acESdTXsxPnYr2C4Blv0ggx5zIFMgOzZmYU2UgvIff9POdRGbRNBHRyzHAnizcItvpgerSKQbllUc9USp3V7eg==", "dev": true, "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.4.38", - "@vue/shared": "3.4.38" + "@vue/compiler-dom": "3.5.4", + "@vue/shared": "3.5.4" } }, "node_modules/@vue/shared": { - "version": "3.4.38", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.38.tgz", - "integrity": "sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw==", + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.4.tgz", + "integrity": "sha512-L2MCDD8l7yC62Te5UUyPVpmexhL9ipVnYRw9CsWfm/BGRL5FwDX4a25bcJ/OJSD3+Hx+k/a8LDKcG2AFdJV3BA==", "dev": true, "license": "MIT" }, @@ -3269,19 +3126,6 @@ "node": ">=10.0.0" } }, - "node_modules/@web/config-loader/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/@web/dev-server": { "version": "0.4.6", "resolved": "https://registry.npmjs.org/@web/dev-server/-/dev-server-0.4.6.tgz", @@ -3349,6 +3193,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@web/dev-server-core/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true, + "license": "MIT" + }, "node_modules/@web/dev-server-rollup": { "version": "0.6.4", "resolved": "https://registry.npmjs.org/@web/dev-server-rollup/-/dev-server-rollup-0.6.4.tgz", @@ -3367,6 +3218,13 @@ "node": ">=18.0.0" } }, + "node_modules/@web/dev-server-rollup/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true, + "license": "MIT" + }, "node_modules/@web/dev-server/node_modules/@web/config-loader": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/@web/config-loader/-/config-loader-0.3.2.tgz", @@ -3391,6 +3249,13 @@ "node": ">=18.0.0" } }, + "node_modules/@web/parse5-utils/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true, + "license": "MIT" + }, "node_modules/@web/test-runner": { "version": "0.19.0", "resolved": "https://registry.npmjs.org/@web/test-runner/-/test-runner-0.19.0.tgz", @@ -3441,23 +3306,80 @@ } }, "node_modules/@web/test-runner-commands": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.9.0.tgz", - "integrity": "sha512-zeLI6QdH0jzzJMDV5O42Pd8WLJtYqovgdt0JdytgHc0d1EpzXDsc7NTCJSImboc2NcayIsWAvvGGeRF69SMMYg==", + "version": "0.6.6", + "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.6.6.tgz", + "integrity": "sha512-2DcK/+7f8QTicQpGFq/TmvKHDK/6Zald6rn1zqRlmj3pcH8fX6KHNVMU60Za9QgAKdorMBPfd8dJwWba5otzdw==", "dev": true, "license": "MIT", "dependencies": { - "@web/test-runner-core": "^0.13.0", + "@web/test-runner-core": "^0.10.29", "mkdirp": "^1.0.4" }, "engines": { - "node": ">=18.0.0" + "node": ">=12.0.0" } }, - "node_modules/@web/test-runner-core": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.13.3.tgz", - "integrity": "sha512-ilDqF/v2sj0sD69FNSIDT7uw4M1yTVedLBt32/lXy3MMi6suCM7m/ZlhsBy8PXhf879WMvzBOl/vhJBpEMB9vA==", + "node_modules/@web/test-runner-commands/node_modules/@web/browser-logs": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@web/browser-logs/-/browser-logs-0.2.6.tgz", + "integrity": "sha512-CNjNVhd4FplRY8PPWIAt02vAowJAVcOoTNrR/NNb/o9pka7yI9qdjpWrWhEbPr2pOXonWb52AeAgdK66B8ZH7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "errorstacks": "^2.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@web/test-runner-commands/node_modules/@web/dev-server-core": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@web/dev-server-core/-/dev-server-core-0.4.1.tgz", + "integrity": "sha512-KdYwejXZwIZvb6tYMCqU7yBiEOPfKLQ3V9ezqqEz8DA9V9R3oQWaowckvCpFB9IxxPfS/P8/59OkdzGKQjcIUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/koa": "^2.11.6", + "@types/ws": "^7.4.0", + "@web/parse5-utils": "^1.3.1", + "chokidar": "^3.4.3", + "clone": "^2.1.2", + "es-module-lexer": "^1.0.0", + "get-stream": "^6.0.0", + "is-stream": "^2.0.0", + "isbinaryfile": "^5.0.0", + "koa": "^2.13.0", + "koa-etag": "^4.0.0", + "koa-send": "^5.0.1", + "koa-static": "^5.0.0", + "lru-cache": "^6.0.0", + "mime-types": "^2.1.27", + "parse5": "^6.0.1", + "picomatch": "^2.2.2", + "ws": "^7.4.2" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@web/test-runner-commands/node_modules/@web/parse5-utils": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@web/parse5-utils/-/parse5-utils-1.3.1.tgz", + "integrity": "sha512-haCgDchZrAOB9EhBJ5XqiIjBMsS/exsM5Ru7sCSyNkXVEJWskyyKuKMFk66BonnIGMPpDtqDrTUfYEis5Zi3XA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/parse5": "^6.0.1", + "parse5": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/@web/test-runner-commands/node_modules/@web/test-runner-core": { + "version": "0.10.29", + "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.10.29.tgz", + "integrity": "sha512-0/ZALYaycEWswHhpyvl5yqo0uIfCmZe8q14nGPi1dMmNiqLcHjyFGnuIiLexI224AW74ljHcHllmDlXK9FUKGA==", "dev": true, "license": "MIT", "dependencies": { @@ -3468,8 +3390,8 @@ "@types/debounce": "^1.2.0", "@types/istanbul-lib-coverage": "^2.0.3", "@types/istanbul-reports": "^3.0.0", - "@web/browser-logs": "^0.4.0", - "@web/dev-server-core": "^0.7.2", + "@web/browser-logs": "^0.2.6", + "@web/dev-server-core": "^0.4.1", "chokidar": "^3.4.3", "cli-cursor": "^3.1.0", "co-body": "^6.1.0", @@ -3477,9 +3399,9 @@ "debounce": "^1.2.0", "dependency-graph": "^0.11.0", "globby": "^11.0.1", - "internal-ip": "^6.2.0", + "ip": "^1.1.5", "istanbul-lib-coverage": "^3.0.0", - "istanbul-lib-report": "^3.0.1", + "istanbul-lib-report": "^3.0.0", "istanbul-reports": "^3.0.2", "log-update": "^4.0.0", "nanocolors": "^0.2.1", @@ -3489,10 +3411,17 @@ "source-map": "^0.7.3" }, "engines": { - "node": ">=18.0.0" + "node": ">=12.0.0" } }, - "node_modules/@web/test-runner-core/node_modules/globby": { + "node_modules/@web/test-runner-commands/node_modules/es-module-lexer": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@web/test-runner-commands/node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", @@ -3513,7 +3442,27 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@web/test-runner-core/node_modules/slash": { + "node_modules/@web/test-runner-commands/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@web/test-runner-commands/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@web/test-runner-commands/node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", @@ -3523,29 +3472,98 @@ "node": ">=8" } }, - "node_modules/@web/test-runner-coverage-v8": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/@web/test-runner-coverage-v8/-/test-runner-coverage-v8-0.8.0.tgz", - "integrity": "sha512-PskiucYpjUtgNfR2zF2AWqWwjXL7H3WW/SnCAYmzUrtob7X9o/+BjdyZ4wKbOxWWSbJO4lEdGIDLu+8X2Xw+lA==", + "node_modules/@web/test-runner-core": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@web/test-runner-core/-/test-runner-core-0.13.3.tgz", + "integrity": "sha512-ilDqF/v2sj0sD69FNSIDT7uw4M1yTVedLBt32/lXy3MMi6suCM7m/ZlhsBy8PXhf879WMvzBOl/vhJBpEMB9vA==", "dev": true, "license": "MIT", "dependencies": { - "@web/test-runner-core": "^0.13.0", - "istanbul-lib-coverage": "^3.0.0", - "lru-cache": "^8.0.4", - "picomatch": "^2.2.2", - "v8-to-istanbul": "^9.0.1" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/@web/test-runner-mocha": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@web/test-runner-mocha/-/test-runner-mocha-0.9.0.tgz", - "integrity": "sha512-ZL9F6FXd0DBQvo/h/+mSfzFTSRVxzV9st/AHhpgABtUtV/AIpVE9to6+xdkpu6827kwjezdpuadPfg+PlrBWqQ==", - "dev": true, - "license": "MIT", + "@babel/code-frame": "^7.12.11", + "@types/babel__code-frame": "^7.0.2", + "@types/co-body": "^6.1.0", + "@types/convert-source-map": "^2.0.0", + "@types/debounce": "^1.2.0", + "@types/istanbul-lib-coverage": "^2.0.3", + "@types/istanbul-reports": "^3.0.0", + "@web/browser-logs": "^0.4.0", + "@web/dev-server-core": "^0.7.2", + "chokidar": "^3.4.3", + "cli-cursor": "^3.1.0", + "co-body": "^6.1.0", + "convert-source-map": "^2.0.0", + "debounce": "^1.2.0", + "dependency-graph": "^0.11.0", + "globby": "^11.0.1", + "internal-ip": "^6.2.0", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-report": "^3.0.1", + "istanbul-reports": "^3.0.2", + "log-update": "^4.0.0", + "nanocolors": "^0.2.1", + "nanoid": "^3.1.25", + "open": "^8.0.2", + "picomatch": "^2.2.2", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@web/test-runner-core/node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@web/test-runner-core/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@web/test-runner-coverage-v8": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@web/test-runner-coverage-v8/-/test-runner-coverage-v8-0.8.0.tgz", + "integrity": "sha512-PskiucYpjUtgNfR2zF2AWqWwjXL7H3WW/SnCAYmzUrtob7X9o/+BjdyZ4wKbOxWWSbJO4lEdGIDLu+8X2Xw+lA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@web/test-runner-core": "^0.13.0", + "istanbul-lib-coverage": "^3.0.0", + "lru-cache": "^8.0.4", + "picomatch": "^2.2.2", + "v8-to-istanbul": "^9.0.1" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@web/test-runner-mocha": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@web/test-runner-mocha/-/test-runner-mocha-0.9.0.tgz", + "integrity": "sha512-ZL9F6FXd0DBQvo/h/+mSfzFTSRVxzV9st/AHhpgABtUtV/AIpVE9to6+xdkpu6827kwjezdpuadPfg+PlrBWqQ==", + "dev": true, + "license": "MIT", "dependencies": { "@web/test-runner-core": "^0.13.0" }, @@ -3578,6 +3596,20 @@ "node": ">=18.0.0" } }, + "node_modules/@web/test-runner/node_modules/@web/test-runner-commands": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@web/test-runner-commands/-/test-runner-commands-0.9.0.tgz", + "integrity": "sha512-zeLI6QdH0jzzJMDV5O42Pd8WLJtYqovgdt0JdytgHc0d1EpzXDsc7NTCJSImboc2NcayIsWAvvGGeRF69SMMYg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@web/test-runner-core": "^0.13.0", + "mkdirp": "^1.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/@web/test-runner/node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -3656,17 +3688,42 @@ "node": ">= 14" } }, + "node_modules/agent-base/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/agent-base/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/ajv": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", - "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -3922,9 +3979,9 @@ } }, "node_modules/axe-core": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.9.1.tgz", - "integrity": "sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.0.tgz", + "integrity": "sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==", "dev": true, "license": "MPL-2.0", "engines": { @@ -3954,9 +4011,9 @@ "optional": true }, "node_modules/bare-fs": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.3.tgz", - "integrity": "sha512-7RYKL+vZVCyAsMLi5SPu7QGauGGT8avnP/HO571ndEuV4MYdGXvLhtW67FuLPeEI8EiIY7zbbRR9x7x7HU0kgw==", + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.4.tgz", + "integrity": "sha512-7YyxitZEq0ey5loOF5gdo1fZQFF7290GziT+VbAJ+JbYTJYaPZwuEz2r/Nq23sm4fjyTgUf2uJI2gkT3xAuSYA==", "dev": true, "license": "Apache-2.0", "optional": true, @@ -3967,9 +4024,9 @@ } }, "node_modules/bare-os": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.4.2.tgz", - "integrity": "sha512-HZoJwzC+rZ9lqEemTMiO0luOePoGYNBgsLLgegKR/cljiJvcDNhDZQkzC+NC5Oh0aHbdBNSOHpghwMuB5tqhjg==", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.4.3.tgz", + "integrity": "sha512-FjkNiU3AwTQNQkcxFOmDcCfoN1LjjtU+ofGJh5DymZZLTqdw2i/CzV7G0h3snvh6G8jrWtdmNSgZPH4L2VOAsQ==", "dev": true, "license": "Apache-2.0", "optional": true @@ -3986,15 +4043,15 @@ } }, "node_modules/bare-stream": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.2.1.tgz", - "integrity": "sha512-YTB47kHwBW9zSG8LD77MIBAAQXjU2WjAkMHeeb7hUplVs6+IoM5I7uEVQNPMB7lj9r8I76UMdoMkGnCodHOLqg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.3.0.tgz", + "integrity": "sha512-pVRWciewGUeCyKEuRxwv06M079r+fRjAQjBEK2P6OYGrO43O+Z0LrPZZEjlc4mB6C2RpZ9AxJ1s7NLEtOHO6eA==", "dev": true, "license": "Apache-2.0", "optional": true, "dependencies": { "b4a": "^1.6.6", - "streamx": "^2.18.0" + "streamx": "^2.20.0" } }, "node_modules/base64-js": { @@ -4095,23 +4152,6 @@ "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -4523,9 +4563,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001655", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001655.tgz", - "integrity": "sha512-jRGVy3iSGO5Uutn2owlb5gR6qsGngTw9ZTb4ali9f3glshcNmJ2noam4Mo9zia5P9Dk3jNNydy7vQjuE5dQmfg==", + "version": "1.0.30001660", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001660.tgz", + "integrity": "sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==", "dev": true, "funding": [ { @@ -4543,6 +4583,17 @@ ], "license": "CC-BY-4.0" }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/cem-plugin-expanded-types": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/cem-plugin-expanded-types/-/cem-plugin-expanded-types-1.3.2.tgz", @@ -4647,6 +4698,28 @@ "node": ">=8" } }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/chokidar": { "version": "3.5.2", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz", @@ -4919,6 +4992,17 @@ "dev": true, "license": "MIT" }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/command-line-args": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.1.2.tgz", @@ -4936,15 +5020,15 @@ } }, "node_modules/command-line-usage": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.2.tgz", - "integrity": "sha512-MwNFB8nxi3IVnzir+nkSIbDTU4H6ne26zqicO2eTt1wPrvdOAphPhnYqWOjxXKWYLNYDu4Z/r2ESEziEqKuOVg==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.3.tgz", + "integrity": "sha512-PqMLy5+YGwhMh1wS04mVG44oqDsgyLRSKJBdOo1bnYhMKBW65gZF1dRp2OZRhiTjgUHljy99qkO7bsctLaw35Q==", "dev": true, "license": "MIT", "dependencies": { "array-back": "^6.2.2", "chalk-template": "^0.4.0", - "table-layout": "^3.0.2", + "table-layout": "^4.1.0", "typical": "^7.1.1" }, "engines": { @@ -5119,23 +5203,6 @@ "node": ">=0.8" } }, - "node_modules/connect/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/connect/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -5325,13 +5392,13 @@ "license": "BSD-3-Clause" }, "node_modules/data-uri-to-buffer": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", - "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", "dev": true, "license": "MIT", "engines": { - "node": ">= 14" + "node": ">= 12" } }, "node_modules/debounce": { @@ -5342,21 +5409,13 @@ "license": "MIT" }, "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "license": "MIT", "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "ms": "2.0.0" } }, "node_modules/deep-equal": { @@ -5684,6 +5743,20 @@ "node": ">= 0.8.0" } }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "dev": true, + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/devtools-protocol": { "version": "0.0.1330662", "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1330662.tgz", @@ -5834,9 +5907,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.11", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.11.tgz", - "integrity": "sha512-R1CccCDYqndR25CaXFd6hp/u9RaaMcftMkphmvuepXr5b1vfLkRml6aWVeBhXJ7rbevHkKEMJtz8XqPf7ffmew==", + "version": "1.5.20", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.20.tgz", + "integrity": "sha512-74mdl6Fs1HHzK9SUX4CKFxAtAe3nUns48y79TskHNAG6fGOlLfyKA4j855x+0b5u8rWJIrlaG9tcTPstMlwjIw==", "dev": true, "license": "ISC" }, @@ -5848,9 +5921,9 @@ "license": "MIT" }, "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "dev": true, "license": "MIT", "engines": { @@ -5903,6 +5976,31 @@ "xmlhttprequest-ssl": "~2.0.0" } }, + "node_modules/engine.io-client/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/engine.io-client/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/engine.io-client/node_modules/ws": { "version": "8.17.1", "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", @@ -5926,9 +6024,9 @@ } }, "node_modules/engine.io-parser": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.2.tgz", - "integrity": "sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", + "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", "dev": true, "license": "MIT", "engines": { @@ -5945,6 +6043,31 @@ "node": ">= 0.6" } }, + "node_modules/engine.io/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/engine.io/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/engine.io/node_modules/ws": { "version": "8.17.1", "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", @@ -6116,10 +6239,35 @@ "esbuild": ">=0.12 <1" } }, + "node_modules/esbuild-register/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/esbuild-register/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, "license": "MIT", "engines": { @@ -6314,26 +6462,6 @@ "node": ">= 0.10.0" } }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, "node_modules/express/node_modules/finalhandler": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", @@ -6367,9 +6495,9 @@ } }, "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, "license": "MIT" }, @@ -6408,13 +6536,6 @@ "node": ">= 0.8" } }, - "node_modules/express/node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, "node_modules/express/node_modules/serve-static": { "version": "1.16.2", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", @@ -6452,6 +6573,24 @@ "@types/yauzl": "^2.9.1" } }, + "node_modules/extract-zip/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/extract-zip/node_modules/get-stream": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", @@ -6468,6 +6607,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/extract-zip/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -6506,6 +6652,13 @@ "node": ">=8.6.0" } }, + "node_modules/fast-uri": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", + "integrity": "sha512-MWipKbbYiYI0UC7cl8m/i/IWTqfC8YXsqjzybjddLsFjStroQzsHXkc73JutMvBiXmOvapk+axIl79ig5t55Bw==", + "dev": true, + "license": "MIT" + }, "node_modules/fastest-levenshtein": { "version": "1.0.16", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", @@ -6561,9 +6714,9 @@ } }, "node_modules/file-entry-cache": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.0.0.tgz", - "integrity": "sha512-6MgEugi8p2tiUhqO7GnPsmbCCzj0YRCwwaTbpGRyKZesjRSzkqkAE9fPp7V2yMs5hwfgbQLgdvSSkGNg1s5Uvw==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.1.0.tgz", + "integrity": "sha512-/pqPFG+FdxWQj+/WSuzXSDaNzxgTLr/OrR1QuqfEZzDakpdYE70PwUxL7BPUa8hpjbvY1+qvCl8k+8Tq34xJgg==", "dev": true, "license": "MIT", "dependencies": { @@ -6631,23 +6784,16 @@ "node": ">= 0.8" } }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "node_modules/finalhandler/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "dev": true, "license": "MIT", - "dependencies": { - "ms": "2.0.0" + "engines": { + "node": ">= 0.8" } }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, "node_modules/finalhandler/node_modules/on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -6748,9 +6894,9 @@ "license": "ISC" }, "node_modules/follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", "dev": true, "funding": [ { @@ -6779,9 +6925,9 @@ } }, "node_modules/foreground-child": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.2.1.tgz", - "integrity": "sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", "dev": true, "license": "ISC", "dependencies": { @@ -6995,6 +7141,41 @@ "node": ">= 14" } }, + "node_modules/get-uri/node_modules/data-uri-to-buffer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/get-uri/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/get-uri/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/github-slugger": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", @@ -7248,6 +7429,30 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/hast-util-to-html": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.2.tgz", + "integrity": "sha512-RP5wNpj5nm1Z8cloDv4Sl4RS8jH5HYa0v93YB6Wb4poEzgMo/dAAL0KcT4974dCjcNG5pkLqTImeFHHCwwfY3g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^3.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/hast-util-to-string": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-3.0.0.tgz", @@ -7262,6 +7467,20 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -7282,6 +7501,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/http-assert": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/http-assert/-/http-assert-1.5.0.tgz", @@ -7379,6 +7609,31 @@ "node": ">= 14" } }, + "node_modules/http-proxy-agent/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/http-proxy-agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/https-proxy-agent": { "version": "7.0.5", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", @@ -7393,6 +7648,31 @@ "node": ">= 14" } }, + "node_modules/https-proxy-agent/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -7710,9 +7990,9 @@ } }, "node_modules/is-core-module": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.14.0.tgz", - "integrity": "sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==", + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", "dev": true, "license": "MIT", "dependencies": { @@ -8019,19 +8299,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/istanbul-lib-report/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/istanbul-lib-report/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -8290,6 +8557,24 @@ "node": ">= 8" } }, + "node_modules/koa-send/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/koa-send/node_modules/depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -8317,6 +8602,13 @@ "node": ">= 0.6" } }, + "node_modules/koa-send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/koa-send/node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -8351,6 +8643,41 @@ "ms": "^2.1.1" } }, + "node_modules/koa-static/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/koa/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/koa/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/koa/node_modules/http-errors": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", @@ -8378,6 +8705,13 @@ "node": ">= 0.6" } }, + "node_modules/koa/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/koa/node_modules/statuses": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", @@ -8409,23 +8743,6 @@ "marky": "^1.2.2" } }, - "node_modules/lighthouse-logger/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/lighthouse-logger/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, "node_modules/lilconfig": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", @@ -8503,6 +8820,24 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/lint-staged/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/lint-staged/node_modules/execa": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", @@ -8576,6 +8911,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lint-staged/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/lint-staged/node_modules/npm-run-path": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", @@ -9244,6 +9586,24 @@ "node": ">= 10" } }, + "node_modules/madge/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/madge/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -9254,6 +9614,13 @@ "node": ">=8" } }, + "node_modules/madge/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/madge/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -9293,6 +9660,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, "node_modules/make-synchronized": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/make-synchronized/-/make-synchronized-0.2.9.tgz", @@ -9359,6 +9736,28 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", + "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/mdn-data": { "version": "2.0.30", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", @@ -9443,6 +9842,100 @@ "node": ">= 0.6" } }, + "node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", + "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, "node_modules/micromatch": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", @@ -9603,9 +10096,9 @@ } }, "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true, "license": "MIT" }, @@ -9656,9 +10149,9 @@ } }, "node_modules/nise": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/nise/-/nise-6.0.0.tgz", - "integrity": "sha512-K8ePqo9BFvN31HXwEtTNGzgrPpmvgciDsFz8aztFjt4LqKO/JeFD8tBOeuDiCMXrIl/m1YvfH8auSpxfaD09wg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/nise/-/nise-6.0.1.tgz", + "integrity": "sha512-DAyWGPQEuJVlL2eqKw6gdZKT+E/jo/ZrjEUDAslJLluCz81nWy+KSYybNp3KFm887Yvp7hv12jSM82ld8BmLxg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -9666,24 +10159,56 @@ "@sinonjs/fake-timers": "^11.2.2", "@sinonjs/text-encoding": "^0.7.2", "just-extend": "^6.2.0", - "path-to-regexp": "^6.2.1" + "path-to-regexp": "^8.1.0" } }, "node_modules/nise/node_modules/path-to-regexp": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", - "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.1.0.tgz", + "integrity": "sha512-Bqn3vc8CMHty6zuD+tG23s6v2kwxslHEhTj4eYaVKGIEB+YX/2wd0/rgXLFD9G9id9KCtbVy/3ZgmvZjpa0UdQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=16" + } }, - "node_modules/node-fetch/node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], "license": "MIT", "engines": { - "node": ">= 12" + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" } }, "node_modules/node-releases": { @@ -9808,7 +10333,17 @@ "node": ">=6" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/oniguruma-to-js": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/oniguruma-to-js/-/oniguruma-to-js-0.3.3.tgz", + "integrity": "sha512-m90/WEhgs8g4BxG37+Nu3YrMfJDs2YXtYtIllhsEPR+wP3+K4EZk6dDUvy2v2K4MNFDDOYKL4/yqYPXDqyozTQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" } }, "node_modules/only": { @@ -10036,6 +10571,31 @@ "node": ">= 14" } }, + "node_modules/pac-proxy-agent/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/pac-proxy-agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/pac-resolver": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", @@ -10100,11 +10660,17 @@ } }, "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } }, "node_modules/parseurl": { "version": "1.3.3", @@ -10205,9 +10771,9 @@ "license": "MIT" }, "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", "dev": true, "license": "ISC" }, @@ -10358,6 +10924,13 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/portfinder/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/portscanner": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.2.0.tgz", @@ -10614,6 +11187,17 @@ "node": ">=0.4.0" } }, + "node_modules/property-information": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -10648,6 +11232,24 @@ "node": ">= 14" } }, + "node_modules/proxy-agent/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/proxy-agent/node_modules/lru-cache": { "version": "7.18.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", @@ -10658,6 +11260,13 @@ "node": ">=12" } }, + "node_modules/proxy-agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", @@ -10666,9 +11275,9 @@ "license": "MIT" }, "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", "dev": true, "license": "MIT", "dependencies": { @@ -10714,6 +11323,31 @@ "node": ">=18" } }, + "node_modules/puppeteer-core/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/puppeteer-core/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/puppeteer-core/node_modules/ws": { "version": "8.18.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", @@ -10942,6 +11576,13 @@ "dev": true, "license": "MIT" }, + "node_modules/regex": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/regex/-/regex-4.3.2.tgz", + "integrity": "sha512-kK/AA3A9K6q2js89+VMymcboLOlF5lZRCYJv3gzszXFHBr6kO6qLGzbm+UIugBEV8SMMKCTR59txoY6ctRHYVw==", + "dev": true, + "license": "MIT" + }, "node_modules/rehype-external-links": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/rehype-external-links/-/rehype-external-links-3.0.0.tgz", @@ -11149,23 +11790,6 @@ "node": ">= 0.8.0" } }, - "node_modules/resp-modifier/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/resp-modifier/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, "node_modules/restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", @@ -11262,9 +11886,9 @@ } }, "node_modules/rollup": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.1.tgz", - "integrity": "sha512-ZnYyKvscThhgd3M5+Qt3pmhO4jIRR5RGzaSovB6Q7rGNrK5cUncrtLmcTTJVSdcKXyZjW8X8MB0JMSuH9bcAJg==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.21.3.tgz", + "integrity": "sha512-7sqRtBNnEbcBtMeRVc6VRsJMmpI+JU1z9VTvW8D4gXIYQFz0aLcsE6rRkyghZkLfEgUZgVvOG7A5CVz/VW5GIA==", "dev": true, "license": "MIT", "dependencies": { @@ -11278,22 +11902,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.21.1", - "@rollup/rollup-android-arm64": "4.21.1", - "@rollup/rollup-darwin-arm64": "4.21.1", - "@rollup/rollup-darwin-x64": "4.21.1", - "@rollup/rollup-linux-arm-gnueabihf": "4.21.1", - "@rollup/rollup-linux-arm-musleabihf": "4.21.1", - "@rollup/rollup-linux-arm64-gnu": "4.21.1", - "@rollup/rollup-linux-arm64-musl": "4.21.1", - "@rollup/rollup-linux-powerpc64le-gnu": "4.21.1", - "@rollup/rollup-linux-riscv64-gnu": "4.21.1", - "@rollup/rollup-linux-s390x-gnu": "4.21.1", - "@rollup/rollup-linux-x64-gnu": "4.21.1", - "@rollup/rollup-linux-x64-musl": "4.21.1", - "@rollup/rollup-win32-arm64-msvc": "4.21.1", - "@rollup/rollup-win32-ia32-msvc": "4.21.1", - "@rollup/rollup-win32-x64-msvc": "4.21.1", + "@rollup/rollup-android-arm-eabi": "4.21.3", + "@rollup/rollup-android-arm64": "4.21.3", + "@rollup/rollup-darwin-arm64": "4.21.3", + "@rollup/rollup-darwin-x64": "4.21.3", + "@rollup/rollup-linux-arm-gnueabihf": "4.21.3", + "@rollup/rollup-linux-arm-musleabihf": "4.21.3", + "@rollup/rollup-linux-arm64-gnu": "4.21.3", + "@rollup/rollup-linux-arm64-musl": "4.21.3", + "@rollup/rollup-linux-powerpc64le-gnu": "4.21.3", + "@rollup/rollup-linux-riscv64-gnu": "4.21.3", + "@rollup/rollup-linux-s390x-gnu": "4.21.3", + "@rollup/rollup-linux-x64-gnu": "4.21.3", + "@rollup/rollup-linux-x64-musl": "4.21.3", + "@rollup/rollup-win32-arm64-msvc": "4.21.3", + "@rollup/rollup-win32-ia32-msvc": "4.21.3", + "@rollup/rollup-win32-x64-msvc": "4.21.3", "fsevents": "~2.3.2" } }, @@ -11834,13 +12458,16 @@ } }, "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/send": { @@ -11868,16 +12495,6 @@ "node": ">= 0.8.0" } }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, "node_modules/send/node_modules/depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -11895,6 +12512,16 @@ "dev": true, "license": "MIT" }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/send/node_modules/http-errors": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", @@ -11918,13 +12545,6 @@ "dev": true, "license": "ISC" }, - "node_modules/send/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, "node_modules/send/node_modules/on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -11974,16 +12594,6 @@ "node": ">= 0.8.0" } }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, "node_modules/serve-index/node_modules/depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -12017,13 +12627,6 @@ "dev": true, "license": "ISC" }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true, - "license": "MIT" - }, "node_modules/serve-index/node_modules/setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", @@ -12057,6 +12660,16 @@ "node": ">= 0.8.0" } }, + "node_modules/serve-static/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/server-destroy": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", @@ -12123,14 +12736,15 @@ } }, "node_modules/shiki": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.16.2.tgz", - "integrity": "sha512-gSym0hZf5a1U0iDPsdoOAZbvoi+e0c6c3NKAi03FoSLTm7oG20tum29+gk0wzzivOasn3loxfGUPT+jZXIUbWg==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.17.0.tgz", + "integrity": "sha512-VZf8cPShRwfzPcaswv81+YP7qJEoFwRT+Ehy6bizim7M0zG9bk8Egug550C+xS9g7rKIOPhzAlp2uEyuCxbk/A==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/core": "1.16.2", - "@shikijs/vscode-textmate": "^9.2.0", + "@shikijs/core": "1.17.0", + "@shikijs/types": "1.17.0", + "@shikijs/vscode-textmate": "^9.2.2", "@types/hast": "^3.0.4" } }, @@ -12286,6 +12900,31 @@ "ws": "~8.17.1" } }, + "node_modules/socket.io-adapter/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io-adapter/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/socket.io-adapter/node_modules/ws": { "version": "8.17.1", "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", @@ -12324,20 +12963,95 @@ "node": ">=10.0.0" } }, - "node_modules/socket.io-parser": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", - "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "node_modules/socket.io-client/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io-client/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/socket.io-parser": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-parser/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socket.io-parser/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/socket.io/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, "license": "MIT", "dependencies": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1" + "ms": "^2.1.3" }, "engines": { - "node": ">=10.0.0" + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, + "node_modules/socket.io/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/socks": { "version": "2.8.3", "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.3.tgz", @@ -12368,6 +13082,31 @@ "node": ">= 14" } }, + "node_modules/socks-proxy-agent/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/socks-proxy-agent/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, "node_modules/source-map": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", @@ -12379,9 +13118,9 @@ } }, "node_modules/source-map-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", - "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, "license": "BSD-3-Clause", "engines": { @@ -12435,16 +13174,6 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/stream-read-all": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/stream-read-all/-/stream-read-all-3.0.1.tgz", - "integrity": "sha512-EWZT9XOceBPlVJRrYcykW8jyRSZYbkb/0ZK36uLEmoWVO5gxBOnntNTseNzfREsqxqdfEGQrD8SXQ3QWbBmq8A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, "node_modules/stream-throttle": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", @@ -12594,6 +13323,21 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "dev": true, + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/stringify-object": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", @@ -12872,6 +13616,24 @@ "dev": true, "license": "MIT" }, + "node_modules/stylelint/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/stylelint/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -12910,18 +13672,12 @@ "node": ">=8" } }, - "node_modules/stylelint/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "node_modules/stylelint/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "license": "MIT" }, "node_modules/stylelint/node_modules/slash": { "version": "3.0.0", @@ -12990,20 +13746,6 @@ "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, - "node_modules/stylelint/node_modules/write-file-atomic": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", - "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4", - "signal-exit": "^4.0.1" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/stylus-lookup": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/stylus-lookup/-/stylus-lookup-6.0.0.tgz", @@ -13110,69 +13852,15 @@ } }, "node_modules/table-layout": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-3.0.2.tgz", - "integrity": "sha512-rpyNZYRw+/C+dYkcQ3Pr+rLxW4CfHpXjPDnG7lYhdRoUcZTUt+KEsX+94RGp/aVp/MQU35JCITv2T/beY4m+hw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-4.1.1.tgz", + "integrity": "sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA==", "dev": true, "license": "MIT", "dependencies": { - "@75lb/deep-merge": "^1.1.1", "array-back": "^6.2.2", - "command-line-args": "^5.2.1", - "command-line-usage": "^7.0.0", - "stream-read-all": "^3.0.1", - "typical": "^7.1.1", "wordwrapjs": "^5.1.0" }, - "bin": { - "table-layout": "bin/cli.js" - }, - "engines": { - "node": ">=12.17" - } - }, - "node_modules/table-layout/node_modules/command-line-args": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz", - "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-back": "^3.1.0", - "find-replace": "^3.0.0", - "lodash.camelcase": "^4.3.0", - "typical": "^4.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/table-layout/node_modules/command-line-args/node_modules/array-back": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz", - "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/table-layout/node_modules/command-line-args/node_modules/typical": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz", - "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/table-layout/node_modules/typical": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", - "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", - "dev": true, - "license": "MIT", "engines": { "node": ">=12.17" } @@ -13370,6 +14058,17 @@ "tree-kill": "cli.js" } }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/ts-api-utils": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", @@ -13394,9 +14093,9 @@ } }, "node_modules/ts-graphviz": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ts-graphviz/-/ts-graphviz-2.1.2.tgz", - "integrity": "sha512-9GnOA3yiFaqZeHBEZXWa6kqc61FVhAhxQU5g3KLyGrhRr7OsDGRzs+1z35ctvD+hTTEhrBza6D41+qz+3qs7Zw==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ts-graphviz/-/ts-graphviz-2.1.3.tgz", + "integrity": "sha512-QIgqE5Fdk8xeI/twUCzlNIVkxVt2S7pK+GMQHgi5xtu/zHDL3+LE4TsK2hOBCh4DxXvugGl0xLvWFA6T0iAVsA==", "dev": true, "funding": [ { @@ -13410,10 +14109,10 @@ ], "license": "MIT", "dependencies": { - "@ts-graphviz/adapter": "^2.0.3", - "@ts-graphviz/ast": "^2.0.3", - "@ts-graphviz/common": "^2.1.2", - "@ts-graphviz/core": "^2.0.3" + "@ts-graphviz/adapter": "^2.0.4", + "@ts-graphviz/ast": "^2.0.4", + "@ts-graphviz/common": "^2.1.3", + "@ts-graphviz/core": "^2.0.4" }, "engines": { "node": ">=18" @@ -13638,9 +14337,9 @@ } }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", "dev": true, "license": "MIT" }, @@ -13671,6 +14370,34 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/unist-util-visit": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", @@ -13775,16 +14502,6 @@ "browserslist": ">= 4.21.0" } }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, "node_modules/urlpattern-polyfill": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz", @@ -13869,6 +14586,36 @@ "node": ">= 0.8" } }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/vite": { "version": "5.4.4", "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.4.tgz", @@ -13956,9 +14703,9 @@ } }, "node_modules/vscode-languageserver-textdocument": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.11.tgz", - "integrity": "sha512-X+8T3GoiwTVlJbicx/sIAF+yuJAqz8VvwJyoMVhwEMoEKE/fkDmrqUgDMyBECcM2A2frVZIUj5HI/ErRXCfOeA==", + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz", + "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==", "dev": true, "license": "MIT" }, @@ -14255,6 +15002,33 @@ "dev": true, "license": "ISC" }, + "node_modules/write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/write-file-atomic/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/ws": { "version": "7.5.10", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", @@ -14296,6 +15070,13 @@ "node": ">=10" } }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true, + "license": "ISC" + }, "node_modules/yaml": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.5.1.tgz", @@ -14400,6 +15181,17 @@ "funding": { "url": "https://github.com/sponsors/colinhacks" } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } } } } diff --git a/src/components/accordion/accordion.ts b/src/components/accordion/accordion.ts index 062ac003e..6f49f9a0c 100644 --- a/src/components/accordion/accordion.ts +++ b/src/components/accordion/accordion.ts @@ -13,6 +13,7 @@ import { import { registerComponent } from '../common/definitions/register.js'; import { ssrAddEventListener } from '../common/util.js'; import IgcExpansionPanelComponent from '../expansion-panel/expansion-panel.js'; +import type { IgcExpansionPanelComponentEventMap } from '../expansion-panel/expansion-panel.js'; import { styles } from './themes/accordion.base.css.js'; /** @@ -60,7 +61,11 @@ export default class IgcAccordionComponent extends LitElement { constructor() { super(); - ssrAddEventListener(this, 'igcOpening' as any, this.handlePanelOpening); + ssrAddEventListener( + this, + 'igcOpening', + this.handlePanelOpening + ); addKeybindings(this, { skip: this.skipKeybinding, @@ -121,15 +126,15 @@ export default class IgcAccordionComponent extends LitElement { } } - private handlePanelOpening(event: Event) { - const current = event.target as IgcExpansionPanelComponent; - - if (!(this.singleExpand && this.panels.includes(current))) { + private handlePanelOpening({ + detail, + }: CustomEvent) { + if (!(this.singleExpand && this.panels.includes(detail))) { return; } for (const panel of this.enabledPanels) { - if (panel.open && panel !== current) { + if (panel.open && panel !== detail) { this.closePanel(panel); } } diff --git a/src/components/card/card.ssr.spec.ts b/src/components/card/card.ssr.spec.ts index 0420babd8..02496951f 100644 --- a/src/components/card/card.ssr.spec.ts +++ b/src/components/card/card.ssr.spec.ts @@ -27,7 +27,7 @@ const template = html` - + `; diff --git a/src/components/common/util.ts b/src/components/common/util.ts index 2591e17e5..0da0c6c90 100644 --- a/src/components/common/util.ts +++ b/src/components/common/util.ts @@ -261,13 +261,24 @@ export function* chunk(arr: T[], size: number) { } } +/// REVIEW: Simplify the types? Maybe move the whole thing as a separate host controller? + +type EventKey = T extends keyof U + ? T + : T extends string + ? T + : never; + /** * Skips adding event listeners in SSR environments. */ -export function ssrAddEventListener( +export function ssrAddEventListener< + EventMap = HTMLElementEventMap, + K = EventKey, +>( element: Element, - type: keyof HTMLElementEventMap, - handler: (event: T) => unknown + type: K extends keyof HTMLElementEventMap | string ? K : string, + handler: (event: K extends keyof EventMap ? EventMap[K] : Event) => unknown ) { if (!isServer) { element.addEventListener( diff --git a/tsconfig.json b/tsconfig.json index 1f41b4cb7..e37bdf301 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -24,7 +24,10 @@ "plugins": [ { "name": "ts-lit-plugin", - "strict": true + "strict": true, + "rules": { + "no-missing-import": "off" + } } ], "types": ["mocha"] From 1962021009650917e89a2b448b4c9600e0fc1dd2 Mon Sep 17 00:00:00 2001 From: Radoslav Karaivanov Date: Mon, 16 Sep 2024 11:49:07 +0300 Subject: [PATCH 53/53] chore: Fix package-lock.json --- package-lock.json | 916 +++++++++++++++++++++++++++++++++++----------- 1 file changed, 694 insertions(+), 222 deletions(-) diff --git a/package-lock.json b/package-lock.json index bccd6d153..67c5227e7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -63,29 +63,6 @@ "vite": "^5.4.5" } }, - "node_modules/@75lb/deep-merge": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@75lb/deep-merge/-/deep-merge-1.1.2.tgz", - "integrity": "sha512-08K9ou5VNbheZFxM5tDWoqjA3ImC50DiuuJ2tj1yEPRfkp8lLLg6XAaJ4On+a0yAXor/8ay5gHnAIshRM44Kpw==", - "dev": true, - "dependencies": { - "lodash": "^4.17.21", - "typical": "^7.1.1" - }, - "engines": { - "node": ">=12.17" - } - }, - "node_modules/@75lb/deep-merge/node_modules/typical": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz", - "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.17" - } - }, "node_modules/@babel/code-frame": { "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", @@ -563,9 +540,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz", + "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==", "cpu": [ "ppc64" ], @@ -576,13 +553,13 @@ "aix" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz", + "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==", "cpu": [ "arm" ], @@ -593,13 +570,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz", + "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==", "cpu": [ "arm64" ], @@ -610,13 +587,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz", + "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==", "cpu": [ "x64" ], @@ -627,13 +604,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz", + "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==", "cpu": [ "arm64" ], @@ -644,13 +621,13 @@ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz", + "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==", "cpu": [ "x64" ], @@ -661,13 +638,13 @@ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz", + "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==", "cpu": [ "arm64" ], @@ -678,13 +655,13 @@ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz", + "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==", "cpu": [ "x64" ], @@ -695,13 +672,13 @@ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz", + "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==", "cpu": [ "arm" ], @@ -712,13 +689,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz", + "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==", "cpu": [ "arm64" ], @@ -729,13 +706,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz", + "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==", "cpu": [ "ia32" ], @@ -746,13 +723,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz", + "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==", "cpu": [ "loong64" ], @@ -763,13 +740,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz", + "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==", "cpu": [ "mips64el" ], @@ -780,13 +757,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz", + "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==", "cpu": [ "ppc64" ], @@ -797,13 +774,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz", + "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==", "cpu": [ "riscv64" ], @@ -814,13 +791,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz", + "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==", "cpu": [ "s390x" ], @@ -831,13 +808,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz", + "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==", "cpu": [ "x64" ], @@ -848,13 +825,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz", + "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==", "cpu": [ "x64" ], @@ -865,13 +842,30 @@ "netbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz", + "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz", + "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==", "cpu": [ "x64" ], @@ -882,13 +876,13 @@ "openbsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz", + "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==", "cpu": [ "x64" ], @@ -899,13 +893,13 @@ "sunos" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz", + "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==", "cpu": [ "arm64" ], @@ -916,13 +910,13 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz", + "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==", "cpu": [ "ia32" ], @@ -933,13 +927,13 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz", + "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==", "cpu": [ "x64" ], @@ -950,7 +944,7 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esm-bundle/chai": { @@ -964,12 +958,12 @@ } }, "node_modules/@floating-ui/core": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.7.tgz", - "integrity": "sha512-yDzVT/Lm101nQ5TCVeK65LtdN7Tj4Qpr9RTXJ2vPFLqtLxwOrpoxAHAJI8J3yYWUc40J0BDBheaitK5SJmno2g==", + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.8.tgz", + "integrity": "sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==", "license": "MIT", "dependencies": { - "@floating-ui/utils": "^0.2.7" + "@floating-ui/utils": "^0.2.8" } }, "node_modules/@floating-ui/dom": { @@ -1706,47 +1700,47 @@ ] }, "node_modules/@shikijs/core": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.17.0.tgz", - "integrity": "sha512-Mkk4Mp4bNnW1kytU8I7S5PK5teNSe0iKlfqxPss4sdwnlcU8a2N62Z3te2gVmZfU9t1HF6L3wyWuM43IvEeEsg==", + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.17.7.tgz", + "integrity": "sha512-ZnIDxFu/yvje3Q8owSHaEHd+bu/jdWhHAaJ17ggjXofHx5rc4bhpCSW+OjC6smUBi5s5dd023jWtZ1gzMu/yrw==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/engine-javascript": "1.17.0", - "@shikijs/engine-oniguruma": "1.17.0", - "@shikijs/types": "1.17.0", + "@shikijs/engine-javascript": "1.17.7", + "@shikijs/engine-oniguruma": "1.17.7", + "@shikijs/types": "1.17.7", "@shikijs/vscode-textmate": "^9.2.2", "@types/hast": "^3.0.4", "hast-util-to-html": "^9.0.2" } }, "node_modules/@shikijs/engine-javascript": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-1.17.0.tgz", - "integrity": "sha512-EiBVlxmzJZdC2ypzn8k+vxLngbBNgHLS4RilwrFOABGRc72kUZubbD/6Chrq2RcVtD3yq1GtiiIdFMGd9BTX3Q==", + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-1.17.7.tgz", + "integrity": "sha512-wwSf7lKPsm+hiYQdX+1WfOXujtnUG6fnN4rCmExxa4vo+OTmvZ9B1eKauilvol/LHUPrQgW12G3gzem7pY5ckw==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/types": "1.17.0", - "oniguruma-to-js": "0.3.3", - "regex": "4.3.2" + "@shikijs/types": "1.17.7", + "@shikijs/vscode-textmate": "^9.2.2", + "oniguruma-to-js": "0.4.3" } }, "node_modules/@shikijs/engine-oniguruma": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.17.0.tgz", - "integrity": "sha512-nsXzJGLQ0fhKmA4Gwt1cF7vC8VuZ1HSDrTRuj48h/qDeX/TzmOlTDXQ3uPtyuhyg/2rbZRzNhN8UFU4fSnQfXg==", + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.17.7.tgz", + "integrity": "sha512-pvSYGnVeEIconU28NEzBXqSQC/GILbuNbAHwMoSfdTBrobKAsV1vq2K4cAgiaW1TJceLV9QMGGh18hi7cCzbVQ==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/types": "1.17.0", + "@shikijs/types": "1.17.7", "@shikijs/vscode-textmate": "^9.2.2" } }, "node_modules/@shikijs/types": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.17.0.tgz", - "integrity": "sha512-Tvu2pA69lbpXB+MmgIaROP1tio8y0uYvKb5Foh3q0TJBTAJuaoa5eDEtS/0LquyveacsiVrYF4uEZILju+7Ybg==", + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.17.7.tgz", + "integrity": "sha512-+qA4UyhWLH2q4EFd+0z4K7GpERDU+c+CN2XYD3sC+zjvAr5iuwD1nToXZMt1YODshjkEGEDV86G7j66bKjqDdg==", "dev": true, "license": "MIT", "dependencies": { @@ -2758,9 +2752,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.5.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.4.tgz", - "integrity": "sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==", + "version": "22.5.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.5.5.tgz", + "integrity": "sha512-Xjs4y5UPO/CLdzpgR6GirZJx36yScjh73+2NlLlkFRSoQN8B0DpfXPdZGnvVmLRLOsqDpOfTNv7D9trgGhmOIA==", "dev": true, "license": "MIT", "dependencies": { @@ -2782,9 +2776,9 @@ "license": "MIT" }, "node_modules/@types/qs": { - "version": "6.9.15", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.15.tgz", - "integrity": "sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==", + "version": "6.9.16", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.16.tgz", + "integrity": "sha512-7i+zxXdPD0T4cKDuxCUXJ4wHcsJLwENa6Z3dCu8cfCK743OGy5Nu1RmAGqDPsoTDINVEcdXKRvR/zre+P2Ku1A==", "dev": true, "license": "MIT" }, @@ -3063,63 +3057,63 @@ "license": "MIT" }, "node_modules/@vue/compiler-core": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.4.tgz", - "integrity": "sha512-oNwn+BAt3n9dK9uAYvI+XGlutwuTq/wfj4xCBaZCqwwVIGtD7D6ViihEbyYZrDHIHTDE3Q6oL3/hqmAyFEy9DQ==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.6.tgz", + "integrity": "sha512-r+gNu6K4lrvaQLQGmf+1gc41p3FO2OUJyWmNqaIITaJU6YFiV5PtQSFZt8jfztYyARwqhoCayjprC7KMvT3nRA==", "dev": true, "license": "MIT", "dependencies": { "@babel/parser": "^7.25.3", - "@vue/shared": "3.5.4", + "@vue/shared": "3.5.6", "entities": "^4.5.0", "estree-walker": "^2.0.2", "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-dom": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.4.tgz", - "integrity": "sha512-yP9RRs4BDLOLfldn6ah+AGCNovGjMbL9uHvhDHf5wan4dAHLnFGOkqtfE7PPe4HTXIqE7l/NILdYw53bo1C8jw==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.6.tgz", + "integrity": "sha512-xRXqxDrIqK8v8sSScpistyYH0qYqxakpsIvqMD2e5sV/PXQ1mTwtXp4k42yHK06KXxKSmitop9e45Ui/3BrTEw==", "dev": true, "license": "MIT", "dependencies": { - "@vue/compiler-core": "3.5.4", - "@vue/shared": "3.5.4" + "@vue/compiler-core": "3.5.6", + "@vue/shared": "3.5.6" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.4.tgz", - "integrity": "sha512-P+yiPhL+NYH7m0ZgCq7AQR2q7OIE+mpAEgtkqEeH9oHSdIRvUO+4X6MPvblJIWcoe4YC5a2Gdf/RsoyP8FFiPQ==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.6.tgz", + "integrity": "sha512-pjWJ8Kj9TDHlbF5LywjVso+BIxCY5wVOLhkEXRhuCHDxPFIeX1zaFefKs8RYoHvkSMqRWt93a0f2gNJVJixHwg==", "dev": true, "license": "MIT", "dependencies": { "@babel/parser": "^7.25.3", - "@vue/compiler-core": "3.5.4", - "@vue/compiler-dom": "3.5.4", - "@vue/compiler-ssr": "3.5.4", - "@vue/shared": "3.5.4", + "@vue/compiler-core": "3.5.6", + "@vue/compiler-dom": "3.5.6", + "@vue/compiler-ssr": "3.5.6", + "@vue/shared": "3.5.6", "estree-walker": "^2.0.2", "magic-string": "^0.30.11", - "postcss": "^8.4.44", + "postcss": "^8.4.47", "source-map-js": "^1.2.0" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.4.tgz", - "integrity": "sha512-acESdTXsxPnYr2C4Blv0ggx5zIFMgOzZmYU2UgvIff9POdRGbRNBHRyzHAnizcItvpgerSKQbllUc9USp3V7eg==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.6.tgz", + "integrity": "sha512-VpWbaZrEOCqnmqjE83xdwegtr5qO/2OPUC6veWgvNqTJ3bYysz6vY3VqMuOijubuUYPRpG3OOKIh9TD0Stxb9A==", "dev": true, "license": "MIT", "dependencies": { - "@vue/compiler-dom": "3.5.4", - "@vue/shared": "3.5.4" + "@vue/compiler-dom": "3.5.6", + "@vue/shared": "3.5.6" } }, "node_modules/@vue/shared": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.4.tgz", - "integrity": "sha512-L2MCDD8l7yC62Te5UUyPVpmexhL9ipVnYRw9CsWfm/BGRL5FwDX4a25bcJ/OJSD3+Hx+k/a8LDKcG2AFdJV3BA==", + "version": "3.5.6", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.6.tgz", + "integrity": "sha512-eidH0HInnL39z6wAt6SFIwBrvGOpDWsDxlw3rCgo1B+CQ1781WzQUSU3YjxgdkcJo9Q8S6LmXTkvI+cLHGkQfA==", "dev": true, "license": "MIT" }, @@ -4034,9 +4028,9 @@ "optional": true }, "node_modules/bare-fs": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.4.tgz", - "integrity": "sha512-7YyxitZEq0ey5loOF5gdo1fZQFF7290GziT+VbAJ+JbYTJYaPZwuEz2r/Nq23sm4fjyTgUf2uJI2gkT3xAuSYA==", + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.5.tgz", + "integrity": "sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw==", "dev": true, "license": "Apache-2.0", "optional": true, @@ -4047,9 +4041,9 @@ } }, "node_modules/bare-os": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.4.3.tgz", - "integrity": "sha512-FjkNiU3AwTQNQkcxFOmDcCfoN1LjjtU+ofGJh5DymZZLTqdw2i/CzV7G0h3snvh6G8jrWtdmNSgZPH4L2VOAsQ==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.4.4.tgz", + "integrity": "sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ==", "dev": true, "license": "Apache-2.0", "optional": true @@ -5930,9 +5924,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.20", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.20.tgz", - "integrity": "sha512-74mdl6Fs1HHzK9SUX4CKFxAtAe3nUns48y79TskHNAG6fGOlLfyKA4j855x+0b5u8rWJIrlaG9tcTPstMlwjIw==", + "version": "1.5.23", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.23.tgz", + "integrity": "sha512-mBhODedOXg4v5QWwl21DjM5amzjmI1zw9EPrPK/5Wx7C8jt33bpZNrC7OhHUG3pxRtbLpr3W2dXT+Ph1SsfRZA==", "dev": true, "license": "ISC" }, @@ -6211,9 +6205,9 @@ "license": "MIT" }, "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", + "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -6221,32 +6215,33 @@ "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" + "@esbuild/aix-ppc64": "0.23.1", + "@esbuild/android-arm": "0.23.1", + "@esbuild/android-arm64": "0.23.1", + "@esbuild/android-x64": "0.23.1", + "@esbuild/darwin-arm64": "0.23.1", + "@esbuild/darwin-x64": "0.23.1", + "@esbuild/freebsd-arm64": "0.23.1", + "@esbuild/freebsd-x64": "0.23.1", + "@esbuild/linux-arm": "0.23.1", + "@esbuild/linux-arm64": "0.23.1", + "@esbuild/linux-ia32": "0.23.1", + "@esbuild/linux-loong64": "0.23.1", + "@esbuild/linux-mips64el": "0.23.1", + "@esbuild/linux-ppc64": "0.23.1", + "@esbuild/linux-riscv64": "0.23.1", + "@esbuild/linux-s390x": "0.23.1", + "@esbuild/linux-x64": "0.23.1", + "@esbuild/netbsd-x64": "0.23.1", + "@esbuild/openbsd-arm64": "0.23.1", + "@esbuild/openbsd-x64": "0.23.1", + "@esbuild/sunos-x64": "0.23.1", + "@esbuild/win32-arm64": "0.23.1", + "@esbuild/win32-ia32": "0.23.1", + "@esbuild/win32-x64": "0.23.1" } }, "node_modules/esbuild-register": { @@ -10195,6 +10190,45 @@ "node": ">=16" } }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "engines": { + "node": ">=10.5.0" + } + }, + "node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" + } + }, "node_modules/node-releases": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", @@ -10321,11 +10355,14 @@ } }, "node_modules/oniguruma-to-js": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/oniguruma-to-js/-/oniguruma-to-js-0.3.3.tgz", - "integrity": "sha512-m90/WEhgs8g4BxG37+Nu3YrMfJDs2YXtYtIllhsEPR+wP3+K4EZk6dDUvy2v2K4MNFDDOYKL4/yqYPXDqyozTQ==", + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/oniguruma-to-js/-/oniguruma-to-js-0.4.3.tgz", + "integrity": "sha512-X0jWUcAlxORhOqqBREgPMgnshB7ZGYszBNspP+tS9hPD3l13CdaXcHbgImoHUHlrvGx/7AvFEkTRhAGYh+jzjQ==", "dev": true, "license": "MIT", + "dependencies": { + "regex": "^4.3.2" + }, "funding": { "url": "https://github.com/sponsors/antfu" } @@ -12720,14 +12757,16 @@ } }, "node_modules/shiki": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.17.0.tgz", - "integrity": "sha512-VZf8cPShRwfzPcaswv81+YP7qJEoFwRT+Ehy6bizim7M0zG9bk8Egug550C+xS9g7rKIOPhzAlp2uEyuCxbk/A==", + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.17.7.tgz", + "integrity": "sha512-Zf6hNtWhFyF4XP5OOsXkBTEx9JFPiN0TQx4wSe+Vqeuczewgk2vT4IZhF4gka55uelm052BD5BaHavNqUNZd+A==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/core": "1.17.0", - "@shikijs/types": "1.17.0", + "@shikijs/core": "1.17.7", + "@shikijs/engine-javascript": "1.17.7", + "@shikijs/engine-oniguruma": "1.17.7", + "@shikijs/types": "1.17.7", "@shikijs/vscode-textmate": "^9.2.2", "@types/hast": "^3.0.4" } @@ -13203,9 +13242,9 @@ } }, "node_modules/streamx": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.0.tgz", - "integrity": "sha512-ZGd1LhDeGFucr1CUCTBOS58ZhEendd0ttpGT3usTvosS4ntIwKN9LJFp+OeCSprsCPL14BXVRZlHGRY1V9PVzQ==", + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.1.tgz", + "integrity": "sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA==", "dev": true, "license": "MIT", "dependencies": { @@ -13973,9 +14012,9 @@ } }, "node_modules/text-decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.1.1.tgz", - "integrity": "sha512-8zll7REEv4GDD3x4/0pW+ppIxSNs7H1J10IKFZsuOMscumCdM2a+toDGLPA3T+1+fLBql4zbt5z83GEQGGV5VA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.0.tgz", + "integrity": "sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -14289,9 +14328,9 @@ } }, "node_modules/ua-parser-js": { - "version": "1.0.38", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.38.tgz", - "integrity": "sha512-Aq5ppTOfvrCMgAPneW1HfWj66Xi7XL+/mIy996R1/CLS/rcyJQm6QZdsKrUeivDFQ+Oc9Wyuwor8Ze8peEoUoQ==", + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.39.tgz", + "integrity": "sha512-k24RCVWlEcjkdOxYmVJgeD/0a1TiSpqLg+ZalVGV9lsnr4yqu0w7tX/x2xX6G4zpkgQnRf89lxuZ1wsbjXM8lw==", "dev": true, "funding": [ { @@ -14308,6 +14347,9 @@ } ], "license": "MIT", + "bin": { + "ua-parser-js": "script/cli.js" + }, "engines": { "node": "*" } @@ -14670,6 +14712,436 @@ } } }, + "node_modules/vite/node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, "node_modules/vscode-css-languageservice": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-4.3.0.tgz",