@shakibkhatri/idiolect-core 0.0.1 → 0.1.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 (47) hide show
  1. package/dist/analyzer-go.js +3 -5
  2. package/dist/analyzer-go.js.map +1 -1
  3. package/dist/analyzer-py.js +3 -5
  4. package/dist/analyzer-py.js.map +1 -1
  5. package/dist/analyzer.d.ts +3 -1
  6. package/dist/analyzer.js +10 -5
  7. package/dist/analyzer.js.map +1 -1
  8. package/dist/baseline.js +3 -2
  9. package/dist/baseline.js.map +1 -1
  10. package/dist/check.d.ts +5 -0
  11. package/dist/check.js +6 -5
  12. package/dist/check.js.map +1 -1
  13. package/dist/collector.d.ts +1 -0
  14. package/dist/collector.js +18 -7
  15. package/dist/collector.js.map +1 -1
  16. package/dist/config.d.ts +21 -0
  17. package/dist/config.js +13 -0
  18. package/dist/config.js.map +1 -1
  19. package/dist/index.d.ts +5 -3
  20. package/dist/index.js +5 -3
  21. package/dist/index.js.map +1 -1
  22. package/dist/llm.js +46 -29
  23. package/dist/llm.js.map +1 -1
  24. package/dist/metrics.js +1 -0
  25. package/dist/metrics.js.map +1 -1
  26. package/dist/profile.d.ts +10 -0
  27. package/dist/profile.js +16 -2
  28. package/dist/profile.js.map +1 -1
  29. package/dist/render.d.ts +1 -0
  30. package/dist/render.js +55 -9
  31. package/dist/render.js.map +1 -1
  32. package/dist/served.d.ts +8 -0
  33. package/dist/served.js +39 -0
  34. package/dist/served.js.map +1 -0
  35. package/dist/styles.d.ts +41 -0
  36. package/dist/styles.js +77 -0
  37. package/dist/styles.js.map +1 -0
  38. package/dist/unbot.js +2 -2
  39. package/dist/unbot.js.map +1 -1
  40. package/dist/writer.d.ts +4 -3
  41. package/dist/writer.js +14 -5
  42. package/dist/writer.js.map +1 -1
  43. package/package.json +2 -1
  44. package/styles/go-caddy.json +1369 -0
  45. package/styles/kotlin-tivi.json +1506 -0
  46. package/styles/python-httpx.json +1053 -0
  47. package/styles/typescript-vue.json +1474 -0
