@askviraj/linter 1.1.2 → 1.1.4

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 (651) hide show
  1. package/node_modules/{synckit → @astrojs/compiler-binding}/LICENSE +1 -1
  2. package/node_modules/@astrojs/compiler-binding/browser.js +1 -0
  3. package/node_modules/@astrojs/compiler-binding/index.d.ts +337 -0
  4. package/node_modules/@astrojs/compiler-binding/index.js +599 -0
  5. package/node_modules/@astrojs/compiler-binding/package.json +83 -0
  6. package/node_modules/@astrojs/compiler-binding/webcontainer-fallback.cjs +23 -0
  7. package/node_modules/@astrojs/compiler-binding-linux-x64-gnu/README.md +3 -0
  8. package/node_modules/@astrojs/compiler-binding-linux-x64-gnu/astro.linux-x64-gnu.node +0 -0
  9. package/node_modules/@astrojs/compiler-binding-linux-x64-gnu/package.json +40 -0
  10. package/node_modules/{parse5 → @astrojs/compiler-rs}/LICENSE +7 -5
  11. package/node_modules/@astrojs/compiler-rs/README.md +62 -0
  12. package/node_modules/@astrojs/compiler-rs/async.d.ts +1 -0
  13. package/node_modules/@astrojs/compiler-rs/dist/async.d.mts +9 -0
  14. package/node_modules/@astrojs/compiler-rs/dist/async.mjs +1 -0
  15. package/node_modules/@astrojs/compiler-rs/dist/index.d.mts +9 -0
  16. package/node_modules/@astrojs/compiler-rs/dist/index.mjs +1 -0
  17. package/node_modules/@astrojs/compiler-rs/dist/shared.d.mts +45 -0
  18. package/node_modules/@astrojs/compiler-rs/dist/shared.mjs +1 -0
  19. package/node_modules/@astrojs/compiler-rs/dist/types.d.mts +94 -0
  20. package/node_modules/@astrojs/compiler-rs/dist/types.mjs +1 -0
  21. package/node_modules/@astrojs/compiler-rs/dist/utils.d.mts +4 -0
  22. package/node_modules/@astrojs/compiler-rs/dist/utils.mjs +1 -0
  23. package/node_modules/@astrojs/compiler-rs/package.json +55 -0
  24. package/node_modules/@astrojs/compiler-rs/types.d.ts +1 -0
  25. package/node_modules/@eslint/config-helpers/README.md +2 -2
  26. package/node_modules/@eslint/config-helpers/dist/cjs/index.cjs +27 -26
  27. package/node_modules/@eslint/config-helpers/dist/cjs/index.d.cts +13 -12
  28. package/node_modules/@eslint/config-helpers/dist/cjs/types.cts +4 -2
  29. package/node_modules/@eslint/config-helpers/dist/esm/index.d.ts +13 -12
  30. package/node_modules/@eslint/config-helpers/dist/esm/index.js +27 -26
  31. package/node_modules/@eslint/config-helpers/dist/esm/types.d.ts +2 -0
  32. package/node_modules/@eslint/config-helpers/dist/esm/types.ts +4 -2
  33. package/node_modules/@eslint/config-helpers/package.json +1 -1
  34. package/node_modules/@eslint/css/README.md +2 -2
  35. package/node_modules/@eslint/css/dist/build/rules.d.ts +75 -21
  36. package/node_modules/@eslint/css/dist/build/rules.js +15 -15
  37. package/node_modules/@eslint/css/dist/data/baseline-data.js +256 -32
  38. package/node_modules/@eslint/css/dist/index.js +1 -1
  39. package/node_modules/@eslint/css/dist/rules/font-family-fallbacks.d.ts +15 -15
  40. package/node_modules/@eslint/css/dist/rules/font-family-fallbacks.js +2 -5
  41. package/node_modules/@eslint/css/dist/rules/no-duplicate-imports.d.ts +18 -18
  42. package/node_modules/@eslint/css/dist/rules/no-duplicate-imports.js +9 -12
  43. package/node_modules/@eslint/css/dist/rules/no-duplicate-keyframe-selectors.d.ts +14 -14
  44. package/node_modules/@eslint/css/dist/rules/no-duplicate-keyframe-selectors.js +2 -3
  45. package/node_modules/@eslint/css/dist/rules/no-empty-blocks.d.ts +14 -14
  46. package/node_modules/@eslint/css/dist/rules/no-empty-blocks.js +2 -3
  47. package/node_modules/@eslint/css/dist/rules/no-important.d.ts +16 -16
  48. package/node_modules/@eslint/css/dist/rules/no-important.js +2 -3
  49. package/node_modules/@eslint/css/dist/rules/no-invalid-at-rule-placement.d.ts +16 -16
  50. package/node_modules/@eslint/css/dist/rules/no-invalid-at-rule-placement.js +2 -3
  51. package/node_modules/@eslint/css/dist/rules/no-invalid-at-rules.d.ts +21 -21
  52. package/node_modules/@eslint/css/dist/rules/no-invalid-at-rules.js +2 -3
  53. package/node_modules/@eslint/css/dist/rules/no-invalid-named-grid-areas.d.ts +16 -16
  54. package/node_modules/@eslint/css/dist/rules/no-invalid-named-grid-areas.js +2 -3
  55. package/node_modules/@eslint/css/dist/rules/no-invalid-properties.d.ts +18 -18
  56. package/node_modules/@eslint/css/dist/rules/no-invalid-properties.js +2 -3
  57. package/node_modules/@eslint/css/dist/rules/no-unmatchable-selectors.d.ts +14 -14
  58. package/node_modules/@eslint/css/dist/rules/no-unmatchable-selectors.js +2 -3
  59. package/node_modules/@eslint/css/dist/rules/prefer-logical-properties.d.ts +22 -19
  60. package/node_modules/@eslint/css/dist/rules/prefer-logical-properties.js +66 -23
  61. package/node_modules/@eslint/css/dist/rules/relative-font-units.d.ts +16 -16
  62. package/node_modules/@eslint/css/dist/rules/relative-font-units.js +13 -7
  63. package/node_modules/@eslint/css/dist/rules/selector-complexity.d.ts +17 -17
  64. package/node_modules/@eslint/css/dist/rules/selector-complexity.js +2 -3
  65. package/node_modules/@eslint/css/dist/rules/use-baseline.d.ts +22 -22
  66. package/node_modules/@eslint/css/dist/rules/use-baseline.js +2 -3
  67. package/node_modules/@eslint/css/dist/rules/use-layers.d.ts +18 -18
  68. package/node_modules/@eslint/css/dist/rules/use-layers.js +3 -4
  69. package/node_modules/@eslint/css/package.json +7 -12
  70. package/node_modules/@eslint/css-tree/README.md +2 -2
  71. package/node_modules/@eslint/css-tree/dist/csstree.esm.js +1 -1
  72. package/node_modules/@eslint/css-tree/dist/csstree.js +1 -1
  73. package/node_modules/@eslint/css-tree/dist/data.cjs +4 -1
  74. package/node_modules/@eslint/css-tree/dist/data.js +4 -1
  75. package/node_modules/@eslint/css-tree/dist/version.cjs +1 -1
  76. package/node_modules/@eslint/css-tree/dist/version.js +1 -1
  77. package/node_modules/@eslint/css-tree/package.json +3 -3
  78. package/node_modules/@eslint/json/README.md +2 -2
  79. package/node_modules/@eslint/json/dist/index.js +1 -1
  80. package/node_modules/@eslint/json/package.json +4 -9
  81. package/node_modules/@eslint/markdown/README.md +3 -3
  82. package/node_modules/@eslint/markdown/dist/build/rules.d.ts +105 -27
  83. package/node_modules/@eslint/markdown/dist/build/rules.js +21 -21
  84. package/node_modules/@eslint/markdown/dist/index.d.ts +2 -2
  85. package/node_modules/@eslint/markdown/dist/index.js +4 -4
  86. package/node_modules/@eslint/markdown/dist/processor.d.ts +4 -9
  87. package/node_modules/@eslint/markdown/dist/processor.js +12 -15
  88. package/node_modules/@eslint/markdown/dist/rules/fenced-code-language.d.ts +17 -17
  89. package/node_modules/@eslint/markdown/dist/rules/fenced-code-language.js +2 -3
  90. package/node_modules/@eslint/markdown/dist/rules/fenced-code-meta.d.ts +17 -17
  91. package/node_modules/@eslint/markdown/dist/rules/fenced-code-meta.js +2 -3
  92. package/node_modules/@eslint/markdown/dist/rules/heading-increment.d.ts +16 -16
  93. package/node_modules/@eslint/markdown/dist/rules/heading-increment.js +2 -3
  94. package/node_modules/@eslint/markdown/dist/rules/no-bare-urls.d.ts +14 -14
  95. package/node_modules/@eslint/markdown/dist/rules/no-bare-urls.js +2 -3
  96. package/node_modules/@eslint/markdown/dist/rules/no-duplicate-definitions.d.ts +17 -17
  97. package/node_modules/@eslint/markdown/dist/rules/no-duplicate-definitions.js +2 -3
  98. package/node_modules/@eslint/markdown/dist/rules/no-duplicate-headings.d.ts +15 -15
  99. package/node_modules/@eslint/markdown/dist/rules/no-duplicate-headings.js +2 -3
  100. package/node_modules/@eslint/markdown/dist/rules/no-empty-definitions.d.ts +17 -17
  101. package/node_modules/@eslint/markdown/dist/rules/no-empty-definitions.js +2 -3
  102. package/node_modules/@eslint/markdown/dist/rules/no-empty-images.d.ts +14 -14
  103. package/node_modules/@eslint/markdown/dist/rules/no-empty-images.js +2 -3
  104. package/node_modules/@eslint/markdown/dist/rules/no-empty-links.d.ts +14 -14
  105. package/node_modules/@eslint/markdown/dist/rules/no-empty-links.js +2 -3
  106. package/node_modules/@eslint/markdown/dist/rules/no-html.d.ts +15 -15
  107. package/node_modules/@eslint/markdown/dist/rules/no-html.js +2 -3
  108. package/node_modules/@eslint/markdown/dist/rules/no-invalid-label-refs.d.ts +14 -14
  109. package/node_modules/@eslint/markdown/dist/rules/no-invalid-label-refs.js +2 -3
  110. package/node_modules/@eslint/markdown/dist/rules/no-missing-atx-heading-space.d.ts +17 -17
  111. package/node_modules/@eslint/markdown/dist/rules/no-missing-atx-heading-space.js +2 -3
  112. package/node_modules/@eslint/markdown/dist/rules/no-missing-label-refs.d.ts +16 -16
  113. package/node_modules/@eslint/markdown/dist/rules/no-missing-label-refs.js +2 -3
  114. package/node_modules/@eslint/markdown/dist/rules/no-missing-link-fragments.d.ts +16 -16
  115. package/node_modules/@eslint/markdown/dist/rules/no-missing-link-fragments.js +2 -3
  116. package/node_modules/@eslint/markdown/dist/rules/no-multiple-h1.d.ts +16 -16
  117. package/node_modules/@eslint/markdown/dist/rules/no-multiple-h1.js +2 -3
  118. package/node_modules/@eslint/markdown/dist/rules/no-reference-like-urls.d.ts +15 -15
  119. package/node_modules/@eslint/markdown/dist/rules/no-reference-like-urls.js +2 -3
  120. package/node_modules/@eslint/markdown/dist/rules/no-reversed-media-syntax.d.ts +15 -15
  121. package/node_modules/@eslint/markdown/dist/rules/no-reversed-media-syntax.js +2 -3
  122. package/node_modules/@eslint/markdown/dist/rules/no-space-in-emphasis.d.ts +17 -17
  123. package/node_modules/@eslint/markdown/dist/rules/no-space-in-emphasis.js +2 -3
  124. package/node_modules/@eslint/markdown/dist/rules/no-unused-definitions.d.ts +17 -17
  125. package/node_modules/@eslint/markdown/dist/rules/no-unused-definitions.js +2 -3
  126. package/node_modules/@eslint/markdown/dist/rules/require-alt-text.d.ts +14 -14
  127. package/node_modules/@eslint/markdown/dist/rules/require-alt-text.js +2 -3
  128. package/node_modules/@eslint/markdown/dist/rules/table-column-count.d.ts +17 -17
  129. package/node_modules/@eslint/markdown/dist/rules/table-column-count.js +2 -3
  130. package/node_modules/@eslint/markdown/package.json +5 -10
  131. package/node_modules/@eslint-community/eslint-utils/index.js +1 -1
  132. package/node_modules/@eslint-community/eslint-utils/index.js.map +1 -1
  133. package/node_modules/@eslint-community/eslint-utils/index.mjs +1 -1
  134. package/node_modules/@eslint-community/eslint-utils/index.mjs.map +1 -1
  135. package/node_modules/@eslint-community/eslint-utils/package.json +12 -7
  136. package/node_modules/@html-eslint/core/dist/index.js +1 -0
  137. package/node_modules/@html-eslint/core/dist/index.js.map +1 -1
  138. package/node_modules/@html-eslint/core/dist/index.mjs +1 -0
  139. package/node_modules/@html-eslint/core/dist/index.mjs.map +1 -1
  140. package/node_modules/@html-eslint/core/package.json +3 -3
  141. package/node_modules/@html-eslint/eslint-plugin/lib/rules/require-content.js +20 -1
  142. package/node_modules/@html-eslint/eslint-plugin/lib/rules/require-input-label.js +110 -8
  143. package/node_modules/@html-eslint/eslint-plugin/lib/rules/utils/node.js +13 -0
  144. package/node_modules/@html-eslint/eslint-plugin/package.json +7 -7
  145. package/node_modules/@html-eslint/eslint-plugin/types/rules/require-content.d.ts.map +1 -1
  146. package/node_modules/@html-eslint/eslint-plugin/types/rules/require-input-label.d.ts.map +1 -1
  147. package/node_modules/@html-eslint/eslint-plugin/types/rules/utils/node.d.ts +7 -0
  148. package/node_modules/@html-eslint/eslint-plugin/types/rules/utils/node.d.ts.map +1 -1
  149. package/node_modules/@html-eslint/parser/lib/parser.js +0 -1
  150. package/node_modules/@html-eslint/parser/package.json +4 -4
  151. package/node_modules/@html-eslint/parser/types/parser.d.ts.map +1 -1
  152. package/node_modules/@html-eslint/template-parser/package.json +3 -3
  153. package/node_modules/@html-eslint/template-syntax-parser/package.json +3 -3
  154. package/node_modules/@html-eslint/types/package.json +2 -2
  155. package/node_modules/@rviscomi/capo.js/README.md +4 -4
  156. package/node_modules/@rviscomi/capo.js/dist/adapters/adapter.cjs +7 -2
  157. package/node_modules/@rviscomi/capo.js/dist/adapters/browser.cjs +31 -3
  158. package/node_modules/@rviscomi/capo.js/dist/adapters/index.cjs +36 -4
  159. package/node_modules/@rviscomi/capo.js/dist/adapters/test-suite.cjs +6 -1
  160. package/node_modules/@rviscomi/capo.js/dist/analyzer.cjs +53 -24
  161. package/node_modules/@rviscomi/capo.js/dist/chrome/README.md +53 -0
  162. package/node_modules/@rviscomi/capo.js/{crx → dist/chrome}/capo.html +1 -1
  163. package/node_modules/@rviscomi/capo.js/dist/chrome/capo.js +3 -0
  164. package/node_modules/@rviscomi/capo.js/{crx → dist/chrome}/chrome.js +56 -18
  165. package/node_modules/@rviscomi/capo.js/dist/chrome/manifest.json +26 -0
  166. package/node_modules/@rviscomi/capo.js/dist/chrome/options/options.js +1 -0
  167. package/node_modules/@rviscomi/capo.js/dist/chrome.zip +0 -0
  168. package/node_modules/@rviscomi/capo.js/dist/firefox/README.md +53 -0
  169. package/node_modules/@rviscomi/capo.js/dist/firefox/background.js +7 -0
  170. package/node_modules/@rviscomi/capo.js/dist/firefox/capo.css +59 -0
  171. package/node_modules/@rviscomi/capo.js/dist/firefox/capo.html +12 -0
  172. package/node_modules/@rviscomi/capo.js/dist/firefox/capo.js +3 -0
  173. package/node_modules/@rviscomi/capo.js/dist/firefox/chrome.js +120 -0
  174. package/node_modules/@rviscomi/capo.js/dist/firefox/images/icon128.png +0 -0
  175. package/node_modules/@rviscomi/capo.js/dist/firefox/manifest.json +39 -0
  176. package/node_modules/@rviscomi/capo.js/dist/firefox/options/options.css +81 -0
  177. package/node_modules/@rviscomi/capo.js/dist/firefox/options/options.html +43 -0
  178. package/node_modules/@rviscomi/capo.js/dist/firefox/options/options.js +1 -0
  179. package/node_modules/@rviscomi/capo.js/dist/firefox/styles/open-props.css +291 -0
  180. package/node_modules/@rviscomi/capo.js/dist/firefox.zip +0 -0
  181. package/node_modules/@rviscomi/capo.js/dist/index.cjs +93 -33
  182. package/node_modules/@rviscomi/capo.js/dist/lib/colors.cjs +1 -0
  183. package/node_modules/@rviscomi/capo.js/dist/lib/io.cjs +137 -28
  184. package/node_modules/@rviscomi/capo.js/dist/lib/options.cjs +61 -0
  185. package/node_modules/@rviscomi/capo.js/dist/lib/rules.cjs +28 -13
  186. package/node_modules/@rviscomi/capo.js/dist/lib/validation.cjs +31 -16
  187. package/node_modules/@rviscomi/capo.js/dist/source.zip +0 -0
  188. package/node_modules/@rviscomi/capo.js/dist/types/adapters/adapter.d.ts +105 -0
  189. package/node_modules/@rviscomi/capo.js/dist/types/adapters/browser.d.ts +107 -0
  190. package/node_modules/@rviscomi/capo.js/dist/types/adapters/index.d.ts +7 -0
  191. package/node_modules/@rviscomi/capo.js/dist/types/adapters/test-suite.d.ts +52 -0
  192. package/node_modules/@rviscomi/capo.js/dist/types/analyzer.d.ts +195 -0
  193. package/node_modules/@rviscomi/capo.js/dist/types/index.d.ts +29 -0
  194. package/node_modules/@rviscomi/capo.js/dist/types/lib/colors.d.ts +20 -0
  195. package/node_modules/@rviscomi/capo.js/dist/types/lib/io.d.ts +166 -0
  196. package/node_modules/@rviscomi/capo.js/dist/types/lib/options.d.ts +114 -0
  197. package/node_modules/@rviscomi/capo.js/dist/types/lib/rules.d.ts +111 -0
  198. package/node_modules/@rviscomi/capo.js/dist/types/lib/validation.d.ts +61 -0
  199. package/node_modules/@rviscomi/capo.js/dist/types/src/adapters/adapter.d.ts +105 -0
  200. package/node_modules/@rviscomi/capo.js/dist/types/src/adapters/browser.d.ts +107 -0
  201. package/node_modules/@rviscomi/capo.js/dist/types/src/adapters/index.d.ts +7 -0
  202. package/node_modules/@rviscomi/capo.js/dist/types/src/adapters/test-suite.d.ts +52 -0
  203. package/node_modules/@rviscomi/capo.js/dist/types/src/analyzer.d.ts +195 -0
  204. package/node_modules/@rviscomi/capo.js/dist/types/src/index.d.ts +13 -0
  205. package/node_modules/@rviscomi/capo.js/dist/types/src/lib/colors.d.ts +20 -0
  206. package/node_modules/@rviscomi/capo.js/dist/types/src/lib/io.d.ts +166 -0
  207. package/node_modules/@rviscomi/capo.js/dist/types/src/lib/options.d.ts +114 -0
  208. package/node_modules/@rviscomi/capo.js/dist/types/src/lib/rules.d.ts +111 -0
  209. package/node_modules/@rviscomi/capo.js/dist/types/src/lib/validation.d.ts +61 -0
  210. package/node_modules/@rviscomi/capo.js/package.json +34 -16
  211. package/node_modules/@rviscomi/capo.js/src/adapters/adapter.js +16 -5
  212. package/node_modules/@rviscomi/capo.js/src/adapters/browser.js +30 -4
  213. package/node_modules/@rviscomi/capo.js/src/adapters/test-suite.js +11 -10
  214. package/node_modules/@rviscomi/capo.js/src/analyzer.js +47 -25
  215. package/node_modules/@rviscomi/capo.js/src/extension/README.md +53 -0
  216. package/node_modules/@rviscomi/capo.js/src/extension/background.js +7 -0
  217. package/node_modules/@rviscomi/capo.js/src/extension/capo.css +59 -0
  218. package/node_modules/@rviscomi/capo.js/src/extension/capo.html +12 -0
  219. package/node_modules/@rviscomi/capo.js/src/extension/capo.js +93 -0
  220. package/node_modules/@rviscomi/capo.js/src/extension/chrome.js +120 -0
  221. package/node_modules/@rviscomi/capo.js/src/extension/images/icon128.png +0 -0
  222. package/node_modules/@rviscomi/capo.js/src/extension/images/icon256.png +0 -0
  223. package/node_modules/@rviscomi/capo.js/{crx → src/extension}/manifest.json +1 -1
  224. package/node_modules/@rviscomi/capo.js/src/extension/options/options.css +81 -0
  225. package/node_modules/@rviscomi/capo.js/src/extension/options/options.html +43 -0
  226. package/node_modules/@rviscomi/capo.js/src/extension/options.js +87 -0
  227. package/node_modules/@rviscomi/capo.js/src/extension/styles/open-props.css +291 -0
  228. package/node_modules/@rviscomi/capo.js/src/index.js +10 -0
  229. package/node_modules/@rviscomi/capo.js/src/lib/colors.js +14 -0
  230. package/node_modules/@rviscomi/capo.js/src/lib/io.js +171 -32
  231. package/node_modules/@rviscomi/capo.js/src/lib/options.js +82 -1
  232. package/node_modules/@rviscomi/capo.js/src/lib/rules.js +120 -43
  233. package/node_modules/@rviscomi/capo.js/src/lib/validation.js +211 -86
  234. package/node_modules/@rviscomi/capo.js/src/web/capo.js +5 -8
  235. package/node_modules/@types/hast/README.md +2 -2
  236. package/node_modules/@types/hast/index.d.ts +642 -0
  237. package/node_modules/@types/hast/package.json +9 -3
  238. package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslintrc/all.d.ts +0 -4
  239. package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslintrc/all.js +0 -4
  240. package/node_modules/@typescript-eslint/eslint-plugin/dist/configs/flat/all.js +0 -4
  241. package/node_modules/@typescript-eslint/eslint-plugin/dist/index.d.ts +0 -4
  242. package/node_modules/@typescript-eslint/eslint-plugin/dist/index.js +47 -0
  243. package/node_modules/@typescript-eslint/eslint-plugin/dist/raw-plugin.d.ts +0 -4
  244. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-ts-comment.js +4 -4
  245. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/method-signature-style.d.ts +1 -1
  246. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/method-signature-style.js +23 -10
  247. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-base-to-string.js +1 -1
  248. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-loop-func.js +16 -2
  249. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-promises.js +41 -3
  250. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-restricted-imports.js +12 -0
  251. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-shadow.d.ts +1 -1
  252. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-shadow.js +5 -4
  253. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-this-alias.js +1 -1
  254. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-parameter-property-assignment.js +1 -1
  255. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-template-expression.js +2 -2
  256. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-assertion.js +5 -1
  257. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars.js +1 -1
  258. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-string-starts-ends-with.js +2 -1
  259. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/require-array-sort-compare.js +1 -1
  260. package/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unbound-method.js +36 -9
  261. package/node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore/index.js +11 -2
  262. package/node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore/legacy.js +11 -2
  263. package/node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore/package.json +1 -1
  264. package/node_modules/@typescript-eslint/eslint-plugin/package.json +22 -11
  265. package/node_modules/@typescript-eslint/parser/dist/index.js +47 -0
  266. package/node_modules/@typescript-eslint/parser/dist/parser.js +11 -6
  267. package/node_modules/@typescript-eslint/parser/package.json +9 -7
  268. package/node_modules/@typescript-eslint/project-service/package.json +7 -5
  269. package/node_modules/@typescript-eslint/scope-manager/dist/scope/FunctionScope.js +2 -2
  270. package/node_modules/@typescript-eslint/scope-manager/dist/scope/index.d.ts +1 -0
  271. package/node_modules/@typescript-eslint/scope-manager/dist/scope/index.js +1 -0
  272. package/node_modules/@typescript-eslint/scope-manager/package.json +8 -6
  273. package/node_modules/@typescript-eslint/tsconfig-utils/package.json +5 -3
  274. package/node_modules/@typescript-eslint/type-utils/package.json +9 -7
  275. package/node_modules/@typescript-eslint/types/dist/generated/ast-spec.d.ts +10 -0
  276. package/node_modules/@typescript-eslint/types/dist/parser-options.d.ts +13 -0
  277. package/node_modules/@typescript-eslint/types/package.json +5 -3
  278. package/node_modules/@typescript-eslint/typescript-estree/dist/check-syntax-errors.js +22 -6
  279. package/node_modules/@typescript-eslint/typescript-estree/dist/convert.js +5 -4
  280. package/node_modules/@typescript-eslint/typescript-estree/dist/getImportClausePhaseModifier.d.ts +4 -0
  281. package/node_modules/@typescript-eslint/typescript-estree/dist/getImportClausePhaseModifier.js +56 -0
  282. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/createParseSettings.js +1 -1
  283. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/warnAboutTSVersion.d.ts +1 -1
  284. package/node_modules/@typescript-eslint/typescript-estree/dist/parseSettings/warnAboutTSVersion.js +27 -18
  285. package/node_modules/@typescript-eslint/typescript-estree/dist/parser-options.d.ts +8 -0
  286. package/node_modules/@typescript-eslint/typescript-estree/package.json +9 -7
  287. package/node_modules/@typescript-eslint/utils/dist/ts-eslint/Rule.d.ts +1 -1
  288. package/node_modules/@typescript-eslint/utils/package.json +8 -6
  289. package/node_modules/@typescript-eslint/visitor-keys/package.json +6 -4
  290. package/node_modules/acorn/CHANGELOG.md +12 -0
  291. package/node_modules/acorn/README.md +5 -0
  292. package/node_modules/acorn/dist/acorn.d.mts +8 -0
  293. package/node_modules/acorn/dist/acorn.d.ts +8 -0
  294. package/node_modules/acorn/dist/acorn.js +16 -7
  295. package/node_modules/acorn/dist/acorn.mjs +16 -7
  296. package/node_modules/acorn/package.json +1 -1
  297. package/node_modules/astro-eslint-parser/lib/index.d.mts +113 -18
  298. package/node_modules/astro-eslint-parser/lib/index.mjs +871 -1172
  299. package/node_modules/astro-eslint-parser/package.json +7 -9
  300. package/node_modules/brace-expansion/README.md +11 -0
  301. package/node_modules/brace-expansion/dist/commonjs/index.d.ts +2 -0
  302. package/node_modules/brace-expansion/dist/commonjs/index.d.ts.map +1 -1
  303. package/node_modules/brace-expansion/dist/commonjs/index.js +162 -84
  304. package/node_modules/brace-expansion/dist/commonjs/index.js.map +1 -1
  305. package/node_modules/brace-expansion/dist/esm/index.d.ts +2 -0
  306. package/node_modules/brace-expansion/dist/esm/index.d.ts.map +1 -1
  307. package/node_modules/brace-expansion/dist/esm/index.js +161 -83
  308. package/node_modules/brace-expansion/dist/esm/index.js.map +1 -1
  309. package/node_modules/brace-expansion/package.json +2 -2
  310. package/node_modules/eslint/README.md +2 -2
  311. package/node_modules/eslint/lib/cli-engine/formatters/html.js +1 -1
  312. package/node_modules/eslint/lib/languages/js/index.js +1 -1
  313. package/node_modules/eslint/lib/linter/code-path-analysis/debug-helpers.js +1 -1
  314. package/node_modules/eslint/lib/linter/vfile.js +1 -1
  315. package/node_modules/eslint/lib/rules/class-methods-use-this.js +6 -5
  316. package/node_modules/eslint/lib/rules/complexity.js +1 -1
  317. package/node_modules/eslint/lib/rules/eqeqeq.js +26 -6
  318. package/node_modules/eslint/lib/rules/func-name-matching.js +3 -3
  319. package/node_modules/eslint/lib/rules/generator-star-spacing.js +4 -6
  320. package/node_modules/eslint/lib/rules/indent.js +4 -6
  321. package/node_modules/eslint/lib/rules/key-spacing.js +5 -7
  322. package/node_modules/eslint/lib/rules/max-len.js +1 -1
  323. package/node_modules/eslint/lib/rules/max-nested-callbacks.js +11 -1
  324. package/node_modules/eslint/lib/rules/no-compare-neg-zero.js +91 -8
  325. package/node_modules/eslint/lib/rules/no-control-regex.js +3 -0
  326. package/node_modules/eslint/lib/rules/no-implicit-coercion.js +22 -8
  327. package/node_modules/eslint/lib/rules/no-invalid-regexp.js +3 -1
  328. package/node_modules/eslint/lib/rules/no-mixed-spaces-and-tabs.js +5 -7
  329. package/node_modules/eslint/lib/rules/no-promise-executor-return.js +5 -7
  330. package/node_modules/eslint/lib/rules/no-script-url.js +4 -6
  331. package/node_modules/eslint/lib/rules/no-shadow.js +14 -20
  332. package/node_modules/eslint/lib/rules/no-unreachable-loop.js +8 -4
  333. package/node_modules/eslint/lib/rules/prefer-numeric-literals.js +14 -6
  334. package/node_modules/eslint/lib/rules/prefer-object-has-own.js +4 -6
  335. package/node_modules/eslint/lib/rules/prefer-object-spread.js +9 -1
  336. package/node_modules/eslint/lib/rules/prefer-template.js +1 -1
  337. package/node_modules/eslint/lib/rules/preserve-caught-error.js +268 -116
  338. package/node_modules/eslint/lib/rules/quotes.js +1 -1
  339. package/node_modules/eslint/lib/rules/radix.js +58 -57
  340. package/node_modules/eslint/lib/rules/use-isnan.js +20 -12
  341. package/node_modules/eslint/lib/rules/utils/ast-utils.js +1 -1
  342. package/node_modules/eslint/lib/shared/serialization.js +1 -1
  343. package/node_modules/eslint/lib/shared/translate-cli-options.js +3 -3
  344. package/node_modules/eslint/lib/types/config-api.d.ts +8 -1
  345. package/node_modules/eslint/lib/types/index.d.ts +3 -6
  346. package/node_modules/eslint/lib/types/rules.d.ts +17 -9
  347. package/node_modules/eslint/package.json +7 -7
  348. package/node_modules/eslint-plugin-astro/README.md +10 -2
  349. package/node_modules/eslint-plugin-astro/lib/index.d.mts +0 -1
  350. package/node_modules/eslint-plugin-astro/lib/index.mjs +76 -637
  351. package/node_modules/eslint-plugin-astro/package.json +11 -11
  352. package/node_modules/eslint-plugin-toml/README.md +2 -0
  353. package/node_modules/eslint-plugin-toml/lib/index.d.mts +6 -5
  354. package/node_modules/eslint-plugin-toml/lib/index.mjs +32 -3
  355. package/node_modules/eslint-plugin-toml/package.json +7 -7
  356. package/node_modules/eslint-plugin-yml/README.md +1 -0
  357. package/node_modules/eslint-plugin-yml/lib/index.mjs +125 -21
  358. package/node_modules/eslint-plugin-yml/package.json +7 -7
  359. package/node_modules/flatted/golang/pkg/flatted/flatted.go +16 -14
  360. package/node_modules/flatted/package.json +10 -5
  361. package/node_modules/flatted/types/index.d.ts +1 -1
  362. package/node_modules/globals/globals.json +105 -33
  363. package/node_modules/globals/index.d.ts +105 -33
  364. package/node_modules/globals/package.json +2 -2
  365. package/node_modules/mdn-data/css/properties.json +64 -16
  366. package/node_modules/mdn-data/css/properties.schema.json +1 -7
  367. package/node_modules/mdn-data/css/syntaxes.json +1 -1
  368. package/node_modules/mdn-data/l10n/css.json +3 -62
  369. package/node_modules/mdn-data/package.json +1 -1
  370. package/node_modules/minimatch/package.json +9 -9
  371. package/node_modules/nanoid/non-secure/index.cjs +2 -2
  372. package/node_modules/nanoid/non-secure/index.js +2 -2
  373. package/node_modules/nanoid/package.json +1 -1
  374. package/node_modules/picomatch/README.md +15 -21
  375. package/node_modules/picomatch/lib/parse.js +39 -9
  376. package/node_modules/picomatch/lib/picomatch.js +14 -2
  377. package/node_modules/picomatch/package.json +3 -2
  378. package/node_modules/postcss/README.md +1 -2
  379. package/node_modules/postcss/lib/container.js +81 -34
  380. package/node_modules/postcss/lib/fromJSON.js +65 -26
  381. package/node_modules/postcss/lib/input.js +7 -1
  382. package/node_modules/postcss/lib/lazy-result.js +77 -14
  383. package/node_modules/postcss/lib/list.js +1 -0
  384. package/node_modules/postcss/lib/node.d.ts +2 -2
  385. package/node_modules/postcss/lib/node.js +90 -52
  386. package/node_modules/postcss/lib/postcss.d.ts +4 -1
  387. package/node_modules/postcss/lib/previous-map.js +6 -3
  388. package/node_modules/postcss/lib/processor.js +1 -1
  389. package/node_modules/postcss/lib/root.js +16 -1
  390. package/node_modules/postcss/lib/stringifier.js +112 -25
  391. package/node_modules/postcss/lib/warning.js +10 -0
  392. package/node_modules/postcss/package.json +2 -2
  393. package/node_modules/typescript-eslint/dist/index.js +47 -0
  394. package/node_modules/typescript-eslint/package.json +14 -6
  395. package/node_modules/yaml-eslint-parser/lib/chunk-CfYAbeIz.mjs +13 -0
  396. package/node_modules/yaml-eslint-parser/lib/index.d.mts +2 -2
  397. package/node_modules/yaml-eslint-parser/lib/index.mjs +164 -157
  398. package/node_modules/yaml-eslint-parser/package.json +17 -18
  399. package/package.json +23 -23
  400. package/node_modules/@astrojs/compiler/LICENSE +0 -53
  401. package/node_modules/@astrojs/compiler/README.md +0 -72
  402. package/node_modules/@astrojs/compiler/dist/astro.wasm +0 -0
  403. package/node_modules/@astrojs/compiler/dist/browser/index.cjs +0 -2
  404. package/node_modules/@astrojs/compiler/dist/browser/index.d.ts +0 -11
  405. package/node_modules/@astrojs/compiler/dist/browser/index.js +0 -1
  406. package/node_modules/@astrojs/compiler/dist/browser/utils.cjs +0 -3
  407. package/node_modules/@astrojs/compiler/dist/browser/utils.d.ts +0 -29
  408. package/node_modules/@astrojs/compiler/dist/browser/utils.js +0 -3
  409. package/node_modules/@astrojs/compiler/dist/browser/wasm_exec.cjs +0 -2
  410. package/node_modules/@astrojs/compiler/dist/browser/wasm_exec.d.ts +0 -37
  411. package/node_modules/@astrojs/compiler/dist/browser/wasm_exec.js +0 -1
  412. package/node_modules/@astrojs/compiler/dist/chunk-QR6QDSEV.js +0 -2
  413. package/node_modules/@astrojs/compiler/dist/chunk-W5DTLHV4.js +0 -1
  414. package/node_modules/@astrojs/compiler/dist/node/index.cjs +0 -1
  415. package/node_modules/@astrojs/compiler/dist/node/index.d.ts +0 -12
  416. package/node_modules/@astrojs/compiler/dist/node/index.js +0 -1
  417. package/node_modules/@astrojs/compiler/dist/node/sync.cjs +0 -1
  418. package/node_modules/@astrojs/compiler/dist/node/sync.d.ts +0 -16
  419. package/node_modules/@astrojs/compiler/dist/node/sync.js +0 -1
  420. package/node_modules/@astrojs/compiler/dist/node/utils.cjs +0 -3
  421. package/node_modules/@astrojs/compiler/dist/node/utils.d.ts +0 -29
  422. package/node_modules/@astrojs/compiler/dist/node/utils.js +0 -3
  423. package/node_modules/@astrojs/compiler/dist/node/wasm_exec.cjs +0 -1
  424. package/node_modules/@astrojs/compiler/dist/node/wasm_exec.d.ts +0 -37
  425. package/node_modules/@astrojs/compiler/dist/node/wasm_exec.js +0 -1
  426. package/node_modules/@astrojs/compiler/dist/shared/ast.cjs +0 -1
  427. package/node_modules/@astrojs/compiler/dist/shared/ast.d.ts +0 -74
  428. package/node_modules/@astrojs/compiler/dist/shared/ast.js +0 -0
  429. package/node_modules/@astrojs/compiler/dist/shared/diagnostics.cjs +0 -1
  430. package/node_modules/@astrojs/compiler/dist/shared/diagnostics.d.ts +0 -18
  431. package/node_modules/@astrojs/compiler/dist/shared/diagnostics.js +0 -1
  432. package/node_modules/@astrojs/compiler/dist/shared/types.cjs +0 -1
  433. package/node_modules/@astrojs/compiler/dist/shared/types.d.ts +0 -153
  434. package/node_modules/@astrojs/compiler/dist/shared/types.js +0 -1
  435. package/node_modules/@astrojs/compiler/package.json +0 -58
  436. package/node_modules/@astrojs/compiler/sync.d.ts +0 -1
  437. package/node_modules/@astrojs/compiler/types.d.ts +0 -1
  438. package/node_modules/@astrojs/compiler/utils.d.ts +0 -1
  439. package/node_modules/@pkgr/core/index.d.cts +0 -3
  440. package/node_modules/@pkgr/core/lib/constants.d.ts +0 -6
  441. package/node_modules/@pkgr/core/lib/constants.js +0 -9
  442. package/node_modules/@pkgr/core/lib/constants.js.map +0 -1
  443. package/node_modules/@pkgr/core/lib/helpers.d.ts +0 -19
  444. package/node_modules/@pkgr/core/lib/helpers.js +0 -67
  445. package/node_modules/@pkgr/core/lib/helpers.js.map +0 -1
  446. package/node_modules/@pkgr/core/lib/index.cjs +0 -91
  447. package/node_modules/@pkgr/core/lib/index.d.ts +0 -2
  448. package/node_modules/@pkgr/core/lib/index.js +0 -3
  449. package/node_modules/@pkgr/core/lib/index.js.map +0 -1
  450. package/node_modules/@pkgr/core/package.json +0 -38
  451. package/node_modules/@rviscomi/capo.js/crx/README.md +0 -10
  452. package/node_modules/@rviscomi/capo.js/crx/capo.js +0 -3
  453. package/node_modules/@rviscomi/capo.js/crx/options/options.js +0 -1
  454. package/node_modules/@rviscomi/capo.js/docs/.vscode/extensions.json +0 -4
  455. package/node_modules/@rviscomi/capo.js/docs/.vscode/launch.json +0 -11
  456. package/node_modules/@rviscomi/capo.js/docs/README.md +0 -51
  457. package/node_modules/@rviscomi/capo.js/docs/astro.config.mjs +0 -82
  458. package/node_modules/@rviscomi/capo.js/docs/package-lock.json +0 -7439
  459. package/node_modules/@rviscomi/capo.js/docs/package.json +0 -21
  460. package/node_modules/@rviscomi/capo.js/docs/public/capo-social-alt.webp +0 -0
  461. package/node_modules/@rviscomi/capo.js/docs/public/capo-social.png +0 -0
  462. package/node_modules/@rviscomi/capo.js/docs/public/capo-social.webp +0 -0
  463. package/node_modules/@rviscomi/capo.js/docs/public/favicon.svg +0 -13
  464. package/node_modules/@rviscomi/capo.js/docs/src/assets/bookmarklet-setup.png +0 -0
  465. package/node_modules/@rviscomi/capo.js/docs/src/assets/bookmarklet.png +0 -0
  466. package/node_modules/@rviscomi/capo.js/docs/src/assets/capo-chrome.png +0 -0
  467. package/node_modules/@rviscomi/capo.js/docs/src/assets/capo-extension.png +0 -0
  468. package/node_modules/@rviscomi/capo.js/docs/src/assets/capo800.png +0 -0
  469. package/node_modules/@rviscomi/capo.js/docs/src/assets/crx-console-expanded.png +0 -0
  470. package/node_modules/@rviscomi/capo.js/docs/src/assets/crx-console-interactive.png +0 -0
  471. package/node_modules/@rviscomi/capo.js/docs/src/assets/crx-console.png +0 -0
  472. package/node_modules/@rviscomi/capo.js/docs/src/assets/crx-hover-validation.png +0 -0
  473. package/node_modules/@rviscomi/capo.js/docs/src/assets/crx-menu.png +0 -0
  474. package/node_modules/@rviscomi/capo.js/docs/src/assets/crx-options-dark.png +0 -0
  475. package/node_modules/@rviscomi/capo.js/docs/src/assets/crx-options-light.png +0 -0
  476. package/node_modules/@rviscomi/capo.js/docs/src/assets/crx-store.png +0 -0
  477. package/node_modules/@rviscomi/capo.js/docs/src/assets/custom-palette.png +0 -0
  478. package/node_modules/@rviscomi/capo.js/docs/src/assets/developer-mode.png +0 -0
  479. package/node_modules/@rviscomi/capo.js/docs/src/assets/devtools-console.png +0 -0
  480. package/node_modules/@rviscomi/capo.js/docs/src/assets/devtools-snippet.png +0 -0
  481. package/node_modules/@rviscomi/capo.js/docs/src/assets/devtools-sources.png +0 -0
  482. package/node_modules/@rviscomi/capo.js/docs/src/assets/houston.webp +0 -0
  483. package/node_modules/@rviscomi/capo.js/docs/src/assets/load-unpacked.png +0 -0
  484. package/node_modules/@rviscomi/capo.js/docs/src/assets/validation-areas.png +0 -0
  485. package/node_modules/@rviscomi/capo.js/docs/src/assets/validation-base.png +0 -0
  486. package/node_modules/@rviscomi/capo.js/docs/src/assets/validation-crx-stripes.png +0 -0
  487. package/node_modules/@rviscomi/capo.js/docs/src/assets/validation-csp.png +0 -0
  488. package/node_modules/@rviscomi/capo.js/docs/src/assets/validation-invalid-element.png +0 -0
  489. package/node_modules/@rviscomi/capo.js/docs/src/assets/validation-origin-trial.png +0 -0
  490. package/node_modules/@rviscomi/capo.js/docs/src/assets/validation-title.png +0 -0
  491. package/node_modules/@rviscomi/capo.js/docs/src/components/CapoClient.astro +0 -165
  492. package/node_modules/@rviscomi/capo.js/docs/src/components/CapoOptions.astro +0 -10
  493. package/node_modules/@rviscomi/capo.js/docs/src/components/CapoPalette.astro +0 -26
  494. package/node_modules/@rviscomi/capo.js/docs/src/components/InlineCapoIcon.astro +0 -15
  495. package/node_modules/@rviscomi/capo.js/docs/src/components/InlineCapoWeightBars.astro +0 -39
  496. package/node_modules/@rviscomi/capo.js/docs/src/components/VirtualConsole.astro +0 -11
  497. package/node_modules/@rviscomi/capo.js/docs/src/content/config.ts +0 -7
  498. package/node_modules/@rviscomi/capo.js/docs/src/content/docs/developer/contributing.mdx +0 -8
  499. package/node_modules/@rviscomi/capo.js/docs/src/content/docs/developer/crx-local.mdx +0 -28
  500. package/node_modules/@rviscomi/capo.js/docs/src/content/docs/developer/custom-adapters.mdx +0 -273
  501. package/node_modules/@rviscomi/capo.js/docs/src/content/docs/index.mdx +0 -108
  502. package/node_modules/@rviscomi/capo.js/docs/src/content/docs/migration-v2.mdx +0 -62
  503. package/node_modules/@rviscomi/capo.js/docs/src/content/docs/user/actionability.mdx +0 -6
  504. package/node_modules/@rviscomi/capo.js/docs/src/content/docs/user/assessment-mode.mdx +0 -29
  505. package/node_modules/@rviscomi/capo.js/docs/src/content/docs/user/config.mdx +0 -195
  506. package/node_modules/@rviscomi/capo.js/docs/src/content/docs/user/demo.mdx +0 -9
  507. package/node_modules/@rviscomi/capo.js/docs/src/content/docs/user/extension.mdx +0 -116
  508. package/node_modules/@rviscomi/capo.js/docs/src/content/docs/user/performance.mdx +0 -6
  509. package/node_modules/@rviscomi/capo.js/docs/src/content/docs/user/quick-start.mdx +0 -26
  510. package/node_modules/@rviscomi/capo.js/docs/src/content/docs/user/rules.mdx +0 -202
  511. package/node_modules/@rviscomi/capo.js/docs/src/content/docs/user/validation.mdx +0 -197
  512. package/node_modules/@rviscomi/capo.js/docs/src/env.d.ts +0 -2
  513. package/node_modules/@rviscomi/capo.js/docs/src/lib/VirtualConsole.js +0 -190
  514. package/node_modules/@rviscomi/capo.js/docs/src/lib/capo.js +0 -1533
  515. package/node_modules/@rviscomi/capo.js/docs/src/styles/custom.css +0 -7
  516. package/node_modules/@rviscomi/capo.js/docs/src/styles/virtual-console.css +0 -131
  517. package/node_modules/@rviscomi/capo.js/docs/tests/VirtualConsole.test.js +0 -108
  518. package/node_modules/@rviscomi/capo.js/docs/tsconfig.json +0 -3
  519. package/node_modules/@rviscomi/capo.js/src/crx/capo.js +0 -62
  520. package/node_modules/@rviscomi/capo.js/src/crx/options.js +0 -69
  521. package/node_modules/astrojs-compiler-sync/LICENSE +0 -53
  522. package/node_modules/astrojs-compiler-sync/README.md +0 -3
  523. package/node_modules/astrojs-compiler-sync/browser/index.d.ts +0 -6
  524. package/node_modules/astrojs-compiler-sync/browser/index.js +0 -76
  525. package/node_modules/astrojs-compiler-sync/browser/wasm_exec.js +0 -665
  526. package/node_modules/astrojs-compiler-sync/lib/astrojs-compiler-worker.js +0 -5
  527. package/node_modules/astrojs-compiler-sync/lib/compiler-sync.cjs +0 -31
  528. package/node_modules/astrojs-compiler-sync/lib/index.cjs +0 -30
  529. package/node_modules/astrojs-compiler-sync/lib/index.d.cts +0 -3
  530. package/node_modules/astrojs-compiler-sync/lib/index.d.ts +0 -14
  531. package/node_modules/astrojs-compiler-sync/lib/index.js +0 -18
  532. package/node_modules/astrojs-compiler-sync/package.json +0 -100
  533. package/node_modules/entities/LICENSE +0 -11
  534. package/node_modules/entities/dist/decode-codepoint.d.ts +0 -8
  535. package/node_modules/entities/dist/decode-codepoint.d.ts.map +0 -1
  536. package/node_modules/entities/dist/decode-codepoint.js +0 -46
  537. package/node_modules/entities/dist/decode-codepoint.js.map +0 -1
  538. package/node_modules/entities/dist/decode.d.ts +0 -194
  539. package/node_modules/entities/dist/decode.d.ts.map +0 -1
  540. package/node_modules/entities/dist/decode.js +0 -544
  541. package/node_modules/entities/dist/decode.js.map +0 -1
  542. package/node_modules/entities/dist/encode.d.ts +0 -24
  543. package/node_modules/entities/dist/encode.d.ts.map +0 -1
  544. package/node_modules/entities/dist/encode.js +0 -90
  545. package/node_modules/entities/dist/encode.js.map +0 -1
  546. package/node_modules/entities/dist/escape.d.ts +0 -48
  547. package/node_modules/entities/dist/escape.d.ts.map +0 -1
  548. package/node_modules/entities/dist/escape.js +0 -132
  549. package/node_modules/entities/dist/escape.js.map +0 -1
  550. package/node_modules/entities/dist/generated/decode-data-html.d.ts +0 -3
  551. package/node_modules/entities/dist/generated/decode-data-html.d.ts.map +0 -1
  552. package/node_modules/entities/dist/generated/decode-data-html.js +0 -5
  553. package/node_modules/entities/dist/generated/decode-data-html.js.map +0 -1
  554. package/node_modules/entities/dist/generated/decode-data-xml.d.ts +0 -3
  555. package/node_modules/entities/dist/generated/decode-data-xml.d.ts.map +0 -1
  556. package/node_modules/entities/dist/generated/decode-data-xml.js +0 -5
  557. package/node_modules/entities/dist/generated/decode-data-xml.js.map +0 -1
  558. package/node_modules/entities/dist/generated/encode-html.d.ts +0 -5
  559. package/node_modules/entities/dist/generated/encode-html.d.ts.map +0 -1
  560. package/node_modules/entities/dist/generated/encode-html.js +0 -12
  561. package/node_modules/entities/dist/generated/encode-html.js.map +0 -1
  562. package/node_modules/entities/dist/index.d.ts +0 -89
  563. package/node_modules/entities/dist/index.d.ts.map +0 -1
  564. package/node_modules/entities/dist/index.js +0 -91
  565. package/node_modules/entities/dist/index.js.map +0 -1
  566. package/node_modules/entities/dist/internal/bin-trie-flags.d.ts +0 -17
  567. package/node_modules/entities/dist/internal/bin-trie-flags.d.ts.map +0 -1
  568. package/node_modules/entities/dist/internal/bin-trie-flags.js +0 -18
  569. package/node_modules/entities/dist/internal/bin-trie-flags.js.map +0 -1
  570. package/node_modules/entities/dist/internal/decode-shared.d.ts +0 -7
  571. package/node_modules/entities/dist/internal/decode-shared.d.ts.map +0 -1
  572. package/node_modules/entities/dist/internal/decode-shared.js +0 -17
  573. package/node_modules/entities/dist/internal/decode-shared.js.map +0 -1
  574. package/node_modules/entities/dist/internal/encode-shared.d.ts +0 -33
  575. package/node_modules/entities/dist/internal/encode-shared.d.ts.map +0 -1
  576. package/node_modules/entities/dist/internal/encode-shared.js +0 -93
  577. package/node_modules/entities/dist/internal/encode-shared.js.map +0 -1
  578. package/node_modules/entities/package.json +0 -83
  579. package/node_modules/entities/readme.md +0 -131
  580. package/node_modules/entities/src/decode-codepoint.ts +0 -50
  581. package/node_modules/entities/src/decode.ts +0 -671
  582. package/node_modules/entities/src/encode.ts +0 -95
  583. package/node_modules/entities/src/escape.ts +0 -160
  584. package/node_modules/entities/src/generated/decode-data-html.ts +0 -7
  585. package/node_modules/entities/src/generated/decode-data-xml.ts +0 -7
  586. package/node_modules/entities/src/generated/encode-html.ts +0 -18
  587. package/node_modules/entities/src/index.ts +0 -162
  588. package/node_modules/entities/src/internal/bin-trie-flags.ts +0 -16
  589. package/node_modules/entities/src/internal/decode-shared.ts +0 -18
  590. package/node_modules/entities/src/internal/encode-shared.ts +0 -123
  591. package/node_modules/parse5/README.md +0 -38
  592. package/node_modules/parse5/dist/common/doctype.d.ts +0 -4
  593. package/node_modules/parse5/dist/common/doctype.js +0 -114
  594. package/node_modules/parse5/dist/common/error-codes.d.ts +0 -67
  595. package/node_modules/parse5/dist/common/error-codes.js +0 -63
  596. package/node_modules/parse5/dist/common/foreign-content.d.ts +0 -9
  597. package/node_modules/parse5/dist/common/foreign-content.js +0 -228
  598. package/node_modules/parse5/dist/common/html.d.ts +0 -289
  599. package/node_modules/parse5/dist/common/html.js +0 -523
  600. package/node_modules/parse5/dist/common/token.d.ts +0 -84
  601. package/node_modules/parse5/dist/common/token.js +0 -20
  602. package/node_modules/parse5/dist/common/unicode.d.ts +0 -42
  603. package/node_modules/parse5/dist/common/unicode.js +0 -62
  604. package/node_modules/parse5/dist/index.d.ts +0 -71
  605. package/node_modules/parse5/dist/index.js +0 -42
  606. package/node_modules/parse5/dist/parser/formatting-element-list.d.ts +0 -36
  607. package/node_modules/parse5/dist/parser/formatting-element-list.js +0 -110
  608. package/node_modules/parse5/dist/parser/index.d.ts +0 -221
  609. package/node_modules/parse5/dist/parser/index.js +0 -3245
  610. package/node_modules/parse5/dist/parser/open-element-stack.d.ts +0 -53
  611. package/node_modules/parse5/dist/parser/open-element-stack.js +0 -324
  612. package/node_modules/parse5/dist/serializer/index.d.ts +0 -60
  613. package/node_modules/parse5/dist/serializer/index.js +0 -168
  614. package/node_modules/parse5/dist/tokenizer/index.d.ts +0 -247
  615. package/node_modules/parse5/dist/tokenizer/index.js +0 -2712
  616. package/node_modules/parse5/dist/tokenizer/preprocessor.d.ts +0 -36
  617. package/node_modules/parse5/dist/tokenizer/preprocessor.js +0 -196
  618. package/node_modules/parse5/dist/tree-adapters/default.d.ts +0 -84
  619. package/node_modules/parse5/dist/tree-adapters/default.js +0 -173
  620. package/node_modules/parse5/dist/tree-adapters/interface.d.ts +0 -255
  621. package/node_modules/parse5/dist/tree-adapters/interface.js +0 -1
  622. package/node_modules/parse5/package.json +0 -53
  623. package/node_modules/synckit/README.md +0 -256
  624. package/node_modules/synckit/lib/common.d.ts +0 -5
  625. package/node_modules/synckit/lib/common.js +0 -22
  626. package/node_modules/synckit/lib/common.js.map +0 -1
  627. package/node_modules/synckit/lib/constants.d.ts +0 -38
  628. package/node_modules/synckit/lib/constants.js +0 -54
  629. package/node_modules/synckit/lib/constants.js.map +0 -1
  630. package/node_modules/synckit/lib/helpers.d.ts +0 -27
  631. package/node_modules/synckit/lib/helpers.js +0 -411
  632. package/node_modules/synckit/lib/helpers.js.map +0 -1
  633. package/node_modules/synckit/lib/index.cjs +0 -588
  634. package/node_modules/synckit/lib/index.d.cts +0 -138
  635. package/node_modules/synckit/lib/index.d.ts +0 -7
  636. package/node_modules/synckit/lib/index.js +0 -68
  637. package/node_modules/synckit/lib/index.js.map +0 -1
  638. package/node_modules/synckit/lib/types.d.ts +0 -48
  639. package/node_modules/synckit/lib/types.js +0 -2
  640. package/node_modules/synckit/lib/types.js.map +0 -1
  641. package/node_modules/synckit/package.json +0 -45
  642. package/node_modules/yaml-eslint-parser/lib/chunk-15K8U1wQ.mjs +0 -18
  643. /package/node_modules/@rviscomi/capo.js/{crx → dist/chrome}/background.js +0 -0
  644. /package/node_modules/@rviscomi/capo.js/{crx → dist/chrome}/capo.css +0 -0
  645. /package/node_modules/@rviscomi/capo.js/{crx → dist/chrome}/images/icon128.png +0 -0
  646. /package/node_modules/@rviscomi/capo.js/{crx → dist/chrome}/images/icon256.png +0 -0
  647. /package/node_modules/@rviscomi/capo.js/{crx → dist/chrome}/options/options.css +0 -0
  648. /package/node_modules/@rviscomi/capo.js/{crx → dist/chrome}/options/options.html +0 -0
  649. /package/node_modules/@rviscomi/capo.js/{crx → dist/chrome}/styles/open-props.css +0 -0
  650. /package/node_modules/@rviscomi/capo.js/{docs/src/assets/capo256.png → dist/firefox/images/icon256.png} +0 -0
  651. /package/node_modules/eslint-plugin-toml/lib/{chunk-CfYAbeIz.mjs → rolldown-runtime-D7D4PA-g.mjs} +0 -0
