tdepend 0.2.0 → 0.3.1

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.
Files changed (115) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +212 -116
  3. package/dist/api/analyze.d.ts +8 -68
  4. package/dist/api/analyze.js +33 -108
  5. package/dist/api/analyze.js.map +1 -1
  6. package/dist/api/explain.d.ts +22 -0
  7. package/dist/api/explain.js +38 -0
  8. package/dist/api/explain.js.map +1 -0
  9. package/dist/api/export.d.ts +4 -47
  10. package/dist/api/export.js +6 -45
  11. package/dist/api/export.js.map +1 -1
  12. package/dist/api/serialization.d.ts +6 -26
  13. package/dist/api/serialization.js +68 -58
  14. package/dist/api/serialization.js.map +1 -1
  15. package/dist/cli/index.js +11 -129
  16. package/dist/cli/index.js.map +1 -1
  17. package/dist/cli/run.d.ts +12 -0
  18. package/dist/cli/run.js +112 -0
  19. package/dist/cli/run.js.map +1 -0
  20. package/dist/config/loadConfig.d.ts +10 -10
  21. package/dist/config/loadConfig.js +73 -36
  22. package/dist/config/loadConfig.js.map +1 -1
  23. package/dist/config/schema.d.ts +59 -29
  24. package/dist/config/schema.js +45 -51
  25. package/dist/config/schema.js.map +1 -1
  26. package/dist/errors.d.ts +9 -0
  27. package/dist/errors.js +21 -0
  28. package/dist/errors.js.map +1 -0
  29. package/dist/files/collectFiles.d.ts +21 -0
  30. package/dist/files/collectFiles.js +189 -0
  31. package/dist/files/collectFiles.js.map +1 -0
  32. package/dist/fs.d.ts +16 -0
  33. package/dist/fs.js +50 -0
  34. package/dist/fs.js.map +1 -0
  35. package/dist/graph/buildFileGraph.d.ts +33 -0
  36. package/dist/graph/buildFileGraph.js +163 -0
  37. package/dist/graph/buildFileGraph.js.map +1 -0
  38. package/dist/graph/fileGraph.d.ts +20 -0
  39. package/dist/graph/fileGraph.js +75 -0
  40. package/dist/graph/fileGraph.js.map +1 -0
  41. package/dist/index.d.ts +10 -21
  42. package/dist/index.js +6 -29
  43. package/dist/index.js.map +1 -1
  44. package/dist/output/analyzeText.d.ts +7 -0
  45. package/dist/output/analyzeText.js +91 -0
  46. package/dist/output/analyzeText.js.map +1 -0
  47. package/dist/parser/extractSites.d.ts +3 -0
  48. package/dist/parser/extractSites.js +704 -0
  49. package/dist/parser/extractSites.js.map +1 -0
  50. package/dist/parser/loadsTarget.d.ts +10 -0
  51. package/dist/parser/loadsTarget.js +304 -0
  52. package/dist/parser/loadsTarget.js.map +1 -0
  53. package/dist/parser/types.d.ts +30 -0
  54. package/dist/{types/graph.js → parser/types.js} +1 -1
  55. package/dist/parser/types.js.map +1 -0
  56. package/dist/project/discoverProject.d.ts +2 -0
  57. package/dist/project/discoverProject.js +477 -0
  58. package/dist/project/discoverProject.js.map +1 -0
  59. package/dist/project/gitignore.d.ts +13 -0
  60. package/dist/project/gitignore.js +138 -0
  61. package/dist/project/gitignore.js.map +1 -0
  62. package/dist/project/types.d.ts +44 -0
  63. package/dist/{types/parser.js → project/types.js} +1 -1
  64. package/dist/project/types.js.map +1 -0
  65. package/dist/resolver/createResolver.d.ts +4 -0
  66. package/dist/resolver/createResolver.js +276 -0
  67. package/dist/resolver/createResolver.js.map +1 -0
  68. package/dist/resolver/types.d.ts +28 -0
  69. package/dist/resolver/types.js +3 -0
  70. package/dist/resolver/types.js.map +1 -0
  71. package/dist/resolver/workspaceHost.d.ts +12 -0
  72. package/dist/resolver/workspaceHost.js +253 -0
  73. package/dist/resolver/workspaceHost.js.map +1 -0
  74. package/dist/types/api.d.ts +71 -64
  75. package/package.json +24 -25
  76. package/dist/analysis/reporter.d.ts +0 -22
  77. package/dist/analysis/reporter.js +0 -116
  78. package/dist/analysis/reporter.js.map +0 -1
  79. package/dist/graph/cycleDetector.d.ts +0 -2
  80. package/dist/graph/cycleDetector.js +0 -56
  81. package/dist/graph/cycleDetector.js.map +0 -1
  82. package/dist/graph/dependencyGraph.d.ts +0 -10
  83. package/dist/graph/dependencyGraph.js +0 -41
  84. package/dist/graph/dependencyGraph.js.map +0 -1
  85. package/dist/metrics/abstractness.d.ts +0 -2
  86. package/dist/metrics/abstractness.js +0 -10
  87. package/dist/metrics/abstractness.js.map +0 -1
  88. package/dist/metrics/distance.d.ts +0 -1
  89. package/dist/metrics/distance.js +0 -7
  90. package/dist/metrics/distance.js.map +0 -1
  91. package/dist/metrics/index.d.ts +0 -4
  92. package/dist/metrics/index.js +0 -30
  93. package/dist/metrics/index.js.map +0 -1
  94. package/dist/metrics/instability.d.ts +0 -1
  95. package/dist/metrics/instability.js +0 -8
  96. package/dist/metrics/instability.js.map +0 -1
  97. package/dist/parser/fileScanner.d.ts +0 -8
  98. package/dist/parser/fileScanner.js +0 -22
  99. package/dist/parser/fileScanner.js.map +0 -1
  100. package/dist/parser/tsParser.d.ts +0 -18
  101. package/dist/parser/tsParser.js +0 -158
  102. package/dist/parser/tsParser.js.map +0 -1
  103. package/dist/types/graph.d.ts +0 -14
  104. package/dist/types/graph.js.map +0 -1
  105. package/dist/types/parser.d.ts +0 -26
  106. package/dist/types/parser.js.map +0 -1
  107. package/dist/utils/deepMerge.d.ts +0 -1
  108. package/dist/utils/deepMerge.js +0 -23
  109. package/dist/utils/deepMerge.js.map +0 -1
  110. package/dist/utils/log.d.ts +0 -2
  111. package/dist/utils/log.js +0 -9
  112. package/dist/utils/log.js.map +0 -1
  113. package/dist/utils/pathUtils.d.ts +0 -12
  114. package/dist/utils/pathUtils.js +0 -27
  115. package/dist/utils/pathUtils.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extractSites.js","sourceRoot":"","sources":["../../src/parser/extractSites.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import * as ts from 'typescript';
