@rsdk/depdoc.cli 6.0.0-next.43 → 6.0.0-next.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  validateDependencyRules,
3
3
  validateIgnoredImports,
4
+ validateToolingFiles,
4
5
  } from '../src/model/config-validation';
5
6
 
6
7
  describe('validateDependencyRules', () => {
@@ -55,3 +56,32 @@ describe('validateIgnoredImports', () => {
55
56
  ]);
56
57
  });
57
58
  });
59
+
60
+ describe('validateToolingFiles', () => {
61
+ it('allows a global rule with no workspace scoping', () => {
62
+ expect(validateToolingFiles([{ match: 'sidebars.ts' }])).toEqual([]);
63
+ });
64
+
65
+ it('allows a workspace-scoped rule with an array of matches', () => {
66
+ expect(
67
+ validateToolingFiles([
68
+ {
69
+ match: ['sidebars.ts', 'sidebars.js'],
70
+ workspace: 'niisokb.artifactory.docusaurus',
71
+ },
72
+ ]),
73
+ ).toEqual([]);
74
+ });
75
+
76
+ it('rejects entries missing match', () => {
77
+ expect(validateToolingFiles([{ workspace: 'foo' }])).toEqual([
78
+ expect.stringContaining('toolingFiles[0].match must be a string'),
79
+ ]);
80
+ });
81
+
82
+ it('rejects a non-array value', () => {
83
+ expect(validateToolingFiles('sidebars.ts')).toEqual([
84
+ expect.stringContaining('toolingFiles must be an array'),
85
+ ]);
86
+ });
87
+ });
@@ -1,8 +1,8 @@
1
1
  import {
2
- deriveDependencyModel,
3
2
  type DependencyModelFacts,
4
- type WorkspaceFacts,
3
+ deriveDependencyModel,
5
4
  type UsageSummary,
5
+ type WorkspaceFacts,
6
6
  } from '../src/dependency-model';
7
7
 
8
8
  // ---------------------------------------------------------------------------
@@ -36,6 +36,7 @@ function makeWorkspace(
36
36
  hasSrc = false,
37
37
  hasDist = false,
38
38
  sourceFileCount?: number,
39
+ toolingFiles: Set<string> = new Set(),
39
40
  ): WorkspaceFacts {
40
41
  const basePkg: WorkspaceFacts['pkg'] = { name };
41
42
  if (role !== undefined) basePkg.role = role;
@@ -49,6 +50,7 @@ function makeWorkspace(
49
50
  dtsImports,
50
51
  hasSrc,
51
52
  hasDist,
53
+ toolingFiles,
52
54
  ...(sourceFileCount === undefined ? {} : { sourceFileCount }),
53
55
  };
54
56
  }
@@ -88,6 +90,7 @@ describe('deriveDependencyModel engine', () => {
88
90
  const root = makeRoot({ name: '@test/root' }); // no private field
89
91
  const facts = emptyFacts([root]);
90
92
  const result = deriveDependencyModel(facts);
93
+
91
94
  expect(result.violations.some((v) => v.code === 'root-private')).toBe(true);
92
95
  });
93
96
 
@@ -99,6 +102,7 @@ describe('deriveDependencyModel engine', () => {
99
102
  });
100
103
  const facts = emptyFacts([root]);
101
104
  const result = deriveDependencyModel(facts);
105
+
102
106
  expect(result.violations.some((v) => v.code === 'root-section')).toBe(true);
103
107
  });
104
108
 
@@ -125,6 +129,7 @@ describe('deriveDependencyModel engine', () => {
125
129
  const ws = makeWorkspace('@test/noop', 'packages/noop', undefined, { name: '@test/noop' });
126
130
  const facts = emptyFacts([root, ws]);
127
131
  const result = deriveDependencyModel(facts);
132
+
128
133
  expect(result.violations.some((v) => v.code === 'role-missing' && v.workspaceLocation === 'packages/noop')).toBe(true);
129
134
  });
130
135
 
@@ -134,6 +139,7 @@ describe('deriveDependencyModel engine', () => {
134
139
  const ws = makeWorkspace('@test/noop', 'packages/noop', undefined, { name: '@test/noop', role: 'invalid' as any });
135
140
  const facts = emptyFacts([root, ws]);
136
141
  const result = deriveDependencyModel(facts);
142
+
137
143
  expect(result.violations.some((v) => v.code === 'role-invalid')).toBe(true);
138
144
  });
139
145
  });
@@ -154,6 +160,7 @@ describe('deriveDependencyModel engine', () => {
154
160
  ]);
155
161
  const result = deriveDependencyModel(facts);
156
162
  const exp = result.expected.get('packages/lib')!;
163
+
157
164
  expect(exp.sections.peerDependencies.get('lodash')).toBe('^4.17.21');
158
165
  expect(exp.sections.devDependencies.get('lodash')).toBe('^4.17.21'); // mirror
159
166
  expect(exp.sections.dependencies.has('lodash')).toBe(false);
@@ -176,6 +183,7 @@ describe('deriveDependencyModel engine', () => {
176
183
  ]);
177
184
  const result = deriveDependencyModel(facts);
178
185
  const exp = result.expected.get('packages/lib')!;
186
+
179
187
  expect(exp.sections.dependencies.get('some-lib')).toBe('1.0.0');
180
188
  expect(exp.sections.peerDependencies.has('some-lib')).toBe(false);
181
189
  expect(exp.sections.devDependencies.has('some-lib')).toBe(false);
@@ -227,10 +235,59 @@ describe('deriveDependencyModel engine', () => {
227
235
  ]);
228
236
  const result = deriveDependencyModel(facts);
229
237
  const exp = result.expected.get('packages/svc')!;
238
+
230
239
  expect(exp.sections.dependencies.get('express')).toBe('^4.0.0');
231
240
  expect(exp.sections.peerDependencies.has('express')).toBe(false);
232
241
  expect(exp.sections.devDependencies.has('express')).toBe(false);
233
242
  });
243
+
244
+ it('sends a root config file runtime import to root devDependencies, not the workspace', () => {
245
+ const root = makeRoot();
246
+ const ws = makeWorkspace(
247
+ '@test/svc',
248
+ 'packages/svc',
249
+ 'service',
250
+ undefined,
251
+ new Map([['vite', runtimeUsage(['vite.config.ts'])]]),
252
+ new Set(),
253
+ false,
254
+ false,
255
+ undefined,
256
+ new Set(['vite.config.ts']),
257
+ );
258
+ const facts = emptyFacts([root, ws], [
259
+ { match: 'vite', version: '^5.0.0' },
260
+ ]);
261
+ const result = deriveDependencyModel(facts);
262
+ const rootExp = result.expected.get('.')!;
263
+ const wsExp = result.expected.get('packages/svc')!;
264
+
265
+ expect(rootExp.sections.devDependencies.get('vite')).toBe('^5.0.0');
266
+ expect(wsExp.sections.dependencies.has('vite')).toBe(false);
267
+ });
268
+
269
+ it('does not misclassify a src/ file that merely looks like a config file by name', () => {
270
+ const root = makeRoot();
271
+ const ws = makeWorkspace(
272
+ '@test/svc',
273
+ 'packages/svc',
274
+ 'service',
275
+ undefined,
276
+ new Map([['yaml', runtimeUsage(['src/auth.config.ts'])]]),
277
+ new Set(),
278
+ false,
279
+ false,
280
+ undefined,
281
+ new Set(['vite.config.ts']), // unrelated tooling file; src/auth.config.ts is not in it
282
+ );
283
+ const facts = emptyFacts([root, ws], [
284
+ { match: 'yaml', version: '^2.0.0' },
285
+ ]);
286
+ const result = deriveDependencyModel(facts);
287
+ const wsExp = result.expected.get('packages/svc')!;
288
+
289
+ expect(wsExp.sections.dependencies.get('yaml')).toBe('^2.0.0');
290
+ });
234
291
  });
