@projectwallace/css-analyzer 7.5.1 → 7.6.1

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