@@ -0,0 +1,1474 @@
1
+ {
2
+ "version": 1,
3
+ "id": "typescript-vue",
4
+ "title": "Vue core",
5
+ "summary": "No semicolons, terse lowercase comments, short functions",
6
+ "language": "typescript",
7
+ "source": {
8
+ "project": "github.com/vuejs/core",
9
+ "license": "MIT",
10
+ "commit": "24d77c25ce5d5356adb5367beef1d23e6e340b35",
11
+ "snapshot": "2023-12-31T17:29:58+08:00",
12
+ "lines": 69080
13
+ },
14
+ "stats": {
15
+ "files": 428,
16
+ "loc": 69080,
17
+ "functions": {
18
+ "count": 2053,
19
+ "blockBody": 1939,
20
+ "expressionBody": 114,
21
+ "lengthLines": {
22
+ "1": 41,
23
+ "3": 437,
24
+ "4": 110,
25
+ "5": 128,
26
+ "6": 111,
27
+ "7": 98,
28
+ "8": 45,
29
+ "9": 83,
30
+ "10": 62,
31
+ "11": 63,
32
+ "12": 54,
33
+ "13": 53,
34
+ "14": 29,
35
+ "15": 34,
36
+ "16": 27,
37
+ "17": 32,
38
+ "18": 28,
39
+ "19": 25,
40
+ "20": 16,
41
+ "21": 16,
42
+ "22": 21,
43
+ "23": 22,
44
+ "24": 21,
45
+ "25": 9,
46
+ "26": 11,
47
+ "27": 10,
48
+ "28": 15,
49
+ "29": 12,
50
+ "30": 20,
51
+ "31": 13,
52
+ "32": 6,
53
+ "33": 7,
54
+ "34": 12,
55
+ "35": 8,
56
+ "36": 11,
57
+ "37": 11,
58
+ "38": 13,
59
+ "39": 3,
60
+ "40": 10,
61
+ "41": 3,
62
+ "42": 6,
63
+ "43": 5,
64
+ "44": 3,
65
+ "45": 3,
66
+ "46": 7,
67
+ "47": 2,
68
+ "48": 4,
69
+ "49": 5,
70
+ "50": 6,
71
+ "51": 2,
72
+ "52": 7,
73
+ "53": 9,
74
+ "54": 3,
75
+ "55": 7,
76
+ "56": 5,
77
+ "57": 3,
78
+ "58": 3,
79
+ "59": 3,
80
+ "60": 3,
81
+ "61": 1,
82
+ "62": 4,
83
+ "63": 3,
84
+ "64": 2,
85
+ "65": 2,
86
+ "66": 3,
87
+ "67": 2,
88
+ "68": 2,
89
+ "69": 1,
90
+ "70": 2,
91
+ "71": 4,
92
+ "72": 2,
93
+ "73": 1,
94
+ "74": 2,
95
+ "75": 2,
96
+ "76": 1,
97
+ "77": 1,
98
+ "78": 1,
99
+ "82": 1,
100
+ "84": 2,
101
+ "85": 2,
102
+ "86": 1,
103
+ "87": 1,
104
+ "89": 2,
105
+ "90": 1,
106
+ "91": 1,
107
+ "95": 2,
108
+ "96": 2,
109
+ "97": 1,
110
+ "98": 2,
111
+ "99": 3,
112
+ "101": 2,
113
+ "102": 3,
114
+ "103": 2,
115
+ "108": 1,
116
+ "109": 1,
117
+ "112": 3,
118
+ "113": 1,
119
+ "114": 1,
120
+ "116": 1,
121
+ "118": 1,
122
+ "123": 1,
123
+ "124": 1,
124
+ "127": 1,
125
+ "128": 1,
126
+ "132": 1,
127
+ "133": 1,
128
+ "134": 2,
129
+ "136": 1,
130
+ "138": 1,
131
+ "139": 1,
132
+ "145": 1,
133
+ "149": 1,
134
+ "150": 1,
135
+ "151": 1,
136
+ "153": 3,
137
+ "159": 2,
138
+ "162": 1,
139
+ "168": 1,
140
+ "173": 1,
141
+ "177": 1,
142
+ "188": 1,
143
+ "191": 1,
144
+ "193": 1,
145
+ "194": 2,
146
+ "195": 1,
147
+ "196": 1,
148
+ "205": 1,
149
+ "211": 1,
150
+ "216": 1,
151
+ "236": 1,
152
+ "239": 1,
153
+ "251": 1,
154
+ "252": 1,
155
+ "259": 1,
156
+ "264": 2,
157
+ "268": 1,
158
+ "275": 1,
159
+ "304": 1,
160
+ "310": 1,
161
+ "455": 1,
162
+ "636": 1,
163
+ "869": 1,
164
+ "1134": 1,
165
+ "2071": 1
166
+ },
167
+ "params": {
168
+ "0": 722,
169
+ "1": 584,
170
+ "2": 421,
171
+ "3": 181,
172
+ "4": 79,
173
+ "5": 26,
174
+ "6": 11,
175
+ "7": 8,
176
+ "8": 4,
177
+ "9": 12,
178
+ "10": 2,
179
+ "11": 3
180
+ },
181
+ "maxNesting": {
182
+ "0": 878,
183
+ "1": 539,
184
+ "2": 222,
185
+ "3": 126,
186
+ "4": 74,
187
+ "5": 42,
188
+ "6": 31,
189
+ "7": 16,
190
+ "8": 6,
191
+ "9": 3,
192
+ "11": 1,
193
+ "15": 1
194
+ },
195
+ "earlyReturn": 307
196
+ },
197
+ "naming": {
198
+ "casing": {
199
+ "function": {
200
+ "camel": 1168,
201
+ "pascal": 9,
202
+ "snake": 0,
203
+ "screaming": 2,
204
+ "backtick": 0,
205
+ "other": 1
206
+ },
207
+ "class": {
208
+ "camel": 0,
209
+ "pascal": 358,
210
+ "snake": 0,
211
+ "screaming": 1,
212
+ "backtick": 0,
213
+ "other": 0
214
+ },
215
+ "property": {
216
+ "camel": 232,
217
+ "pascal": 12,
218
+ "snake": 0,
219
+ "screaming": 64,
220
+ "backtick": 0,
221
+ "other": 3
222
+ },
223
+ "local": {
224
+ "camel": 4622,
225
+ "pascal": 509,
226
+ "snake": 1,
227
+ "screaming": 0,
228
+ "backtick": 0,
229
+ "other": 1
230
+ },
231
+ "parameter": {
232
+ "camel": 2895,
233
+ "pascal": 8,
234
+ "snake": 0,
235
+ "screaming": 0,
236
+ "backtick": 0,
237
+ "other": 38
238
+ },
239
+ "constant": {
240
+ "camel": 81,
241
+ "pascal": 18,
242
+ "snake": 0,
243
+ "screaming": 15,
244
+ "backtick": 0,
245
+ "other": 0
246
+ }
247
+ },
248
+ "nameLength": {
249
+ "function": {
250
+ "1": 2,
251
+ "2": 2,
252
+ "3": 48,
253
+ "4": 42,
254
+ "5": 52,
255
+ "6": 37,
256
+ "7": 60,
257
+ "8": 55,
258
+ "9": 48,
259
+ "10": 73,
260
+ "11": 65,
261
+ "12": 64,
262
+ "13": 76,
263
+ "14": 72,
264
+ "15": 71,
265
+ "16": 59,
266
+ "17": 57,
267
+ "18": 65,
268
+ "19": 46,
269
+ "20": 32,
270
+ "21": 37,
271
+ "22": 27,
272
+ "23": 20,
273
+ "24": 16,
274
+ "25": 14,
275
+ "26": 15,
276
+ "27": 10,
277
+ "28": 4,
278
+ "29": 2,
279
+ "30": 3,
280
+ "31": 2,
281
+ "32": 2,
282
+ "34": 2
283
+ },
284
+ "class": {
285
+ "2": 1,
286
+ "3": 3,
287
+ "4": 3,
288
+ "5": 7,
289
+ "6": 8,
290
+ "7": 6,
291
+ "8": 21,
292
+ "9": 18,
293
+ "10": 18,
294
+ "11": 15,
295
+ "12": 19,
296
+ "13": 27,
297
+ "14": 28,
298
+ "15": 40,
299
+ "16": 21,
300
+ "17": 15,
301
+ "18": 18,
302
+ "19": 14,
303
+ "20": 16,
304
+ "21": 16,
305
+ "22": 17,
306
+ "23": 7,
307
+ "24": 5,
308
+ "25": 4,
309
+ "26": 2,
310
+ "27": 3,
311
+ "28": 2,
312
+ "29": 1,
313
+ "30": 2,
314
+ "31": 1,
315
+ "34": 1
316
+ },
317
+ "property": {
318
+ "1": 2,
319
+ "2": 2,
320
+ "3": 8,
321
+ "4": 13,
322
+ "5": 10,
323
+ "6": 20,
324
+ "7": 12,
325
+ "8": 17,
326
+ "9": 25,
327
+ "10": 11,
328
+ "11": 20,
329
+ "12": 18,
330
+ "13": 19,
331
+ "14": 26,
332
+ "15": 24,
333
+ "16": 18,
334
+ "17": 7,
335
+ "18": 13,
336
+ "19": 8,
337
+ "20": 10,
338
+ "21": 8,
339
+ "22": 6,
340
+ "23": 4,
341
+ "24": 4,
342
+ "25": 3,
343
+ "26": 1,
344
+ "27": 1,
345
+ "42": 1
346
+ },
347
+ "local": {
348
+ "1": 336,
349
+ "2": 273,
350
+ "3": 870,
351
+ "4": 767,
352
+ "5": 681,
353
+ "6": 445,
354
+ "7": 362,
355
+ "8": 334,
356
+ "9": 244,
357
+ "10": 191,
358
+ "11": 141,
359
+ "12": 104,
360
+ "13": 102,
361
+ "14": 79,
362
+ "15": 65,
363
+ "16": 31,
364
+ "17": 30,
365
+ "18": 26,
366
+ "19": 21,
367
+ "20": 10,
368
+ "21": 7,
369
+ "22": 2,
370
+ "23": 5,
371
+ "24": 4,
372
+ "25": 1,
373
+ "26": 1,
374
+ "31": 1
375
+ },
376
+ "parameter": {
377
+ "1": 201,
378
+ "2": 190,
379
+ "3": 430,
380
+ "4": 541,
381
+ "5": 436,
382
+ "6": 249,
383
+ "7": 247,
384
+ "8": 246,
385
+ "9": 131,
386
+ "10": 37,
387
+ "11": 35,
388
+ "12": 64,
389
+ "13": 15,
390
+ "14": 55,
391
+ "15": 55,
392
+ "16": 2,
393
+ "17": 5,
394
+ "18": 1,
395
+ "25": 1
396
+ },
397
+ "constant": {
398
+ "3": 2,
399
+ "5": 2,
400
+ "6": 1,
401
+ "7": 7,
402
+ "8": 3,
403
+ "9": 5,
404
+ "10": 12,
405
+ "11": 4,
406
+ "12": 11,
407
+ "13": 10,
408
+ "14": 11,
409
+ "15": 7,
410
+ "16": 7,
411
+ "17": 4,
412
+ "18": 2,
413
+ "19": 7,
414
+ "20": 1,
415
+ "21": 2,
416
+ "22": 5,
417
+ "23": 3,
418
+ "24": 1,
419
+ "25": 2,
420
+ "26": 1,
421
+ "27": 1,
422
+ "28": 1,
423
+ "29": 1,
424
+ "33": 1
425
+ }
426
+ },
427
+ "functionVerb": {
428
+ "create": 78,
429
+ "get": 74,
430
+ "convert": 10,
431
+ "walk": 13,
432
+ "enter": 4,
433
+ "leave": 2,
434
+ "is": 77,
435
+ "extract": 4,
436
+ "mark": 2,
437
+ "helper": 5,
438
+ "push": 11,
439
+ "indent": 1,
440
+ "deindent": 1,
441
+ "newline": 2,
442
+ "add": 7,
443
+ "generate": 2,
444
+ "gen": 39,
445
+ "check": 8,
446
+ "warn": 6,
447
+ "transform": 19,
448
+ "rewrite": 5,
449
+ "parse": 12,
450
+ "wrap": 1,
451
+ "base": 3,
452
+ "default": 2,
453
+ "ontext": 1,
454
+ "ontextentity": 1,
455
+ "oninterpolation": 1,
456
+ "onopentagname": 1,
457
+ "onopentagend": 1,
458
+ "onclosetag": 1,
459
+ "onselfclosingtag": 1,
460
+ "onattribname": 1,
461
+ "ondirname": 1,
462
+ "ondirarg": 1,
463
+ "ondirmodifier": 1,
464
+ "onattribdata": 1,
465
+ "onattribentity": 1,
466
+ "onattribnameend": 1,
467
+ "onattribend": 1,
468
+ "oncomment": 1,
469
+ "onend": 1,
470
+ "oncdata": 1,
471
+ "onprocessinginstruction": 1,
472
+ "end": 3,
473
+ "on": 27,
474
+ "back": 1,
475
+ "condense": 2,
476
+ "has": 16,
477
+ "set": 32,
478
+ "dir": 1,
479
+ "emit": 6,
480
+ "reset": 5,
481
+ "to": 19,
482
+ "in": 1,
483
+ "peek": 1,
484
+ "state": 34,
485
+ "fast": 1,
486
+ "start": 4,
487
+ "handle": 7,
488
+ "cleanup": 1,
489
+ "finish": 3,
490
+ "replace": 2,
491
+ "remove": 14,
492
+ "hoist": 3,
493
+ "cache": 3,
494
+ "traverse": 3,
495
+ "node": 1,
496
+ "noop": 1,
497
+ "resolve": 41,
498
+ "build": 6,
499
+ "dedupe": 1,
500
+ "merge": 12,
501
+ "stringify": 7,
502
+ "process": 25,
503
+ "can": 1,
504
+ "inject": 9,
505
+ "finalize": 1,
506
+ "track": 2,
507
+ "advance": 2,
508
+ "find": 6,
509
+ "validate": 4,
510
+ "decode": 1,
511
+ "compile": 9,
512
+ "ignore": 1,
513
+ "bail": 1,
514
+ "evaluate": 1,
515
+ "register": 10,
516
+ "exit": 1,
517
+ "do": 4,
518
+ "record": 6,
519
+ "preprocess": 1,
520
+ "map": 3,
521
+ "patch": 16,
522
+ "should": 5,
523
+ "hmr": 1,
524
+ "dedent": 1,
525
+ "analyze": 2,
526
+ "error": 1,
527
+ "infer": 4,
528
+ "pop": 3,
529
+ "inner": 2,
530
+ "type": 1,
531
+ "qualified": 1,
532
+ "file": 2,
533
+ "read": 1,
534
+ "import": 1,
535
+ "try": 2,
536
+ "load": 2,
537
+ "invalidate": 2,
538
+ "ctx": 1,
539
+ "module": 1,
540
+ "attach": 1,
541
+ "flatten": 1,
542
+ "reverse": 1,
543
+ "ctor": 1,
544
+ "concat": 1,
545
+ "identity": 1,
546
+ "normalize": 19,
547
+ "lex": 1,
548
+ "css": 1,
549
+ "declaration": 1,
550
+ "scoped": 1,
551
+ "rule": 1,
552
+ "at": 1,
553
+ "once": 3,
554
+ "trim": 1,
555
+ "scss": 1,
556
+ "sass": 1,
557
+ "less": 1,
558
+ "styl": 1,
559
+ "ssr": 33,
560
+ "filter": 2,
561
+ "sub": 2,
562
+ "clone": 4,
563
+ "setup": 14,
564
+ "render": 11,
565
+ "data": 1,
566
+ "a": 1,
567
+ "created": 8,
568
+ "bar": 1,
569
+ "func": 2,
570
+ "foo": 2,
571
+ "test": 2,
572
+ "source3": 1,
573
+ "size": 2,
574
+ "delete": 2,
575
+ "clear": 3,
576
+ "next": 5,
577
+ "[": 1,
578
+ "computed": 1,
579
+ "run": 1,
580
+ "effect": 1,
581
+ "stop": 2,
582
+ "pause": 1,
583
+ "enable": 1,
584
+ "reactive": 2,
585
+ "shallow": 3,
586
+ "readonly": 1,
587
+ "ref": 1,
588
+ "value": 4,
589
+ "trigger": 2,
590
+ "proxy": 1,
591
+ "retry": 1,
592
+ "user": 2,
593
+ "config": 2,
594
+ "mixin": 1,
595
+ "component": 2,
596
+ "directive": 1,
597
+ "unmount": 6,
598
+ "provide": 2,
599
+ "define": 6,
600
+ "use": 7,
601
+ "with": 5,
602
+ "watch": 3,
603
+ "job": 1,
604
+ "instance": 1,
605
+ "toggle": 2,
606
+ "configure": 1,
607
+ "assert": 3,
608
+ "soft": 1,
609
+ "slots": 2,
610
+ "listeners": 1,
611
+ "injections": 1,
612
+ "compat": 3,
613
+ "deep": 2,
614
+ "extend": 3,
615
+ "install": 7,
616
+ "apply": 5,
617
+ "empty": 2,
618
+ "del": 1,
619
+ "wrapped": 2,
620
+ "off": 1,
621
+ "legacy": 8,
622
+ "legacyresolve": 1,
623
+ "expose": 3,
624
+ "attrs": 2,
625
+ "classify": 1,
626
+ "format": 9,
627
+ "call": 6,
628
+ "init": 8,
629
+ "update": 8,
630
+ "style": 1,
631
+ "prune": 2,
632
+ "matches": 1,
633
+ "mount": 7,
634
+ "fallback": 1,
635
+ "move": 4,
636
+ "hydrate": 7,
637
+ "queue": 4,
638
+ "header": 1,
639
+ "body": 1,
640
+ "devtools": 3,
641
+ "invoke": 3,
642
+ "log": 2,
643
+ "h": 1,
644
+ "unregister": 1,
645
+ "rerender": 1,
646
+ "reload": 1,
647
+ "prop": 1,
648
+ "perform": 3,
649
+ "flush": 1,
650
+ "comparator": 1,
651
+ "open": 1,
652
+ "close": 1,
653
+ "connected": 1,
654
+ "disconnected": 1,
655
+ "make": 1,
656
+ "when": 1,
657
+ "force": 1,
658
+ "mounted": 3,
659
+ "before": 5,
660
+ "updated": 2,
661
+ "ensure": 2,
662
+ "invoker": 1,
663
+ "auto": 1,
664
+ "dump": 1,
665
+ "insert": 1,
666
+ "parent": 1,
667
+ "serialize": 4,
668
+ "fake": 1,
669
+ "buffered": 1,
670
+ "unroll": 2,
671
+ "pipe": 2,
672
+ "destroy": 3,
673
+ "cancel": 1,
674
+ "download": 1,
675
+ "copy": 2,
676
+ "escape": 2,
677
+ "n": 2,
678
+ "def": 1,
679
+ "loose": 3,
680
+ "replacer": 1,
681
+ "re": 1
682
+ },
683
+ "booleanPrefix": {
684
+ "is": 45,
685
+ "check": 1,
686
+ "in": 8,
687
+ "found": 1,
688
+ "has": 47,
689
+ "removed": 1,
690
+ "prev": 1,
691
+ "fast": 1,
692
+ "should": 5,
693
+ "bailed": 1,
694
+ "walk": 2,
695
+ "hmr": 1,
696
+ "process": 6,
697
+ "skip": 2,
698
+ "need": 2,
699
+ "run": 1,
700
+ "v": 3,
701
+ "cacheable": 1,
702
+ "active": 1,
703
+ "allow": 1,
704
+ "force": 1,
705
+ "warning": 1,
706
+ "set": 1,
707
+ "accessed": 1,
708
+ "transition": 1,
709
+ "called": 2,
710
+ "matches": 1,
711
+ "create": 1,
712
+ "prop": 1,
713
+ "supported": 1,
714
+ "moved": 1,
715
+ "connected": 1,
716
+ "resolved": 1,
717
+ "enabled": 1,
718
+ "ssr": 2,
719
+ "compat": 1,
720
+ "cancelled": 1,
721
+ "loose": 1
722
+ },
723
+ "abbreviated": 1586,
724
+ "identifiers": 10038,
725
+ "testNames": {
726
+ "camel": 832,
727
+ "sentence": 1404,
728
+ "camelSentence": 31,
729
+ "should": 413
730
+ },
731
+ "genericNames": 9
732
+ },
733
+ "tests": {
734
+ "files": 183,
735
+ "loc": 33938,
736
+ "functions": 2681
737
+ },
738
+ "comments": {
739
+ "line": 4217,
740
+ "block": 87,
741
+ "doc": 381,
742
+ "chars": 198895,
743
+ "lowercaseStart": 3228,
744
+ "trailingPeriod": 591,
745
+ "todo": {
746
+ "TODO:": 4,
747
+ "TODO": 9,
748
+ "TODO(x)": 2
749
+ },
750
+ "tells": {
751
+ "buzzword": 5
752
+ },
753
+ "publicDecls": 989,
754
+ "publicDocumented": 109,
755
+ "privateDecls": 715,
756
+ "privateDocumented": 36
757
+ },
758
+ "errors": {
759
+ "tryCatch": 29,
760
+ "runCatching": 0,
761
+ "resultType": 0,
762
+ "forceUnwrap": 724
763
+ },
764
+ "kotlin": {
765
+ "when3": 0,
766
+ "ifElseChain3": 0,
767
+ "sealedInterface": 0,
768
+ "sealedClass": 0,
769
+ "extensionFunctions": 0,
770
+ "dataClasses": 0,
771
+ "composables": 0,
772
+ "modifierParamFirst": 0,
773
+ "modifierParamLater": 0,
774
+ "remember": 0
775
+ },
776
+ "typescript": {
777
+ "arrowFunctions": 324,
778
+ "functionDeclarations": 829,
779
+ "typeAliases": 179,
780
+ "interfaces": 169,
781
+ "optionalChains": 59,
782
+ "anyTypes": 853
783
+ },
784
+ "python": {
785
+ "typeHinted": 0,
786
+ "fStrings": 0,
787
+ "formatCalls": 0,
788
+ "comprehensions": 0,
789
+ "bareExcepts": 0,
790
+ "dataclasses": 0
791
+ },
792
+ "go": {
793
+ "errChecks": 0,
794
+ "namedReturns": 0,
795
+ "structs": 0,
796
+ "interfaces": 0,
797
+ "panics": 0
798
+ }
799
+ },
800
+ "commitStats": {
801
+ "count": 3171,
802
+ "subjectLength": {
803
+ "9": 2,
804
+ "10": 5,
805
+ "11": 4,
806
+ "12": 10,
807
+ "13": 11,
808
+ "14": 11,
809
+ "15": 67,
810
+ "16": 85,
811
+ "17": 14,
812
+ "18": 15,
813
+ "19": 34,
814
+ "20": 49,
815
+ "21": 41,
816
+ "22": 79,
817
+ "23": 76,
818
+ "24": 42,
819
+ "25": 46,
820
+ "26": 40,
821
+ "27": 38,
822
+ "28": 43,
823
+ "29": 51,
824
+ "30": 52,
825
+ "31": 60,
826
+ "32": 71,
827
+ "33": 54,
828
+ "34": 48,
829
+ "35": 53,
830
+ "36": 56,
831
+ "37": 61,
832
+ "38": 44,
833
+ "39": 41,
834
+ "40": 65,
835
+ "41": 66,
836
+ "42": 61,
837
+ "43": 61,
838
+ "44": 57,
839
+ "45": 54,
840
+ "46": 57,
841
+ "47": 56,
842
+ "48": 42,
843
+ "49": 55,
844
+ "50": 46,
845
+ "51": 59,
846
+ "52": 68,
847
+ "53": 44,
848
+ "54": 52,
849
+ "55": 49,
850
+ "56": 54,
851
+ "57": 44,
852
+ "58": 46,
853
+ "59": 43,
854
+ "60": 46,
855
+ "61": 45,
856
+ "62": 30,
857
+ "63": 38,
858
+ "64": 39,
859
+ "65": 51,
860
+ "66": 33,
861
+ "67": 37,
862
+ "68": 42,
863
+ "69": 28,
864
+ "70": 32,
865
+ "71": 21,
866
+ "72": 24,
867
+ "73": 29,
868
+ "74": 20,
869
+ "75": 30,
870
+ "76": 24,
871
+ "77": 19,
872
+ "78": 15,
873
+ "79": 19,
874
+ "80": 19,
875
+ "81": 19,
876
+ "82": 13,
877
+ "83": 14,
878
+ "84": 10,
879
+ "85": 5,
880
+ "86": 13,
881
+ "87": 12,
882
+ "88": 6,
883
+ "89": 10,
884
+ "90": 8,
885
+ "91": 5,
886
+ "92": 5,
887
+ "93": 4,
888
+ "94": 2,
889
+ "95": 4,
890
+ "96": 2,
891
+ "97": 3,
892
+ "98": 3,
893
+ "100": 1,
894
+ "101": 4,
895
+ "103": 1,
896
+ "106": 1,
897
+ "107": 1,
898
+ "108": 1,
899
+ "114": 1
900
+ },
901
+ "lowercaseStart": 3128,
902
+ "conventionalPrefix": 2434,
903
+ "trailingPeriod": 0,
904
+ "withBody": 623,
905
+ "bodyLines": 1076,
906
+ "bodyLinesWrapped": 1063,
907
+ "tense": {
908
+ "imperative": 3076,
909
+ "thirdPerson": 80,
910
+ "past": 15
911
+ }
912
+ },
913
+ "rules": [
914
+ {
915
+ "id": "typescript.functions.length-p50.value",
916
+ "scope": "personal",
917
+ "language": "typescript",
918
+ "category": "structure",
919
+ "kind": "voice",
920
+ "text": "Keep functions short. Typical length is 8 lines, 90% are under 45 lines.",
921
+ "evidence": {
922
+ "metric": {
923
+ "name": "functions.length-p50",
924
+ "value": 8,
925
+ "sampleSize": 1939
926
+ },
927
+ "examples": []
928
+ },
929
+ "confidence": 0.8,
930
+ "status": "auto"
931
+ },
932
+ {
933
+ "id": "typescript.functions.params-p90.value",
934
+ "scope": "personal",
935
+ "language": "typescript",
936
+ "category": "structure",
937
+ "kind": "voice",
938
+ "text": "Functions take at most 3 parameters in 90% of cases.",
939
+ "evidence": {
940
+ "metric": {
941
+ "name": "functions.params-p90",
942
+ "value": 3,
943
+ "sampleSize": 2053
944
+ },
945
+ "examples": []
946
+ },
947
+ "confidence": 0.8,
948
+ "status": "auto"
949
+ },
950
+ {
951
+ "id": "typescript.functions.nesting-p90.value",
952
+ "scope": "personal",
953
+ "language": "typescript",
954
+ "category": "structure",
955
+ "kind": "voice",
956
+ "text": "Keep nesting shallow. 90% of functions nest at most 3 levels deep.",
957
+ "evidence": {
958
+ "metric": {
959
+ "name": "functions.nesting-p90",
960
+ "value": 3,
961
+ "sampleSize": 1939
962
+ },
963
+ "examples": []
964
+ },
965
+ "confidence": 0.8,
966
+ "status": "auto"
967
+ },
968
+ {
969
+ "id": "typescript.naming.constant-screaming-ratio.low",
970
+ "scope": "personal",
971
+ "language": "typescript",
972
+ "category": "naming",
973
+ "kind": "voice",
974
+ "text": "Constants are PascalCase or camelCase, not SCREAMING_SNAKE_CASE.",
975
+ "evidence": {
976
+ "metric": {
977
+ "name": "naming.constant-screaming-ratio",
978
+ "value": 0.132,
979
+ "sampleSize": 114
980
+ },
981
+ "examples": []
982
+ },
983
+ "confidence": 0.79,
984
+ "status": "auto"
985
+ },
986
+ {
987
+ "id": "typescript.naming.abbreviation-ratio.low",
988
+ "scope": "personal",
989
+ "language": "typescript",
990
+ "category": "naming",
991
+ "kind": "voice",
992
+ "text": "Spell names out. Avoid abbreviations.",
993
+ "evidence": {
994
+ "metric": {
995
+ "name": "naming.abbreviation-ratio",
996
+ "value": 0.158,
997
+ "sampleSize": 10038
998
+ },
999
+ "examples": []
1000
+ },
1001
+ "confidence": 0.83,
1002
+ "status": "auto"
1003
+ },
1004
+ {
1005
+ "id": "typescript.comments.per-100-loc.value",
1006
+ "scope": "personal",
1007
+ "language": "typescript",
1008
+ "category": "comments",
1009
+ "kind": "voice",
1010
+ "text": "Comment sparingly. About 6.8 comments per 100 lines of code.",
1011
+ "evidence": {
1012
+ "metric": {
1013
+ "name": "comments.per-100-loc",
1014
+ "value": 6.782,
1015
+ "sampleSize": 69080
1016
+ },
1017
+ "examples": []
1018
+ },
1019
+ "confidence": 0.8,
1020
+ "status": "auto"
1021
+ },
1022
+ {
1023
+ "id": "typescript.comments.doc-ratio.low",
1024
+ "scope": "personal",
1025
+ "language": "typescript",
1026
+ "category": "comments",
1027
+ "kind": "voice",
1028
+ "text": "Use short inline comments. Doc comments are rare.",
1029
+ "evidence": {
1030
+ "metric": {
1031
+ "name": "comments.doc-ratio",
1032
+ "value": 0.081,
1033
+ "sampleSize": 4685
1034
+ },
1035
+ "examples": []
1036
+ },
1037
+ "confidence": 0.91,
1038
+ "status": "auto"
1039
+ },
1040
+ {
1041
+ "id": "typescript.comments.trailing-period-ratio.low",
1042
+ "scope": "personal",
1043
+ "language": "typescript",
1044
+ "category": "comments",
1045
+ "kind": "voice",
1046
+ "text": "No trailing period on comments.",
1047
+ "evidence": {
1048
+ "metric": {
1049
+ "name": "comments.trailing-period-ratio",
1050
+ "value": 0.126,
1051
+ "sampleSize": 4685
1052
+ },
1053
+ "examples": []
1054
+ },
1055
+ "confidence": 0.86,
1056
+ "status": "auto"
1057
+ },
1058
+ {
1059
+ "id": "typescript.comments.avg-chars.value",
1060
+ "scope": "personal",
1061
+ "language": "typescript",
1062
+ "category": "comments",
1063
+ "kind": "voice",
1064
+ "text": "Comments average 42 characters.",
1065
+ "evidence": {
1066
+ "metric": {
1067
+ "name": "comments.avg-chars",
1068
+ "value": 42,
1069
+ "sampleSize": 4685
1070
+ },
1071
+ "examples": []
1072
+ },
1073
+ "confidence": 0.8,
1074
+ "status": "auto"
1075
+ },
1076
+ {
1077
+ "id": "typescript.comments.public-doc-ratio.low",
1078
+ "scope": "personal",
1079
+ "language": "typescript",
1080
+ "category": "comments",
1081
+ "kind": "voice",
1082
+ "text": "Do not add doc comments to public declarations by default. The name should carry the meaning.",
1083
+ "evidence": {
1084
+ "metric": {
1085
+ "name": "comments.public-doc-ratio",
1086
+ "value": 0.11,
1087
+ "sampleSize": 989
1088
+ },
1089
+ "examples": []
1090
+ },
1091
+ "confidence": 0.87,
1092
+ "status": "auto"
1093
+ },
1094
+ {
1095
+ "id": "typescript.functions.expression-body-ratio.low",
1096
+ "scope": "personal",
1097
+ "language": "typescript",
1098
+ "category": "structure",
1099
+ "kind": "idiom",
1100
+ "text": "Use block bodies, even for short functions.",
1101
+ "evidence": {
1102
+ "metric": {
1103
+ "name": "functions.expression-body-ratio",
1104
+ "value": 0.056,
1105
+ "sampleSize": 2053
1106
+ },
1107
+ "examples": []
1108
+ },
1109
+ "confidence": 0.93,
1110
+ "status": "auto"
1111
+ },
1112
+ {
1113
+ "id": "avoid.typescript.comments.buzzwords",
1114
+ "scope": "personal",
1115
+ "language": "typescript",
1116
+ "category": "avoid",
1117
+ "kind": "voice",
1118
+ "text": "Do not use words like robust, seamless, leverage, comprehensive, utilize, streamline, crucial or delve in comments.",
1119
+ "evidence": {
1120
+ "metric": {
1121
+ "name": "comments.buzzword-ratio",
1122
+ "value": 0.001,
1123
+ "sampleSize": 4685
1124
+ },
1125
+ "examples": []
1126
+ },
1127
+ "confidence": 1,
1128
+ "status": "auto"
1129
+ },
1130
+ {
1131
+ "id": "avoid.typescript.comments.restating",
1132
+ "scope": "personal",
1133
+ "language": "typescript",
1134
+ "category": "avoid",
1135
+ "kind": "voice",
1136
+ "text": "Do not start comments with \"This function\", \"This method\" or \"This class\". Say what is not obvious from the code, or write nothing.",
1137
+ "evidence": {
1138
+ "metric": {
1139
+ "name": "comments.restates-ratio",
1140
+ "value": 0,
1141
+ "sampleSize": 4685
1142
+ },
1143
+ "examples": []
1144
+ },
1145
+ "confidence": 1,
1146
+ "status": "auto"
1147
+ },
1148
+ {
1149
+ "id": "avoid.typescript.comments.emoji",
1150
+ "scope": "personal",
1151
+ "language": "typescript",
1152
+ "category": "avoid",
1153
+ "kind": "voice",
1154
+ "text": "No emoji in comments.",
1155
+ "evidence": {
1156
+ "metric": {
1157
+ "name": "comments.emoji-ratio",
1158
+ "value": 0,
1159
+ "sampleSize": 4685
1160
+ },
1161
+ "examples": []
1162
+ },
1163
+ "confidence": 1,
1164
+ "status": "auto"
1165
+ },
1166
+ {
1167
+ "id": "avoid.typescript.naming.generic",
1168
+ "scope": "personal",
1169
+ "language": "typescript",
1170
+ "category": "avoid",
1171
+ "kind": "voice",
1172
+ "text": "No generic names like handleData, processItem, result2 or helper. Name the thing after what it is.",
1173
+ "evidence": {
1174
+ "metric": {
1175
+ "name": "naming.generic-ratio",
1176
+ "value": 0.008,
1177
+ "sampleSize": 1177
1178
+ },
1179
+ "examples": []
1180
+ },
1181
+ "confidence": 0.99,
1182
+ "status": "auto"
1183
+ },
1184
+ {
1185
+ "id": "avoid.typescript.errors.try-everything",
1186
+ "scope": "personal",
1187
+ "language": "typescript",
1188
+ "category": "avoid",
1189
+ "kind": "voice",
1190
+ "text": "Do not wrap code in try/catch defensively. Let errors propagate unless there is a specific recovery.",
1191
+ "evidence": {
1192
+ "metric": {
1193
+ "name": "errors.try-per-kloc",
1194
+ "value": 0.42,
1195
+ "sampleSize": 69080
1196
+ },
1197
+ "examples": []
1198
+ },
1199
+ "confidence": 1,
1200
+ "status": "auto"
1201
+ },
1202
+ {
1203
+ "id": "avoid.typescript.comments.todo",
1204
+ "scope": "personal",
1205
+ "language": "typescript",
1206
+ "category": "avoid",
1207
+ "kind": "voice",
1208
+ "text": "Do not leave TODO comments.",
1209
+ "evidence": {
1210
+ "metric": {
1211
+ "name": "comments.todo-ratio",
1212
+ "value": 0.003,
1213
+ "sampleSize": 4685
1214
+ },
1215
+ "examples": []
1216
+ },
1217
+ "confidence": 0.99,
1218
+ "status": "auto"
1219
+ },
1220
+ {
1221
+ "id": "any.commits.lowercase-ratio.high",
1222
+ "scope": "personal",
1223
+ "language": "any",
1224
+ "category": "commits",
1225
+ "kind": "voice",
1226
+ "text": "Commit subjects start lowercase.",
1227
+ "evidence": {
1228
+ "metric": {
1229
+ "name": "commits.lowercase-ratio",
1230
+ "value": 0.986,
1231
+ "sampleSize": 3171
1232
+ },
1233
+ "examples": []
1234
+ },
1235
+ "confidence": 0.98,
1236
+ "status": "auto"
1237
+ },
1238
+ {
1239
+ "id": "any.commits.imperative-ratio.high",
1240
+ "scope": "personal",
1241
+ "language": "any",
1242
+ "category": "commits",
1243
+ "kind": "voice",
1244
+ "text": "Write commit subjects in the imperative: Add, Fix, Remove.",
1245
+ "evidence": {
1246
+ "metric": {
1247
+ "name": "commits.imperative-ratio",
1248
+ "value": 0.97,
1249
+ "sampleSize": 3171
1250
+ },
1251
+ "examples": []
1252
+ },
1253
+ "confidence": 0.96,
1254
+ "status": "auto"
1255
+ },
1256
+ {
1257
+ "id": "any.commits.trailing-period-ratio.low",
1258
+ "scope": "personal",
1259
+ "language": "any",
1260
+ "category": "commits",
1261
+ "kind": "voice",
1262
+ "text": "No period at the end of a commit subject.",
1263
+ "evidence": {
1264
+ "metric": {
1265
+ "name": "commits.trailing-period-ratio",
1266
+ "value": 0,
1267
+ "sampleSize": 3171
1268
+ },
1269
+ "examples": []
1270
+ },
1271
+ "confidence": 1,
1272
+ "status": "auto"
1273
+ },
1274
+ {
1275
+ "id": "any.commits.body-ratio.low",
1276
+ "scope": "personal",
1277
+ "language": "any",
1278
+ "category": "commits",
1279
+ "kind": "voice",
1280
+ "text": "Subject line only. Commit bodies are rare.",
1281
+ "evidence": {
1282
+ "metric": {
1283
+ "name": "commits.body-ratio",
1284
+ "value": 0.196,
1285
+ "sampleSize": 3171
1286
+ },
1287
+ "examples": []
1288
+ },
1289
+ "confidence": 0.79,
1290
+ "status": "auto"
1291
+ },
1292
+ {
1293
+ "id": "any.commits.body-wrap-ratio.high",
1294
+ "scope": "personal",
1295
+ "language": "any",
1296
+ "category": "commits",
1297
+ "kind": "voice",
1298
+ "text": "Hard-wrap commit body lines at 72 characters.",
1299
+ "evidence": {
1300
+ "metric": {
1301
+ "name": "commits.body-wrap-ratio",
1302
+ "value": 0.988,
1303
+ "sampleSize": 1076
1304
+ },
1305
+ "examples": []
1306
+ },
1307
+ "confidence": 0.98,
1308
+ "status": "auto"
1309
+ },
1310
+ {
1311
+ "id": "any.commits.subject-p50.value",
1312
+ "scope": "personal",
1313
+ "language": "any",
1314
+ "category": "commits",
1315
+ "kind": "voice",
1316
+ "text": "Commit subjects are about 44 characters.",
1317
+ "evidence": {
1318
+ "metric": {
1319
+ "name": "commits.subject-p50",
1320
+ "value": 44,
1321
+ "sampleSize": 3171
1322
+ },
1323
+ "examples": []
1324
+ },
1325
+ "confidence": 0.8,
1326
+ "status": "auto"
1327
+ },
1328
+ {
1329
+ "id": "typescript.structure.no-semicolons-leading-semi",
1330
+ "scope": "personal",
1331
+ "language": "typescript",
1332
+ "category": "structure",
1333
+ "kind": "layout",
1334
+ "text": "Omit semicolons. When a statement starts with `(` or `[`, prefix it with a leading `;` as in `;(currentProp as AttributeNode).name += arg`.",
1335
+ "evidence": {
1336
+ "examples": [
1337
+ {
1338
+ "file": "packages/compiler-core/src/parser.ts",
1339
+ "line": 245,
1340
+ "snippet": ""
1341
+ },
1342
+ {
1343
+ "file": "packages/compiler-sfc/src/cache.ts",
1344
+ "line": 3,
1345
+ "snippet": ""
1346
+ },
1347
+ {
1348
+ "file": "packages/runtime-test/src/nodeOps.ts",
1349
+ "line": 95,
1350
+ "snippet": ""
1351
+ }
1352
+ ]
1353
+ },
1354
+ "confidence": 0.95,
1355
+ "status": "auto"
1356
+ },
1357
+ {
1358
+ "id": "typescript.structure.braceless-single-line-guards",
1359
+ "scope": "personal",
1360
+ "language": "typescript",
1361
+ "category": "structure",
1362
+ "kind": "layout",
1363
+ "text": "Write one-statement guards on a single line without braces: `if (start === end) return`, `if (dynamicOnly) continue`. Use braces as soon as the body spans more than one statement or line.",
1364
+ "evidence": {
1365
+ "examples": [
1366
+ {
1367
+ "file": "packages/compiler-core/src/parser.ts",
1368
+ "line": 245,
1369
+ "snippet": ""
1370
+ },
1371
+ {
1372
+ "file": "packages/compiler-core/src/utils.ts",
1373
+ "line": 243,
1374
+ "snippet": ""
1375
+ },
1376
+ {
1377
+ "file": "packages/compiler-core/src/transforms/transformElement.ts",
1378
+ "line": 934,
1379
+ "snippet": ""
1380
+ }
1381
+ ]
1382
+ },
1383
+ "confidence": 0.7,
1384
+ "status": "auto"
1385
+ },
1386
+ {
1387
+ "id": "typescript.structure.index-for-loops",
1388
+ "scope": "personal",
1389
+ "language": "typescript",
1390
+ "category": "structure",
1391
+ "kind": "idiom",
1392
+ "text": "Iterate arrays and strings with a classic index loop `for (let i = 0; i < node.props.length; i++)`, binding the element to a short local like `const p = node.props[i]`. Do not reach for forEach, for-of or map when a loop body has early return/continue.",
1393
+ "evidence": {
1394
+ "examples": [
1395
+ {
1396
+ "file": "packages/compiler-core/src/utils.ts",
1397
+ "line": 243,
1398
+ "snippet": ""
1399
+ },
1400
+ {
1401
+ "file": "packages/compiler-core/src/parser.ts",
1402
+ "line": 872,
1403
+ "snippet": ""
1404
+ },
1405
+ {
1406
+ "file": "packages/compiler-core/src/codegen.ts",
1407
+ "line": 525,
1408
+ "snippet": ""
1409
+ }
1410
+ ]
1411
+ },
1412
+ "confidence": 0.85,
1413
+ "status": "auto"
1414
+ },
1415
+ {
1416
+ "id": "typescript.naming.need-can-boolean-prefix",
1417
+ "scope": "personal",
1418
+ "language": "typescript",
1419
+ "category": "naming",
1420
+ "kind": "voice",
1421
+ "text": "Name locals that decide whether to take a path with `need*` or `can*` in addition to `is*`: `needFragmentWrapper`, `needScopeIdWrapper`, `canCache`, `isStatic`.",
1422
+ "evidence": {
1423
+ "examples": [
1424
+ {
1425
+ "file": "packages/compiler-ssr/src/transforms/ssrVFor.ts",
1426
+ "line": 24,
1427
+ "snippet": ""
1428
+ },
1429
+ {
1430
+ "file": "packages/compiler-core/src/codegen.ts",
1431
+ "line": 525,
1432
+ "snippet": ""
1433
+ },
1434
+ {
1435
+ "file": "packages/compiler-sfc/src/script/resolveType.ts",
1436
+ "line": 692,
1437
+ "snippet": ""
1438
+ }
1439
+ ]
1440
+ },
1441
+ "confidence": 0.75,
1442
+ "status": "auto"
1443
+ },
1444
+ {
1445
+ "id": "typescript.comments.test-step-labels",
1446
+ "scope": "personal",
1447
+ "language": "typescript",
1448
+ "category": "comments",
1449
+ "kind": "voice",
1450
+ "text": "In tests, label phases with terse lowercase comments naming the action or expectation: `// toggle`, `// update`, `// set`, `// should not unmount when toggling`, `// value changed before resolve`. No sentences, no punctuation.",
1451
+ "evidence": {
1452
+ "examples": [
1453
+ {
1454
+ "file": "packages/runtime-core/__tests__/components/Suspense.spec.ts",
1455
+ "line": 996,
1456
+ "snippet": ""
1457
+ },
1458
+ {
1459
+ "file": "packages/runtime-core/__tests__/hmr.spec.ts",
1460
+ "line": 355,
1461
+ "snippet": ""
1462
+ },
1463
+ {
1464
+ "file": "packages/runtime-core/__tests__/apiLifecycle.spec.ts",
1465
+ "line": 276,
1466
+ "snippet": ""
1467
+ }
1468
+ ]
1469
+ },
1470
+ "confidence": 0.85,
1471
+ "status": "auto"
1472
+ }
1473
+ ]
1474
+ }