@projectwallace/css-analyzer 9.5.0 → 9.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/readme.md CHANGED
@@ -37,7 +37,7 @@ npm install @projectwallace/css-analyzer
37
37
  ### Analyzing CSS
38
38
 
39
39
  ```js
40
- import { analyze } from "@projectwallace/css-analyzer";
40
+ import { analyze } from '@projectwallace/css-analyzer'
41
41
 
42
42
  const result = analyze(`
43
43
  p {
@@ -48,7 +48,7 @@ const result = analyze(`
48
48
  .component[data-state="loading"] {
49
49
  background-color: whitesmoke;
50
50
  }
51
- `);
51
+ `)
52
52
  ```
53
53
 
54
54
  <details>
@@ -56,283 +56,283 @@ const result = analyze(`
56
56
 
57
57
  ```json
58
58
  {
59
- "stylesheet": {
60
- "sourceLinesOfCode": 5,
61
- "linesOfCode": 8,
62
- "size": 113,
63
- "comments": {
64
- "total": 0,
65
- "size": 0
66
- }
67
- },
68
- "atrules": {
69
- "fontface": {
70
- "total": 0,
71
- "totalUnique": 0,
72
- "unique": [],
73
- "uniquenessRatio": 1
74
- },
75
- "import": {
76
- "total": 0,
77
- "totalUnique": 0,
78
- "unique": {},
79
- "uniquenessRatio": 0
80
- },
81
- "media": {
82
- "total": 0,
83
- "totalUnique": 0,
84
- "unique": {},
85
- "uniquenessRatio": 0
86
- },
87
- "charset": {
88
- "total": 0,
89
- "totalUnique": 0,
90
- "unique": {},
91
- "uniquenessRatio": 0
92
- },
93
- "supports": {
94
- "total": 0,
95
- "totalUnique": 0,
96
- "unique": {},
97
- "uniquenessRatio": 0
98
- },
99
- "keyframes": {
100
- "total": 0,
101
- "totalUnique": 0,
102
- "unique": {},
103
- "uniquenessRatio": 0,
104
- "prefixed": {
105
- "total": 0,
106
- "totalUnique": 0,
107
- "unique": {},
108
- "uniquenessRatio": 0,
109
- "ratio": null
110
- }
111
- },
112
- "container": {
113
- "total": 0,
114
- "totalUnique": 0,
115
- "unique": {},
116
- "uniquenessRatio": 0
117
- }
118
- },
119
- "rules": {
120
- "total": 2,
121
- "empty": {
122
- "total": 0,
123
- "ratio": 0
124
- },
125
- "selectors": {
126
- "min": 1,
127
- "max": 1,
128
- "mean": 1,
129
- "mode": 1,
130
- "range": 0,
131
- "sum": 2,
132
- "items": [1, 1]
133
- },
134
- "declarations": {
135
- "min": 1,
136
- "max": 2,
137
- "mean": 1.5,
138
- "mode": 1.5,
139
- "range": 1,
140
- "sum": 3,
141
- "items": [2, 1]
142
- }
143
- },
144
- "selectors": {
145
- "total": 2,
146
- "totalUnique": 2,
147
- "uniquenessRatio": 1,
148
- "specificity": {
149
- "sum": [0, 2, 1],
150
- "min": [0, 0, 1],
151
- "max": [0, 2, 0],
152
- "mean": [0, 1, 0.5],
153
- "mode": [0, 1, 0.5],
154
- "items": [
155
- [0, 0, 1],
156
- [0, 2, 0]
157
- ]
158
- },
159
- "complexity": {
160
- "min": 1,
161
- "max": 3,
162
- "mean": 2,
163
- "mode": 2,
164
- "range": 2,
165
- "sum": 4,
166
- "total": 2,
167
- "totalUnique": 2,
168
- "unique": {
169
- "1": 1,
170
- "3": 1
171
- },
172
- "uniquenessRatio": 1,
173
- "items": [1, 3]
174
- },
175
- "id": {
176
- "total": 0,
177
- "totalUnique": 0,
178
- "unique": {},
179
- "uniquenessRatio": 0,
180
- "ratio": 0
181
- },
182
- "accessibility": {
183
- "total": 0,
184
- "totalUnique": 0,
185
- "unique": {},
186
- "uniquenessRatio": 0,
187
- "ratio": 0
188
- },
189
- "keyframes": {
190
- "total": 0,
191
- "totalUnique": 0,
192
- "unique": {},
193
- "uniquenessRatio": 0,
194
- "ratio": 0
195
- }
196
- },
197
- "declarations": {
198
- "total": 3,
199
- "unique": {
200
- "total": 3,
201
- "ratio": 1
202
- },
203
- "importants": {
204
- "total": 0,
205
- "ratio": 0,
206
- "inKeyframes": {
207
- "total": 0,
208
- "ratio": 0
209
- }
210
- }
211
- },
212
- "properties": {
213
- "total": 3,
214
- "totalUnique": 3,
215
- "unique": {
216
- "color": 1,
217
- "font-size": 1,
218
- "background-color": 1
219
- },
220
- "uniquenessRatio": 1,
221
- "prefixed": {
222
- "total": 0,
223
- "totalUnique": 0,
224
- "unique": {},
225
- "uniquenessRatio": 0,
226
- "ratio": 0
227
- },
228
- "custom": {
229
- "total": 0,
230
- "totalUnique": 0,
231
- "unique": {},
232
- "uniquenessRatio": 0,
233
- "ratio": 0
234
- },
235
- "browserhacks": {
236
- "total": 0,
237
- "totalUnique": 0,
238
- "unique": {},
239
- "uniquenessRatio": 0,
240
- "ratio": 0
241
- }
242
- },
243
- "values": {
244
- "colors": {
245
- "total": 2,
246
- "totalUnique": 2,
247
- "unique": {
248
- "blue": 1,
249
- "whitesmoke": 1
250
- },
251
- "uniquenessRatio": 1,
252
- "itemsPerContext": {
253
- "color": {
254
- "total": 1,
255
- "totalUnique": 1,
256
- "unique": {
257
- "blue": 1
258
- },
259
- "uniquenessRatio": 1
260
- },
261
- "background-color": {
262
- "total": 1,
263
- "totalUnique": 1,
264
- "unique": {
265
- "whitesmoke": 1
266
- },
267
- "uniquenessRatio": 1
268
- }
269
- }
270
- },
271
- "fontFamilies": {
272
- "total": 0,
273
- "totalUnique": 0,
274
- "unique": {},
275
- "uniquenessRatio": 0
276
- },
277
- "fontSizes": {
278
- "total": 1,
279
- "totalUnique": 1,
280
- "unique": {
281
- "100%": 1
282
- },
283
- "uniquenessRatio": 1
284
- },
285
- "zindexes": {
286
- "total": 0,
287
- "totalUnique": 0,
288
- "unique": {},
289
- "uniquenessRatio": 0
290
- },
291
- "textShadows": {
292
- "total": 0,
293
- "totalUnique": 0,
294
- "unique": {},
295
- "uniquenessRatio": 0
296
- },
297
- "boxShadows": {
298
- "total": 0,
299
- "totalUnique": 0,
300
- "unique": {},
301
- "uniquenessRatio": 0
302
- },
303
- "animations": {
304
- "durations": {
305
- "total": 0,
306
- "totalUnique": 0,
307
- "unique": {},
308
- "uniquenessRatio": 0
309
- },
310
- "timingFunctions": {
311
- "total": 0,
312
- "totalUnique": 0,
313
- "unique": {},
314
- "uniquenessRatio": 0
315
- }
316
- },
317
- "prefixes": {
318
- "total": 0,
319
- "totalUnique": 0,
320
- "unique": {},
321
- "uniquenessRatio": 0
322
- },
323
- "units": {
324
- "total": 0,
325
- "totalUnique": 0,
326
- "unique": {},
327
- "uniquenessRatio": 0,
328
- "itemsPerContext": {}
329
- }
330
- },
331
- "__meta__": {
332
- "parseTime": 4,
333
- "analyzeTime": 5,
334
- "total": 10
335
- }
59
+ "stylesheet": {
60
+ "sourceLinesOfCode": 5,
61
+ "linesOfCode": 8,
62
+ "size": 113,
63
+ "comments": {
64
+ "total": 0,
65
+ "size": 0
66
+ }
67
+ },
68
+ "atrules": {
69
+ "fontface": {
70
+ "total": 0,
71
+ "totalUnique": 0,
72
+ "unique": [],
73
+ "uniquenessRatio": 1
74
+ },
75
+ "import": {
76
+ "total": 0,
77
+ "totalUnique": 0,
78
+ "unique": {},
79
+ "uniquenessRatio": 0
80
+ },
81
+ "media": {
82
+ "total": 0,
83
+ "totalUnique": 0,
84
+ "unique": {},
85
+ "uniquenessRatio": 0
86
+ },
87
+ "charset": {
88
+ "total": 0,
89
+ "totalUnique": 0,
90
+ "unique": {},
91
+ "uniquenessRatio": 0
92
+ },
93
+ "supports": {
94
+ "total": 0,
95
+ "totalUnique": 0,
96
+ "unique": {},
97
+ "uniquenessRatio": 0
98
+ },
99
+ "keyframes": {
100
+ "total": 0,
101
+ "totalUnique": 0,
102
+ "unique": {},
103
+ "uniquenessRatio": 0,
104
+ "prefixed": {
105
+ "total": 0,
106
+ "totalUnique": 0,
107
+ "unique": {},
108
+ "uniquenessRatio": 0,
109
+ "ratio": null
110
+ }
111
+ },
112
+ "container": {
113
+ "total": 0,
114
+ "totalUnique": 0,
115
+ "unique": {},
116
+ "uniquenessRatio": 0
117
+ }
118
+ },
119
+ "rules": {
120
+ "total": 2,
121
+ "empty": {
122
+ "total": 0,
123
+ "ratio": 0
124
+ },
125
+ "selectors": {
126
+ "min": 1,
127
+ "max": 1,
128
+ "mean": 1,
129
+ "mode": 1,
130
+ "range": 0,
131
+ "sum": 2,
132
+ "items": [1, 1]
133
+ },
134
+ "declarations": {
135
+ "min": 1,
136
+ "max": 2,
137
+ "mean": 1.5,
138
+ "mode": 1.5,
139
+ "range": 1,
140
+ "sum": 3,
141
+ "items": [2, 1]
142
+ }
143
+ },
144
+ "selectors": {
145
+ "total": 2,
146
+ "totalUnique": 2,
147
+ "uniquenessRatio": 1,
148
+ "specificity": {
149
+ "sum": [0, 2, 1],
150
+ "min": [0, 0, 1],
151
+ "max": [0, 2, 0],
152
+ "mean": [0, 1, 0.5],
153
+ "mode": [0, 1, 0.5],
154
+ "items": [
155
+ [0, 0, 1],
156
+ [0, 2, 0]
157
+ ]
158
+ },
159
+ "complexity": {
160
+ "min": 1,
161
+ "max": 3,
162
+ "mean": 2,
163
+ "mode": 2,
164
+ "range": 2,
165
+ "sum": 4,
166
+ "total": 2,
167
+ "totalUnique": 2,
168
+ "unique": {
169
+ "1": 1,
170
+ "3": 1
171
+ },
172
+ "uniquenessRatio": 1,
173
+ "items": [1, 3]
174
+ },
175
+ "id": {
176
+ "total": 0,
177
+ "totalUnique": 0,
178
+ "unique": {},
179
+ "uniquenessRatio": 0,
180
+ "ratio": 0
181
+ },
182
+ "accessibility": {
183
+ "total": 0,
184
+ "totalUnique": 0,
185
+ "unique": {},
186
+ "uniquenessRatio": 0,
187
+ "ratio": 0
188
+ },
189
+ "keyframes": {
190
+ "total": 0,
191
+ "totalUnique": 0,
192
+ "unique": {},
193
+ "uniquenessRatio": 0,
194
+ "ratio": 0
195
+ }
196
+ },
197
+ "declarations": {
198
+ "total": 3,
199
+ "unique": {
200
+ "total": 3,
201
+ "ratio": 1
202
+ },
203
+ "importants": {
204
+ "total": 0,
205
+ "ratio": 0,
206
+ "inKeyframes": {
207
+ "total": 0,
208
+ "ratio": 0
209
+ }
210
+ }
211
+ },
212
+ "properties": {
213
+ "total": 3,
214
+ "totalUnique": 3,
215
+ "unique": {
216
+ "color": 1,
217
+ "font-size": 1,
218
+ "background-color": 1
219
+ },
220
+ "uniquenessRatio": 1,
221
+ "prefixed": {
222
+ "total": 0,
223
+ "totalUnique": 0,
224
+ "unique": {},
225
+ "uniquenessRatio": 0,
226
+ "ratio": 0
227
+ },
228
+ "custom": {
229
+ "total": 0,
230
+ "totalUnique": 0,
231
+ "unique": {},
232
+ "uniquenessRatio": 0,
233
+ "ratio": 0
234
+ },
235
+ "browserhacks": {
236
+ "total": 0,
237
+ "totalUnique": 0,
238
+ "unique": {},
239
+ "uniquenessRatio": 0,
240
+ "ratio": 0
241
+ }
242
+ },
243
+ "values": {
244
+ "colors": {
245
+ "total": 2,
246
+ "totalUnique": 2,
247
+ "unique": {
248
+ "blue": 1,
249
+ "whitesmoke": 1
250
+ },
251
+ "uniquenessRatio": 1,
252
+ "itemsPerContext": {
253
+ "color": {
254
+ "total": 1,
255
+ "totalUnique": 1,
256
+ "unique": {
257
+ "blue": 1
258
+ },
259
+ "uniquenessRatio": 1
260
+ },
261
+ "background-color": {
262
+ "total": 1,
263
+ "totalUnique": 1,
264
+ "unique": {
265
+ "whitesmoke": 1
266
+ },
267
+ "uniquenessRatio": 1
268
+ }
269
+ }
270
+ },
271
+ "fontFamilies": {
272
+ "total": 0,
273
+ "totalUnique": 0,
274
+ "unique": {},
275
+ "uniquenessRatio": 0
276
+ },
277
+ "fontSizes": {
278
+ "total": 1,
279
+ "totalUnique": 1,
280
+ "unique": {
281
+ "100%": 1
282
+ },
283
+ "uniquenessRatio": 1
284
+ },
285
+ "zindexes": {
286
+ "total": 0,
287
+ "totalUnique": 0,
288
+ "unique": {},
289
+ "uniquenessRatio": 0
290
+ },
291
+ "textShadows": {
292
+ "total": 0,
293
+ "totalUnique": 0,
294
+ "unique": {},
295
+ "uniquenessRatio": 0
296
+ },
297
+ "boxShadows": {
298
+ "total": 0,
299
+ "totalUnique": 0,
300
+ "unique": {},
301
+ "uniquenessRatio": 0
302
+ },
303
+ "animations": {
304
+ "durations": {
305
+ "total": 0,
306
+ "totalUnique": 0,
307
+ "unique": {},
308
+ "uniquenessRatio": 0
309
+ },
310
+ "timingFunctions": {
311
+ "total": 0,
312
+ "totalUnique": 0,
313
+ "unique": {},
314
+ "uniquenessRatio": 0
315
+ }
316
+ },
317
+ "prefixes": {
318
+ "total": 0,
319
+ "totalUnique": 0,
320
+ "unique": {},
321
+ "uniquenessRatio": 0
322
+ },
323
+ "units": {
324
+ "total": 0,
325
+ "totalUnique": 0,
326
+ "unique": {},
327
+ "uniquenessRatio": 0,
328
+ "itemsPerContext": {}
329
+ }
330
+ },
331
+ "__meta__": {
332
+ "parseTime": 4,
333
+ "analyzeTime": 5,
334
+ "total": 10
335
+ }
336
336
  }
337
337
  ```
338
338
 
@@ -341,13 +341,13 @@ const result = analyze(`
341
341
  ### Comparing specificity
342
342
 
343
343
  ```js
344
- import { compareSpecificity } from "@projectwallace/css-analyzer";
344
+ import { compareSpecificity } from '@projectwallace/css-analyzer'
345
345
 
346
346
  const result = [
347
- [0, 1, 1],
348
- [2, 0, 0],
349
- [0, 0, 1],
350
- ].sort((a, b) => compareSpecificity(a, b));
347
+ [0, 1, 1],
348
+ [2, 0, 0],
349
+ [0, 0, 1],
350
+ ].sort((a, b) => compareSpecificity(a, b))
351
351
 
352
352
  // => result:
353
353
  // [
@@ -356,7 +356,7 @@ const result = [
356
356
  // [0,0,1],
357
357
  // ]
358
358
 
359
- const isSpecificityEqual = compareSpecificity([0, 1, 0], [0, 1, 0]) === 0;
359
+ const isSpecificityEqual = compareSpecificity([0, 1, 0], [0, 1, 0]) === 0
360
360
  // => isSpecificityEqual: true
361
361
  ```
362
362
 
@@ -1,16 +0,0 @@
1
- import { CSSNode } from "@projectwallace/css-parser";
2
-
3
- //#region src/atrules/atrules.d.ts
4
- /**
5
- * Check if an @supports atRule is a browserhack (Wallace parser version)
6
- * @param node - The Atrule CSSNode from Wallace parser
7
- */
8
- declare function isSupportsBrowserhack(node: CSSNode, on_hack: (hack: string) => void): void;
9
- /**
10
- * Check if a @media atRule is a browserhack (Wallace parser version)
11
- * @param node - The Atrule CSSNode from Wallace parser
12
- * @returns true if the atrule is a browserhack
13
- */
14
- declare function isMediaBrowserhack(node: CSSNode, on_hack: (hack: string) => void): void;
15
- //#endregion
16
- export { isSupportsBrowserhack as n, isMediaBrowserhack as t };