2
+ import type { ImportSite, LoadReason, ParsedFile } from './types';
3
+ export type Compiler = 'tsc' | 'esbuild' | 'swc';
4
+ export type { LoadReason };
5
+ export interface LoadVerdict {
6
+ loadsTarget: boolean;
7
+ loadsTargetBy: LoadReason;
8
+ reason: string;
9
+ }
10
+ export declare function classifyLoads(parsed: ParsedFile, site: ImportSite, options: ts.CompilerOptions, typeOnly: 'usage' | 'syntax', compilers: Compiler[]): LoadVerdict;
@@ -0,0 +1,304 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.classifyLoads = classifyLoads;
37
+ const ts = __importStar(require("typescript"));
38
+ const TS_FAMILY = /\.(ts|tsx|mts|cts)$/i;
39
+ // A site loads its target unless every declared compiler erases it. The rules
40
+ // below read the file's own compiler options plus the declared compilers, so a
41
+ // repo can narrow the contract with `compilers`.
42
+ function classifyLoads(parsed, site, options, typeOnly, compilers) {
43
+ if (site.form === 'type-context') {
44
+ return erased('syntax', 'a type-context import is erased by every compiler');
45
+ }
46
+ if (site.kind === 'type') {
47
+ if (isWholeTypeDeclaration(site)) {
48
+ return erased('syntax', 'a whole-declaration type-only import or re-export is erased by every compiler');
49
+ }
50
+ if (keepsVerbatim(options)) {
51
+ return retained('an inline type-only import under verbatimModuleSyntax still evaluates the module');
52
+ }
53
+ return erased('syntax', 'inline type-only specifiers are erased by every compiler');
54
+ }
55
+ if (site.kind === 're-export') {
56
+ return classifyReExport(parsed, site, options, compilers);
57
+ }
58
+ if (site.kind === 'require' || site.kind === 'side-effect' || site.kind === 'dynamic') {
59
+ return retained(`a ${site.kind} import is evaluated and every compiler keeps it`);
60
+ }
61
+ return classifyStatic(parsed, site, options, typeOnly, compilers);
62
+ }
63
+ function classifyReExport(parsed, site, options, compilers) {
64
+ const declaration = exportDeclarationOf(site);
65
+ const clause = declaration?.exportClause;
66
+ if (clause === undefined || ts.isNamespaceExport(clause)) {
67
+ return retained('a namespace re-export is evaluated by every compiler');
68
+ }
69
+ if (clause.elements.length === 0) {
70
+ if (TS_FAMILY.test(parsed.file) && !keepsVerbatim(options)) {
71
+ return erased('syntax', 'an empty re-export is erased in a TypeScript file without verbatimModuleSyntax');
72
+ }
73
+ return retained('an empty re-export is kept by esbuild and swc, and by native ESM');
74
+ }
75
+ return retained('an unmarked named re-export is kept until every name is known to be a type');
76
+ }
77
+ function classifyStatic(parsed, site, options, typeOnly, compilers) {
78
+ if (site.bindings.length === 0) {
79
+ if (keepsVerbatim(options) || compilers.includes('swc')) {
80
+ return retained('an empty import is kept by swc as a side-effect import');
81
+ }
82
+ return erased('syntax', 'an empty import is erased by every declared compiler');
83
+ }
84
+ if (!TS_FAMILY.test(parsed.file)) {
85
+ return retained('a static import in a JavaScript file is kept exactly as written');
86
+ }
87
+ if (keepsVerbatim(options) || options.preserveValueImports === true || preservesUnused(options)) {
88
+ return retained('the file keeps an unused import under its compiler options');
89
+ }
90
+ if (typeOnly === 'syntax') {
91
+ return retained('typeOnly is syntax, so every static import is kept');
92
+ }
93
+ const facts = fileFacts(parsed.sourceFile, options);
94
+ if (site.bindings.some((binding) => facts.valueNames.has(binding.local))) {
95
+ return retained('at least one binding is used as a value');
96
+ }
97
+ return erased('usage', 'every binding is used only in a type position, or not at all');
98
+ }
99
+ function erased(loadsTargetBy, reason) {
100
+ return { loadsTarget: false, loadsTargetBy, reason };
101
+ }
102
+ function retained(reason) {
103
+ return { loadsTarget: true, loadsTargetBy: 'retained', reason };
104
+ }
105
+ function keepsVerbatim(options) {
106
+ return options.verbatimModuleSyntax === true;
107
+ }
108
+ function preservesUnused(options) {
109
+ return (options.importsNotUsedAsValues === ts.ImportsNotUsedAsValues.Preserve ||
110
+ options.importsNotUsedAsValues === ts.ImportsNotUsedAsValues.Error);
111
+ }
112
+ function isWholeTypeDeclaration(site) {
113
+ const parent = site.node.parent;
114
+ if (ts.isImportDeclaration(parent)) {
115
+ return parent.importClause?.isTypeOnly === true;
116
+ }
117
+ if (ts.isExportDeclaration(parent)) {
118
+ return parent.isTypeOnly;
119
+ }
120
+ if (ts.isExternalModuleReference(parent)) {
121
+ const owner = parent.parent;
122
+ return ts.isImportEqualsDeclaration(owner) && owner.isTypeOnly;
123
+ }
124
+ return false;
125
+ }
126
+ function exportDeclarationOf(site) {
127
+ const parent = site.node.parent;
128
+ return ts.isExportDeclaration(parent) ? parent : undefined;
129
+ }
130
+ const FILE_FACTS = new WeakMap();
131
+ function fileFacts(sourceFile, options) {
132
+ const cached = FILE_FACTS.get(sourceFile);
133
+ if (cached !== undefined)
134
+ return cached;
135
+ const facts = collectFileFacts(sourceFile, options);
136
+ FILE_FACTS.set(sourceFile, facts);
137
+ return facts;
138
+ }
139
+ const JSX_PRAGMA = /@jsx(?:Frag)?\s+([\w$]+)/gi;
140
+ // One name-matching pass over the file. A name counts as a value use when it
141
+ // appears outside a type position and outside the import statements, so the
142
+ // scan never treats the import that declares it as a use of itself. Scopes are
143
+ // not analysed: a shadowing local or parameter counts too, which keeps the
144
+ // result conservative.
145
+ function collectFileFacts(sourceFile, options) {
146
+ const valueNames = new Set();
147
+ const metadataOn = options.experimentalDecorators === true && options.emitDecoratorMetadata === true;
148
+ let hasJsx = false;
149
+ const record = (name) => {
150
+ valueNames.add(name);
151
+ };
152
+ const visit = (node, inType) => {
153
+ if (ts.isImportDeclaration(node) || ts.isImportEqualsDeclaration(node))
154
+ return;
155
+ if (ts.isExportDeclaration(node)) {
156
+ if (node.moduleSpecifier !== undefined)
157
+ return;
158
+ const clause = node.exportClause;
159
+ if (clause !== undefined && ts.isNamedExports(clause) && !node.isTypeOnly) {
160
+ for (const element of clause.elements) {
161
+ if (!element.isTypeOnly)
162
+ record((element.propertyName ?? element.name).text);
163
+ }
164
+ }
165
+ return;
166
+ }
167
+ if (ts.isExportAssignment(node)) {
168
+ visit(node.expression, false);
169
+ return;
170
+ }
171
+ if (ts.isHeritageClause(node)) {
172
+ visitHeritageClause(node, visit);
173
+ return;
174
+ }
175
+ if (ts.isExpressionWithTypeArguments(node)) {
176
+ if (!inType)
177
+ visit(node.expression, false);
178
+ return;
179
+ }
180
+ if (inType || ts.isTypeNode(node)) {
181
+ if (ts.isComputedPropertyName(node))
182
+ visit(node.expression, false);
183
+ else
184
+ node.forEachChild((child) => visit(child, true));
185
+ return;
186
+ }
187
+ if (ts.isIdentifier(node) && isReference(node))
188
+ record(node.text);
189
+ if (ts.isJsxElement(node) || ts.isJsxSelfClosingElement(node) || ts.isJsxFragment(node)) {
190
+ hasJsx = true;
191
+ }
192
+ if (metadataOn)
193
+ recordDeclaredTypes(node, record);
194
+ node.forEachChild((child) => visit(child, ts.isTypeNode(child) && !ts.isExpressionWithTypeArguments(child)));
195
+ };
196
+ visit(sourceFile, false);
197
+ if (hasJsx)
198
+ jsxFactoryNames(sourceFile, options).forEach(record);
199
+ return { valueNames };
200
+ }
201
+ // swc keeps the factory import under every `jsx` setting, even the automatic
202
+ // runtime that never calls it. A comment that only looks like a pragma can match
203
+ // here, which keeps an import and never erases one.
204
+ function jsxFactoryNames(sourceFile, options) {
205
+ const names = [options.jsxFactory ?? options.reactNamespace ?? 'React'];
206
+ if (options.jsxFragmentFactory !== undefined)
207
+ names.push(options.jsxFragmentFactory);
208
+ for (const match of sourceFile.text.matchAll(JSX_PRAGMA))
209
+ names.push(match[1]);
210
+ return names.map((name) => name.split('.')[0]);
211
+ }
212
+ function visitHeritageClause(clause, visit) {
213
+ const owner = clause.parent;
214
+ const classExtends = (ts.isClassDeclaration(owner) || ts.isClassExpression(owner)) &&
215
+ clause.token === ts.SyntaxKind.ExtendsKeyword;
216
+ if (!classExtends)
217
+ return;
218
+ for (const type of clause.types) {
219
+ visit(type.expression, false);
220
+ for (const argument of type.typeArguments ?? [])
221
+ visit(argument, true);
222
+ }
223
+ }
224
+ // tsc and swc serialise only the leftmost name of a type reference
225
+ // (`Promise<Dto>` becomes `Promise`), so only that name is a value use.
226
+ function recordDeclaredTypes(node, record) {
227
+ if (ts.isMethodDeclaration(node) ||
228
+ ts.isGetAccessorDeclaration(node) ||
229
+ ts.isSetAccessorDeclaration(node)) {
230
+ if (!hasDecorator(node) && !node.parameters.some(hasDecorator))
231
+ return;
232
+ for (const parameter of node.parameters)
233
+ recordMetadataType(parameter.type, record);
234
+ recordMetadataType(node.type, record);
235
+ return;
236
+ }
237
+ if (ts.isPropertyDeclaration(node)) {
238
+ if (hasDecorator(node))
239
+ recordMetadataType(node.type, record);
240
+ return;
241
+ }
242
+ if (ts.isClassDeclaration(node) || ts.isClassExpression(node)) {
243
+ const constructors = node.members.filter(ts.isConstructorDeclaration);
244
+ const parameters = constructors.flatMap((constructor) => [...constructor.parameters]);
245
+ if (!hasDecorator(node) && !parameters.some(hasDecorator))
246
+ return;
247
+ for (const parameter of parameters)
248
+ recordMetadataType(parameter.type, record);
249
+ }
250
+ }
251
+ function recordMetadataType(type, record) {
252
+ if (type === undefined)
253
+ return;
254
+ if (ts.isTypeReferenceNode(type)) {
255
+ record(leftmostName(type.typeName));
256
+ return;
257
+ }
258
+ if (ts.isParenthesizedTypeNode(type) || ts.isTypeOperatorNode(type)) {
259
+ recordMetadataType(type.type, record);
260
+ return;
261
+ }
262
+ if (ts.isUnionTypeNode(type) || ts.isIntersectionTypeNode(type)) {
263
+ for (const member of type.types)
264
+ recordMetadataType(member, record);
265
+ return;
266
+ }
267
+ if (ts.isConditionalTypeNode(type)) {
268
+ recordMetadataType(type.trueType, record);
269
+ recordMetadataType(type.falseType, record);
270
+ }
271
+ }
272
+ function leftmostName(name) {
273
+ return ts.isIdentifier(name) ? name.text : leftmostName(name.left);
274
+ }
275
+ function hasDecorator(node) {
276
+ return ts.canHaveDecorators(node) && (ts.getDecorators(node)?.length ?? 0) > 0;
277
+ }
278
+ function isReference(node) {
279
+ const parent = node.parent;
280
+ if ((ts.isPropertyAccessExpression(parent) || ts.isPropertyAccessChain(parent)) &&
281
+ parent.name === node) {
282
+ return false;
283
+ }
284
+ if (ts.isQualifiedName(parent) && parent.right === node)
285
+ return false;
286
+ if (ts.isPropertyAssignment(parent) && parent.name === node)
287
+ return false;
288
+ if (ts.isJsxAttribute(parent) && parent.name === node)
289
+ return false;
290
+ if (ts.isBindingElement(parent) && parent.propertyName === node)
291
+ return false;
292
+ if ((ts.isMethodDeclaration(parent) ||
293
+ ts.isPropertyDeclaration(parent) ||
294
+ ts.isGetAccessorDeclaration(parent) ||
295
+ ts.isSetAccessorDeclaration(parent) ||
296
+ ts.isPropertySignature(parent) ||
297
+ ts.isMethodSignature(parent) ||
298
+ ts.isEnumMember(parent)) &&
299
+ parent.name === node) {
300
+ return false;
301
+ }
302
+ return true;
303
+ }
304
+ //# sourceMappingURL=loadsTarget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadsTarget.js","sourceRoot":"","sources":["../../src/parser/loadsTarget.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type * as ts from 'typescript';
2
+ export type EdgeKind = 'static' | 'type' | 're-export' | 'dynamic' | 'require' | 'side-effect';
3
+ export type SiteForm = 'declaration' | 'type-context';
4
+ export type UnsupportedReason = 'non-literal' | 'shadowed-require' | 'jsdoc-import-type';
5
+ export type LoadReason = 'syntax' | 'usage' | 'retained';
6
+ export interface ImportBinding {
7
+ local: string;
8
+ imported: string | '*' | 'default';
9
+ typeOnly: boolean;
10
+ }
11
+ export interface ImportSite {
12
+ specifier: string;
13
+ line: number;
14
+ column: number;
15
+ kind: EdgeKind;
16
+ form: SiteForm;
17
+ bindings: ImportBinding[];
18
+ deferred?: boolean;
19
+ unsupported?: UnsupportedReason;
20
+ loadsTarget?: boolean;
21
+ loadsTargetBy?: LoadReason;
22
+ loadReason?: string;
23
+ node: ts.Node;
24
+ }
25
+ export interface ParsedFile {
26
+ file: string;
27
+ sourceFile: ts.SourceFile;
28
+ sites: ImportSite[];
29
+ directives: string[];
30
+ }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=graph.js.map
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/parser/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import type { DiscoverOptions, ProjectContext } from './types';
2
+ export declare function discoverProject(rootDir: string, opts?: DiscoverOptions): ProjectContext;