@projectwallace/css-analyzer 7.6.0 → 7.6.2

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/dist/index.d.ts CHANGED
@@ -1,1050 +1,584 @@
1
- /**
2
- * @typedef Options
3
- * @property {boolean} useLocations Use Locations (`{ 'item': [{ line, column, offset, length }] }`) instead of a regular count per occurrence (`{ 'item': 3 }`)
4
- */
5
- /**
6
- * Analyze CSS
7
- * @param {string} css
8
- * @param {Options} options
9
- */
10
- export function analyze(css: string, options?: Options): {
11
- stylesheet: {
12
- sourceLinesOfCode: number;
13
- linesOfCode: number;
14
- size: number;
15
- complexity: number;
16
- comments: {
17
- total: number;
18
- size: number;
19
- };
20
- embeddedContent: {
21
- size: {
22
- total: number;
23
- ratio: number;
24
- };
25
- types: {
26
- total: number;
27
- totalUnique: number;
28
- uniquenessRatio: number;
29
- unique: {
30
- [k: string]: {
31
- size: number;
32
- count: number;
33
- } & ({
34
- uniqueWithLocations?: undefined;
35
- } | {
36
- uniqueWithLocations: {
37
- offset: number;
38
- line: number;
39
- column: number;
40
- length: number;
41
- }[];
42
- });
43
- };
44
- };
45
- };
46
- };
47
- atrules: ({
48
- total: number;
49
- totalUnique: number;
50
- uniquenessRatio: number;
51
- unique: Record<string, number>;
52
- } & ({
53
- uniqueWithLocations: Record<string, {
54
- line: number;
55
- column: number;
56
- offset: number;
57
- length: number;
58
- }[]>;
59
- } | {
60
- uniqueWithLocations?: undefined;
61
- })) & {
62
- fontface: {
63
- total: number;
64
- totalUnique: number;
65
- unique: Record<string, string>[];
66
- uniquenessRatio: number;
67
- } & ({
68
- uniqueWithLocations: Record<string, {
69
- line: number;
70
- column: number;
71
- offset: number;
72
- length: number;
73
- }[]> | undefined;
74
- } | {
75
- uniqueWithLocations?: undefined;
76
- });
77
- import: {
78
- total: number;
79
- totalUnique: number;
80
- uniquenessRatio: number;
81
- unique: Record<string, number>;
82
- } & ({
83
- uniqueWithLocations: Record<string, {
84
- line: number;
85
- column: number;
86
- offset: number;
87
- length: number;
88
- }[]>;
89
- } | {
90
- uniqueWithLocations?: undefined;
91
- });
92
- media: ({
93
- total: number;
94
- totalUnique: number;
95
- uniquenessRatio: number;
96
- unique: Record<string, number>;
97
- } & ({
98
- uniqueWithLocations: Record<string, {
99
- line: number;
100
- column: number;
101
- offset: number;
102
- length: number;
103
- }[]>;
104
- } | {
105
- uniqueWithLocations?: undefined;
106
- })) & {
107
- browserhacks: {
108
- total: number;
109
- totalUnique: number;
110
- uniquenessRatio: number;
111
- unique: Record<string, number>;
112
- } & ({
113
- uniqueWithLocations: Record<string, {
114
- line: number;
115
- column: number;
116
- offset: number;
117
- length: number;
118
- }[]>;
119
- } | {
120
- uniqueWithLocations?: undefined;
121
- });
122
- features: {
123
- total: number;
124
- totalUnique: number;
125
- uniquenessRatio: number;
126
- unique: Record<string, number>;
127
- } & ({
128
- uniqueWithLocations: Record<string, {
129
- line: number;
130
- column: number;
131
- offset: number;
132
- length: number;
133
- }[]>;
134
- } | {
135
- uniqueWithLocations?: undefined;
136
- });
137
- };
138
- charset: {
139
- total: number;
140
- totalUnique: number;
141
- uniquenessRatio: number;
142
- unique: Record<string, number>;
143
- } & ({
144
- uniqueWithLocations: Record<string, {
145
- line: number;
146
- column: number;
147
- offset: number;
148
- length: number;
149
- }[]>;
150
- } | {
151
- uniqueWithLocations?: undefined;
152
- });
153
- supports: ({
154
- total: number;
155
- totalUnique: number;
156
- uniquenessRatio: number;
157
- unique: Record<string, number>;
158
- } & ({
159
- uniqueWithLocations: Record<string, {
160
- line: number;
161
- column: number;
162
- offset: number;
163
- length: number;
164
- }[]>;
165
- } | {
166
- uniqueWithLocations?: undefined;
167
- })) & {
168
- browserhacks: {
169
- total: number;
170
- totalUnique: number;
171
- uniquenessRatio: number;
172
- unique: Record<string, number>;
173
- } & ({
174
- uniqueWithLocations: Record<string, {
175
- line: number;
176
- column: number;
177
- offset: number;
178
- length: number;
179
- }[]>;
180
- } | {
181
- uniqueWithLocations?: undefined;
182
- });
183
- };
184
- keyframes: ({
185
- total: number;
186
- totalUnique: number;
187
- uniquenessRatio: number;
188
- unique: Record<string, number>;
189
- } & ({
190
- uniqueWithLocations: Record<string, {
191
- line: number;
192
- column: number;
193
- offset: number;
194
- length: number;
195
- }[]>;
196
- } | {
197
- uniqueWithLocations?: undefined;
198
- })) & {
199
- prefixed: ({
200
- total: number;
201
- totalUnique: number;
202
- uniquenessRatio: number;
203
- unique: Record<string, number>;
204
- } & ({
205
- uniqueWithLocations: Record<string, {
206
- line: number;
207
- column: number;
208
- offset: number;
209
- length: number;
210
- }[]>;
211
- } | {
212
- uniqueWithLocations?: undefined;
213
- })) & {
214
- ratio: number;
215
- };
216
- };
217
- container: ({
218
- total: number;
219
- totalUnique: number;
220
- uniquenessRatio: number;
221
- unique: Record<string, number>;
222
- } & ({
223
- uniqueWithLocations: Record<string, {
224
- line: number;
225
- column: number;
226
- offset: number;
227
- length: number;
228
- }[]>;
229
- } | {
230
- uniqueWithLocations?: undefined;
231
- })) & {
232
- names: {
233
- total: number;
234
- totalUnique: number;
235
- uniquenessRatio: number;
236
- unique: Record<string, number>;
237
- } & ({
238
- uniqueWithLocations: Record<string, {
239
- line: number;
240
- column: number;
241
- offset: number;
242
- length: number;
243
- }[]>;
244
- } | {
245
- uniqueWithLocations?: undefined;
246
- });
247
- };
248
- layer: {
249
- total: number;
250
- totalUnique: number;
251
- uniquenessRatio: number;
252
- unique: Record<string, number>;
253
- } & ({
254
- uniqueWithLocations: Record<string, {
255
- line: number;
256
- column: number;
257
- offset: number;
258
- length: number;
259
- }[]>;
260
- } | {
261
- uniqueWithLocations?: undefined;
262
- });
263
- property: {
264
- total: number;
265
- totalUnique: number;
266
- uniquenessRatio: number;
267
- unique: Record<string, number>;
268
- } & ({
269
- uniqueWithLocations: Record<string, {
270
- line: number;
271
- column: number;
272
- offset: number;
273
- length: number;
274
- }[]>;
275
- } | {
276
- uniqueWithLocations?: undefined;
277
- });
278
- complexity: {
279
- min: number | undefined;
280
- max: number | undefined;
281
- mean: number;
282
- mode: number;
283
- range: number;
284
- sum: number;
285
- };
286
- nesting: {
287
- min: number | undefined;
288
- max: number | undefined;
289
- mean: number;
290
- mode: number;
291
- range: number;
292
- sum: number;
293
- } & ({
294
- items: number[];
295
- } & ({
296
- total: number;
297
- totalUnique: number;
298
- uniquenessRatio: number;
299
- unique: Record<string, number>;
300
- } & ({
301
- uniqueWithLocations: Record<string, {
302
- line: number;
303
- column: number;
304
- offset: number;
305
- length: number;
306
- }[]>;
307
- } | {
308
- uniqueWithLocations?: undefined;
309
- })));
310
- };
311
- rules: {
312
- total: number;
313
- empty: {
314
- total: number;
315
- ratio: number;
316
- };
317
- sizes: {
318
- min: number | undefined;
319
- max: number | undefined;
320
- mean: number;
321
- mode: number;
322
- range: number;
323
- sum: number;
324
- } & ({
325
- items: number[];
326
- } & ({
327
- total: number;
328
- totalUnique: number;
329
- uniquenessRatio: number;
330
- unique: Record<string, number>;
331
- } & ({
332
- uniqueWithLocations: Record<string, {
333
- line: number;
334
- column: number;
335
- offset: number;
336
- length: number;
337
- }[]>;
338
- } | {
339
- uniqueWithLocations?: undefined;
340
- })));
341
- nesting: {
342
- min: number | undefined;
343
- max: number | undefined;
344
- mean: number;
345
- mode: number;
346
- range: number;
347
- sum: number;
348
- } & ({
349
- items: number[];
350
- } & ({
351
- total: number;
352
- totalUnique: number;
353
- uniquenessRatio: number;
354
- unique: Record<string, number>;
355
- } & ({
356
- uniqueWithLocations: Record<string, {
357
- line: number;
358
- column: number;
359
- offset: number;
360
- length: number;
361
- }[]>;
362
- } | {
363
- uniqueWithLocations?: undefined;
364
- })));
365
- selectors: {
366
- min: number | undefined;
367
- max: number | undefined;
368
- mean: number;
369
- mode: number;
370
- range: number;
371
- sum: number;
372
- } & ({
373
- items: number[];
374
- } & ({
375
- total: number;
376
- totalUnique: number;
377
- uniquenessRatio: number;
378
- unique: Record<string, number>;
379
- } & ({
380
- uniqueWithLocations: Record<string, {
381
- line: number;
382
- column: number;
383
- offset: number;
384
- length: number;
385
- }[]>;
386
- } | {
387
- uniqueWithLocations?: undefined;
388
- })));
389
- declarations: {
390
- min: number | undefined;
391
- max: number | undefined;
392
- mean: number;
393
- mode: number;
394
- range: number;
395
- sum: number;
396
- } & ({
397
- items: number[];
398
- } & ({
399
- total: number;
400
- totalUnique: number;
401
- uniquenessRatio: number;
402
- unique: Record<string, number>;
403
- } & ({
404
- uniqueWithLocations: Record<string, {
405
- line: number;
406
- column: number;
407
- offset: number;
408
- length: number;
409
- }[]>;
410
- } | {
411
- uniqueWithLocations?: undefined;
412
- })));
413
- };
414
- selectors: {
415
- total: number;
416
- totalUnique: number;
417
- uniquenessRatio: number;
418
- specificity: {
419
- /** @type Specificity */
420
- min: Specificity;
421
- /** @type Specificity */
422
- max: Specificity;
423
- /** @type Specificity */
424
- sum: Specificity;
425
- /** @type Specificity */
426
- mean: Specificity;
427
- /** @type Specificity */
428
- mode: Specificity;
429
- /** @type Specificity */
430
- items: Specificity;
431
- } & ({
432
- total: number;
433
- totalUnique: number;
434
- uniquenessRatio: number;
435
- unique: Record<string, number>;
436
- } & ({
437
- uniqueWithLocations: Record<string, {
438
- line: number;
439
- column: number;
440
- offset: number;
441
- length: number;
442
- }[]>;
443
- } | {
444
- uniqueWithLocations?: undefined;
445
- }));
446
- complexity: {
447
- min: number | undefined;
448
- max: number | undefined;
449
- mean: number;
450
- mode: number;
451
- range: number;
452
- sum: number;
453
- } & (({
454
- total: number;
455
- totalUnique: number;
456
- uniquenessRatio: number;
457
- unique: Record<string, number>;
458
- } & ({
459
- uniqueWithLocations: Record<string, {
460
- line: number;
461
- column: number;
462
- offset: number;
463
- length: number;
464
- }[]>;
465
- } | {
466
- uniqueWithLocations?: undefined;
467
- })) & {
468
- items: number[];
469
- });
470
- nesting: {
471
- min: number | undefined;
472
- max: number | undefined;
473
- mean: number;
474
- mode: number;
475
- range: number;
476
- sum: number;
477
- } & ({
478
- items: number[];
479
- } & ({
480
- total: number;
481
- totalUnique: number;
482
- uniquenessRatio: number;
483
- unique: Record<string, number>;
484
- } & ({
485
- uniqueWithLocations: Record<string, {
486
- line: number;
487
- column: number;
488
- offset: number;
489
- length: number;
490
- }[]>;
491
- } | {
492
- uniqueWithLocations?: undefined;
493
- })));
494
- id: ({
495
- total: number;
496
- totalUnique: number;
497
- uniquenessRatio: number;
498
- unique: Record<string, number>;
499
- } & ({
500
- uniqueWithLocations: Record<string, {
501
- line: number;
502
- column: number;
503
- offset: number;
504
- length: number;
505
- }[]>;
506
- } | {
507
- uniqueWithLocations?: undefined;
508
- })) & {
509
- ratio: number;
510
- };
511
- pseudoClasses: {
512
- total: number;
513
- totalUnique: number;
514
- uniquenessRatio: number;
515
- unique: Record<string, number>;
516
- } & ({
517
- uniqueWithLocations: Record<string, {
518
- line: number;
519
- column: number;
520
- offset: number;
521
- length: number;
522
- }[]>;
523
- } | {
524
- uniqueWithLocations?: undefined;
525
- });
526
- accessibility: ({
527
- total: number;
528
- totalUnique: number;
529
- uniquenessRatio: number;
530
- unique: Record<string, number>;
531
- } & ({
532
- uniqueWithLocations: Record<string, {
533
- line: number;
534
- column: number;
535
- offset: number;
536
- length: number;
537
- }[]>;
538
- } | {
539
- uniqueWithLocations?: undefined;
540
- })) & {
541
- ratio: number;
542
- };
543
- keyframes: {
544
- total: number;
545
- totalUnique: number;
546
- uniquenessRatio: number;
547
- unique: Record<string, number>;
548
- } & ({
549
- uniqueWithLocations: Record<string, {
550
- line: number;
551
- column: number;
552
- offset: number;
553
- length: number;
554
- }[]>;
555
- } | {
556
- uniqueWithLocations?: undefined;
557
- });
558
- prefixed: ({
559
- total: number;
560
- totalUnique: number;
561
- uniquenessRatio: number;
562
- unique: Record<string, number>;
563
- } & ({
564
- uniqueWithLocations: Record<string, {
565
- line: number;
566
- column: number;
567
- offset: number;
568
- length: number;
569
- }[]>;
570
- } | {
571
- uniqueWithLocations?: undefined;
572
- })) & {
573
- ratio: number;
574
- };
575
- combinators: {
576
- total: number;
577
- totalUnique: number;
578
- uniquenessRatio: number;
579
- unique: Record<string, number>;
580
- } & ({
581
- uniqueWithLocations: Record<string, {
582
- line: number;
583
- column: number;
584
- offset: number;
585
- length: number;
586
- }[]>;
587
- } | {
588
- uniqueWithLocations?: undefined;
589
- });
590
- };
591
- declarations: {
592
- total: number;
593
- totalUnique: number;
594
- uniquenessRatio: number;
595
- importants: {
596
- total: number;
597
- ratio: number;
598
- inKeyframes: {
599
- total: number;
600
- ratio: number;
601
- };
602
- };
603
- complexity: {
604
- min: number | undefined;
605
- max: number | undefined;
606
- mean: number;
607
- mode: number;
608
- range: number;
609
- sum: number;
610
- };
611
- nesting: {
612
- min: number | undefined;
613
- max: number | undefined;
614
- mean: number;
615
- mode: number;
616
- range: number;
617
- sum: number;
618
- } & ({
619
- items: number[];
620
- } & ({
621
- total: number;
622
- totalUnique: number;
623
- uniquenessRatio: number;
624
- unique: Record<string, number>;
625
- } & ({
626
- uniqueWithLocations: Record<string, {
627
- line: number;
628
- column: number;
629
- offset: number;
630
- length: number;
631
- }[]>;
632
- } | {
633
- uniqueWithLocations?: undefined;
634
- })));
635
- };
636
- properties: ({
637
- total: number;
638
- totalUnique: number;
639
- uniquenessRatio: number;
640
- unique: Record<string, number>;
641
- } & ({
642
- uniqueWithLocations: Record<string, {
643
- line: number;
644
- column: number;
645
- offset: number;
646
- length: number;
647
- }[]>;
648
- } | {
649
- uniqueWithLocations?: undefined;
650
- })) & {
651
- prefixed: ({
652
- total: number;
653
- totalUnique: number;
654
- uniquenessRatio: number;
655
- unique: Record<string, number>;
656
- } & ({
657
- uniqueWithLocations: Record<string, {
658
- line: number;
659
- column: number;
660
- offset: number;
661
- length: number;
662
- }[]>;
663
- } | {
664
- uniqueWithLocations?: undefined;
665
- })) & {
666
- ratio: number;
667
- };
668
- custom: ({
669
- total: number;
670
- totalUnique: number;
671
- uniquenessRatio: number;
672
- unique: Record<string, number>;
673
- } & ({
674
- uniqueWithLocations: Record<string, {
675
- line: number;
676
- column: number;
677
- offset: number;
678
- length: number;
679
- }[]>;
680
- } | {
681
- uniqueWithLocations?: undefined;
682
- })) & {
683
- ratio: number;
684
- importants: ({
685
- total: number;
686
- totalUnique: number;
687
- uniquenessRatio: number;
688
- unique: Record<string, number>;
689
- } & ({
690
- uniqueWithLocations: Record<string, {
691
- line: number;
692
- column: number;
693
- offset: number;
694
- length: number;
695
- }[]>;
696
- } | {
697
- uniqueWithLocations?: undefined;
698
- })) & {
699
- ratio: number;
700
- };
701
- };
702
- browserhacks: ({
703
- total: number;
704
- totalUnique: number;
705
- uniquenessRatio: number;
706
- unique: Record<string, number>;
707
- } & ({
708
- uniqueWithLocations: Record<string, {
709
- line: number;
710
- column: number;
711
- offset: number;
712
- length: number;
713
- }[]>;
714
- } | {
715
- uniqueWithLocations?: undefined;
716
- })) & {
717
- ratio: number;
718
- };
719
- complexity: {
720
- min: number | undefined;
721
- max: number | undefined;
722
- mean: number;
723
- mode: number;
724
- range: number;
725
- sum: number;
726
- };
727
- };
728
- values: {
729
- colors: (({
730
- total: number;
731
- totalUnique: number;
732
- uniquenessRatio: number;
733
- unique: Record<string, number>;
734
- } & ({
735
- uniqueWithLocations: Record<string, {
736
- line: number;
737
- column: number;
738
- offset: number;
739
- length: number;
740
- }[]>;
741
- } | {
742
- uniqueWithLocations?: undefined;
743
- })) & {
744
- itemsPerContext: {
745
- [k: string]: {
746
- total: number;
747
- totalUnique: number;
748
- unique: Record<string, number>;
749
- uniquenessRatio: number;
750
- };
751
- };
752
- }) & {
753
- formats: {
754
- total: number;
755
- totalUnique: number;
756
- uniquenessRatio: number;
757
- unique: Record<string, number>;
758
- } & ({
759
- uniqueWithLocations: Record<string, {
760
- line: number;
761
- column: number;
762
- offset: number;
763
- length: number;
764
- }[]>;
765
- } | {
766
- uniqueWithLocations?: undefined;
767
- });
768
- };
769
- gradients: {
770
- total: number;
771
- totalUnique: number;
772
- uniquenessRatio: number;
773
- unique: Record<string, number>;
774
- } & ({
775
- uniqueWithLocations: Record<string, {
776
- line: number;
777
- column: number;
778
- offset: number;
779
- length: number;
780
- }[]>;
781
- } | {
782
- uniqueWithLocations?: undefined;
783
- });
784
- fontFamilies: {
785
- total: number;
786
- totalUnique: number;
787
- uniquenessRatio: number;
788
- unique: Record<string, number>;
789
- } & ({
790
- uniqueWithLocations: Record<string, {
791
- line: number;
792
- column: number;
793
- offset: number;
794
- length: number;
795
- }[]>;
796
- } | {
797
- uniqueWithLocations?: undefined;
798
- });
799
- fontSizes: {
800
- total: number;
801
- totalUnique: number;
802
- uniquenessRatio: number;
803
- unique: Record<string, number>;
804
- } & ({
805
- uniqueWithLocations: Record<string, {
806
- line: number;
807
- column: number;
808
- offset: number;
809
- length: number;
810
- }[]>;
811
- } | {
812
- uniqueWithLocations?: undefined;
813
- });
814
- lineHeights: {
815
- total: number;
816
- totalUnique: number;
817
- uniquenessRatio: number;
818
- unique: Record<string, number>;
819
- } & ({
820
- uniqueWithLocations: Record<string, {
821
- line: number;
822
- column: number;
823
- offset: number;
824
- length: number;
825
- }[]>;
826
- } | {
827
- uniqueWithLocations?: undefined;
828
- });
829
- zindexes: {
830
- total: number;
831
- totalUnique: number;
832
- uniquenessRatio: number;
833
- unique: Record<string, number>;
834
- } & ({
835
- uniqueWithLocations: Record<string, {
836
- line: number;
837
- column: number;
838
- offset: number;
839
- length: number;
840
- }[]>;
841
- } | {
842
- uniqueWithLocations?: undefined;
843
- });
844
- textShadows: {
845
- total: number;
846
- totalUnique: number;
847
- uniquenessRatio: number;
848
- unique: Record<string, number>;
849
- } & ({
850
- uniqueWithLocations: Record<string, {
851
- line: number;
852
- column: number;
853
- offset: number;
854
- length: number;
855
- }[]>;
856
- } | {
857
- uniqueWithLocations?: undefined;
858
- });
859
- boxShadows: {
860
- total: number;
861
- totalUnique: number;
862
- uniquenessRatio: number;
863
- unique: Record<string, number>;
864
- } & ({
865
- uniqueWithLocations: Record<string, {
866
- line: number;
867
- column: number;
868
- offset: number;
869
- length: number;
870
- }[]>;
871
- } | {
872
- uniqueWithLocations?: undefined;
873
- });
874
- borderRadiuses: ({
875
- total: number;
876
- totalUnique: number;
877
- uniquenessRatio: number;
878
- unique: Record<string, number>;
879
- } & ({
880
- uniqueWithLocations: Record<string, {
881
- line: number;
882
- column: number;
883
- offset: number;
884
- length: number;
885
- }[]>;
886
- } | {
887
- uniqueWithLocations?: undefined;
888
- })) & {
889
- itemsPerContext: {
890
- [k: string]: {
891
- total: number;
892
- totalUnique: number;
893
- unique: Record<string, number>;
894
- uniquenessRatio: number;
895
- };
896
- };
897
- };
898
- animations: {
899
- durations: {
900
- total: number;
901
- totalUnique: number;
902
- uniquenessRatio: number;
903
- unique: Record<string, number>;
904
- } & ({
905
- uniqueWithLocations: Record<string, {
906
- line: number;
907
- column: number;
908
- offset: number;
909
- length: number;
910
- }[]>;
911
- } | {
912
- uniqueWithLocations?: undefined;
913
- });
914
- timingFunctions: {
915
- total: number;
916
- totalUnique: number;
917
- uniquenessRatio: number;
918
- unique: Record<string, number>;
919
- } & ({
920
- uniqueWithLocations: Record<string, {
921
- line: number;
922
- column: number;
923
- offset: number;
924
- length: number;
925
- }[]>;
926
- } | {
927
- uniqueWithLocations?: undefined;
928
- });
929
- };
930
- prefixes: {
931
- total: number;
932
- totalUnique: number;
933
- uniquenessRatio: number;
934
- unique: Record<string, number>;
935
- } & ({
936
- uniqueWithLocations: Record<string, {
937
- line: number;
938
- column: number;
939
- offset: number;
940
- length: number;
941
- }[]>;
942
- } | {
943
- uniqueWithLocations?: undefined;
944
- });
945
- browserhacks: {
946
- total: number;
947
- totalUnique: number;
948
- uniquenessRatio: number;
949
- unique: Record<string, number>;
950
- } & ({
951
- uniqueWithLocations: Record<string, {
952
- line: number;
953
- column: number;
954
- offset: number;
955
- length: number;
956
- }[]>;
957
- } | {
958
- uniqueWithLocations?: undefined;
959
- });
960
- units: ({
961
- total: number;
962
- totalUnique: number;
963
- uniquenessRatio: number;
964
- unique: Record<string, number>;
965
- } & ({
966
- uniqueWithLocations: Record<string, {
967
- line: number;
968
- column: number;
969
- offset: number;
970
- length: number;
971
- }[]>;
972
- } | {
973
- uniqueWithLocations?: undefined;
974
- })) & {
975
- itemsPerContext: {
976
- [k: string]: {
977
- total: number;
978
- totalUnique: number;
979
- unique: Record<string, number>;
980
- uniquenessRatio: number;
981
- };
982
- };
983
- };
984
- complexity: {
985
- min: number | undefined;
986
- max: number | undefined;
987
- mean: number;
988
- mode: number;
989
- range: number;
990
- sum: number;
991
- };
992
- keywords: {
993
- total: number;
994
- totalUnique: number;
995
- uniquenessRatio: number;
996
- unique: Record<string, number>;
997
- } & ({
998
- uniqueWithLocations: Record<string, {
999
- line: number;
1000
- column: number;
1001
- offset: number;
1002
- length: number;
1003
- }[]>;
1004
- } | {
1005
- uniqueWithLocations?: undefined;
1006
- });
1007
- resets: {
1008
- total: number;
1009
- totalUnique: number;
1010
- uniquenessRatio: number;
1011
- unique: Record<string, number>;
1012
- } & ({
1013
- uniqueWithLocations: Record<string, {
1014
- line: number;
1015
- column: number;
1016
- offset: number;
1017
- length: number;
1018
- }[]>;
1019
- } | {
1020
- uniqueWithLocations?: undefined;
1021
- });
1022
- };
1023
- __meta__: {
1024
- parseTime: number;
1025
- analyzeTime: number;
1026
- total: number;
1027
- };
1028
- };
1029
- /**
1030
- * Compare specificity A to Specificity B
1031
- * @param {Specificity} a - Specificity A
1032
- * @param {Specificity} b - Specificity B
1033
- * @returns {number} sortIndex - 0 when a==b, 1 when a<b, -1 when a>b
1034
- */
1035
- export function compareSpecificity(a: Specificity, b: Specificity): number;
1036
- export { isHack as isPropertyHack } from './properties/property-utils.js';
1037
- export { isValuePrefixed } from './values/vendor-prefix.js';
1038
- export { keywords as cssKeywords } from './values/values.js';
1039
- export { hasVendorPrefix } from './vendor-prefix.js';
1040
- export { KeywordSet } from './keyword-set.js';
1041
- export type Options = {
1042
- /**
1043
- * Use Locations (`{ 'item': [{ line, column, offset, length }] }`) instead of a regular count per occurrence (`{ 'item': 3 }`)
1044
- */
1045
- useLocations: boolean;
1046
- };
1047
- export type Specificity = [number, number, number];
1048
- export { getComplexity as selectorComplexity, isPrefixed as isSelectorPrefixed, isAccessibility as isAccessibilitySelector } from './selectors/utils.js';
1049
- export { isSupportsBrowserhack, isMediaBrowserhack } from './atrules/atrules.js';
1050
- export { colorFunctions, colorKeywords, namedColors, systemColors } from './values/colors.js';
1
+ import { CollectionCount } from './collection.js';
2
+ import { colorFunctions } from './values/colors.js';
3
+ import { colorKeywords } from './values/colors.js';
4
+ import { keywords as cssKeywords } from './values/values.js';
5
+ import { hasVendorPrefix } from './vendor-prefix.js';
6
+ import { isAccessibility as isAccessibilitySelector } from './selectors/utils.js';
7
+ import { isMediaBrowserhack } from './atrules/atrules.js';
8
+ import { isHack as isPropertyHack } from './properties/property-utils.js';
9
+ import { isPrefixed as isSelectorPrefixed } from './selectors/utils.js';
10
+ import { isSupportsBrowserhack } from './atrules/atrules.js';
11
+ import { isValuePrefixed } from './values/vendor-prefix.js';
12
+ import { KeywordSet } from './keyword-set.js';
13
+ import { namedColors } from './values/colors.js';
14
+ import { getComplexity as selectorComplexity } from './selectors/utils.js';
15
+ import { systemColors } from './values/colors.js';
16
+ import { UniqueWithLocations } from './collection.js';
17
+
18
+ export declare function analyze(css: string, options?: Options & {
19
+ useLocations?: false | undefined;
20
+ }): ReturnType<typeof analyzeInternal<false>>;
21
+
22
+ export declare function analyze(css: string, options: Options & {
23
+ useLocations: true;
24
+ }): ReturnType<typeof analyzeInternal<true>>;
25
+
26
+ declare function analyzeInternal<T extends boolean>(css: string, options: Options, useLocations: T): {
27
+ stylesheet: {
28
+ sourceLinesOfCode: number;
29
+ linesOfCode: number;
30
+ size: number;
31
+ complexity: number;
32
+ comments: {
33
+ total: number;
34
+ size: number;
35
+ };
36
+ embeddedContent: {
37
+ size: {
38
+ total: number;
39
+ ratio: number;
40
+ };
41
+ types: {
42
+ total: number;
43
+ totalUnique: number;
44
+ uniquenessRatio: number;
45
+ unique: {
46
+ [k: string]: {
47
+ size: number;
48
+ count: number;
49
+ uniqueWithLocations?: {
50
+ offset: number;
51
+ line: number;
52
+ column: number;
53
+ length: number;
54
+ }[];
55
+ };
56
+ };
57
+ };
58
+ };
59
+ };
60
+ atrules: {
61
+ total: number;
62
+ totalUnique: number;
63
+ unique: Record<string, number>;
64
+ uniquenessRatio: number;
65
+ } & (T extends true ? {
66
+ uniqueWithLocations: UniqueWithLocations;
67
+ } : {
68
+ uniqueWithLocations?: undefined;
69
+ }) & {
70
+ fontface: {
71
+ total: number;
72
+ totalUnique: number;
73
+ unique: Record<string, string>[];
74
+ uniquenessRatio: number;
75
+ } & ({
76
+ uniqueWithLocations: UniqueWithLocations | undefined;
77
+ } | {
78
+ uniqueWithLocations?: undefined;
79
+ });
80
+ import: CollectionCount<T>;
81
+ media: {
82
+ total: number;
83
+ totalUnique: number;
84
+ unique: Record<string, number>;
85
+ uniquenessRatio: number;
86
+ } & (T extends true ? {
87
+ uniqueWithLocations: UniqueWithLocations;
88
+ } : {
89
+ uniqueWithLocations?: undefined;
90
+ }) & {
91
+ browserhacks: CollectionCount<T>;
92
+ features: CollectionCount<T>;
93
+ };
94
+ charset: CollectionCount<T>;
95
+ supports: {
96
+ total: number;
97
+ totalUnique: number;
98
+ unique: Record<string, number>;
99
+ uniquenessRatio: number;
100
+ } & (T extends true ? {
101
+ uniqueWithLocations: UniqueWithLocations;
102
+ } : {
103
+ uniqueWithLocations?: undefined;
104
+ }) & {
105
+ browserhacks: CollectionCount<T>;
106
+ };
107
+ keyframes: {
108
+ total: number;
109
+ totalUnique: number;
110
+ unique: Record<string, number>;
111
+ uniquenessRatio: number;
112
+ } & (T extends true ? {
113
+ uniqueWithLocations: UniqueWithLocations;
114
+ } : {
115
+ uniqueWithLocations?: undefined;
116
+ }) & {
117
+ prefixed: {
118
+ total: number;
119
+ totalUnique: number;
120
+ unique: Record<string, number>;
121
+ uniquenessRatio: number;
122
+ } & (T extends true ? {
123
+ uniqueWithLocations: UniqueWithLocations;
124
+ } : {
125
+ uniqueWithLocations?: undefined;
126
+ }) & {
127
+ ratio: number;
128
+ };
129
+ };
130
+ container: {
131
+ total: number;
132
+ totalUnique: number;
133
+ unique: Record<string, number>;
134
+ uniquenessRatio: number;
135
+ } & (T extends true ? {
136
+ uniqueWithLocations: UniqueWithLocations;
137
+ } : {
138
+ uniqueWithLocations?: undefined;
139
+ }) & {
140
+ names: CollectionCount<T>;
141
+ };
142
+ layer: CollectionCount<T>;
143
+ property: CollectionCount<T>;
144
+ complexity: {
145
+ min: number;
146
+ max: number;
147
+ mean: number;
148
+ mode: number;
149
+ range: number;
150
+ sum: number;
151
+ };
152
+ nesting: {
153
+ min: number;
154
+ max: number;
155
+ mean: number;
156
+ mode: number;
157
+ range: number;
158
+ sum: number;
159
+ } & {
160
+ items: number[];
161
+ } & {
162
+ total: number;
163
+ totalUnique: number;
164
+ unique: Record<string, number>;
165
+ uniquenessRatio: number;
166
+ } & (T extends true ? {
167
+ uniqueWithLocations: UniqueWithLocations;
168
+ } : {
169
+ uniqueWithLocations?: undefined;
170
+ });
171
+ };
172
+ rules: {
173
+ total: number;
174
+ empty: {
175
+ total: number;
176
+ ratio: number;
177
+ };
178
+ sizes: {
179
+ min: number;
180
+ max: number;
181
+ mean: number;
182
+ mode: number;
183
+ range: number;
184
+ sum: number;
185
+ } & {
186
+ items: number[];
187
+ } & {
188
+ total: number;
189
+ totalUnique: number;
190
+ unique: Record<string, number>;
191
+ uniquenessRatio: number;
192
+ } & (T extends true ? {
193
+ uniqueWithLocations: UniqueWithLocations;
194
+ } : {
195
+ uniqueWithLocations?: undefined;
196
+ });
197
+ nesting: {
198
+ min: number;
199
+ max: number;
200
+ mean: number;
201
+ mode: number;
202
+ range: number;
203
+ sum: number;
204
+ } & {
205
+ items: number[];
206
+ } & {
207
+ total: number;
208
+ totalUnique: number;
209
+ unique: Record<string, number>;
210
+ uniquenessRatio: number;
211
+ } & (T extends true ? {
212
+ uniqueWithLocations: UniqueWithLocations;
213
+ } : {
214
+ uniqueWithLocations?: undefined;
215
+ });
216
+ selectors: {
217
+ min: number;
218
+ max: number;
219
+ mean: number;
220
+ mode: number;
221
+ range: number;
222
+ sum: number;
223
+ } & {
224
+ items: number[];
225
+ } & {
226
+ total: number;
227
+ totalUnique: number;
228
+ unique: Record<string, number>;
229
+ uniquenessRatio: number;
230
+ } & (T extends true ? {
231
+ uniqueWithLocations: UniqueWithLocations;
232
+ } : {
233
+ uniqueWithLocations?: undefined;
234
+ });
235
+ declarations: {
236
+ min: number;
237
+ max: number;
238
+ mean: number;
239
+ mode: number;
240
+ range: number;
241
+ sum: number;
242
+ } & {
243
+ items: number[];
244
+ } & {
245
+ total: number;
246
+ totalUnique: number;
247
+ unique: Record<string, number>;
248
+ uniquenessRatio: number;
249
+ } & (T extends true ? {
250
+ uniqueWithLocations: UniqueWithLocations;
251
+ } : {
252
+ uniqueWithLocations?: undefined;
253
+ });
254
+ };
255
+ selectors: {
256
+ total: number;
257
+ totalUnique: number;
258
+ uniquenessRatio: number;
259
+ specificity: {
260
+ /** @type Specificity */
261
+ min: number[];
262
+ /** @type Specificity */
263
+ max: number[];
264
+ /** @type Specificity */
265
+ sum: number[];
266
+ /** @type Specificity */
267
+ mean: number[];
268
+ /** @type Specificity */
269
+ mode: number[];
270
+ /** @type Specificity */
271
+ items: Specificity[];
272
+ } & {
273
+ total: number;
274
+ totalUnique: number;
275
+ unique: Record<string, number>;
276
+ uniquenessRatio: number;
277
+ } & (T extends true ? {
278
+ uniqueWithLocations: UniqueWithLocations;
279
+ } : {
280
+ uniqueWithLocations?: undefined;
281
+ });
282
+ complexity: {
283
+ min: number;
284
+ max: number;
285
+ mean: number;
286
+ mode: number;
287
+ range: number;
288
+ sum: number;
289
+ } & {
290
+ total: number;
291
+ totalUnique: number;
292
+ unique: Record<string, number>;
293
+ uniquenessRatio: number;
294
+ } & (T extends true ? {
295
+ uniqueWithLocations: UniqueWithLocations;
296
+ } : {
297
+ uniqueWithLocations?: undefined;
298
+ }) & {
299
+ items: number[];
300
+ };
301
+ nesting: {
302
+ min: number;
303
+ max: number;
304
+ mean: number;
305
+ mode: number;
306
+ range: number;
307
+ sum: number;
308
+ } & {
309
+ items: number[];
310
+ } & {
311
+ total: number;
312
+ totalUnique: number;
313
+ unique: Record<string, number>;
314
+ uniquenessRatio: number;
315
+ } & (T extends true ? {
316
+ uniqueWithLocations: UniqueWithLocations;
317
+ } : {
318
+ uniqueWithLocations?: undefined;
319
+ });
320
+ id: {
321
+ total: number;
322
+ totalUnique: number;
323
+ unique: Record<string, number>;
324
+ uniquenessRatio: number;
325
+ } & (T extends true ? {
326
+ uniqueWithLocations: UniqueWithLocations;
327
+ } : {
328
+ uniqueWithLocations?: undefined;
329
+ }) & {
330
+ ratio: number;
331
+ };
332
+ pseudoClasses: CollectionCount<T>;
333
+ accessibility: {
334
+ total: number;
335
+ totalUnique: number;
336
+ unique: Record<string, number>;
337
+ uniquenessRatio: number;
338
+ } & (T extends true ? {
339
+ uniqueWithLocations: UniqueWithLocations;
340
+ } : {
341
+ uniqueWithLocations?: undefined;
342
+ }) & {
343
+ ratio: number;
344
+ };
345
+ keyframes: CollectionCount<T>;
346
+ prefixed: {
347
+ total: number;
348
+ totalUnique: number;
349
+ unique: Record<string, number>;
350
+ uniquenessRatio: number;
351
+ } & (T extends true ? {
352
+ uniqueWithLocations: UniqueWithLocations;
353
+ } : {
354
+ uniqueWithLocations?: undefined;
355
+ }) & {
356
+ ratio: number;
357
+ };
358
+ combinators: CollectionCount<T>;
359
+ };
360
+ declarations: {
361
+ total: number;
362
+ totalUnique: number;
363
+ uniquenessRatio: number;
364
+ importants: {
365
+ total: number;
366
+ ratio: number;
367
+ inKeyframes: {
368
+ total: number;
369
+ ratio: number;
370
+ };
371
+ };
372
+ complexity: {
373
+ min: number;
374
+ max: number;
375
+ mean: number;
376
+ mode: number;
377
+ range: number;
378
+ sum: number;
379
+ };
380
+ nesting: {
381
+ min: number;
382
+ max: number;
383
+ mean: number;
384
+ mode: number;
385
+ range: number;
386
+ sum: number;
387
+ } & {
388
+ items: number[];
389
+ } & {
390
+ total: number;
391
+ totalUnique: number;
392
+ unique: Record<string, number>;
393
+ uniquenessRatio: number;
394
+ } & (T extends true ? {
395
+ uniqueWithLocations: UniqueWithLocations;
396
+ } : {
397
+ uniqueWithLocations?: undefined;
398
+ });
399
+ };
400
+ properties: {
401
+ total: number;
402
+ totalUnique: number;
403
+ unique: Record<string, number>;
404
+ uniquenessRatio: number;
405
+ } & (T extends true ? {
406
+ uniqueWithLocations: UniqueWithLocations;
407
+ } : {
408
+ uniqueWithLocations?: undefined;
409
+ }) & {
410
+ prefixed: {
411
+ total: number;
412
+ totalUnique: number;
413
+ unique: Record<string, number>;
414
+ uniquenessRatio: number;
415
+ } & (T extends true ? {
416
+ uniqueWithLocations: UniqueWithLocations;
417
+ } : {
418
+ uniqueWithLocations?: undefined;
419
+ }) & {
420
+ ratio: number;
421
+ };
422
+ custom: {
423
+ total: number;
424
+ totalUnique: number;
425
+ unique: Record<string, number>;
426
+ uniquenessRatio: number;
427
+ } & (T extends true ? {
428
+ uniqueWithLocations: UniqueWithLocations;
429
+ } : {
430
+ uniqueWithLocations?: undefined;
431
+ }) & {
432
+ ratio: number;
433
+ importants: {
434
+ total: number;
435
+ totalUnique: number;
436
+ unique: Record<string, number>;
437
+ uniquenessRatio: number;
438
+ } & (T extends true ? {
439
+ uniqueWithLocations: UniqueWithLocations;
440
+ } : {
441
+ uniqueWithLocations?: undefined;
442
+ }) & {
443
+ ratio: number;
444
+ };
445
+ };
446
+ browserhacks: {
447
+ total: number;
448
+ totalUnique: number;
449
+ unique: Record<string, number>;
450
+ uniquenessRatio: number;
451
+ } & (T extends true ? {
452
+ uniqueWithLocations: UniqueWithLocations;
453
+ } : {
454
+ uniqueWithLocations?: undefined;
455
+ }) & {
456
+ ratio: number;
457
+ };
458
+ complexity: {
459
+ min: number;
460
+ max: number;
461
+ mean: number;
462
+ mode: number;
463
+ range: number;
464
+ sum: number;
465
+ };
466
+ };
467
+ values: {
468
+ colors: {
469
+ total: number;
470
+ totalUnique: number;
471
+ unique: Record<string, number>;
472
+ uniquenessRatio: number;
473
+ } & (T extends true ? {
474
+ uniqueWithLocations: UniqueWithLocations;
475
+ } : {
476
+ uniqueWithLocations?: undefined;
477
+ }) & {
478
+ itemsPerContext: {
479
+ [k: string]: CollectionCount<T>;
480
+ };
481
+ } & {
482
+ formats: CollectionCount<T>;
483
+ };
484
+ gradients: CollectionCount<T>;
485
+ fontFamilies: CollectionCount<T>;
486
+ fontSizes: CollectionCount<T>;
487
+ lineHeights: CollectionCount<T>;
488
+ zindexes: CollectionCount<T>;
489
+ textShadows: CollectionCount<T>;
490
+ boxShadows: CollectionCount<T>;
491
+ borderRadiuses: {
492
+ total: number;
493
+ totalUnique: number;
494
+ unique: Record<string, number>;
495
+ uniquenessRatio: number;
496
+ } & (T extends true ? {
497
+ uniqueWithLocations: UniqueWithLocations;
498
+ } : {
499
+ uniqueWithLocations?: undefined;
500
+ }) & {
501
+ itemsPerContext: {
502
+ [k: string]: CollectionCount<T>;
503
+ };
504
+ };
505
+ animations: {
506
+ durations: CollectionCount<T>;
507
+ timingFunctions: CollectionCount<T>;
508
+ };
509
+ prefixes: CollectionCount<T>;
510
+ browserhacks: CollectionCount<T>;
511
+ units: {
512
+ total: number;
513
+ totalUnique: number;
514
+ unique: Record<string, number>;
515
+ uniquenessRatio: number;
516
+ } & (T extends true ? {
517
+ uniqueWithLocations: UniqueWithLocations;
518
+ } : {
519
+ uniqueWithLocations?: undefined;
520
+ }) & {
521
+ itemsPerContext: {
522
+ [k: string]: CollectionCount<T>;
523
+ };
524
+ };
525
+ complexity: {
526
+ min: number;
527
+ max: number;
528
+ mean: number;
529
+ mode: number;
530
+ range: number;
531
+ sum: number;
532
+ };
533
+ keywords: CollectionCount<T>;
534
+ resets: CollectionCount<T>;
535
+ };
536
+ __meta__: {
537
+ parseTime: number;
538
+ analyzeTime: number;
539
+ total: number;
540
+ };
541
+ };
542
+
543
+ export { colorFunctions }
544
+
545
+ export { colorKeywords }
546
+
547
+ /**
548
+ * Compare specificity A to Specificity B
549
+ * @returns 0 when a==b, 1 when a<b, -1 when a>b
550
+ */
551
+ export declare function compareSpecificity(a: Specificity, b: Specificity): number;
552
+
553
+ export { cssKeywords }
554
+
555
+ export { hasVendorPrefix }
556
+
557
+ export { isAccessibilitySelector }
558
+
559
+ export { isMediaBrowserhack }
560
+
561
+ export { isPropertyHack }
562
+
563
+ export { isSelectorPrefixed }
564
+
565
+ export { isSupportsBrowserhack }
566
+
567
+ export { isValuePrefixed }
568
+
569
+ export { KeywordSet }
570
+
571
+ export { namedColors }
572
+
573
+ export declare type Options = {
574
+ /** @description Use Locations (`{ 'item': [{ line, column, offset, length }] }`) instead of a regular count per occurrence (`{ 'item': 3 }`) */
575
+ useLocations?: boolean;
576
+ };
577
+
578
+ export { selectorComplexity }
579
+
580
+ declare type Specificity = [number, number, number];
581
+
582
+ export { systemColors }
583
+
584
+ export { }