235
292
 
236
293
  describe('declaration-independent-expected-graph', () => {
@@ -390,6 +447,7 @@ describe('deriveDependencyModel engine', () => {
390
447
  const facts = emptyFacts([root, lib, svc]);
391
448
  const result = deriveDependencyModel(facts);
392
449
  const exp = result.expected.get('packages/svc')!;
450
+
393
451
  expect(exp.sections.dependencies.get('@test/shared')).toBe('workspace:*');
394
452
  });
395
453
  });
@@ -398,6 +456,7 @@ describe('deriveDependencyModel engine', () => {
398
456
  describe('peer-propagation-local-library', () => {
399
457
  it('propagates peerDependencies from local library to consuming service', () => {
400
458
  const root = makeRoot();
459
+
401
460
  // foo is a library with peerDep on react
402
461
  const foo = makeWorkspace(
403
462
  '@test/foo',
@@ -406,6 +465,7 @@ describe('deriveDependencyModel engine', () => {
406
465
  { name: '@test/foo', role: 'library' },
407
466
  new Map([['react', runtimeUsage(['src/index.ts'])]]),
408
467
  );
468
+
409
469
  // bar is a service that depends on foo at runtime
410
470
  const bar = makeWorkspace(
411
471
  '@test/bar',
@@ -422,6 +482,8 @@ describe('deriveDependencyModel engine', () => {
422
482
  };
423
483
  const result = deriveDependencyModel(facts);
424
484
  const exp = result.expected.get('packages/bar')!;
485
+
486
+
425
487
  // service gets react propagated into dependencies
426
488
  expect(exp.sections.dependencies.get('react')).toBeDefined();
427
489
  });
@@ -441,6 +503,7 @@ describe('deriveDependencyModel engine', () => {
441
503
  { match: 'some-tool', rootOnly: true },
442
504
  ]);
443
505
  const result = deriveDependencyModel(facts);
506
+
444
507
  expect(result.violations.some((v) => v.code === 'root-only' && v.dependency === 'some-tool')).toBe(true);
445
508
  });
446
509
 
@@ -524,6 +587,7 @@ describe('deriveDependencyModel engine', () => {
524
587
  ]);
525
588
  const result = deriveDependencyModel(facts);
526
589
  const exp = result.expected.get('packages/lib')!;
590
+
527
591
  expect([...exp.sections.devDependencies.entries()]).toEqual(
528
592
  [...exp.sections.peerDependencies.entries()],
529
593
  );
@@ -547,6 +611,7 @@ describe('deriveDependencyModel engine', () => {
547
611
  { match: 'react', version: '^18.0.0' },
548
612
  ]);
549
613
  const result = deriveDependencyModel(facts);
614
+
550
615
  expect(
551
616
  result.violations.some((v) => v.code === 'mirror' && v.dependency === 'react'),
552
617
  ).toBe(true);
@@ -571,6 +636,7 @@ describe('deriveDependencyModel engine', () => {
571
636
  ]);
572
637
  const result = deriveDependencyModel(facts);
573
638
  const exp = result.expected.get('packages/lib')!;
639
+
574
640
  expect(exp.sections.devDependencies.has('extra-dev')).toBe(false);
575
641
  expect(exp.sections.devDependencies.get('react')).toBe('^18.0.0');
576
642
  });
@@ -594,6 +660,7 @@ describe('deriveDependencyModel engine', () => {
594
660
  const result = deriveDependencyModel(facts);
595
661
  const rootExp = result.expected.get('.')!;
596
662
  const wsExp = result.expected.get('packages/lib')!;
663
+
597
664
  expect(rootExp.sections.devDependencies.get('some-types')).toBe('^1.0.0');
598
665
  expect(wsExp.sections.peerDependencies.has('some-types')).toBe(false);
599
666
  expect(wsExp.sections.devDependencies.has('some-types')).toBe(false);
@@ -617,9 +684,11 @@ describe('deriveDependencyModel engine', () => {
617
684
  ]);
618
685
  const result = deriveDependencyModel(facts);
619
686
  const wsExp = result.expected.get('packages/lib')!;
687
+
620
688
  expect(wsExp.sections.peerDependencies.get('some-types')).toBe('^1.0.0');
621
689
  expect(wsExp.sections.devDependencies.get('some-types')).toBe('^1.0.0'); // mirror
622
690
  const rootExp = result.expected.get('.')!;
691
+
623
692
  expect(rootExp.sections.devDependencies.has('some-types')).toBe(false);
624
693
  });
625
694
  });
@@ -640,6 +709,7 @@ describe('deriveDependencyModel engine', () => {
640
709
  ]);
641
710
  const result = deriveDependencyModel(facts);
642
711
  const exp = result.expected.get('packages/cli')!;
712
+
643
713
  expect(exp.sections.dependencies.get('commander')).toBe('^12.0.0');
644
714
  expect(exp.sections.peerDependencies.size).toBe(0);
645
715
  expect(exp.sections.devDependencies.size).toBe(0);
@@ -655,6 +725,7 @@ describe('deriveDependencyModel engine', () => {
655
725
  );
656
726
  const facts = emptyFacts([root, ws]);
657
727
  const result = deriveDependencyModel(facts);
728
+
658
729
  expect(
659
730
  result.violations.some(
660
731
  (v) => v.code === 'forbidden-section' && v.workspace === '@test/cli',
@@ -686,6 +757,7 @@ describe('deriveDependencyModel engine', () => {
686
757
  };
687
758
  const result = deriveDependencyModel(facts);
688
759
  const exp = result.expected.get('packages/svc')!;
760
+
689
761
  expect(exp.sections.dependencies.get('react')).toBe('^18.0.0');
690
762
  });
691
763
 
@@ -710,6 +782,7 @@ describe('deriveDependencyModel engine', () => {
710
782
  };
711
783
  const result = deriveDependencyModel(facts);
712
784
  const exp = result.expected.get('packages/lib')!;
785
+
713
786
  expect(exp.sections.peerDependencies.get('react')).toBe('^18.0.0');
714
787
  expect(exp.sections.devDependencies.get('react')).toBe('^18.0.0'); // mirror
715
788
  });
@@ -726,6 +799,7 @@ describe('deriveDependencyModel engine', () => {
726
799
  undefined,
727
800
  new Map([['some-pkg', runtimeUsage(['src/index.ts'])]]),
728
801
  );
802
+
729
803
  // null = коллектор отфильтровал все optional peers; required peers отсутствуют
730
804
  const facts: DependencyModelFacts = {
731
805
  workspaces: [root, ws],
@@ -734,6 +808,7 @@ describe('deriveDependencyModel engine', () => {
734
808
  };
735
809
  const result = deriveDependencyModel(facts);
736
810
  const exp = result.expected.get('packages/svc')!;
811
+
737
812
  expect(exp.sections.dependencies.get('some-pkg')).toBe('^3.0.0');
738
813
  expect(exp.sections.dependencies.size).toBe(1); // никакие peers не добавились
739
814
  });
@@ -755,6 +830,7 @@ describe('deriveDependencyModel engine', () => {
755
830
  );
756
831
  const facts = emptyFacts([root, ws1, ws2]); // нет правил → нет версионного правила для lodash
757
832
  const result = deriveDependencyModel(facts);
833
+
758
834
  expect(
759
835
  result.violations.some(
760
836
  (v) => v.code === 'unconstrained-version' && v.dependency === 'lodash',
@@ -776,6 +852,7 @@ describe('deriveDependencyModel engine', () => {
776
852
  { match: 'lodash', version: '^4.17.21' },
777
853
  ]);
778
854
  const result = deriveDependencyModel(facts);
855
+
779
856
  expect(
780
857
  result.violations.some(
781
858
  (v) => v.code === 'unconstrained-version' && v.dependency === 'lodash',
@@ -801,6 +878,7 @@ describe('deriveDependencyModel engine', () => {
801
878
  ]);
802
879
  const result = deriveDependencyModel(facts);
803
880
  const exp = result.expected.get('packages/lib')!;
881
+
804
882
  expect(exp.sections.peerDependencies.get('react')).toBe('^18.0.0');
805
883
  });
806
884
 
@@ -815,11 +893,13 @@ describe('deriveDependencyModel engine', () => {
815
893
  );
816
894
  const facts = emptyFacts([root, ws], [
817
895
  { match: 'some-pkg', version: '^1.0.0' },
896
+
818
897
  // workspace-overrides переводит dep из peerDeps в deps для конкретной библиотеки
819
898
  { match: 'some-pkg', workspace: '@test/lib', section: 'dependencies', version: '^1.0.0' },
820
899
  ]);
821
900
  const result = deriveDependencyModel(facts);
822
901
  const exp = result.expected.get('packages/lib')!;
902
+
823
903
  expect(exp.sections.dependencies.has('some-pkg')).toBe(true);
824
904
  expect(exp.sections.peerDependencies.has('some-pkg')).toBe(false);
825
905
  });
@@ -843,6 +923,7 @@ describe('deriveDependencyModel engine', () => {
843
923
  { match: '@nestjs/*', version: '^10.0.0' },
844
924
  ]);
845
925
  const result = deriveDependencyModel(facts);
926
+
846
927
  expect(
847
928
  result.violations.some((v) => v.code === 'unconstrained-version'),
848
929
  ).toBe(false);
@@ -860,6 +941,7 @@ describe('deriveDependencyModel engine', () => {
860
941
  ]);
861
942
  const result = deriveDependencyModel(facts);
862
943
  const exp = result.expected.get('packages/svc')!;
944
+
863
945
  expect(exp.sections.dependencies.get('@nestjs/core')).toBe('^10.3.0');
864
946
  });
865
947
  });
@@ -1054,6 +1136,7 @@ describe('deriveDependencyModel engine', () => {
1054
1136
  false,
1055
1137
  );
1056
1138
  const facts = emptyFacts([root, ws]);
1139
+
1057
1140
  facts.withDts = true;
1058
1141
  const result = deriveDependencyModel(facts);
1059
1142
 
@@ -0,0 +1,3 @@
1
+ import { unused } from 'non-config-root-dep'
2
+
3
+ export { unused }
@@ -0,0 +1,5 @@
1
+ import type { SidebarsConfig } from 'sidebars-config-dep'
2
+
3
+ const sidebars: SidebarsConfig = {}
4
+
5
+ export default sidebars
@@ -0,0 +1,3 @@
1
+ import { defineConfig } from 'root-config-dep'
2
+
3
+ export default defineConfig({})
@@ -1,11 +1,11 @@
1
1
  import path from 'node:path';
2
2
 
3
+ import { collectTsConfigPathAliases } from '../src/collectors/tsconfig-aliases';
3
4
  import {
4
5
  collectDtsImports,
5
6
  collectSourceImports,
6
7
  getPackageName,
7
8
  } from '../src/lib/imports';
8
- import { collectTsConfigPathAliases } from '../src/collectors/tsconfig-aliases';
9
9
 
10
10
  const FIXTURES = path.join(__dirname, 'fixtures/imports');
11
11
 
@@ -69,6 +69,7 @@ describe('collectSourceImports', () => {
69
69
 
70
70
  it('collects runtime imports', () => {
71
71
  const pkgs = names();
72
+
72
73
  expect(pkgs.has('lodash')).toBe(true);
73
74
  expect(pkgs.has('@scope/pkg')).toBe(true);
74
75
  expect(pkgs.has('mixed-dep')).toBe(true);
@@ -101,30 +102,35 @@ describe('collectSourceImports', () => {
101
102
 
102
103
  it('marks import type entries as isTypeOnly', () => {
103
104
  const typeOnlyEntry = entries.find((e) => e.packageName === 'some-types');
105
+
104
106
  expect(typeOnlyEntry).toBeDefined();
105
107
  expect(typeOnlyEntry!.isTypeOnly).toBe(true);
106
108
  });
107
109
 
108
110
  it('marks export type entries as isTypeOnly', () => {
109
111
  const entry = entries.find((e) => e.packageName === 'reexport-type-dep');
112
+
110
113
  expect(entry).toBeDefined();
111
114
  expect(entry!.isTypeOnly).toBe(true);
112
115
  });
113
116
 
114
117
  it('marks import specifiers with only type bindings as isTypeOnly', () => {
115
118
  const entry = entries.find((e) => e.packageName === 'only-type-dep');
119
+
116
120
  expect(entry).toBeDefined();
117
121
  expect(entry!.isTypeOnly).toBe(true);
118
122
  });
119
123
 
120
124
  it('treats mixed value and type specifiers as runtime imports', () => {
121
125
  const entry = entries.find((e) => e.packageName === 'mixed-dep');
126
+
122
127
  expect(entry).toBeDefined();
123
128
  expect(entry!.isTypeOnly).toBe(false);
124
129
  });
125
130
 
126
131
  it('marks runtime imports as not isTypeOnly', () => {
127
132
  const entry = entries.find((e) => e.packageName === 'lodash');
133
+
128
134
  expect(entry).toBeDefined();
129
135
  expect(entry!.isTypeOnly).toBe(false);
130
136
  });
@@ -145,6 +151,7 @@ describe('collectSourceImports', () => {
145
151
 
146
152
  it('includes the file path in each entry', () => {
147
153
  const entry = entries.find((e) => e.packageName === 'lodash');
154
+
148
155
  expect(entry!.file).toContain('index.ts');
149
156
  });
150
157
 
@@ -154,6 +161,7 @@ describe('collectSourceImports', () => {
154
161
 
155
162
  it('collects supported source extensions', () => {
156
163
  const pkgs = names();
164
+
157
165
  expect(pkgs.has('tsx-runtime-dep')).toBe(true);
158
166
  expect(pkgs.has('tsx-type-dep')).toBe(true);
159
167
  expect(pkgs.has('mts-dep')).toBe(true);
@@ -194,10 +202,43 @@ describe('collectSourceImports', () => {
194
202
  expect(pkgs.has('external-test-dep')).toBe(true);
195
203
  });
196
204
 
205
+ it('collects imports from *.config.* files at the workspace root', () => {
206
+ const workspaceEntries = collectSourceImports(FIXTURES, {
207
+ name: '@test/imports',
208
+ });
209
+ const pkgs = new Set(workspaceEntries.map((e) => e.packageName));
210
+
211
+ expect(pkgs.has('root-config-dep')).toBe(true);
212
+ });
213
+
214
+ it('does not collect root filenames outside the *.config.* convention by default', () => {
215
+ const workspaceEntries = collectSourceImports(FIXTURES, {
216
+ name: '@test/imports',
217
+ });
218
+ const pkgs = new Set(workspaceEntries.map((e) => e.packageName));
219
+
220
+ expect(pkgs.has('sidebars-config-dep')).toBe(false);
221
+ expect(pkgs.has('non-config-root-dep')).toBe(false);
222
+ });
223
+
224
+ it('collects extra root filenames passed in via toolingFilePatterns', () => {
225
+ const workspaceEntries = collectSourceImports(
226
+ FIXTURES,
227
+ { name: '@test/imports' },
228
+ {},
229
+ ['sidebars.ts'],
230
+ );
231
+ const pkgs = new Set(workspaceEntries.map((e) => e.packageName));
232
+
233
+ expect(pkgs.has('sidebars-config-dep')).toBe(true);
234
+ expect(pkgs.has('non-config-root-dep')).toBe(false);
235
+ });
236
+
197
237
  it('does not collect .d.ts files (only .ts source files)', () => {
198
238
  // dist/ is a sibling of src/, not inside it — so even if we somehow
199
239
  // end up scanning it, .d.ts files are explicitly excluded.
200
240
  const dtsEntry = entries.find((e) => e.file.endsWith('.d.ts'));
241
+
201
242
  expect(dtsEntry).toBeUndefined();
202
243
  });
203
244
  });
@@ -1,2 +1,2 @@
1
- import type { WorkspaceContext } from '../model/types';
2
- export declare function loadWorkspaces(rootDir: string, withDts: boolean, ignoredImports?: readonly string[]): WorkspaceContext[];
1
+ import type { ToolingFileRule, WorkspaceContext } from '../model/types';
2
+ export declare function loadWorkspaces(rootDir: string, withDts: boolean, ignoredImports?: readonly string[], toolingFileRules?: readonly ToolingFileRule[]): WorkspaceContext[];
@@ -18,13 +18,21 @@ const imports_1 = require("../lib/imports");
18
18
  const package_json_1 = require("../lib/package-json");
19
19
  const rules_1 = require("../model/rules");
20
20
  const tsconfig_aliases_1 = require("./tsconfig-aliases");
21
- function collectUsage(workspace, withDts, ignoredImports) {
22
- const sourceFiles = (0, imports_1.collectSourceFiles)(workspace.dir, workspace.pkg);
21
+ function getToolingPatternsForWorkspace(toolingFileRules, wsName, wsLocation) {
22
+ return toolingFileRules
23
+ .filter((rule) => !rule.workspace ||
24
+ (0, rules_1.matchesPatterns)(wsName, rule.workspace) ||
25
+ (0, rules_1.matchesPatterns)(wsLocation, rule.workspace))
26
+ .flatMap((rule) => (Array.isArray(rule.match) ? rule.match : [rule.match]));
27
+ }
28
+ function collectUsage(workspace, withDts, ignoredImports, toolingFilePatterns) {
29
+ const sourceFiles = (0, imports_1.collectSourceFiles)(workspace.dir, workspace.pkg, toolingFilePatterns);
23
30
  const ignoredSpecifiers = [
24
31
  ...ignoredImports,
25
32
  ...(0, tsconfig_aliases_1.collectTsConfigPathAliases)(workspace.dir),
26
33
  ];
27
34
  workspace.sourceFileCount = sourceFiles.length;
35
+ workspace.toolingFiles = new Set((0, imports_1.collectRootConfigFiles)(workspace.dir, toolingFilePatterns));
28
36
  for (const entry of (0, imports_1.collectSourceImportsFromFiles)(sourceFiles, {
29
37
  ignoredSpecifiers,
30
38
  })) {
@@ -49,7 +57,7 @@ function collectUsage(workspace, withDts, ignoredImports) {
49
57
  workspace.dtsImports = (0, imports_1.collectDtsImports)(distDir, { ignoredSpecifiers });
50
58
  }
51
59
  }
52
- function loadWorkspaces(rootDir, withDts, ignoredImports = []) {
60
+ function loadWorkspaces(rootDir, withDts, ignoredImports = [], toolingFileRules = []) {
53
61
  const rootPkg = (0, package_json_1.readPackageJson)(rootDir);
54
62
  const raw = (0, node_child_process_1.execSync)('yarn workspaces list --json', {
55
63
  cwd: rootDir,
@@ -89,7 +97,7 @@ function loadWorkspaces(rootDir, withDts, ignoredImports = []) {
89
97
  hasSrc: (0, node_fs_1.existsSync)(node_path_1.default.join(dir, 'src')),
90
98
  hasDist: (0, node_fs_1.existsSync)(node_path_1.default.join(dir, 'dist')),
91
99
  };
92
- collectUsage(ctx, withDts, ignoredImports);
100
+ collectUsage(ctx, withDts, ignoredImports, getToolingPatternsForWorkspace(toolingFileRules, ctx.name, ctx.location));
93
101
  workspaces.push(ctx);
94
102
  }
95
103
  return workspaces;
@@ -1 +1 @@
1
- {"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../src/collectors/workspaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../src/collectors/workspaces.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,9 @@ export interface ImportCollectionOptions {
8
8
  ignoredSpecifiers?: readonly string[];
9
9
  }
10
10
  export declare function getPackageName(specifier: string): string | null;
11
- export declare function collectSourceFiles(srcDirOrWorkspaceDir: string, pkg?: PackageJson): string[];
11
+ export declare function isRootConfigFile(name: string, extraPatterns?: readonly string[]): boolean;
12
+ export declare function collectRootConfigFiles(workspaceDir: string, extraPatterns?: readonly string[]): string[];
13
+ export declare function collectSourceFiles(srcDirOrWorkspaceDir: string, pkg?: PackageJson, toolingFilePatterns?: readonly string[]): string[];
12
14
  export declare function collectSourceImportsFromFiles(files: string[], options?: ImportCollectionOptions): ImportEntry[];
13
- export declare function collectSourceImports(srcDirOrWorkspaceDir: string, pkg?: PackageJson, options?: ImportCollectionOptions): ImportEntry[];
15
+ export declare function collectSourceImports(srcDirOrWorkspaceDir: string, pkg?: PackageJson, options?: ImportCollectionOptions, toolingFilePatterns?: readonly string[]): ImportEntry[];
14
16
  export declare function collectDtsImports(distDir: string, options?: ImportCollectionOptions): Set<string>;
@@ -4,6 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.getPackageName = getPackageName;
7
+ exports.isRootConfigFile = isRootConfigFile;
8
+ exports.collectRootConfigFiles = collectRootConfigFiles;
7
9
  exports.collectSourceFiles = collectSourceFiles;
8
10
  exports.collectSourceImportsFromFiles = collectSourceImportsFromFiles;
9
11
  exports.collectSourceImports = collectSourceImports;
@@ -35,6 +37,22 @@ const SOURCE_EXTENSIONS = new Set([
35
37
  ]);
36
38
  const DTS_RE = /\.d\.(?:c|m)?ts$/;
37
39
  const DEFAULT_SOURCE_ROOTS = ['src', 'test', 'tests', '__tests__'];
40
+ // Build-tool config files conventionally live at the workspace root, outside
41
+ // src/, but still import real runtime dependencies (e.g. vite.config.ts,
42
+ // docusaurus.config.ts). They are scanned non-recursively so unrelated root
43
+ // files aren't picked up. Filenames that don't follow this convention (e.g.
44
+ // Docusaurus' sidebars.ts) aren't matched by default — declare them via
45
+ // depdoc.yml's `toolingFiles` instead.
46
+ const ROOT_CONFIG_FILE_SUFFIXES = [
47
+ '.config.ts',
48
+ '.config.tsx',
49
+ '.config.js',
50
+ '.config.jsx',
51
+ '.config.mjs',
52
+ '.config.cjs',
53
+ '.config.mts',
54
+ '.config.cts',
55
+ ];
38
56
  const IGNORED_ENTRYPOINT_DIRS = new Set([
39
57
  'node_modules',
40
58
  'dist',
@@ -325,7 +343,23 @@ function collectEntrypointGraphFiles(workspaceDir, pkg) {
325
343
  }
326
344
  return [...result];
327
345
  }
328
- function collectSourceFiles(srcDirOrWorkspaceDir, pkg) {
346
+ function isRootConfigFile(name, extraPatterns = []) {
347
+ return (ROOT_CONFIG_FILE_SUFFIXES.some((suffix) => name.endsWith(suffix)) ||
348
+ extraPatterns.some((pattern) => matchesSpecifierPattern(name, pattern)));
349
+ }
350
+ function collectRootConfigFiles(workspaceDir, extraPatterns = []) {
351
+ let entries;
352
+ try {
353
+ entries = (0, node_fs_1.readdirSync)(workspaceDir, { withFileTypes: true });
354
+ }
355
+ catch {
356
+ return [];
357
+ }
358
+ return entries
359
+ .filter((entry) => entry.isFile() && isRootConfigFile(entry.name, extraPatterns))
360
+ .map((entry) => node_path_1.default.join(workspaceDir, entry.name));
361
+ }
362
+ function collectSourceFiles(srcDirOrWorkspaceDir, pkg, toolingFilePatterns = []) {
329
363
  if (!pkg)
330
364
  return walkFiles(srcDirOrWorkspaceDir, (name) => isSourceFile(name));
331
365
  const files = new Set();
@@ -334,6 +368,9 @@ function collectSourceFiles(srcDirOrWorkspaceDir, pkg) {
334
368
  files.add(file);
335
369
  }
336
370
  }
371
+ for (const file of collectRootConfigFiles(srcDirOrWorkspaceDir, toolingFilePatterns)) {
372
+ files.add(file);
373
+ }
337
374
  for (const file of collectEntrypointGraphFiles(srcDirOrWorkspaceDir, pkg)) {
338
375
  files.add(file);
339
376
  }
@@ -342,8 +379,8 @@ function collectSourceFiles(srcDirOrWorkspaceDir, pkg) {
342
379
  function collectSourceImportsFromFiles(files, options = {}) {
343
380
  return files.flatMap((file) => extractImports(file, (0, node_fs_1.readFileSync)(file, 'utf8'), options));
344
381
  }
345
- function collectSourceImports(srcDirOrWorkspaceDir, pkg, options = {}) {
346
- return collectSourceImportsFromFiles(collectSourceFiles(srcDirOrWorkspaceDir, pkg), options);
382
+ function collectSourceImports(srcDirOrWorkspaceDir, pkg, options = {}, toolingFilePatterns = []) {
383
+ return collectSourceImportsFromFiles(collectSourceFiles(srcDirOrWorkspaceDir, pkg, toolingFilePatterns), options);
347
384
  }
348
385
  function collectDtsImports(distDir, options = {}) {
349
386
  const files = walkFiles(distDir, (name) => DTS_RE.test(name));
@@ -1 +1 @@
1
- {"version":3,"file":"imports.js","sourceRoot":"","sources":["../../src/lib/imports.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"imports.js","sourceRoot":"","sources":["../../src/lib/imports.ts"],"names":[],"mappings":"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"}
@@ -4,4 +4,5 @@
4
4
  import type { DependencyModelConfig, DependencyRule } from './types';
5
5
  export declare function validateDependencyRules(rules: DependencyRule[]): string[];
6
6
  export declare function validateIgnoredImports(ignoredImports: unknown): string[];
7
+ export declare function validateToolingFiles(toolingFiles: unknown): string[];
7
8
  export declare function assertValidDependencyModelConfig(config: DependencyModelConfig): void;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateDependencyRules = validateDependencyRules;
4
4
  exports.validateIgnoredImports = validateIgnoredImports;
5
+ exports.validateToolingFiles = validateToolingFiles;
5
6
  exports.assertValidDependencyModelConfig = assertValidDependencyModelConfig;
6
7
  function getRuleMatches(rule) {
7
8
  return Array.isArray(rule.match) ? rule.match : [rule.match];
@@ -33,10 +34,38 @@ function validateIgnoredImports(ignoredImports) {
33
34
  ? []
34
35
  : [`ignoredImports[${index}] must be a string`]);
35
36
  }
37
+ function isStringOrStringArray(value) {
38
+ return (typeof value === 'string' ||
39
+ (Array.isArray(value) && value.every((item) => typeof item === 'string')));
40
+ }
41
+ function validateToolingFiles(toolingFiles) {
42
+ if (toolingFiles === undefined)
43
+ return [];
44
+ if (!Array.isArray(toolingFiles)) {
45
+ return ['toolingFiles must be an array of { match, workspace? } rules'];
46
+ }
47
+ return toolingFiles.flatMap((item, index) => {
48
+ const label = `toolingFiles[${index}]`;
49
+ if (typeof item !== 'object' || item === null) {
50
+ return [`${label} must be an object with a match field`];
51
+ }
52
+ const rule = item;
53
+ const errors = [];
54
+ if (!isStringOrStringArray(rule.match)) {
55
+ errors.push(`${label}.match must be a string or an array of strings`);
56
+ }
57
+ if (rule.workspace !== undefined &&
58
+ !isStringOrStringArray(rule.workspace)) {
59
+ errors.push(`${label}.workspace must be a string or an array of strings`);
60
+ }
61
+ return errors;
62
+ });
63
+ }
36
64
  function assertValidDependencyModelConfig(config) {
37
65
  const errors = [
38
66
  ...validateDependencyRules(config.rules ?? []),
39
67
  ...validateIgnoredImports(config.ignoredImports),
68
+ ...validateToolingFiles(config.toolingFiles),
40
69
  ];
41
70
  if (errors.length === 0)
42
71
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"config-validation.js","sourceRoot":"","sources":["../../src/model/config-validation.ts"],"names":[],"mappings":";;AAaA,0DAqBC;AAED,wDAWC;AAED,4EAeC;AA3DD,SAAS,cAAc,CAAC,IAAoB;IAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,YAAY,CAAC,IAAoB,EAAE,KAAa;IACvD,OAAO,SAAS,KAAK,MAAM,cAAc,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AAChE,CAAC;AAED,SAAgB,uBAAuB,CAAC,KAAuB;IAC7D,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC5B,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;QAErC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC3E,MAAM,CAAC,IAAI,CACT,GAAG,KAAK,kHAAkH,CAC3H,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,KAAK,iBAAiB,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YACjE,MAAM,CAAC,IAAI,CACT,GAAG,KAAK,+HAA+H,CACxI,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,sBAAsB,CAAC,cAAuB;IAC5D,IAAI,cAAc,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QACnC,OAAO,CAAC,8DAA8D,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAC5C,OAAO,IAAI,KAAK,QAAQ;QACtB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,CAAC,kBAAkB,KAAK,oBAAoB,CAAC,CAClD,CAAC;AACJ,CAAC;AAED,SAAgB,gCAAgC,CAC9C,MAA6B;IAE7B,MAAM,MAAM,GAAG;QACb,GAAG,uBAAuB,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9C,GAAG,sBAAsB,CAAC,MAAM,CAAC,cAAc,CAAC;KACjD,CAAC;IAEF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEhC,MAAM,IAAI,KAAK,CACb,CAAC,kCAAkC,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CACvE,IAAI,CACL,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config-validation.js","sourceRoot":"","sources":["../../src/model/config-validation.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,16 @@ const rules_1 = require("./rules");
18
18
  function isTestFile(file) {
19
19
  return /(^|[/.])(__test__|__tests__|test|tests|spec|e2e)([/.]|$)|\.(spec|test|e2e)\.[cm]?[tj]sx?$/.test(file);
20
20
  }
21
+ // Build-tool config files (vite.config.ts, eslint.config.js, ...) import
22
+ // real packages, but those imports are tooling usage, not the workspace's
23
+ // own runtime surface — treat them like test files for placement purposes
24
+ // so they don't get forced into dependencies/peerDependencies. Matched by
25
+ // exact path against the workspace's collected tooling files (not by name
26
+ // pattern), so an app module that merely happens to be named e.g.
27
+ // src/auth.config.ts is never misclassified.
28
+ function isPrivateUsageFile(file, toolingFiles) {
29
+ return isTestFile(file) || toolingFiles.has(file);
30
+ }
21
31
  function isExternal(depIdent, workspaceNames) {
22
32
  return !workspaceNames.has(depIdent);
23
33
  }
@@ -124,9 +134,10 @@ function addUsageDependencies(expectedByLocation, root, workspaceNames, rules, e
124
134
  const workspace = expected.workspace;
125
135
  if (workspace.isRoot)
126
136
  continue;
137
+ const toolingFiles = workspace.toolingFiles ?? new Set();
127
138
  for (const [depIdent, usage] of workspace.sourceUsage) {
128
139
  const publicType = workspace.dtsImports.has(depIdent);
129
- const runtime = [...usage.runtimeFiles].some((file) => !isTestFile(file));
140
+ const runtime = [...usage.runtimeFiles].some((file) => !isPrivateUsageFile(file, toolingFiles));
130
141
  const allTestOnly = [...usage.files].every(isTestFile);
131
142
  if (runtime || publicType) {
132
143
  addPublicDependency(expected, rootExpected, root, workspaceNames, rules, depIdent, {
@@ -1 +1 @@
1
- {"version":3,"file":"placement.js","sourceRoot":"","sources":["../../src/model/placement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"placement.js","sourceRoot":"","sources":["../../src/model/placement.ts"],"names":[],"mappings":"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"}
@@ -16,9 +16,14 @@ export interface DependencyRule {
16
16
  rootOnly?: boolean;
17
17
  required?: boolean;
18
18
  }
19
+ export interface ToolingFileRule {
20
+ match: string | string[];
21
+ workspace?: string | string[];
22
+ }
19
23
  export interface DependencyModelConfig {
20
24
  version?: number;
21
25
  ignoredImports?: string[];
26
+ toolingFiles?: ToolingFileRule[];
22
27
  rules?: DependencyRule[];
23
28
  doctor?: DoctorConfig;
24
29
  }
@@ -67,6 +72,7 @@ export interface WorkspaceFacts {
67
72
  hasSrc: boolean;
68
73
  hasDist: boolean;
69
74
  sourceFileCount?: number;
75
+ toolingFiles?: Set<string>;
70
76
  }
71
77
  export interface WorkspaceContext extends WorkspaceFacts {
72
78
  dir: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/model/types.ts"],"names":[],"mappings":";;;AAkKa,QAAA,QAAQ,GAAkB;IACrC,cAAc;IACd,kBAAkB;IAClB,iBAAiB;CAClB,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/model/types.ts"],"names":[],"mappings":";;;AAgLa,QAAA,QAAQ,GAAkB;IACrC,cAAc;IACd,kBAAkB;IAClB,iBAAiB;CAClB,CAAC"}
package/dist/runner.js CHANGED
@@ -24,7 +24,7 @@ function runDependencyModel(options = {}) {
24
24
  const config = (0, config_1.loadConfig)(rootDir, options.depdocYamlPath);
25
25
  const rules = config.rules ?? [];
26
26
  const withDts = options.withDts === true;
27
- const contexts = (0, workspaces_1.loadWorkspaces)(rootDir, withDts, config.ignoredImports ?? []);
27
+ const contexts = (0, workspaces_1.loadWorkspaces)(rootDir, withDts, config.ignoredImports ?? [], config.toolingFiles ?? []);
28
28
  const packageExtensions = (0, package_extensions_1.loadPackageExtensions)(rootDir);
29
29
  const workspaceNames = new Set(contexts.filter((ws) => !ws.isRoot).map((ws) => ws.name));
30
30
  const typeProviderPackages = (0, type_providers_1.collectTypeProviderPackages)(rootDir, contexts[0].pkg, rules);
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@rsdk/depdoc.cli",
3
3
  "role": "cli",
4
- "version": "6.0.0-next.43",
4
+ "version": "6.0.0-next.44",
5
5
  "description": "CLI for monorepo dependency management",
6
6
  "license": "Apache License 2.0",
7
7
  "publishConfig": {
@@ -18,5 +18,5 @@
18
18
  "typescript": "5.7.3",
19
19
  "yaml": "^2.6.1"
20
20
  },
21
- "gitHead": "0c8595bf55fce16a6dfadf50f1e9561893890a47"
21
+ "gitHead": "6cd75fef09ff91a5aa7963717efee5734f9bd6b5"
22
22
  }
@@ -11,12 +11,13 @@ import path from 'node:path';
11
11
 
12
12
  import {
13
13
  collectDtsImports,
14
+ collectRootConfigFiles,
14
15
  collectSourceFiles,
15
16
  collectSourceImportsFromFiles,
16
17
  } from '../lib/imports';
17
18
  import { readPackageJson } from '../lib/package-json';
18
- import { isWorkspaceRole } from '../model/rules';
19
- import type { WorkspaceContext } from '../model/types';
19
+ import { isWorkspaceRole, matchesPatterns } from '../model/rules';
20
+ import type { ToolingFileRule, WorkspaceContext } from '../model/types';
20
21
 
21
22
  import { collectTsConfigPathAliases } from './tsconfig-aliases';
22
23
 
@@ -25,18 +26,41 @@ interface YarnWorkspaceInfo {
25
26
  name: string | null;
26
27
  }
27
28
 
29
+ function getToolingPatternsForWorkspace(
30
+ toolingFileRules: readonly ToolingFileRule[],
31
+ wsName: string,
32
+ wsLocation: string,
33
+ ): string[] {
34
+ return toolingFileRules
35
+ .filter(
36
+ (rule) =>
37
+ !rule.workspace ||
38
+ matchesPatterns(wsName, rule.workspace) ||
39
+ matchesPatterns(wsLocation, rule.workspace),
40
+ )
41
+ .flatMap((rule) => (Array.isArray(rule.match) ? rule.match : [rule.match]));
42
+ }
43
+
28
44
  function collectUsage(
29
45
  workspace: WorkspaceContext,
30
46
  withDts: boolean,
31
47
  ignoredImports: readonly string[],
48
+ toolingFilePatterns: readonly string[],
32
49
  ): void {
33
- const sourceFiles = collectSourceFiles(workspace.dir, workspace.pkg);
50
+ const sourceFiles = collectSourceFiles(
51
+ workspace.dir,
52
+ workspace.pkg,
53
+ toolingFilePatterns,
54
+ );
34
55
  const ignoredSpecifiers = [
35
56
  ...ignoredImports,
36
57
  ...collectTsConfigPathAliases(workspace.dir),
37
58
  ];
38
59
 
39
60
  workspace.sourceFileCount = sourceFiles.length;
61
+ workspace.toolingFiles = new Set(
62
+ collectRootConfigFiles(workspace.dir, toolingFilePatterns),
63
+ );
40
64
 
41
65
  for (const entry of collectSourceImportsFromFiles(sourceFiles, {
42
66
  ignoredSpecifiers,
@@ -68,6 +92,7 @@ export function loadWorkspaces(
68
92
  rootDir: string,
69
93
  withDts: boolean,
70
94
  ignoredImports: readonly string[] = [],
95
+ toolingFileRules: readonly ToolingFileRule[] = [],
71
96
  ): WorkspaceContext[] {
72
97
  const rootPkg = readPackageJson(rootDir);
73
98
  const raw = execSync('yarn workspaces list --json', {
@@ -112,7 +137,12 @@ export function loadWorkspaces(
112
137
  hasDist: existsSync(path.join(dir, 'dist')),
113
138
  };
114
139
 
115
- collectUsage(ctx, withDts, ignoredImports);
140
+ collectUsage(
141
+ ctx,
142
+ withDts,
143
+ ignoredImports,
144
+ getToolingPatternsForWorkspace(toolingFileRules, ctx.name, ctx.location),
145
+ );
116
146
  workspaces.push(ctx);
117
147
  }
118
148
 
@@ -5,7 +5,7 @@
5
5
  * import facts. They do not decide dependency placement; they only normalize
6
6
  * specifiers and classify imports as runtime or type-only.
7
7
  */
8
- import { existsSync, readdirSync, readFileSync } from 'node:fs';
8
+ import { type Dirent,existsSync, readdirSync, readFileSync } from 'node:fs';
9
9
  import { builtinModules } from 'node:module';
10
10
  import path from 'node:path';
11
11
  import ts = require('typescript');
@@ -45,6 +45,23 @@ const SOURCE_EXTENSIONS = new Set([
45
45
 
46
46
  const DTS_RE = /\.d\.(?:c|m)?ts$/;
47
47
  const DEFAULT_SOURCE_ROOTS = ['src', 'test', 'tests', '__tests__'];
48
+
49
+ // Build-tool config files conventionally live at the workspace root, outside
50
+ // src/, but still import real runtime dependencies (e.g. vite.config.ts,
51
+ // docusaurus.config.ts). They are scanned non-recursively so unrelated root
52
+ // files aren't picked up. Filenames that don't follow this convention (e.g.
53
+ // Docusaurus' sidebars.ts) aren't matched by default — declare them via
54
+ // depdoc.yml's `toolingFiles` instead.
55
+ const ROOT_CONFIG_FILE_SUFFIXES = [
56
+ '.config.ts',
57
+ '.config.tsx',
58
+ '.config.js',
59
+ '.config.jsx',
60
+ '.config.mjs',
61
+ '.config.cjs',
62
+ '.config.mts',
63
+ '.config.cts',
64
+ ];
48
65
  const IGNORED_ENTRYPOINT_DIRS = new Set([
49
66
  'node_modules',
50
67
  'dist',
@@ -422,9 +439,39 @@ function collectEntrypointGraphFiles(
422
439
  return [...result];
423
440
  }
424
441
 
442
+ export function isRootConfigFile(
443
+ name: string,
444
+ extraPatterns: readonly string[] = [],
445
+ ): boolean {
446
+ return (
447
+ ROOT_CONFIG_FILE_SUFFIXES.some((suffix) => name.endsWith(suffix)) ||
448
+ extraPatterns.some((pattern) => matchesSpecifierPattern(name, pattern))
449
+ );
450
+ }
451
+
452
+ export function collectRootConfigFiles(
453
+ workspaceDir: string,
454
+ extraPatterns: readonly string[] = [],
455
+ ): string[] {
456
+ let entries: Dirent[];
457
+
458
+ try {
459
+ entries = readdirSync(workspaceDir, { withFileTypes: true });
460
+ } catch {
461
+ return [];
462
+ }
463
+
464
+ return entries
465
+ .filter(
466
+ (entry) => entry.isFile() && isRootConfigFile(entry.name, extraPatterns),
467
+ )
468
+ .map((entry) => path.join(workspaceDir, entry.name));
469
+ }
470
+
425
471
  export function collectSourceFiles(
426
472
  srcDirOrWorkspaceDir: string,
427
473
  pkg?: PackageJson,
474
+ toolingFilePatterns: readonly string[] = [],
428
475
  ): string[] {
429
476
  if (!pkg) return walkFiles(srcDirOrWorkspaceDir, (name) => isSourceFile(name));
430
477
 
@@ -439,6 +486,13 @@ export function collectSourceFiles(
439
486
  }
440
487
  }
441
488
 
489
+ for (const file of collectRootConfigFiles(
490
+ srcDirOrWorkspaceDir,
491
+ toolingFilePatterns,
492
+ )) {
493
+ files.add(file);
494
+ }
495
+
442
496
  for (const file of collectEntrypointGraphFiles(srcDirOrWorkspaceDir, pkg)) {
443
497
  files.add(file);
444
498
  }
@@ -459,9 +513,10 @@ export function collectSourceImports(
459
513
  srcDirOrWorkspaceDir: string,
460
514
  pkg?: PackageJson,
461
515
  options: ImportCollectionOptions = {},
516
+ toolingFilePatterns: readonly string[] = [],
462
517
  ): ImportEntry[] {
463
518
  return collectSourceImportsFromFiles(
464
- collectSourceFiles(srcDirOrWorkspaceDir, pkg),
519
+ collectSourceFiles(srcDirOrWorkspaceDir, pkg, toolingFilePatterns),
465
520
  options,
466
521
  );
467
522
  }
@@ -1,9 +1,13 @@
1
1
  /**
2
2
  * Config validation for rule shapes that the model cannot interpret safely.
3
3
  */
4
- import type { DependencyModelConfig, DependencyRule } from './types';
4
+ import type {
5
+ DependencyModelConfig,
6
+ DependencyRule,
7
+ ToolingFileRule,
8
+ } from './types';
5
9
 
6
- function getRuleMatches(rule: DependencyRule): string[] {
10
+ function getRuleMatches(rule: DependencyRule | ToolingFileRule): string[] {
7
11
  return Array.isArray(rule.match) ? rule.match : [rule.match];
8
12
  }
9
13
 
@@ -47,12 +51,51 @@ export function validateIgnoredImports(ignoredImports: unknown): string[] {
47
51
  );
48
52
  }
49
53
 
54
+ function isStringOrStringArray(value: unknown): boolean {
55
+ return (
56
+ typeof value === 'string' ||
57
+ (Array.isArray(value) && value.every((item) => typeof item === 'string'))
58
+ );
59
+ }
60
+
61
+ export function validateToolingFiles(toolingFiles: unknown): string[] {
62
+ if (toolingFiles === undefined) return [];
63
+ if (!Array.isArray(toolingFiles)) {
64
+ return ['toolingFiles must be an array of { match, workspace? } rules'];
65
+ }
66
+
67
+ return toolingFiles.flatMap((item, index) => {
68
+ const label = `toolingFiles[${index}]`;
69
+ if (typeof item !== 'object' || item === null) {
70
+ return [`${label} must be an object with a match field`];
71
+ }
72
+
73
+ const rule = item as Record<string, unknown>;
74
+ const errors: string[] = [];
75
+
76
+ if (!isStringOrStringArray(rule.match)) {
77
+ errors.push(`${label}.match must be a string or an array of strings`);
78
+ }
79
+ if (
80
+ rule.workspace !== undefined &&
81
+ !isStringOrStringArray(rule.workspace)
82
+ ) {
83
+ errors.push(
84
+ `${label}.workspace must be a string or an array of strings`,
85
+ );
86
+ }
87
+
88
+ return errors;
89
+ });
90
+ }
91
+
50
92
  export function assertValidDependencyModelConfig(
51
93
  config: DependencyModelConfig,
52
94
  ): void {
53
95
  const errors = [
54
96
  ...validateDependencyRules(config.rules ?? []),
55
97
  ...validateIgnoredImports(config.ignoredImports),
98
+ ...validateToolingFiles(config.toolingFiles),
56
99
  ];
57
100
 
58
101
  if (errors.length === 0) return;
@@ -27,6 +27,20 @@ function isTestFile(file: string): boolean {
27
27
  );
28
28
  }
29
29
 
30
+ // Build-tool config files (vite.config.ts, eslint.config.js, ...) import
31
+ // real packages, but those imports are tooling usage, not the workspace's
32
+ // own runtime surface — treat them like test files for placement purposes
33
+ // so they don't get forced into dependencies/peerDependencies. Matched by
34
+ // exact path against the workspace's collected tooling files (not by name
35
+ // pattern), so an app module that merely happens to be named e.g.
36
+ // src/auth.config.ts is never misclassified.
37
+ function isPrivateUsageFile(
38
+ file: string,
39
+ toolingFiles: ReadonlySet<string>,
40
+ ): boolean {
41
+ return isTestFile(file) || toolingFiles.has(file);
42
+ }
43
+
30
44
  export function isExternal(
31
45
  depIdent: string,
32
46
  workspaceNames: Set<string>,
@@ -215,9 +229,13 @@ export function addUsageDependencies(
215
229
  const workspace = expected.workspace;
216
230
  if (workspace.isRoot) continue;
217
231
 
232
+ const toolingFiles = workspace.toolingFiles ?? new Set<string>();
233
+
218
234
  for (const [depIdent, usage] of workspace.sourceUsage) {
219
235
  const publicType = workspace.dtsImports.has(depIdent);
220
- const runtime = [...usage.runtimeFiles].some((file) => !isTestFile(file));
236
+ const runtime = [...usage.runtimeFiles].some(
237
+ (file) => !isPrivateUsageFile(file, toolingFiles),
238
+ );
221
239
  const allTestOnly = [...usage.files].every(isTestFile);
222
240
 
223
241
  if (runtime || publicType) {
@@ -23,9 +23,18 @@ export interface DependencyRule {
23
23
  required?: boolean;
24
24
  }
25
25
 
26
+ // Extra root-level filename patterns (beyond the built-in *.config.* suffix
27
+ // convention) whose imports should be treated as tooling usage rather than
28
+ // the workspace's own runtime surface, e.g. Docusaurus' sidebars.ts.
29
+ export interface ToolingFileRule {
30
+ match: string | string[];
31
+ workspace?: string | string[];
32
+ }
33
+
26
34
  export interface DependencyModelConfig {
27
35
  version?: number;
28
36
  ignoredImports?: string[];
37
+ toolingFiles?: ToolingFileRule[];
29
38
  rules?: DependencyRule[];
30
39
  doctor?: DoctorConfig;
31
40
  }
@@ -95,6 +104,11 @@ export interface WorkspaceFacts {
95
104
  hasSrc: boolean;
96
105
  hasDist: boolean;
97
106
  sourceFileCount?: number;
107
+
108
+ // Absolute paths of build-tool config files (vite.config.ts, ...) collected
109
+ // for this workspace; their imports are tooling usage, not the workspace's
110
+ // own runtime surface. Optional so callers that predate this field compile.
111
+ toolingFiles?: Set<string>;
98
112
  }
99
113
 
100
114
  export interface WorkspaceContext extends WorkspaceFacts {
package/src/runner.ts CHANGED
@@ -37,6 +37,7 @@ export function runDependencyModel(
37
37
  rootDir,
38
38
  withDts,
39
39
  config.ignoredImports ?? [],
40
+ config.toolingFiles ?? [],
40
41
  );
41
42
  const packageExtensions = loadPackageExtensions(rootDir);
42
43
  const workspaceNames = new Set(