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