@@ -15,6 +15,17 @@ const closePattern = /\\}/g;
15
15
  const commaPattern = /\\,/g;
16
16
  const periodPattern = /\\\./g;
17
17
  export const EXPANSION_MAX = 100_000;
18
+ // `EXPANSION_MAX` caps the *number* of expansions, but not their length. An
19
+ // input like `'{a,b}'.repeat(1500)` stays under that count - its output is
20
+ // truncated to 100k results - while making every result ~1500 characters
21
+ // long. The result set, and the intermediate arrays built while combining
22
+ // brace sets, then grow large enough to exhaust memory and crash the process
23
+ // (CVE-2026-14257). `EXPANSION_MAX_LENGTH` bounds the total number of
24
+ // characters the accumulator may hold at any point, so memory stays flat no
25
+ // matter how many brace groups are chained. The limit sits well above any
26
+ // realistic expansion (100k results hitting `EXPANSION_MAX` measure ~1M
27
+ // characters) so legitimate input is unaffected.
28
+ export const EXPANSION_MAX_LENGTH = 4_000_000;
18
29
  function numeric(str) {
19
30
  return !isNaN(str) ? parseInt(str, 10) : str.charCodeAt(0);
20
31
  }
@@ -64,7 +75,7 @@ export function expand(str, options = {}) {
64
75
  if (!str) {
65
76
  return [];
66
77
  }
67
- const { max = EXPANSION_MAX } = options;
78
+ const { max = EXPANSION_MAX, maxLength = EXPANSION_MAX_LENGTH } = options;
68
79
  // I don't know why Bash 4.3 does this, but it does.
69
80
  // Anything starting with {} will have the first two bytes preserved
70
81
  // but *only* at the top level, so {},a}b will not expand to anything,
@@ -74,7 +85,7 @@ export function expand(str, options = {}) {
74
85
  if (str.slice(0, 2) === '{}') {
75
86
  str = '\\{\\}' + str.slice(2);
76
87
  }
77
- return expand_(escapeBraces(str), max, true).map(unescapeBraces);
88
+ return expand_(escapeBraces(str), max, maxLength, true).map(unescapeBraces);
78
89
  }
79
90
  function embrace(str) {
80
91
  return '{' + str + '}';
@@ -88,25 +99,116 @@ function lte(i, y) {
88
99
  function gte(i, y) {
89
100
  return i >= y;
90
101
  }
91
- function expand_(str, max, isTop) {
92
- /** @type {string[]} */
93
- const expansions = [];
94
- // The `{a},b}` rewrite below restarts expansion on a rewritten string with
95
- // the same `max` and `isTop = true`. Loop instead of recursing so a long run
96
- // of non-expanding `{}` groups can't exhaust the call stack.
102
+ // Build `{ acc[a] + pre + values[v] }` for every combination, capping the
103
+ // number of results at `max` and the total number of characters at `maxLength`.
104
+ // This is the one place output grows, so bounding it here keeps the single
105
+ // accumulator - and therefore memory - flat regardless of how many brace groups
106
+ // are combined (CVE-2026-14257).
107
+ function combine(acc, pre, values, max, maxLength, dropEmpties) {
108
+ const out = [];
109
+ let length = 0;
110
+ for (let a = 0; a < acc.length; a++) {
111
+ for (let v = 0; v < values.length; v++) {
112
+ if (out.length >= max)
113
+ return out;
114
+ const expansion = acc[a] + pre + values[v];
115
+ // Bash drops empty results at the top level. Skip them before they count
116
+ // against `max`, so `max` bounds the number of *kept* results.
117
+ if (dropEmpties && !expansion)
118
+ continue;
119
+ if (length + expansion.length > maxLength)
120
+ return out;
121
+ out.push(expansion);
122
+ length += expansion.length;
123
+ }
124
+ }
125
+ return out;
126
+ }
127
+ // The expansion values of a single numeric (`1..5`) or alphabetic (`a..e..2`)
128
+ // sequence body.
129
+ function expandSequence(body, isAlphaSequence, max, maxLength) {
130
+ const n = body.split(/\.\./);
131
+ const N = [];
132
+ // A sequence body always splits into two or three parts, but the compiler
133
+ // can't know that.
134
+ /* c8 ignore start */
135
+ if (n[0] === undefined || n[1] === undefined) {
136
+ return N;
137
+ }
138
+ /* c8 ignore stop */
139
+ const x = numeric(n[0]);
140
+ const y = numeric(n[1]);
141
+ const width = Math.max(n[0].length, n[1].length);
142
+ let incr = n.length === 3 && n[2] !== undefined ?
143
+ Math.max(Math.abs(numeric(n[2])), 1)
144
+ : 1;
145
+ let test = lte;
146
+ const reverse = y < x;
147
+ if (reverse) {
148
+ incr *= -1;
149
+ test = gte;
150
+ }
151
+ const pad = n.some(isPadded);
152
+ let length = 0;
153
+ for (let i = x; test(i, y) && N.length < max; i += incr) {
154
+ let c;
155
+ if (isAlphaSequence) {
156
+ c = String.fromCharCode(i);
157
+ if (c === '\\') {
158
+ c = '';
159
+ }
160
+ }
161
+ else {
162
+ c = String(i);
163
+ if (pad) {
164
+ const need = width - c.length;
165
+ if (need > 0) {
166
+ const z = new Array(need + 1).join('0');
167
+ if (i < 0) {
168
+ c = '-' + z + c.slice(1);
169
+ }
170
+ else {
171
+ c = z + c;
172
+ }
173
+ }
174
+ }
175
+ }
176
+ if (length + c.length > maxLength)
177
+ break;
178
+ N.push(c);
179
+ length += c.length;
180
+ }
181
+ return N;
182
+ }
183
+ function expand_(str, max, maxLength, isTop) {
184
+ // Consume the string's top-level brace groups left to right, threading a
185
+ // running set of combined prefixes (`acc`). Expanding the tail iteratively -
186
+ // rather than recursing on `m.post` once per group - keeps the native stack
187
+ // depth constant, so deeply chained input (`'{a,b}'.repeat(3000)`) can no
188
+ // longer overflow the stack, and leaves a single accumulator whose size
189
+ // `maxLength` bounds directly (CVE-2026-14257).
190
+ let acc = [''];
191
+ // Bash drops empty results, but only when the *first* top-level group is a
192
+ // comma set - a sequence like `{a..\}` may legitimately yield ''. The drop
193
+ // is on the final strings, so it is applied to whichever `combine` produces
194
+ // them (the one with no brace set left in the tail).
195
+ let dropEmpties = false;
196
+ let firstGroup = true;
97
197
  for (;;) {
98
198
  const m = balanced('{', '}', str);
99
- if (!m)
100
- return [str];
199
+ // No brace set left: the rest of the string is literal.
200
+ if (!m) {
201
+ return combine(acc, str, [''], max, maxLength, dropEmpties);
202
+ }
101
203
  // no need to expand pre, since it is guaranteed to be free of brace-sets
102
204
  const pre = m.pre;
103
- if (/\$$/.test(m.pre)) {
104
- const post = m.post.length ? expand_(m.post, max, false) : [''];
105
- for (let k = 0; k < post.length && k < max; k++) {
106
- const expansion = pre + '{' + m.body + '}' + post[k];
107
- expansions.push(expansion);
108
- }
109
- return expansions;
205
+ if (/\$$/.test(pre)) {
206
+ acc = combine(acc, pre + '{' + m.body + '}', [''], max, maxLength, dropEmpties && !m.post.length);
207
+ firstGroup = false;
208
+ if (!m.post.length)
209
+ break;
210
+ str = m.post;
211
+ continue;
110
212
  }
111
213
  const isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
112
214
  const isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
@@ -119,89 +221,65 @@ function expand_(str, max, isTop) {
119
221
  isTop = true;
120
222
  continue;
121
223
  }
122
- return [str];
224
+ // Nothing here expands, so the whole remaining string is literal.
225
+ return combine(acc, pre + '{' + m.body + '}' + m.post, [''], max, maxLength, dropEmpties);
226
+ }
227
+ if (firstGroup) {
228
+ dropEmpties = isTop && !isSequence;
229
+ firstGroup = false;
123
230
  }
124
- // Only expand post once we know this brace set actually expands. Computing
125
- // it before the early returns above expanded post a second time on every
126
- // non-expanding `{}`, which is what made inputs like `a{},{},{}...` blow up
127
- // exponentially.
128
- const post = m.post.length ? expand_(m.post, max, false) : [''];
129
- let n;
231
+ let values;
130
232
  if (isSequence) {
131
- n = m.body.split(/\.\./);
233
+ values = expandSequence(m.body, isAlphaSequence, max, maxLength);
132
234
  }
133
235
  else {
134
- n = parseCommaParts(m.body);
236
+ let n = parseCommaParts(m.body);
135
237
  if (n.length === 1 && n[0] !== undefined) {
136
238
  // x{{a,b}}y ==> x{a}y x{b}y
137
- n = expand_(n[0], max, false).map(embrace);
239
+ n = expand_(n[0], max, maxLength, false).map(embrace);
138
240
  //XXX is this necessary? Can't seem to hit it in tests.
139
241
  /* c8 ignore start */
140
242
  if (n.length === 1) {
141
- return post.map(p => m.pre + n[0] + p);
243
+ acc = combine(acc, pre + n[0], [''], max, maxLength, dropEmpties && !m.post.length);
244
+ if (!m.post.length)
245
+ break;
246
+ str = m.post;
247
+ continue;
142
248
  }
143
249
  /* c8 ignore stop */
144
250
  }
145
- }
146
- // at this point, n is the parts, and we know it's not a comma set
147
- // with a single entry.
148
- let N;
149
- if (isSequence && n[0] !== undefined && n[1] !== undefined) {
150
- const x = numeric(n[0]);
151
- const y = numeric(n[1]);
152
- const width = Math.max(n[0].length, n[1].length);
153
- let incr = n.length === 3 && n[2] !== undefined ?
154
- Math.max(Math.abs(numeric(n[2])), 1)
155
- : 1;
156
- let test = lte;
157
- const reverse = y < x;
158
- if (reverse) {
159
- incr *= -1;
160
- test = gte;
161
- }
162
- const pad = n.some(isPadded);
163
- N = [];
164
- for (let i = x; test(i, y) && N.length < max; i += incr) {
165
- let c;
166
- if (isAlphaSequence) {
167
- c = String.fromCharCode(i);
168
- if (c === '\\') {
169
- c = '';
170
- }
251
+ // Values that `combine` is going to drop as empty produce no result, so
252
+ // they must not count against `max` - otherwise `{a,,b}` with `max: 2`
253
+ // would stop at `['a', '']` and yield one result instead of two. Skipping
254
+ // them outright keeps `values` bounded while leaving `max` a bound on
255
+ // *kept* results.
256
+ let dropsEmpties = dropEmpties && !m.post.length && !pre;
257
+ for (let d = 0; dropsEmpties && d < acc.length; d++) {
258
+ if (acc[d]) {
259
+ dropsEmpties = false;
171
260
  }
172
- else {
173
- c = String(i);
174
- if (pad) {
175
- const need = width - c.length;
176
- if (need > 0) {
177
- const z = new Array(need + 1).join('0');
178
- if (i < 0) {
179
- c = '-' + z + c.slice(1);
180
- }
181
- else {
182
- c = z + c;
183
- }
184
- }
185
- }
186
- }
187
- N.push(c);
188
261
  }
189
- }
190
- else {
191
- N = [];
192
- for (let j = 0; j < n.length; j++) {
193
- N.push.apply(N, expand_(n[j], max, false));
194
- }
195
- }
196
- for (let j = 0; j < N.length; j++) {
197
- for (let k = 0; k < post.length && expansions.length < max; k++) {
198
- const expansion = pre + N[j] + post[k];
199
- if (!isTop || isSequence || expansion) {
200
- expansions.push(expansion);
262
+ values = [];
263
+ let valuesLength = 0;
264
+ outer: for (let j = 0; j < n.length; j++) {
265
+ const expanded = expand_(n[j], max, maxLength, false);
266
+ for (let k = 0; k < expanded.length; k++) {
267
+ const v = expanded[k];
268
+ if (dropsEmpties && !v)
269
+ continue;
270
+ if (values.length >= max || valuesLength + v.length > maxLength) {
271
+ break outer;
272
+ }
273
+ values.push(v);
274
+ valuesLength += v.length;
201
275
  }
202
276
  }
203
277
  }
204
- return expansions;
278
+ acc = combine(acc, pre, values, max, maxLength, dropEmpties && !m.post.length);
279
+ if (!m.post.length)
280
+ break;
281
+ str = m.post;
205
282
  }
283
+ return acc;
206
284
  }
207
285
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { balanced } from 'balanced-match'\n\nconst escSlash = '\\0SLASH' + Math.random() + '\\0'\nconst escOpen = '\\0OPEN' + Math.random() + '\\0'\nconst escClose = '\\0CLOSE' + Math.random() + '\\0'\nconst escComma = '\\0COMMA' + Math.random() + '\\0'\nconst escPeriod = '\\0PERIOD' + Math.random() + '\\0'\nconst escSlashPattern = new RegExp(escSlash, 'g')\nconst escOpenPattern = new RegExp(escOpen, 'g')\nconst escClosePattern = new RegExp(escClose, 'g')\nconst escCommaPattern = new RegExp(escComma, 'g')\nconst escPeriodPattern = new RegExp(escPeriod, 'g')\nconst slashPattern = /\\\\\\\\/g\nconst openPattern = /\\\\{/g\nconst closePattern = /\\\\}/g\nconst commaPattern = /\\\\,/g\nconst periodPattern = /\\\\\\./g\n\nexport const EXPANSION_MAX = 100_000\n\nfunction numeric(str: string) {\n return !isNaN(str as any) ? parseInt(str, 10) : str.charCodeAt(0)\n}\n\nfunction escapeBraces(str: string) {\n return str\n .replace(slashPattern, escSlash)\n .replace(openPattern, escOpen)\n .replace(closePattern, escClose)\n .replace(commaPattern, escComma)\n .replace(periodPattern, escPeriod)\n}\n\nfunction unescapeBraces(str: string) {\n return str\n .replace(escSlashPattern, '\\\\')\n .replace(escOpenPattern, '{')\n .replace(escClosePattern, '}')\n .replace(escCommaPattern, ',')\n .replace(escPeriodPattern, '.')\n}\n\n/**\n * Basically just str.split(\",\"), but handling cases\n * where we have nested braced sections, which should be\n * treated as individual members, like {a,{b,c},d}\n */\nfunction parseCommaParts(str: string) {\n if (!str) {\n return ['']\n }\n\n const parts: string[] = []\n const m = balanced('{', '}', str)\n\n if (!m) {\n return str.split(',')\n }\n\n const { pre, body, post } = m\n const p = pre.split(',')\n\n p[p.length - 1] += '{' + body + '}'\n const postParts = parseCommaParts(post)\n if (post.length) {\n ;(p[p.length - 1] as string) += postParts.shift()\n p.push.apply(p, postParts)\n }\n\n parts.push.apply(parts, p)\n\n return parts\n}\n\nexport type BraceExpansionOptions = {\n max?: number\n}\n\nexport function expand(str: string, options: BraceExpansionOptions = {}) {\n if (!str) {\n return []\n }\n\n const { max = EXPANSION_MAX } = options\n\n // I don't know why Bash 4.3 does this, but it does.\n // Anything starting with {} will have the first two bytes preserved\n // but *only* at the top level, so {},a}b will not expand to anything,\n // but a{},b}c will be expanded to [a}c,abc].\n // One could argue that this is a bug in Bash, but since the goal of\n // this module is to match Bash's rules, we escape a leading {}\n if (str.slice(0, 2) === '{}') {\n str = '\\\\{\\\\}' + str.slice(2)\n }\n\n return expand_(escapeBraces(str), max, true).map(unescapeBraces)\n}\n\nfunction embrace(str: string) {\n return '{' + str + '}'\n}\n\nfunction isPadded(el: string) {\n return /^-?0\\d/.test(el)\n}\n\nfunction lte(i: number, y: number) {\n return i <= y\n}\n\nfunction gte(i: number, y: number) {\n return i >= y\n}\n\nfunction expand_(str: string, max: number, isTop: boolean): string[] {\n /** @type {string[]} */\n const expansions: string[] = []\n\n // The `{a},b}` rewrite below restarts expansion on a rewritten string with\n // the same `max` and `isTop = true`. Loop instead of recursing so a long run\n // of non-expanding `{}` groups can't exhaust the call stack.\n for (;;) {\n const m = balanced('{', '}', str)\n if (!m) return [str]\n\n // no need to expand pre, since it is guaranteed to be free of brace-sets\n const pre = m.pre\n\n if (/\\$$/.test(m.pre)) {\n const post: string[] =\n m.post.length ? expand_(m.post, max, false) : ['']\n for (let k = 0; k < post.length && k < max; k++) {\n const expansion = pre + '{' + m.body + '}' + post[k]\n expansions.push(expansion)\n }\n return expansions\n }\n\n const isNumericSequence = /^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(m.body)\n const isAlphaSequence = /^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(\n m.body,\n )\n const isSequence = isNumericSequence || isAlphaSequence\n const isOptions = m.body.indexOf(',') >= 0\n if (!isSequence && !isOptions) {\n // {a},b}\n if (m.post.match(/,(?!,).*\\}/)) {\n str = m.pre + '{' + m.body + escClose + m.post\n isTop = true\n continue\n }\n return [str]\n }\n\n // Only expand post once we know this brace set actually expands. Computing\n // it before the early returns above expanded post a second time on every\n // non-expanding `{}`, which is what made inputs like `a{},{},{}...` blow up\n // exponentially.\n const post: string[] =\n m.post.length ? expand_(m.post, max, false) : ['']\n\n let n: string[]\n if (isSequence) {\n n = m.body.split(/\\.\\./)\n } else {\n n = parseCommaParts(m.body)\n if (n.length === 1 && n[0] !== undefined) {\n // x{{a,b}}y ==> x{a}y x{b}y\n n = expand_(n[0], max, false).map(embrace)\n //XXX is this necessary? Can't seem to hit it in tests.\n /* c8 ignore start */\n if (n.length === 1) {\n return post.map(p => m.pre + n[0] + p)\n }\n /* c8 ignore stop */\n }\n }\n\n // at this point, n is the parts, and we know it's not a comma set\n // with a single entry.\n let N: string[]\n\n if (isSequence && n[0] !== undefined && n[1] !== undefined) {\n const x = numeric(n[0])\n const y = numeric(n[1])\n const width = Math.max(n[0].length, n[1].length)\n let incr =\n n.length === 3 && n[2] !== undefined ?\n Math.max(Math.abs(numeric(n[2])), 1)\n : 1\n let test = lte\n const reverse = y < x\n if (reverse) {\n incr *= -1\n test = gte\n }\n const pad = n.some(isPadded)\n\n N = []\n\n for (let i = x; test(i, y) && N.length < max; i += incr) {\n let c\n if (isAlphaSequence) {\n c = String.fromCharCode(i)\n if (c === '\\\\') {\n c = ''\n }\n } else {\n c = String(i)\n if (pad) {\n const need = width - c.length\n if (need > 0) {\n const z = new Array(need + 1).join('0')\n if (i < 0) {\n c = '-' + z + c.slice(1)\n } else {\n c = z + c\n }\n }\n }\n }\n N.push(c)\n }\n } else {\n N = []\n\n for (let j = 0; j < n.length; j++) {\n N.push.apply(N, expand_(n[j] as string, max, false))\n }\n }\n\n for (let j = 0; j < N.length; j++) {\n for (let k = 0; k < post.length && expansions.length < max; k++) {\n const expansion = pre + N[j] + post[k]\n if (!isTop || isSequence || expansion) {\n expansions.push(expansion)\n }\n }\n }\n\n return expansions\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { balanced } from 'balanced-match'\n\nconst escSlash = '\\0SLASH' + Math.random() + '\\0'\nconst escOpen = '\\0OPEN' + Math.random() + '\\0'\nconst escClose = '\\0CLOSE' + Math.random() + '\\0'\nconst escComma = '\\0COMMA' + Math.random() + '\\0'\nconst escPeriod = '\\0PERIOD' + Math.random() + '\\0'\nconst escSlashPattern = new RegExp(escSlash, 'g')\nconst escOpenPattern = new RegExp(escOpen, 'g')\nconst escClosePattern = new RegExp(escClose, 'g')\nconst escCommaPattern = new RegExp(escComma, 'g')\nconst escPeriodPattern = new RegExp(escPeriod, 'g')\nconst slashPattern = /\\\\\\\\/g\nconst openPattern = /\\\\{/g\nconst closePattern = /\\\\}/g\nconst commaPattern = /\\\\,/g\nconst periodPattern = /\\\\\\./g\n\nexport const EXPANSION_MAX = 100_000\n\n// `EXPANSION_MAX` caps the *number* of expansions, but not their length. An\n// input like `'{a,b}'.repeat(1500)` stays under that count - its output is\n// truncated to 100k results - while making every result ~1500 characters\n// long. The result set, and the intermediate arrays built while combining\n// brace sets, then grow large enough to exhaust memory and crash the process\n// (CVE-2026-14257). `EXPANSION_MAX_LENGTH` bounds the total number of\n// characters the accumulator may hold at any point, so memory stays flat no\n// matter how many brace groups are chained. The limit sits well above any\n// realistic expansion (100k results hitting `EXPANSION_MAX` measure ~1M\n// characters) so legitimate input is unaffected.\nexport const EXPANSION_MAX_LENGTH = 4_000_000\n\nfunction numeric(str: string) {\n return !isNaN(str as any) ? parseInt(str, 10) : str.charCodeAt(0)\n}\n\nfunction escapeBraces(str: string) {\n return str\n .replace(slashPattern, escSlash)\n .replace(openPattern, escOpen)\n .replace(closePattern, escClose)\n .replace(commaPattern, escComma)\n .replace(periodPattern, escPeriod)\n}\n\nfunction unescapeBraces(str: string) {\n return str\n .replace(escSlashPattern, '\\\\')\n .replace(escOpenPattern, '{')\n .replace(escClosePattern, '}')\n .replace(escCommaPattern, ',')\n .replace(escPeriodPattern, '.')\n}\n\n/**\n * Basically just str.split(\",\"), but handling cases\n * where we have nested braced sections, which should be\n * treated as individual members, like {a,{b,c},d}\n */\nfunction parseCommaParts(str: string) {\n if (!str) {\n return ['']\n }\n\n const parts: string[] = []\n const m = balanced('{', '}', str)\n\n if (!m) {\n return str.split(',')\n }\n\n const { pre, body, post } = m\n const p = pre.split(',')\n\n p[p.length - 1] += '{' + body + '}'\n const postParts = parseCommaParts(post)\n if (post.length) {\n ;(p[p.length - 1] as string) += postParts.shift()\n p.push.apply(p, postParts)\n }\n\n parts.push.apply(parts, p)\n\n return parts\n}\n\nexport type BraceExpansionOptions = {\n max?: number\n maxLength?: number\n}\n\nexport function expand(str: string, options: BraceExpansionOptions = {}) {\n if (!str) {\n return []\n }\n\n const { max = EXPANSION_MAX, maxLength = EXPANSION_MAX_LENGTH } = options\n\n // I don't know why Bash 4.3 does this, but it does.\n // Anything starting with {} will have the first two bytes preserved\n // but *only* at the top level, so {},a}b will not expand to anything,\n // but a{},b}c will be expanded to [a}c,abc].\n // One could argue that this is a bug in Bash, but since the goal of\n // this module is to match Bash's rules, we escape a leading {}\n if (str.slice(0, 2) === '{}') {\n str = '\\\\{\\\\}' + str.slice(2)\n }\n\n return expand_(escapeBraces(str), max, maxLength, true).map(unescapeBraces)\n}\n\nfunction embrace(str: string) {\n return '{' + str + '}'\n}\n\nfunction isPadded(el: string) {\n return /^-?0\\d/.test(el)\n}\n\nfunction lte(i: number, y: number) {\n return i <= y\n}\n\nfunction gte(i: number, y: number) {\n return i >= y\n}\n\n// Build `{ acc[a] + pre + values[v] }` for every combination, capping the\n// number of results at `max` and the total number of characters at `maxLength`.\n// This is the one place output grows, so bounding it here keeps the single\n// accumulator - and therefore memory - flat regardless of how many brace groups\n// are combined (CVE-2026-14257).\nfunction combine(\n acc: string[],\n pre: string,\n values: string[],\n max: number,\n maxLength: number,\n dropEmpties: boolean,\n): string[] {\n const out: string[] = []\n let length = 0\n for (let a = 0; a < acc.length; a++) {\n for (let v = 0; v < values.length; v++) {\n if (out.length >= max) return out\n const expansion = (acc[a] as string) + pre + values[v]\n // Bash drops empty results at the top level. Skip them before they count\n // against `max`, so `max` bounds the number of *kept* results.\n if (dropEmpties && !expansion) continue\n if (length + expansion.length > maxLength) return out\n out.push(expansion)\n length += expansion.length\n }\n }\n return out\n}\n\n// The expansion values of a single numeric (`1..5`) or alphabetic (`a..e..2`)\n// sequence body.\nfunction expandSequence(\n body: string,\n isAlphaSequence: boolean,\n max: number,\n maxLength: number,\n): string[] {\n const n = body.split(/\\.\\./)\n const N: string[] = []\n // A sequence body always splits into two or three parts, but the compiler\n // can't know that.\n /* c8 ignore start */\n if (n[0] === undefined || n[1] === undefined) {\n return N\n }\n /* c8 ignore stop */\n const x = numeric(n[0])\n const y = numeric(n[1])\n const width = Math.max(n[0].length, n[1].length)\n let incr =\n n.length === 3 && n[2] !== undefined ?\n Math.max(Math.abs(numeric(n[2])), 1)\n : 1\n let test = lte\n const reverse = y < x\n if (reverse) {\n incr *= -1\n test = gte\n }\n const pad = n.some(isPadded)\n\n let length = 0\n for (let i = x; test(i, y) && N.length < max; i += incr) {\n let c\n if (isAlphaSequence) {\n c = String.fromCharCode(i)\n if (c === '\\\\') {\n c = ''\n }\n } else {\n c = String(i)\n if (pad) {\n const need = width - c.length\n if (need > 0) {\n const z = new Array(need + 1).join('0')\n if (i < 0) {\n c = '-' + z + c.slice(1)\n } else {\n c = z + c\n }\n }\n }\n }\n if (length + c.length > maxLength) break\n N.push(c)\n length += c.length\n }\n return N\n}\n\nfunction expand_(\n str: string,\n max: number,\n maxLength: number,\n isTop: boolean,\n): string[] {\n // Consume the string's top-level brace groups left to right, threading a\n // running set of combined prefixes (`acc`). Expanding the tail iteratively -\n // rather than recursing on `m.post` once per group - keeps the native stack\n // depth constant, so deeply chained input (`'{a,b}'.repeat(3000)`) can no\n // longer overflow the stack, and leaves a single accumulator whose size\n // `maxLength` bounds directly (CVE-2026-14257).\n let acc: string[] = ['']\n\n // Bash drops empty results, but only when the *first* top-level group is a\n // comma set - a sequence like `{a..\\}` may legitimately yield ''. The drop\n // is on the final strings, so it is applied to whichever `combine` produces\n // them (the one with no brace set left in the tail).\n let dropEmpties = false\n let firstGroup = true\n\n for (;;) {\n const m = balanced('{', '}', str)\n\n // No brace set left: the rest of the string is literal.\n if (!m) {\n return combine(acc, str, [''], max, maxLength, dropEmpties)\n }\n\n // no need to expand pre, since it is guaranteed to be free of brace-sets\n const pre = m.pre\n\n if (/\\$$/.test(pre)) {\n acc = combine(\n acc,\n pre + '{' + m.body + '}',\n [''],\n max,\n maxLength,\n dropEmpties && !m.post.length,\n )\n firstGroup = false\n if (!m.post.length) break\n str = m.post\n continue\n }\n\n const isNumericSequence = /^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(m.body)\n const isAlphaSequence = /^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(\n m.body,\n )\n const isSequence = isNumericSequence || isAlphaSequence\n const isOptions = m.body.indexOf(',') >= 0\n if (!isSequence && !isOptions) {\n // {a},b}\n if (m.post.match(/,(?!,).*\\}/)) {\n str = m.pre + '{' + m.body + escClose + m.post\n isTop = true\n continue\n }\n // Nothing here expands, so the whole remaining string is literal.\n return combine(\n acc,\n pre + '{' + m.body + '}' + m.post,\n [''],\n max,\n maxLength,\n dropEmpties,\n )\n }\n\n if (firstGroup) {\n dropEmpties = isTop && !isSequence\n firstGroup = false\n }\n\n let values: string[]\n if (isSequence) {\n values = expandSequence(m.body, isAlphaSequence, max, maxLength)\n } else {\n let n = parseCommaParts(m.body)\n if (n.length === 1 && n[0] !== undefined) {\n // x{{a,b}}y ==> x{a}y x{b}y\n n = expand_(n[0], max, maxLength, false).map(embrace)\n //XXX is this necessary? Can't seem to hit it in tests.\n /* c8 ignore start */\n if (n.length === 1) {\n acc = combine(\n acc,\n pre + n[0],\n [''],\n max,\n maxLength,\n dropEmpties && !m.post.length,\n )\n if (!m.post.length) break\n str = m.post\n continue\n }\n /* c8 ignore stop */\n }\n\n // Values that `combine` is going to drop as empty produce no result, so\n // they must not count against `max` - otherwise `{a,,b}` with `max: 2`\n // would stop at `['a', '']` and yield one result instead of two. Skipping\n // them outright keeps `values` bounded while leaving `max` a bound on\n // *kept* results.\n let dropsEmpties = dropEmpties && !m.post.length && !pre\n for (let d = 0; dropsEmpties && d < acc.length; d++) {\n if (acc[d]) {\n dropsEmpties = false\n }\n }\n\n values = []\n let valuesLength = 0\n outer: for (let j = 0; j < n.length; j++) {\n const expanded = expand_(n[j] as string, max, maxLength, false)\n for (let k = 0; k < expanded.length; k++) {\n const v = expanded[k] as string\n if (dropsEmpties && !v) continue\n if (values.length >= max || valuesLength + v.length > maxLength) {\n break outer\n }\n values.push(v)\n valuesLength += v.length\n }\n }\n }\n\n acc = combine(acc, pre, values, max, maxLength, dropEmpties && !m.post.length)\n if (!m.post.length) break\n str = m.post\n }\n\n return acc\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "brace-expansion",
3
3
  "description": "Brace expansion as known from sh/bash",
4
- "version": "5.0.7",
4
+ "version": "5.0.9",
5
5
  "files": [
6
6
  "dist"
7
7
  ],
@@ -46,7 +46,7 @@
46
46
  },
47
47
  "license": "MIT",
48
48
  "engines": {
49
- "node": "18 || 20 || >=22"
49
+ "node": "20 || >=22"
50
50
  },
51
51
  "tshy": {
52
52
  "exports": {
@@ -188,7 +188,7 @@ ESLint follows [semantic versioning](https://semver.org). However, due to the na
188
188
  - Non-user-facing changes such as refactoring code, adding, deleting, or modifying tests, and increasing test coverage.
189
189
  - Re-releasing after a failed release (i.e., publishing a release that doesn't work for anyone).
190
190
  - Minor release (might break your lint build)
191
- - A bug fix in a rule that results in ESLint reporting more linting errors.
191
+ - A bug fix that results in ESLint reporting more linting errors (e.g., fixing false negatives in a core rule, or linting additional files that were previously incorrectly skipped).
192
192
  - A new rule is created.
193
193
  - A new option to an existing rule that does not result in ESLint reporting more linting errors by default.
194
194
  - A new addition to an existing rule to support a newly-added language feature (within the last 12 months) that will result in ESLint reporting more linting errors by default.
@@ -360,7 +360,7 @@ to get your logo on our READMEs and [website](https://eslint.org/sponsors).
360
360
  <p><a href="https://automattic.com"><img src="https://images.opencollective.com/automattic/d0ef3e1/logo.png" alt="Automattic" height="128"></a></p><h3>Gold Sponsors</h3>
361
361
  <p><a href="https://qlty.sh/"><img src="https://images.opencollective.com/qltysh/33d157d/logo.png" alt="Qlty Software" height="96"></a> <a href="https://shopify.engineering/"><img src="https://avatars.githubusercontent.com/u/8085" alt="Shopify" height="96"></a> <a href="https://www.coderabbit.ai/?utm_source=cr_org&utm_medium=github"><img src="https://avatars.githubusercontent.com/u/132028505" alt="CodeRabbit" height="96"></a></p><h3>Silver Sponsors</h3>
362
362
  <p><a href="https://vite.dev/"><img src="https://images.opencollective.com/vite/d472863/logo.png" alt="Vite" height="64"></a> <a href="https://liftoff.io/"><img src="https://images.opencollective.com/liftoff/2d6c3b6/logo.png" alt="Liftoff" height="64"></a> <a href="https://stackblitz.com"><img src="https://avatars.githubusercontent.com/u/28635252" alt="StackBlitz" height="64"></a></p><h3>Bronze Sponsors</h3>
363
- <p><a href="https://cybozu.co.jp/"><img src="https://images.opencollective.com/cybozu/933e46d/logo.png" alt="Cybozu" height="32"></a> <a href="https://opensource.sap.com"><img src="https://avatars.githubusercontent.com/u/2531208" alt="SAP" height="32"></a> <a href="https://www.crawljobs.com/"><img src="https://images.opencollective.com/crawljobs-poland/fa43a17/logo.png" alt="CrawlJobs" height="32"></a> <a href="https://syntax.fm"><img src="https://github.com/syntaxfm.png" alt="Syntax" height="32"></a> <a href="https://depot.dev"><img src="https://images.opencollective.com/depot/39125a1/logo.png" alt="Depot" height="32"></a> <a href="https://icons8.com/"><img src="https://images.opencollective.com/icons8/7fa1641/logo.png" alt="Icons8" height="32"></a> <a href="https://discord.com"><img src="https://images.opencollective.com/discordapp/f9645d9/logo.png" alt="Discord" height="32"></a> <a href="https://www.gitbook.com"><img src="https://avatars.githubusercontent.com/u/7111340" alt="GitBook" height="32"></a> <a href="https://citadel.co.jp"><img src="https://avatars.githubusercontent.com/u/75781367" alt="Citadel AI" height="32"></a></p>
363
+ <p><a href="https://cybozu.co.jp/"><img src="https://images.opencollective.com/cybozu/933e46d/logo.png" alt="Cybozu" height="32"></a> <a href="https://opensource.sap.com"><img src="https://avatars.githubusercontent.com/u/2531208" alt="SAP" height="32"></a> <a href="https://syntax.fm"><img src="https://github.com/syntaxfm.png" alt="Syntax" height="32"></a> <a href="https://icons8.com/"><img src="https://images.opencollective.com/icons8/7fa1641/logo.png" alt="Icons8" height="32"></a> <a href="https://discord.com"><img src="https://images.opencollective.com/discordapp/f9645d9/logo.png" alt="Discord" height="32"></a> <a href="https://www.gitbook.com"><img src="https://avatars.githubusercontent.com/u/7111340" alt="GitBook" height="32"></a> <a href="https://citadel-ai.com"><img src="https://avatars.githubusercontent.com/u/75781367" alt="Citadel AI" height="32"></a></p>
364
364
  <h3>Technology Sponsors</h3>
365
365
  Technology sponsors allow us to use their products and services for free as part of a contribution to the open source ecosystem and our work.
366
366
  <p><a href="https://netlify.com"><img src="https://raw.githubusercontent.com/eslint/eslint.org/main/src/assets/images/techsponsors/netlify-icon.svg" alt="Netlify" height="32"></a> <a href="https://algolia.com"><img src="https://raw.githubusercontent.com/eslint/eslint.org/main/src/assets/images/techsponsors/algolia-icon.svg" alt="Algolia" height="32"></a> <a href="https://1password.com"><img src="https://raw.githubusercontent.com/eslint/eslint.org/main/src/assets/images/techsponsors/1password-icon.svg" alt="1Password" height="32"></a></p>
@@ -244,7 +244,7 @@ function messageTemplate(it) {
244
244
  <td class="clr-${severityNumber}">${severityName}</td>
245
245
  <td>${encodeHTML(message)}</td>
246
246
  <td>
247
- <a href="${ruleUrl ? ruleUrl : ""}" target="_blank" rel="noopener noreferrer">${ruleId ? ruleId : ""}</a>
247
+ <a href="${ruleUrl ? ruleUrl : ""}" target="_blank" rel="noopener noreferrer">${encodeHTML(ruleId)}</a>
248
248
  </td>
249
249
  </tr>
250
250
  `.trimStart();
@@ -62,7 +62,7 @@ function analyzeScope(ast, languageOptions, visitorKeys) {
62
62
  /**
63
63
  * Determines if a given object is Espree.
64
64
  * @param {Object} parser The parser to check.
65
- * @returns {boolean} True if the parser is Espree or false if not.
65
+ * @returns {boolean} `true` if the parser is Espree or `false` if not.
66
66
  */
67
67
  function isEspree(parser) {
68
68
  return !!(parser === espree || parser[parserSymbol] === espree);
@@ -118,7 +118,7 @@ module.exports = {
118
118
  * The DOT code can be visualized with Graphvis.
119
119
  * @param {CodePath} codePath A code path to dump.
120
120
  * @returns {void}
121
- * @see http://www.graphviz.org
121
+ * @see https://www.graphviz.org
122
122
  * @see http://www.webgraphviz.com
123
123
  */
124
124
  dumpDot: !debug.enabled
@@ -40,7 +40,7 @@ function stripUnicodeBOM(value) {
40
40
  /*
41
41
  * Check Unicode BOM.
42
42
  * In JavaScript, string data is stored as UTF-16, so BOM is 0xFEFF.
43
- * http://www.ecma-international.org/ecma-262/6.0/#sec-unicode-format-control-characters
43
+ * https://262.ecma-international.org/6.0/#sec-unicode-format-control-characters
44
44
  */
45
45
  return value.slice(1);
46
46
  }
@@ -127,7 +127,8 @@ module.exports = {
127
127
  function hasImplements(node) {
128
128
  const classNode = node.parent.parent;
129
129
  return (
130
- classNode?.type === "ClassDeclaration" &&
130
+ (classNode?.type === "ClassDeclaration" ||
131
+ classNode?.type === "ClassExpression") &&
131
132
  classNode.implements?.length > 0
132
133
  );
133
134
  }
@@ -140,10 +141,6 @@ module.exports = {
140
141
  */
141
142
  function isIncludedInstanceMethod(node) {
142
143
  if (isInstanceMethod(node)) {
143
- if (node.computed) {
144
- return true;
145
- }
146
-
147
144
  if (ignoreOverrideMethods && node.override) {
148
145
  return false;
149
146
  }
@@ -163,6 +160,10 @@ module.exports = {
163
160
  }
164
161
  }
165
162
 
163
+ if (node.computed) {
164
+ return true;
165
+ }
166
+
166
167
  const hashIfNeeded =
167
168
  node.key.type === "PrivateIdentifier" ? "#" : "";
168
169
  const name =
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @fileoverview Counts the cyclomatic complexity of each function of the script. See http://en.wikipedia.org/wiki/Cyclomatic_complexity.
2
+ * @fileoverview Counts the cyclomatic complexity of each function of the script. See https://en.wikipedia.org/wiki/Cyclomatic_complexity.
3
3
  * Counts the number of if, conditional, for, while, try, switch/case,
4
4
  * @author Patrick Brosset
5
5
  */
@@ -102,6 +102,24 @@ module.exports = {
102
102
  return isTypeOf(node.left) || isTypeOf(node.right);
103
103
  }
104
104
 
105
+ /**
106
+ * Gets the type of a literal node.
107
+ * @param {ASTNode} node The node to check
108
+ * @returns {string|null} The type of the literal
109
+ * @private
110
+ */
111
+ function getLiteralType(node) {
112
+ if (node.type === "Literal") {
113
+ return typeof node.value;
114
+ }
115
+
116
+ if (astUtils.isStaticTemplateLiteral(node)) {
117
+ return "string";
118
+ }
119
+
120
+ return null;
121
+ }
122
+
105
123
  /**
106
124
  * Checks if operands are literals of the same type (via typeof)
107
125
  * @param {ASTNode} node The node to check
@@ -109,11 +127,9 @@ module.exports = {
109
127
  * @private
110
128
  */
111
129
  function areLiteralsAndSameType(node) {
112
- return (
113
- node.left.type === "Literal" &&
114
- node.right.type === "Literal" &&
115
- typeof node.left.value === typeof node.right.value
116
- );
130
+ const leftType = getLiteralType(node.left);
131
+
132
+ return leftType !== null && leftType === getLiteralType(node.right);
117
133
  }
118
134
 
119
135
  /**
@@ -186,7 +202,11 @@ module.exports = {
186
202
  const isNull = isNullCheck(node);
187
203
 
188
204
  if (node.operator !== "==" && node.operator !== "!=") {
189
- if (enforceInverseRuleForNull && isNull) {
205
+ if (
206
+ enforceInverseRuleForNull &&
207
+ isNull &&
208
+ (node.operator === "===" || node.operator === "!==")
209
+ ) {
190
210
  report(node, node.operator.slice(0, -1));
191
211
  }
192
212
  return;
@@ -250,9 +250,9 @@ module.exports = {
250
250
  },
251
251
 
252
252
  "Property, PropertyDefinition[value]"(node) {
253
- if (
254
- !(node.value.type === "FunctionExpression" && node.value.id)
255
- ) {
253
+ if (!(
254
+ node.value.type === "FunctionExpression" && node.value.id
255
+ )) {
256
256
  return;
257
257
  }
258
258
 
@@ -226,12 +226,10 @@ module.exports = {
226
226
  }
227
227
 
228
228
  // Only check before when preceded by `function`|`static` keyword
229
- if (
230
- !(
231
- kind === "method" &&
232
- starToken === sourceCode.getFirstToken(node.parent)
233
- )
234
- ) {
229
+ if (!(
230
+ kind === "method" &&
231
+ starToken === sourceCode.getFirstToken(node.parent)
232
+ )) {
235
233
  checkSpacing(kind, "before", prevToken, starToken);
236
234
  }
237
235
 
@@ -1872,12 +1872,10 @@ module.exports = {
1872
1872
  },
1873
1873
 
1874
1874
  SwitchCase(node) {
1875
- if (
1876
- !(
1877
- node.consequent.length === 1 &&
1878
- node.consequent[0].type === "BlockStatement"
1879
- )
1880
- ) {
1875
+ if (!(
1876
+ node.consequent.length === 1 &&
1877
+ node.consequent[0].type === "BlockStatement"
1878
+ )) {
1881
1879
  const caseKeyword = sourceCode.getFirstToken(node);
1882
1880
  const tokenAfterCurrentCase =
1883
1881
  sourceCode.getTokenAfter(node);