@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.
- package/__tests__/config-validation.test.ts +30 -0
- package/__tests__/engine.test.ts +85 -2
- package/__tests__/fixtures/imports/plain-root-file.ts +3 -0
- package/__tests__/fixtures/imports/sidebars.ts +5 -0
- package/__tests__/fixtures/imports/vite.config.ts +3 -0
- package/__tests__/imports.test.ts +42 -1
- package/dist/collectors/workspaces.d.ts +2 -2
- package/dist/collectors/workspaces.js +12 -4
- package/dist/collectors/workspaces.js.map +1 -1
- package/dist/lib/imports.d.ts +4 -2
- package/dist/lib/imports.js +40 -3
- package/dist/lib/imports.js.map +1 -1
- package/dist/model/config-validation.d.ts +1 -0
- package/dist/model/config-validation.js +29 -0
- package/dist/model/config-validation.js.map +1 -1
- package/dist/model/placement.js +12 -1
- package/dist/model/placement.js.map +1 -1
- package/dist/model/types.d.ts +6 -0
- package/dist/model/types.js.map +1 -1
- package/dist/runner.js +1 -1
- package/dist/runner.js.map +1 -1
- package/package.json +2 -2
- package/src/collectors/workspaces.ts +34 -4
- package/src/lib/imports.ts +57 -2
- package/src/model/config-validation.ts +45 -2
- package/src/model/placement.ts +19 -1
- package/src/model/types.ts +14 -0
- package/src/runner.ts +1 -0
|
@@ -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
|
+
});
|
package/__tests__/engine.test.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
|
-
deriveDependencyModel,
|
|
3
2
|
type DependencyModelFacts,
|
|
4
|
-
|
|
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
|
|
|
@@ -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
|
|
22
|
-
|
|
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":";;;;;
|
|
1
|
+
{"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../src/collectors/workspaces.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/imports.d.ts
CHANGED
|
@@ -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
|
|
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>;
|
package/dist/lib/imports.js
CHANGED
|
@@ -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
|
|
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));
|
package/dist/lib/imports.js.map
CHANGED
|
@@ -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":";;
|
|
1
|
+
{"version":3,"file":"config-validation.js","sourceRoot":"","sources":["../../src/model/config-validation.ts"],"names":[],"mappings":"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"}
|
package/dist/model/placement.js
CHANGED
|
@@ -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) => !
|
|
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":";;
|
|
1
|
+
{"version":3,"file":"placement.js","sourceRoot":"","sources":["../../src/model/placement.ts"],"names":[],"mappings":";;AA2CA,gCAKC;AA6ID,0DA0BC;AAED,oDA4FC;AAED,kEA4CC;AAED,sDAeC;AAED,8EAqBC;AA3YD;;;;;;GAMG;AACH,yCAOoB;AACpB,mCAA2C;AAQ3C,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,2FAA2F,CAAC,IAAI,CACrG,IAAI,CACL,CAAC;AACJ,CAAC;AAED,yEAAyE;AACzE,0EAA0E;AAC1E,0EAA0E;AAC1E,0EAA0E;AAC1E,0EAA0E;AAC1E,kEAAkE;AAClE,6CAA6C;AAC7C,SAAS,kBAAkB,CACzB,IAAY,EACZ,YAAiC;IAEjC,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpD,CAAC;AAED,SAAgB,UAAU,CACxB,QAAgB,EAChB,cAA2B;IAE3B,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,0BAA0B,CAAC,QAAgB;IAClD,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IAChD,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnD,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACjC,OAAO,UAAU,KAAK,KAAK,IAAI,EAAE,CAAC;IACpC,CAAC;IAED,OAAO,UAAU,QAAQ,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,gCAAgC,CACvC,QAAgB,EAChB,oBAA+D,EAC/D,oBAAiC;IAEjC,MAAM,QAAQ,GAAG,0BAA0B,CAAC,QAAQ,CAAC,CAAC;IACtD,IAAI,CAAC,QAAQ,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAClE,IAAI,oBAAoB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,eAAe;QAAE,OAAO,IAAI,CAAC;IAErE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAoB;IAClD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAEtE,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,mBAAmB,CAC1B,QAA2B,EAC3B,YAA+B,EAC/B,IAAoB,EACpB,cAA2B,EAC3B,KAAuB,EACvB,QAAgB,EAChB,MAAc,EACd,UAAmE,EAAE;IAErE,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;IACrC,MAAM,IAAI,GAAG,IAAA,wBAAgB,EAC3B,KAAK,EACL,QAAQ,EACR,SAAS,CAAC,IAAI,EACd,SAAS,CAAC,QAAQ,CACnB,CAAC;IACF,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,OAAO;QACnB,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,IAAA,yBAAc,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAErD,IAAA,wBAAa,EAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAExC,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QACxD,IAAA,wBAAa,EAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC5C,IAAA,gCAAqB,EAAC,YAAY,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE;YACtE,IAAI,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW;YAC1D,MAAM,EAAE,OAAO,CAAC,gBAAgB;gBAC9B,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,QAAQ,SAAS,CAAC,IAAI,6CAA6C;gBACrF,CAAC,CAAC,GAAG,QAAQ,qBAAqB;SACrC,CAAC,CAAC;QACH,IAAA,oBAAS,EAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC9B,IAAA,oBAAS,EAAC,QAAQ,EAAE,QAAQ,EAAE;gBAC5B,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,GAAG,QAAQ,6CAA6C,SAAS,CAAC,IAAI,EAAE;aACjF,CAAC,CAAC;QACL,CAAC;QACD,OAAO;IACT,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,IAAA,gCAAqB,EAAC,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,aAAa,EAAE;YACvE,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,wBAAwB;SACjD,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,IACE,SAAS,CAAC,IAAI,KAAK,SAAS;QAC5B,IAAI,CAAC,OAAO,KAAK,cAAc;QAC/B,IAAI,CAAC,OAAO,KAAK,iBAAiB,EAClC,CAAC;QACD,IAAA,gCAAqB,EACnB,QAAQ,EACR,kBAAkB,EAClB,QAAQ,EACR,KAAK,EACL,MAAM,CACP,CAAC;QACF,IAAA,sCAA2B,EAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE;YACrD,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,GAAG,QAAQ,8CAA8C;SAClE,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAED,IAAA,gCAAqB,EAAC,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,oBAAoB,CAC3B,YAA+B,EAC/B,IAAoB,EACpB,SAA4B,EAC5B,cAA2B,EAC3B,KAAuB,EACvB,QAAgB,EAChB,MAAc;IAEd,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;IACtC,IAAI,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO;IACzC,MAAM,IAAI,GAAG,IAAA,wBAAgB,EAC3B,KAAK,EACL,QAAQ,EACR,SAAS,CAAC,IAAI,EACd,SAAS,CAAC,QAAQ,CACnB,CAAC;IACF,MAAM,KAAK,GAAG,IAAA,yBAAc,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAE/D,IAAA,wBAAa,EAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5C,IAAA,wBAAa,EAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAEzC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,IAAA,oBAAS,EAAC,SAAS,EAAE,QAAQ,EAAE;YAC7B,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,GAAG,QAAQ,6CAA6C,SAAS,CAAC,IAAI,EAAE;SACjF,CAAC,CAAC;IACL,CAAC;IAED,IAAA,gCAAqB,EACnB,YAAY,EACZ,iBAAiB,EACjB,QAAQ,EACR,KAAK,EACL,MAAM,CACP,CAAC;AACJ,CAAC;AAED,SAAgB,uBAAuB,CACrC,kBAAkD,EAClD,cAA2B,EAC3B,KAAuB;IAEvB,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;IAElD,KAAK,MAAM,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CACpD,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CACjD,EAAE,CAAC;QACF,MAAM,IAAI,GAAG,IAAA,wBAAgB,EAC3B,KAAK,EACL,QAAQ,EACR,YAAY,CAAC,SAAS,CAAC,IAAI,EAC3B,YAAY,CAAC,SAAS,CAAC,QAAQ,CAChC,CAAC;QACF,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC;YACxC,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,aAAa,CAAC,CAAC;QAEpC,IAAA,gCAAqB,EAAC,YAAY,EAAE,iBAAiB,EAAE,QAAQ,EAAE,KAAK,EAAE;YACtE,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,GAAG,QAAQ,+CAA+C;SACnE,CAAC,CAAC;QACH,IAAA,wBAAa,EAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,SAAgB,oBAAoB,CAClC,kBAAkD,EAClD,IAAoB,EACpB,cAA2B,EAC3B,KAAuB,EACvB,oBAA+D,EAC/D,oBAAiC;IAEjC,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;IAElD,KAAK,MAAM,QAAQ,IAAI,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC;QACnD,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QACrC,IAAI,SAAS,CAAC,MAAM;YAAE,SAAS;QAE/B,MAAM,YAAY,GAAG,SAAS,CAAC,YAAY,IAAI,IAAI,GAAG,EAAU,CAAC;QAEjE,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;YACtD,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtD,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAC1C,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE,YAAY,CAAC,CAClD,CAAC;YACF,MAAM,WAAW,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAEvD,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;gBAC1B,mBAAmB,CACjB,QAAQ,EACR,YAAY,EACZ,IAAI,EACJ,cAAc,EACd,KAAK,EACL,QAAQ,EACR;oBACE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,gBAAgB;oBAC1D,MAAM,EAAE,UAAU;wBAChB,CAAC,CAAC,GAAG,QAAQ,2BAA2B;wBACxC,CAAC,CAAC,GAAG,QAAQ,yBAAyB;iBACzC,CACF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,oBAAoB,CAClB,YAAY,EACZ,IAAI,EACJ,QAAQ,EACR,cAAc,EACd,KAAK,EACL,QAAQ,EACR;oBACE,IAAI,EAAE,oBAAoB;oBAC1B,MAAM,EAAE,WAAW;wBACjB,CAAC,CAAC,GAAG,QAAQ,kCAAkC,SAAS,CAAC,IAAI,EAAE;wBAC/D,CAAC,CAAC,GAAG,QAAQ,uDAAuD,SAAS,CAAC,IAAI,EAAE;iBACvF,CACF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;YAC5C,mBAAmB,CACjB,QAAQ,EACR,YAAY,EACZ,IAAI,EACJ,cAAc,EACd,KAAK,EACL,QAAQ,EACR;gBACE,IAAI,EAAE,oBAAoB;gBAC1B,MAAM,EAAE,GAAG,QAAQ,2BAA2B;aAC/C,CACF,CAAC;YAEF,MAAM,YAAY,GAAG,gCAAgC,CACnD,QAAQ,EACR,oBAAoB,EACpB,oBAAoB,CACrB,CAAC;YACF,IAAI,CAAC,YAAY;gBAAE,SAAS;YAE5B,mBAAmB,CACjB,QAAQ,EACR,YAAY,EACZ,IAAI,EACJ,cAAc,EACd,KAAK,EACL,YAAY,EACZ;gBACE,IAAI,EAAE,cAAc;gBACpB,MAAM,EAAE,GAAG,YAAY,8BAA8B,QAAQ,EAAE;aAChE,EACD,EAAE,aAAa,EAAE,IAAI,EAAE,CACxB,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,2BAA2B,CACzC,kBAAkD,EAClD,IAAoB,EACpB,cAA2B,EAC3B,KAAuB;IAEvB,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;IAClD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IAErC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YAAE,SAAS;QAC1C,KAAK,MAAM,QAAQ,IAAI,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;YACpD,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC;QACnD,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QACrC,IAAI,SAAS,CAAC,MAAM;YAAE,SAAS;QAE/B,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,IAAA,wBAAgB,EAC3B,KAAK,EACL,QAAQ,EACR,SAAS,CAAC,IAAI,EACd,SAAS,CAAC,QAAQ,CACnB,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,SAAS;YAE7B,mBAAmB,CACjB,QAAQ,EACR,YAAY,EACZ,IAAI,EACJ,cAAc,EACd,KAAK,EACL,QAAQ,EACR;gBACE,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,GAAG,QAAQ,wCAAwC;aAC5D,EACD,EAAE,gBAAgB,EAAE,IAAI,CAAC,QAAQ,EAAE,CACpC,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,qBAAqB,CACnC,kBAAkD;IAElD,KAAK,MAAM,QAAQ,IAAI,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC;QACnD,IAAI,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS;YAAE,SAAS;QACpD,QAAQ,CAAC,QAAQ,CAAC,eAAe,GAAG,IAAI,GAAG,CACzC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CACnC,CAAC;QACF,KAAK,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;YAC3D,IAAA,oBAAS,EAAC,QAAQ,EAAE,QAAQ,EAAE;gBAC5B,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,GAAG,QAAQ,8CAA8C;aAClE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,iCAAiC,CAC/C,IAAoB,EACpB,QAA2B,EAC3B,cAA2B,EAC3B,KAAuB,EACvB,QAAgB,EAChB,YAAoB;IAEpB,MAAM,IAAI,GAAG,IAAA,wBAAgB,EAC3B,KAAK,EACL,QAAQ,EACR,QAAQ,CAAC,SAAS,CAAC,IAAI,EACvB,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAC5B,CAAC;IAEF,OAAO,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC;QACjC,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO;YACb,IAAA,2BAAgB,EAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,QAAQ,CAAC;YAClD,IAAA,2BAAgB,EAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC;YACpC,YAAY,CAAC,CAAC;AACpB,CAAC"}
|
package/dist/model/types.d.ts
CHANGED
|
@@ -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;
|
package/dist/model/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/model/types.ts"],"names":[],"mappings":";;;
|
|
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);
|
package/dist/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":";;AAwBA,
|
|
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.
|
|
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": "
|
|
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(
|
|
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(
|
|
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
|
|
package/src/lib/imports.ts
CHANGED
|
@@ -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 {
|
|
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;
|
package/src/model/placement.ts
CHANGED
|
@@ -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(
|
|
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) {
|
package/src/model/types.ts
CHANGED
|
@@ -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 {
|