htmlnano 2.1.1 → 2.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/README.md +53 -12
  2. package/dist/_modules/collapseAttributeWhitespace.d.mts +57 -0
  3. package/dist/_modules/collapseAttributeWhitespace.d.ts +57 -0
  4. package/dist/_modules/collapseAttributeWhitespace.js +296 -0
  5. package/dist/_modules/collapseAttributeWhitespace.mjs +293 -0
  6. package/dist/_modules/collapseBooleanAttributes.d.mts +60 -0
  7. package/dist/_modules/collapseBooleanAttributes.d.ts +60 -0
  8. package/dist/_modules/collapseBooleanAttributes.js +159 -0
  9. package/{lib/modules → dist/_modules}/collapseBooleanAttributes.mjs +39 -57
  10. package/dist/_modules/collapseWhitespace.d.mts +57 -0
  11. package/dist/_modules/collapseWhitespace.d.ts +57 -0
  12. package/dist/_modules/collapseWhitespace.js +172 -0
  13. package/dist/_modules/collapseWhitespace.mjs +170 -0
  14. package/dist/_modules/custom.d.mts +57 -0
  15. package/dist/_modules/custom.d.ts +57 -0
  16. package/dist/_modules/custom.js +22 -0
  17. package/dist/_modules/custom.mjs +20 -0
  18. package/dist/_modules/deduplicateAttributeValues.d.mts +56 -0
  19. package/dist/_modules/deduplicateAttributeValues.d.ts +56 -0
  20. package/dist/_modules/deduplicateAttributeValues.js +38 -0
  21. package/dist/_modules/deduplicateAttributeValues.mjs +36 -0
  22. package/dist/_modules/example.d.mts +59 -0
  23. package/dist/_modules/example.d.ts +59 -0
  24. package/dist/_modules/example.js +67 -0
  25. package/dist/_modules/example.mjs +65 -0
  26. package/dist/_modules/mergeScripts.d.mts +56 -0
  27. package/dist/_modules/mergeScripts.d.ts +56 -0
  28. package/dist/_modules/mergeScripts.js +53 -0
  29. package/dist/_modules/mergeScripts.mjs +51 -0
  30. package/dist/_modules/mergeStyles.d.mts +56 -0
  31. package/dist/_modules/mergeStyles.d.ts +56 -0
  32. package/dist/_modules/mergeStyles.js +42 -0
  33. package/dist/_modules/mergeStyles.mjs +40 -0
  34. package/dist/_modules/minifyConditionalComments.d.mts +56 -0
  35. package/dist/_modules/minifyConditionalComments.d.ts +56 -0
  36. package/dist/_modules/minifyConditionalComments.js +54 -0
  37. package/{lib/modules → dist/_modules}/minifyConditionalComments.mjs +21 -22
  38. package/dist/_modules/minifyCss.d.mts +56 -0
  39. package/dist/_modules/minifyCss.d.ts +56 -0
  40. package/dist/_modules/minifyCss.js +84 -0
  41. package/dist/_modules/minifyCss.mjs +82 -0
  42. package/dist/_modules/minifyJs.d.mts +56 -0
  43. package/dist/_modules/minifyJs.d.ts +56 -0
  44. package/dist/_modules/minifyJs.js +108 -0
  45. package/dist/_modules/minifyJs.mjs +106 -0
  46. package/dist/_modules/minifyJson.d.mts +56 -0
  47. package/dist/_modules/minifyJson.d.ts +56 -0
  48. package/dist/_modules/minifyJson.js +35 -0
  49. package/dist/_modules/minifyJson.mjs +33 -0
  50. package/dist/_modules/minifySvg.d.mts +56 -0
  51. package/dist/_modules/minifySvg.d.ts +56 -0
  52. package/dist/_modules/minifySvg.js +40 -0
  53. package/dist/_modules/minifySvg.mjs +38 -0
  54. package/dist/_modules/minifyUrls.d.mts +56 -0
  55. package/dist/_modules/minifyUrls.d.ts +56 -0
  56. package/dist/_modules/minifyUrls.js +180 -0
  57. package/dist/_modules/minifyUrls.mjs +178 -0
  58. package/dist/_modules/normalizeAttributeValues.d.mts +56 -0
  59. package/dist/_modules/normalizeAttributeValues.d.ts +56 -0
  60. package/dist/_modules/normalizeAttributeValues.js +234 -0
  61. package/dist/_modules/normalizeAttributeValues.mjs +232 -0
  62. package/dist/_modules/removeAttributeQuotes.d.mts +56 -0
  63. package/dist/_modules/removeAttributeQuotes.d.ts +56 -0
  64. package/dist/_modules/removeAttributeQuotes.js +15 -0
  65. package/dist/_modules/removeAttributeQuotes.mjs +13 -0
  66. package/dist/_modules/removeComments.d.mts +58 -0
  67. package/dist/_modules/removeComments.d.ts +58 -0
  68. package/dist/_modules/removeComments.js +83 -0
  69. package/{lib/modules → dist/_modules}/removeComments.mjs +24 -35
  70. package/dist/_modules/removeEmptyAttributes.d.mts +56 -0
  71. package/dist/_modules/removeEmptyAttributes.d.ts +56 -0
  72. package/dist/_modules/removeEmptyAttributes.js +197 -0
  73. package/dist/_modules/removeEmptyAttributes.mjs +195 -0
  74. package/dist/_modules/removeOptionalTags.d.mts +56 -0
  75. package/dist/_modules/removeOptionalTags.d.ts +56 -0
  76. package/dist/_modules/removeOptionalTags.js +190 -0
  77. package/{lib/modules → dist/_modules}/removeOptionalTags.mjs +54 -91
  78. package/dist/_modules/removeRedundantAttributes.d.mts +57 -0
  79. package/dist/_modules/removeRedundantAttributes.d.ts +57 -0
  80. package/dist/_modules/removeRedundantAttributes.js +128 -0
  81. package/{lib/modules → dist/_modules}/removeRedundantAttributes.mjs +43 -59
  82. package/dist/_modules/removeUnusedCss.d.mts +60 -0
  83. package/dist/_modules/removeUnusedCss.d.ts +60 -0
  84. package/dist/_modules/removeUnusedCss.js +134 -0
  85. package/dist/_modules/removeUnusedCss.mjs +132 -0
  86. package/dist/_modules/sortAttributes.d.mts +57 -0
  87. package/dist/_modules/sortAttributes.d.ts +57 -0
  88. package/dist/_modules/sortAttributes.js +102 -0
  89. package/{lib/modules → dist/_modules}/sortAttributes.mjs +39 -60
  90. package/dist/_modules/sortAttributesWithLists.d.mts +56 -0
  91. package/dist/_modules/sortAttributesWithLists.d.ts +56 -0
  92. package/dist/_modules/sortAttributesWithLists.js +118 -0
  93. package/{lib/modules → dist/_modules}/sortAttributesWithLists.mjs +41 -60
  94. package/dist/helpers.js +72 -0
  95. package/dist/helpers.mjs +63 -0
  96. package/dist/index.js +223 -0
  97. package/dist/index.mjs +209 -0
  98. package/dist/presets/ampSafe.js +19 -0
  99. package/{lib → dist}/presets/ampSafe.mjs +6 -4
  100. package/dist/presets/max.js +28 -0
  101. package/{lib → dist}/presets/max.mjs +6 -4
  102. package/dist/presets/safe.js +60 -0
  103. package/{lib → dist}/presets/safe.mjs +13 -20
  104. package/package.json +53 -59
  105. package/.eslintignore +0 -3
  106. package/CHANGELOG.md +0 -398
  107. package/docs/README.md +0 -33
  108. package/docs/babel.config.js +0 -3
  109. package/docs/docs/010-introduction.md +0 -22
  110. package/docs/docs/020-usage.md +0 -117
  111. package/docs/docs/030-config.md +0 -21
  112. package/docs/docs/040-presets.md +0 -75
  113. package/docs/docs/050-modules.md +0 -855
  114. package/docs/docs/060-contribute.md +0 -16
  115. package/docs/docusaurus.config.js +0 -65
  116. package/docs/netlify.toml +0 -4
  117. package/docs/package-lock.json +0 -21796
  118. package/docs/package.json +0 -40
  119. package/docs/sidebars.js +0 -26
  120. package/docs/versioned_docs/version-1.1.1/010-introduction.md +0 -22
  121. package/docs/versioned_docs/version-1.1.1/020-usage.md +0 -77
  122. package/docs/versioned_docs/version-1.1.1/030-config.md +0 -21
  123. package/docs/versioned_docs/version-1.1.1/040-presets.md +0 -75
  124. package/docs/versioned_docs/version-1.1.1/050-modules.md +0 -785
  125. package/docs/versioned_docs/version-1.1.1/060-contribute.md +0 -16
  126. package/docs/versioned_docs/version-2.0.0/010-introduction.md +0 -22
  127. package/docs/versioned_docs/version-2.0.0/020-usage.md +0 -77
  128. package/docs/versioned_docs/version-2.0.0/030-config.md +0 -21
  129. package/docs/versioned_docs/version-2.0.0/040-presets.md +0 -75
  130. package/docs/versioned_docs/version-2.0.0/050-modules.md +0 -838
  131. package/docs/versioned_docs/version-2.0.0/060-contribute.md +0 -16
  132. package/docs/versioned_sidebars/version-1.1.1-sidebars.json +0 -8
  133. package/docs/versioned_sidebars/version-2.0.0-sidebars.json +0 -8
  134. package/docs/versions.json +0 -4
  135. package/index.cjs +0 -11
  136. package/index.d.cts +0 -3
  137. package/index.d.mts +0 -3
  138. package/index.d.ts +0 -93
  139. package/index.mjs +0 -2
  140. package/lib/helpers.cjs +0 -79
  141. package/lib/helpers.mjs +0 -53
  142. package/lib/htmlnano.cjs +0 -200
  143. package/lib/htmlnano.mjs +0 -196
  144. package/lib/modules/collapseAttributeWhitespace.cjs +0 -86
  145. package/lib/modules/collapseAttributeWhitespace.mjs +0 -104
  146. package/lib/modules/collapseBooleanAttributes.cjs +0 -62
  147. package/lib/modules/collapseWhitespace.cjs +0 -100
  148. package/lib/modules/collapseWhitespace.mjs +0 -132
  149. package/lib/modules/custom.cjs +0 -19
  150. package/lib/modules/custom.mjs +0 -16
  151. package/lib/modules/deduplicateAttributeValues.cjs +0 -38
  152. package/lib/modules/deduplicateAttributeValues.mjs +0 -40
  153. package/lib/modules/example.cjs +0 -85
  154. package/lib/modules/example.mjs +0 -75
  155. package/lib/modules/mergeScripts.cjs +0 -54
  156. package/lib/modules/mergeScripts.mjs +0 -56
  157. package/lib/modules/mergeStyles.cjs +0 -38
  158. package/lib/modules/mergeStyles.mjs +0 -36
  159. package/lib/modules/minifyConditionalComments.cjs +0 -47
  160. package/lib/modules/minifyCss.cjs +0 -73
  161. package/lib/modules/minifyCss.mjs +0 -88
  162. package/lib/modules/minifyJs.cjs +0 -103
  163. package/lib/modules/minifyJs.mjs +0 -121
  164. package/lib/modules/minifyJson.cjs +0 -24
  165. package/lib/modules/minifyJson.mjs +0 -21
  166. package/lib/modules/minifySvg.cjs +0 -37
  167. package/lib/modules/minifySvg.mjs +0 -30
  168. package/lib/modules/minifyUrls.cjs +0 -141
  169. package/lib/modules/minifyUrls.mjs +0 -229
  170. package/lib/modules/normalizeAttributeValues.cjs +0 -120
  171. package/lib/modules/normalizeAttributeValues.mjs +0 -140
  172. package/lib/modules/removeAttributeQuotes.cjs +0 -17
  173. package/lib/modules/removeAttributeQuotes.mjs +0 -12
  174. package/lib/modules/removeComments.cjs +0 -86
  175. package/lib/modules/removeEmptyAttributes.cjs +0 -72
  176. package/lib/modules/removeEmptyAttributes.mjs +0 -121
  177. package/lib/modules/removeOptionalTags.cjs +0 -183
  178. package/lib/modules/removeRedundantAttributes.cjs +0 -112
  179. package/lib/modules/removeUnusedCss.cjs +0 -113
  180. package/lib/modules/removeUnusedCss.mjs +0 -122
  181. package/lib/modules/sortAttributes.cjs +0 -99
  182. package/lib/modules/sortAttributesWithLists.cjs +0 -115
  183. package/lib/presets/ampSafe.cjs +0 -18
  184. package/lib/presets/max.cjs +0 -27
  185. package/lib/presets/safe.cjs +0 -65
  186. package/test.js +0 -48
