@projectwallace/css-analyzer 4.0.0 → 5.0.0-alpha.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.
Files changed (95) hide show
  1. package/dist/analyzer.cjs +2 -0
  2. package/dist/analyzer.cjs.map +1 -0
  3. package/dist/analyzer.js +2 -0
  4. package/dist/analyzer.js.map +1 -0
  5. package/dist/analyzer.module.js +2 -0
  6. package/dist/analyzer.module.js.map +1 -0
  7. package/dist/analyzer.umd.js +2 -0
  8. package/dist/analyzer.umd.js.map +1 -0
  9. package/package.json +25 -63
  10. package/readme.md +369 -237
  11. package/src/aggregate-collection.js +113 -0
  12. package/src/aggregate-collection.test.js +47 -0
  13. package/src/atrules/atrules.js +76 -0
  14. package/src/atrules/atrules.test.js +289 -0
  15. package/src/context-collection.js +36 -0
  16. package/src/countable-collection.js +46 -0
  17. package/src/declarations/declarations.js +46 -0
  18. package/src/declarations/declarations.test.js +113 -0
  19. package/src/index.js +259 -0
  20. package/src/index.test.js +60 -0
  21. package/src/properties/properties.js +48 -0
  22. package/src/properties/properties.test.js +138 -0
  23. package/src/rules/rules.js +57 -0
  24. package/src/rules/rules.test.js +247 -0
  25. package/src/selectors/complexity.test.js +123 -0
  26. package/src/selectors/selectors.js +122 -0
  27. package/src/selectors/selectors.test.js +189 -0
  28. package/src/selectors/specificity.js +201 -0
  29. package/src/selectors/specificity.test.js +247 -0
  30. package/src/smoke.test.js +39 -0
  31. package/src/stylesheet/stylesheet.test.js +88 -0
  32. package/src/values/animations.js +53 -0
  33. package/src/values/animations.test.js +154 -0
  34. package/src/values/box-shadows.test.js +82 -0
  35. package/src/values/colors.js +192 -0
  36. package/src/values/colors.test.js +804 -0
  37. package/src/values/font-families.js +98 -0
  38. package/src/values/font-families.test.js +119 -0
  39. package/src/values/font-sizes.js +92 -0
  40. package/src/values/font-sizes.test.js +120 -0
  41. package/src/values/text-shadows.test.js +93 -0
  42. package/src/values/units.test.js +72 -0
  43. package/src/values/values.js +30 -0
  44. package/src/values/vendor-prefix.js +45 -0
  45. package/src/values/vendor-prefix.test.js +64 -0
  46. package/src/values/z-index.test.js +54 -0
  47. package/src/vendor-prefix.js +16 -0
  48. package/src/analyzer/atrules/charsets.js +0 -12
  49. package/src/analyzer/atrules/documents.js +0 -12
  50. package/src/analyzer/atrules/fontfaces.js +0 -30
  51. package/src/analyzer/atrules/imports.js +0 -12
  52. package/src/analyzer/atrules/index.js +0 -13
  53. package/src/analyzer/atrules/keyframes.js +0 -19
  54. package/src/analyzer/atrules/mediaqueries.js +0 -19
  55. package/src/analyzer/atrules/namespaces.js +0 -12
  56. package/src/analyzer/atrules/pages.js +0 -12
  57. package/src/analyzer/atrules/supports.js +0 -19
  58. package/src/analyzer/declarations/importants.js +0 -8
  59. package/src/analyzer/declarations/index.js +0 -13
  60. package/src/analyzer/index.js +0 -39
  61. package/src/analyzer/properties/browserhacks.js +0 -13
  62. package/src/analyzer/properties/index.js +0 -15
  63. package/src/analyzer/properties/prefixed.js +0 -13
  64. package/src/analyzer/rules/index.js +0 -53
  65. package/src/analyzer/selectors/accessibility.js +0 -14
  66. package/src/analyzer/selectors/browserhacks.js +0 -11
  67. package/src/analyzer/selectors/complexity.js +0 -44
  68. package/src/analyzer/selectors/id.js +0 -12
  69. package/src/analyzer/selectors/index.js +0 -23
  70. package/src/analyzer/selectors/js.js +0 -12
  71. package/src/analyzer/selectors/specificity.js +0 -42
  72. package/src/analyzer/selectors/universal.js +0 -13
  73. package/src/analyzer/stylesheets/browserhacks.js +0 -15
  74. package/src/analyzer/stylesheets/cohesion.js +0 -30
  75. package/src/analyzer/stylesheets/index.js +0 -33
  76. package/src/analyzer/stylesheets/lines-of-code.js +0 -14
  77. package/src/analyzer/stylesheets/simplicity.js +0 -7
  78. package/src/analyzer/stylesheets/size.js +0 -27
  79. package/src/analyzer/values/animations.js +0 -122
  80. package/src/analyzer/values/box-shadows.js +0 -17
  81. package/src/analyzer/values/browserhacks.js +0 -16
  82. package/src/analyzer/values/colors.js +0 -137
  83. package/src/analyzer/values/font-families.js +0 -30
  84. package/src/analyzer/values/font-sizes.js +0 -31
  85. package/src/analyzer/values/index.js +0 -26
  86. package/src/analyzer/values/prefixed.js +0 -22
  87. package/src/analyzer/values/text-shadows.js +0 -17
  88. package/src/analyzer/values/z-indexes.js +0 -20
  89. package/src/parser/atrules.js +0 -37
  90. package/src/parser/declarations.js +0 -15
  91. package/src/parser/index.js +0 -33
  92. package/src/parser/rules.js +0 -17
  93. package/src/parser/selectors.js +0 -26
  94. package/src/utils/css.js +0 -8
  95. package/src/utils/uniquer.js +0 -24
