@@ -13,10 +13,22 @@ const config: KnipConfig = {
1313 // - Playwright/Checkly e2e specs under tests/**
1414 // - checkly.config.ts (consumed by the Checkly CLI)
1515 // - global stylesheets that pull in CSS-only deps via @import / @plugin
16+ // - barrel `index.{ts,tsx}` files plus self-contained type / constant /
17+ // lib / util modules. Their exports describe a public surface
18+ // (consumed via deep imports, dynamic imports, or future call sites);
19+ // knip should not flag them as unused.
1620 entry : [
1721 'tests/**/*.{ts,tsx}' ,
1822 'checkly.config.ts' ,
1923 'src/styles/**/*.css' ,
24+ 'src/components/*/index.{ts,tsx}' ,
25+ 'src/components/ai-elements/*.{ts,tsx}' ,
26+ 'src/stores/index.{ts,tsx}' ,
27+ 'src/types/*.{ts,tsx}' ,
28+ 'src/constants/*.{ts,tsx}' ,
29+ 'src/libs/*.{ts,tsx}' ,
30+ 'src/utils/*.{ts,tsx}' ,
31+ 'src/app/**/_components/**/types.{ts,tsx}' ,
2032 ] ,
2133 // Use negated `project` patterns instead of `ignore` to define
2234 // codebase boundaries (per knip's official guidance).
@@ -109,11 +121,15 @@ const config: KnipConfig = {
109121 } ,
110122
111123 // Internal-only exports are common in this codebase (compound components,
112- // local helpers). Keep type/interface checks strict so we still catch dead
113- // type definitions like the unused validation input types.
114- ignoreExportsUsedInFile : {
115- interface : true ,
116- type : true ,
124+ // local helpers, zod sub-schemas composed into exported parents). Ignore
125+ // any export that is only consumed within its own file.
126+ ignoreExportsUsedInFile : true ,
127+
128+ // Per-file issue overrides for cases where the export is intentionally
129+ // public-facing but currently has no external consumer (zod sub-schemas
130+ // used as composable building blocks).
131+ ignoreIssues : {
132+ 'packages/video-runtime/src/utils/validation.ts' : [ 'exports' ] ,
117133 } ,
118134
119135 // CSS @import / @plugin resolution for Tailwind / global stylesheets.
0 commit comments