@@ -0,0 +1,60 @@
1
+ Object.defineProperty(exports, '__esModule', { value: true });
2
+
3
+ /**
4
+ * Minify HTML in a safe way without breaking anything.
5
+ */ var safe = {
6
+ /* ----------------------------------------
7
+ * Attributes
8
+ * ---------------------------------------- */ // normalize the case of attribute names and values
9
+ // normalizeAttributeValues will also normalize property value with invalid value default
10
+ // See https://html.spec.whatwg.org/#invalid-value-default
11
+ normalizeAttributeValues: true,
12
+ removeEmptyAttributes: true,
13
+ collapseAttributeWhitespace: true,
14
+ // removeRedundantAttributes will remove attributes when missing value default matches the attribute's value
15
+ // See https://html.spec.whatwg.org/#missing-value-default
16
+ removeRedundantAttributes: false,
17
+ // collapseBooleanAttributes will also collapse those default state can be omitted
18
+ collapseBooleanAttributes: {
19
+ amphtml: false
20
+ },
21
+ deduplicateAttributeValues: true,
22
+ minifyUrls: false,
23
+ sortAttributes: false,
24
+ sortAttributesWithLists: 'alphabetical',
25
+ /* ----------------------------------------
26
+ * Minify HTML content
27
+ * ---------------------------------------- */ collapseWhitespace: 'conservative',
28
+ removeComments: 'safe',
29
+ minifyConditionalComments: false,
30
+ removeOptionalTags: false,
31
+ removeAttributeQuotes: false,
32
+ /* ----------------------------------------
33
+ * Minify inline <style>, <script> and <svg> tag
34
+ * ---------------------------------------- */ mergeStyles: false,
35
+ mergeScripts: false,
36
+ minifyCss: {
37
+ preset: 'default'
38
+ },
39
+ minifyJs: {},
40
+ minifyJson: {},
41
+ minifySvg: {
42
+ plugins: [
43
+ {
44
+ name: 'preset-default',
45
+ params: {
46
+ overrides: {
47
+ collapseGroups: false,
48
+ convertShapeToPath: false
49
+ }
50
+ }
51
+ }
52
+ ]
53
+ },
54
+ removeUnusedCss: false,
55
+ /* ----------------------------------------
56
+ * Miscellaneous
57
+ * ---------------------------------------- */ custom: (tree, _options)=>tree
58
+ };
59
+
60
+ exports.default = safe;
@@ -1,11 +1,9 @@
1
1
  /**
2
2
  * Minify HTML in a safe way without breaking anything.
3
- */
4
- export default {
3
+ */ var safe = {
5
4
  /* ----------------------------------------
6
5
  * Attributes
7
- * ---------------------------------------- */
8
- // normalize the case of attribute names and values
6
+ * ---------------------------------------- */ // normalize the case of attribute names and values
9
7
  // normalizeAttributeValues will also normalize property value with invalid value default
10
8
  // See https://html.spec.whatwg.org/#invalid-value-default
11
9
  normalizeAttributeValues: true,
@@ -16,30 +14,25 @@ export default {
16
14
  removeRedundantAttributes: false,
17
15
  // collapseBooleanAttributes will also collapse those default state can be omitted
18
16
  collapseBooleanAttributes: {
19
- amphtml: false,
17
+ amphtml: false
20
18
  },
21
19
  deduplicateAttributeValues: true,
22
-
23
20
  minifyUrls: false,
24
-
25
21
  sortAttributes: false,
26
22
  sortAttributesWithLists: 'alphabetical',
27
-
28
23
  /* ----------------------------------------
29
24
  * Minify HTML content
30
- * ---------------------------------------- */
31
- collapseWhitespace: 'conservative',
25
+ * ---------------------------------------- */ collapseWhitespace: 'conservative',
32
26
  removeComments: 'safe',
33
27
  minifyConditionalComments: false,
34
28
  removeOptionalTags: false,
35
29
  removeAttributeQuotes: false,
36
30
  /* ----------------------------------------
37
31
  * Minify inline <style>, <script> and <svg> tag
38
- * ---------------------------------------- */
39
- mergeStyles: false,
32
+ * ---------------------------------------- */ mergeStyles: false,
40
33
  mergeScripts: false,
41
34
  minifyCss: {
42
- preset: 'default',
35
+ preset: 'default'
43
36
  },
44
37
  minifyJs: {},
45
38
  minifyJson: {},
@@ -50,16 +43,16 @@ export default {
50
43
  params: {
51
44
  overrides: {
52
45
  collapseGroups: false,
53
- convertShapeToPath: false,
54
- },
55
- },
56
- },
46
+ convertShapeToPath: false
47
+ }
48
+ }
49
+ }
57
50
  ]
