diff --git a/.gitignore b/.gitignore index 12d431d..921f58a 100644 --- a/.gitignore +++ b/.gitignore @@ -9,5 +9,6 @@ /.vite/ /.env /.env.* +/.svelte-check/ .DS_Store diff --git a/knip.config.ts b/knip.config.ts index 426a3ac..9dc2237 100644 --- a/knip.config.ts +++ b/knip.config.ts @@ -7,6 +7,9 @@ export default { // Loaded by Netlify Database integration at runtime even though app code // reaches it through drizzle-orm/netlify-db. "@netlify/database", + // Used only via the `svelte-check --tsgo` flag (the tsgo typechecker), so + // knip can't see it referenced in source and reports a false positive. + "@typescript/native-preview", ], ignoreExportsUsedInFile: true, } satisfies KnipConfig; diff --git a/package.json b/package.json index b4c8db3..8fe1468 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "test:coverage": "vitest run --coverage", "test:unit": "vitest run", "test:unit:watch": "vitest", - "typecheck": "svelte-check --tsconfig ./tsconfig.json" + "typecheck": "svelte-check --tsconfig ./tsconfig.json --tsgo" }, "dependencies": { "@lucide/svelte": "^1.22.0", @@ -41,6 +41,7 @@ "@testing-library/svelte": "^5.4.2", "@testing-library/user-event": "^14.6.1", "@types/node": "^26.0.1", + "@typescript/native-preview": "7.0.0-dev.20260629.1", "@vitest/coverage-v8": "4.1.9", "drizzle-kit": "1.0.0-rc.4-ca0f029", "jsdom": "^29.1.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1488a55..9fbfe6c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -259,6 +259,9 @@ importers: '@types/node': specifier: ^26.0.1 version: 26.0.1 + '@typescript/native-preview': + specifier: 7.0.0-dev.20260629.1 + version: 7.0.0-dev.20260629.1 '@vitest/coverage-v8': specifier: 4.1.9 version: 4.1.9(vitest@4.1.9) @@ -1955,6 +1958,53 @@ packages: resolution: {integrity: sha512-CY3uyFSRbcQv3nnSv8S0+lDftMVz6P963PoRlxrV7ew/Md564g9ut60PYzdLM5qW4jFn93GBF+Soi90ISAN+GQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260629.1': + resolution: {integrity: sha512-wXRExZJweYoTzE4atRR7T5HwKJYkl6/KHxON0eF0iy2fvgLXDlyq4AQqhmV8mMx10PQKc/4sNbfhD4kjWWvm8A==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [darwin] + + '@typescript/native-preview-darwin-x64@7.0.0-dev.20260629.1': + resolution: {integrity: sha512-xkL/tETzUuDxfRkk2rD0/CjjjGLyOLHeE103T52rpgj0VNSXMnn7tTiw+TSdxnS61b8ImOrWgQJujhPFTp0jng==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [darwin] + + '@typescript/native-preview-linux-arm64@7.0.0-dev.20260629.1': + resolution: {integrity: sha512-y4ey82krq4iLNHML4G1dUObBWY6gNAjVqaUHFDv7+LBu5bfAJy8VClBaLtAJce3siQQeB0/4SkN4XsAa0oZktQ==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [linux] + + '@typescript/native-preview-linux-arm@7.0.0-dev.20260629.1': + resolution: {integrity: sha512-QlTxO+O6yELc0NYZZYIbncZhkhw+K/vBoVg+mKipbEIK5b1E6cwW7ivWIrDp1FfssQ0Wu7zxincPappoci7KNw==} + engines: {node: '>=16.20.0'} + cpu: [arm] + os: [linux] + + '@typescript/native-preview-linux-x64@7.0.0-dev.20260629.1': + resolution: {integrity: sha512-ckb4HyugC5beDpOMPOVpEx1H3l2Z2RgsGPxFOLGMU6LLIHQwlCaSdRjSfH8Hq8yffPgKuotTQLdA89cP1IC8xQ==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [linux] + + '@typescript/native-preview-win32-arm64@7.0.0-dev.20260629.1': + resolution: {integrity: sha512-Ktgepu9p0blqrbiryzYrw11ddnbESXPdeGKURDG/wXESoHQETsMNxKWhqAo587ItNnWjKOBFxoEM22eP9OzKnw==} + engines: {node: '>=16.20.0'} + cpu: [arm64] + os: [win32] + + '@typescript/native-preview-win32-x64@7.0.0-dev.20260629.1': + resolution: {integrity: sha512-b2wmeIpFJs/peej3NG26320ya+iYQz21JzFYDrnvtsEeR/g66rB9uvp4Owo4J1AG/BcmRWC/nuwrBy3Jdb+UDA==} + engines: {node: '>=16.20.0'} + cpu: [x64] + os: [win32] + + '@typescript/native-preview@7.0.0-dev.20260629.1': + resolution: {integrity: sha512-KImWFkxGUa/V78bUEAgzeJQT+6wKQXDDYHHrOavof8wnbMCpj86KuPNyBIPQMtoHiz2If8aNTums2m50oE3oqw==} + engines: {node: '>=16.20.0'} + hasBin: true + '@vercel/nft@0.29.4': resolution: {integrity: sha512-6lLqMNX3TuycBPABycx7A9F1bHQR7kiQln6abjFbPrf5C/05qHM9M5E4PeTE59c7z8g6vHnx1Ioihb2AQl7BTA==} engines: {node: '>=18'} @@ -6228,6 +6278,37 @@ snapshots: '@typescript-eslint/types': 8.62.0 eslint-visitor-keys: 5.0.1 + '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260629.1': + optional: true + + '@typescript/native-preview-darwin-x64@7.0.0-dev.20260629.1': + optional: true + + '@typescript/native-preview-linux-arm64@7.0.0-dev.20260629.1': + optional: true + + '@typescript/native-preview-linux-arm@7.0.0-dev.20260629.1': + optional: true + + '@typescript/native-preview-linux-x64@7.0.0-dev.20260629.1': + optional: true + + '@typescript/native-preview-win32-arm64@7.0.0-dev.20260629.1': + optional: true + + '@typescript/native-preview-win32-x64@7.0.0-dev.20260629.1': + optional: true + + '@typescript/native-preview@7.0.0-dev.20260629.1': + optionalDependencies: + '@typescript/native-preview-darwin-arm64': 7.0.0-dev.20260629.1 + '@typescript/native-preview-darwin-x64': 7.0.0-dev.20260629.1 + '@typescript/native-preview-linux-arm': 7.0.0-dev.20260629.1 + '@typescript/native-preview-linux-arm64': 7.0.0-dev.20260629.1 + '@typescript/native-preview-linux-x64': 7.0.0-dev.20260629.1 + '@typescript/native-preview-win32-arm64': 7.0.0-dev.20260629.1 + '@typescript/native-preview-win32-x64': 7.0.0-dev.20260629.1 + '@vercel/nft@0.29.4': dependencies: '@mapbox/node-pre-gyp': 2.0.3