run knip in lint workflow

This commit is contained in:
hobbes7878 2024-08-22 11:56:58 +01:00
parent 094a546faa
commit de79dce1bf
6 changed files with 15 additions and 318 deletions

View file

@ -40,3 +40,7 @@ jobs:
- id: format
name: Format code
run: npm run format:check
- id: check-deps
name: Check for unused scripts and dependencies
run: npm run knip

View file

@ -1,7 +1,7 @@
import type { KnipConfig } from 'knip';
const config: KnipConfig = {
entry: ['src/index.js'],
entry: ['src/index.js', 'src/**/*.stories.{svelte,mdx}', 'src/docs/**'],
project: [
'src/**/*.{mdx,js,jsx,ts,svelte}',
'bin/**/*.{js,cjs}',
@ -11,9 +11,9 @@ const config: KnipConfig = {
ignoreDependencies: [
/@types\/.*/,
/@storybook\/.*/,
/@fortawesome\/.*/,
'normalize.css',
'@mdx-js/mdx',
'chromatic',
'prop-types',
'postcss',
],
};

286
package-lock.json generated
View file

@ -25,10 +25,8 @@
"svelte-search": "^2.0.1"
},
"devDependencies": {
"@americanexpress/css-to-js": "^1.0.1",
"@changesets/cli": "^2.27.7",
"@chromatic-com/storybook": "^1.7.0",
"@evilmartians/lefthook": "^1.7.14",
"@reuters-graphics/yaks-eslint": "^0.0.6",
"@reuters-graphics/yaks-prettier": "^0.0.4",
"@storybook/addon-actions": "^8.2.9",
@ -61,10 +59,8 @@
"@types/proper-url-join": "^2.1.1",
"@types/pym.js": "^1.3.2",
"@types/react-syntax-highlighter": "^15.5.7",
"autoprefixer": "^10.4.14",
"change-case": "^4.1.2",
"chromatic": "^7.1.0",
"colord": "^2.9.3",
"css-color-converter": "^2.0.0",
"deep-object-diff": "^1.1.9",
"eslint": "^9.9.0",
@ -76,8 +72,8 @@
"mermaid": "^10.9.1",
"npm-run-all": "^4.1.5",
"postcss": "^8.4.41",
"postcss-load-config": "^6.0.1",
"prettier": "^3.3.3",
"prettier-plugin-svelte": "^3.2.6",
"prompts": "^2.4.2",
"prop-types": "^15.8.1",
"publint": "^0.2.10",
@ -91,8 +87,6 @@
"storybook": "^8.2.9",
"svelte": "^4.2.18",
"svelte-loader": "^3.2.3",
"svelte-preprocess": "^6.0.2",
"svelte2tsx": "^0.6.27",
"tiny-glob": "^0.2.9",
"typescript": "^5.5.4",
"vite": "^5.4.2"
@ -111,18 +105,6 @@
"dev": true,
"license": "MIT"
},
"node_modules/@americanexpress/css-to-js": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@americanexpress/css-to-js/-/css-to-js-1.0.1.tgz",
"integrity": "sha512-bblN1i5kZIdsmWU7CSpK/HVtUItq5Ly1Qubgbe+cGZx181Ji3F0VrQt6+DdYPgkPENUFdFqJHDfgVE1tQz5B/Q==",
"dev": true,
"dependencies": {
"css": "^2.2.4"
},
"bin": {
"css-to-js": "bin/cssToJs.js"
}
},
"node_modules/@ampproject/remapping": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
@ -3789,26 +3771,6 @@
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}
},
"node_modules/@evilmartians/lefthook": {
"version": "1.7.14",
"resolved": "https://registry.npmjs.org/@evilmartians/lefthook/-/lefthook-1.7.14.tgz",
"integrity": "sha512-0FPRdmd7hIZXjTQKQjLnmqxx4xGRIM1oGN9pJ4PyI14tOqEAwstmLIbauqQpTVTj3MAPeylsQVXh9RGaq/F2/A==",
"cpu": [
"x64",
"arm64",
"ia32"
],
"dev": true,
"hasInstallScript": true,
"os": [
"darwin",
"linux",
"win32"
],
"bin": {
"lefthook": "bin/index.js"
}
},
"node_modules/@fortawesome/fontawesome-common-types": {
"version": "0.2.36",
"resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-0.2.36.tgz",
@ -7112,55 +7074,6 @@
"node": ">=4"
}
},
"node_modules/atob": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
"integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
"dev": true,
"bin": {
"atob": "bin/atob.js"
},
"engines": {
"node": ">= 4.5.0"
}
},
"node_modules/autoprefixer": {
"version": "10.4.20",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz",
"integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==",
"dev": true,
"funding": [
{
"type": "opencollective",
"url": "https://opencollective.com/postcss/"
},
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/autoprefixer"
},
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"dependencies": {
"browserslist": "^4.23.3",
"caniuse-lite": "^1.0.30001646",
"fraction.js": "^4.3.7",
"normalize-range": "^0.1.2",
"picocolors": "^1.0.1",
"postcss-value-parser": "^4.2.0"
},
"bin": {
"autoprefixer": "bin/autoprefixer"
},
"engines": {
"node": "^10 || ^12 || >=14"
},
"peerDependencies": {
"postcss": "^8.1.0"
}
},
"node_modules/available-typed-arrays": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
@ -7837,12 +7750,6 @@
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
"node_modules/colord": {
"version": "2.9.3",
"resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz",
"integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==",
"dev": true
},
"node_modules/comma-separated-tokens": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz",
@ -8034,18 +7941,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/css": {
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz",
"integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==",
"dev": true,
"dependencies": {
"inherits": "^2.0.3",
"source-map": "^0.6.1",
"source-map-resolve": "^0.5.2",
"urix": "^0.1.0"
}
},
"node_modules/css-color-converter": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/css-color-converter/-/css-color-converter-2.0.0.tgz",
@ -10541,19 +10436,6 @@
"node": ">= 0.6"
}
},
"node_modules/fraction.js": {
"version": "4.3.7",
"resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz",
"integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==",
"dev": true,
"engines": {
"node": "*"
},
"funding": {
"type": "patreon",
"url": "https://github.com/sponsors/rawify"
}
},
"node_modules/fresh": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
@ -12348,6 +12230,8 @@
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz",
"integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==",
"dev": true,
"optional": true,
"peer": true,
"engines": {
"node": ">=14"
},
@ -20719,15 +20603,6 @@
"node": ">=0.10.0"
}
},
"node_modules/normalize-range": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz",
"integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/npm-bundled": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-2.0.1.tgz",
@ -21888,49 +21763,6 @@
"node": "^10 || ^12 || >=14"
}
},
"node_modules/postcss-load-config": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-6.0.1.tgz",
"integrity": "sha512-oPtTM4oerL+UXmx+93ytZVN82RrlY/wPUV8IeDxFrzIjXOLF1pN+EmKPLbubvKHT2HC20xXsCAH2Z+CKV6Oz/g==",
"dev": true,
"funding": [
{
"type": "opencollective",
"url": "https://opencollective.com/postcss/"
},
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"license": "MIT",
"dependencies": {
"lilconfig": "^3.1.1"
},
"engines": {
"node": ">= 18"
},
"peerDependencies": {
"jiti": ">=1.21.0",
"postcss": ">=8.0.9",
"tsx": "^4.8.1",
"yaml": "^2.4.2"
},
"peerDependenciesMeta": {
"jiti": {
"optional": true
},
"postcss": {
"optional": true
},
"tsx": {
"optional": true
},
"yaml": {
"optional": true
}
}
},
"node_modules/postcss-safe-parser": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz",
@ -21986,12 +21818,6 @@
"node": ">=4"
}
},
"node_modules/postcss-value-parser": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
"integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
"dev": true
},
"node_modules/preferred-pm": {
"version": "3.1.4",
"resolved": "https://registry.npmjs.org/preferred-pm/-/preferred-pm-3.1.4.tgz",
@ -22049,6 +21875,7 @@
"resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-3.2.6.tgz",
"integrity": "sha512-Y1XWLw7vXUQQZmgv1JAEiLcErqUniAF2wO7QJsw8BVMvpLET2dI5WpEIEJx1r11iHVdSMzQxivyfrH9On9t2IQ==",
"dev": true,
"license": "MIT",
"peerDependencies": {
"prettier": "^3.0.0",
"svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0"
@ -23402,13 +23229,6 @@
"node": ">=8"
}
},
"node_modules/resolve-url": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
"integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==",
"deprecated": "https://github.com/lydell/resolve-url#deprecated",
"dev": true
},
"node_modules/restore-cursor": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
@ -23942,20 +23762,6 @@
"node": ">=0.10.0"
}
},
"node_modules/source-map-resolve": {
"version": "0.5.3",
"resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz",
"integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==",
"deprecated": "See https://github.com/lydell/source-map-resolve#deprecated",
"dev": true,
"dependencies": {
"atob": "^2.1.2",
"decode-uri-component": "^0.2.0",
"resolve-url": "^0.2.1",
"source-map-url": "^0.4.0",
"urix": "^0.1.0"
}
},
"node_modules/source-map-support": {
"version": "0.5.21",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
@ -23967,13 +23773,6 @@
"source-map": "^0.6.0"
}
},
"node_modules/source-map-url": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz",
"integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==",
"deprecated": "See https://github.com/lydell/source-map-url#deprecated",
"dev": true
},
"node_modules/space-separated-tokens": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz",
@ -24713,62 +24512,6 @@
"svelte": ">=3.19.0"
}
},
"node_modules/svelte-preprocess": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-6.0.2.tgz",
"integrity": "sha512-OvDTLfaOkkhjprbDKO0SOCkjNYuHy16dbD4SpqbIi6QiabOMHxRT4km5/dzbFFkmW1L0E2INF3MFltG2pgOyKQ==",
"dev": true,
"hasInstallScript": true,
"license": "MIT",
"engines": {
"node": ">= 18.0.0"
},
"peerDependencies": {
"@babel/core": "^7.10.2",
"coffeescript": "^2.5.1",
"less": "^3.11.3 || ^4.0.0",
"postcss": "^7 || ^8",
"postcss-load-config": ">=3",
"pug": "^3.0.0",
"sass": "^1.26.8",
"stylus": ">=0.55",
"sugarss": "^2.0.0 || ^3.0.0 || ^4.0.0",
"svelte": "^4.0.0 || ^5.0.0-next.100 || ^5.0.0",
"typescript": "^5.0.0"
},
"peerDependenciesMeta": {
"@babel/core": {
"optional": true
},
"coffeescript": {
"optional": true
},
"less": {
"optional": true
},
"postcss": {
"optional": true
},
"postcss-load-config": {
"optional": true
},
"pug": {
"optional": true
},
"sass": {
"optional": true
},
"stylus": {
"optional": true
},
"sugarss": {
"optional": true
},
"typescript": {
"optional": true
}
}
},
"node_modules/svelte-search": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/svelte-search/-/svelte-search-2.1.0.tgz",
@ -24783,20 +24526,6 @@
"dequal": "^2.0.3"
}
},
"node_modules/svelte2tsx": {
"version": "0.6.27",
"resolved": "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.6.27.tgz",
"integrity": "sha512-E1uPW1o6VsbRz+nUk3fznZ2lSmCITAJoNu8AYefWSvIwE2pSB01i5sId4RMbWNzfcwCQl1DcgGShCPcldl4rvg==",
"dev": true,
"dependencies": {
"dedent-js": "^1.0.1",
"pascal-case": "^3.1.1"
},
"peerDependencies": {
"svelte": "^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0",
"typescript": "^4.9.4 || ^5.0.0"
}
},
"node_modules/sveltedoc-parser": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/sveltedoc-parser/-/sveltedoc-parser-4.2.1.tgz",
@ -26026,13 +25755,6 @@
"punycode": "^2.1.0"
}
},
"node_modules/urix": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
"integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==",
"deprecated": "Please see https://github.com/lydell/urix#deprecated",
"dev": true
},
"node_modules/util": {
"version": "0.12.5",
"resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz",

View file

@ -38,7 +38,6 @@
"svelte": ">=4"
},
"devDependencies": {
"@americanexpress/css-to-js": "^1.0.1",
"@changesets/cli": "^2.27.7",
"@chromatic-com/storybook": "^1.7.0",
"@reuters-graphics/yaks-eslint": "^0.0.6",
@ -73,10 +72,8 @@
"@types/proper-url-join": "^2.1.1",
"@types/pym.js": "^1.3.2",
"@types/react-syntax-highlighter": "^15.5.7",
"autoprefixer": "^10.4.14",
"change-case": "^4.1.2",
"chromatic": "^7.1.0",
"colord": "^2.9.3",
"css-color-converter": "^2.0.0",
"deep-object-diff": "^1.1.9",
"eslint": "^9.9.0",
@ -88,8 +85,8 @@
"mermaid": "^10.9.1",
"npm-run-all": "^4.1.5",
"postcss": "^8.4.41",
"postcss-load-config": "^6.0.1",
"prettier": "^3.3.3",
"prettier-plugin-svelte": "^3.2.6",
"prompts": "^2.4.2",
"prop-types": "^15.8.1",
"publint": "^0.2.10",
@ -103,8 +100,6 @@
"storybook": "^8.2.9",
"svelte": "^4.2.18",
"svelte-loader": "^3.2.3",
"svelte-preprocess": "^6.0.2",
"svelte2tsx": "^0.6.27",
"tiny-glob": "^0.2.9",
"typescript": "^5.5.4",
"vite": "^5.4.2"

View file

@ -1,24 +0,0 @@
<table class="linechart-data">
<thead
><tr>
<th data-column="Date" data-row="-1">Date </th><th
data-column="S&amp;P 500"
data-row="-1"
>S&amp;P 500
</th><th data-column="Dow" data-row="-1">Dow </th><th
data-column="Nasdaq"
data-row="-1"
>Nasdaq
</th>
</tr></thead
>
<tbody
><tr> <td>December 31, 2021</td><td>0%</td><td>0</td><td>0%</td></tr><tr>
<td>January 3, 2022</td><td>1%</td><td>1</td><td>1%</td></tr
><tr> <td>January 4, 2022</td><td>1%</td><td>1</td><td>0%</td></tr><tr>
<td>January 5, 2022</td><td>1%</td><td>0</td><td>3%</td></tr
><tr> <td>January 6, 2022</td><td>1%</td><td>0</td><td>4%</td></tr><tr>
<td>January 7, 2022</td><td>2%</td><td>0</td><td>5%</td></tr
><tr> <td>January 10, 2022</td><td>2%</td><td>1</td><td>4%</td></tr>
</tbody>
</table>

View file

@ -16,11 +16,11 @@ export function paginateArray(array, pageSize, pageNumber) {
return array.slice((pageNumber - 1) * pageSize, pageNumber * pageSize);
}
export function uniqueAttr(array, attr) {
function uniqueAttr(array, attr) {
return array.map((e) => e[attr]).filter(unique);
}
export function unique(value, index, array) {
function unique(value, index, array) {
return array.indexOf(value) === index;
}