@@ -1,26 +0,0 @@
1
- const {isKeyframes} = require('./atrules')
2
-
3
- module.exports = tree => {
4
- const selectors = []
5
-
6
- tree.walkRules(rule => {
7
- // Don't include the 'selectors' (from, 50%, to, etc.) inside @keyframes
8
- if (isKeyframes(rule)) {
9
- return
10
- }
11
-
12
- // Get selectors: flatten the list, split each by ',' and trim the results
13
- selectors.push(...getSelectorsFromRule(rule))
14
- })
15
-
16
- return selectors
17
- }
18
-
19
- const getSelectorsFromRule = rule => {
20
- return rule.selector
21
- .split(',')
22
- .map(s => s.trim())
23
- .filter(Boolean)
24
- }
25
-
26
- module.exports.getSelectorsFromRule = getSelectorsFromRule
package/src/utils/css.js DELETED
@@ -1,8 +0,0 @@
1
- module.exports.KEYWORDS = [
2
- 'auto',
3
- 'inherit',
4
- 'initial',
5
- 'none',
6
- 'revert',
7
- 'unset'
8
- ]
@@ -1,24 +0,0 @@
1
- const stringSortFn = require('string-natural-compare')
2
-
3
- module.exports = (values, sortFn) => {
4
- sortFn =
5
- sortFn ||
6
- function(a, b) {
7
- return stringSortFn(String(a), String(b), {caseInsensitive: true})
8
- }
9
-
10
- // Create a Map of unique values and their counts
11
- const reduced = [
12
- ...values.reduce((map, value) => {
13
- return map.set(value, map.get(value) + 1 || 1)
14
- }, new Map())
15
- ].map(([value, count]) => ({value, count}))
16
-
17
- const sorted = reduced.map(element => element.value).sort(sortFn)
18
- const unique = sorted.map(value => reduced.find(r => r.value === value))
19
-
20
- return {
21
- unique,
22
- totalUnique: unique.length
23
- }
24
- }