@projectwallace/css-analyzer 7.0.1 → 7.0.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.
Files changed (2) hide show
  1. package/dist/css-analyzer.js +327 -319
  2. package/package.json +4 -6
@@ -1,65 +1,64 @@
1
1
  import Dt from "css-tree/parser";
2
- import P from "css-tree/walker";
2
+ import q from "css-tree/walker";
3
3
  import { calculateForAST as Ft } from "@bramus/specificity/core";
4
- function Re(i, t) {
4
+ function Ee(i, t) {
5
5
  return t >= 65 && t <= 90 && (t = t | 32), i === t;
6
6
  }
7
- function _(i, t) {
7
+ function z(i, t) {
8
8
  if (i === t) return !0;
9
9
  let r = i.length;
10
10
  if (r !== t.length) return !1;
11
11
  for (let e = 0; e < r; e++)
12
- if (Re(i.charCodeAt(e), t.charCodeAt(e)) === !1)
12
+ if (Ee(i.charCodeAt(e), t.charCodeAt(e)) === !1)
13
13
  return !1;
14
14
  return !0;
15
15
  }
16
- function O(i, t) {
16
+ function L(i, t) {
17
17
  if (i === t) return !0;
18
18
  let r = t.length, e = r - i.length;
19
19
  if (e < 0)
20
20
  return !1;
21
- for (let n = r - 1; n >= e; n--)
22
- if (Re(i.charCodeAt(n - e), t.charCodeAt(n)) === !1)
21
+ for (let l = r - 1; l >= e; l--)
22
+ if (Ee(i.charCodeAt(l - e), t.charCodeAt(l)) === !1)
23
23
  return !1;
24
24
  return !0;
25
25
  }
26
- function Ee(i, t) {
26
+ function De(i, t) {
27
27
  if (i === t) return !0;
28
28
  let r = i.length;
29
29
  if (t.length < r) return !1;
30
30
  for (let e = 0; e < r; e++)
31
- if (Re(i.charCodeAt(e), t.charCodeAt(e)) === !1)
31
+ if (Ee(i.charCodeAt(e), t.charCodeAt(e)) === !1)
32
32
  return !1;
33
33
  return !0;
34
34
  }
35
- const Mt = "Atrule", Ut = "MediaQuery", Tt = "MediaFeature", It = "Rule", De = "Selector", zt = "TypeSelector", Y = "PseudoClassSelector", St = "AttributeSelector", vt = "PseudoElementSelector", Oe = "Declaration", Ht = "Value", L = "Identifier", Vt = "Nth", Wt = "Combinator", Kt = "Number", qt = "Dimension", V = "Operator", jt = "Hash", Bt = "Url", Fe = "Function";
36
- function kt(i, t, r) {
35
+ const Tt = "Atrule", Mt = "MediaQuery", Ut = "Rule", Fe = "Selector", _t = "TypeSelector", Y = "PseudoClassSelector", St = "AttributeSelector", vt = "PseudoElementSelector", Re = "Declaration", It = "Value", O = "Identifier", Ht = "Nth", Vt = "Combinator", Wt = "Number", qt = "Dimension", V = "Operator", Kt = "Hash", jt = "Url", Te = "Function";
36
+ function bt(i, t, r) {
37
37
  let e = i.value.children.first;
38
- return _(t, i.property) && e.type === L && _(r, e.name);
38
+ return z(t, i.property) && e.type === O && z(r, e.name);
39
39
  }
40
- function Yt(i) {
40
+ function Bt(i) {
41
41
  let t = !1;
42
- return P(i, function(r) {
43
- if (r.type === Oe && (kt(r, "-webkit-appearance", "none") || kt(r, "-moz-appearance", "meterbar")))
42
+ return q(i, function(r) {
43
+ if (r.type === Re && (bt(r, "-webkit-appearance", "none") || bt(r, "-moz-appearance", "meterbar")))
44
44
  return t = !0, this.break;
45
45
  }), t;
46
46
  }
47
- function Gt(i) {
47
+ function Yt(i) {
48
48
  let t = !1;
49
- return P(i, function(r) {
50
- let e = r.children, n = r.name, l = r.value;
51
- if (r.type === Ut && e.size === 1 && e.first.type === L) {
52
- let m = e.first.name;
53
- if (Ee("\\0", m) || O("\\9 ", m))
49
+ return q(i, function(r) {
50
+ let e = r.name, l = r.value;
51
+ if (r.type === Mt && r.mediaType !== null) {
52
+ if (De("\\0", r.mediaType) || L("\\9 ", r.mediaType))
54
53
  return t = !0, this.break;
55
- } else if (r.type === Tt) {
54
+ } else if (r.type === "Feature" && r.kind === "media") {
56
55
  if (l && l.unit && l.unit === "\\0")
57
56
  return t = !0, this.break;
58
- if (_("-moz-images-in-menus", n) || _("min--moz-device-pixel-ratio", n) || _("-ms-high-contrast", n))
57
+ if (z("-moz-images-in-menus", e) || z("min--moz-device-pixel-ratio", e) || z("-ms-high-contrast", e))
59
58
  return t = !0, this.break;
60
- if (_("min-resolution", n) && l && _(".001", l.value) && _("dpcm", l.unit))
59
+ if (z("min-resolution", e) && l && z(".001", l.value) && z("dpcm", l.unit))
61
60
  return t = !0, this.break;
62
- if (_("-webkit-min-device-pixel-ratio", n) && l && l.value && (_("0", l.value) || _("10000", l.value)))
61
+ if (z("-webkit-min-device-pixel-ratio", e) && l && l.value && (z("0", l.value) || z("10000", l.value)))
63
62
  return t = !0, this.break;
64
63
  }
65
64
  }), t;
@@ -68,7 +67,7 @@ const xt = 45;
68
67
  function D(i) {
69
68
  return i.charCodeAt(0) === xt && i.charCodeAt(1) !== xt && i.indexOf("-", 2) !== -1;
70
69
  }
71
- class q {
70
+ class A {
72
71
  /** @param {string[]} items */
73
72
  constructor(t) {
74
73
  this.set = new Set(t);
@@ -80,14 +79,14 @@ class q {
80
79
  }
81
80
  function At(i, t) {
82
81
  let r = [];
83
- return P(i, {
84
- visit: De,
82
+ return q(i, {
83
+ visit: Fe,
85
84
  enter: function(e) {
86
85
  r.push(t(e));
87
86
  }
88
87
  }), r;
89
88
  }
90
- const Pt = new q([
89
+ const Pt = new A([
91
90
  "nth-child",
92
91
  "where",
93
92
  "not",
@@ -100,15 +99,15 @@ const Pt = new q([
100
99
  ]);
101
100
  function Lt(i) {
102
101
  let t = !1;
103
- return P(i, function(r) {
102
+ return q(i, function(r) {
104
103
  if (r.type === St) {
105
104
  let e = r.name.name;
106
- if (_("role", e) || Ee("aria-", e))
105
+ if (z("role", e) || De("aria-", e))
107
106
  return t = !0, this.break;
108
107
  } else if (r.type === Y && Pt.has(r.name)) {
109
108
  let e = At(r, Lt);
110
- for (let n of e)
111
- if (n === !0) {
109
+ for (let l of e)
110
+ if (l === !0) {
112
111
  t = !0;
113
112
  break;
114
113
  }
@@ -116,49 +115,49 @@ function Lt(i) {
116
115
  }
117
116
  }), t;
118
117
  }
119
- function Qt(i) {
118
+ function Gt(i) {
120
119
  let t = !1;
121
- return P(i, function(r) {
120
+ return q(i, function(r) {
122
121
  let e = r.type;
123
- if ((e === vt || e === zt || e === Y) && D(r.name))
122
+ if ((e === vt || e === _t || e === Y) && D(r.name))
124
123
  return t = !0, this.break;
125
124
  }), t;
126
125
  }
127
- function Zt(i) {
126
+ function Qt(i) {
128
127
  let t = [];
129
- return P(i, function(r) {
128
+ return q(i, function(r) {
130
129
  r.type === Y && t.push(r.name);
131
130
  }), t.length === 0 ? !1 : t;
132
131
  }
133
132
  function Ot(i) {
134
133
  let t = 0;
135
- return P(i, function(r) {
134
+ return q(i, function(r) {
136
135
  let e = r.type;
137
- if (!(e === De || e === Vt)) {
138
- if (t++, (e === vt || e === zt || e === Y) && D(r.name) && t++, e === St)
136
+ if (!(e === Fe || e === Ht)) {
137
+ if (t++, (e === vt || e === _t || e === Y) && D(r.name) && t++, e === St)
139
138
  return r.value && t++, this.skip;
140
139
  if (e === Y && Pt.has(r.name)) {
141
- let n = At(r, Ot);
142
- if (n.length === 0) return;
143
- for (let l of n)
144
- t += l;
140
+ let l = At(r, Ot);
141
+ if (l.length === 0) return;
142
+ for (let n of l)
143
+ t += n;
145
144
  return this.skip;
146
145
  }
147
146
  }
148
147
  }), t;
149
148
  }
150
- function Jt(i, t) {
151
- P(i, function(r, e) {
152
- if (r.type === Wt) {
153
- let n = r.loc, l = r.name;
154
- if (n === null) {
155
- let m = e.prev.data.loc.end, w = {
156
- offset: m.offset,
157
- line: m.line,
158
- column: m.column
149
+ function Zt(i, t) {
150
+ q(i, function(r, e) {
151
+ if (r.type === Vt) {
152
+ let l = r.loc, n = r.name;
153
+ if (l === null) {
154
+ let g = e.prev.data.loc.end, w = {
155
+ offset: g.offset,
156
+ line: g.line,
157
+ column: g.column
159
158
  };
160
159
  t({
161
- name: l,
160
+ name: n,
162
161
  loc: {
163
162
  start: w,
164
163
  end: {
@@ -170,13 +169,13 @@ function Jt(i, t) {
170
169
  });
171
170
  } else
172
171
  t({
173
- name: l,
174
- loc: n
172
+ name: n,
173
+ loc: l
175
174
  });
176
175
  }
177
176
  });
178
177
  }
179
- const Xt = new q([
178
+ const Jt = new A([
180
179
  // CSS Named Colors
181
180
  // Spec: https://drafts.csswg.org/css-color/#named-colors
182
181
  // Heuristic: popular names first for quick finding in set.has()
@@ -329,7 +328,7 @@ const Xt = new q([
329
328
  "mediumorchid",
330
329
  "darksalmon",
331
330
  "mediumspringgreen"
332
- ]), $t = new q([
331
+ ]), Xt = new A([
333
332
  // CSS System Colors
334
333
  // Spec: https://drafts.csswg.org/css-color/#css-system-colors
335
334
  "accentcolor",
@@ -351,7 +350,7 @@ const Xt = new q([
351
350
  "selecteditem",
352
351
  "selecteditemtext",
353
352
  "visitedtext"
354
- ]), Nt = new q([
353
+ ]), $t = new A([
355
354
  "rgba",
356
355
  "rgb",
357
356
  "hsla",
@@ -362,10 +361,10 @@ const Xt = new q([
362
361
  "lch",
363
362
  "lab",
364
363
  "oklab"
365
- ]), ei = new q([
364
+ ]), Nt = new A([
366
365
  "transparent",
367
366
  "currentcolor"
368
- ]), N = new q([
367
+ ]), N = new A([
369
368
  "auto",
370
369
  "none",
371
370
  // for `text-shadow`, `box-shadow` and `background`
@@ -379,16 +378,16 @@ function $(i) {
379
378
  let t = i.children, r = t.size;
380
379
  if (!t || r > 1 || r === 0) return !1;
381
380
  let e = t.first;
382
- return e.type === L && N.has(e.name);
381
+ return e.type === O && N.has(e.name);
383
382
  }
384
- const ti = new q([
383
+ const ei = new A([
385
384
  "caption",
386
385
  "icon",
387
386
  "menu",
388
387
  "message-box",
389
388
  "small-caption",
390
389
  "status-bar"
391
- ]), ii = new q([
390
+ ]), ti = new A([
392
391
  /* <absolute-size> values */
393
392
  "xx-small",
394
393
  "x-small",
@@ -401,46 +400,46 @@ const ti = new q([
401
400
  /* <relative-size> values */
402
401
  "smaller",
403
402
  "larger"
404
- ]), ri = 44, Ct = 47;
405
- function Pe(i) {
403
+ ]), ii = 44, Ct = 47;
404
+ function Le(i) {
406
405
  let t = i.children.first;
407
- return t === null ? !1 : t.type === L && ti.has(t.name);
406
+ return t === null ? !1 : t.type === O && ei.has(t.name);
408
407
  }
409
- function si(i, t, r) {
408
+ function ri(i, t, r) {
410
409
  var w;
411
- let e = Array.from({ length: 2 }), n, l;
412
- i.children.forEach(function(g, z) {
413
- let y = z.prev ? z.prev.data : void 0, A = z.next ? z.next.data : void 0;
414
- if (g.type === L && N.has(g.name) && r({
410
+ let e = Array.from({ length: 2 }), l, n;
411
+ i.children.forEach(function(d, _) {
412
+ let y = _.prev ? _.prev.data : void 0, P = _.next ? _.next.data : void 0;
413
+ if (d.type === O && N.has(d.name) && r({
415
414
  type: "keyword",
416
- value: g.name
417
- }), A && A.type === V && A.value.charCodeAt(0) === Ct) {
418
- n = t(g);
415
+ value: d.name
416
+ }), P && P.type === V && P.value.charCodeAt(0) === Ct) {
417
+ l = t(d);
419
418
  return;
420
419
  }
421
420
  if (y && y.type === V && y.value.charCodeAt(0) === Ct) {
422
- l = t(g);
421
+ n = t(d);
423
422
  return;
424
423
  }
425
- if (A && A.type === V && A.value.charCodeAt(0) === ri && !e[0]) {
426
- e[0] = g, !n && y && (n = t(y));
424
+ if (P && P.type === V && P.value.charCodeAt(0) === ii && !e[0]) {
425
+ e[0] = d, !l && y && (l = t(y));
427
426
  return;
428
427
  }
429
- if (g.type !== Kt) {
430
- if (z.next === null) {
431
- e[1] = g, !n && !e[0] && y && (n = t(y));
428
+ if (d.type !== Wt) {
429
+ if (_.next === null) {
430
+ e[1] = d, !l && !e[0] && y && (l = t(y));
432
431
  return;
433
432
  }
434
- if (g.type === L) {
435
- let R = g.name;
436
- if (ii.has(R)) {
437
- n = R;
433
+ if (d.type === O) {
434
+ let R = d.name;
435
+ if (ti.has(R)) {
436
+ l = R;
438
437
  return;
439
438
  }
440
439
  }
441
440
  }
442
441
  });
443
- let m = e[0] || e[1] ? t({
442
+ let g = e[0] || e[1] ? t({
444
443
  loc: {
445
444
  start: {
446
445
  offset: (e[0] || e[1]).loc.start.offset
@@ -453,12 +452,12 @@ function si(i, t, r) {
453
452
  }
454
453
  }) : null;
455
454
  return {
456
- font_size: n,
457
- line_height: l,
458
- font_family: m
455
+ font_size: l,
456
+ line_height: n,
457
+ font_family: g
459
458
  };
460
459
  }
461
- const li = new q([
460
+ const si = new A([
462
461
  "linear",
463
462
  "ease",
464
463
  "ease-in",
@@ -466,24 +465,24 @@ const li = new q([
466
465
  "ease-in-out",
467
466
  "step-start",
468
467
  "step-end"
469
- ]), ni = new q([
468
+ ]), li = new A([
470
469
  "cubic-bezier",
471
470
  "steps"
472
471
  ]);
473
- function ai(i, t) {
472
+ function ni(i, t) {
474
473
  let r = !1;
475
474
  for (let e of i) {
476
- let n = e.type, l = e.name;
477
- n === V ? r = !1 : n === qt && r === !1 ? (r = !0, t({
475
+ let l = e.type, n = e.name;
476
+ l === V ? r = !1 : l === qt && r === !1 ? (r = !0, t({
478
477
  type: "duration",
479
478
  value: e
480
- })) : n === L ? li.has(l) ? t({
479
+ })) : l === O ? si.has(n) ? t({
481
480
  type: "fn",
482
481
  value: e
483
- }) : N.has(l) && t({
482
+ }) : N.has(n) && t({
484
483
  type: "keyword",
485
484
  value: e
486
- }) : n === Fe && ni.has(l) && t({
485
+ }) : l === Te && li.has(n) && t({
487
486
  type: "fn",
488
487
  value: e
489
488
  });
@@ -494,13 +493,13 @@ function Rt(i) {
494
493
  if (!t)
495
494
  return !1;
496
495
  for (let r of t) {
497
- let { type: e, name: n } = r;
498
- if (e === L && D(n) || e === Fe && (D(n) || Rt(r)))
496
+ let { type: e, name: l } = r;
497
+ if (e === O && D(l) || e === Te && (D(l) || Rt(r)))
499
498
  return !0;
500
499
  }
501
500
  return !1;
502
501
  }
503
- class o {
502
+ class u {
504
503
  /** @param {boolean} useLocations */
505
504
  constructor(t = !1) {
506
505
  this._items = /* @__PURE__ */ new Map(), this._total = 0, t && (this._nodes = []), this._useLocations = t;
@@ -512,8 +511,8 @@ class o {
512
511
  p(t, r) {
513
512
  let e = this._total;
514
513
  if (this._useLocations) {
515
- let n = r.start, l = n.offset, m = e * 4;
516
- this._nodes[m] = n.line, this._nodes[m + 1] = n.column, this._nodes[m + 2] = l, this._nodes[m + 3] = r.end.offset - l;
514
+ let l = r.start, n = l.offset, g = e * 4;
515
+ this._nodes[g] = l.line, this._nodes[g + 1] = l.column, this._nodes[g + 2] = n, this._nodes[g + 3] = r.end.offset - n;
517
516
  }
518
517
  if (this._items.has(t)) {
519
518
  this._items.get(t).push(e), this._total++;
@@ -543,35 +542,35 @@ class o {
543
542
  * })}
544
543
  */
545
544
  c() {
546
- let t = /* @__PURE__ */ new Map(), r = {}, e = this._useLocations, n = this._items, l = this._nodes, m = n.size;
547
- n.forEach((z, y) => {
545
+ let t = /* @__PURE__ */ new Map(), r = {}, e = this._useLocations, l = this._items, n = this._nodes, g = l.size;
546
+ l.forEach((_, y) => {
548
547
  if (e) {
549
- let A = z.map(function(R) {
548
+ let P = _.map(function(R) {
550
549
  let F = R * 4;
551
550
  return {
552
- line: l[F],
553
- column: l[F + 1],
554
- offset: l[F + 2],
555
- length: l[F + 3]
551
+ line: n[F],
552
+ column: n[F + 1],
553
+ offset: n[F + 2],
554
+ length: n[F + 3]
556
555
  };
557
556
  });
558
- t.set(y, A);
557
+ t.set(y, P);
559
558
  } else
560
- r[y] = z.length;
559
+ r[y] = _.length;
561
560
  });
562
- let w = this._total, g = {
561
+ let w = this._total, d = {
563
562
  total: w,
564
- totalUnique: m,
563
+ totalUnique: g,
565
564
  unique: r,
566
- uniquenessRatio: w === 0 ? 0 : m / w
565
+ uniquenessRatio: w === 0 ? 0 : g / w
567
566
  };
568
- return e && (g.uniqueWithLocations = Object.fromEntries(t)), g;
567
+ return e && (d.uniqueWithLocations = Object.fromEntries(t)), d;
569
568
  }
570
569
  }
571
- class Le {
570
+ class Oe {
572
571
  /** @param {boolean} useLocations */
573
572
  constructor(t) {
574
- this._list = new o(t), this._contexts = /* @__PURE__ */ new Map(), this._useLocations = t;
573
+ this._list = new u(t), this._contexts = /* @__PURE__ */ new Map(), this._useLocations = t;
575
574
  }
576
575
  /**
577
576
  * Add an item to this _list's context
@@ -580,7 +579,7 @@ class Le {
580
579
  * @param {import('css-tree').CssLocation} node_location
581
580
  */
582
581
  push(t, r, e) {
583
- this._list.p(t, e), this._contexts.has(r) || this._contexts.set(r, new o(this._useLocations)), this._contexts.get(r).p(t, e);
582
+ this._list.p(t, e), this._contexts.has(r) || this._contexts.set(r, new u(this._useLocations)), this._contexts.get(r).p(t, e);
584
583
  }
585
584
  count() {
586
585
  let t = /* @__PURE__ */ new Map();
@@ -591,13 +590,13 @@ class Le {
591
590
  });
592
591
  }
593
592
  }
594
- function oi(i) {
595
- let t = /* @__PURE__ */ new Map(), r = -1, e = 0, n = 0, l = i.length;
596
- for (let m = 0; m < l; m++) {
597
- let w = i[m], g = (t.get(w) || 0) + 1;
598
- t.set(w, g), g > r && (r = g, e = 0, n = 0), g >= r && (e++, n += w);
593
+ function ai(i) {
594
+ let t = /* @__PURE__ */ new Map(), r = -1, e = 0, l = 0, n = i.length;
595
+ for (let g = 0; g < n; g++) {
596
+ let w = i[g], d = (t.get(w) || 0) + 1;
597
+ t.set(w, d), d > r && (r = d, e = 0, l = 0), d >= r && (e++, l += w);
599
598
  }
600
- return n / e;
599
+ return l / e;
601
600
  }
602
601
  class v {
603
602
  constructor() {
@@ -624,14 +623,14 @@ class v {
624
623
  range: 0,
625
624
  sum: 0
626
625
  };
627
- let r = this._items.slice().sort((w, g) => w - g), e = r[0], n = r[t - 1], l = oi(r), m = this._sum;
626
+ let r = this._items.slice().sort((w, d) => w - d), e = r[0], l = r[t - 1], n = ai(r), g = this._sum;
628
627
  return {
629
628
  min: e,
630
- max: n,
631
- mean: m / t,
632
- mode: l,
633
- range: n - e,
634
- sum: m
629
+ max: l,
630
+ mean: g / t,
631
+ mode: n,
632
+ range: l - e,
633
+ sum: g
635
634
  };
636
635
  }
637
636
  /**
@@ -641,7 +640,7 @@ class v {
641
640
  return this._items;
642
641
  }
643
642
  }
644
- function ui(i) {
643
+ function oi(i) {
645
644
  if (Me(i) || D(i)) return !1;
646
645
  let t = i.charCodeAt(0);
647
646
  return t === 47 || t === 42 || t === 95 || t === 43 || t === 38 || t === 36 || t === 35;
@@ -650,24 +649,24 @@ function Me(i) {
650
649
  return i.length < 3 ? !1 : i.charCodeAt(0) === 45 && i.charCodeAt(1) === 45;
651
650
  }
652
651
  function C(i, t) {
653
- return Me(t) ? !1 : O(i, t);
652
+ return Me(t) ? !1 : L(i, t);
654
653
  }
655
- function ci(i) {
654
+ function ui(i) {
656
655
  return D(i) ? i.slice(i.indexOf("-", 2) + 1) : i;
657
656
  }
658
- function fi(i) {
657
+ function ci(i) {
659
658
  let t = 5, r = i.indexOf(";"), e = i.indexOf(",");
660
659
  return r === -1 || e !== -1 && e < r ? i.substring(t, e) : i.substring(t, r);
661
660
  }
662
- function pi(i) {
661
+ function fi(i) {
663
662
  let t = i.children;
664
663
  if (t) {
665
664
  let r = t.last;
666
- return r && r.type === L && O("\\9", r.name);
665
+ return r && r.type === O && L("\\9", r.name);
667
666
  }
668
667
  return !1;
669
668
  }
670
- let hi = new q([
669
+ let pi = new A([
671
670
  "border-radius",
672
671
  "border-top-left-radius",
673
672
  "border-top-right-radius",
@@ -681,78 +680,87 @@ let hi = new q([
681
680
  function x(i, t) {
682
681
  return t === 0 ? 0 : i / t;
683
682
  }
684
- let mi = {
683
+ let hi = {
685
684
  useLocations: !1
686
685
  };
687
- function wi(i, t = {}) {
688
- let e = Object.assign({}, mi, t).useLocations === !0, n = Date.now();
689
- function l(s) {
690
- return m(s).trim();
686
+ function yi(i, t = {}) {
687
+ let e = Object.assign({}, hi, t).useLocations === !0, l = Date.now();
688
+ function n(s) {
689
+ return g(s).trim();
691
690
  }
692
- function m(s) {
691
+ function g(s) {
693
692
  let f = s.loc;
694
693
  return i.substring(f.start.offset, f.end.offset);
695
694
  }
696
- let w = 0, g = 0, z = 0, y = {
695
+ let w = 0, d = 0, _ = 0, y = {
697
696
  total: 0,
698
697
  /** @type {Map<string, { size: number, count: number } & ({ uniqueWithLocations?: undefined } | ({ uniqueWithLocations: { offset: number, line: number, column: number, length: number }[] })) }>} */
699
698
  unique: /* @__PURE__ */ new Map()
700
- }, A = Date.now(), R = Dt(i, {
699
+ }, P = Date.now(), R = Dt(i, {
701
700
  parseCustomProperty: !0,
702
701
  // To find font-families, colors, etc.
703
702
  positions: !0,
704
703
  // So we can use stringifyNode()
705
704
  /** @param {string} comment */
706
705
  onComment: function(s) {
707
- w++, g += s.length;
706
+ w++, d += s.length;
708
707
  }
709
- }), F = Date.now(), Et = R.loc.end.line - R.loc.start.line + 1, ee = 0, te = new v(), ie = [], Ue = new o(e), re = new o(e), Te = new o(e), Ie = new o(e), He = new o(e), Ve = new o(e), We = new o(e), Ke = new o(e), se = new o(e), le = new o(e), je = new o(e), Be = new o(e), ne = 0, ae = 0, oe = new v(), ue = new v(), ce = new v(), Ye = new o(e), Ge = new o(e), Qe = new o(e), fe = new o(e), Ze = /* @__PURE__ */ new Set(), pe = new o(e), M, U, Je = new v(), Xe = new v(), $e = new v(), Ne = new o(e), G = new v(), et = new o(e), tt = [], he = new o(e), me = new o(e), it = new o(e), rt = new o(e), st = /* @__PURE__ */ new Set(), W = 0, lt = new v(), Q = 0, de = 0, ge = new o(e), K = new o(e), ye = new o(e), we = new o(e), Z = new o(e), j = new v(), be = new v(), nt = new o(e), ke = new o(e), at = new o(e), ot = new o(e), ut = new o(e), xe = new o(e), Ce = new o(e), _e = new o(e), J = new o(e), X = new o(e), T = new Le(e), I = new o(e), ze = new Le(e), ct = new o(e), B = new o(e), ft = new Le(e);
710
- P(R, function(s) {
708
+ }), F = Date.now(), Et = R.loc.end.line - R.loc.start.line + 1, ee = 0, te = new v(), ie = [], Ue = new u(e), re = new u(e), Ie = new u(e), He = new u(e), Ve = new u(e), We = new u(e), se = new u(e), Ke = new u(e), le = new u(e), ne = new u(e), je = new u(e), Be = new u(e), ae = 0, oe = 0, ue = new v(), ce = new v(), fe = new v(), Ye = new u(e), Ge = new u(e), Qe = new u(e), pe = new u(e), Ze = /* @__PURE__ */ new Set(), he = new u(e), T, M, Je = new v(), Xe = new v(), $e = new v(), Ne = new u(e), G = new v(), et = new u(e), tt = [], me = new u(e), ge = new u(e), it = new u(e), rt = new u(e), st = /* @__PURE__ */ new Set(), W = 0, lt = new v(), Q = 0, de = 0, ye = new u(e), K = new u(e), we = new u(e), ke = new u(e), Z = new u(e), j = new v(), be = new v(), nt = new u(e), xe = new u(e), at = new u(e), ot = new u(e), ut = new u(e), Ce = new u(e), ze = new u(e), _e = new u(e), J = new u(e), X = new u(e), U = new Oe(e), I = new u(e), Se = new Oe(e), ct = new u(e), B = new u(e), ft = new Oe(e);
709
+ q(R, function(s) {
711
710
  switch (s.type) {
712
- case Mt: {
711
+ case Tt: {
713
712
  ee++;
714
713
  let f = s.name;
715
714
  if (f === "font-face") {
716
- let d = {};
717
- e && Ue.p(s.loc.start.offset, s.loc), s.block.children.forEach((u) => {
718
- u.type === Oe && (d[u.property] = l(u.value));
719
- }), ie.push(d), te.push(1);
715
+ let m = {};
716
+ e && Ue.p(s.loc.start.offset, s.loc), s.block.children.forEach((c) => {
717
+ c.type === Re && (m[c.property] = n(c.value));
718
+ }), ie.push(m), te.push(1);
720
719
  break;
721
720
  }
722
721
  let a = 1;
723
722
  if (s.prelude !== null) {
724
- let d = s.prelude, u = d && l(s.prelude), p = d.loc;
723
+ let m = s.prelude, c = m && n(s.prelude), p = m.loc;
725
724
  if (f === "media")
726
- Ie.p(u, p), Gt(d) && (He.p(u, p), a++);
725
+ He.p(c, p), Yt(m) && (Ve.p(c, p), a++);
727
726
  else if (f === "supports")
728
- We.p(u, p), Yt(d) && (Ke.p(u, p), a++);
729
- else if (O("keyframes", f)) {
730
- let c = "@" + f + " " + u;
731
- D(f) && (le.p(c, p), a++), se.p(c, p);
732
- } else f === "import" ? Te.p(u, p) : f === "charset" ? Ve.p(u, p) : f === "container" ? je.p(u, p) : f === "layer" ? u.split(",").forEach((c) => re.p(c.trim(), p)) : f === "property" && Be.p(u, p);
727
+ se.p(c, p), Bt(m) && (Ke.p(c, p), a++);
728
+ else if (L("keyframes", f)) {
729
+ let o = "@" + f + " " + c;
730
+ D(f) && (ne.p(o, p), a++), le.p(o, p);
731
+ } else f === "import" ? (q(s, function(o) {
732
+ if (o.type === "Condition" && o.kind === "supports") {
733
+ let h = n(o);
734
+ return se.p(h, o.loc), this.break;
735
+ }
736
+ }), Ie.p(c, p)) : f === "charset" ? We.p(c, p) : f === "container" ? je.p(c, p) : f === "property" && Be.p(c, p);
733
737
  } else
734
738
  f === "layer" && (re.p("<anonymous>", s.loc), a++);
735
739
  te.push(a);
736
740
  break;
737
741
  }
738
- case It: {
739
- let f = s.prelude, a = s.block, d = f.children, u = a.children, p = d ? d.size : 0, c = u ? u.size : 0;
740
- oe.push(p + c), Ye.p(p + c, s.loc), ue.push(p), Ge.p(p, f.loc), ce.push(c), Qe.p(c, a.loc), ne++, c === 0 && ae++;
742
+ case "Layer": {
743
+ s.name !== null && re.p(s.name, s.loc);
744
+ break;
745
+ }
746
+ case Ut: {
747
+ let f = s.prelude, a = s.block, m = f.children, c = a.children, p = m ? m.size : 0, o = c ? c.size : 0;
748
+ ue.push(p + o), Ye.p(p + o, s.loc), ce.push(p), Ge.p(p, f.loc), fe.push(o), Qe.p(o, a.loc), ae++, o === 0 && oe++;
741
749
  break;
742
750
  }
743
- case De: {
744
- let f = l(s);
745
- if (this.atrule && O("keyframes", this.atrule.name))
746
- return fe.p(f, s.loc), this.skip;
747
- Lt(s) && me.p(f, s.loc);
748
- let a = Zt(s);
751
+ case Fe: {
752
+ let f = n(s);
753
+ if (this.atrule && L("keyframes", this.atrule.name))
754
+ return pe.p(f, s.loc), this.skip;
755
+ Lt(s) && ge.p(f, s.loc);
756
+ let a = Qt(s);
749
757
  if (a !== !1)
750
- for (let k of a)
751
- it.p(k, s.loc);
752
- let d = Ot(s);
753
- Qt(s) && pe.p(f, s.loc), Ze.add(f), G.push(d), et.p(d, s.loc);
754
- let u = Ft(s).toArray(), [p, c, h] = u;
755
- return Ne.p(u.toString(), s.loc), Je.push(p), Xe.push(c), $e.push(h), M === void 0 && (M = u), U === void 0 && (U = u), U !== void 0 && _t(U, u) < 0 && (U = u), M !== void 0 && _t(M, u) > 0 && (M = u), tt.push(u), p > 0 && he.p(f, s.loc), Jt(s, function(S) {
758
+ for (let b of a)
759
+ it.p(b, s.loc);
760
+ let m = Ot(s);
761
+ Gt(s) && he.p(f, s.loc), Ze.add(f), G.push(m), et.p(m, s.loc);
762
+ let c = Ft(s).toArray(), [p, o, h] = c;
763
+ return Ne.p(c.toString(), s.loc), Je.push(p), Xe.push(o), $e.push(h), T === void 0 && (T = c), M === void 0 && (M = c), M !== void 0 && zt(M, c) < 0 && (M = c), T !== void 0 && zt(T, c) > 0 && (T = c), tt.push(c), p > 0 && me.p(f, s.loc), Zt(s, function(S) {
756
764
  rt.p(S.name, S.loc);
757
765
  }), this.skip;
758
766
  }
@@ -760,13 +768,13 @@ function wi(i, t = {}) {
760
768
  if (!this.declaration)
761
769
  break;
762
770
  let f = s.unit;
763
- return O("\\9", f) ? ze.push(f.substring(0, f.length - 2), this.declaration.property, s.loc) : ze.push(f, this.declaration.property, s.loc), this.skip;
771
+ return L("\\9", f) ? Se.push(f.substring(0, f.length - 2), this.declaration.property, s.loc) : Se.push(f, this.declaration.property, s.loc), this.skip;
764
772
  }
765
- case Bt: {
766
- if (Ee("data:", s.value)) {
767
- let f = s.value, a = f.length, d = fi(f);
768
- y.total++, z += a;
769
- let u = {
773
+ case jt: {
774
+ if (De("data:", s.value)) {
775
+ let f = s.value, a = f.length, m = ci(f);
776
+ y.total++, _ += a;
777
+ let c = {
770
778
  /** @type {number} */
771
779
  line: s.loc.start.line,
772
780
  /** @type {number} */
@@ -776,101 +784,101 @@ function wi(i, t = {}) {
776
784
  /** @type {number} */
777
785
  length: s.loc.end.offset - s.loc.start.offset
778
786
  };
779
- if (y.unique.has(d)) {
780
- let p = y.unique.get(d);
781
- p.count++, p.size += a, y.unique.set(d, p), e && p.uniqueWithLocations.push(u);
787
+ if (y.unique.has(m)) {
788
+ let p = y.unique.get(m);
789
+ p.count++, p.size += a, y.unique.set(m, p), e && p.uniqueWithLocations.push(c);
782
790
  } else {
783
791
  let p = {
784
792
  count: 1,
785
793
  size: a
786
794
  };
787
- e && (p.uniqueWithLocations = [u]), y.unique.set(d, p);
795
+ e && (p.uniqueWithLocations = [c]), y.unique.set(m, p);
788
796
  }
789
797
  }
790
798
  break;
791
799
  }
792
- case Ht: {
800
+ case It: {
793
801
  if ($(s)) {
794
- be.push(1), B.p(l(s), s.loc);
802
+ be.push(1), B.p(n(s), s.loc);
795
803
  break;
796
804
  }
797
- let f = this.declaration, { property: a, important: d } = f, u = 1;
798
- Rt(s) && (nt.p(l(s), s.loc), u++), typeof d == "string" && (ke.p(m(s) + "!" + d, s.loc), u++), pi(s) && (ke.p(l(s), s.loc), u++);
799
- let p = s.children, c = s.loc;
800
- if (be.push(u), C("z-index", a))
801
- return at.p(l(s), c), this.skip;
805
+ let f = this.declaration, { property: a, important: m } = f, c = 1;
806
+ Rt(s) && (nt.p(n(s), s.loc), c++), typeof m == "string" && (xe.p(g(s) + "!" + m, s.loc), c++), fi(s) && (xe.p(n(s), s.loc), c++);
807
+ let p = s.children, o = s.loc;
808
+ if (be.push(c), C("z-index", a))
809
+ return at.p(n(s), o), this.skip;
802
810
  if (C("font", a)) {
803
- if (Pe(s)) return;
804
- let { font_size: h, line_height: k, font_family: S } = si(s, l, function(E) {
805
- E.type === "keyword" && B.p(E.value, c);
811
+ if (Le(s)) return;
812
+ let { font_size: h, line_height: b, font_family: S } = ri(s, n, function(E) {
813
+ E.type === "keyword" && B.p(E.value, o);
806
814
  });
807
- S && xe.p(S, c), h && Ce.p(h, c), k && _e.p(k, c);
815
+ S && Ce.p(S, o), h && ze.p(h, o), b && _e.p(b, o);
808
816
  break;
809
817
  } else if (C("font-size", a)) {
810
- Pe(s) || Ce.p(l(s), c);
818
+ Le(s) || ze.p(n(s), o);
811
819
  break;
812
820
  } else if (C("font-family", a)) {
813
- Pe(s) || xe.p(l(s), c);
821
+ Le(s) || Ce.p(n(s), o);
814
822
  break;
815
823
  } else if (C("line-height", a))
816
- _e.p(l(s), c);
824
+ _e.p(n(s), o);
817
825
  else if (C("transition", a) || C("animation", a)) {
818
- ai(p, function(h) {
819
- h.type === "fn" ? J.p(l(h.value), c) : h.type === "duration" ? X.p(l(h.value), c) : h.type === "keyword" && B.p(l(h.value), c);
826
+ ni(p, function(h) {
827
+ h.type === "fn" ? J.p(n(h.value), o) : h.type === "duration" ? X.p(n(h.value), o) : h.type === "keyword" && B.p(n(h.value), o);
820
828
  });
821
829
  break;
822
830
  } else if (C("animation-duration", a) || C("transition-duration", a)) {
823
831
  p && p.size > 1 ? p.forEach((h) => {
824
- h.type !== V && X.p(l(h), c);
825
- }) : X.p(l(s), c);
832
+ h.type !== V && X.p(n(h), o);
833
+ }) : X.p(n(s), o);
826
834
  break;
827
835
  } else if (C("transition-timing-function", a) || C("animation-timing-function", a)) {
828
836
  p && p.size > 1 ? p.forEach((h) => {
829
- h.type !== V && J.p(l(h), c);
830
- }) : J.p(l(s), c);
837
+ h.type !== V && J.p(n(h), o);
838
+ }) : J.p(n(s), o);
831
839
  break;
832
- } else if (hi.has(ci(a))) {
833
- $(s) || ft.push(l(s), a, c);
840
+ } else if (pi.has(ui(a))) {
841
+ $(s) || ft.push(n(s), a, o);
834
842
  break;
835
- } else C("text-shadow", a) ? $(s) || ot.p(l(s), c) : C("box-shadow", a) && ($(s) || ut.p(l(s), c));
836
- P(s, function(h) {
837
- let k = h.name;
843
+ } else C("text-shadow", a) ? $(s) || ot.p(n(s), o) : C("box-shadow", a) && ($(s) || ut.p(n(s), o));
844
+ q(s, function(h) {
845
+ let b = h.name;
838
846
  switch (h.type) {
839
- case jt: {
847
+ case Kt: {
840
848
  let S = h.value.length;
841
- return O("\\9", h.value) && (S = S - 2), T.push("#" + h.value, a, c), I.p("hex" + S, c), this.skip;
849
+ return L("\\9", h.value) && (S = S - 2), U.push("#" + h.value, a, o), I.p("hex" + S, o), this.skip;
842
850
  }
843
- case L: {
844
- N.has(k) && B.p(k, c);
845
- let S = k.length;
851
+ case O: {
852
+ N.has(b) && B.p(b, o);
853
+ let S = b.length;
846
854
  if (S > 20 || S < 3)
847
855
  return this.skip;
848
- if (ei.has(k)) {
849
- let E = l(h);
850
- T.push(E, a, c), I.p(k.toLowerCase(), c);
856
+ if (Nt.has(b)) {
857
+ let E = n(h);
858
+ U.push(E, a, o), I.p(b.toLowerCase(), o);
851
859
  return;
852
860
  }
853
- if (Xt.has(k)) {
854
- let E = l(h);
855
- T.push(E, a, c), I.p("named", c);
861
+ if (Jt.has(b)) {
862
+ let E = n(h);
863
+ U.push(E, a, o), I.p("named", o);
856
864
  return;
857
865
  }
858
- if ($t.has(k)) {
859
- let E = l(h);
860
- T.push(E, a, c), I.p("system", c);
866
+ if (Xt.has(b)) {
867
+ let E = n(h);
868
+ U.push(E, a, o), I.p("system", o);
861
869
  return;
862
870
  }
863
871
  return this.skip;
864
872
  }
865
- case Fe: {
866
- if (_("var", k))
873
+ case Te: {
874
+ if (z("var", b))
867
875
  return this.skip;
868
- if (Nt.has(k)) {
869
- T.push(l(h), a, h.loc), I.p(k.toLowerCase(), h.loc);
876
+ if ($t.has(b)) {
877
+ U.push(n(h), a, h.loc), I.p(b.toLowerCase(), h.loc);
870
878
  return;
871
879
  }
872
- if (O("gradient", k)) {
873
- ct.p(l(h), h.loc);
880
+ if (L("gradient", b)) {
881
+ ct.p(n(h), h.loc);
874
882
  return;
875
883
  }
876
884
  }
@@ -878,42 +886,42 @@ function wi(i, t = {}) {
878
886
  });
879
887
  break;
880
888
  }
881
- case Oe: {
889
+ case Re: {
882
890
  if (this.atrulePrelude !== null)
883
891
  return this.skip;
884
892
  W++;
885
893
  let f = 1;
886
- st.add(l(s)), s.important === !0 && (Q++, f++, this.atrule && O("keyframes", this.atrule.name) && (de++, f++)), lt.push(f);
887
- let { property: a, loc: { start: d } } = s, u = {
894
+ st.add(n(s)), s.important === !0 && (Q++, f++, this.atrule && L("keyframes", this.atrule.name) && (de++, f++)), lt.push(f);
895
+ let { property: a, loc: { start: m } } = s, c = {
888
896
  start: {
889
- line: d.line,
890
- column: d.column,
891
- offset: d.offset
897
+ line: m.line,
898
+ column: m.column,
899
+ offset: m.offset
892
900
  },
893
901
  end: {
894
- offset: d.offset + a.length
902
+ offset: m.offset + a.length
895
903
  }
896
904
  };
897
- K.p(a, u), D(a) ? (we.p(a, u), j.push(2)) : ui(a) ? (ye.p(a, u), j.push(2)) : Me(a) ? (Z.p(a, u), j.push(s.important ? 3 : 2), s.important === !0 && ge.p(a, u)) : j.push(1);
905
+ K.p(a, c), D(a) ? (ke.p(a, c), j.push(2)) : oi(a) ? (we.p(a, c), j.push(2)) : Me(a) ? (Z.p(a, c), j.push(s.important ? 3 : 2), s.important === !0 && ye.p(a, c)) : j.push(1);
898
906
  break;
899
907
  }
900
908
  }
901
909
  });
902
- let pt = st.size, H = G.size(), Se = Je.aggregate(), ve = Xe.aggregate(), qe = $e.aggregate(), ht = Ze.size, b = Object.assign, mt = i.length, Ae = ie.length, dt = te.aggregate(), gt = G.aggregate(), yt = lt.aggregate(), wt = j.aggregate(), bt = be.aggregate();
910
+ let pt = st.size, H = G.size(), ve = Je.aggregate(), qe = Xe.aggregate(), Ae = $e.aggregate(), ht = Ze.size, k = Object.assign, mt = i.length, Pe = ie.length, gt = te.aggregate(), dt = G.aggregate(), yt = lt.aggregate(), wt = j.aggregate(), kt = be.aggregate();
903
911
  return {
904
912
  stylesheet: {
905
- sourceLinesOfCode: ee + H + W + fe.size(),
913
+ sourceLinesOfCode: ee + H + W + pe.size(),
906
914
  linesOfCode: Et,
907
915
  size: mt,
908
- complexity: dt.sum + gt.sum + yt.sum + wt.sum + bt.sum,
916
+ complexity: gt.sum + dt.sum + yt.sum + wt.sum + kt.sum,
909
917
  comments: {
910
918
  total: w,
911
- size: g
919
+ size: d
912
920
  },
913
921
  embeddedContent: {
914
922
  size: {
915
- total: z,
916
- ratio: x(z, mt)
923
+ total: _,
924
+ ratio: x(_, mt)
917
925
  },
918
926
  types: {
919
927
  total: y.total,
@@ -924,35 +932,35 @@ function wi(i, t = {}) {
924
932
  }
925
933
  },
926
934
  atrules: {
927
- fontface: b({
928
- total: Ae,
929
- totalUnique: Ae,
935
+ fontface: k({
936
+ total: Pe,
937
+ totalUnique: Pe,
930
938
  unique: ie,
931
- uniquenessRatio: Ae === 0 ? 0 : 1
939
+ uniquenessRatio: Pe === 0 ? 0 : 1
932
940
  }, e ? {
933
941
  uniqueWithLocations: Ue.c().uniqueWithLocations
934
942
  } : {}),
935
- import: Te.c(),
936
- media: b(
937
- Ie.c(),
943
+ import: Ie.c(),
944
+ media: k(
945
+ He.c(),
938
946
  {
939
- browserhacks: He.c()
947
+ browserhacks: Ve.c()
940
948
  }
941
949
  ),
942
- charset: Ve.c(),
943
- supports: b(
944
- We.c(),
950
+ charset: We.c(),
951
+ supports: k(
952
+ se.c(),
945
953
  {
946
954
  browserhacks: Ke.c()
947
955
  }
948
956
  ),
949
- keyframes: b(
950
- se.c(),
957
+ keyframes: k(
958
+ le.c(),
951
959
  {
952
- prefixed: b(
953
- le.c(),
960
+ prefixed: k(
961
+ ne.c(),
954
962
  {
955
- ratio: x(le.size(), se.size())
963
+ ratio: x(ne.size(), le.size())
956
964
  }
957
965
  )
958
966
  }
@@ -961,32 +969,32 @@ function wi(i, t = {}) {
961
969
  layer: re.c(),
962
970
  property: Be.c(),
963
971
  total: ee,
964
- complexity: dt
972
+ complexity: gt
965
973
  },
966
974
  rules: {
967
- total: ne,
975
+ total: ae,
968
976
  empty: {
969
- total: ae,
970
- ratio: x(ae, ne)
977
+ total: oe,
978
+ ratio: x(oe, ae)
971
979
  },
972
- sizes: b(
973
- oe.aggregate(),
980
+ sizes: k(
981
+ ue.aggregate(),
974
982
  {
975
- items: oe.toArray()
983
+ items: ue.toArray()
976
984
  },
977
985
  Ye.c()
978
986
  ),
979
- selectors: b(
980
- ue.aggregate(),
987
+ selectors: k(
988
+ ce.aggregate(),
981
989
  {
982
- items: ue.toArray()
990
+ items: ce.toArray()
983
991
  },
984
992
  Ge.c()
985
993
  ),
986
- declarations: b(
987
- ce.aggregate(),
994
+ declarations: k(
995
+ fe.aggregate(),
988
996
  {
989
- items: ce.toArray()
997
+ items: fe.toArray()
990
998
  },
991
999
  Qe.c()
992
1000
  )
@@ -995,48 +1003,48 @@ function wi(i, t = {}) {
995
1003
  total: H,
996
1004
  totalUnique: ht,
997
1005
  uniquenessRatio: x(ht, H),
998
- specificity: b(
1006
+ specificity: k(
999
1007
  {
1000
1008
  /** @type Specificity */
1001
- min: U === void 0 ? [0, 0, 0] : U,
1009
+ min: M === void 0 ? [0, 0, 0] : M,
1002
1010
  /** @type Specificity */
1003
- max: M === void 0 ? [0, 0, 0] : M,
1011
+ max: T === void 0 ? [0, 0, 0] : T,
1004
1012
  /** @type Specificity */
1005
- sum: [Se.sum, ve.sum, qe.sum],
1013
+ sum: [ve.sum, qe.sum, Ae.sum],
1006
1014
  /** @type Specificity */
1007
- mean: [Se.mean, ve.mean, qe.mean],
1015
+ mean: [ve.mean, qe.mean, Ae.mean],
1008
1016
  /** @type Specificity */
1009
- mode: [Se.mode, ve.mode, qe.mode],
1017
+ mode: [ve.mode, qe.mode, Ae.mode],
1010
1018
  /** @type Specificity */
1011
1019
  items: tt
1012
1020
  },
1013
1021
  Ne.c()
1014
1022
  ),
1015
- complexity: b(
1016
- gt,
1023
+ complexity: k(
1024
+ dt,
1017
1025
  et.c(),
1018
1026
  {
1019
1027
  items: G.toArray()
1020
1028
  }
1021
1029
  ),
1022
- id: b(
1023
- he.c(),
1030
+ id: k(
1031
+ me.c(),
1024
1032
  {
1025
- ratio: x(he.size(), H)
1033
+ ratio: x(me.size(), H)
1026
1034
  }
1027
1035
  ),
1028
1036
  pseudoClasses: it.c(),
1029
- accessibility: b(
1030
- me.c(),
1037
+ accessibility: k(
1038
+ ge.c(),
1031
1039
  {
1032
- ratio: x(me.size(), H)
1040
+ ratio: x(ge.size(), H)
1033
1041
  }
1034
1042
  ),
1035
- keyframes: fe.c(),
1036
- prefixed: b(
1037
- pe.c(),
1043
+ keyframes: pe.c(),
1044
+ prefixed: k(
1045
+ he.c(),
1038
1046
  {
1039
- ratio: x(pe.size(), H)
1047
+ ratio: x(he.size(), H)
1040
1048
  }
1041
1049
  ),
1042
1050
  combinators: rt.c()
@@ -1055,46 +1063,46 @@ function wi(i, t = {}) {
1055
1063
  },
1056
1064
  complexity: yt
1057
1065
  },
1058
- properties: b(
1066
+ properties: k(
1059
1067
  K.c(),
1060
1068
  {
1061
- prefixed: b(
1062
- we.c(),
1069
+ prefixed: k(
1070
+ ke.c(),
1063
1071
  {
1064
- ratio: x(we.size(), K.size())
1072
+ ratio: x(ke.size(), K.size())
1065
1073
  }
1066
1074
  ),
1067
- custom: b(
1075
+ custom: k(
1068
1076
  Z.c(),
1069
1077
  {
1070
1078
  ratio: x(Z.size(), K.size()),
1071
- importants: b(
1072
- ge.c(),
1079
+ importants: k(
1080
+ ye.c(),
1073
1081
  {
1074
- ratio: x(ge.size(), Z.size())
1082
+ ratio: x(ye.size(), Z.size())
1075
1083
  }
1076
1084
  )
1077
1085
  }
1078
1086
  ),
1079
- browserhacks: b(
1080
- ye.c(),
1087
+ browserhacks: k(
1088
+ we.c(),
1081
1089
  {
1082
- ratio: x(ye.size(), K.size())
1090
+ ratio: x(we.size(), K.size())
1083
1091
  }
1084
1092
  ),
1085
1093
  complexity: wt
1086
1094
  }
1087
1095
  ),
1088
1096
  values: {
1089
- colors: b(
1090
- T.count(),
1097
+ colors: k(
1098
+ U.count(),
1091
1099
  {
1092
1100
  formats: I.c()
1093
1101
  }
1094
1102
  ),
1095
1103
  gradients: ct.c(),
1096
- fontFamilies: xe.c(),
1097
- fontSizes: Ce.c(),
1104
+ fontFamilies: Ce.c(),
1105
+ fontSizes: ze.c(),
1098
1106
  lineHeights: _e.c(),
1099
1107
  zindexes: at.c(),
1100
1108
  textShadows: ot.c(),
@@ -1105,30 +1113,30 @@ function wi(i, t = {}) {
1105
1113
  timingFunctions: J.c()
1106
1114
  },
1107
1115
  prefixes: nt.c(),
1108
- browserhacks: ke.c(),
1109
- units: ze.count(),
1110
- complexity: bt,
1116
+ browserhacks: xe.c(),
1117
+ units: Se.count(),
1118
+ complexity: kt,
1111
1119
  keywords: B.c()
1112
1120
  },
1113
1121
  __meta__: {
1114
- parseTime: F - A,
1122
+ parseTime: F - P,
1115
1123
  analyzeTime: Date.now() - F,
1116
- total: Date.now() - n
1124
+ total: Date.now() - l
1117
1125
  }
1118
1126
  };
1119
1127
  }
1120
- function _t(i, t) {
1128
+ function zt(i, t) {
1121
1129
  return i[0] === t[0] ? i[1] === t[1] ? t[2] - i[2] : t[1] - i[1] : t[0] - i[0];
1122
1130
  }
1123
1131
  export {
1124
- wi as analyze,
1125
- _t as compareSpecificity,
1132
+ yi as analyze,
1133
+ zt as compareSpecificity,
1126
1134
  D as hasVendorPrefix,
1127
1135
  Lt as isAccessibilitySelector,
1128
- Gt as isMediaBrowserhack,
1129
- ui as isPropertyHack,
1130
- Qt as isSelectorPrefixed,
1131
- Yt as isSupportsBrowserhack,
1136
+ Yt as isMediaBrowserhack,
1137
+ oi as isPropertyHack,
1138
+ Gt as isSelectorPrefixed,
1139
+ Bt as isSupportsBrowserhack,
1132
1140
  Rt as isValuePrefixed,
1133
1141
  Ot as selectorComplexity
1134
1142
  };
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "@projectwallace/css-analyzer",
3
- "version": "7.0.1",
3
+ "description": "The best CSS analyzer out there. Check design tokens, complexity, specificity, performance and more.",
4
+ "version": "7.0.2",
4
5
  "author": "Bart Veneman",
5
6
  "repository": {
6
7
  "type": "git",
7
8
  "url": "git+https://github.com/projectwallace/css-analyzer.git"
8
9
  },
9
- "homepage": "https://www.projectwallace.com/oss",
10
+ "homepage": "https://github.com/projectwallace/css-analyzer",
10
11
  "issues": "https://github.com/projectwallace/css-analyzer/issues",
11
12
  "license": "MIT",
12
13
  "type": "module",
@@ -45,7 +46,7 @@
45
46
  ],
46
47
  "dependencies": {
47
48
  "@bramus/specificity": "^2.4.1",
48
- "css-tree": "^2.3.1"
49
+ "css-tree": "^3.1.0"
49
50
  },
50
51
  "devDependencies": {
51
52
  "@codecov/vite-plugin": "^1.9.0",
@@ -53,8 +54,5 @@
53
54
  "uvu": "^0.5.6",
54
55
  "vite": "^6.3.4",
55
56
  "vite-plugin-dts": "^4.5.0"
56
- },
57
- "mangle": {
58
- "regex": "^_[^_]"
59
57
  }
60
58
  }