58
51
  },
59
52
  removeUnusedCss: false,
60
-
61
53
  /* ----------------------------------------
62
54
  * Miscellaneous
63
- * ---------------------------------------- */
64
- custom: []
55
+ * ---------------------------------------- */ custom: (tree, _options)=>tree
65
56
  };
57
+
58
+ export { safe as default };
package/package.json CHANGED
@@ -1,34 +1,46 @@
1
1
  {
2
2
  "name": "htmlnano",
3
- "version": "2.1.1",
3
+ "version": "2.1.3",
4
4
  "description": "Modular HTML minifier, built on top of the PostHTML",
5
- "main": "index.cjs",
6
- "module": "index.mjs",
7
- "source": "index.mjs",
8
- "exports": {
9
- ".": {
10
- "require": "./index.cjs",
11
- "import": "./index.mjs"
12
- },
13
- "./index.mjs": {
14
- "import": "./index.mjs"
15
- },
16
- "./index.cjs": {
17
- "require": "./index.cjs"
18
- }
19
- },
20
- "types": "index.d.ts",
21
5
  "author": "Kirill Maltsev <maltsevkirill@gmail.com>",
22
6
  "license": "MIT",
23
7
  "scripts": {
24
- "clean": "rimraf lib/*.cjs lib/**/*.cjs",
25
- "compile": "npm run clean && babel -d lib/ lib/ --out-file-extension .cjs",
26
- "lint": "eslint --fix *.mjs lib/*.mjs lib/**/*.mjs test/*.mjs test/**/*.mjs",
8
+ "clean": "rimraf dist",
9
+ "build": "npm run clean && bunchee",
10
+ "compile": "npm run build",
11
+ "lint": "eslint --fix .",
27
12
  "pretest": "npm run lint && npm run compile",
28
13
  "test": ":",
29
- "posttest": "mocha --timeout 5000 --require @babel/register --recursive --check-leaks --globals addresses",
14
+ "posttest": "mocha --timeout 5000 --require @swc-node/register --recursive --check-leaks --globals addresses",
30
15
  "prepare": "npm run compile"
31
16
  },
17
+ "files": [
18
+ "dist"
19
+ ],
20
+ "main": "./dist/index.js",
21
+ "module": "./dist/index.mjs",
22
+ "exports": {
23
+ "./helpers": {
24
+ "import": "./dist/helpers.mjs",
25
+ "require": "./dist/helpers.js"
26
+ },
27
+ ".": {
28
+ "import": "./dist/index.mjs",
29
+ "require": "./dist/index.js"
30
+ },
31
+ "./presets/ampSafe": {
32
+ "import": "./dist/presets/ampSafe.mjs",
33
+ "require": "./dist/presets/ampSafe.js"
34
+ },
35
+ "./presets/max": {
36
+ "import": "./dist/presets/max.mjs",
37
+ "require": "./dist/presets/max.js"
38
+ },
39
+ "./presets/safe": {
40
+ "import": "./dist/presets/safe.mjs",
41
+ "require": "./dist/presets/safe.js"
42
+ }
43
+ },
32
44
  "keywords": [
33
45
  "posthtml",
34
46
  "posthtml-plugin",
@@ -36,59 +48,40 @@
36
48
  "postproccessor",
37
49
  "minifier"
38
50
  ],
39
- "babel": {
40
- "presets": [
41
- [
42
- "@babel/env",
43
- {
44
- "targets": {
45
- "node": 10
46
- }
47
- }
48
- ]
49
- ],
50
- "plugins": [
51
- [
52
- "@aminya/babel-plugin-replace-import-extension",
53
- {
54
- "extMapping": {
55
- ".mjs": ".cjs"
56
- }
57
- }
58
- ]
59
- ]
60
- },
61
51
  "dependencies": {
52
+ "@types/relateurl": "^0.2.33",
62
53
  "cosmiconfig": "^9.0.0",
63
- "posthtml": "^0.16.5",
64
- "timsort": "^0.3.0"
54
+ "posthtml": "^0.16.5"
65
55
  },
66
56
  "devDependencies": {
67
- "@babel/cli": "^7.15.7",
68
- "@babel/core": "^7.15.5",
69
- "@babel/eslint-parser": "^7.17.0",
70
- "@babel/preset-env": "^7.15.6",
71
- "@babel/register": "^7.15.3",
72
- "@aminya/babel-plugin-replace-import-extension": "1.2.0",
57
+ "@stylistic/eslint-plugin": "^5.3.1",
58
+ "@swc-node/register": "^1.10.10",
59
+ "@types/node": "^24.0.0",
60
+ "bunchee": "^6.5.1",
73
61
  "cssnano": "^7.0.0",
74
- "eslint": "^8.12.0",
62
+ "eslint": "^9.25.1",
63
+ "eslint-config-flat-gitignore": "^2.1.0",
75
64
  "eslint-plugin-import": "^2.28.1",
76
- "eslint-plugin-path-import-extension": "^0.9.0",
77
- "expect": "^29.0.0",
78
- "mocha": "^10.1.0",
65
+ "eslint-plugin-import-x": "^4.11.0",
66
+ "eslint-plugin-unused-imports": "^4.1.4",
67
+ "expect": "^30.1.1",
68
+ "globals": "^16.0.0",
69
+ "mocha": "^11.0.1",
79
70
  "postcss": "^8.3.11",
80
- "purgecss": "^6.0.0",
71
+ "purgecss": "^7.0.2",
81
72
  "relateurl": "^0.2.7",
82
- "rimraf": "^5.0.0",
73
+ "rimraf": "^6.0.0",
83
74
  "srcset": "5.0.1",
84
75
  "svgo": "^3.0.2",
85
76
  "terser": "^5.21.0",
77
+ "typescript": "^5.8.3",
78
+ "typescript-eslint": "^8.31.1",
86
79
  "uncss": "^0.17.3"
87
80
  },
88
81
  "peerDependencies": {
89
82
  "cssnano": "^7.0.0",
90
83
  "postcss": "^8.3.11",
91
- "purgecss": "^6.0.0",
84
+ "purgecss": "^7.0.2",
92
85
  "relateurl": "^0.2.7",
93
86
  "srcset": "5.0.1",
94
87
  "svgo": "^3.0.2",
@@ -128,5 +121,6 @@
128
121
  "bugs": {
129
122
  "url": "https://github.com/posthtml/htmlnano/issues"
130
123
  },
131
- "homepage": "https://github.com/posthtml/htmlnano"
124
+ "homepage": "https://github.com/posthtml/htmlnano",
125
+ "packageManager": "pnpm@10.10.0+sha512.d615db246fe70f25dcfea6d8d73dee782ce23e2245e3c4f6f888249fb568149318637dca73c2c5c8ef2a4ca0d5657fb9567188bfab47f566d1ee6ce987815c39"
132
126
  }
package/.eslintignore DELETED
@@ -1,3 +0,0 @@
1
- lib/modules/example.mjs
2
- test.mjs
3
- **/*.cjs