diff --git a/site/.knip.jsonc b/site/.knip.jsonc new file mode 100644 index 0000000000000..f4c082a76ecbf --- /dev/null +++ b/site/.knip.jsonc @@ -0,0 +1,17 @@ +{ + "$schema": "https://unpkg.com/knip@5/schema.json", + "entry": ["./src/index.tsx", "./src/serviceWorker.ts"], + "project": ["./src/**/*.ts", "./src/**/*.tsx", "./e2e/**/*.ts"], + "ignore": ["**/*Generated.ts"], + "ignoreBinaries": ["protoc"], + "ignoreDependencies": [ + "@types/react-virtualized-auto-sizer", + "jest_workaround", + "ts-proto" + ], + // Don't report unused exports of types as long as they are used within the file. + "ignoreExportsUsedInFile": { + "interface": true, + "type": true + } +} diff --git a/site/biome.jsonc b/site/biome.jsonc index d26636fabef18..bc6fa8de6e946 100644 --- a/site/biome.jsonc +++ b/site/biome.jsonc @@ -16,6 +16,9 @@ "useButtonType": { "level": "off" }, "useSemanticElements": { "level": "off" } }, + "correctness": { + "noUnusedImports": "warn" + }, "style": { "noNonNullAssertion": { "level": "off" }, "noParameterAssign": { "level": "off" }, diff --git a/site/e2e/constants.ts b/site/e2e/constants.ts index 98757064c6f3f..4e95d642eac5e 100644 --- a/site/e2e/constants.ts +++ b/site/e2e/constants.ts @@ -78,14 +78,6 @@ export const premiumTestsRequired = Boolean( export const license = process.env.CODER_E2E_LICENSE ?? ""; -/** - * Certain parts of the UI change when organizations are enabled. Organizations - * are enabled by a license entitlement, and license configuration is guaranteed - * to run before any other tests, so having this as a bit of "global state" is - * fine. - */ -export const organizationsEnabled = Boolean(license); - // Disabling terraform tests is optional for environments without Docker + Terraform. // By default, we opt into these tests. export const requireTerraformTests = !process.env.CODER_E2E_DISABLE_TERRAFORM; diff --git a/site/e2e/helpers.ts b/site/e2e/helpers.ts index f4ad6485b2681..71b1c039c5dfb 100644 --- a/site/e2e/helpers.ts +++ b/site/e2e/helpers.ts @@ -81,7 +81,7 @@ export async function login(page: Page, options: LoginOptions = users.owner) { (ctx as any)[Symbol.for("currentUser")] = options; } -export function currentUser(page: Page): LoginOptions { +function currentUser(page: Page): LoginOptions { const ctx = page.context(); // biome-ignore lint/suspicious/noExplicitAny: get the current user const user = (ctx as any)[Symbol.for("currentUser")]; @@ -875,7 +875,7 @@ export const echoResponsesWithExternalAuth = ( }; }; -export const fillParameters = async ( +const fillParameters = async ( page: Page, richParameters: RichParameter[] = [], buildParameters: WorkspaceBuildParameter[] = [], diff --git a/site/e2e/tests/deployment/idpOrgSync.spec.ts b/site/e2e/tests/deployment/idpOrgSync.spec.ts index a693e70007d4d..4f175b93183c0 100644 --- a/site/e2e/tests/deployment/idpOrgSync.spec.ts +++ b/site/e2e/tests/deployment/idpOrgSync.spec.ts @@ -5,7 +5,6 @@ import { deleteOrganization, setupApiCalls, } from "../../api"; -import { users } from "../../constants"; import { login, randomName, requiresLicense } from "../../helpers"; import { beforeCoderTest } from "../../hooks"; diff --git a/site/e2e/tests/organizations/auditLogs.spec.ts b/site/e2e/tests/organizations/auditLogs.spec.ts index 3044d9da2d7ca..0cb92c94a5692 100644 --- a/site/e2e/tests/organizations/auditLogs.spec.ts +++ b/site/e2e/tests/organizations/auditLogs.spec.ts @@ -1,4 +1,4 @@ -import { type Page, expect, test } from "@playwright/test"; +import { expect, test } from "@playwright/test"; import { createOrganization, createOrganizationMember, diff --git a/site/package.json b/site/package.json index 8a08e837dc8a5..265756d773594 100644 --- a/site/package.json +++ b/site/package.json @@ -13,10 +13,11 @@ "dev": "vite", "format": "biome format --write .", "format:check": "biome format .", - "lint": "pnpm run lint:check && pnpm run lint:types && pnpm run lint:circular-deps", + "lint": "pnpm run lint:check && pnpm run lint:types && pnpm run lint:circular-deps && knip", "lint:check": " biome lint --error-on-warnings .", "lint:circular-deps": "dpdm --no-tree --no-warning -T ./src/App.tsx", - "lint:fix": " biome lint --error-on-warnings --write .", + "lint:knip": "knip", + "lint:fix": " biome lint --error-on-warnings --write . && knip --fix", "lint:types": "tsc -p .", "playwright:install": "playwright install --with-deps chromium", "playwright:test": "playwright test --config=e2e/playwright.config.ts", @@ -29,7 +30,6 @@ "test:ci": "jest --selectProjects test --silent", "test:coverage": "jest --selectProjects test --collectCoverage", "test:watch": "jest --selectProjects test --watch", - "test:storybook": "test-storybook", "stats": "STATS=true pnpm build && npx http-server ./stats -p 8081 -c-1", "deadcode": "ts-prune | grep -v \".stories\\|.config\\|e2e\\|__mocks__\\|used in module\\|testHelpers\\|typesGenerated\" || echo \"No deadcode found.\"", "update-emojis": "cp -rf ./node_modules/emoji-datasource-apple/img/apple/64/* ./static/emojis" @@ -68,7 +68,6 @@ "@radix-ui/react-slot": "1.1.1", "@radix-ui/react-switch": "1.1.1", "@radix-ui/react-tooltip": "1.1.7", - "@radix-ui/react-visually-hidden": "1.1.0", "@tanstack/react-query-devtools": "4.35.3", "@xterm/addon-canvas": "0.7.0", "@xterm/addon-fit": "0.10.0", @@ -78,10 +77,8 @@ "@xterm/xterm": "5.5.0", "ansi-to-html": "0.7.2", "axios": "1.8.2", - "canvas": "3.1.0", "chart.js": "4.4.0", "chartjs-adapter-date-fns": "3.0.0", - "chartjs-plugin-annotation": "3.0.1", "chroma-js": "2.4.2", "class-variance-authority": "0.7.1", "clsx": "2.1.1", @@ -91,7 +88,6 @@ "cronstrue": "2.50.0", "date-fns": "2.30.0", "dayjs": "1.11.13", - "emoji-datasource-apple": "15.1.2", "emoji-mart": "5.6.0", "file-saver": "2.0.5", "formik": "2.4.6", @@ -149,7 +145,6 @@ "@tailwindcss/typography": "0.5.16", "@testing-library/jest-dom": "6.6.3", "@testing-library/react": "14.3.1", - "@testing-library/react-hooks": "8.0.1", "@testing-library/user-event": "14.6.1", "@types/chroma-js": "2.4.0", "@types/color-convert": "2.0.4", @@ -181,6 +176,7 @@ "jest-location-mock": "2.0.0", "jest-websocket-mock": "2.5.0", "jest_workaround": "0.1.14", + "knip": "5.51.0", "msw": "2.4.8", "postcss": "8.5.1", "protobufjs": "7.4.0", @@ -188,9 +184,7 @@ "ssh2": "1.16.0", "storybook": "8.5.3", "storybook-addon-remix-react-router": "3.1.0", - "storybook-react-context": "0.7.0", "tailwindcss": "3.4.17", - "ts-node": "10.9.2", "ts-proto": "1.164.0", "ts-prune": "0.10.3", "typescript": "5.6.3", diff --git a/site/pnpm-lock.yaml b/site/pnpm-lock.yaml index 15bc6709ef011..7fea2e807e086 100644 --- a/site/pnpm-lock.yaml +++ b/site/pnpm-lock.yaml @@ -115,9 +115,6 @@ importers: '@radix-ui/react-tooltip': specifier: 1.1.7 version: 1.1.7(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-visually-hidden': - specifier: 1.1.0 - version: 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tanstack/react-query-devtools': specifier: 4.35.3 version: 4.35.3(@tanstack/react-query@4.35.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -145,18 +142,12 @@ importers: axios: specifier: 1.8.2 version: 1.8.2 - canvas: - specifier: 3.1.0 - version: 3.1.0 chart.js: specifier: 4.4.0 version: 4.4.0 chartjs-adapter-date-fns: specifier: 3.0.0 version: 3.0.0(chart.js@4.4.0)(date-fns@2.30.0) - chartjs-plugin-annotation: - specifier: 3.0.1 - version: 3.0.1(chart.js@4.4.0) chroma-js: specifier: 2.4.2 version: 2.4.2 @@ -184,9 +175,6 @@ importers: dayjs: specifier: 1.11.13 version: 1.11.13 - emoji-datasource-apple: - specifier: 15.1.2 - version: 15.1.2 emoji-mart: specifier: 5.6.0 version: 5.6.0 @@ -353,9 +341,6 @@ importers: '@testing-library/react': specifier: 14.3.1 version: 14.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@testing-library/react-hooks': - specifier: 8.0.1 - version: 8.0.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@testing-library/user-event': specifier: 14.6.1 version: 14.6.1(@testing-library/dom@10.4.0) @@ -436,10 +421,10 @@ importers: version: 2.5.2 jest-environment-jsdom: specifier: 29.5.0 - version: 29.5.0(canvas@3.1.0) + version: 29.5.0 jest-fixed-jsdom: specifier: 0.0.9 - version: 0.0.9(jest-environment-jsdom@29.5.0(canvas@3.1.0)) + version: 0.0.9(jest-environment-jsdom@29.5.0) jest-location-mock: specifier: 2.0.0 version: 2.0.0 @@ -449,6 +434,9 @@ importers: jest_workaround: specifier: 0.1.14 version: 0.1.14(@swc/core@1.3.38)(@swc/jest@0.2.37(@swc/core@1.3.38)) + knip: + specifier: 5.51.0 + version: 5.51.0(@types/node@20.17.16)(typescript@5.6.3) msw: specifier: 2.4.8 version: 2.4.8(typescript@5.6.3) @@ -470,15 +458,9 @@ importers: storybook-addon-remix-react-router: specifier: 3.1.0 version: 3.1.0(@storybook/blocks@8.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.5.3(prettier@3.4.1)))(@storybook/channels@8.1.11)(@storybook/components@8.4.6(storybook@8.5.3(prettier@3.4.1)))(@storybook/core-events@8.1.11)(@storybook/manager-api@8.4.6(storybook@8.5.3(prettier@3.4.1)))(@storybook/preview-api@8.5.3(storybook@8.5.3(prettier@3.4.1)))(@storybook/theming@8.4.6(storybook@8.5.3(prettier@3.4.1)))(react-dom@18.3.1(react@18.3.1))(react-router-dom@6.26.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) - storybook-react-context: - specifier: 0.7.0 - version: 0.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.5.3(prettier@3.4.1)) tailwindcss: specifier: 3.4.17 version: 3.4.17(ts-node@10.9.2(@swc/core@1.3.38)(@types/node@20.17.16)(typescript@5.6.3)) - ts-node: - specifier: 10.9.2 - version: 10.9.2(@swc/core@1.3.38)(@types/node@20.17.16)(typescript@5.6.3) ts-proto: specifier: 1.164.0 version: 1.164.0 @@ -1991,19 +1973,6 @@ packages: '@types/react': optional: true - '@radix-ui/react-visually-hidden@1.1.0': - resolution: {integrity: sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==, tarball: https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.0.tgz} - peerDependencies: - '@types/react': '*' - '@types/react-dom': '*' - react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc - peerDependenciesMeta: - '@types/react': - optional: true - '@types/react-dom': - optional: true - '@radix-ui/react-visually-hidden@1.1.1': resolution: {integrity: sha512-vVfA2IZ9q/J+gEamvj761Oq1FpWgCDaNOOIfbPVp2MVPLEomUr5+Vf7kJGwQ24YxZSlQVar7Bes8kyTo5Dshpg==, tarball: https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.1.tgz} peerDependencies: @@ -2476,22 +2445,6 @@ packages: resolution: {integrity: sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA==, tarball: https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.6.3.tgz} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} - '@testing-library/react-hooks@8.0.1': - resolution: {integrity: sha512-Aqhl2IVmLt8IovEVarNDFuJDVWVvhnr9/GCU6UUnrYXwgDFF9h2L2o2P9KBni1AST5sT6riAyoukFLyjQUgD/g==, tarball: https://registry.npmjs.org/@testing-library/react-hooks/-/react-hooks-8.0.1.tgz} - engines: {node: '>=12'} - peerDependencies: - '@types/react': ^16.9.0 || ^17.0.0 - react: ^16.9.0 || ^17.0.0 - react-dom: ^16.9.0 || ^17.0.0 - react-test-renderer: ^16.9.0 || ^17.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - react-dom: - optional: true - react-test-renderer: - optional: true - '@testing-library/react@14.3.1': resolution: {integrity: sha512-H99XjUhWQw0lTgyMN05W3xQG1Nh4lq574D8keFf1dDoNTJgp66VbJozRaczoF+wsiaPJNt/TcnfpLGufGxSrZQ==, tarball: https://registry.npmjs.org/@testing-library/react/-/react-14.3.1.tgz} engines: {node: '>=14'} @@ -3120,10 +3073,6 @@ packages: caniuse-lite@1.0.30001690: resolution: {integrity: sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==, tarball: https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz} - canvas@3.1.0: - resolution: {integrity: sha512-tTj3CqqukVJ9NgSahykNwtGda7V33VLObwrHfzT0vqJXu7J4d4C/7kQQW3fOEGDfZZoILPut5H00gOjyttPGyg==, tarball: https://registry.npmjs.org/canvas/-/canvas-3.1.0.tgz} - engines: {node: ^18.12.0 || >= 20.9.0} - case-anything@2.1.13: resolution: {integrity: sha512-zlOQ80VrQ2Ue+ymH5OuM/DlDq64mEm+B9UTdHULv5osUMD6HalNTblf2b1u/m6QecjsnOkBpqVZ+XPwIVsy7Ng==, tarball: https://registry.npmjs.org/case-anything/-/case-anything-2.1.13.tgz} engines: {node: '>=12.13'} @@ -3182,11 +3131,6 @@ packages: chart.js: '>=2.8.0' date-fns: '>=2.0.0' - chartjs-plugin-annotation@3.0.1: - resolution: {integrity: sha512-hlIrXXKqSDgb+ZjVYHefmlZUXK8KbkCPiynSVrTb/HjTMkT62cOInaT1NTQCKtxKKOm9oHp958DY3RTAFKtkHg==, tarball: https://registry.npmjs.org/chartjs-plugin-annotation/-/chartjs-plugin-annotation-3.0.1.tgz} - peerDependencies: - chart.js: '>=4.0.0' - check-error@2.1.1: resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==, tarball: https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz} engines: {node: '>= 16'} @@ -3195,9 +3139,6 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==, tarball: https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz} engines: {node: '>= 8.10.0'} - chownr@1.1.4: - resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==, tarball: https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz} - chroma-js@2.4.2: resolution: {integrity: sha512-U9eDw6+wt7V8z5NncY2jJfZa+hUH8XEj8FQHgFJTrUFnJfXYf4Ml4adI2vXZOjqRDpFWtYVWypDfZwnJ+HIR4A==, tarball: https://registry.npmjs.org/chroma-js/-/chroma-js-2.4.2.tgz} @@ -3472,10 +3413,6 @@ packages: decode-named-character-reference@1.0.2: resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==, tarball: https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz} - decompress-response@6.0.0: - resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==, tarball: https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz} - engines: {node: '>=10'} - dedent@1.5.3: resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==, tarball: https://registry.npmjs.org/dedent/-/dedent-1.5.3.tgz} peerDependencies: @@ -3491,10 +3428,6 @@ packages: deep-equal@2.2.2: resolution: {integrity: sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA==, tarball: https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.2.tgz} - deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==, tarball: https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz} - engines: {node: '>=4.0.0'} - deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, tarball: https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz} @@ -3546,10 +3479,6 @@ packages: engines: {node: '>=0.10'} hasBin: true - detect-libc@2.0.3: - resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==, tarball: https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz} - engines: {node: '>=8'} - detect-newline@3.1.0: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==, tarball: https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz} engines: {node: '>=8'} @@ -3606,6 +3535,9 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==, tarball: https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz} + easy-table@1.2.0: + resolution: {integrity: sha512-OFzVOv03YpvtcWGe5AayU5G2hgybsg3iqA6drU8UaoZyB9jLGMTrz9+asnLp/E+6qPh88yEI1gvyZFZ41dmgww==, tarball: https://registry.npmjs.org/easy-table/-/easy-table-1.2.0.tgz} + ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==, tarball: https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz} @@ -3619,9 +3551,6 @@ packages: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==, tarball: https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz} engines: {node: '>=12'} - emoji-datasource-apple@15.1.2: - resolution: {integrity: sha512-32UZTK36x4DlvgD1smkmBlKmmJH7qUr5Qut4U/on2uQLGqNXGbZiheq6/LEA8xRQEUrmNrGEy25wpEI6wvYmTg==, tarball: https://registry.npmjs.org/emoji-datasource-apple/-/emoji-datasource-apple-15.1.2.tgz} - emoji-mart@5.6.0: resolution: {integrity: sha512-eJp3QRe79pjwa+duv+n7+5YsNhRcMl812EcFVwrnRvYKoNPoQb5qxU8DG6Bgwji0akHdp6D4Ln6tYLG58MFSow==, tarball: https://registry.npmjs.org/emoji-mart/-/emoji-mart-5.6.0.tgz} @@ -3639,8 +3568,9 @@ packages: resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==, tarball: https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz} engines: {node: '>= 0.8'} - end-of-stream@1.4.4: - resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==, tarball: https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz} + enhanced-resolve@5.18.1: + resolution: {integrity: sha512-ZSW3ma5GkcQBIpwZTSRAI8N71Uuwgs93IezB7mf7R60tC8ZbJideoDNKjHn2O9KIlx6rkGTTEk1xUCK2E1Y2Yg==, tarball: https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.1.tgz} + engines: {node: '>=10.13.0'} entities@2.2.0: resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==, tarball: https://registry.npmjs.org/entities/-/entities-2.2.0.tgz} @@ -3772,10 +3702,6 @@ packages: resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==, tarball: https://registry.npmjs.org/exit/-/exit-0.1.2.tgz} engines: {node: '>= 0.8.0'} - expand-template@2.0.3: - resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==, tarball: https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz} - engines: {node: '>=6'} - expect@29.7.0: resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==, tarball: https://registry.npmjs.org/expect/-/expect-29.7.0.tgz} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3898,9 +3824,6 @@ packages: front-matter@4.0.2: resolution: {integrity: sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==, tarball: https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz} - fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==, tarball: https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz} - fs-extra@11.2.0: resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==, tarball: https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz} engines: {node: '>=14.14'} @@ -3952,9 +3875,6 @@ packages: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==, tarball: https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz} engines: {node: '>=10'} - github-from-package@0.0.0: - resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==, tarball: https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz} - glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, tarball: https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz} engines: {node: '>= 6'} @@ -4122,9 +4042,6 @@ packages: inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, tarball: https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz} - ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==, tarball: https://registry.npmjs.org/ini/-/ini-1.3.8.tgz} - inline-style-parser@0.2.4: resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==, tarball: https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz} @@ -4525,6 +4442,10 @@ packages: resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==, tarball: https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz} hasBin: true + jiti@2.4.2: + resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==, tarball: https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz} + hasBin: true + js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, tarball: https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz} @@ -4587,6 +4508,14 @@ packages: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==, tarball: https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz} engines: {node: '>=6'} + knip@5.51.0: + resolution: {integrity: sha512-gw5TzLt9FikIk1oPWDc7jPRb/+L3Aw1ia25hWUQBb+hXS/Rbdki/0rrzQygjU5/CVYnRWYqc1kgdNi60Jm1lPg==, tarball: https://registry.npmjs.org/knip/-/knip-5.51.0.tgz} + engines: {node: '>=18.18.0'} + hasBin: true + peerDependencies: + '@types/node': '>=18' + typescript: '>=5.0.4' + leven@3.1.0: resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==, tarball: https://registry.npmjs.org/leven/-/leven-3.1.0.tgz} engines: {node: '>=6'} @@ -4941,10 +4870,6 @@ packages: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, tarball: https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz} engines: {node: '>=6'} - mimic-response@3.1.0: - resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==, tarball: https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz} - engines: {node: '>=10'} - min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==, tarball: https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz} engines: {node: '>=4'} @@ -4963,9 +4888,6 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==, tarball: https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz} engines: {node: '>=16 || 14 >=14.17'} - mkdirp-classic@0.5.3: - resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==, tarball: https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz} - mkdirp@1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==, tarball: https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz} engines: {node: '>=10'} @@ -5012,9 +4934,6 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - napi-build-utils@2.0.0: - resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==, tarball: https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz} - natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==, tarball: https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz} @@ -5022,13 +4941,6 @@ packages: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==, tarball: https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz} engines: {node: '>= 0.6'} - node-abi@3.74.0: - resolution: {integrity: sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==, tarball: https://registry.npmjs.org/node-abi/-/node-abi-3.74.0.tgz} - engines: {node: '>=10'} - - node-addon-api@7.1.1: - resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==, tarball: https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz} - node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==, tarball: https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz} @@ -5143,6 +5055,10 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, tarball: https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz} engines: {node: '>=8'} + parse-ms@4.0.0: + resolution: {integrity: sha512-TXfryirbmq34y8QBwgqCVLi+8oA3oWx2eAnSn62ITyEhEYaWRlVZ2DvMM9eZbMs/RfxPu/PK/aBLyGj4IrqMHw==, tarball: https://registry.npmjs.org/parse-ms/-/parse-ms-4.0.0.tgz} + engines: {node: '>=18'} + parse5@7.1.2: resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==, tarball: https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz} @@ -5272,11 +5188,6 @@ packages: resolution: {integrity: sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==, tarball: https://registry.npmjs.org/postcss/-/postcss-8.5.1.tgz} engines: {node: ^10 || ^12 || >=14} - prebuild-install@7.1.3: - resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==, tarball: https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz} - engines: {node: '>=10'} - hasBin: true - prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, tarball: https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz} engines: {node: '>= 0.8.0'} @@ -5298,6 +5209,10 @@ packages: resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==, tarball: https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + pretty-ms@9.2.0: + resolution: {integrity: sha512-4yf0QO/sllf/1zbZWYnvWw3NxCQwLXKzIj0G849LSufP15BXKM0rbD2Z3wVnkMfjdn/CB0Dpp444gYAACdsplg==, tarball: https://registry.npmjs.org/pretty-ms/-/pretty-ms-9.2.0.tgz} + engines: {node: '>=18'} + prismjs@1.30.0: resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==, tarball: https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz} engines: {node: '>=6'} @@ -5342,9 +5257,6 @@ packages: psl@1.9.0: resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==, tarball: https://registry.npmjs.org/psl/-/psl-1.9.0.tgz} - pump@3.0.2: - resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==, tarball: https://registry.npmjs.org/pump/-/pump-3.0.2.tgz} - punycode@2.3.1: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==, tarball: https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz} engines: {node: '>=6'} @@ -5370,10 +5282,6 @@ packages: resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==, tarball: https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz} engines: {node: '>= 0.8'} - rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==, tarball: https://registry.npmjs.org/rc/-/rc-1.2.8.tgz} - hasBin: true - react-chartjs-2@5.3.0: resolution: {integrity: sha512-UfZZFnDsERI3c3CZGxzvNJd02SHjaSJ8kgW1djn65H1KK8rehwTjyrRKOG3VTMG8wtHZ5rgAO5oTHtHi9GCCmw==, tarball: https://registry.npmjs.org/react-chartjs-2/-/react-chartjs-2-5.3.0.tgz} peerDependencies: @@ -5411,12 +5319,6 @@ packages: peerDependencies: react: ^18.3.1 - react-error-boundary@3.1.4: - resolution: {integrity: sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==, tarball: https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-3.1.4.tgz} - engines: {node: '>=10', npm: '>=6'} - peerDependencies: - react: '>=16.13.1' - react-fast-compare@2.0.4: resolution: {integrity: sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==, tarball: https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz} @@ -5765,12 +5667,6 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==, tarball: https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz} engines: {node: '>=14'} - simple-concat@1.0.1: - resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==, tarball: https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz} - - simple-get@4.0.1: - resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==, tarball: https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz} - sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==, tarball: https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz} @@ -5778,6 +5674,10 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, tarball: https://registry.npmjs.org/slash/-/slash-3.0.0.tgz} engines: {node: '>=8'} + smol-toml@1.3.4: + resolution: {integrity: sha512-UOPtVuYkzYGee0Bd2Szz8d2G3RfMfJ2t3qVdZUAozZyAk+a0Sxa+QKix0YCwjL/A1RR0ar44nCxaoN9FxdJGwA==, tarball: https://registry.npmjs.org/smol-toml/-/smol-toml-1.3.4.tgz} + engines: {node: '>= 18'} + source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==, tarball: https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz} engines: {node: '>=0.10.0'} @@ -5844,12 +5744,6 @@ packages: react-dom: optional: true - storybook-react-context@0.7.0: - resolution: {integrity: sha512-esCfwMhnHfJZQipRHfVpjH5mYBfOjj2JEi5XFAZ2BXCl3mIEypMdNCQZmNUvuR1u8EsQWClArhtL0h+FCiLcrw==, tarball: https://registry.npmjs.org/storybook-react-context/-/storybook-react-context-0.7.0.tgz} - peerDependencies: - react: '>=18' - react-dom: '>=18' - storybook@8.5.3: resolution: {integrity: sha512-2WtNBZ45u1AhviRU+U+ld588tH8gDa702dNSq5C8UBaE9PlOsazGsyp90dw1s9YRvi+ejrjKAupQAU0GwwUiVg==, tarball: https://registry.npmjs.org/storybook/-/storybook-8.5.3.tgz} hasBin: true @@ -5911,14 +5805,14 @@ packages: resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==, tarball: https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz} engines: {node: '>=12'} - strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==, tarball: https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz} - engines: {node: '>=0.10.0'} - strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, tarball: https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz} engines: {node: '>=8'} + strip-json-comments@5.0.1: + resolution: {integrity: sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==, tarball: https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.1.tgz} + engines: {node: '>=14.16'} + style-to-object@1.0.8: resolution: {integrity: sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==, tarball: https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz} @@ -5966,11 +5860,8 @@ packages: engines: {node: '>=14.0.0'} hasBin: true - tar-fs@2.1.2: - resolution: {integrity: sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==, tarball: https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.2.tgz} - - tar-stream@2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==, tarball: https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz} + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, tarball: https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz} engines: {node: '>=6'} telejson@7.2.0: @@ -6073,8 +5964,8 @@ packages: '@swc/wasm': optional: true - ts-poet@6.6.0: - resolution: {integrity: sha512-4vEH/wkhcjRPFOdBwIh9ItO6jOoumVLRF4aABDX5JSNEubSqwOulihxQPqai+OkuygJm3WYMInxXQX4QwVNMuw==, tarball: https://registry.npmjs.org/ts-poet/-/ts-poet-6.6.0.tgz} + ts-poet@6.11.0: + resolution: {integrity: sha512-r5AGF8vvb+GjBsnqiTqbLhN1/U2FJt6BI+k0dfCrkKzWvUhNlwMmq9nDHuucHs45LomgHjZPvYj96dD3JawjJA==, tarball: https://registry.npmjs.org/ts-poet/-/ts-poet-6.11.0.tgz} ts-proto-descriptors@1.15.0: resolution: {integrity: sha512-TYyJ7+H+7Jsqawdv+mfsEpZPTIj9siDHS6EMCzG/z3b/PZiphsX+mWtqFfFVe5/N0Th6V3elK9lQqjnrgTOfrg==, tarball: https://registry.npmjs.org/ts-proto-descriptors/-/ts-proto-descriptors-1.15.0.tgz} @@ -6100,9 +5991,6 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==, tarball: https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz} - tunnel-agent@0.6.0: - resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==, tarball: https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz} - tween-functions@1.2.0: resolution: {integrity: sha512-PZBtLYcCLtEcjL14Fzb1gSxPBeL7nWvGhO5ZFPGqziCcr8uvHp0NDmdjBchp6KHL+tExcg0m3NISmKxhU394dA==, tarball: https://registry.npmjs.org/tween-functions/-/tween-functions-1.2.0.tgz} @@ -6521,6 +6409,15 @@ packages: yup@1.6.1: resolution: {integrity: sha512-JED8pB50qbA4FOkDol0bYF/p60qSEDQqBD0/qeIrUCG1KbPBIQ776fCUNb9ldbPcSTxA69g/47XTo4TqWiuXOA==, tarball: https://registry.npmjs.org/yup/-/yup-1.6.1.tgz} + zod-validation-error@3.4.0: + resolution: {integrity: sha512-ZOPR9SVY6Pb2qqO5XHt+MkkTRxGXb4EVtnjc9JpXUOtUB1T9Ru7mZOT361AN3MsetVe7R0a1KZshJDZdgp9miQ==, tarball: https://registry.npmjs.org/zod-validation-error/-/zod-validation-error-3.4.0.tgz} + engines: {node: '>=18.0.0'} + peerDependencies: + zod: ^3.18.0 + + zod@3.24.3: + resolution: {integrity: sha512-HhY1oqzWCQWuUqvBFnsyrtZRhyPeR7SUGv+C4+MsisMuVfSPx8HpwWqH8tRahSlt6M3PiFAcoeFhZAqIXTxoSg==, tarball: https://registry.npmjs.org/zod/-/zod-3.24.3.tgz} + zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==, tarball: https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz} @@ -6849,6 +6746,7 @@ snapshots: '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 + optional: true '@emoji-mart/data@1.2.1': {} @@ -7373,6 +7271,7 @@ snapshots: dependencies: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + optional: true '@kurkle/color@0.3.2': {} @@ -8145,15 +8044,6 @@ snapshots: optionalDependencies: '@types/react': 18.3.12 - '@radix-ui/react-visually-hidden@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.12 - '@types/react-dom': 18.3.1 - '@radix-ui/react-visually-hidden@1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@radix-ui/react-primitive': 2.0.1(@types/react-dom@18.3.1)(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -8665,15 +8555,6 @@ snapshots: lodash: 4.17.21 redent: 3.0.0 - '@testing-library/react-hooks@8.0.1(@types/react@18.3.12)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@babel/runtime': 7.26.10 - react: 18.3.1 - react-error-boundary: 3.1.4(react@18.3.1) - optionalDependencies: - '@types/react': 18.3.12 - react-dom: 18.3.1(react@18.3.1) - '@testing-library/react@14.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@babel/runtime': 7.26.10 @@ -8699,13 +8580,17 @@ snapshots: mkdirp: 1.0.4 path-browserify: 1.0.1 - '@tsconfig/node10@1.0.11': {} + '@tsconfig/node10@1.0.11': + optional: true - '@tsconfig/node12@1.0.11': {} + '@tsconfig/node12@1.0.11': + optional: true - '@tsconfig/node14@1.0.3': {} + '@tsconfig/node14@1.0.3': + optional: true - '@tsconfig/node16@1.0.4': {} + '@tsconfig/node16@1.0.4': + optional: true '@types/aria-query@5.0.3': {} @@ -9127,7 +9012,8 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.1 - arg@4.1.3: {} + arg@4.1.3: + optional: true arg@5.0.2: {} @@ -9135,8 +9021,7 @@ snapshots: dependencies: sprintf-js: 1.0.3 - argparse@2.0.1: - optional: true + argparse@2.0.1: {} aria-hidden@1.2.4: dependencies: @@ -9375,11 +9260,6 @@ snapshots: caniuse-lite@1.0.30001690: {} - canvas@3.1.0: - dependencies: - node-addon-api: 7.1.1 - prebuild-install: 7.1.3 - case-anything@2.1.13: {} ccount@2.0.1: {} @@ -9433,10 +9313,6 @@ snapshots: chart.js: 4.4.0 date-fns: 2.30.0 - chartjs-plugin-annotation@3.0.1(chart.js@4.4.0): - dependencies: - chart.js: 4.4.0 - check-error@2.1.1: {} chokidar@3.6.0: @@ -9451,8 +9327,6 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - chownr@1.1.4: {} - chroma-js@2.4.2: {} chromatic@11.25.2: {} @@ -9584,7 +9458,8 @@ snapshots: - supports-color - ts-node - create-require@1.1.1: {} + create-require@1.1.1: + optional: true cron-parser@4.9.0: dependencies: @@ -9680,10 +9555,6 @@ snapshots: dependencies: character-entities: 2.0.2 - decompress-response@6.0.0: - dependencies: - mimic-response: 3.1.0 - dedent@1.5.3(babel-plugin-macros@3.1.0): optionalDependencies: babel-plugin-macros: 3.1.0 @@ -9711,8 +9582,6 @@ snapshots: which-collection: 1.0.1 which-typed-array: 1.1.18 - deep-extend@0.6.0: {} - deep-is@0.1.4: optional: true @@ -9754,8 +9623,6 @@ snapshots: detect-libc@1.0.3: {} - detect-libc@2.0.3: {} - detect-newline@3.1.0: {} detect-node-es@1.1.0: {} @@ -9768,7 +9635,8 @@ snapshots: diff-sequences@29.6.3: {} - diff@4.0.2: {} + diff@4.0.2: + optional: true dlv@1.1.3: {} @@ -9811,6 +9679,12 @@ snapshots: eastasianwidth@0.2.0: {} + easy-table@1.2.0: + dependencies: + ansi-regex: 5.0.1 + optionalDependencies: + wcwidth: 1.0.1 + ee-first@1.1.1: {} electron-to-chromium@1.5.50: {} @@ -9819,8 +9693,6 @@ snapshots: emittery@0.13.1: {} - emoji-datasource-apple@15.1.2: {} - emoji-mart@5.6.0: {} emoji-regex@8.0.0: {} @@ -9831,9 +9703,10 @@ snapshots: encodeurl@2.0.0: {} - end-of-stream@1.4.4: + enhanced-resolve@5.18.1: dependencies: - once: 1.4.0 + graceful-fs: 4.2.11 + tapable: 2.2.1 entities@2.2.0: {} @@ -10027,8 +9900,6 @@ snapshots: exit@0.1.2: {} - expand-template@2.0.3: {} - expect@29.7.0: dependencies: '@jest/expect-utils': 29.7.0 @@ -10202,8 +10073,6 @@ snapshots: dependencies: js-yaml: 3.14.1 - fs-constants@1.0.0: {} - fs-extra@11.2.0: dependencies: graceful-fs: 4.2.11 @@ -10250,8 +10119,6 @@ snapshots: get-stream@6.0.1: {} - github-from-package@0.0.0: {} - glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -10441,8 +10308,6 @@ snapshots: inherits@2.0.4: {} - ini@1.3.8: {} - inline-style-parser@0.2.4: {} internal-slot@1.0.6: @@ -10772,7 +10637,7 @@ snapshots: jest-util: 29.7.0 pretty-format: 29.7.0 - jest-environment-jsdom@29.5.0(canvas@3.1.0): + jest-environment-jsdom@29.5.0: dependencies: '@jest/environment': 29.6.2 '@jest/fake-timers': 29.6.2 @@ -10781,9 +10646,7 @@ snapshots: '@types/node': 20.17.16 jest-mock: 29.6.2 jest-util: 29.6.2 - jsdom: 20.0.3(canvas@3.1.0) - optionalDependencies: - canvas: 3.1.0 + jsdom: 20.0.3 transitivePeerDependencies: - bufferutil - supports-color @@ -10798,9 +10661,9 @@ snapshots: jest-mock: 29.7.0 jest-util: 29.7.0 - jest-fixed-jsdom@0.0.9(jest-environment-jsdom@29.5.0(canvas@3.1.0)): + jest-fixed-jsdom@0.0.9(jest-environment-jsdom@29.5.0): dependencies: - jest-environment-jsdom: 29.5.0(canvas@3.1.0) + jest-environment-jsdom: 29.5.0 jest-get-type@29.4.3: {} @@ -11047,6 +10910,8 @@ snapshots: jiti@1.21.7: {} + jiti@2.4.2: {} + js-tokens@4.0.0: {} js-yaml@3.14.1: @@ -11057,11 +10922,10 @@ snapshots: js-yaml@4.1.0: dependencies: argparse: 2.0.1 - optional: true jsdoc-type-pratt-parser@4.1.0: {} - jsdom@20.0.3(canvas@3.1.0): + jsdom@20.0.3: dependencies: abab: 2.0.6 acorn: 8.14.0 @@ -11089,8 +10953,6 @@ snapshots: whatwg-url: 11.0.0 ws: 8.17.1 xml-name-validator: 4.0.0 - optionalDependencies: - canvas: 3.1.0 transitivePeerDependencies: - bufferutil - supports-color @@ -11133,6 +10995,25 @@ snapshots: kleur@3.0.3: {} + knip@5.51.0(@types/node@20.17.16)(typescript@5.6.3): + dependencies: + '@nodelib/fs.walk': 1.2.8 + '@types/node': 20.17.16 + easy-table: 1.2.0 + enhanced-resolve: 5.18.1 + fast-glob: 3.3.3 + jiti: 2.4.2 + js-yaml: 4.1.0 + minimist: 1.2.8 + picocolors: 1.1.1 + picomatch: 4.0.2 + pretty-ms: 9.2.0 + smol-toml: 1.3.4 + strip-json-comments: 5.0.1 + typescript: 5.6.3 + zod: 3.24.3 + zod-validation-error: 3.4.0(zod@3.24.3) + leven@3.1.0: {} levn@0.4.1: @@ -11215,7 +11096,8 @@ snapshots: dependencies: semver: 7.6.2 - make-error@1.3.6: {} + make-error@1.3.6: + optional: true makeerror@1.0.12: dependencies: @@ -11762,8 +11644,6 @@ snapshots: mimic-fn@2.1.0: {} - mimic-response@3.1.0: {} - min-indent@1.0.1: {} minimatch@3.1.2: @@ -11778,8 +11658,6 @@ snapshots: minipass@7.1.2: {} - mkdirp-classic@0.5.3: {} - mkdirp@1.0.4: {} mock-socket@9.3.1: {} @@ -11829,18 +11707,10 @@ snapshots: nanoid@3.3.8: {} - napi-build-utils@2.0.0: {} - natural-compare@1.4.0: {} negotiator@0.6.3: {} - node-abi@3.74.0: - dependencies: - semver: 7.6.2 - - node-addon-api@7.1.1: {} - node-int64@0.4.0: {} node-releases@2.0.18: {} @@ -11971,6 +11841,8 @@ snapshots: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 + parse-ms@4.0.0: {} + parse5@7.1.2: dependencies: entities: 4.5.0 @@ -12071,21 +11943,6 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - prebuild-install@7.1.3: - dependencies: - detect-libc: 2.0.3 - expand-template: 2.0.3 - github-from-package: 0.0.0 - minimist: 1.2.8 - mkdirp-classic: 0.5.3 - napi-build-utils: 2.0.0 - node-abi: 3.74.0 - pump: 3.0.2 - rc: 1.2.8 - simple-get: 4.0.1 - tar-fs: 2.1.2 - tunnel-agent: 0.6.0 - prelude-ls@1.2.1: optional: true @@ -12106,6 +11963,10 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 + pretty-ms@9.2.0: + dependencies: + parse-ms: 4.0.0 + prismjs@1.30.0: {} process-nextick-args@2.0.1: {} @@ -12159,11 +12020,6 @@ snapshots: psl@1.9.0: {} - pump@3.0.2: - dependencies: - end-of-stream: 1.4.4 - once: 1.4.0 - punycode@2.3.1: {} pure-rand@6.1.0: {} @@ -12185,13 +12041,6 @@ snapshots: iconv-lite: 0.4.24 unpipe: 1.0.0 - rc@1.2.8: - dependencies: - deep-extend: 0.6.0 - ini: 1.3.8 - minimist: 1.2.8 - strip-json-comments: 2.0.1 - react-chartjs-2@5.3.0(chart.js@4.4.0)(react@18.3.1): dependencies: chart.js: 4.4.0 @@ -12247,11 +12096,6 @@ snapshots: react: 18.3.1 scheduler: 0.23.2 - react-error-boundary@3.1.4(react@18.3.1): - dependencies: - '@babel/runtime': 7.26.10 - react: 18.3.1 - react-fast-compare@2.0.4: {} react-fast-compare@3.2.2: {} @@ -12694,18 +12538,12 @@ snapshots: signal-exit@4.1.0: {} - simple-concat@1.0.1: {} - - simple-get@4.0.1: - dependencies: - decompress-response: 6.0.0 - once: 1.4.0 - simple-concat: 1.0.1 - sisteransi@1.0.5: {} slash@3.0.0: {} + smol-toml@1.3.4: {} + source-map-js@1.2.1: {} source-map-support@0.5.13: @@ -12761,14 +12599,6 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - storybook-react-context@0.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.5.3(prettier@3.4.1)): - dependencies: - '@storybook/preview-api': 8.5.3(storybook@8.5.3(prettier@3.4.1)) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - transitivePeerDependencies: - - storybook - storybook@8.5.3(prettier@3.4.1): dependencies: '@storybook/core': 8.5.3(prettier@3.4.1) @@ -12833,10 +12663,10 @@ snapshots: dependencies: min-indent: 1.0.1 - strip-json-comments@2.0.1: {} - strip-json-comments@3.1.1: {} + strip-json-comments@5.0.1: {} + style-to-object@1.0.8: dependencies: inline-style-parser: 0.2.4 @@ -12906,20 +12736,7 @@ snapshots: transitivePeerDependencies: - ts-node - tar-fs@2.1.2: - dependencies: - chownr: 1.1.4 - mkdirp-classic: 0.5.3 - pump: 3.0.2 - tar-stream: 2.2.0 - - tar-stream@2.2.0: - dependencies: - bl: 4.1.0 - end-of-stream: 1.4.4 - fs-constants: 1.0.0 - inherits: 2.0.4 - readable-stream: 3.6.2 + tapable@2.2.1: {} telejson@7.2.0: dependencies: @@ -13007,7 +12824,7 @@ snapshots: '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 '@types/node': 20.17.16 - acorn: 8.14.0 + acorn: 8.14.1 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 @@ -13018,8 +12835,9 @@ snapshots: yn: 3.1.1 optionalDependencies: '@swc/core': 1.3.38 + optional: true - ts-poet@6.6.0: + ts-poet@6.11.0: dependencies: dprint-node: 1.0.8 @@ -13032,7 +12850,7 @@ snapshots: dependencies: case-anything: 2.1.13 protobufjs: 7.4.0 - ts-poet: 6.6.0 + ts-poet: 6.11.0 ts-proto-descriptors: 1.15.0 ts-prune@0.10.3: @@ -13056,10 +12874,6 @@ snapshots: tslib@2.8.1: {} - tunnel-agent@0.6.0: - dependencies: - safe-buffer: 5.2.1 - tween-functions@1.2.0: {} tweetnacl@0.14.5: {} @@ -13224,7 +13038,8 @@ snapshots: uuid@9.0.1: {} - v8-compile-cache-lib@3.0.1: {} + v8-compile-cache-lib@3.0.1: + optional: true v8-to-istanbul@9.3.0: dependencies: @@ -13430,7 +13245,8 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 - yn@3.1.1: {} + yn@3.1.1: + optional: true yocto-queue@0.1.0: {} @@ -13443,4 +13259,10 @@ snapshots: toposort: 2.0.2 type-fest: 2.19.0 + zod-validation-error@3.4.0(zod@3.24.3): + dependencies: + zod: 3.24.3 + + zod@3.24.3: {} + zwitch@2.0.4: {} diff --git a/site/src/__mocks__/react-markdown.tsx b/site/src/__mocks__/react-markdown.tsx deleted file mode 100644 index de1d2ea4d21e0..0000000000000 --- a/site/src/__mocks__/react-markdown.tsx +++ /dev/null @@ -1,7 +0,0 @@ -import type { FC, PropsWithChildren } from "react"; - -const ReactMarkdown: FC = ({ children }) => { - return
{children}
; -}; - -export default ReactMarkdown; diff --git a/site/src/api/api.ts b/site/src/api/api.ts index 260f5d4880ef2..ef15beb8166f5 100644 --- a/site/src/api/api.ts +++ b/site/src/api/api.ts @@ -2563,7 +2563,7 @@ interface ClientApi extends ApiMethods { getAxiosInstance: () => AxiosInstance; } -export class Api extends ApiMethods implements ClientApi { +class Api extends ApiMethods implements ClientApi { constructor() { const scopedAxiosInstance = getConfiguredAxiosInstance(); super(scopedAxiosInstance); diff --git a/site/src/api/errors.ts b/site/src/api/errors.ts index 873163e11a68d..bb51bebce651b 100644 --- a/site/src/api/errors.ts +++ b/site/src/api/errors.ts @@ -31,7 +31,7 @@ export const isApiError = (err: unknown): err is ApiError => { ); }; -export const isApiErrorResponse = (err: unknown): err is ApiErrorResponse => { +const isApiErrorResponse = (err: unknown): err is ApiErrorResponse => { return ( typeof err === "object" && err !== null && diff --git a/site/src/api/queries/authCheck.ts b/site/src/api/queries/authCheck.ts index 813bec828500a..11f5fafa7d25a 100644 --- a/site/src/api/queries/authCheck.ts +++ b/site/src/api/queries/authCheck.ts @@ -1,7 +1,7 @@ import { API } from "api/api"; import type { AuthorizationRequest } from "api/typesGenerated"; -export const AUTHORIZATION_KEY = "authorization"; +const AUTHORIZATION_KEY = "authorization"; export const getAuthorizationKey = (req: AuthorizationRequest) => [AUTHORIZATION_KEY, req] as const; diff --git a/site/src/api/queries/groups.ts b/site/src/api/queries/groups.ts index 4ddce87a249a2..dc6285e8d6de7 100644 --- a/site/src/api/queries/groups.ts +++ b/site/src/api/queries/groups.ts @@ -10,7 +10,7 @@ type GroupSortOrder = "asc" | "desc"; export const groupsQueryKey = ["groups"]; -export const groups = () => { +const groups = () => { return { queryKey: groupsQueryKey, queryFn: () => API.getGroups(), @@ -60,7 +60,7 @@ export function groupsByUserIdInOrganization(organization: string) { } satisfies UseQueryOptions; } -export function selectGroupsByUserId(groups: Group[]): GroupsByUserId { +function selectGroupsByUserId(groups: Group[]): GroupsByUserId { // Sorting here means that nothing has to be sorted for the individual // user arrays later const sorted = sortGroupsByName(groups, "asc"); @@ -163,7 +163,7 @@ export const removeMember = (queryClient: QueryClient) => { }; }; -export const invalidateGroup = ( +const invalidateGroup = ( queryClient: QueryClient, organization: string, groupId: string, @@ -176,7 +176,7 @@ export const invalidateGroup = ( queryClient.invalidateQueries(getGroupQueryKey(organization, groupId)), ]); -export function sortGroupsByName( +function sortGroupsByName( groups: readonly T[], order: GroupSortOrder, ) { diff --git a/site/src/api/queries/idpsync.ts b/site/src/api/queries/idpsync.ts index 05fb26a4624d3..eca3ec496faee 100644 --- a/site/src/api/queries/idpsync.ts +++ b/site/src/api/queries/idpsync.ts @@ -2,9 +2,7 @@ import { API } from "api/api"; import type { OrganizationSyncSettings } from "api/typesGenerated"; import type { QueryClient } from "react-query"; -export const getOrganizationIdpSyncSettingsKey = () => [ - "organizationIdpSyncSettings", -]; +const getOrganizationIdpSyncSettingsKey = () => ["organizationIdpSyncSettings"]; export const patchOrganizationSyncSettings = (queryClient: QueryClient) => { return { diff --git a/site/src/api/queries/organizations.ts b/site/src/api/queries/organizations.ts index 238fb4493fb52..c7b42f5f0e79f 100644 --- a/site/src/api/queries/organizations.ts +++ b/site/src/api/queries/organizations.ts @@ -8,7 +8,6 @@ import type { GroupSyncSettings, PaginatedMembersRequest, PaginatedMembersResponse, - ProvisionerJobStatus, RoleSyncSettings, UpdateOrganizationRequest, } from "api/typesGenerated"; @@ -182,20 +181,20 @@ export const provisionerDaemons = ( }; }; -export const getProvisionerDaemonGroupsKey = (organization: string) => [ +const getProvisionerDaemonGroupsKey = (organization: string) => [ "organization", organization, "provisionerDaemons", ]; -export const provisionerDaemonGroups = (organization: string) => { +const provisionerDaemonGroups = (organization: string) => { return { queryKey: getProvisionerDaemonGroupsKey(organization), queryFn: () => API.getProvisionerDaemonGroupsByOrganization(organization), }; }; -export const getGroupIdpSyncSettingsKey = (organization: string) => [ +const getGroupIdpSyncSettingsKey = (organization: string) => [ "organizations", organization, "groupIdpSyncSettings", @@ -220,7 +219,7 @@ export const patchGroupSyncSettings = ( }; }; -export const getRoleIdpSyncSettingsKey = (organization: string) => [ +const getRoleIdpSyncSettingsKey = (organization: string) => [ "organizations", organization, "roleIdpSyncSettings", @@ -350,7 +349,7 @@ export const workspacePermissionsByOrganization = ( }; }; -export const getOrganizationIdpSyncClaimFieldValuesKey = ( +const getOrganizationIdpSyncClaimFieldValuesKey = ( organization: string, field: string, ) => [organization, "idpSync", "fieldValues", field]; diff --git a/site/src/api/queries/settings.ts b/site/src/api/queries/settings.ts index 5b040508ae686..7605d16c41d6d 100644 --- a/site/src/api/queries/settings.ts +++ b/site/src/api/queries/settings.ts @@ -5,7 +5,7 @@ import type { } from "api/typesGenerated"; import type { QueryClient, QueryOptions } from "react-query"; -export const userQuietHoursScheduleKey = (userId: string) => [ +const userQuietHoursScheduleKey = (userId: string) => [ "settings", userId, "quietHours", diff --git a/site/src/api/queries/templates.ts b/site/src/api/queries/templates.ts index 372863de41991..72e5deaefc72a 100644 --- a/site/src/api/queries/templates.ts +++ b/site/src/api/queries/templates.ts @@ -13,7 +13,7 @@ import type { MutationOptions, QueryClient, QueryOptions } from "react-query"; import { delay } from "utils/delay"; import { getTemplateVersionFiles } from "utils/templateVersion"; -export const templateKey = (templateId: string) => ["template", templateId]; +const templateKey = (templateId: string) => ["template", templateId]; export const template = (templateId: string): QueryOptions