diff --git a/apps/lit-override/.eslintrc.cjs b/apps/lit-override/.eslintrc.cjs index 08ad21f4..52553898 100644 --- a/apps/lit-override/.eslintrc.cjs +++ b/apps/lit-override/.eslintrc.cjs @@ -1,7 +1,6 @@ module.exports = { root: true, extends: ['custom/ts.cjs', 'custom/lit.cjs'], - plugins: ['lit'], ignorePatterns: ['dist/**'], parserOptions: { ecmaVersion: 'latest', diff --git a/configs/eslint-config-custom/chai.cjs b/configs/eslint-config-custom/chai.cjs new file mode 100644 index 00000000..dc491919 --- /dev/null +++ b/configs/eslint-config-custom/chai.cjs @@ -0,0 +1,8 @@ +module.exports = { + plugins: ['chai-expect', 'chai-friendly'], + extends: ['plugin:chai-expect/recommended', 'plugin:chai-friendly/recommended'], + rules: { + '@typescript-eslint/no-unsafe-call': 'off', + '@typescript-eslint/no-unused-expressions': 'off', + }, +}; diff --git a/configs/eslint-config-custom/lit.cjs b/configs/eslint-config-custom/lit.cjs index c3cda6c6..e766db80 100644 --- a/configs/eslint-config-custom/lit.cjs +++ b/configs/eslint-config-custom/lit.cjs @@ -1,4 +1,4 @@ module.exports = { - extends: ['plugin:wc/recommended', 'plugin:lit/recommended'], - plugins: ['lit'], + plugins: ['lit', 'lit-a11y'], + extends: ['plugin:wc/recommended', 'plugin:lit/recommended', 'plugin:lit-a11y/recommended'], }; diff --git a/configs/eslint-config-custom/package.json b/configs/eslint-config-custom/package.json index 73f343d8..c3a3fe39 100644 --- a/configs/eslint-config-custom/package.json +++ b/configs/eslint-config-custom/package.json @@ -11,21 +11,24 @@ "@typescript-eslint/parser": "6.21.0", "eslint-config-airbnb-base": "15.0.0", "eslint-config-airbnb-typescript": "17.1.0", + "eslint-plugin-chai-expect": "3.0.0", + "eslint-plugin-chai-friendly": "0.7.4", "eslint-plugin-import": "2.29.1", "eslint-plugin-jest": "27.9.0", "eslint-plugin-jest-dom": "5.2.0", "eslint-plugin-jest-formatting": "3.1.0", + "eslint-plugin-lit": "1.12.0", + "eslint-plugin-lit-a11y": "1.1.0-next.1", "eslint-plugin-mdx": "3.1.5", "eslint-plugin-react": "7.34.1", "eslint-plugin-react-hooks": "4.6.0", "eslint-plugin-react-refresh": "0.4.6", - "eslint-plugin-storybook": "0.8.0" + "eslint-plugin-storybook": "0.8.0", + "eslint-plugin-vitest": "0.5.4", + "eslint-plugin-wc": "2.1.0" }, "devDependencies": { - "eslint": "8.57.0", - "eslint-plugin-lit": "1.11.0", - "eslint-plugin-vitest": "0.4.0", - "eslint-plugin-wc": "2.0.4" + "eslint": "8.57.0" }, "peerDependencies": { "eslint": "8.57.0" diff --git a/packages/lit-override/.eslintrc.cjs b/packages/lit-override/.eslintrc.cjs index 268579af..a79b18a3 100644 --- a/packages/lit-override/.eslintrc.cjs +++ b/packages/lit-override/.eslintrc.cjs @@ -1,7 +1,6 @@ module.exports = { root: true, - extends: ['custom/ts.cjs', 'custom/jest.cjs', 'custom/lit.cjs'], - plugins: ['lit'], + extends: ['custom/ts.cjs', 'custom/jest.cjs', 'custom/lit.cjs', 'custom/chai.cjs'], ignorePatterns: ['dist/**', 'coverage'], parserOptions: { ecmaVersion: 'latest', diff --git a/packages/lit-override/src/components/lit-override-component.spec.ts b/packages/lit-override/src/components/lit-override-component.spec.ts index 391feb25..07d90a4a 100644 --- a/packages/lit-override/src/components/lit-override-component.spec.ts +++ b/packages/lit-override/src/components/lit-override-component.spec.ts @@ -59,7 +59,6 @@ describe('lit-override', () => { const adoptedStyles = el.shadowRoot?.adoptedStyleSheets; expect(adoptedStyles?.length).to.equal(1); expect(el.innerHTML).to.not.contain(''); - // eslint-disable-next-line @typescript-eslint/no-unused-expressions expect(el.shadowRoot?.querySelector('style')).to.not.exist; }); @@ -70,7 +69,6 @@ describe('lit-override', () => { el.onConnectedCallback = callbackSpy; el.connectedCallback(); await aTimeout(50); - // eslint-disable-next-line @typescript-eslint/no-unused-expressions expect(callbackSpy).to.have.been.calledOnce; }); @@ -80,7 +78,6 @@ describe('lit-override', () => { el.addEventListener('connected-callback', eventSpy); setTimeout(() => el.connectedCallback()); await aTimeout(50); - // eslint-disable-next-line @typescript-eslint/no-unused-expressions expect(eventSpy).not.to.have.been.called; }); @@ -88,7 +85,6 @@ describe('lit-override', () => { const el = await fixture(html``); setTimeout(() => el.connectedCallback()); const ev = await oneEvent(el, 'connected-callback', true); - // eslint-disable-next-line @typescript-eslint/no-unused-expressions expect(ev).to.exist; }); }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 62de25fa..3aa31faf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -172,6 +172,12 @@ importers: eslint-config-airbnb-typescript: specifier: 17.1.0 version: 17.1.0(@typescript-eslint/eslint-plugin@6.21.0)(@typescript-eslint/parser@6.21.0)(eslint-plugin-import@2.29.1)(eslint@8.57.0) + eslint-plugin-chai-expect: + specifier: 3.0.0 + version: 3.0.0(eslint@8.57.0) + eslint-plugin-chai-friendly: + specifier: 0.7.4 + version: 0.7.4(eslint@8.57.0) eslint-plugin-import: specifier: 2.29.1 version: 2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.57.0) @@ -184,6 +190,12 @@ importers: eslint-plugin-jest-formatting: specifier: 3.1.0 version: 3.1.0(eslint@8.57.0) + eslint-plugin-lit: + specifier: 1.12.0 + version: 1.12.0(eslint@8.57.0) + eslint-plugin-lit-a11y: + specifier: 1.1.0-next.1 + version: 1.1.0-next.1(eslint@8.57.0) eslint-plugin-mdx: specifier: 3.1.5 version: 3.1.5(eslint@8.57.0) @@ -199,19 +211,16 @@ importers: eslint-plugin-storybook: specifier: 0.8.0 version: 0.8.0(eslint@8.57.0)(typescript@5.4.3) + eslint-plugin-vitest: + specifier: 0.5.4 + version: 0.5.4(@typescript-eslint/eslint-plugin@6.21.0)(eslint@8.57.0)(typescript@5.4.3) + eslint-plugin-wc: + specifier: 2.1.0 + version: 2.1.0(eslint@8.57.0) devDependencies: eslint: specifier: 8.57.0 version: 8.57.0 - eslint-plugin-lit: - specifier: 1.11.0 - version: 1.11.0(eslint@8.57.0) - eslint-plugin-vitest: - specifier: 0.4.0 - version: 0.4.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint@8.57.0)(typescript@5.4.3) - eslint-plugin-wc: - specifier: 2.0.4 - version: 2.0.4(eslint@8.57.0) configs/jest-config: dependencies: @@ -418,7 +427,7 @@ importers: version: link:../../configs/eslint-config-custom jest: specifier: 29.7.0 - version: 29.7.0 + version: 29.7.0(@types/node@20.11.30) jest-config: specifier: workspace:* version: link:../../configs/jest-config @@ -1800,6 +1809,14 @@ packages: resolution: {integrity: sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==} dev: true + /@babel/runtime-corejs3@7.24.5: + resolution: {integrity: sha512-GWO0mgzNMLWaSYM4z4NVIuY0Cd1fl8cPnuetuddu5w/qGuvt5Y7oUi/kvvQGK9xgOkFJDQX2heIvTRn/OQ1XTg==} + engines: {node: '>=6.9.0'} + dependencies: + core-js-pure: 3.37.0 + regenerator-runtime: 0.14.1 + dev: false + /@babel/runtime@7.24.1: resolution: {integrity: sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==} engines: {node: '>=6.9.0'} @@ -6545,6 +6562,7 @@ packages: /@types/json-schema@7.0.15: resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + dev: false /@types/json5@0.0.29: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} @@ -6636,6 +6654,12 @@ packages: /@types/normalize-package-data@2.4.4: resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + /@types/parse5@2.2.34: + resolution: {integrity: sha512-p3qOvaRsRpFyEmaS36RtLzpdxZZnmxGuT1GMgzkTtTJVFuEw7KFjGK83MFODpJExgX1bEzy9r0NYjMC3IMfi7w==} + dependencies: + '@types/node': 20.11.30 + dev: false + /@types/parse5@6.0.3: resolution: {integrity: sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==} dev: true @@ -6794,6 +6818,7 @@ packages: typescript: 5.4.3 transitivePeerDependencies: - supports-color + dev: false /@typescript-eslint/parser@6.21.0(eslint@8.57.0)(typescript@5.4.3): resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} @@ -6814,6 +6839,7 @@ packages: typescript: 5.4.3 transitivePeerDependencies: - supports-color + dev: false /@typescript-eslint/scope-manager@5.62.0: resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} @@ -6829,14 +6855,15 @@ packages: dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 + dev: false - /@typescript-eslint/scope-manager@7.4.0: - resolution: {integrity: sha512-68VqENG5HK27ypafqLVs8qO+RkNc7TezCduYrx8YJpXq2QGZ30vmNZGJJJC48+MVn4G2dCV8m5ZTVnzRexTVtw==} + /@typescript-eslint/scope-manager@7.8.0: + resolution: {integrity: sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==} engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.4.0 - '@typescript-eslint/visitor-keys': 7.4.0 - dev: true + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/visitor-keys': 7.8.0 + dev: false /@typescript-eslint/type-utils@6.21.0(eslint@8.57.0)(typescript@5.4.3): resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} @@ -6856,6 +6883,7 @@ packages: typescript: 5.4.3 transitivePeerDependencies: - supports-color + dev: false /@typescript-eslint/types@5.62.0: resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} @@ -6865,11 +6893,12 @@ packages: /@typescript-eslint/types@6.21.0: resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} engines: {node: ^16.0.0 || >=18.0.0} + dev: false - /@typescript-eslint/types@7.4.0: - resolution: {integrity: sha512-mjQopsbffzJskos5B4HmbsadSJQWaRK0UxqQ7GuNA9Ga4bEKeiO6b2DnB6cM6bpc8lemaPseh0H9B/wyg+J7rw==} + /@typescript-eslint/types@7.8.0: + resolution: {integrity: sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==} engines: {node: ^18.18.0 || >=20.0.0} - dev: true + dev: false /@typescript-eslint/typescript-estree@5.62.0(typescript@5.4.3): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} @@ -6912,9 +6941,10 @@ packages: typescript: 5.4.3 transitivePeerDependencies: - supports-color + dev: false - /@typescript-eslint/typescript-estree@7.4.0(typescript@5.4.3): - resolution: {integrity: sha512-A99j5AYoME/UBQ1ucEbbMEmGkN7SE0BvZFreSnTd1luq7yulcHdyGamZKizU7canpGDWGJ+Q6ZA9SyQobipePg==} + /@typescript-eslint/typescript-estree@7.8.0(typescript@5.4.3): + resolution: {integrity: sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' @@ -6922,18 +6952,18 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 7.4.0 - '@typescript-eslint/visitor-keys': 7.4.0 + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/visitor-keys': 7.8.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - minimatch: 9.0.3 + minimatch: 9.0.4 semver: 7.6.0 ts-api-utils: 1.3.0(typescript@5.4.3) typescript: 5.4.3 transitivePeerDependencies: - supports-color - dev: true + dev: false /@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.4.3): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} @@ -6972,9 +7002,10 @@ packages: transitivePeerDependencies: - supports-color - typescript + dev: false - /@typescript-eslint/utils@7.4.0(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-NQt9QLM4Tt8qrlBVY9lkMYzfYtNz8/6qwZg8pI3cMGlPnj6mOpRxxAm7BMJN9K0AiY+1BwJ5lVC650YJqYOuNg==} + /@typescript-eslint/utils@7.8.0(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-L0yFqOCflVqXxiZyXrDr80lnahQfSOfc9ELAAZ75sqicqp2i36kEZZGuUymHNFoYOqxRT05up760b4iGsl02nQ==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -6982,15 +7013,15 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.8 - '@typescript-eslint/scope-manager': 7.4.0 - '@typescript-eslint/types': 7.4.0 - '@typescript-eslint/typescript-estree': 7.4.0(typescript@5.4.3) + '@typescript-eslint/scope-manager': 7.8.0 + '@typescript-eslint/types': 7.8.0 + '@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.3) eslint: 8.57.0 semver: 7.6.0 transitivePeerDependencies: - supports-color - typescript - dev: true + dev: false /@typescript-eslint/visitor-keys@5.62.0: resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} @@ -7006,14 +7037,15 @@ packages: dependencies: '@typescript-eslint/types': 6.21.0 eslint-visitor-keys: 3.4.3 + dev: false - /@typescript-eslint/visitor-keys@7.4.0: - resolution: {integrity: sha512-0zkC7YM0iX5Y41homUUeW1CHtZR01K3ybjM1l6QczoMuay0XKtrb93kv95AxUGwdjGr64nNqnOCwmEl616N8CA==} + /@typescript-eslint/visitor-keys@7.8.0: + resolution: {integrity: sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==} engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.4.0 + '@typescript-eslint/types': 7.8.0 eslint-visitor-keys: 3.4.3 - dev: true + dev: false /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} @@ -7699,6 +7731,14 @@ packages: tslib: 2.6.2 dev: true + /aria-query@4.2.2: + resolution: {integrity: sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==} + engines: {node: '>=6.0'} + dependencies: + '@babel/runtime': 7.24.1 + '@babel/runtime-corejs3': 7.24.5 + dev: false + /aria-query@5.1.3: resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} dependencies: @@ -7924,7 +7964,6 @@ packages: /axe-core@4.9.0: resolution: {integrity: sha512-H5orY+M2Fr56DWmMFpMrq5Ge93qjNdPVqzBv5gWK3aD1OvjBEJlEzxf09z93dGVQeI0LiW+aCMIx1QtShC/zUw==} engines: {node: '>=4'} - dev: true /axios@1.1.3: resolution: {integrity: sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA==} @@ -7946,6 +7985,10 @@ packages: - debug dev: false + /axobject-query@2.2.0: + resolution: {integrity: sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==} + dev: false + /b4a@1.6.6: resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} dev: true @@ -8688,7 +8731,6 @@ packages: /clone@2.1.2: resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} engines: {node: '>=0.8'} - dev: true /cmd-shim@6.0.2: resolution: {integrity: sha512-+FFYbB0YLaAkhkcrjkyNLYDiOsFSfRjwjY19LXk/psmMx1z00xlCv7hhQoTGXXIKi+YXHL/iiFo8NqMVQX9nOw==} @@ -9045,6 +9087,11 @@ packages: browserslist: 4.23.0 dev: true + /core-js-pure@3.37.0: + resolution: {integrity: sha512-d3BrpyFr5eD4KcbRvQ3FTUx/KWmaDesr7+a3+1+P46IUnNoEt+oiLijPINZMEon7w9oGkIINWxrBAU9DEciwFQ==} + requiresBuild: true + dev: false + /core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: true @@ -9110,25 +9157,6 @@ packages: typescript: 5.4.3 dev: false - /create-jest@29.7.0: - resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - dependencies: - '@jest/types': 29.6.3 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-config: 29.7.0(@types/node@20.11.30) - jest-util: 29.7.0 - prompts: 2.4.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - dev: true - /create-jest@29.7.0(@types/node@20.11.30): resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -9600,6 +9628,14 @@ packages: resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} dev: true + /dom5@3.0.1: + resolution: {integrity: sha512-JPFiouQIr16VQ4dX6i0+Hpbg3H2bMKPmZ+WZgBOSSvOPx9QHwwY8sPzeM2baUtViESYto6wC2nuZOMC/6gulcA==} + dependencies: + '@types/parse5': 2.2.34 + clone: 2.1.2 + parse5: 4.0.0 + dev: false + /domexception@4.0.0: resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} engines: {node: '>=12'} @@ -10130,6 +10166,24 @@ packages: - supports-color dev: false + /eslint-plugin-chai-expect@3.0.0(eslint@8.57.0): + resolution: {integrity: sha512-NS0YBcToJl+BRKBSMCwRs/oHJIX67fG5Gvb4tGked+9Wnd1/PzKijd82B2QVKcSSOwRe+pp4RAJ2AULeck4eQw==} + engines: {node: 10.* || 12.* || >= 14.*} + peerDependencies: + eslint: '>=2.0.0 <= 8.x' + dependencies: + eslint: 8.57.0 + dev: false + + /eslint-plugin-chai-friendly@0.7.4(eslint@8.57.0): + resolution: {integrity: sha512-PGPjJ8diYgX1mjLxGJqRop2rrGwZRKImoEOwUOgoIhg0p80MkTaqvmFLe5TF7/iagZHggasvIfQlUyHIhK/PYg==} + engines: {node: '>=0.10.0'} + peerDependencies: + eslint: '>=3.0.0' + dependencies: + eslint: 8.57.0 + dev: false + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.21.0)(eslint@8.57.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} @@ -10210,8 +10264,26 @@ packages: - typescript dev: false - /eslint-plugin-lit@1.11.0(eslint@8.57.0): - resolution: {integrity: sha512-jVqy2juQTAtOzj1ILf+ZW5GpDobXlSw0kvpP2zu2r8ZbW7KISt7ikj1Gw9DhNeirEU1UlSJR0VIWpdr4lzjayw==} + /eslint-plugin-lit-a11y@1.1.0-next.1(eslint@8.57.0): + resolution: {integrity: sha512-OAv0W84maDyHs22/aXIFcc94SnoN0jnfUqNgxyJ1LMrdiMNQtkjTQa4Yq7g/IA/0Nf/TTGBRRjMP7YOIXBOGnA==} + peerDependencies: + eslint: '>= 5' + dependencies: + aria-query: 4.2.2 + axe-core: 4.9.0 + axobject-query: 2.2.0 + dom5: 3.0.1 + emoji-regex: 9.2.2 + eslint: 8.57.0 + eslint-rule-extender: 0.0.1 + intl-list-format: 1.0.3 + parse5: 5.1.1 + parse5-htmlparser2-tree-adapter: 6.0.1 + requireindex: 1.2.0 + dev: false + + /eslint-plugin-lit@1.12.0(eslint@8.57.0): + resolution: {integrity: sha512-wADj+b6ZksWs1qqASYBYzi4U6k0Tvhtp4GJupveZ7Z5IfVHMixxFueSSwIl/4ksov4jsahWbyHnhOpvJ5Z8M7w==} engines: {node: '>= 12'} peerDependencies: eslint: '>= 5' @@ -10220,7 +10292,7 @@ packages: parse5: 6.0.1 parse5-htmlparser2-tree-adapter: 6.0.1 requireindex: 1.2.0 - dev: true + dev: false /eslint-plugin-markdown@3.0.1(eslint@8.57.0): resolution: {integrity: sha512-8rqoc148DWdGdmYF6WSQFT3uQ6PO7zXYgeBpHAOAakX/zpq+NvFYbDA/H7PYzHajwtmaOzAwfxyl++x0g1/N9A==} @@ -10313,12 +10385,12 @@ packages: - typescript dev: false - /eslint-plugin-vitest@0.4.0(@typescript-eslint/eslint-plugin@6.21.0)(eslint@8.57.0)(typescript@5.4.3): - resolution: {integrity: sha512-3oWgZIwdWVBQ5plvkmOBjreIGLQRdYb7x54OP8uIRHeZyRVJIdOn9o/qWVb9292fDMC8jn7H7d9TSFBZqhrykQ==} + /eslint-plugin-vitest@0.5.4(@typescript-eslint/eslint-plugin@6.21.0)(eslint@8.57.0)(typescript@5.4.3): + resolution: {integrity: sha512-um+odCkccAHU53WdKAw39MY61+1x990uXjSPguUCq3VcEHdqJrOb8OTMrbYlY6f9jAKx7x98kLVlIe3RJeJqoQ==} engines: {node: ^18.0.0 || >= 20.0.0} peerDependencies: '@typescript-eslint/eslint-plugin': '*' - eslint: '>=8.0.0' + eslint: ^8.57.0 || ^9.0.0 vitest: '*' peerDependenciesMeta: '@typescript-eslint/eslint-plugin': @@ -10327,22 +10399,27 @@ packages: optional: true dependencies: '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.57.0)(typescript@5.4.3) - '@typescript-eslint/utils': 7.4.0(eslint@8.57.0)(typescript@5.4.3) + '@typescript-eslint/utils': 7.8.0(eslint@8.57.0)(typescript@5.4.3) eslint: 8.57.0 transitivePeerDependencies: - supports-color - typescript - dev: true + dev: false - /eslint-plugin-wc@2.0.4(eslint@8.57.0): - resolution: {integrity: sha512-ORu7MBv0hXIvq894EJad70m+AvHGbmrDdKT6lcgtCVVhEbuIAyxg0ilfqqqHOmsh8PfcUBeEae3y7CElKvm1KQ==} + /eslint-plugin-wc@2.1.0(eslint@8.57.0): + resolution: {integrity: sha512-s/BGOtmpgQ2yifR6EC1OM9t0DwYLgg4ZAL07Kw4eXvBb5TYaPafI+65tswvnZvhH8FqcjERLbBZPPvYsvinkfg==} peerDependencies: eslint: '>=5' dependencies: eslint: 8.57.0 is-valid-element-name: 1.0.0 js-levenshtein-esm: 1.2.0 - dev: true + dev: false + + /eslint-rule-extender@0.0.1: + resolution: {integrity: sha512-F0j1Twve3lamL3J0rRSVAynlp58sDPG39JFcQrM+u9Na7PmCgiPHNODh6YE9mduaGcsn3NBqbf6LZRj0cLr8Ng==} + engines: {node: '>=10'} + dev: false /eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} @@ -11758,6 +11835,11 @@ packages: hasown: 2.0.2 side-channel: 1.0.6 + /intl-list-format@1.0.3: + resolution: {integrity: sha512-VNF1Mh0K1xALXkz/5QsK1gfKRvEQO/jWaniTGAzQvbzGr5uyGDskQrRjnf6Qnbc9/JRbNE8BQtTg6iWuFrZorw==} + engines: {node: '>=4.0.0'} + dev: false + /invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} dependencies: @@ -12064,6 +12146,7 @@ packages: /is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + dev: false /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} @@ -12142,7 +12225,7 @@ packages: resolution: {integrity: sha512-GZITEJY2LkSjQfaIPBha7eyZv+ge0PhBR7KITeCCWvy7VBQrCUdFkvpI+HrAPQjVtVjy1LvlEkqQTHckoszruw==} dependencies: is-potential-custom-element-name: 1.0.1 - dev: true + dev: false /is-weakmap@2.0.2: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} @@ -12338,34 +12421,6 @@ packages: - babel-plugin-macros - supports-color - /jest-cli@29.7.0: - resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/core': 29.7.0 - '@jest/test-result': 29.7.0 - '@jest/types': 29.6.3 - chalk: 4.1.2 - create-jest: 29.7.0 - exit: 0.1.2 - import-local: 3.1.0 - jest-config: 29.7.0(@types/node@20.11.30) - jest-util: 29.7.0 - jest-validate: 29.7.0 - yargs: 17.7.2 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - dev: true - /jest-cli@29.7.0(@types/node@20.11.30): resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -12717,27 +12772,6 @@ packages: merge-stream: 2.0.0 supports-color: 8.1.1 - /jest@29.7.0: - resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/core': 29.7.0 - '@jest/types': 29.6.3 - import-local: 3.1.0 - jest-cli: 29.7.0 - transitivePeerDependencies: - - '@types/node' - - babel-plugin-macros - - supports-color - - ts-node - dev: true - /jest@29.7.0(@types/node@20.11.30): resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -12773,7 +12807,7 @@ packages: /js-levenshtein-esm@1.2.0: resolution: {integrity: sha512-fzreKVq1eD7eGcQr7MtRpQH94f8gIfhdrc7yeih38xh684TNMK9v5aAu2wxfIRMk/GpAJRrzcirMAPIaSDaByQ==} - dev: true + dev: false /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} @@ -14561,6 +14595,13 @@ packages: dependencies: brace-expansion: 2.0.1 + /minimatch@9.0.4: + resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: false + /minimist-options@4.1.0: resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==} engines: {node: '>= 6'} @@ -15622,11 +15663,18 @@ packages: resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} dependencies: parse5: 6.0.1 - dev: true + dev: false + + /parse5@4.0.0: + resolution: {integrity: sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==} + dev: false + + /parse5@5.1.1: + resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==} + dev: false /parse5@6.0.1: resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} - dev: true /parse5@7.1.2: resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} @@ -16613,6 +16661,7 @@ packages: /requireindex@1.2.0: resolution: {integrity: sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==} engines: {node: '>=0.10.5'} + dev: false /requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} @@ -17943,6 +17992,7 @@ packages: typescript: '>=4.2.0' dependencies: typescript: 5.4.3 + dev: false /ts-dedent@2.2.0: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==}