@aiready/context-analyzer 0.21.22 → 0.21.24
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/.turbo/turbo-build.log +26 -25
- package/.turbo/turbo-lint.log +5 -5
- package/.turbo/turbo-test.log +91 -41
- package/coverage/clover.xml +2615 -1242
- package/coverage/coverage-final.json +30 -13
- package/coverage/dist/chunk-64U3PNO3.mjs.html +367 -0
- package/coverage/dist/chunk-J3MUOWHC.mjs.html +5326 -0
- package/coverage/dist/index.html +146 -0
- package/coverage/{classifier.ts.html → dist/index.mjs.html} +537 -912
- package/coverage/index.html +84 -189
- package/coverage/src/analyzer.ts.html +88 -0
- package/coverage/src/analyzers/index.html +116 -0
- package/coverage/src/analyzers/python-context.ts.html +910 -0
- package/coverage/{ast-utils.ts.html → src/ast-utils.ts.html} +84 -54
- package/coverage/src/classifier.ts.html +892 -0
- package/coverage/src/classify/classification-patterns.ts.html +307 -0
- package/coverage/src/classify/file-classifiers.ts.html +973 -0
- package/coverage/src/classify/index.html +131 -0
- package/coverage/{cluster-detector.ts.html → src/cluster-detector.ts.html} +154 -91
- package/coverage/{defaults.ts.html → src/defaults.ts.html} +74 -65
- package/coverage/{graph-builder.ts.html → src/graph-builder.ts.html} +268 -229
- package/coverage/src/index.html +341 -0
- package/coverage/{index.ts.html → src/index.ts.html} +70 -13
- package/coverage/{scoring.ts.html → src/issue-analyzer.ts.html} +201 -261
- package/coverage/src/mapper.ts.html +439 -0
- package/coverage/{metrics.ts.html → src/metrics.ts.html} +201 -132
- package/coverage/src/orchestrator.ts.html +493 -0
- package/coverage/{provider.ts.html → src/provider.ts.html} +21 -21
- package/coverage/{remediation.ts.html → src/remediation.ts.html} +112 -52
- package/coverage/src/report/console-report.ts.html +415 -0
- package/coverage/src/report/html-report.ts.html +361 -0
- package/coverage/src/report/index.html +146 -0
- package/coverage/src/report/interactive-setup.ts.html +373 -0
- package/coverage/src/scoring.ts.html +895 -0
- package/coverage/src/semantic/co-usage.ts.html +340 -0
- package/coverage/src/semantic/consolidation.ts.html +223 -0
- package/coverage/src/semantic/domain-inference.ts.html +859 -0
- package/coverage/src/semantic/index.html +161 -0
- package/coverage/src/semantic/type-graph.ts.html +163 -0
- package/coverage/{summary.ts.html → src/summary.ts.html} +155 -275
- package/coverage/{types.ts.html → src/types.ts.html} +133 -31
- package/coverage/src/utils/dependency-graph-utils.ts.html +463 -0
- package/coverage/src/utils/index.html +131 -0
- package/coverage/src/utils/string-utils.ts.html +148 -0
- package/dist/chunk-AMPK6SWS.mjs +1754 -0
- package/dist/chunk-BHCRDEE4.mjs +1745 -0
- package/dist/chunk-IKRP7ECY.mjs +1754 -0
- package/dist/chunk-J3MUOWHC.mjs +1747 -0
- package/dist/chunk-TWWPY7FD.mjs +1754 -0
- package/dist/chunk-Z5WY6A4P.mjs +1754 -0
- package/dist/cli.js +77 -185
- package/dist/cli.mjs +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +73 -181
- package/dist/index.mjs +1 -1
- package/dist/python-context-BWDC4E5Z.mjs +162 -0
- package/package.json +3 -3
- package/src/__tests__/analyzer.test.ts +14 -14
- package/src/__tests__/auto-detection.test.ts +16 -16
- package/src/__tests__/consolidation.test.ts +247 -0
- package/src/__tests__/defaults.test.ts +121 -0
- package/src/__tests__/domain-inference.test.ts +420 -0
- package/src/__tests__/fragmentation-coupling.test.ts +4 -4
- package/src/__tests__/issue-analyzer.test.ts +155 -0
- package/src/__tests__/orchestrator.test.ts +143 -0
- package/src/__tests__/python-context.test.ts +100 -0
- package/src/__tests__/report/console-report.test.ts +292 -0
- package/src/__tests__/report/html-report.test.ts +243 -0
- package/src/__tests__/scoring.test.ts +17 -11
- package/src/analyzers/python-context.ts +2 -2
- package/src/ast-utils.ts +3 -3
- package/src/graph-builder.ts +4 -4
- package/src/mapper.ts +6 -0
- package/src/orchestrator.ts +1 -1
- package/src/report/html-report.ts +73 -181
- package/coverage/analyzer.ts.html +0 -1369
- package/coverage/semantic-analysis.ts.html +0 -1201
|
@@ -3,15 +3,15 @@
|
|
|
3
3
|
<html lang="en">
|
|
4
4
|
|
|
5
5
|
<head>
|
|
6
|
-
<title>Code coverage report for remediation.ts</title>
|
|
6
|
+
<title>Code coverage report for src/remediation.ts</title>
|
|
7
7
|
<meta charset="utf-8" />
|
|
8
|
-
<link rel="stylesheet" href="prettify.css" />
|
|
9
|
-
<link rel="stylesheet" href="base.css" />
|
|
10
|
-
<link rel="shortcut icon" type="image/x-icon" href="favicon.png" />
|
|
8
|
+
<link rel="stylesheet" href="../prettify.css" />
|
|
9
|
+
<link rel="stylesheet" href="../base.css" />
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
|
|
11
11
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
12
|
<style type='text/css'>
|
|
13
13
|
.coverage-summary .sorter {
|
|
14
|
-
background-image: url(sort-arrow-sprite.png);
|
|
14
|
+
background-image: url(../sort-arrow-sprite.png);
|
|
15
15
|
}
|
|
16
16
|
</style>
|
|
17
17
|
</head>
|
|
@@ -19,34 +19,34 @@
|
|
|
19
19
|
<body>
|
|
20
20
|
<div class='wrapper'>
|
|
21
21
|
<div class='pad1'>
|
|
22
|
-
<h1><a href="index.html">All files</a> remediation.ts</h1>
|
|
22
|
+
<h1><a href="../index.html">All files</a> / <a href="index.html">src</a> remediation.ts</h1>
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">84.61% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>66/78</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">78.57% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>44/56</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
40
|
<span class="strong">100% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>4/4</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">86.56% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>58/67</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
</div>
|
|
62
62
|
</template>
|
|
63
63
|
</div>
|
|
64
|
-
<div class='status-line
|
|
64
|
+
<div class='status-line high'></div>
|
|
65
65
|
<pre><table class="coverage">
|
|
66
66
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
67
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -202,7 +202,27 @@
|
|
|
202
202
|
<a name='L137'></a><a href='#L137'>137</a>
|
|
203
203
|
<a name='L138'></a><a href='#L138'>138</a>
|
|
204
204
|
<a name='L139'></a><a href='#L139'>139</a>
|
|
205
|
-
<a name='L140'></a><a href='#L140'>140</a
|
|
205
|
+
<a name='L140'></a><a href='#L140'>140</a>
|
|
206
|
+
<a name='L141'></a><a href='#L141'>141</a>
|
|
207
|
+
<a name='L142'></a><a href='#L142'>142</a>
|
|
208
|
+
<a name='L143'></a><a href='#L143'>143</a>
|
|
209
|
+
<a name='L144'></a><a href='#L144'>144</a>
|
|
210
|
+
<a name='L145'></a><a href='#L145'>145</a>
|
|
211
|
+
<a name='L146'></a><a href='#L146'>146</a>
|
|
212
|
+
<a name='L147'></a><a href='#L147'>147</a>
|
|
213
|
+
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
|
+
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
|
+
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
+
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
+
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
+
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
|
+
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
|
+
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
+
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
|
+
<a name='L157'></a><a href='#L157'>157</a>
|
|
223
|
+
<a name='L158'></a><a href='#L158'>158</a>
|
|
224
|
+
<a name='L159'></a><a href='#L159'>159</a>
|
|
225
|
+
<a name='L160'></a><a href='#L160'>160</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
206
226
|
<span class="cline-any cline-neutral"> </span>
|
|
207
227
|
<span class="cline-any cline-neutral"> </span>
|
|
208
228
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -212,55 +232,65 @@
|
|
|
212
232
|
<span class="cline-any cline-neutral"> </span>
|
|
213
233
|
<span class="cline-any cline-neutral"> </span>
|
|
214
234
|
<span class="cline-any cline-neutral"> </span>
|
|
215
|
-
<span class="cline-any cline-yes">
|
|
235
|
+
<span class="cline-any cline-yes">13x</span>
|
|
216
236
|
<span class="cline-any cline-neutral"> </span>
|
|
217
237
|
<span class="cline-any cline-yes">2x</span>
|
|
218
238
|
<span class="cline-any cline-neutral"> </span>
|
|
219
239
|
<span class="cline-any cline-neutral"> </span>
|
|
240
|
+
<span class="cline-any cline-yes">20x</span>
|
|
220
241
|
<span class="cline-any cline-neutral"> </span>
|
|
242
|
+
<span class="cline-any cline-yes">14x</span>
|
|
221
243
|
<span class="cline-any cline-neutral"> </span>
|
|
222
|
-
<span class="cline-any cline-yes">2x</span>
|
|
223
244
|
<span class="cline-any cline-neutral"> </span>
|
|
224
245
|
<span class="cline-any cline-neutral"> </span>
|
|
225
246
|
<span class="cline-any cline-neutral"> </span>
|
|
247
|
+
<span class="cline-any cline-yes">21x</span>
|
|
248
|
+
<span class="cline-any cline-yes">16x</span>
|
|
226
249
|
<span class="cline-any cline-neutral"> </span>
|
|
227
|
-
<span class="cline-any cline-yes">2x</span>
|
|
228
250
|
<span class="cline-any cline-neutral"> </span>
|
|
229
251
|
<span class="cline-any cline-neutral"> </span>
|
|
252
|
+
<span class="cline-any cline-yes">21x</span>
|
|
253
|
+
<span class="cline-any cline-yes">15x</span>
|
|
230
254
|
<span class="cline-any cline-neutral"> </span>
|
|
231
255
|
<span class="cline-any cline-neutral"> </span>
|
|
232
|
-
<span class="cline-any cline-yes">1x</span>
|
|
233
|
-
<span class="cline-any cline-neutral"> </span>
|
|
234
256
|
<span class="cline-any cline-neutral"> </span>
|
|
257
|
+
<span class="cline-any cline-yes">21x</span>
|
|
258
|
+
<span class="cline-any cline-yes">19x</span>
|
|
235
259
|
<span class="cline-any cline-neutral"> </span>
|
|
236
260
|
<span class="cline-any cline-neutral"> </span>
|
|
237
|
-
<span class="cline-any cline-yes">1x</span>
|
|
238
261
|
<span class="cline-any cline-neutral"> </span>
|
|
262
|
+
<span class="cline-any cline-yes">21x</span>
|
|
263
|
+
<span class="cline-any cline-yes">14x</span>
|
|
239
264
|
<span class="cline-any cline-neutral"> </span>
|
|
240
265
|
<span class="cline-any cline-neutral"> </span>
|
|
241
266
|
<span class="cline-any cline-neutral"> </span>
|
|
242
|
-
<span class="cline-any cline-yes">
|
|
267
|
+
<span class="cline-any cline-yes">21x</span>
|
|
268
|
+
<span class="cline-any cline-yes">14x</span>
|
|
243
269
|
<span class="cline-any cline-neutral"> </span>
|
|
244
270
|
<span class="cline-any cline-neutral"> </span>
|
|
245
271
|
<span class="cline-any cline-neutral"> </span>
|
|
272
|
+
<span class="cline-any cline-yes">21x</span>
|
|
273
|
+
<span class="cline-any cline-yes">14x</span>
|
|
246
274
|
<span class="cline-any cline-neutral"> </span>
|
|
247
|
-
<span class="cline-any cline-yes">1x</span>
|
|
248
275
|
<span class="cline-any cline-neutral"> </span>
|
|
249
276
|
<span class="cline-any cline-neutral"> </span>
|
|
277
|
+
<span class="cline-any cline-yes">21x</span>
|
|
278
|
+
<span class="cline-any cline-yes">14x</span>
|
|
250
279
|
<span class="cline-any cline-neutral"> </span>
|
|
251
280
|
<span class="cline-any cline-neutral"> </span>
|
|
252
|
-
<span class="cline-any cline-yes">1x</span>
|
|
253
281
|
<span class="cline-any cline-neutral"> </span>
|
|
282
|
+
<span class="cline-any cline-yes">21x</span>
|
|
283
|
+
<span class="cline-any cline-yes">2x</span>
|
|
254
284
|
<span class="cline-any cline-neutral"> </span>
|
|
255
285
|
<span class="cline-any cline-neutral"> </span>
|
|
256
286
|
<span class="cline-any cline-neutral"> </span>
|
|
257
|
-
<span class="cline-any cline-yes">1x</span>
|
|
258
287
|
<span class="cline-any cline-neutral"> </span>
|
|
288
|
+
<span class="cline-any cline-yes">2x</span>
|
|
259
289
|
<span class="cline-any cline-neutral"> </span>
|
|
260
290
|
<span class="cline-any cline-neutral"> </span>
|
|
261
291
|
<span class="cline-any cline-neutral"> </span>
|
|
262
|
-
<span class="cline-any cline-yes">1x</span>
|
|
263
292
|
<span class="cline-any cline-neutral"> </span>
|
|
293
|
+
<span class="cline-any cline-no"> </span>
|
|
264
294
|
<span class="cline-any cline-neutral"> </span>
|
|
265
295
|
<span class="cline-any cline-neutral"> </span>
|
|
266
296
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -271,17 +301,7 @@
|
|
|
271
301
|
<span class="cline-any cline-neutral"> </span>
|
|
272
302
|
<span class="cline-any cline-neutral"> </span>
|
|
273
303
|
<span class="cline-any cline-neutral"> </span>
|
|
274
|
-
<span class="cline-any cline-
|
|
275
|
-
<span class="cline-any cline-neutral"> </span>
|
|
276
|
-
<span class="cline-any cline-neutral"> </span>
|
|
277
|
-
<span class="cline-any cline-neutral"> </span>
|
|
278
|
-
<span class="cline-any cline-neutral"> </span>
|
|
279
|
-
<span class="cline-any cline-neutral"> </span>
|
|
280
|
-
<span class="cline-any cline-neutral"> </span>
|
|
281
|
-
<span class="cline-any cline-neutral"> </span>
|
|
282
|
-
<span class="cline-any cline-neutral"> </span>
|
|
283
|
-
<span class="cline-any cline-neutral"> </span>
|
|
284
|
-
<span class="cline-any cline-neutral"> </span>
|
|
304
|
+
<span class="cline-any cline-yes">1x</span>
|
|
285
305
|
<span class="cline-any cline-neutral"> </span>
|
|
286
306
|
<span class="cline-any cline-neutral"> </span>
|
|
287
307
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -311,15 +331,35 @@
|
|
|
311
331
|
<span class="cline-any cline-no"> </span>
|
|
312
332
|
<span class="cline-any cline-neutral"> </span>
|
|
313
333
|
<span class="cline-any cline-neutral"> </span>
|
|
314
|
-
<span class="cline-any cline-yes">
|
|
315
|
-
<span class="cline-any cline-yes">
|
|
334
|
+
<span class="cline-any cline-yes">6x</span>
|
|
335
|
+
<span class="cline-any cline-yes">4x</span>
|
|
336
|
+
<span class="cline-any cline-yes">4x</span>
|
|
316
337
|
<span class="cline-any cline-neutral"> </span>
|
|
338
|
+
<span class="cline-any cline-yes">4x</span>
|
|
339
|
+
<span class="cline-any cline-yes">4x</span>
|
|
317
340
|
<span class="cline-any cline-neutral"> </span>
|
|
341
|
+
<span class="cline-any cline-yes">2x</span>
|
|
318
342
|
<span class="cline-any cline-yes">1x</span>
|
|
319
343
|
<span class="cline-any cline-neutral"> </span>
|
|
344
|
+
<span class="cline-any cline-yes">3x</span>
|
|
345
|
+
<span class="cline-any cline-yes">2x</span>
|
|
346
|
+
<span class="cline-any cline-yes">1x</span>
|
|
347
|
+
<span class="cline-any cline-neutral"> </span>
|
|
348
|
+
<span class="cline-any cline-yes">3x</span>
|
|
349
|
+
<span class="cline-any cline-yes">1x</span>
|
|
350
|
+
<span class="cline-any cline-yes">3x</span>
|
|
351
|
+
<span class="cline-any cline-no"> </span>
|
|
352
|
+
<span class="cline-any cline-yes">3x</span>
|
|
353
|
+
<span class="cline-any cline-no"> </span>
|
|
354
|
+
<span class="cline-any cline-yes">3x</span>
|
|
355
|
+
<span class="cline-any cline-yes">4x</span>
|
|
356
|
+
<span class="cline-any cline-yes">3x</span>
|
|
320
357
|
<span class="cline-any cline-neutral"> </span>
|
|
358
|
+
<span class="cline-any cline-yes">4x</span>
|
|
321
359
|
<span class="cline-any cline-yes">1x</span>
|
|
322
360
|
<span class="cline-any cline-neutral"> </span>
|
|
361
|
+
<span class="cline-any cline-yes">1x</span>
|
|
362
|
+
<span class="cline-any cline-yes">6x</span>
|
|
323
363
|
<span class="cline-any cline-neutral"> </span>
|
|
324
364
|
<span class="cline-any cline-yes">3x</span>
|
|
325
365
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -345,6 +385,11 @@
|
|
|
345
385
|
|
|
346
386
|
/**
|
|
347
387
|
* Get classification-specific recommendations
|
|
388
|
+
*
|
|
389
|
+
* @param classification - The identified type of file (e.g., 'barrel-export', 'utility-module').
|
|
390
|
+
* @param file - File path or identifier.
|
|
391
|
+
* @param issues - Initial list of issues to supplement.
|
|
392
|
+
* @returns Array of tailored recommendations.
|
|
348
393
|
*/
|
|
349
394
|
export function getClassificationRecommendations(
|
|
350
395
|
classification: FileClassification,
|
|
@@ -352,6 +397,12 @@ export function getClassificationRecommendations(
|
|
|
352
397
|
issues: string[]
|
|
353
398
|
): string[] {
|
|
354
399
|
switch (classification) {
|
|
400
|
+
case 'boilerplate-barrel':
|
|
401
|
+
return [
|
|
402
|
+
'Redundant indirection detected (architectural theater)',
|
|
403
|
+
'Remove this pass-through barrel export to reduce cognitive load',
|
|
404
|
+
'Consider combining into meaningful domain exports if necessary',
|
|
405
|
+
];
|
|
355
406
|
case 'barrel-export':
|
|
356
407
|
return [
|
|
357
408
|
'Barrel export file detected - multiple domains are expected here',
|
|
@@ -397,6 +448,11 @@ export function getClassificationRecommendations(
|
|
|
397
448
|
'Next.js App Router page detected - metadata/JSON-LD/component pattern is cohesive',
|
|
398
449
|
'Multiple exports (metadata, faqJsonLd, default) serve single page purpose',
|
|
399
450
|
];
|
|
451
|
+
<span class="branch-10 cbranch-no" title="branch not covered" > case 'spoke-module':</span>
|
|
452
|
+
<span class="cstat-no" title="statement not covered" > return [</span>
|
|
453
|
+
'Spoke module detected - intentional monorepo separation is good for modularity',
|
|
454
|
+
'Ensure this spoke only exports what is necessary for the hub or other spokes',
|
|
455
|
+
];
|
|
400
456
|
case 'mixed-concerns':
|
|
401
457
|
return [
|
|
402
458
|
'Consider splitting this file by domain',
|
|
@@ -409,7 +465,11 @@ export function getClassificationRecommendations(
|
|
|
409
465
|
}
|
|
410
466
|
|
|
411
467
|
/**
|
|
412
|
-
* Generate general context recommendations
|
|
468
|
+
* Generate general context recommendations based on cross-tool metrics and thresholds.
|
|
469
|
+
*
|
|
470
|
+
* @param metrics - Object containing context budget, depth, circular dependencies, cohesion, and fragmentation.
|
|
471
|
+
* @param thresholds - Configurable limits for each metric.
|
|
472
|
+
* @returns Object with recommendations array, issues array, and overall severity level.
|
|
413
473
|
*/
|
|
414
474
|
export function getGeneralRecommendations(
|
|
415
475
|
metrics: {
|
|
@@ -424,10 +484,10 @@ export function getGeneralRecommendations(
|
|
|
424
484
|
maxDepth: number;
|
|
425
485
|
minCohesion: number;
|
|
426
486
|
maxFragmentation: number;
|
|
427
|
-
}
|
|
428
|
-
): {
|
|
429
|
-
|
|
430
|
-
|
|
487
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>}
|
|
488
|
+
): {<span class="cstat-no" title="statement not covered" ></span>
|
|
489
|
+
re<span class="cstat-no" title="statement not covered" >commendations: string[];</span>
|
|
490
|
+
is<span class="cstat-no" title="statement not covered" >sues: string[];<span class="cstat-no" title="statement not covered" ></span></span>
|
|
431
491
|
severity: any;
|
|
432
492
|
} {
|
|
433
493
|
const recommendations: string[] = [];
|
|
@@ -445,11 +505,11 @@ export function getGeneralRecommendations(
|
|
|
445
505
|
}
|
|
446
506
|
|
|
447
507
|
<span class="missing-if-branch" title="if path not taken" >I</span>if (metrics.importDepth > thresholds.maxDepth) {
|
|
448
|
-
|
|
449
|
-
|
|
508
|
+
issues.push(`Deep import chain: ${metrics.importDepth} levels`);
|
|
509
|
+
recommendations.push('Flatten the dependency graph by reducing nesting');
|
|
450
510
|
<span class="cstat-no" title="statement not covered" > if (severity !== 'critical') <span class="cstat-no" title="statement not covered" >severity = 'major';</span></span>
|
|
451
|
-
}
|
|
452
|
-
|
|
511
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>}
|
|
512
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
453
513
|
if (metrics.circularDeps.length > 0) {
|
|
454
514
|
issues.push(
|
|
455
515
|
`Circular dependencies detected: ${metrics.circularDeps.length}`
|
|
@@ -487,16 +547,16 @@ export function getGeneralRecommendations(
|
|
|
487
547
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
488
548
|
Code coverage generated by
|
|
489
549
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
490
|
-
at 2026-03-
|
|
550
|
+
at 2026-03-21T12:52:37.698Z
|
|
491
551
|
</div>
|
|
492
|
-
<script src="prettify.js"></script>
|
|
552
|
+
<script src="../prettify.js"></script>
|
|
493
553
|
<script>
|
|
494
554
|
window.onload = function () {
|
|
495
555
|
prettyPrint();
|
|
496
556
|
};
|
|
497
557
|
</script>
|
|
498
|
-
<script src="sorter.js"></script>
|
|
499
|
-
<script src="block-navigation.js"></script>
|
|
558
|
+
<script src="../sorter.js"></script>
|
|
559
|
+
<script src="../block-navigation.js"></script>
|
|
500
560
|
</body>
|
|
501
561
|
</html>
|
|
502
562
|
|