@projectwallace/css-analyzer 7.6.1 → 7.6.3

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 { Location as Location_2 } from './collection.js';
14
+ import { namedColors } from './values/colors.js';
15
+ import { getComplexity as selectorComplexity } from './selectors/utils.js';
16
+ import { systemColors } from './values/colors.js';
17
+ import { UniqueWithLocations } from './collection.js';
18
+
19
+ export declare function analyze(css: string, options?: Options & {
20
+ useLocations?: false | undefined;
21
+ }): ReturnType<typeof analyzeInternal<false>>;
22
+
23
+ export declare function analyze(css: string, options: Options & {
24
+ useLocations: true;
25
+ }): ReturnType<typeof analyzeInternal<true>>;
26
+
27
+ declare function analyzeInternal<T extends boolean>(css: string, options: Options, useLocations: T): {
28
+ stylesheet: {
29
+ sourceLinesOfCode: number;
30
+ linesOfCode: number;
31
+ size: number;
32
+ complexity: number;
33
+ comments: {
34
+ total: number;
35
+ size: number;
36
+ };
37
+ embeddedContent: {
38
+ size: {
39
+ total: number;
40
+ ratio: number;
41
+ };
42
+ types: {
43
+ total: number;
44
+ totalUnique: number;
45
+ uniquenessRatio: number;
46
+ unique: {
47
+ [k: string]: {
48
+ size: number;
49
+ count: number;
50
+ uniqueWithLocations?: Location_2[];
51
+ };
52
+ };
53
+ };
54
+ };
55
+ };
56
+ atrules: {
57
+ total: number;
58
+ totalUnique: number;
59
+ unique: Record<string, number>;
60
+ uniquenessRatio: number;
61
+ } & (T extends true ? {
62
+ uniqueWithLocations: UniqueWithLocations;
63
+ } : {
64
+ uniqueWithLocations?: undefined;
65
+ }) & {
66
+ fontface: {
67
+ total: number;
68
+ totalUnique: number;
69
+ unique: Record<string, string>[];
70
+ uniquenessRatio: number;
71
+ } & ({
72
+ uniqueWithLocations: UniqueWithLocations | undefined;
73
+ } | {
74
+ uniqueWithLocations?: undefined;
75
+ });
76
+ import: CollectionCount<T>;
77
+ media: {
78
+ total: number;
79
+ totalUnique: number;
80
+ unique: Record<string, number>;
81
+ uniquenessRatio: number;
82
+ } & (T extends true ? {
83
+ uniqueWithLocations: UniqueWithLocations;
84
+ } : {
85
+ uniqueWithLocations?: undefined;
86
+ }) & {
87
+ browserhacks: CollectionCount<T>;
88
+ features: CollectionCount<T>;
89
+ };
90
+ charset: CollectionCount<T>;
91
+ supports: {
92
+ total: number;
93
+ totalUnique: number;
94
+ unique: Record<string, number>;
95
+ uniquenessRatio: number;
96
+ } & (T extends true ? {
97
+ uniqueWithLocations: UniqueWithLocations;
98
+ } : {
99
+ uniqueWithLocations?: undefined;
100
+ }) & {
101
+ browserhacks: CollectionCount<T>;
102
+ };
103
+ keyframes: {
104
+ total: number;
105
+ totalUnique: number;
106
+ unique: Record<string, number>;
107
+ uniquenessRatio: number;
108
+ } & (T extends true ? {
109
+ uniqueWithLocations: UniqueWithLocations;
110
+ } : {
111
+ uniqueWithLocations?: undefined;
112
+ }) & {
113
+ prefixed: {
114
+ total: number;
115
+ totalUnique: number;
116
+ unique: Record<string, number>;
117
+ uniquenessRatio: number;
118
+ } & (T extends true ? {
119
+ uniqueWithLocations: UniqueWithLocations;
120
+ } : {
121
+ uniqueWithLocations?: undefined;
122
+ }) & {
123
+ ratio: number;
124
+ };
125
+ };
126
+ container: {
127
+ total: number;
128
+ totalUnique: number;
129
+ unique: Record<string, number>;
130
+ uniquenessRatio: number;
131
+ } & (T extends true ? {
132
+ uniqueWithLocations: UniqueWithLocations;
133
+ } : {
134
+ uniqueWithLocations?: undefined;
135
+ }) & {
136
+ names: CollectionCount<T>;
137
+ };
138
+ layer: CollectionCount<T>;
139
+ property: CollectionCount<T>;
140
+ complexity: {
141
+ min: number;
142
+ max: number;
143
+ mean: number;
144
+ mode: number;
145
+ range: number;
146
+ sum: number;
147
+ };
148
+ nesting: {
149
+ min: number;
150
+ max: number;
151
+ mean: number;
152
+ mode: number;
153
+ range: number;
154
+ sum: number;
155
+ } & {
156
+ items: number[];
157
+ } & {
158
+ total: number;
159
+ totalUnique: number;
160
+ unique: Record<string, number>;
161
+ uniquenessRatio: number;
162
+ } & (T extends true ? {
163
+ uniqueWithLocations: UniqueWithLocations;
164
+ } : {
165
+ uniqueWithLocations?: undefined;
166
+ });
167
+ };
168
+ rules: {
169
+ total: number;
170
+ empty: {
171
+ total: number;
172
+ ratio: number;
173
+ };
174
+ sizes: {
175
+ min: number;
176
+ max: number;
177
+ mean: number;
178
+ mode: number;
179
+ range: number;
180
+ sum: number;
181
+ } & {
182
+ items: number[];
183
+ } & {
184
+ total: number;
185
+ totalUnique: number;
186
+ unique: Record<string, number>;
187
+ uniquenessRatio: number;
188
+ } & (T extends true ? {
189
+ uniqueWithLocations: UniqueWithLocations;
190
+ } : {
191
+ uniqueWithLocations?: undefined;
192
+ });
193
+ nesting: {
194
+ min: number;
195
+ max: number;
196
+ mean: number;
197
+ mode: number;
198
+ range: number;
199
+ sum: number;
200
+ } & {
201
+ items: number[];
202
+ } & {
203
+ total: number;
204
+ totalUnique: number;
205
+ unique: Record<string, number>;
206
+ uniquenessRatio: number;
207
+ } & (T extends true ? {
208
+ uniqueWithLocations: UniqueWithLocations;
209
+ } : {
210
+ uniqueWithLocations?: undefined;
211
+ });
212
+ selectors: {
213
+ min: number;
214
+ max: number;
215
+ mean: number;
216
+ mode: number;
217
+ range: number;
218
+ sum: number;
219
+ } & {
220
+ items: number[];
221
+ } & {
222
+ total: number;
223
+ totalUnique: number;
224
+ unique: Record<string, number>;
225
+ uniquenessRatio: number;
226
+ } & (T extends true ? {
227
+ uniqueWithLocations: UniqueWithLocations;
228
+ } : {
229
+ uniqueWithLocations?: undefined;
230
+ });
231
+ declarations: {
232
+ min: number;
233
+ max: number;
234
+ mean: number;
235
+ mode: number;
236
+ range: number;
237
+ sum: number;
238
+ } & {
239
+ items: number[];
240
+ } & {
241
+ total: number;
242
+ totalUnique: number;
243
+ unique: Record<string, number>;
244
+ uniquenessRatio: number;
245
+ } & (T extends true ? {
246
+ uniqueWithLocations: UniqueWithLocations;
247
+ } : {
248
+ uniqueWithLocations?: undefined;
249
+ });
250
+ };
251
+ selectors: {
252
+ total: number;
253
+ totalUnique: number;
254
+ uniquenessRatio: number;
255
+ specificity: {
256
+ /** @type Specificity */
257
+ min: number[];
258
+ /** @type Specificity */
259
+ max: number[];
260
+ /** @type Specificity */
261
+ sum: number[];
262
+ /** @type Specificity */
263
+ mean: number[];
264
+ /** @type Specificity */
265
+ mode: number[];
266
+ /** @type Specificity */
267
+ items: Specificity[];
268
+ } & {
269
+ total: number;
270
+ totalUnique: number;
271
+ unique: Record<string, number>;
272
+ uniquenessRatio: number;
273
+ } & (T extends true ? {
274
+ uniqueWithLocations: UniqueWithLocations;
275
+ } : {
276
+ uniqueWithLocations?: undefined;
277
+ });
278
+ complexity: {
279
+ min: number;
280
+ max: number;
281
+ mean: number;
282
+ mode: number;
283
+ range: number;
284
+ sum: number;
285
+ } & {
286
+ total: number;
287
+ totalUnique: number;
288
+ unique: Record<string, number>;
289
+ uniquenessRatio: number;
290
+ } & (T extends true ? {
291
+ uniqueWithLocations: UniqueWithLocations;
292
+ } : {
293
+ uniqueWithLocations?: undefined;
294
+ }) & {
295
+ items: number[];
296
+ };
297
+ nesting: {
298
+ min: number;
299
+ max: number;
300
+ mean: number;
301
+ mode: number;
302
+ range: number;
303
+ sum: number;
304
+ } & {
305
+ items: number[];
306
+ } & {
307
+ total: number;
308
+ totalUnique: number;
309
+ unique: Record<string, number>;
310
+ uniquenessRatio: number;
311
+ } & (T extends true ? {
312
+ uniqueWithLocations: UniqueWithLocations;
313
+ } : {
314
+ uniqueWithLocations?: undefined;
315
+ });
316
+ id: {
317
+ total: number;
318
+ totalUnique: number;
319
+ unique: Record<string, number>;
320
+ uniquenessRatio: number;
321
+ } & (T extends true ? {
322
+ uniqueWithLocations: UniqueWithLocations;
323
+ } : {
324
+ uniqueWithLocations?: undefined;
325
+ }) & {
326
+ ratio: number;
327
+ };
328
+ pseudoClasses: CollectionCount<T>;
329
+ accessibility: {
330
+ total: number;
331
+ totalUnique: number;
332
+ unique: Record<string, number>;
333
+ uniquenessRatio: number;
334
+ } & (T extends true ? {
335
+ uniqueWithLocations: UniqueWithLocations;
336
+ } : {
337
+ uniqueWithLocations?: undefined;
338
+ }) & {
339
+ ratio: number;
340
+ };
341
+ keyframes: CollectionCount<T>;
342
+ prefixed: {
343
+ total: number;
344
+ totalUnique: number;
345
+ unique: Record<string, number>;
346
+ uniquenessRatio: number;
347
+ } & (T extends true ? {
348
+ uniqueWithLocations: UniqueWithLocations;
349
+ } : {
350
+ uniqueWithLocations?: undefined;
351
+ }) & {
352
+ ratio: number;
353
+ };
354
+ combinators: CollectionCount<T>;
355
+ };
356
+ declarations: {
357
+ total: number;
358
+ totalUnique: number;
359
+ uniquenessRatio: number;
360
+ importants: {
361
+ total: number;
362
+ ratio: number;
363
+ inKeyframes: {
364
+ total: number;
365
+ ratio: number;
366
+ };
367
+ };
368
+ complexity: {
369
+ min: number;
370
+ max: number;
371
+ mean: number;
372
+ mode: number;
373
+ range: number;
374
+ sum: number;
375
+ };
376
+ nesting: {
377
+ min: number;
378
+ max: number;
379
+ mean: number;
380
+ mode: number;
381
+ range: number;
382
+ sum: number;
383
+ } & {
384
+ items: number[];
385
+ } & {
386
+ total: number;
387
+ totalUnique: number;
388
+ unique: Record<string, number>;
389
+ uniquenessRatio: number;
390
+ } & (T extends true ? {
391
+ uniqueWithLocations: UniqueWithLocations;
392
+ } : {
393
+ uniqueWithLocations?: undefined;
394
+ });
395
+ };
396
+ properties: {
397
+ total: number;
398
+ totalUnique: number;
399
+ unique: Record<string, number>;
400
+ uniquenessRatio: number;
401
+ } & (T extends true ? {
402
+ uniqueWithLocations: UniqueWithLocations;
403
+ } : {
404
+ uniqueWithLocations?: undefined;
405
+ }) & {
406
+ prefixed: {
407
+ total: number;
408
+ totalUnique: number;
409
+ unique: Record<string, number>;
410
+ uniquenessRatio: number;
411
+ } & (T extends true ? {
412
+ uniqueWithLocations: UniqueWithLocations;
413
+ } : {
414
+ uniqueWithLocations?: undefined;
415
+ }) & {
416
+ ratio: number;
417
+ };
418
+ custom: {
419
+ total: number;
420
+ totalUnique: number;
421
+ unique: Record<string, number>;
422
+ uniquenessRatio: number;
423
+ } & (T extends true ? {
424
+ uniqueWithLocations: UniqueWithLocations;
425
+ } : {
426
+ uniqueWithLocations?: undefined;
427
+ }) & {
428
+ ratio: number;
429
+ importants: {
430
+ total: number;
431
+ totalUnique: number;
432
+ unique: Record<string, number>;
433
+ uniquenessRatio: number;
434
+ } & (T extends true ? {
435
+ uniqueWithLocations: UniqueWithLocations;
436
+ } : {
437
+ uniqueWithLocations?: undefined;
438
+ }) & {
439
+ ratio: number;
440
+ };
441
+ };
442
+ browserhacks: {
443
+ total: number;
444
+ totalUnique: number;
445
+ unique: Record<string, number>;
446
+ uniquenessRatio: number;
447
+ } & (T extends true ? {
448
+ uniqueWithLocations: UniqueWithLocations;
449
+ } : {
450
+ uniqueWithLocations?: undefined;
451
+ }) & {
452
+ ratio: number;
453
+ };
454
+ complexity: {
455
+ min: number;
456
+ max: number;
457
+ mean: number;
458
+ mode: number;
459
+ range: number;
460
+ sum: number;
461
+ };
462
+ };
463
+ values: {
464
+ colors: {
465
+ total: number;
466
+ totalUnique: number;
467
+ unique: Record<string, number>;
468
+ uniquenessRatio: number;
469
+ } & (T extends true ? {
470
+ uniqueWithLocations: UniqueWithLocations;
471
+ } : {
472
+ uniqueWithLocations?: undefined;
473
+ }) & {
474
+ itemsPerContext: {
475
+ [k: string]: CollectionCount<T>;
476
+ };
477
+ } & {
478
+ formats: CollectionCount<T>;
479
+ };
480
+ gradients: CollectionCount<T>;
481
+ fontFamilies: CollectionCount<T>;
482
+ fontSizes: CollectionCount<T>;
483
+ lineHeights: CollectionCount<T>;
484
+ zindexes: CollectionCount<T>;
485
+ textShadows: CollectionCount<T>;
486
+ boxShadows: CollectionCount<T>;
487
+ borderRadiuses: {
488
+ total: number;
489
+ totalUnique: number;
490
+ unique: Record<string, number>;
491
+ uniquenessRatio: number;
492
+ } & (T extends true ? {
493
+ uniqueWithLocations: UniqueWithLocations;
494
+ } : {
495
+ uniqueWithLocations?: undefined;
496
+ }) & {
497
+ itemsPerContext: {
498
+ [k: string]: CollectionCount<T>;
499
+ };
500
+ };
501
+ animations: {
502
+ durations: CollectionCount<T>;
503
+ timingFunctions: CollectionCount<T>;
504
+ };
505
+ prefixes: CollectionCount<T>;
506
+ browserhacks: CollectionCount<T>;
507
+ units: {
508
+ total: number;
509
+ totalUnique: number;
510
+ unique: Record<string, number>;
511
+ uniquenessRatio: number;
512
+ } & (T extends true ? {
513
+ uniqueWithLocations: UniqueWithLocations;
514
+ } : {
515
+ uniqueWithLocations?: undefined;
516
+ }) & {
517
+ itemsPerContext: {
518
+ [k: string]: CollectionCount<T>;
519
+ };
520
+ };
521
+ complexity: {
522
+ min: number;
523
+ max: number;
524
+ mean: number;
525
+ mode: number;
526
+ range: number;
527
+ sum: number;
528
+ };
529
+ keywords: CollectionCount<T>;
530
+ resets: CollectionCount<T>;
531
+ };
532
+ __meta__: {
533
+ parseTime: number;
534
+ analyzeTime: number;
535
+ total: number;
536
+ };
537
+ };
538
+
539
+ export { colorFunctions }
540
+
541
+ export { colorKeywords }
542
+
543
+ /**
544
+ * Compare specificity A to Specificity B
545
+ * @returns 0 when a==b, 1 when a<b, -1 when a>b
546
+ */
547
+ export declare function compareSpecificity(a: Specificity, b: Specificity): number;
548
+
549
+ export { cssKeywords }
550
+
551
+ export { hasVendorPrefix }
552
+
553
+ export { isAccessibilitySelector }
554
+
555
+ export { isMediaBrowserhack }
556
+
557
+ export { isPropertyHack }
558
+
559
+ export { isSelectorPrefixed }
560
+
561
+ export { isSupportsBrowserhack }
562
+
563
+ export { isValuePrefixed }
564
+
565
+ export { KeywordSet }
566
+
567
+ export { Location_2 as Location }
568
+
569
+ export { namedColors }
570
+
571
+ export declare type Options = {
572
+ /** @description Use Locations (`{ 'item': [{ line, column, offset, length }] }`) instead of a regular count per occurrence (`{ 'item': 3 }`) */
573
+ useLocations?: boolean;
574
+ };
575
+
576
+ export { selectorComplexity }
577
+
578
+ export declare type Specificity = [number, number, number];
579
+
580
+ export { systemColors }
581
+
582
+ export { UniqueWithLocations }
583
+
584
+ export { }