less 3.10.1 → 3.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1038) hide show
  1. package/.github/FUNDING.yml +12 -0
  2. package/CONTRIBUTING.md +2 -2
  3. package/Gruntfile.js +42 -212
  4. package/README.md +31 -1
  5. package/bin/lessc +10787 -12604
  6. package/dist/less.cjs.js +10411 -12115
  7. package/dist/less.js +10680 -13459
  8. package/dist/less.min.js +3 -3
  9. package/dist/less.min.js.map +1 -1
  10. package/lib/less/environment/abstract-file-manager.js +1 -1
  11. package/lib/less/functions/list.js +2 -1
  12. package/lib/less/functions/string.js +1 -2
  13. package/lib/less/index.js +1 -1
  14. package/lib/less/less-error.js +22 -2
  15. package/lib/less/parser/parser.js +9 -12
  16. package/lib/less/tree/namespace-value.js +1 -2
  17. package/lib/less/tree/quoted.js +3 -0
  18. package/lib/less/visitors/visitor.js +10 -2
  19. package/lib/less-node/file-manager.js +19 -49
  20. package/lib/lessc.js +2 -21
  21. package/package.json +17 -14
  22. package/packages/css-parser/node_modules/chevrotain/CHANGELOG.md +2 -0
  23. package/packages/css-parser/node_modules/chevrotain/LICENSE.txt +202 -0
  24. package/packages/css-parser/node_modules/chevrotain/README.md +20 -0
  25. package/packages/css-parser/node_modules/chevrotain/diagrams/README.md +1 -0
  26. package/packages/css-parser/node_modules/chevrotain/diagrams/diagrams.css +85 -0
  27. package/packages/css-parser/node_modules/chevrotain/diagrams/src/diagrams_behavior.js +225 -0
  28. package/packages/css-parser/node_modules/chevrotain/diagrams/src/diagrams_builder.js +211 -0
  29. package/packages/css-parser/node_modules/chevrotain/diagrams/src/diagrams_serializer.js +20 -0
  30. package/packages/css-parser/node_modules/chevrotain/diagrams/src/main.js +38 -0
  31. package/packages/css-parser/node_modules/chevrotain/diagrams/vendor/railroad-diagrams.js +1042 -0
  32. package/packages/css-parser/node_modules/chevrotain/lib/chevrotain.d.ts +2961 -0
  33. package/packages/css-parser/node_modules/chevrotain/lib/chevrotain.js +9785 -0
  34. package/packages/css-parser/node_modules/chevrotain/lib/chevrotain.min.js +2 -0
  35. package/packages/css-parser/node_modules/chevrotain/lib/src/api.js +70 -0
  36. package/packages/css-parser/node_modules/chevrotain/lib/src/diagrams/render_public.js +15 -0
  37. package/packages/css-parser/node_modules/chevrotain/lib/src/generate/generate.js +142 -0
  38. package/packages/css-parser/node_modules/chevrotain/lib/src/generate/generate_public.js +21 -0
  39. package/packages/css-parser/node_modules/chevrotain/lib/src/lang/lang_extensions.js +42 -0
  40. package/packages/css-parser/node_modules/chevrotain/lib/src/parse/constants.js +5 -0
  41. package/packages/css-parser/node_modules/chevrotain/lib/src/parse/cst/cst.js +194 -0
  42. package/packages/css-parser/node_modules/chevrotain/lib/src/parse/cst/cst_visitor.js +129 -0
  43. package/packages/css-parser/node_modules/chevrotain/lib/src/parse/errors_public.js +205 -0
  44. package/packages/css-parser/node_modules/chevrotain/lib/src/parse/exceptions_public.js +58 -0
  45. package/packages/css-parser/node_modules/chevrotain/lib/src/parse/grammar/checks.js +590 -0
  46. package/packages/css-parser/node_modules/chevrotain/lib/src/parse/grammar/first.js +63 -0
  47. package/packages/css-parser/node_modules/chevrotain/lib/src/parse/grammar/follow.js +67 -0
  48. package/packages/css-parser/node_modules/chevrotain/lib/src/parse/grammar/gast/gast.js +170 -0
  49. package/packages/css-parser/node_modules/chevrotain/lib/src/parse/grammar/gast/gast_public.js +262 -0
  50. package/packages/css-parser/node_modules/chevrotain/lib/src/parse/grammar/gast/gast_resolver_public.js +39 -0
  51. package/packages/css-parser/node_modules/chevrotain/lib/src/parse/grammar/gast/gast_visitor_public.js +48 -0
  52. package/packages/css-parser/node_modules/chevrotain/lib/src/parse/grammar/interpreter.js +548 -0
  53. package/packages/css-parser/node_modules/chevrotain/lib/src/parse/grammar/keys.js +42 -0
  54. package/packages/css-parser/node_modules/chevrotain/lib/src/parse/grammar/lookahead.js +502 -0
  55. package/packages/css-parser/node_modules/chevrotain/lib/src/parse/grammar/resolver.js +59 -0
  56. package/packages/css-parser/node_modules/chevrotain/lib/src/parse/grammar/rest.js +112 -0
  57. package/packages/css-parser/node_modules/chevrotain/lib/src/parse/parser/parser.js +235 -0
  58. package/packages/css-parser/node_modules/chevrotain/lib/src/parse/parser/traits/context_assist.js +28 -0
  59. package/packages/css-parser/node_modules/chevrotain/lib/src/parse/parser/traits/error_handler.js +83 -0
  60. package/packages/css-parser/node_modules/chevrotain/lib/src/parse/parser/traits/gast_recorder.js +318 -0
  61. package/packages/css-parser/node_modules/chevrotain/lib/src/parse/parser/traits/lexer_adapter.js +76 -0
  62. package/packages/css-parser/node_modules/chevrotain/lib/src/parse/parser/traits/looksahead.js +108 -0
  63. package/packages/css-parser/node_modules/chevrotain/lib/src/parse/parser/traits/parser_traits.js +7 -0
  64. package/packages/css-parser/node_modules/chevrotain/lib/src/parse/parser/traits/perf_tracer.js +53 -0
  65. package/packages/css-parser/node_modules/chevrotain/lib/src/parse/parser/traits/recognizer_api.js +343 -0
  66. package/packages/css-parser/node_modules/chevrotain/lib/src/parse/parser/traits/recognizer_engine.js +645 -0
  67. package/packages/css-parser/node_modules/chevrotain/lib/src/parse/parser/traits/recoverable.js +309 -0
  68. package/packages/css-parser/node_modules/chevrotain/lib/src/parse/parser/traits/tree_builder.js +290 -0
  69. package/packages/css-parser/node_modules/chevrotain/lib/src/scan/lexer.js +910 -0
  70. package/packages/css-parser/node_modules/chevrotain/lib/src/scan/lexer_errors_public.js +11 -0
  71. package/packages/css-parser/node_modules/chevrotain/lib/src/scan/lexer_public.js +674 -0
  72. package/packages/css-parser/node_modules/chevrotain/lib/src/scan/reg_exp.js +265 -0
  73. package/packages/css-parser/node_modules/chevrotain/lib/src/scan/reg_exp_parser.js +22 -0
  74. package/packages/css-parser/node_modules/chevrotain/lib/src/scan/tokens.js +129 -0
  75. package/packages/css-parser/node_modules/chevrotain/lib/src/scan/tokens_constants.js +4 -0
  76. package/packages/css-parser/node_modules/chevrotain/lib/src/scan/tokens_public.js +95 -0
  77. package/packages/css-parser/node_modules/chevrotain/lib/src/text/range.js +33 -0
  78. package/packages/css-parser/node_modules/chevrotain/lib/src/utils/utils.js +473 -0
  79. package/packages/css-parser/node_modules/chevrotain/lib/src/version.js +7 -0
  80. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/api.js +25 -0
  81. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/diagrams/render_public.js +12 -0
  82. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/generate/generate.js +131 -0
  83. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/generate/generate_public.js +17 -0
  84. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/lang/lang_extensions.js +37 -0
  85. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/parse/constants.js +3 -0
  86. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/parse/cst/cst.js +187 -0
  87. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/parse/cst/cst_visitor.js +121 -0
  88. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/parse/errors_public.js +203 -0
  89. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/parse/exceptions_public.js +51 -0
  90. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/parse/grammar/checks.js +574 -0
  91. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/parse/grammar/first.js +57 -0
  92. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/parse/grammar/follow.js +62 -0
  93. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/parse/grammar/gast/gast.js +163 -0
  94. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/parse/grammar/gast/gast_public.js +258 -0
  95. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/parse/grammar/gast/gast_resolver_public.js +34 -0
  96. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/parse/grammar/gast/gast_visitor_public.js +46 -0
  97. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/parse/grammar/interpreter.js +544 -0
  98. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/parse/grammar/keys.js +38 -0
  99. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/parse/grammar/lookahead.js +489 -0
  100. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/parse/grammar/resolver.js +56 -0
  101. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/parse/grammar/rest.js +110 -0
  102. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/parse/parser/parser.js +232 -0
  103. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/parse/parser/traits/context_assist.js +26 -0
  104. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/parse/parser/traits/error_handler.js +81 -0
  105. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/parse/parser/traits/gast_recorder.js +316 -0
  106. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/parse/parser/traits/lexer_adapter.js +74 -0
  107. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/parse/parser/traits/looksahead.js +106 -0
  108. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/parse/parser/traits/parser_traits.js +5 -0
  109. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/parse/parser/traits/perf_tracer.js +51 -0
  110. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/parse/parser/traits/recognizer_api.js +341 -0
  111. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/parse/parser/traits/recognizer_engine.js +643 -0
  112. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/parse/parser/traits/recoverable.js +305 -0
  113. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/parse/parser/traits/tree_builder.js +288 -0
  114. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/scan/lexer.js +885 -0
  115. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/scan/lexer_errors_public.js +9 -0
  116. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/scan/lexer_public.js +672 -0
  117. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/scan/reg_exp.js +260 -0
  118. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/scan/reg_exp_parser.js +18 -0
  119. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/scan/tokens.js +114 -0
  120. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/scan/tokens_constants.js +2 -0
  121. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/scan/tokens_public.js +87 -0
  122. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/text/range.js +30 -0
  123. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/utils/utils.js +420 -0
  124. package/packages/css-parser/node_modules/chevrotain/lib_esm/src/version.js +5 -0
  125. package/packages/css-parser/node_modules/chevrotain/package.json +142 -0
  126. package/{test/browser/vendor → packages/less/.grunt/grunt-contrib-jasmine}/boot.js +8 -4
  127. package/packages/less/.grunt/grunt-contrib-jasmine/jasmine-html.js +473 -0
  128. package/packages/less/.grunt/grunt-contrib-jasmine/jasmine.css +58 -0
  129. package/packages/less/.grunt/grunt-contrib-jasmine/jasmine.js +3454 -0
  130. package/packages/less/.grunt/grunt-contrib-jasmine/jasmine_favicon.png +0 -0
  131. package/packages/less/.grunt/grunt-contrib-jasmine/json2.js +489 -0
  132. package/packages/less/.grunt/grunt-contrib-jasmine/reporter.js +132 -0
  133. package/packages/less/node_modules/@types/jasmine/LICENSE +21 -0
  134. package/packages/less/node_modules/@types/jasmine/README.md +16 -0
  135. package/packages/less/node_modules/@types/jasmine/index.d.ts +954 -0
  136. package/packages/less/node_modules/@types/jasmine/package.json +96 -0
  137. package/packages/less/node_modules/@types/jasmine/ts3.1/index.d.ts +980 -0
  138. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/CHANGELOG.md +263 -0
  139. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/LICENSE +21 -0
  140. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/README.md +187 -0
  141. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/configs/all.json +75 -0
  142. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/configs/base.json +7 -0
  143. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslint-recommended.js +54 -0
  144. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/configs/eslint-recommended.js.map +1 -0
  145. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/configs/recommended.json +37 -0
  146. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/index.js +19 -0
  147. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/index.js.map +1 -0
  148. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/adjacent-overload-signatures.js +124 -0
  149. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/adjacent-overload-signatures.js.map +1 -0
  150. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/array-type.js +223 -0
  151. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/array-type.js.map +1 -0
  152. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/await-thenable.js +50 -0
  153. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/await-thenable.js.map +1 -0
  154. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-ts-ignore.js +47 -0
  155. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-ts-ignore.js.map +1 -0
  156. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-types.js +113 -0
  157. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/ban-types.js.map +1 -0
  158. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/camelcase.js +109 -0
  159. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/camelcase.js.map +1 -0
  160. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/class-name-casing.js +91 -0
  161. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/class-name-casing.js.map +1 -0
  162. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-definitions.js +86 -0
  163. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/consistent-type-definitions.js.map +1 -0
  164. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-function-return-type.js +203 -0
  165. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-function-return-type.js.map +1 -0
  166. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-member-accessibility.js +150 -0
  167. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/explicit-member-accessibility.js.map +1 -0
  168. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/func-call-spacing.js +135 -0
  169. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/func-call-spacing.js.map +1 -0
  170. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/generic-type-naming.js +52 -0
  171. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/generic-type-naming.js.map +1 -0
  172. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/BinarySearchTree.js +54 -0
  173. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/BinarySearchTree.js.map +1 -0
  174. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/OffsetStorage.js +220 -0
  175. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/OffsetStorage.js.map +1 -0
  176. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/TokenInfo.js +48 -0
  177. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/TokenInfo.js.map +1 -0
  178. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/index.js +1138 -0
  179. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent-new-do-not-use/index.js.map +1 -0
  180. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent.js +386 -0
  181. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/indent.js.map +1 -0
  182. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/index.js +132 -0
  183. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/index.js.map +1 -0
  184. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/interface-name-prefix.js +65 -0
  185. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/interface-name-prefix.js.map +1 -0
  186. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-delimiter-style.js +195 -0
  187. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-delimiter-style.js.map +1 -0
  188. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-naming.js +85 -0
  189. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-naming.js.map +1 -0
  190. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js +320 -0
  191. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/member-ordering.js.map +1 -0
  192. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-angle-bracket-type-assertion.js +41 -0
  193. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-angle-bracket-type-assertion.js.map +1 -0
  194. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-array-constructor.js +58 -0
  195. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-array-constructor.js.map +1 -0
  196. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-empty-function.js +89 -0
  197. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-empty-function.js.map +1 -0
  198. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-empty-interface.js +70 -0
  199. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-empty-interface.js.map +1 -0
  200. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-explicit-any.js +157 -0
  201. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-explicit-any.js.map +1 -0
  202. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-parens.js +152 -0
  203. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extra-parens.js.map +1 -0
  204. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extraneous-class.js +107 -0
  205. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-extraneous-class.js.map +1 -0
  206. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-floating-promises.js +135 -0
  207. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-floating-promises.js.map +1 -0
  208. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-for-in-array.js +49 -0
  209. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-for-in-array.js.map +1 -0
  210. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-inferrable-types.js +180 -0
  211. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-inferrable-types.js.map +1 -0
  212. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-magic-numbers.js +147 -0
  213. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-magic-numbers.js.map +1 -0
  214. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-new.js +91 -0
  215. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-new.js.map +1 -0
  216. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-promises.js +209 -0
  217. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-misused-promises.js.map +1 -0
  218. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-namespace.js +63 -0
  219. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-namespace.js.map +1 -0
  220. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-non-null-assertion.js +37 -0
  221. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-non-null-assertion.js.map +1 -0
  222. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-object-literal-type-assertion.js +78 -0
  223. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-object-literal-type-assertion.js.map +1 -0
  224. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-parameter-properties.js +93 -0
  225. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-parameter-properties.js.map +1 -0
  226. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-require-imports.js +43 -0
  227. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-require-imports.js.map +1 -0
  228. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-this-alias.js +71 -0
  229. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-this-alias.js.map +1 -0
  230. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-triple-slash-reference.js +49 -0
  231. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-triple-slash-reference.js.map +1 -0
  232. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-type-alias.js +208 -0
  233. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-type-alias.js.map +1 -0
  234. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-qualifier.js +137 -0
  235. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-qualifier.js.map +1 -0
  236. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-assertion.js +225 -0
  237. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unnecessary-type-assertion.js.map +1 -0
  238. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars.js +83 -0
  239. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-unused-vars.js.map +1 -0
  240. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-use-before-define.js +217 -0
  241. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-use-before-define.js.map +1 -0
  242. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-useless-constructor.js +70 -0
  243. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-useless-constructor.js.map +1 -0
  244. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-var-requires.js +43 -0
  245. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/no-var-requires.js.map +1 -0
  246. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-for-of.js +166 -0
  247. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-for-of.js.map +1 -0
  248. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-function-type.js +125 -0
  249. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-function-type.js.map +1 -0
  250. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-includes.js +170 -0
  251. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-includes.js.map +1 -0
  252. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-interface.js +58 -0
  253. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-interface.js.map +1 -0
  254. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-namespace-keyword.js +53 -0
  255. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-namespace-keyword.js.map +1 -0
  256. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly.js +236 -0
  257. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-readonly.js.map +1 -0
  258. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-regexp-exec.js +54 -0
  259. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-regexp-exec.js.map +1 -0
  260. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-string-starts-ends-with.js +440 -0
  261. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/prefer-string-starts-ends-with.js.map +1 -0
  262. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/promise-function-async.js +113 -0
  263. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/promise-function-async.js.map +1 -0
  264. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/require-array-sort-compare.js +55 -0
  265. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/require-array-sort-compare.js.map +1 -0
  266. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/require-await.js +107 -0
  267. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/require-await.js.map +1 -0
  268. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/restrict-plus-operands.js +107 -0
  269. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/restrict-plus-operands.js.map +1 -0
  270. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/semi.js +66 -0
  271. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/semi.js.map +1 -0
  272. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/strict-boolean-expressions.js +87 -0
  273. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/strict-boolean-expressions.js.map +1 -0
  274. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/triple-slash-reference.js +113 -0
  275. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/triple-slash-reference.js.map +1 -0
  276. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/type-annotation-spacing.js +161 -0
  277. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/type-annotation-spacing.js.map +1 -0
  278. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unbound-method.js +105 -0
  279. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unbound-method.js.map +1 -0
  280. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unified-signatures.js +374 -0
  281. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/rules/unified-signatures.js.map +1 -0
  282. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/util/astUtils.js +4 -0
  283. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/util/astUtils.js.map +1 -0
  284. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/util/createRule.js +7 -0
  285. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/util/createRule.js.map +1 -0
  286. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/util/getParserServices.js +19 -0
  287. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/util/getParserServices.js.map +1 -0
  288. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/util/index.js +17 -0
  289. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/util/index.js.map +1 -0
  290. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/util/misc.js +65 -0
  291. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/util/misc.js.map +1 -0
  292. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/util/types.js +159 -0
  293. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/dist/util/types.js.map +1 -0
  294. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/adjacent-overload-signatures.md +89 -0
  295. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/array-type.md +84 -0
  296. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/await-thenable.md +33 -0
  297. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/ban-ts-ignore.md +37 -0
  298. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/ban-types.md +75 -0
  299. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/camelcase.md +202 -0
  300. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/class-name-casing.md +40 -0
  301. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/consistent-type-definitions.md +74 -0
  302. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-function-return-type.md +179 -0
  303. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/explicit-member-accessibility.md +261 -0
  304. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/func-call-spacing.md +26 -0
  305. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/generic-type-naming.md +42 -0
  306. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/indent.md +713 -0
  307. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/interface-name-prefix.md +65 -0
  308. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/member-delimiter-style.md +194 -0
  309. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/member-naming.md +41 -0
  310. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/member-ordering.md +649 -0
  311. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-angle-bracket-type-assertion.md +32 -0
  312. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-array-constructor.md +34 -0
  313. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-empty-function.md +47 -0
  314. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-empty-interface.md +64 -0
  315. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-explicit-any.md +165 -0
  316. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-extra-parens.md +22 -0
  317. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-extraneous-class.md +64 -0
  318. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-floating-promises.md +46 -0
  319. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-for-in-array.md +44 -0
  320. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-inferrable-types.md +146 -0
  321. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-magic-numbers.md +68 -0
  322. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-misused-new.md +41 -0
  323. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-misused-promises.md +119 -0
  324. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-namespace.md +107 -0
  325. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-non-null-assertion.md +35 -0
  326. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-object-literal-type-assertion.md +33 -0
  327. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-parameter-properties.md +367 -0
  328. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-require-imports.md +34 -0
  329. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-this-alias.md +60 -0
  330. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-triple-slash-reference.md +43 -0
  331. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-type-alias.md +467 -0
  332. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unnecessary-qualifier.md +79 -0
  333. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unnecessary-type-assertion.md +69 -0
  334. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-unused-vars.md +305 -0
  335. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-use-before-define.md +171 -0
  336. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-useless-constructor.md +78 -0
  337. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/no-var-requires.md +28 -0
  338. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-for-of.md +41 -0
  339. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-function-type.md +57 -0
  340. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-includes.md +71 -0
  341. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-interface.md +36 -0
  342. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-namespace-keyword.md +22 -0
  343. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-readonly.md +81 -0
  344. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-regexp-exec.md +53 -0
  345. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/prefer-string-starts-ends-with.md +54 -0
  346. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/promise-function-async.md +67 -0
  347. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/require-array-sort-compare.md +50 -0
  348. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/require-await.md +49 -0
  349. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/restrict-plus-operands.md +27 -0
  350. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/semi.md +28 -0
  351. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/strict-boolean-expressions.md +57 -0
  352. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/triple-slash-reference.md +58 -0
  353. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/type-annotation-spacing.md +289 -0
  354. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/unbound-method.md +92 -0
  355. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/docs/rules/unified-signatures.md +33 -0
  356. package/packages/less/node_modules/@typescript-eslint/eslint-plugin/package.json +60 -0
  357. package/packages/less/node_modules/@typescript-eslint/parser/CHANGELOG.md +150 -0
  358. package/packages/less/node_modules/@typescript-eslint/parser/LICENSE +22 -0
  359. package/packages/less/node_modules/@typescript-eslint/parser/README.md +88 -0
  360. package/packages/less/node_modules/@typescript-eslint/parser/dist/analyze-scope.d.ts +4 -0
  361. package/packages/less/node_modules/@typescript-eslint/parser/dist/analyze-scope.d.ts.map +1 -0
  362. package/packages/less/node_modules/@typescript-eslint/parser/dist/analyze-scope.js +663 -0
  363. package/packages/less/node_modules/@typescript-eslint/parser/dist/analyze-scope.js.map +1 -0
  364. package/packages/less/node_modules/@typescript-eslint/parser/dist/parser-options.d.ts +3 -0
  365. package/packages/less/node_modules/@typescript-eslint/parser/dist/parser-options.d.ts.map +1 -0
  366. package/packages/less/node_modules/@typescript-eslint/parser/dist/parser-options.js +3 -0
  367. package/packages/less/node_modules/@typescript-eslint/parser/dist/parser-options.js.map +1 -0
  368. package/packages/less/node_modules/@typescript-eslint/parser/dist/parser.d.ts +17 -0
  369. package/packages/less/node_modules/@typescript-eslint/parser/dist/parser.d.ts.map +1 -0
  370. package/packages/less/node_modules/@typescript-eslint/parser/dist/parser.js +74 -0
  371. package/packages/less/node_modules/@typescript-eslint/parser/dist/parser.js.map +1 -0
  372. package/packages/less/node_modules/@typescript-eslint/parser/dist/scope/scope-manager.d.ts +14 -0
  373. package/packages/less/node_modules/@typescript-eslint/parser/dist/scope/scope-manager.d.ts.map +1 -0
  374. package/packages/less/node_modules/@typescript-eslint/parser/dist/scope/scope-manager.js +22 -0
  375. package/packages/less/node_modules/@typescript-eslint/parser/dist/scope/scope-manager.js.map +1 -0
  376. package/packages/less/node_modules/@typescript-eslint/parser/dist/scope/scopes.d.ts +11 -0
  377. package/packages/less/node_modules/@typescript-eslint/parser/dist/scope/scopes.d.ts.map +1 -0
  378. package/packages/less/node_modules/@typescript-eslint/parser/dist/scope/scopes.js +18 -0
  379. package/packages/less/node_modules/@typescript-eslint/parser/dist/scope/scopes.js.map +1 -0
  380. package/packages/less/node_modules/@typescript-eslint/parser/dist/simple-traverse.d.ts +7 -0
  381. package/packages/less/node_modules/@typescript-eslint/parser/dist/simple-traverse.d.ts.map +1 -0
  382. package/packages/less/node_modules/@typescript-eslint/parser/dist/simple-traverse.js +42 -0
  383. package/packages/less/node_modules/@typescript-eslint/parser/dist/simple-traverse.js.map +1 -0
  384. package/packages/less/node_modules/@typescript-eslint/parser/dist/visitor-keys.d.ts +3 -0
  385. package/packages/less/node_modules/@typescript-eslint/parser/dist/visitor-keys.d.ts.map +1 -0
  386. package/packages/less/node_modules/@typescript-eslint/parser/dist/visitor-keys.js +129 -0
  387. package/packages/less/node_modules/@typescript-eslint/parser/dist/visitor-keys.js.map +1 -0
  388. package/packages/less/node_modules/@typescript-eslint/parser/package.json +53 -0
  389. package/packages/less/node_modules/acorn/CHANGELOG.md +544 -0
  390. package/packages/less/node_modules/acorn/LICENSE +19 -0
  391. package/packages/less/node_modules/acorn/README.md +269 -0
  392. package/packages/less/node_modules/acorn/bin/acorn +4 -0
  393. package/packages/less/node_modules/acorn/dist/acorn.d.ts +209 -0
  394. package/packages/less/node_modules/acorn/dist/acorn.js +4968 -0
  395. package/packages/less/node_modules/acorn/dist/acorn.js.map +1 -0
  396. package/packages/less/node_modules/acorn/dist/acorn.mjs +4937 -0
  397. package/packages/less/node_modules/acorn/dist/acorn.mjs.map +1 -0
  398. package/packages/less/node_modules/acorn/dist/bin.js +64 -0
  399. package/packages/less/node_modules/acorn/package.json +34 -0
  400. package/packages/less/node_modules/ansi-regex/index.js +10 -0
  401. package/packages/less/node_modules/ansi-regex/license +9 -0
  402. package/packages/less/node_modules/ansi-regex/package.json +53 -0
  403. package/packages/less/node_modules/ansi-regex/readme.md +46 -0
  404. package/packages/less/node_modules/chevrotain/CHANGELOG.md +2 -0
  405. package/packages/less/node_modules/chevrotain/LICENSE.txt +202 -0
  406. package/packages/less/node_modules/chevrotain/README.md +20 -0
  407. package/packages/less/node_modules/chevrotain/diagrams/README.md +1 -0
  408. package/packages/less/node_modules/chevrotain/diagrams/diagrams.css +85 -0
  409. package/packages/less/node_modules/chevrotain/diagrams/src/diagrams_behavior.js +225 -0
  410. package/packages/less/node_modules/chevrotain/diagrams/src/diagrams_builder.js +211 -0
  411. package/packages/less/node_modules/chevrotain/diagrams/src/diagrams_serializer.js +20 -0
  412. package/packages/less/node_modules/chevrotain/diagrams/src/main.js +38 -0
  413. package/packages/less/node_modules/chevrotain/diagrams/vendor/railroad-diagrams.js +1042 -0
  414. package/packages/less/node_modules/chevrotain/lib/chevrotain.d.ts +2961 -0
  415. package/packages/less/node_modules/chevrotain/lib/chevrotain.js +9785 -0
  416. package/packages/less/node_modules/chevrotain/lib/chevrotain.min.js +2 -0
  417. package/packages/less/node_modules/chevrotain/lib/src/api.js +70 -0
  418. package/packages/less/node_modules/chevrotain/lib/src/diagrams/render_public.js +15 -0
  419. package/packages/less/node_modules/chevrotain/lib/src/generate/generate.js +142 -0
  420. package/packages/less/node_modules/chevrotain/lib/src/generate/generate_public.js +21 -0
  421. package/packages/less/node_modules/chevrotain/lib/src/lang/lang_extensions.js +42 -0
  422. package/packages/less/node_modules/chevrotain/lib/src/parse/constants.js +5 -0
  423. package/packages/less/node_modules/chevrotain/lib/src/parse/cst/cst.js +194 -0
  424. package/packages/less/node_modules/chevrotain/lib/src/parse/cst/cst_visitor.js +129 -0
  425. package/packages/less/node_modules/chevrotain/lib/src/parse/errors_public.js +205 -0
  426. package/packages/less/node_modules/chevrotain/lib/src/parse/exceptions_public.js +58 -0
  427. package/packages/less/node_modules/chevrotain/lib/src/parse/grammar/checks.js +590 -0
  428. package/packages/less/node_modules/chevrotain/lib/src/parse/grammar/first.js +63 -0
  429. package/packages/less/node_modules/chevrotain/lib/src/parse/grammar/follow.js +67 -0
  430. package/packages/less/node_modules/chevrotain/lib/src/parse/grammar/gast/gast.js +170 -0
  431. package/packages/less/node_modules/chevrotain/lib/src/parse/grammar/gast/gast_public.js +262 -0
  432. package/packages/less/node_modules/chevrotain/lib/src/parse/grammar/gast/gast_resolver_public.js +39 -0
  433. package/packages/less/node_modules/chevrotain/lib/src/parse/grammar/gast/gast_visitor_public.js +48 -0
  434. package/packages/less/node_modules/chevrotain/lib/src/parse/grammar/interpreter.js +548 -0
  435. package/packages/less/node_modules/chevrotain/lib/src/parse/grammar/keys.js +42 -0
  436. package/packages/less/node_modules/chevrotain/lib/src/parse/grammar/lookahead.js +502 -0
  437. package/packages/less/node_modules/chevrotain/lib/src/parse/grammar/resolver.js +59 -0
  438. package/packages/less/node_modules/chevrotain/lib/src/parse/grammar/rest.js +112 -0
  439. package/packages/less/node_modules/chevrotain/lib/src/parse/parser/parser.js +235 -0
  440. package/packages/less/node_modules/chevrotain/lib/src/parse/parser/traits/context_assist.js +28 -0
  441. package/packages/less/node_modules/chevrotain/lib/src/parse/parser/traits/error_handler.js +83 -0
  442. package/packages/less/node_modules/chevrotain/lib/src/parse/parser/traits/gast_recorder.js +318 -0
  443. package/packages/less/node_modules/chevrotain/lib/src/parse/parser/traits/lexer_adapter.js +76 -0
  444. package/packages/less/node_modules/chevrotain/lib/src/parse/parser/traits/looksahead.js +108 -0
  445. package/packages/less/node_modules/chevrotain/lib/src/parse/parser/traits/parser_traits.js +7 -0
  446. package/packages/less/node_modules/chevrotain/lib/src/parse/parser/traits/perf_tracer.js +53 -0
  447. package/packages/less/node_modules/chevrotain/lib/src/parse/parser/traits/recognizer_api.js +343 -0
  448. package/packages/less/node_modules/chevrotain/lib/src/parse/parser/traits/recognizer_engine.js +645 -0
  449. package/packages/less/node_modules/chevrotain/lib/src/parse/parser/traits/recoverable.js +309 -0
  450. package/packages/less/node_modules/chevrotain/lib/src/parse/parser/traits/tree_builder.js +290 -0
  451. package/packages/less/node_modules/chevrotain/lib/src/scan/lexer.js +910 -0
  452. package/packages/less/node_modules/chevrotain/lib/src/scan/lexer_errors_public.js +11 -0
  453. package/packages/less/node_modules/chevrotain/lib/src/scan/lexer_public.js +674 -0
  454. package/packages/less/node_modules/chevrotain/lib/src/scan/reg_exp.js +265 -0
  455. package/packages/less/node_modules/chevrotain/lib/src/scan/reg_exp_parser.js +22 -0
  456. package/packages/less/node_modules/chevrotain/lib/src/scan/tokens.js +129 -0
  457. package/packages/less/node_modules/chevrotain/lib/src/scan/tokens_constants.js +4 -0
  458. package/packages/less/node_modules/chevrotain/lib/src/scan/tokens_public.js +95 -0
  459. package/packages/less/node_modules/chevrotain/lib/src/text/range.js +33 -0
  460. package/packages/less/node_modules/chevrotain/lib/src/utils/utils.js +473 -0
  461. package/packages/less/node_modules/chevrotain/lib/src/version.js +7 -0
  462. package/packages/less/node_modules/chevrotain/lib_esm/src/api.js +25 -0
  463. package/packages/less/node_modules/chevrotain/lib_esm/src/diagrams/render_public.js +12 -0
  464. package/packages/less/node_modules/chevrotain/lib_esm/src/generate/generate.js +131 -0
  465. package/packages/less/node_modules/chevrotain/lib_esm/src/generate/generate_public.js +17 -0
  466. package/packages/less/node_modules/chevrotain/lib_esm/src/lang/lang_extensions.js +37 -0
  467. package/packages/less/node_modules/chevrotain/lib_esm/src/parse/constants.js +3 -0
  468. package/packages/less/node_modules/chevrotain/lib_esm/src/parse/cst/cst.js +187 -0
  469. package/packages/less/node_modules/chevrotain/lib_esm/src/parse/cst/cst_visitor.js +121 -0
  470. package/packages/less/node_modules/chevrotain/lib_esm/src/parse/errors_public.js +203 -0
  471. package/packages/less/node_modules/chevrotain/lib_esm/src/parse/exceptions_public.js +51 -0
  472. package/packages/less/node_modules/chevrotain/lib_esm/src/parse/grammar/checks.js +574 -0
  473. package/packages/less/node_modules/chevrotain/lib_esm/src/parse/grammar/first.js +57 -0
  474. package/packages/less/node_modules/chevrotain/lib_esm/src/parse/grammar/follow.js +62 -0
  475. package/packages/less/node_modules/chevrotain/lib_esm/src/parse/grammar/gast/gast.js +163 -0
  476. package/packages/less/node_modules/chevrotain/lib_esm/src/parse/grammar/gast/gast_public.js +258 -0
  477. package/packages/less/node_modules/chevrotain/lib_esm/src/parse/grammar/gast/gast_resolver_public.js +34 -0
  478. package/packages/less/node_modules/chevrotain/lib_esm/src/parse/grammar/gast/gast_visitor_public.js +46 -0
  479. package/packages/less/node_modules/chevrotain/lib_esm/src/parse/grammar/interpreter.js +544 -0
  480. package/packages/less/node_modules/chevrotain/lib_esm/src/parse/grammar/keys.js +38 -0
  481. package/packages/less/node_modules/chevrotain/lib_esm/src/parse/grammar/lookahead.js +489 -0
  482. package/packages/less/node_modules/chevrotain/lib_esm/src/parse/grammar/resolver.js +56 -0
  483. package/packages/less/node_modules/chevrotain/lib_esm/src/parse/grammar/rest.js +110 -0
  484. package/packages/less/node_modules/chevrotain/lib_esm/src/parse/parser/parser.js +232 -0
  485. package/packages/less/node_modules/chevrotain/lib_esm/src/parse/parser/traits/context_assist.js +26 -0
  486. package/packages/less/node_modules/chevrotain/lib_esm/src/parse/parser/traits/error_handler.js +81 -0
  487. package/packages/less/node_modules/chevrotain/lib_esm/src/parse/parser/traits/gast_recorder.js +316 -0
  488. package/packages/less/node_modules/chevrotain/lib_esm/src/parse/parser/traits/lexer_adapter.js +74 -0
  489. package/packages/less/node_modules/chevrotain/lib_esm/src/parse/parser/traits/looksahead.js +106 -0
  490. package/packages/less/node_modules/chevrotain/lib_esm/src/parse/parser/traits/parser_traits.js +5 -0
  491. package/packages/less/node_modules/chevrotain/lib_esm/src/parse/parser/traits/perf_tracer.js +51 -0
  492. package/packages/less/node_modules/chevrotain/lib_esm/src/parse/parser/traits/recognizer_api.js +341 -0
  493. package/packages/less/node_modules/chevrotain/lib_esm/src/parse/parser/traits/recognizer_engine.js +643 -0
  494. package/packages/less/node_modules/chevrotain/lib_esm/src/parse/parser/traits/recoverable.js +305 -0
  495. package/packages/less/node_modules/chevrotain/lib_esm/src/parse/parser/traits/tree_builder.js +288 -0
  496. package/packages/less/node_modules/chevrotain/lib_esm/src/scan/lexer.js +885 -0
  497. package/packages/less/node_modules/chevrotain/lib_esm/src/scan/lexer_errors_public.js +9 -0
  498. package/packages/less/node_modules/chevrotain/lib_esm/src/scan/lexer_public.js +672 -0
  499. package/packages/less/node_modules/chevrotain/lib_esm/src/scan/reg_exp.js +260 -0
  500. package/packages/less/node_modules/chevrotain/lib_esm/src/scan/reg_exp_parser.js +18 -0
  501. package/packages/less/node_modules/chevrotain/lib_esm/src/scan/tokens.js +114 -0
  502. package/packages/less/node_modules/chevrotain/lib_esm/src/scan/tokens_constants.js +2 -0
  503. package/packages/less/node_modules/chevrotain/lib_esm/src/scan/tokens_public.js +87 -0
  504. package/packages/less/node_modules/chevrotain/lib_esm/src/text/range.js +30 -0
  505. package/packages/less/node_modules/chevrotain/lib_esm/src/utils/utils.js +420 -0
  506. package/packages/less/node_modules/chevrotain/lib_esm/src/version.js +5 -0
  507. package/packages/less/node_modules/chevrotain/package.json +142 -0
  508. package/packages/less/node_modules/debug/CHANGELOG.md +395 -0
  509. package/packages/less/node_modules/debug/LICENSE +19 -0
  510. package/packages/less/node_modules/debug/README.md +455 -0
  511. package/packages/less/node_modules/debug/dist/debug.js +912 -0
  512. package/packages/less/node_modules/debug/package.json +63 -0
  513. package/packages/less/node_modules/debug/src/browser.js +264 -0
  514. package/packages/less/node_modules/debug/src/common.js +266 -0
  515. package/packages/less/node_modules/debug/src/index.js +10 -0
  516. package/packages/less/node_modules/debug/src/node.js +257 -0
  517. package/packages/less/node_modules/eslint/CHANGELOG.md +5110 -0
  518. package/packages/less/node_modules/eslint/LICENSE +19 -0
  519. package/packages/less/node_modules/eslint/README.md +293 -0
  520. package/packages/less/node_modules/eslint/bin/eslint.js +79 -0
  521. package/packages/less/node_modules/eslint/conf/category-list.json +40 -0
  522. package/packages/less/node_modules/eslint/conf/config-schema.js +70 -0
  523. package/packages/less/node_modules/eslint/conf/default-cli-options.js +31 -0
  524. package/packages/less/node_modules/eslint/conf/environments.js +109 -0
  525. package/packages/less/node_modules/eslint/conf/eslint-all.js +29 -0
  526. package/packages/less/node_modules/eslint/conf/eslint-recommended.js +15 -0
  527. package/packages/less/node_modules/eslint/conf/replacements.json +22 -0
  528. package/packages/less/node_modules/eslint/lib/api.js +28 -0
  529. package/packages/less/node_modules/eslint/lib/built-in-rules-index.js +278 -0
  530. package/packages/less/node_modules/eslint/lib/cli-engine.js +796 -0
  531. package/packages/less/node_modules/eslint/lib/cli.js +235 -0
  532. package/packages/less/node_modules/eslint/lib/code-path-analysis/code-path-analyzer.js +683 -0
  533. package/packages/less/node_modules/eslint/lib/code-path-analysis/code-path-segment.js +245 -0
  534. package/packages/less/node_modules/eslint/lib/code-path-analysis/code-path-state.js +1440 -0
  535. package/packages/less/node_modules/eslint/lib/code-path-analysis/code-path.js +239 -0
  536. package/packages/less/node_modules/eslint/lib/code-path-analysis/debug-helpers.js +200 -0
  537. package/packages/less/node_modules/eslint/lib/code-path-analysis/fork-context.js +260 -0
  538. package/packages/less/node_modules/eslint/lib/code-path-analysis/id-generator.js +46 -0
  539. package/packages/less/node_modules/eslint/lib/config/autoconfig.js +358 -0
  540. package/packages/less/node_modules/eslint/lib/config/config-cache.js +130 -0
  541. package/packages/less/node_modules/eslint/lib/config/config-file.js +640 -0
  542. package/packages/less/node_modules/eslint/lib/config/config-initializer.js +654 -0
  543. package/packages/less/node_modules/eslint/lib/config/config-ops.js +404 -0
  544. package/packages/less/node_modules/eslint/lib/config/config-rule.js +319 -0
  545. package/packages/less/node_modules/eslint/lib/config/config-validator.js +279 -0
  546. package/packages/less/node_modules/eslint/lib/config/environments.js +84 -0
  547. package/packages/less/node_modules/eslint/lib/config/plugins.js +169 -0
  548. package/packages/less/node_modules/eslint/lib/config.js +377 -0
  549. package/packages/less/node_modules/eslint/lib/formatters/checkstyle.js +60 -0
  550. package/packages/less/node_modules/eslint/lib/formatters/codeframe.js +138 -0
  551. package/packages/less/node_modules/eslint/lib/formatters/compact.js +60 -0
  552. package/packages/less/node_modules/eslint/lib/formatters/html-template-message.html +8 -0
  553. package/packages/less/node_modules/eslint/lib/formatters/html-template-page.html +115 -0
  554. package/packages/less/node_modules/eslint/lib/formatters/html-template-result.html +6 -0
  555. package/packages/less/node_modules/eslint/lib/formatters/html.js +139 -0
  556. package/packages/less/node_modules/eslint/lib/formatters/jslint-xml.js +41 -0
  557. package/packages/less/node_modules/eslint/lib/formatters/json-with-metadata.js +16 -0
  558. package/packages/less/node_modules/eslint/lib/formatters/json.js +13 -0
  559. package/packages/less/node_modules/eslint/lib/formatters/junit.js +70 -0
  560. package/packages/less/node_modules/eslint/lib/formatters/stylish.js +100 -0
  561. package/packages/less/node_modules/eslint/lib/formatters/table.js +159 -0
  562. package/packages/less/node_modules/eslint/lib/formatters/tap.js +95 -0
  563. package/packages/less/node_modules/eslint/lib/formatters/unix.js +58 -0
  564. package/packages/less/node_modules/eslint/lib/formatters/visualstudio.js +63 -0
  565. package/packages/less/node_modules/eslint/lib/linter.js +1085 -0
  566. package/packages/less/node_modules/eslint/lib/load-rules.js +46 -0
  567. package/packages/less/node_modules/eslint/lib/options.js +246 -0
  568. package/packages/less/node_modules/eslint/lib/rules/accessor-pairs.js +167 -0
  569. package/packages/less/node_modules/eslint/lib/rules/array-bracket-newline.js +261 -0
  570. package/packages/less/node_modules/eslint/lib/rules/array-bracket-spacing.js +241 -0
  571. package/packages/less/node_modules/eslint/lib/rules/array-callback-return.js +258 -0
  572. package/packages/less/node_modules/eslint/lib/rules/array-element-newline.js +262 -0
  573. package/packages/less/node_modules/eslint/lib/rules/arrow-body-style.js +240 -0
  574. package/packages/less/node_modules/eslint/lib/rules/arrow-parens.js +164 -0
  575. package/packages/less/node_modules/eslint/lib/rules/arrow-spacing.js +161 -0
  576. package/packages/less/node_modules/eslint/lib/rules/block-scoped-var.js +122 -0
  577. package/packages/less/node_modules/eslint/lib/rules/block-spacing.js +147 -0
  578. package/packages/less/node_modules/eslint/lib/rules/brace-style.js +188 -0
  579. package/packages/less/node_modules/eslint/lib/rules/callback-return.js +182 -0
  580. package/packages/less/node_modules/eslint/lib/rules/camelcase.js +228 -0
  581. package/packages/less/node_modules/eslint/lib/rules/capitalized-comments.js +307 -0
  582. package/packages/less/node_modules/eslint/lib/rules/class-methods-use-this.js +118 -0
  583. package/packages/less/node_modules/eslint/lib/rules/comma-dangle.js +345 -0
  584. package/packages/less/node_modules/eslint/lib/rules/comma-spacing.js +195 -0
  585. package/packages/less/node_modules/eslint/lib/rules/comma-style.js +315 -0
  586. package/packages/less/node_modules/eslint/lib/rules/complexity.js +160 -0
  587. package/packages/less/node_modules/eslint/lib/rules/computed-property-spacing.js +187 -0
  588. package/packages/less/node_modules/eslint/lib/rules/consistent-return.js +197 -0
  589. package/packages/less/node_modules/eslint/lib/rules/consistent-this.js +151 -0
  590. package/packages/less/node_modules/eslint/lib/rules/constructor-super.js +397 -0
  591. package/packages/less/node_modules/eslint/lib/rules/curly.js +382 -0
  592. package/packages/less/node_modules/eslint/lib/rules/default-case.js +97 -0
  593. package/packages/less/node_modules/eslint/lib/rules/dot-location.js +96 -0
  594. package/packages/less/node_modules/eslint/lib/rules/dot-notation.js +169 -0
  595. package/packages/less/node_modules/eslint/lib/rules/eol-last.js +112 -0
  596. package/packages/less/node_modules/eslint/lib/rules/eqeqeq.js +186 -0
  597. package/packages/less/node_modules/eslint/lib/rules/for-direction.js +126 -0
  598. package/packages/less/node_modules/eslint/lib/rules/func-call-spacing.js +168 -0
  599. package/packages/less/node_modules/eslint/lib/rules/func-name-matching.js +251 -0
  600. package/packages/less/node_modules/eslint/lib/rules/func-names.js +179 -0
  601. package/packages/less/node_modules/eslint/lib/rules/func-style.js +98 -0
  602. package/packages/less/node_modules/eslint/lib/rules/function-paren-newline.js +233 -0
  603. package/packages/less/node_modules/eslint/lib/rules/generator-star-spacing.js +211 -0
  604. package/packages/less/node_modules/eslint/lib/rules/getter-return.js +186 -0
  605. package/packages/less/node_modules/eslint/lib/rules/global-require.js +81 -0
  606. package/packages/less/node_modules/eslint/lib/rules/guard-for-in.js +76 -0
  607. package/packages/less/node_modules/eslint/lib/rules/handle-callback-err.js +95 -0
  608. package/packages/less/node_modules/eslint/lib/rules/id-blacklist.js +127 -0
  609. package/packages/less/node_modules/eslint/lib/rules/id-length.js +122 -0
  610. package/packages/less/node_modules/eslint/lib/rules/id-match.js +225 -0
  611. package/packages/less/node_modules/eslint/lib/rules/implicit-arrow-linebreak.js +81 -0
  612. package/packages/less/node_modules/eslint/lib/rules/indent-legacy.js +1141 -0
  613. package/packages/less/node_modules/eslint/lib/rules/indent.js +1608 -0
  614. package/packages/less/node_modules/eslint/lib/rules/init-declarations.js +139 -0
  615. package/packages/less/node_modules/eslint/lib/rules/jsx-quotes.js +95 -0
  616. package/packages/less/node_modules/eslint/lib/rules/key-spacing.js +652 -0
  617. package/packages/less/node_modules/eslint/lib/rules/keyword-spacing.js +590 -0
  618. package/packages/less/node_modules/eslint/lib/rules/line-comment-position.js +123 -0
  619. package/packages/less/node_modules/eslint/lib/rules/linebreak-style.js +99 -0
  620. package/packages/less/node_modules/eslint/lib/rules/lines-around-comment.js +404 -0
  621. package/packages/less/node_modules/eslint/lib/rules/lines-around-directive.js +201 -0
  622. package/packages/less/node_modules/eslint/lib/rules/lines-between-class-members.js +144 -0
  623. package/packages/less/node_modules/eslint/lib/rules/max-classes-per-file.js +64 -0
  624. package/packages/less/node_modules/eslint/lib/rules/max-depth.js +154 -0
  625. package/packages/less/node_modules/eslint/lib/rules/max-len.js +386 -0
  626. package/packages/less/node_modules/eslint/lib/rules/max-lines-per-function.js +219 -0
  627. package/packages/less/node_modules/eslint/lib/rules/max-lines.js +148 -0
  628. package/packages/less/node_modules/eslint/lib/rules/max-nested-callbacks.js +117 -0
  629. package/packages/less/node_modules/eslint/lib/rules/max-params.js +103 -0
  630. package/packages/less/node_modules/eslint/lib/rules/max-statements-per-line.js +200 -0
  631. package/packages/less/node_modules/eslint/lib/rules/max-statements.js +175 -0
  632. package/packages/less/node_modules/eslint/lib/rules/multiline-comment-style.js +299 -0
  633. package/packages/less/node_modules/eslint/lib/rules/multiline-ternary.js +95 -0
  634. package/packages/less/node_modules/eslint/lib/rules/new-cap.js +282 -0
  635. package/packages/less/node_modules/eslint/lib/rules/new-parens.js +63 -0
  636. package/packages/less/node_modules/eslint/lib/rules/newline-after-var.js +256 -0
  637. package/packages/less/node_modules/eslint/lib/rules/newline-before-return.js +218 -0
  638. package/packages/less/node_modules/eslint/lib/rules/newline-per-chained-call.js +112 -0
  639. package/packages/less/node_modules/eslint/lib/rules/no-alert.js +127 -0
  640. package/packages/less/node_modules/eslint/lib/rules/no-array-constructor.js +54 -0
  641. package/packages/less/node_modules/eslint/lib/rules/no-async-promise-executor.js +39 -0
  642. package/packages/less/node_modules/eslint/lib/rules/no-await-in-loop.js +106 -0
  643. package/packages/less/node_modules/eslint/lib/rules/no-bitwise.js +119 -0
  644. package/packages/less/node_modules/eslint/lib/rules/no-buffer-constructor.js +45 -0
  645. package/packages/less/node_modules/eslint/lib/rules/no-caller.js +46 -0
  646. package/packages/less/node_modules/eslint/lib/rules/no-case-declarations.js +64 -0
  647. package/packages/less/node_modules/eslint/lib/rules/no-catch-shadow.js +80 -0
  648. package/packages/less/node_modules/eslint/lib/rules/no-class-assign.js +61 -0
  649. package/packages/less/node_modules/eslint/lib/rules/no-compare-neg-zero.js +61 -0
  650. package/packages/less/node_modules/eslint/lib/rules/no-cond-assign.js +149 -0
  651. package/packages/less/node_modules/eslint/lib/rules/no-confusing-arrow.js +83 -0
  652. package/packages/less/node_modules/eslint/lib/rules/no-console.js +138 -0
  653. package/packages/less/node_modules/eslint/lib/rules/no-const-assign.js +54 -0
  654. package/packages/less/node_modules/eslint/lib/rules/no-constant-condition.js +239 -0
  655. package/packages/less/node_modules/eslint/lib/rules/no-continue.js +39 -0
  656. package/packages/less/node_modules/eslint/lib/rules/no-control-regex.js +113 -0
  657. package/packages/less/node_modules/eslint/lib/rules/no-debugger.js +43 -0
  658. package/packages/less/node_modules/eslint/lib/rules/no-delete-var.js +42 -0
  659. package/packages/less/node_modules/eslint/lib/rules/no-div-regex.js +45 -0
  660. package/packages/less/node_modules/eslint/lib/rules/no-dupe-args.js +80 -0
  661. package/packages/less/node_modules/eslint/lib/rules/no-dupe-class-members.js +116 -0
  662. package/packages/less/node_modules/eslint/lib/rules/no-dupe-keys.js +142 -0
  663. package/packages/less/node_modules/eslint/lib/rules/no-duplicate-case.js +50 -0
  664. package/packages/less/node_modules/eslint/lib/rules/no-duplicate-imports.js +146 -0
  665. package/packages/less/node_modules/eslint/lib/rules/no-else-return.js +285 -0
  666. package/packages/less/node_modules/eslint/lib/rules/no-empty-character-class.js +64 -0
  667. package/packages/less/node_modules/eslint/lib/rules/no-empty-function.js +167 -0
  668. package/packages/less/node_modules/eslint/lib/rules/no-empty-pattern.js +43 -0
  669. package/packages/less/node_modules/eslint/lib/rules/no-empty.js +86 -0
  670. package/packages/less/node_modules/eslint/lib/rules/no-eq-null.js +46 -0
  671. package/packages/less/node_modules/eslint/lib/rules/no-eval.js +314 -0
  672. package/packages/less/node_modules/eslint/lib/rules/no-ex-assign.js +52 -0
  673. package/packages/less/node_modules/eslint/lib/rules/no-extend-native.js +181 -0
  674. package/packages/less/node_modules/eslint/lib/rules/no-extra-bind.js +173 -0
  675. package/packages/less/node_modules/eslint/lib/rules/no-extra-boolean-cast.js +129 -0
  676. package/packages/less/node_modules/eslint/lib/rules/no-extra-label.js +146 -0
  677. package/packages/less/node_modules/eslint/lib/rules/no-extra-parens.js +756 -0
  678. package/packages/less/node_modules/eslint/lib/rules/no-extra-semi.js +127 -0
  679. package/packages/less/node_modules/eslint/lib/rules/no-fallthrough.js +142 -0
  680. package/packages/less/node_modules/eslint/lib/rules/no-floating-decimal.js +70 -0
  681. package/packages/less/node_modules/eslint/lib/rules/no-func-assign.js +66 -0
  682. package/packages/less/node_modules/eslint/lib/rules/no-global-assign.js +88 -0
  683. package/packages/less/node_modules/eslint/lib/rules/no-implicit-coercion.js +296 -0
  684. package/packages/less/node_modules/eslint/lib/rules/no-implicit-globals.js +58 -0
  685. package/packages/less/node_modules/eslint/lib/rules/no-implied-eval.js +164 -0
  686. package/packages/less/node_modules/eslint/lib/rules/no-inline-comments.js +68 -0
  687. package/packages/less/node_modules/eslint/lib/rules/no-inner-declarations.js +92 -0
  688. package/packages/less/node_modules/eslint/lib/rules/no-invalid-regexp.js +126 -0
  689. package/packages/less/node_modules/eslint/lib/rules/no-invalid-this.js +126 -0
  690. package/packages/less/node_modules/eslint/lib/rules/no-irregular-whitespace.js +239 -0
  691. package/packages/less/node_modules/eslint/lib/rules/no-iterator.js +41 -0
  692. package/packages/less/node_modules/eslint/lib/rules/no-label-var.js +72 -0
  693. package/packages/less/node_modules/eslint/lib/rules/no-labels.js +146 -0
  694. package/packages/less/node_modules/eslint/lib/rules/no-lone-blocks.js +115 -0
  695. package/packages/less/node_modules/eslint/lib/rules/no-lonely-if.js +85 -0
  696. package/packages/less/node_modules/eslint/lib/rules/no-loop-func.js +202 -0
  697. package/packages/less/node_modules/eslint/lib/rules/no-magic-numbers.js +167 -0
  698. package/packages/less/node_modules/eslint/lib/rules/no-misleading-character-class.js +193 -0
  699. package/packages/less/node_modules/eslint/lib/rules/no-mixed-operators.js +214 -0
  700. package/packages/less/node_modules/eslint/lib/rules/no-mixed-requires.js +223 -0
  701. package/packages/less/node_modules/eslint/lib/rules/no-mixed-spaces-and-tabs.js +146 -0
  702. package/packages/less/node_modules/eslint/lib/rules/no-multi-assign.js +45 -0
  703. package/packages/less/node_modules/eslint/lib/rules/no-multi-spaces.js +134 -0
  704. package/packages/less/node_modules/eslint/lib/rules/no-multi-str.js +58 -0
  705. package/packages/less/node_modules/eslint/lib/rules/no-multiple-empty-lines.js +139 -0
  706. package/packages/less/node_modules/eslint/lib/rules/no-native-reassign.js +93 -0
  707. package/packages/less/node_modules/eslint/lib/rules/no-negated-condition.js +85 -0
  708. package/packages/less/node_modules/eslint/lib/rules/no-negated-in-lhs.js +42 -0
  709. package/packages/less/node_modules/eslint/lib/rules/no-nested-ternary.js +37 -0
  710. package/packages/less/node_modules/eslint/lib/rules/no-new-func.js +48 -0
  711. package/packages/less/node_modules/eslint/lib/rules/no-new-object.js +38 -0
  712. package/packages/less/node_modules/eslint/lib/rules/no-new-require.js +38 -0
  713. package/packages/less/node_modules/eslint/lib/rules/no-new-symbol.js +46 -0
  714. package/packages/less/node_modules/eslint/lib/rules/no-new-wrappers.js +40 -0
  715. package/packages/less/node_modules/eslint/lib/rules/no-new.js +36 -0
  716. package/packages/less/node_modules/eslint/lib/rules/no-obj-calls.js +42 -0
  717. package/packages/less/node_modules/eslint/lib/rules/no-octal-escape.js +50 -0
  718. package/packages/less/node_modules/eslint/lib/rules/no-octal.js +38 -0
  719. package/packages/less/node_modules/eslint/lib/rules/no-param-reassign.js +184 -0
  720. package/packages/less/node_modules/eslint/lib/rules/no-path-concat.js +52 -0
  721. package/packages/less/node_modules/eslint/lib/rules/no-plusplus.js +65 -0
  722. package/packages/less/node_modules/eslint/lib/rules/no-process-env.js +42 -0
  723. package/packages/less/node_modules/eslint/lib/rules/no-process-exit.js +38 -0
  724. package/packages/less/node_modules/eslint/lib/rules/no-proto.js +41 -0
  725. package/packages/less/node_modules/eslint/lib/rules/no-prototype-builtins.js +57 -0
  726. package/packages/less/node_modules/eslint/lib/rules/no-redeclare.js +104 -0
  727. package/packages/less/node_modules/eslint/lib/rules/no-regex-spaces.js +116 -0
  728. package/packages/less/node_modules/eslint/lib/rules/no-restricted-globals.js +123 -0
  729. package/packages/less/node_modules/eslint/lib/rules/no-restricted-imports.js +282 -0
  730. package/packages/less/node_modules/eslint/lib/rules/no-restricted-modules.js +180 -0
  731. package/packages/less/node_modules/eslint/lib/rules/no-restricted-properties.js +176 -0
  732. package/packages/less/node_modules/eslint/lib/rules/no-restricted-syntax.js +65 -0
  733. package/packages/less/node_modules/eslint/lib/rules/no-return-assign.js +75 -0
  734. package/packages/less/node_modules/eslint/lib/rules/no-return-await.js +101 -0
  735. package/packages/less/node_modules/eslint/lib/rules/no-script-url.js +44 -0
  736. package/packages/less/node_modules/eslint/lib/rules/no-self-assign.js +219 -0
  737. package/packages/less/node_modules/eslint/lib/rules/no-self-compare.js +56 -0
  738. package/packages/less/node_modules/eslint/lib/rules/no-sequences.js +115 -0
  739. package/packages/less/node_modules/eslint/lib/rules/no-shadow-restricted-names.js +60 -0
  740. package/packages/less/node_modules/eslint/lib/rules/no-shadow.js +191 -0
  741. package/packages/less/node_modules/eslint/lib/rules/no-spaced-func.js +79 -0
  742. package/packages/less/node_modules/eslint/lib/rules/no-sparse-arrays.js +46 -0
  743. package/packages/less/node_modules/eslint/lib/rules/no-sync.js +57 -0
  744. package/packages/less/node_modules/eslint/lib/rules/no-tabs.js +68 -0
  745. package/packages/less/node_modules/eslint/lib/rules/no-template-curly-in-string.js +40 -0
  746. package/packages/less/node_modules/eslint/lib/rules/no-ternary.js +37 -0
  747. package/packages/less/node_modules/eslint/lib/rules/no-this-before-super.js +301 -0
  748. package/packages/less/node_modules/eslint/lib/rules/no-throw-literal.js +46 -0
  749. package/packages/less/node_modules/eslint/lib/rules/no-trailing-spaces.js +174 -0
  750. package/packages/less/node_modules/eslint/lib/rules/no-undef-init.js +65 -0
  751. package/packages/less/node_modules/eslint/lib/rules/no-undef.js +78 -0
  752. package/packages/less/node_modules/eslint/lib/rules/no-undefined.js +80 -0
  753. package/packages/less/node_modules/eslint/lib/rules/no-underscore-dangle.js +209 -0
  754. package/packages/less/node_modules/eslint/lib/rules/no-unexpected-multiline.js +102 -0
  755. package/packages/less/node_modules/eslint/lib/rules/no-unmodified-loop-condition.js +369 -0
  756. package/packages/less/node_modules/eslint/lib/rules/no-unneeded-ternary.js +159 -0
  757. package/packages/less/node_modules/eslint/lib/rules/no-unreachable.js +214 -0
  758. package/packages/less/node_modules/eslint/lib/rules/no-unsafe-finally.js +110 -0
  759. package/packages/less/node_modules/eslint/lib/rules/no-unsafe-negation.js +87 -0
  760. package/packages/less/node_modules/eslint/lib/rules/no-unused-expressions.js +132 -0
  761. package/packages/less/node_modules/eslint/lib/rules/no-unused-labels.js +113 -0
  762. package/packages/less/node_modules/eslint/lib/rules/no-unused-vars.js +656 -0
  763. package/packages/less/node_modules/eslint/lib/rules/no-use-before-define.js +234 -0
  764. package/packages/less/node_modules/eslint/lib/rules/no-useless-call.js +83 -0
  765. package/packages/less/node_modules/eslint/lib/rules/no-useless-catch.js +52 -0
  766. package/packages/less/node_modules/eslint/lib/rules/no-useless-computed-key.js +77 -0
  767. package/packages/less/node_modules/eslint/lib/rules/no-useless-concat.js +111 -0
  768. package/packages/less/node_modules/eslint/lib/rules/no-useless-constructor.js +185 -0
  769. package/packages/less/node_modules/eslint/lib/rules/no-useless-escape.js +226 -0
  770. package/packages/less/node_modules/eslint/lib/rules/no-useless-rename.js +152 -0
  771. package/packages/less/node_modules/eslint/lib/rules/no-useless-return.js +300 -0
  772. package/packages/less/node_modules/eslint/lib/rules/no-var.js +331 -0
  773. package/packages/less/node_modules/eslint/lib/rules/no-void.js +40 -0
  774. package/packages/less/node_modules/eslint/lib/rules/no-warning-comments.js +159 -0
  775. package/packages/less/node_modules/eslint/lib/rules/no-whitespace-before-property.js +97 -0
  776. package/packages/less/node_modules/eslint/lib/rules/no-with.js +35 -0
  777. package/packages/less/node_modules/eslint/lib/rules/nonblock-statement-body-position.js +119 -0
  778. package/packages/less/node_modules/eslint/lib/rules/object-curly-newline.js +302 -0
  779. package/packages/less/node_modules/eslint/lib/rules/object-curly-spacing.js +302 -0
  780. package/packages/less/node_modules/eslint/lib/rules/object-property-newline.js +94 -0
  781. package/packages/less/node_modules/eslint/lib/rules/object-shorthand.js +463 -0
  782. package/packages/less/node_modules/eslint/lib/rules/one-var-declaration-per-line.js +89 -0
  783. package/packages/less/node_modules/eslint/lib/rules/one-var.js +526 -0
  784. package/packages/less/node_modules/eslint/lib/rules/operator-assignment.js +213 -0
  785. package/packages/less/node_modules/eslint/lib/rules/operator-linebreak.js +255 -0
  786. package/packages/less/node_modules/eslint/lib/rules/padded-blocks.js +282 -0
  787. package/packages/less/node_modules/eslint/lib/rules/padding-line-between-statements.js +643 -0
  788. package/packages/less/node_modules/eslint/lib/rules/prefer-arrow-callback.js +310 -0
  789. package/packages/less/node_modules/eslint/lib/rules/prefer-const.js +471 -0
  790. package/packages/less/node_modules/eslint/lib/rules/prefer-destructuring.js +274 -0
  791. package/packages/less/node_modules/eslint/lib/rules/prefer-named-capture-group.js +123 -0
  792. package/packages/less/node_modules/eslint/lib/rules/prefer-numeric-literals.js +114 -0
  793. package/packages/less/node_modules/eslint/lib/rules/prefer-object-spread.js +265 -0
  794. package/packages/less/node_modules/eslint/lib/rules/prefer-promise-reject-errors.js +129 -0
  795. package/packages/less/node_modules/eslint/lib/rules/prefer-reflect.js +123 -0
  796. package/packages/less/node_modules/eslint/lib/rules/prefer-rest-params.js +114 -0
  797. package/packages/less/node_modules/eslint/lib/rules/prefer-spread.js +87 -0
  798. package/packages/less/node_modules/eslint/lib/rules/prefer-template.js +289 -0
  799. package/packages/less/node_modules/eslint/lib/rules/quote-props.js +301 -0
  800. package/packages/less/node_modules/eslint/lib/rules/quotes.js +323 -0
  801. package/packages/less/node_modules/eslint/lib/rules/radix.js +174 -0
  802. package/packages/less/node_modules/eslint/lib/rules/require-atomic-updates.js +300 -0
  803. package/packages/less/node_modules/eslint/lib/rules/require-await.js +104 -0
  804. package/packages/less/node_modules/eslint/lib/rules/require-jsdoc.js +117 -0
  805. package/packages/less/node_modules/eslint/lib/rules/require-unicode-regexp.js +69 -0
  806. package/packages/less/node_modules/eslint/lib/rules/require-yield.js +74 -0
  807. package/packages/less/node_modules/eslint/lib/rules/rest-spread-spacing.js +118 -0
  808. package/packages/less/node_modules/eslint/lib/rules/semi-spacing.js +212 -0
  809. package/packages/less/node_modules/eslint/lib/rules/semi-style.js +147 -0
  810. package/packages/less/node_modules/eslint/lib/rules/semi.js +328 -0
  811. package/packages/less/node_modules/eslint/lib/rules/sort-imports.js +208 -0
  812. package/packages/less/node_modules/eslint/lib/rules/sort-keys.js +169 -0
  813. package/packages/less/node_modules/eslint/lib/rules/sort-vars.js +100 -0
  814. package/packages/less/node_modules/eslint/lib/rules/space-before-blocks.js +160 -0
  815. package/packages/less/node_modules/eslint/lib/rules/space-before-function-paren.js +145 -0
  816. package/packages/less/node_modules/eslint/lib/rules/space-in-parens.js +276 -0
  817. package/packages/less/node_modules/eslint/lib/rules/space-infix-ops.js +165 -0
  818. package/packages/less/node_modules/eslint/lib/rules/space-unary-ops.js +321 -0
  819. package/packages/less/node_modules/eslint/lib/rules/spaced-comment.js +375 -0
  820. package/packages/less/node_modules/eslint/lib/rules/strict.js +279 -0
  821. package/packages/less/node_modules/eslint/lib/rules/switch-colon-spacing.js +141 -0
  822. package/packages/less/node_modules/eslint/lib/rules/symbol-description.js +72 -0
  823. package/packages/less/node_modules/eslint/lib/rules/template-curly-spacing.js +124 -0
  824. package/packages/less/node_modules/eslint/lib/rules/template-tag-spacing.js +84 -0
  825. package/packages/less/node_modules/eslint/lib/rules/unicode-bom.js +73 -0
  826. package/packages/less/node_modules/eslint/lib/rules/use-isnan.js +40 -0
  827. package/packages/less/node_modules/eslint/lib/rules/valid-jsdoc.js +515 -0
  828. package/packages/less/node_modules/eslint/lib/rules/valid-typeof.js +85 -0
  829. package/packages/less/node_modules/eslint/lib/rules/vars-on-top.js +144 -0
  830. package/packages/less/node_modules/eslint/lib/rules/wrap-iife.js +160 -0
  831. package/packages/less/node_modules/eslint/lib/rules/wrap-regex.js +59 -0
  832. package/packages/less/node_modules/eslint/lib/rules/yield-star-spacing.js +127 -0
  833. package/packages/less/node_modules/eslint/lib/rules/yoda.js +318 -0
  834. package/packages/less/node_modules/eslint/lib/rules.js +110 -0
  835. package/packages/less/node_modules/eslint/lib/testers/rule-tester.js +602 -0
  836. package/packages/less/node_modules/eslint/lib/token-store/backward-token-comment-cursor.js +57 -0
  837. package/packages/less/node_modules/eslint/lib/token-store/backward-token-cursor.js +58 -0
  838. package/packages/less/node_modules/eslint/lib/token-store/cursor.js +76 -0
  839. package/packages/less/node_modules/eslint/lib/token-store/cursors.js +92 -0
  840. package/packages/less/node_modules/eslint/lib/token-store/decorative-cursor.js +39 -0
  841. package/packages/less/node_modules/eslint/lib/token-store/filter-cursor.js +43 -0
  842. package/packages/less/node_modules/eslint/lib/token-store/forward-token-comment-cursor.js +57 -0
  843. package/packages/less/node_modules/eslint/lib/token-store/forward-token-cursor.js +63 -0
  844. package/packages/less/node_modules/eslint/lib/token-store/index.js +633 -0
  845. package/packages/less/node_modules/eslint/lib/token-store/limit-cursor.js +40 -0
  846. package/packages/less/node_modules/eslint/lib/token-store/padded-token-cursor.js +38 -0
  847. package/packages/less/node_modules/eslint/lib/token-store/skip-cursor.js +42 -0
  848. package/packages/less/node_modules/eslint/lib/token-store/utils.js +104 -0
  849. package/packages/less/node_modules/eslint/lib/util/ajv.js +31 -0
  850. package/packages/less/node_modules/eslint/lib/util/apply-disable-directives.js +159 -0
  851. package/packages/less/node_modules/eslint/lib/util/ast-utils.js +1346 -0
  852. package/packages/less/node_modules/eslint/lib/util/config-comment-parser.js +141 -0
  853. package/packages/less/node_modules/eslint/lib/util/file-finder.js +144 -0
  854. package/packages/less/node_modules/eslint/lib/util/fix-tracker.js +120 -0
  855. package/packages/less/node_modules/eslint/lib/util/glob-utils.js +285 -0
  856. package/packages/less/node_modules/eslint/lib/util/glob.js +63 -0
  857. package/packages/less/node_modules/eslint/lib/util/hash.js +35 -0
  858. package/packages/less/node_modules/eslint/lib/util/ignored-paths.js +381 -0
  859. package/packages/less/node_modules/eslint/lib/util/interpolate.js +28 -0
  860. package/packages/less/node_modules/eslint/lib/util/keywords.js +67 -0
  861. package/packages/less/node_modules/eslint/lib/util/lint-result-cache.js +146 -0
  862. package/packages/less/node_modules/eslint/lib/util/logging.js +28 -0
  863. package/packages/less/node_modules/eslint/lib/util/module-resolver.js +83 -0
  864. package/packages/less/node_modules/eslint/lib/util/naming.js +107 -0
  865. package/packages/less/node_modules/eslint/lib/util/node-event-generator.js +308 -0
  866. package/packages/less/node_modules/eslint/lib/util/npm-utils.js +183 -0
  867. package/packages/less/node_modules/eslint/lib/util/path-utils.js +72 -0
  868. package/packages/less/node_modules/eslint/lib/util/patterns/letters.js +36 -0
  869. package/packages/less/node_modules/eslint/lib/util/report-translator.js +281 -0
  870. package/packages/less/node_modules/eslint/lib/util/rule-fixer.js +140 -0
  871. package/packages/less/node_modules/eslint/lib/util/safe-emitter.js +52 -0
  872. package/packages/less/node_modules/eslint/lib/util/source-code-fixer.js +152 -0
  873. package/packages/less/node_modules/eslint/lib/util/source-code-utils.js +105 -0
  874. package/packages/less/node_modules/eslint/lib/util/source-code.js +507 -0
  875. package/packages/less/node_modules/eslint/lib/util/timing.js +139 -0
  876. package/packages/less/node_modules/eslint/lib/util/traverser.js +193 -0
  877. package/packages/less/node_modules/eslint/lib/util/unicode/index.js +11 -0
  878. package/packages/less/node_modules/eslint/lib/util/unicode/is-combining-character.js +13 -0
  879. package/packages/less/node_modules/eslint/lib/util/unicode/is-emoji-modifier.js +13 -0
  880. package/packages/less/node_modules/eslint/lib/util/unicode/is-regional-indicator-symbol.js +13 -0
  881. package/packages/less/node_modules/eslint/lib/util/unicode/is-surrogate-pair.js +14 -0
  882. package/packages/less/node_modules/eslint/lib/util/xml-escape.js +34 -0
  883. package/packages/less/node_modules/eslint/messages/all-files-ignored.txt +8 -0
  884. package/packages/less/node_modules/eslint/messages/extend-config-missing.txt +3 -0
  885. package/packages/less/node_modules/eslint/messages/failed-to-read-json.txt +3 -0
  886. package/packages/less/node_modules/eslint/messages/file-not-found.txt +2 -0
  887. package/packages/less/node_modules/eslint/messages/no-config-found.txt +7 -0
  888. package/packages/less/node_modules/eslint/messages/plugin-missing.txt +11 -0
  889. package/packages/less/node_modules/eslint/messages/whitespace-found.txt +3 -0
  890. package/packages/less/node_modules/eslint/package.json +128 -0
  891. package/packages/less/node_modules/espree/CHANGELOG.md +446 -0
  892. package/packages/less/node_modules/espree/LICENSE +22 -0
  893. package/packages/less/node_modules/espree/README.md +164 -0
  894. package/packages/less/node_modules/espree/espree.js +172 -0
  895. package/packages/less/node_modules/espree/lib/ast-node-types.js +96 -0
  896. package/packages/less/node_modules/espree/lib/espree.js +309 -0
  897. package/packages/less/node_modules/espree/lib/features.js +29 -0
  898. package/packages/less/node_modules/espree/lib/token-translator.js +262 -0
  899. package/packages/less/node_modules/espree/lib/visitor-keys.js +123 -0
  900. package/packages/less/node_modules/espree/package.json +62 -0
  901. package/packages/less/node_modules/source-map/CHANGELOG.md +301 -0
  902. package/packages/less/node_modules/source-map/LICENSE +28 -0
  903. package/packages/less/node_modules/source-map/README.md +742 -0
  904. package/packages/less/node_modules/source-map/dist/source-map.debug.js +3234 -0
  905. package/packages/less/node_modules/source-map/dist/source-map.js +3233 -0
  906. package/packages/less/node_modules/source-map/dist/source-map.min.js +2 -0
  907. package/packages/less/node_modules/source-map/dist/source-map.min.js.map +1 -0
  908. package/packages/less/node_modules/source-map/lib/array-set.js +121 -0
  909. package/packages/less/node_modules/source-map/lib/base64-vlq.js +140 -0
  910. package/packages/less/node_modules/source-map/lib/base64.js +67 -0
  911. package/packages/less/node_modules/source-map/lib/binary-search.js +111 -0
  912. package/packages/less/node_modules/source-map/lib/mapping-list.js +79 -0
  913. package/packages/less/node_modules/source-map/lib/quick-sort.js +114 -0
  914. package/packages/less/node_modules/source-map/lib/source-map-consumer.js +1145 -0
  915. package/packages/less/node_modules/source-map/lib/source-map-generator.js +425 -0
  916. package/packages/less/node_modules/source-map/lib/source-node.js +413 -0
  917. package/packages/less/node_modules/source-map/lib/util.js +488 -0
  918. package/packages/less/node_modules/source-map/package.json +73 -0
  919. package/packages/less/node_modules/source-map/source-map.d.ts +98 -0
  920. package/packages/less/node_modules/source-map/source-map.js +8 -0
  921. package/packages/less/node_modules/strip-ansi/index.js +4 -0
  922. package/packages/less/node_modules/strip-ansi/license +9 -0
  923. package/packages/less/node_modules/strip-ansi/package.json +52 -0
  924. package/packages/less/node_modules/strip-ansi/readme.md +39 -0
  925. package/packages/less/tmp/less.cjs.js +10536 -0
  926. package/test/browser/common.js +11 -49
  927. package/test/browser/generator/benchmark.config.js +50 -0
  928. package/test/browser/generator/generate.js +78 -0
  929. package/test/browser/generator/runner.config.js +180 -0
  930. package/test/browser/generator/runner.js +2 -0
  931. package/test/browser/generator/template.js +83 -0
  932. package/test/browser/less.min.js +3 -3
  933. package/test/browser/less.min.js.map +1 -1
  934. package/test/browser/runner-browser-options.js +0 -6
  935. package/test/browser/runner-browser-spec.js +1 -1
  936. package/test/browser/runner-main-spec.js +1 -1
  937. package/test/browser/runner-modify-vars-spec.js +1 -1
  938. package/test/browser/runner-production-spec.js +1 -1
  939. package/test/css/comments.css +1 -1
  940. package/test/css/css-3.css +5 -5
  941. package/test/css/css-escapes.css +1 -0
  942. package/test/css/css-guards.css +1 -1
  943. package/test/css/debug/linenumbers-all.css +5 -5
  944. package/test/css/debug/linenumbers-comments.css +5 -5
  945. package/test/css/debug/linenumbers-mediaquery.css +5 -5
  946. package/test/css/extend-chaining.css +3 -3
  947. package/test/css/extend-media.css +1 -1
  948. package/test/css/extend-nest.css +1 -1
  949. package/test/css/filemanagerPlugin/filemanager.css +1 -1
  950. package/test/css/functions-each.css +1 -1
  951. package/test/css/import-once.css +2 -2
  952. package/test/css/import-reference-issues.css +1 -1
  953. package/test/css/import-reference.css +6 -6
  954. package/test/css/import.css +1 -1
  955. package/test/css/javascript.css +1 -1
  956. package/test/css/legacy/legacy.css +1 -1
  957. package/test/css/math/parens-division/mixins-args.css +1 -1
  958. package/test/css/math/parens-division/parens.css +1 -1
  959. package/test/css/math/strict/mixins-args.css +1 -1
  960. package/test/css/math/strict/parens.css +1 -1
  961. package/test/css/math/strict-legacy/mixins-args.css +1 -1
  962. package/test/css/math/strict-legacy/parens.css +1 -1
  963. package/test/css/media.css +14 -14
  964. package/test/css/merge.css +10 -10
  965. package/test/css/mixins-guards.css +6 -6
  966. package/test/css/mixins.css +2 -2
  967. package/test/css/namespacing/namespacing-3.css +16 -1
  968. package/test/css/namespacing/namespacing-4.css +1 -1
  969. package/test/css/namespacing/namespacing-functions.css +6 -0
  970. package/test/css/no-strict-math/mixins-guards.css +1 -1
  971. package/test/css/permissive-parse.css +1 -1
  972. package/test/css/plugin.css +9 -9
  973. package/test/css/postProcessorPlugin/postProcessor.css +2 -2
  974. package/test/css/preProcessorPlugin/preProcessor.css +1 -1
  975. package/test/css/selectors.css +2 -2
  976. package/test/css/variables.css +1 -1
  977. package/test/css/visitorPlugin/visitor.css +1 -1
  978. package/test/less/comments.less +1 -1
  979. package/test/less/css-3.less +5 -5
  980. package/test/less/css-escapes.less +3 -1
  981. package/test/less/css-guards.less +2 -2
  982. package/test/less/debug/import/test.less +2 -2
  983. package/test/less/debug/linenumbers.less +3 -3
  984. package/test/less/errors/color-func-invalid-color.less +1 -1
  985. package/test/less/errors/color-func-invalid-color.txt +1 -1
  986. package/test/less/errors/plugin-1.txt +2 -2
  987. package/test/less/errors/plugin-2.txt +1 -2
  988. package/test/less/errors/plugin-3.txt +1 -2
  989. package/test/less/errors/property-ie5-hack.less +1 -1
  990. package/test/less/extend-chaining.less +3 -3
  991. package/test/less/extend-media.less +1 -1
  992. package/test/less/extend-nest.less +1 -1
  993. package/test/less/filemanagerPlugin/filemanager.less +1 -1
  994. package/test/less/functions-each.less +1 -1
  995. package/test/less/import/import-reference.less +1 -1
  996. package/test/less/import/import-test-f.less +1 -1
  997. package/test/less/import-reference-issues/global-scope-import.less +2 -2
  998. package/test/less/import-reference-issues/global-scope-nested.less +1 -1
  999. package/test/less/import-reference-issues.less +2 -2
  1000. package/test/less/import-reference.less +1 -1
  1001. package/test/less/javascript.less +1 -1
  1002. package/test/less/legacy/legacy.less +1 -1
  1003. package/test/less/math/parens-division/mixins-args.less +4 -4
  1004. package/test/less/math/parens-division/parens.less +1 -1
  1005. package/test/less/math/strict/mixins-args.less +4 -4
  1006. package/test/less/math/strict/parens.less +1 -1
  1007. package/test/less/math/strict-legacy/mixins-args.less +4 -4
  1008. package/test/less/math/strict-legacy/parens.less +1 -1
  1009. package/test/less/media.less +9 -9
  1010. package/test/less/merge.less +10 -10
  1011. package/test/less/mixins-guards.less +8 -8
  1012. package/test/less/mixins-important.less +3 -3
  1013. package/test/less/mixins.less +2 -2
  1014. package/test/less/namespacing/namespacing-3.less +25 -2
  1015. package/test/less/namespacing/namespacing-4.less +1 -1
  1016. package/test/less/namespacing/namespacing-5.less +2 -2
  1017. package/test/less/namespacing/namespacing-functions.less +26 -0
  1018. package/test/less/no-strict-math/mixins-guards.less +2 -2
  1019. package/test/less/permissive-parse.less +1 -1
  1020. package/test/less/plugin.less +9 -9
  1021. package/test/less/postProcessorPlugin/postProcessor.less +2 -2
  1022. package/test/less/preProcessorPlugin/preProcessor.less +1 -1
  1023. package/test/less/selectors.less +1 -1
  1024. package/test/less/sourcemaps/imported.css +1 -1
  1025. package/test/less/variables.less +1 -1
  1026. package/test/less/visitorPlugin/visitor.less +1 -1
  1027. package/test/less-test.js +1 -9
  1028. package/test/less.js +11 -0
  1029. package/.DS_Store +0 -0
  1030. package/test/.DS_Store +0 -0
  1031. package/test/browser/onload.js +0 -13
  1032. package/test/browser/test-runner-template.tmpl +0 -105
  1033. package/test/browser/vendor/jasmine-jsreporter.js +0 -391
  1034. package/test/browser/vendor/promise.js +0 -2
  1035. package/test/css/.DS_Store +0 -0
  1036. package/test/css/math/.DS_Store +0 -0
  1037. package/test/less/.DS_Store +0 -0
  1038. package/test/less/math/.DS_Store +0 -0
@@ -0,0 +1,1138 @@
1
+ "use strict";
2
+ //------------------------------------------------------------------------------
3
+ // Requirements
4
+ //------------------------------------------------------------------------------
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const experimental_utils_1 = require("@typescript-eslint/experimental-utils");
7
+ const ast_utils_1 = require("eslint/lib/util/ast-utils");
8
+ const eslint_utils_1 = require("eslint-utils");
9
+ const OffsetStorage_1 = require("./OffsetStorage");
10
+ const TokenInfo_1 = require("./TokenInfo");
11
+ const util_1 = require("../../util");
12
+ //------------------------------------------------------------------------------
13
+ // Rule Definition
14
+ //------------------------------------------------------------------------------
15
+ const KNOWN_NODES = new Set([
16
+ experimental_utils_1.AST_NODE_TYPES.AssignmentExpression,
17
+ experimental_utils_1.AST_NODE_TYPES.AssignmentPattern,
18
+ experimental_utils_1.AST_NODE_TYPES.ArrayExpression,
19
+ experimental_utils_1.AST_NODE_TYPES.ArrayPattern,
20
+ experimental_utils_1.AST_NODE_TYPES.ArrowFunctionExpression,
21
+ experimental_utils_1.AST_NODE_TYPES.AwaitExpression,
22
+ experimental_utils_1.AST_NODE_TYPES.BlockStatement,
23
+ experimental_utils_1.AST_NODE_TYPES.BinaryExpression,
24
+ experimental_utils_1.AST_NODE_TYPES.BreakStatement,
25
+ experimental_utils_1.AST_NODE_TYPES.CallExpression,
26
+ experimental_utils_1.AST_NODE_TYPES.CatchClause,
27
+ experimental_utils_1.AST_NODE_TYPES.ClassBody,
28
+ experimental_utils_1.AST_NODE_TYPES.ClassDeclaration,
29
+ experimental_utils_1.AST_NODE_TYPES.ClassExpression,
30
+ experimental_utils_1.AST_NODE_TYPES.ConditionalExpression,
31
+ experimental_utils_1.AST_NODE_TYPES.ContinueStatement,
32
+ experimental_utils_1.AST_NODE_TYPES.DoWhileStatement,
33
+ experimental_utils_1.AST_NODE_TYPES.DebuggerStatement,
34
+ experimental_utils_1.AST_NODE_TYPES.EmptyStatement,
35
+ experimental_utils_1.AST_NODE_TYPES.ExpressionStatement,
36
+ experimental_utils_1.AST_NODE_TYPES.ForStatement,
37
+ experimental_utils_1.AST_NODE_TYPES.ForInStatement,
38
+ experimental_utils_1.AST_NODE_TYPES.ForOfStatement,
39
+ experimental_utils_1.AST_NODE_TYPES.FunctionDeclaration,
40
+ experimental_utils_1.AST_NODE_TYPES.FunctionExpression,
41
+ experimental_utils_1.AST_NODE_TYPES.Identifier,
42
+ experimental_utils_1.AST_NODE_TYPES.IfStatement,
43
+ experimental_utils_1.AST_NODE_TYPES.Literal,
44
+ experimental_utils_1.AST_NODE_TYPES.LabeledStatement,
45
+ experimental_utils_1.AST_NODE_TYPES.LogicalExpression,
46
+ experimental_utils_1.AST_NODE_TYPES.MemberExpression,
47
+ experimental_utils_1.AST_NODE_TYPES.MetaProperty,
48
+ experimental_utils_1.AST_NODE_TYPES.MethodDefinition,
49
+ experimental_utils_1.AST_NODE_TYPES.NewExpression,
50
+ experimental_utils_1.AST_NODE_TYPES.ObjectExpression,
51
+ experimental_utils_1.AST_NODE_TYPES.ObjectPattern,
52
+ experimental_utils_1.AST_NODE_TYPES.Program,
53
+ experimental_utils_1.AST_NODE_TYPES.Property,
54
+ experimental_utils_1.AST_NODE_TYPES.RestElement,
55
+ experimental_utils_1.AST_NODE_TYPES.ReturnStatement,
56
+ experimental_utils_1.AST_NODE_TYPES.SequenceExpression,
57
+ experimental_utils_1.AST_NODE_TYPES.SpreadElement,
58
+ experimental_utils_1.AST_NODE_TYPES.Super,
59
+ experimental_utils_1.AST_NODE_TYPES.SwitchCase,
60
+ experimental_utils_1.AST_NODE_TYPES.SwitchStatement,
61
+ experimental_utils_1.AST_NODE_TYPES.TaggedTemplateExpression,
62
+ experimental_utils_1.AST_NODE_TYPES.TemplateElement,
63
+ experimental_utils_1.AST_NODE_TYPES.TemplateLiteral,
64
+ experimental_utils_1.AST_NODE_TYPES.ThisExpression,
65
+ experimental_utils_1.AST_NODE_TYPES.ThrowStatement,
66
+ experimental_utils_1.AST_NODE_TYPES.TryStatement,
67
+ experimental_utils_1.AST_NODE_TYPES.UnaryExpression,
68
+ experimental_utils_1.AST_NODE_TYPES.UpdateExpression,
69
+ experimental_utils_1.AST_NODE_TYPES.VariableDeclaration,
70
+ experimental_utils_1.AST_NODE_TYPES.VariableDeclarator,
71
+ experimental_utils_1.AST_NODE_TYPES.WhileStatement,
72
+ experimental_utils_1.AST_NODE_TYPES.WithStatement,
73
+ experimental_utils_1.AST_NODE_TYPES.YieldExpression,
74
+ experimental_utils_1.AST_NODE_TYPES.JSXIdentifier,
75
+ experimental_utils_1.AST_NODE_TYPES.JSXNamespacedName,
76
+ experimental_utils_1.AST_NODE_TYPES.JSXMemberExpression,
77
+ experimental_utils_1.AST_NODE_TYPES.JSXEmptyExpression,
78
+ experimental_utils_1.AST_NODE_TYPES.JSXExpressionContainer,
79
+ experimental_utils_1.AST_NODE_TYPES.JSXElement,
80
+ experimental_utils_1.AST_NODE_TYPES.JSXClosingElement,
81
+ experimental_utils_1.AST_NODE_TYPES.JSXOpeningElement,
82
+ experimental_utils_1.AST_NODE_TYPES.JSXAttribute,
83
+ experimental_utils_1.AST_NODE_TYPES.JSXSpreadAttribute,
84
+ experimental_utils_1.AST_NODE_TYPES.JSXText,
85
+ experimental_utils_1.AST_NODE_TYPES.ExportDefaultDeclaration,
86
+ experimental_utils_1.AST_NODE_TYPES.ExportNamedDeclaration,
87
+ experimental_utils_1.AST_NODE_TYPES.ExportAllDeclaration,
88
+ experimental_utils_1.AST_NODE_TYPES.ExportSpecifier,
89
+ experimental_utils_1.AST_NODE_TYPES.ImportDeclaration,
90
+ experimental_utils_1.AST_NODE_TYPES.ImportSpecifier,
91
+ experimental_utils_1.AST_NODE_TYPES.ImportDefaultSpecifier,
92
+ experimental_utils_1.AST_NODE_TYPES.ImportNamespaceSpecifier,
93
+ // Class properties aren't yet supported by eslint...
94
+ experimental_utils_1.AST_NODE_TYPES.ClassProperty,
95
+ // ts keywords
96
+ experimental_utils_1.AST_NODE_TYPES.TSAbstractKeyword,
97
+ experimental_utils_1.AST_NODE_TYPES.TSAnyKeyword,
98
+ experimental_utils_1.AST_NODE_TYPES.TSBooleanKeyword,
99
+ experimental_utils_1.AST_NODE_TYPES.TSNeverKeyword,
100
+ experimental_utils_1.AST_NODE_TYPES.TSNumberKeyword,
101
+ experimental_utils_1.AST_NODE_TYPES.TSStringKeyword,
102
+ experimental_utils_1.AST_NODE_TYPES.TSSymbolKeyword,
103
+ experimental_utils_1.AST_NODE_TYPES.TSUndefinedKeyword,
104
+ experimental_utils_1.AST_NODE_TYPES.TSUnknownKeyword,
105
+ experimental_utils_1.AST_NODE_TYPES.TSVoidKeyword,
106
+ experimental_utils_1.AST_NODE_TYPES.TSNullKeyword,
107
+ // ts specific nodes we want to support
108
+ experimental_utils_1.AST_NODE_TYPES.TSAbstractClassProperty,
109
+ experimental_utils_1.AST_NODE_TYPES.TSAbstractMethodDefinition,
110
+ experimental_utils_1.AST_NODE_TYPES.TSArrayType,
111
+ experimental_utils_1.AST_NODE_TYPES.TSAsExpression,
112
+ experimental_utils_1.AST_NODE_TYPES.TSCallSignatureDeclaration,
113
+ experimental_utils_1.AST_NODE_TYPES.TSConditionalType,
114
+ experimental_utils_1.AST_NODE_TYPES.TSConstructorType,
115
+ experimental_utils_1.AST_NODE_TYPES.TSConstructSignatureDeclaration,
116
+ experimental_utils_1.AST_NODE_TYPES.TSDeclareFunction,
117
+ experimental_utils_1.AST_NODE_TYPES.TSEmptyBodyFunctionExpression,
118
+ experimental_utils_1.AST_NODE_TYPES.TSEnumDeclaration,
119
+ experimental_utils_1.AST_NODE_TYPES.TSEnumMember,
120
+ experimental_utils_1.AST_NODE_TYPES.TSExportAssignment,
121
+ experimental_utils_1.AST_NODE_TYPES.TSExternalModuleReference,
122
+ experimental_utils_1.AST_NODE_TYPES.TSFunctionType,
123
+ experimental_utils_1.AST_NODE_TYPES.TSImportType,
124
+ experimental_utils_1.AST_NODE_TYPES.TSIndexedAccessType,
125
+ experimental_utils_1.AST_NODE_TYPES.TSIndexSignature,
126
+ experimental_utils_1.AST_NODE_TYPES.TSInferType,
127
+ experimental_utils_1.AST_NODE_TYPES.TSInterfaceBody,
128
+ experimental_utils_1.AST_NODE_TYPES.TSInterfaceDeclaration,
129
+ experimental_utils_1.AST_NODE_TYPES.TSInterfaceHeritage,
130
+ experimental_utils_1.AST_NODE_TYPES.TSIntersectionType,
131
+ experimental_utils_1.AST_NODE_TYPES.TSImportEqualsDeclaration,
132
+ experimental_utils_1.AST_NODE_TYPES.TSLiteralType,
133
+ experimental_utils_1.AST_NODE_TYPES.TSMappedType,
134
+ experimental_utils_1.AST_NODE_TYPES.TSMethodSignature,
135
+ 'TSMinusToken',
136
+ experimental_utils_1.AST_NODE_TYPES.TSModuleBlock,
137
+ experimental_utils_1.AST_NODE_TYPES.TSModuleDeclaration,
138
+ experimental_utils_1.AST_NODE_TYPES.TSNonNullExpression,
139
+ experimental_utils_1.AST_NODE_TYPES.TSParameterProperty,
140
+ experimental_utils_1.AST_NODE_TYPES.TSParenthesizedType,
141
+ 'TSPlusToken',
142
+ experimental_utils_1.AST_NODE_TYPES.TSPropertySignature,
143
+ experimental_utils_1.AST_NODE_TYPES.TSQualifiedName,
144
+ experimental_utils_1.AST_NODE_TYPES.TSQuestionToken,
145
+ experimental_utils_1.AST_NODE_TYPES.TSRestType,
146
+ experimental_utils_1.AST_NODE_TYPES.TSThisType,
147
+ experimental_utils_1.AST_NODE_TYPES.TSTupleType,
148
+ experimental_utils_1.AST_NODE_TYPES.TSTypeAnnotation,
149
+ experimental_utils_1.AST_NODE_TYPES.TSTypeLiteral,
150
+ experimental_utils_1.AST_NODE_TYPES.TSTypeOperator,
151
+ experimental_utils_1.AST_NODE_TYPES.TSTypeParameter,
152
+ experimental_utils_1.AST_NODE_TYPES.TSTypeParameterDeclaration,
153
+ experimental_utils_1.AST_NODE_TYPES.TSTypeParameterInstantiation,
154
+ experimental_utils_1.AST_NODE_TYPES.TSTypeReference,
155
+ experimental_utils_1.AST_NODE_TYPES.TSUnionType,
156
+ ]);
157
+ const STATEMENT_LIST_PARENTS = new Set([
158
+ experimental_utils_1.AST_NODE_TYPES.Program,
159
+ experimental_utils_1.AST_NODE_TYPES.BlockStatement,
160
+ experimental_utils_1.AST_NODE_TYPES.SwitchCase,
161
+ ]);
162
+ const DEFAULT_VARIABLE_INDENT = 1;
163
+ const DEFAULT_PARAMETER_INDENT = 1;
164
+ const DEFAULT_FUNCTION_BODY_INDENT = 1;
165
+ /*
166
+ * General rule strategy:
167
+ * 1. An OffsetStorage instance stores a map of desired offsets, where each token has a specified offset from another
168
+ * specified token or to the first column.
169
+ * 2. As the AST is traversed, modify the desired offsets of tokens accordingly. For example, when entering a
170
+ * BlockStatement, offset all of the tokens in the BlockStatement by 1 indent level from the opening curly
171
+ * brace of the BlockStatement.
172
+ * 3. After traversing the AST, calculate the expected indentation levels of every token according to the
173
+ * OffsetStorage container.
174
+ * 4. For each line, compare the expected indentation of the first token to the actual indentation in the file,
175
+ * and report the token if the two values are not equal.
176
+ */
177
+ const ELEMENT_LIST_SCHEMA = {
178
+ oneOf: [
179
+ {
180
+ type: 'integer',
181
+ minimum: 0,
182
+ },
183
+ {
184
+ enum: ['first', 'off'],
185
+ },
186
+ ],
187
+ };
188
+ exports.default = util_1.createRule({
189
+ name: 'indent',
190
+ meta: {
191
+ type: 'layout',
192
+ docs: {
193
+ description: 'Enforce consistent indentation.',
194
+ category: 'Stylistic Issues',
195
+ recommended: false,
196
+ },
197
+ fixable: 'whitespace',
198
+ schema: [
199
+ {
200
+ oneOf: [
201
+ {
202
+ enum: ['tab'],
203
+ },
204
+ {
205
+ type: 'integer',
206
+ minimum: 0,
207
+ },
208
+ ],
209
+ },
210
+ {
211
+ type: 'object',
212
+ properties: {
213
+ SwitchCase: {
214
+ type: 'integer',
215
+ minimum: 0,
216
+ default: 0,
217
+ },
218
+ VariableDeclarator: {
219
+ oneOf: [
220
+ ELEMENT_LIST_SCHEMA,
221
+ {
222
+ type: 'object',
223
+ properties: {
224
+ var: ELEMENT_LIST_SCHEMA,
225
+ let: ELEMENT_LIST_SCHEMA,
226
+ const: ELEMENT_LIST_SCHEMA,
227
+ },
228
+ additionalProperties: false,
229
+ },
230
+ ],
231
+ },
232
+ outerIIFEBody: {
233
+ type: 'integer',
234
+ minimum: 0,
235
+ },
236
+ MemberExpression: {
237
+ oneOf: [
238
+ {
239
+ type: 'integer',
240
+ minimum: 0,
241
+ },
242
+ {
243
+ enum: ['off'],
244
+ },
245
+ ],
246
+ },
247
+ FunctionDeclaration: {
248
+ type: 'object',
249
+ properties: {
250
+ parameters: ELEMENT_LIST_SCHEMA,
251
+ body: {
252
+ type: 'integer',
253
+ minimum: 0,
254
+ },
255
+ },
256
+ additionalProperties: false,
257
+ },
258
+ FunctionExpression: {
259
+ type: 'object',
260
+ properties: {
261
+ parameters: ELEMENT_LIST_SCHEMA,
262
+ body: {
263
+ type: 'integer',
264
+ minimum: 0,
265
+ },
266
+ },
267
+ additionalProperties: false,
268
+ },
269
+ CallExpression: {
270
+ type: 'object',
271
+ properties: {
272
+ arguments: ELEMENT_LIST_SCHEMA,
273
+ },
274
+ additionalProperties: false,
275
+ },
276
+ ArrayExpression: ELEMENT_LIST_SCHEMA,
277
+ ObjectExpression: ELEMENT_LIST_SCHEMA,
278
+ ImportDeclaration: ELEMENT_LIST_SCHEMA,
279
+ flatTernaryExpressions: {
280
+ type: 'boolean',
281
+ default: false,
282
+ },
283
+ ignoredNodes: {
284
+ type: 'array',
285
+ items: {
286
+ type: 'string',
287
+ not: {
288
+ pattern: ':exit$',
289
+ },
290
+ },
291
+ },
292
+ ignoreComments: {
293
+ type: 'boolean',
294
+ default: false,
295
+ },
296
+ },
297
+ additionalProperties: false,
298
+ },
299
+ ],
300
+ messages: {
301
+ wrongIndentation: 'Expected indentation of {{expected}} but found {{actual}}.',
302
+ },
303
+ },
304
+ defaultOptions: [
305
+ // typescript docs and playground use 4 space indent
306
+ 4,
307
+ {
308
+ // typescript docs indent the case from the switch
309
+ // https://www.typescriptlang.org/docs/handbook/release-notes/typescript-1-8.html#example-4
310
+ SwitchCase: 1,
311
+ VariableDeclarator: {
312
+ var: DEFAULT_VARIABLE_INDENT,
313
+ let: DEFAULT_VARIABLE_INDENT,
314
+ const: DEFAULT_VARIABLE_INDENT,
315
+ },
316
+ outerIIFEBody: 1,
317
+ FunctionDeclaration: {
318
+ parameters: DEFAULT_PARAMETER_INDENT,
319
+ body: DEFAULT_FUNCTION_BODY_INDENT,
320
+ },
321
+ FunctionExpression: {
322
+ parameters: DEFAULT_PARAMETER_INDENT,
323
+ body: DEFAULT_FUNCTION_BODY_INDENT,
324
+ },
325
+ CallExpression: {
326
+ arguments: DEFAULT_PARAMETER_INDENT,
327
+ },
328
+ MemberExpression: 1,
329
+ ArrayExpression: 1,
330
+ ObjectExpression: 1,
331
+ ImportDeclaration: 1,
332
+ flatTernaryExpressions: false,
333
+ ignoredNodes: [],
334
+ ignoreComments: false,
335
+ },
336
+ ],
337
+ create(context, [userIndent, userOptions]) {
338
+ const indentType = userIndent === 'tab' ? 'tab' : 'space';
339
+ const indentSize = userIndent === 'tab' ? 1 : userIndent;
340
+ const options = userOptions;
341
+ if (typeof userOptions.VariableDeclarator === 'number' ||
342
+ userOptions.VariableDeclarator === 'first') {
343
+ // typescript doesn't narrow the type for some reason
344
+ options.VariableDeclarator = {
345
+ var: userOptions.VariableDeclarator,
346
+ let: userOptions.VariableDeclarator,
347
+ const: userOptions.VariableDeclarator,
348
+ };
349
+ }
350
+ const sourceCode = context.getSourceCode();
351
+ const tokenInfo = new TokenInfo_1.TokenInfo(sourceCode);
352
+ const offsets = new OffsetStorage_1.OffsetStorage(tokenInfo, indentSize, indentType === 'space' ? ' ' : '\t');
353
+ const parameterParens = new WeakSet();
354
+ /**
355
+ * Creates an error message for a line, given the expected/actual indentation.
356
+ * @param expectedAmount The expected amount of indentation characters for this line
357
+ * @param actualSpaces The actual number of indentation spaces that were found on this line
358
+ * @param actualTabs The actual number of indentation tabs that were found on this line
359
+ * @returns An error message for this line
360
+ */
361
+ function createErrorMessageData(expectedAmount, actualSpaces, actualTabs) {
362
+ const expectedStatement = `${expectedAmount} ${indentType}${expectedAmount === 1 ? '' : 's'}`; // e.g. "2 tabs"
363
+ const foundSpacesWord = `space${actualSpaces === 1 ? '' : 's'}`; // e.g. "space"
364
+ const foundTabsWord = `tab${actualTabs === 1 ? '' : 's'}`; // e.g. "tabs"
365
+ let foundStatement;
366
+ if (actualSpaces > 0) {
367
+ /*
368
+ * Abbreviate the message if the expected indentation is also spaces.
369
+ * e.g. 'Expected 4 spaces but found 2' rather than 'Expected 4 spaces but found 2 spaces'
370
+ */
371
+ foundStatement =
372
+ indentType === 'space'
373
+ ? actualSpaces
374
+ : `${actualSpaces} ${foundSpacesWord}`;
375
+ }
376
+ else if (actualTabs > 0) {
377
+ foundStatement =
378
+ indentType === 'tab' ? actualTabs : `${actualTabs} ${foundTabsWord}`;
379
+ }
380
+ else {
381
+ foundStatement = '0';
382
+ }
383
+ return {
384
+ expected: expectedStatement,
385
+ actual: foundStatement,
386
+ };
387
+ }
388
+ /**
389
+ * Reports a given indent violation
390
+ * @param token Token violating the indent rule
391
+ * @param neededIndent Expected indentation string
392
+ */
393
+ function report(token, neededIndent) {
394
+ const actualIndent = Array.from(tokenInfo.getTokenIndent(token));
395
+ const numSpaces = actualIndent.filter(char => char === ' ').length;
396
+ const numTabs = actualIndent.filter(char => char === '\t').length;
397
+ context.report({
398
+ node: token,
399
+ messageId: 'wrongIndentation',
400
+ data: createErrorMessageData(neededIndent.length, numSpaces, numTabs),
401
+ loc: {
402
+ start: { line: token.loc.start.line, column: 0 },
403
+ end: { line: token.loc.start.line, column: token.loc.start.column },
404
+ },
405
+ fix(fixer) {
406
+ return fixer.replaceTextRange([token.range[0] - token.loc.start.column, token.range[0]], neededIndent);
407
+ },
408
+ });
409
+ }
410
+ /**
411
+ * Checks if a token's indentation is correct
412
+ * @param token Token to examine
413
+ * @param desiredIndent Desired indentation of the string
414
+ * @returns `true` if the token's indentation is correct
415
+ */
416
+ function validateTokenIndent(token, desiredIndent) {
417
+ const indentation = tokenInfo.getTokenIndent(token);
418
+ return (indentation === desiredIndent ||
419
+ // To avoid conflicts with no-mixed-spaces-and-tabs, don't report mixed spaces and tabs.
420
+ (indentation.includes(' ') && indentation.includes('\t')));
421
+ }
422
+ /**
423
+ * Check to see if the node is a file level IIFE
424
+ * @param node The function node to check.
425
+ * @returns True if the node is the outer IIFE
426
+ */
427
+ function isOuterIIFE(node) {
428
+ /*
429
+ * Verify that the node is an IIFE
430
+ */
431
+ if (!node.parent ||
432
+ node.parent.type !== 'CallExpression' ||
433
+ node.parent.callee !== node) {
434
+ return false;
435
+ }
436
+ /*
437
+ * Navigate legal ancestors to determine whether this IIFE is outer.
438
+ * A "legal ancestor" is an expression or statement that causes the function to get executed immediately.
439
+ * For example, `!(function(){})()` is an outer IIFE even though it is preceded by a ! operator.
440
+ */
441
+ let statement = node.parent && node.parent.parent;
442
+ while (statement &&
443
+ ((statement.type === experimental_utils_1.AST_NODE_TYPES.UnaryExpression &&
444
+ ['!', '~', '+', '-'].indexOf(statement.operator) > -1) ||
445
+ statement.type === experimental_utils_1.AST_NODE_TYPES.AssignmentExpression ||
446
+ statement.type === experimental_utils_1.AST_NODE_TYPES.LogicalExpression ||
447
+ statement.type === experimental_utils_1.AST_NODE_TYPES.SequenceExpression ||
448
+ statement.type === experimental_utils_1.AST_NODE_TYPES.VariableDeclarator)) {
449
+ statement = statement.parent;
450
+ }
451
+ return (!!statement &&
452
+ (statement.type === experimental_utils_1.AST_NODE_TYPES.ExpressionStatement ||
453
+ statement.type === experimental_utils_1.AST_NODE_TYPES.VariableDeclaration) &&
454
+ !!statement.parent &&
455
+ statement.parent.type === experimental_utils_1.AST_NODE_TYPES.Program);
456
+ }
457
+ /**
458
+ * Counts the number of linebreaks that follow the last non-whitespace character in a string
459
+ * @param str The string to check
460
+ * @returns The number of JavaScript linebreaks that follow the last non-whitespace character,
461
+ * or the total number of linebreaks if the string is all whitespace.
462
+ */
463
+ function countTrailingLinebreaks(str) {
464
+ const trailingWhitespace = str.match(/\s*$/u)[0];
465
+ const linebreakMatches = trailingWhitespace.match(ast_utils_1.createGlobalLinebreakMatcher());
466
+ return linebreakMatches === null ? 0 : linebreakMatches.length;
467
+ }
468
+ /**
469
+ * Check indentation for lists of elements (arrays, objects, function params)
470
+ * @param elements List of elements that should be offset
471
+ * @param startToken The start token of the list that element should be aligned against, e.g. '['
472
+ * @param endToken The end token of the list, e.g. ']'
473
+ * @param offset The amount that the elements should be offset
474
+ */
475
+ function addElementListIndent(elements, startToken, endToken, offset) {
476
+ /**
477
+ * Gets the first token of a given element, including surrounding parentheses.
478
+ * @param element A node in the `elements` list
479
+ * @returns The first token of this element
480
+ */
481
+ function getFirstToken(element) {
482
+ let token = sourceCode.getTokenBefore(element);
483
+ while (eslint_utils_1.isOpeningParenToken(token) && token !== startToken) {
484
+ token = sourceCode.getTokenBefore(token);
485
+ }
486
+ return sourceCode.getTokenAfter(token);
487
+ }
488
+ // Run through all the tokens in the list, and offset them by one indent level (mainly for comments, other things will end up overridden)
489
+ offsets.setDesiredOffsets([startToken.range[1], endToken.range[0]], startToken, typeof offset === 'number' ? offset : 1);
490
+ offsets.setDesiredOffset(endToken, startToken, 0);
491
+ // If the preference is "first" but there is no first element (e.g. sparse arrays w/ empty first slot), fall back to 1 level.
492
+ if (offset === 'first' && elements.length && !elements[0]) {
493
+ return;
494
+ }
495
+ elements.forEach((element, index) => {
496
+ if (!element) {
497
+ // Skip holes in arrays
498
+ return;
499
+ }
500
+ if (offset === 'off') {
501
+ // Ignore the first token of every element if the "off" option is used
502
+ offsets.ignoreToken(getFirstToken(element));
503
+ }
504
+ // Offset the following elements correctly relative to the first element
505
+ if (index === 0) {
506
+ return;
507
+ }
508
+ if (offset === 'first' &&
509
+ tokenInfo.isFirstTokenOfLine(getFirstToken(element))) {
510
+ offsets.matchOffsetOf(getFirstToken(elements[0]), getFirstToken(element));
511
+ }
512
+ else {
513
+ const previousElement = elements[index - 1];
514
+ const firstTokenOfPreviousElement = previousElement && getFirstToken(previousElement);
515
+ const previousElementLastToken = previousElement && sourceCode.getLastToken(previousElement);
516
+ if (previousElement &&
517
+ previousElementLastToken.loc.end.line -
518
+ countTrailingLinebreaks(previousElementLastToken.value) >
519
+ startToken.loc.end.line) {
520
+ offsets.setDesiredOffsets([previousElement.range[1], element.range[1]], firstTokenOfPreviousElement, 0);
521
+ }
522
+ }
523
+ });
524
+ }
525
+ /**
526
+ * Check and decide whether to check for indentation for blockless nodes
527
+ * Scenarios are for or while statements without braces around them
528
+ */
529
+ function addBlocklessNodeIndent(node) {
530
+ if (node.type !== 'BlockStatement') {
531
+ const lastParentToken = sourceCode.getTokenBefore(node, eslint_utils_1.isNotOpeningParenToken);
532
+ let firstBodyToken = sourceCode.getFirstToken(node);
533
+ let lastBodyToken = sourceCode.getLastToken(node);
534
+ while (eslint_utils_1.isOpeningParenToken(sourceCode.getTokenBefore(firstBodyToken)) &&
535
+ eslint_utils_1.isClosingParenToken(sourceCode.getTokenAfter(lastBodyToken))) {
536
+ firstBodyToken = sourceCode.getTokenBefore(firstBodyToken);
537
+ lastBodyToken = sourceCode.getTokenAfter(lastBodyToken);
538
+ }
539
+ offsets.setDesiredOffsets([firstBodyToken.range[0], lastBodyToken.range[1]], lastParentToken, 1);
540
+ /*
541
+ * For blockless nodes with semicolon-first style, don't indent the semicolon.
542
+ * e.g.
543
+ * if (foo) bar()
544
+ * ; [1, 2, 3].map(foo)
545
+ */
546
+ const lastToken = sourceCode.getLastToken(node);
547
+ if (lastToken &&
548
+ node.type !== 'EmptyStatement' &&
549
+ eslint_utils_1.isSemicolonToken(lastToken)) {
550
+ offsets.setDesiredOffset(lastToken, lastParentToken, 0);
551
+ }
552
+ }
553
+ }
554
+ /**
555
+ * Checks the indentation for nodes that are like function calls
556
+ */
557
+ function addFunctionCallIndent(node) {
558
+ const openingParen = node.arguments.length
559
+ ? sourceCode.getFirstTokenBetween(node.callee, node.arguments[0], eslint_utils_1.isOpeningParenToken)
560
+ : sourceCode.getLastToken(node, 1);
561
+ const closingParen = sourceCode.getLastToken(node);
562
+ parameterParens.add(openingParen);
563
+ parameterParens.add(closingParen);
564
+ offsets.setDesiredOffset(openingParen, sourceCode.getTokenBefore(openingParen), 0);
565
+ addElementListIndent(node.arguments, openingParen, closingParen, options.CallExpression.arguments);
566
+ }
567
+ /**
568
+ * Checks the indentation of parenthesized values, given a list of tokens in a program
569
+ * @param tokens A list of tokens
570
+ */
571
+ function addParensIndent(tokens) {
572
+ const parenStack = [];
573
+ const parenPairs = [];
574
+ tokens.forEach(nextToken => {
575
+ // Accumulate a list of parenthesis pairs
576
+ if (eslint_utils_1.isOpeningParenToken(nextToken)) {
577
+ parenStack.push(nextToken);
578
+ }
579
+ else if (eslint_utils_1.isClosingParenToken(nextToken)) {
580
+ parenPairs.unshift({ left: parenStack.pop(), right: nextToken });
581
+ }
582
+ });
583
+ parenPairs.forEach(pair => {
584
+ const leftParen = pair.left;
585
+ const rightParen = pair.right;
586
+ // We only want to handle parens around expressions, so exclude parentheses that are in function parameters and function call arguments.
587
+ if (!parameterParens.has(leftParen) &&
588
+ !parameterParens.has(rightParen)) {
589
+ const parenthesizedTokens = new Set(sourceCode.getTokensBetween(leftParen, rightParen));
590
+ parenthesizedTokens.forEach(token => {
591
+ if (!parenthesizedTokens.has(offsets.getFirstDependency(token))) {
592
+ offsets.setDesiredOffset(token, leftParen, 1);
593
+ }
594
+ });
595
+ }
596
+ offsets.setDesiredOffset(rightParen, leftParen, 0);
597
+ });
598
+ }
599
+ /**
600
+ * Ignore all tokens within an unknown node whose offset do not depend
601
+ * on another token's offset within the unknown node
602
+ */
603
+ function ignoreNode(node) {
604
+ const unknownNodeTokens = new Set(sourceCode.getTokens(node, { includeComments: true }));
605
+ unknownNodeTokens.forEach(token => {
606
+ if (!unknownNodeTokens.has(offsets.getFirstDependency(token))) {
607
+ const firstTokenOfLine = tokenInfo.getFirstTokenOfLine(token);
608
+ if (token === firstTokenOfLine) {
609
+ offsets.ignoreToken(token);
610
+ }
611
+ else {
612
+ offsets.setDesiredOffset(token, firstTokenOfLine, 0);
613
+ }
614
+ }
615
+ });
616
+ }
617
+ /**
618
+ * Check whether the given token is on the first line of a statement.
619
+ * @param leafNode The expression node that the token belongs directly.
620
+ * @returns `true` if the token is on the first line of a statement.
621
+ */
622
+ function isOnFirstLineOfStatement(token, leafNode) {
623
+ let node = leafNode;
624
+ while (node.parent &&
625
+ !node.parent.type.endsWith('Statement') &&
626
+ !node.parent.type.endsWith('Declaration')) {
627
+ node = node.parent;
628
+ }
629
+ node = node.parent;
630
+ return !node || node.loc.start.line === token.loc.start.line;
631
+ }
632
+ /**
633
+ * Check whether there are any blank (whitespace-only) lines between
634
+ * two tokens on separate lines.
635
+ * @returns `true` if the tokens are on separate lines and
636
+ * there exists a blank line between them, `false` otherwise.
637
+ */
638
+ function hasBlankLinesBetween(firstToken, secondToken) {
639
+ const firstTokenLine = firstToken.loc.end.line;
640
+ const secondTokenLine = secondToken.loc.start.line;
641
+ if (firstTokenLine === secondTokenLine ||
642
+ firstTokenLine === secondTokenLine - 1) {
643
+ return false;
644
+ }
645
+ for (let line = firstTokenLine + 1; line < secondTokenLine; ++line) {
646
+ if (!tokenInfo.firstTokensByLineNumber.has(line)) {
647
+ return true;
648
+ }
649
+ }
650
+ return false;
651
+ }
652
+ const ignoredNodeFirstTokens = new Set();
653
+ const baseOffsetListeners = {
654
+ 'ArrayExpression, ArrayPattern'(node) {
655
+ const openingBracket = sourceCode.getFirstToken(node);
656
+ const closingBracket = sourceCode.getTokenAfter(node.elements[node.elements.length - 1] || openingBracket, eslint_utils_1.isClosingBracketToken);
657
+ addElementListIndent(node.elements, openingBracket, closingBracket, options.ArrayExpression);
658
+ },
659
+ ArrowFunctionExpression(node) {
660
+ const firstToken = sourceCode.getFirstToken(node);
661
+ if (eslint_utils_1.isOpeningParenToken(firstToken)) {
662
+ const openingParen = firstToken;
663
+ const closingParen = sourceCode.getTokenBefore(node.body, eslint_utils_1.isClosingParenToken);
664
+ parameterParens.add(openingParen);
665
+ parameterParens.add(closingParen);
666
+ addElementListIndent(node.params, openingParen, closingParen, options.FunctionExpression.parameters);
667
+ }
668
+ addBlocklessNodeIndent(node.body);
669
+ },
670
+ AssignmentExpression(node) {
671
+ const operator = sourceCode.getFirstTokenBetween(node.left, node.right, token => token.value === node.operator);
672
+ offsets.setDesiredOffsets([operator.range[0], node.range[1]], sourceCode.getLastToken(node.left), 1);
673
+ offsets.ignoreToken(operator);
674
+ offsets.ignoreToken(sourceCode.getTokenAfter(operator));
675
+ },
676
+ 'BinaryExpression, LogicalExpression'(node) {
677
+ const operator = sourceCode.getFirstTokenBetween(node.left, node.right, token => token.value === node.operator);
678
+ /*
679
+ * For backwards compatibility, don't check BinaryExpression indents, e.g.
680
+ * var foo = bar &&
681
+ * baz;
682
+ */
683
+ const tokenAfterOperator = sourceCode.getTokenAfter(operator);
684
+ offsets.ignoreToken(operator);
685
+ offsets.ignoreToken(tokenAfterOperator);
686
+ offsets.setDesiredOffset(tokenAfterOperator, operator, 0);
687
+ },
688
+ 'BlockStatement, ClassBody'(node) {
689
+ let blockIndentLevel;
690
+ if (node.parent && isOuterIIFE(node.parent)) {
691
+ blockIndentLevel = options.outerIIFEBody;
692
+ }
693
+ else if (node.parent &&
694
+ (node.parent.type === experimental_utils_1.AST_NODE_TYPES.FunctionExpression ||
695
+ node.parent.type === experimental_utils_1.AST_NODE_TYPES.ArrowFunctionExpression)) {
696
+ blockIndentLevel = options.FunctionExpression.body;
697
+ }
698
+ else if (node.parent &&
699
+ node.parent.type === experimental_utils_1.AST_NODE_TYPES.FunctionDeclaration) {
700
+ blockIndentLevel = options.FunctionDeclaration.body;
701
+ }
702
+ else {
703
+ blockIndentLevel = 1;
704
+ }
705
+ /*
706
+ * For blocks that aren't lone statements, ensure that the opening curly brace
707
+ * is aligned with the parent.
708
+ */
709
+ if (node.parent && !STATEMENT_LIST_PARENTS.has(node.parent.type)) {
710
+ offsets.setDesiredOffset(sourceCode.getFirstToken(node), sourceCode.getFirstToken(node.parent), 0);
711
+ }
712
+ addElementListIndent(node.body, sourceCode.getFirstToken(node), sourceCode.getLastToken(node), blockIndentLevel);
713
+ },
714
+ CallExpression: addFunctionCallIndent,
715
+ 'ClassDeclaration[superClass], ClassExpression[superClass]'(node) {
716
+ const classToken = sourceCode.getFirstToken(node);
717
+ const extendsToken = sourceCode.getTokenBefore(node.superClass, eslint_utils_1.isNotOpeningParenToken);
718
+ offsets.setDesiredOffsets([extendsToken.range[0], node.body.range[0]], classToken, 1);
719
+ },
720
+ ConditionalExpression(node) {
721
+ const firstToken = sourceCode.getFirstToken(node);
722
+ // `flatTernaryExpressions` option is for the following style:
723
+ // var a =
724
+ // foo > 0 ? bar :
725
+ // foo < 0 ? baz :
726
+ // /*else*/ qiz ;
727
+ if (!options.flatTernaryExpressions ||
728
+ node.test.loc.end.line !== node.consequent.loc.start.line ||
729
+ isOnFirstLineOfStatement(firstToken, node)) {
730
+ const questionMarkToken = sourceCode.getFirstTokenBetween(node.test, node.consequent, token => token.type === experimental_utils_1.AST_TOKEN_TYPES.Punctuator && token.value === '?');
731
+ const colonToken = sourceCode.getFirstTokenBetween(node.consequent, node.alternate, token => token.type === experimental_utils_1.AST_TOKEN_TYPES.Punctuator && token.value === ':');
732
+ const firstConsequentToken = sourceCode.getTokenAfter(questionMarkToken);
733
+ const lastConsequentToken = sourceCode.getTokenBefore(colonToken);
734
+ const firstAlternateToken = sourceCode.getTokenAfter(colonToken);
735
+ offsets.setDesiredOffset(questionMarkToken, firstToken, 1);
736
+ offsets.setDesiredOffset(colonToken, firstToken, 1);
737
+ offsets.setDesiredOffset(firstConsequentToken, firstToken, 1);
738
+ /*
739
+ * The alternate and the consequent should usually have the same indentation.
740
+ * If they share part of a line, align the alternate against the first token of the consequent.
741
+ * This allows the alternate to be indented correctly in cases like this:
742
+ * foo ? (
743
+ * bar
744
+ * ) : ( // this '(' is aligned with the '(' above, so it's considered to be aligned with `foo`
745
+ * baz // as a result, `baz` is offset by 1 rather than 2
746
+ * )
747
+ */
748
+ if (lastConsequentToken.loc.end.line ===
749
+ firstAlternateToken.loc.start.line) {
750
+ offsets.setDesiredOffset(firstAlternateToken, firstConsequentToken, 0);
751
+ }
752
+ else {
753
+ /**
754
+ * If the alternate and consequent do not share part of a line, offset the alternate from the first
755
+ * token of the conditional expression. For example:
756
+ * foo ? bar
757
+ * : baz
758
+ *
759
+ * If `baz` were aligned with `bar` rather than being offset by 1 from `foo`, `baz` would end up
760
+ * having no expected indentation.
761
+ */
762
+ offsets.setDesiredOffset(firstAlternateToken, firstToken, 1);
763
+ }
764
+ }
765
+ },
766
+ 'DoWhileStatement, WhileStatement, ForInStatement, ForOfStatement': (node) => {
767
+ addBlocklessNodeIndent(node.body);
768
+ },
769
+ ExportNamedDeclaration(node) {
770
+ if (node.declaration === null) {
771
+ const closingCurly = sourceCode.getLastToken(node, eslint_utils_1.isClosingBraceToken);
772
+ // Indent the specifiers in `export {foo, bar, baz}`
773
+ addElementListIndent(node.specifiers, sourceCode.getFirstToken(node, { skip: 1 }), closingCurly, 1);
774
+ if (node.source) {
775
+ // Indent everything after and including the `from` token in `export {foo, bar, baz} from 'qux'`
776
+ offsets.setDesiredOffsets([closingCurly.range[1], node.range[1]], sourceCode.getFirstToken(node), 1);
777
+ }
778
+ }
779
+ },
780
+ ForStatement(node) {
781
+ const forOpeningParen = sourceCode.getFirstToken(node, 1);
782
+ if (node.init) {
783
+ offsets.setDesiredOffsets(node.init.range, forOpeningParen, 1);
784
+ }
785
+ if (node.test) {
786
+ offsets.setDesiredOffsets(node.test.range, forOpeningParen, 1);
787
+ }
788
+ if (node.update) {
789
+ offsets.setDesiredOffsets(node.update.range, forOpeningParen, 1);
790
+ }
791
+ addBlocklessNodeIndent(node.body);
792
+ },
793
+ 'FunctionDeclaration, FunctionExpression'(node) {
794
+ const closingParen = sourceCode.getTokenBefore(node.body);
795
+ const openingParen = sourceCode.getTokenBefore(node.params.length ? node.params[0] : closingParen);
796
+ parameterParens.add(openingParen);
797
+ parameterParens.add(closingParen);
798
+ addElementListIndent(node.params, openingParen, closingParen, options[node.type].parameters);
799
+ },
800
+ IfStatement(node) {
801
+ addBlocklessNodeIndent(node.consequent);
802
+ if (node.alternate && node.alternate.type !== 'IfStatement') {
803
+ addBlocklessNodeIndent(node.alternate);
804
+ }
805
+ },
806
+ ImportDeclaration(node) {
807
+ if (node.specifiers.some(specifier => specifier.type === 'ImportSpecifier')) {
808
+ const openingCurly = sourceCode.getFirstToken(node, eslint_utils_1.isOpeningBraceToken);
809
+ const closingCurly = sourceCode.getLastToken(node, eslint_utils_1.isClosingBraceToken);
810
+ addElementListIndent(node.specifiers.filter(specifier => specifier.type === 'ImportSpecifier'), openingCurly, closingCurly, options.ImportDeclaration);
811
+ }
812
+ const fromToken = sourceCode.getLastToken(node, token => token.type === 'Identifier' && token.value === 'from');
813
+ const sourceToken = sourceCode.getLastToken(node, token => token.type === 'String');
814
+ const semiToken = sourceCode.getLastToken(node, token => token.type === experimental_utils_1.AST_TOKEN_TYPES.Punctuator && token.value === ';');
815
+ if (fromToken) {
816
+ const end = semiToken && semiToken.range[1] === sourceToken.range[1]
817
+ ? node.range[1]
818
+ : sourceToken.range[1];
819
+ offsets.setDesiredOffsets([fromToken.range[0], end], sourceCode.getFirstToken(node), 1);
820
+ }
821
+ },
822
+ 'MemberExpression, JSXMemberExpression, MetaProperty'(node) {
823
+ const object = node.type === experimental_utils_1.AST_NODE_TYPES.MetaProperty ? node.meta : node.object;
824
+ const isComputed = 'computed' in node && node.computed;
825
+ const firstNonObjectToken = sourceCode.getFirstTokenBetween(object, node.property, eslint_utils_1.isNotClosingParenToken);
826
+ const secondNonObjectToken = sourceCode.getTokenAfter(firstNonObjectToken);
827
+ const objectParenCount = sourceCode.getTokensBetween(object, node.property, { filter: eslint_utils_1.isClosingParenToken }).length;
828
+ const firstObjectToken = objectParenCount
829
+ ? sourceCode.getTokenBefore(object, { skip: objectParenCount - 1 })
830
+ : sourceCode.getFirstToken(object);
831
+ const lastObjectToken = sourceCode.getTokenBefore(firstNonObjectToken);
832
+ const firstPropertyToken = isComputed
833
+ ? firstNonObjectToken
834
+ : secondNonObjectToken;
835
+ if (isComputed) {
836
+ // For computed MemberExpressions, match the closing bracket with the opening bracket.
837
+ offsets.setDesiredOffset(sourceCode.getLastToken(node), firstNonObjectToken, 0);
838
+ offsets.setDesiredOffsets(node.property.range, firstNonObjectToken, 1);
839
+ }
840
+ /*
841
+ * If the object ends on the same line that the property starts, match against the last token
842
+ * of the object, to ensure that the MemberExpression is not indented.
843
+ *
844
+ * Otherwise, match against the first token of the object, e.g.
845
+ * foo
846
+ * .bar
847
+ * .baz // <-- offset by 1 from `foo`
848
+ */
849
+ const offsetBase = lastObjectToken.loc.end.line === firstPropertyToken.loc.start.line
850
+ ? lastObjectToken
851
+ : firstObjectToken;
852
+ if (typeof options.MemberExpression === 'number') {
853
+ // Match the dot (for non-computed properties) or the opening bracket (for computed properties) against the object.
854
+ offsets.setDesiredOffset(firstNonObjectToken, offsetBase, options.MemberExpression);
855
+ /*
856
+ * For computed MemberExpressions, match the first token of the property against the opening bracket.
857
+ * Otherwise, match the first token of the property against the object.
858
+ */
859
+ offsets.setDesiredOffset(secondNonObjectToken, isComputed ? firstNonObjectToken : offsetBase, options.MemberExpression);
860
+ }
861
+ else {
862
+ // If the MemberExpression option is off, ignore the dot and the first token of the property.
863
+ offsets.ignoreToken(firstNonObjectToken);
864
+ offsets.ignoreToken(secondNonObjectToken);
865
+ // To ignore the property indentation, ensure that the property tokens depend on the ignored tokens.
866
+ offsets.setDesiredOffset(firstNonObjectToken, offsetBase, 0);
867
+ offsets.setDesiredOffset(secondNonObjectToken, firstNonObjectToken, 0);
868
+ }
869
+ },
870
+ NewExpression(node) {
871
+ // Only indent the arguments if the NewExpression has parens (e.g. `new Foo(bar)` or `new Foo()`, but not `new Foo`
872
+ if (node.arguments.length > 0 ||
873
+ (eslint_utils_1.isClosingParenToken(sourceCode.getLastToken(node)) &&
874
+ eslint_utils_1.isOpeningParenToken(sourceCode.getLastToken(node, 1)))) {
875
+ addFunctionCallIndent(node);
876
+ }
877
+ },
878
+ 'ObjectExpression, ObjectPattern'(node) {
879
+ const openingCurly = sourceCode.getFirstToken(node);
880
+ const closingCurly = sourceCode.getTokenAfter(node.properties.length
881
+ ? node.properties[node.properties.length - 1]
882
+ : openingCurly, eslint_utils_1.isClosingBraceToken);
883
+ addElementListIndent(node.properties, openingCurly, closingCurly, options.ObjectExpression);
884
+ },
885
+ Property(node) {
886
+ if (!node.shorthand && !node.method && node.kind === 'init') {
887
+ const colon = sourceCode.getFirstTokenBetween(node.key, node.value, eslint_utils_1.isColonToken);
888
+ offsets.ignoreToken(sourceCode.getTokenAfter(colon));
889
+ }
890
+ },
891
+ SwitchStatement(node) {
892
+ const openingCurly = sourceCode.getTokenAfter(node.discriminant, eslint_utils_1.isOpeningBraceToken);
893
+ const closingCurly = sourceCode.getLastToken(node);
894
+ offsets.setDesiredOffsets([openingCurly.range[1], closingCurly.range[0]], openingCurly, options.SwitchCase);
895
+ if (node.cases.length) {
896
+ sourceCode
897
+ .getTokensBetween(node.cases[node.cases.length - 1], closingCurly, {
898
+ includeComments: true,
899
+ filter: eslint_utils_1.isCommentToken,
900
+ })
901
+ .forEach(token => offsets.ignoreToken(token));
902
+ }
903
+ },
904
+ SwitchCase(node) {
905
+ if (!(node.consequent.length === 1 &&
906
+ node.consequent[0].type === 'BlockStatement')) {
907
+ const caseKeyword = sourceCode.getFirstToken(node);
908
+ const tokenAfterCurrentCase = sourceCode.getTokenAfter(node);
909
+ offsets.setDesiredOffsets([caseKeyword.range[1], tokenAfterCurrentCase.range[0]], caseKeyword, 1);
910
+ }
911
+ },
912
+ TemplateLiteral(node) {
913
+ node.expressions.forEach((_, index) => {
914
+ const previousQuasi = node.quasis[index];
915
+ const nextQuasi = node.quasis[index + 1];
916
+ const tokenToAlignFrom = previousQuasi.loc.start.line === previousQuasi.loc.end.line
917
+ ? sourceCode.getFirstToken(previousQuasi)
918
+ : null;
919
+ offsets.setDesiredOffsets([previousQuasi.range[1], nextQuasi.range[0]], tokenToAlignFrom, 1);
920
+ offsets.setDesiredOffset(sourceCode.getFirstToken(nextQuasi), tokenToAlignFrom, 0);
921
+ });
922
+ },
923
+ VariableDeclaration(node) {
924
+ if (node.declarations.length === 0) {
925
+ return;
926
+ }
927
+ let variableIndent = Object.prototype.hasOwnProperty.call(options.VariableDeclarator, node.kind)
928
+ ? options.VariableDeclarator[node.kind]
929
+ : DEFAULT_VARIABLE_INDENT;
930
+ const firstToken = sourceCode.getFirstToken(node);
931
+ const lastToken = sourceCode.getLastToken(node);
932
+ if (variableIndent === 'first') {
933
+ if (node.declarations.length > 1) {
934
+ addElementListIndent(node.declarations, firstToken, lastToken, 'first');
935
+ return;
936
+ }
937
+ variableIndent = DEFAULT_VARIABLE_INDENT;
938
+ }
939
+ if (node.declarations[node.declarations.length - 1].loc.start.line >
940
+ node.loc.start.line) {
941
+ /*
942
+ * VariableDeclarator indentation is a bit different from other forms of indentation, in that the
943
+ * indentation of an opening bracket sometimes won't match that of a closing bracket. For example,
944
+ * the following indentations are correct:
945
+ *
946
+ * var foo = {
947
+ * ok: true
948
+ * };
949
+ *
950
+ * var foo = {
951
+ * ok: true,
952
+ * },
953
+ * bar = 1;
954
+ *
955
+ * Account for when exiting the AST (after indentations have already been set for the nodes in
956
+ * the declaration) by manually increasing the indentation level of the tokens in this declarator
957
+ * on the same line as the start of the declaration, provided that there are declarators that
958
+ * follow this one.
959
+ */
960
+ offsets.setDesiredOffsets(node.range, firstToken, variableIndent, true);
961
+ }
962
+ else {
963
+ offsets.setDesiredOffsets(node.range, firstToken, variableIndent);
964
+ }
965
+ if (eslint_utils_1.isSemicolonToken(lastToken)) {
966
+ offsets.ignoreToken(lastToken);
967
+ }
968
+ },
969
+ VariableDeclarator(node) {
970
+ if (node.init) {
971
+ const equalOperator = sourceCode.getTokenBefore(node.init, eslint_utils_1.isNotOpeningParenToken);
972
+ const tokenAfterOperator = sourceCode.getTokenAfter(equalOperator);
973
+ offsets.ignoreToken(equalOperator);
974
+ offsets.ignoreToken(tokenAfterOperator);
975
+ offsets.setDesiredOffsets([tokenAfterOperator.range[0], node.range[1]], equalOperator, 1);
976
+ offsets.setDesiredOffset(equalOperator, sourceCode.getLastToken(node.id), 0);
977
+ }
978
+ },
979
+ 'JSXAttribute[value]'(node) {
980
+ const nodeValue = node.value;
981
+ const equalsToken = sourceCode.getFirstTokenBetween(node.name, nodeValue, token => token.type === experimental_utils_1.AST_TOKEN_TYPES.Punctuator && token.value === '=');
982
+ offsets.setDesiredOffsets([equalsToken.range[0], nodeValue.range[1]], sourceCode.getFirstToken(node.name), 1);
983
+ },
984
+ JSXElement(node) {
985
+ if (node.closingElement) {
986
+ addElementListIndent(node.children, sourceCode.getFirstToken(node.openingElement), sourceCode.getFirstToken(node.closingElement), 1);
987
+ }
988
+ },
989
+ JSXOpeningElement(node) {
990
+ const firstToken = sourceCode.getFirstToken(node);
991
+ let closingToken;
992
+ if (node.selfClosing) {
993
+ closingToken = sourceCode.getLastToken(node, { skip: 1 });
994
+ offsets.setDesiredOffset(sourceCode.getLastToken(node), closingToken, 0);
995
+ }
996
+ else {
997
+ closingToken = sourceCode.getLastToken(node);
998
+ }
999
+ offsets.setDesiredOffsets(node.name.range, sourceCode.getFirstToken(node));
1000
+ addElementListIndent(node.attributes, firstToken, closingToken, 1);
1001
+ },
1002
+ JSXClosingElement(node) {
1003
+ const firstToken = sourceCode.getFirstToken(node);
1004
+ offsets.setDesiredOffsets(node.name.range, firstToken, 1);
1005
+ },
1006
+ JSXExpressionContainer(node) {
1007
+ const openingCurly = sourceCode.getFirstToken(node);
1008
+ const closingCurly = sourceCode.getLastToken(node);
1009
+ offsets.setDesiredOffsets([openingCurly.range[1], closingCurly.range[0]], openingCurly, 1);
1010
+ },
1011
+ '*'(node) {
1012
+ const firstToken = sourceCode.getFirstToken(node);
1013
+ // Ensure that the children of every node are indented at least as much as the first token.
1014
+ if (firstToken && !ignoredNodeFirstTokens.has(firstToken)) {
1015
+ offsets.setDesiredOffsets(node.range, firstToken, 0);
1016
+ }
1017
+ },
1018
+ };
1019
+ const listenerCallQueue = [];
1020
+ /*
1021
+ * To ignore the indentation of a node:
1022
+ * 1. Don't call the node's listener when entering it (if it has a listener)
1023
+ * 2. Don't set any offsets against the first token of the node.
1024
+ * 3. Call `ignoreNode` on the node sometime after exiting it and before validating offsets.
1025
+ */
1026
+ const offsetListeners = Object.keys(baseOffsetListeners).reduce(
1027
+ /*
1028
+ * Offset listener calls are deferred until traversal is finished, and are called as
1029
+ * part of the final `Program:exit` listener. This is necessary because a node might
1030
+ * be matched by multiple selectors.
1031
+ *
1032
+ * Example: Suppose there is an offset listener for `Identifier`, and the user has
1033
+ * specified in configuration that `MemberExpression > Identifier` should be ignored.
1034
+ * Due to selector specificity rules, the `Identifier` listener will get called first. However,
1035
+ * if a given Identifier node is supposed to be ignored, then the `Identifier` offset listener
1036
+ * should not have been called at all. Without doing extra selector matching, we don't know
1037
+ * whether the Identifier matches the `MemberExpression > Identifier` selector until the
1038
+ * `MemberExpression > Identifier` listener is called.
1039
+ *
1040
+ * To avoid this, the `Identifier` listener isn't called until traversal finishes and all
1041
+ * ignored nodes are known.
1042
+ */
1043
+ (acc, key) => {
1044
+ const listener = baseOffsetListeners[key];
1045
+ acc[key] = node => listenerCallQueue.push({ listener, node });
1046
+ return acc;
1047
+ }, {});
1048
+ // For each ignored node selector, set up a listener to collect it into the `ignoredNodes` set.
1049
+ const ignoredNodes = new Set();
1050
+ /**
1051
+ * Ignores a node
1052
+ * @param node The node to ignore
1053
+ */
1054
+ function addToIgnoredNodes(node) {
1055
+ ignoredNodes.add(node);
1056
+ ignoredNodeFirstTokens.add(sourceCode.getFirstToken(node));
1057
+ }
1058
+ const ignoredNodeListeners = options.ignoredNodes.reduce((listeners, ignoredSelector) => Object.assign(listeners, { [ignoredSelector]: addToIgnoredNodes }), {});
1059
+ /*
1060
+ * Join the listeners, and add a listener to verify that all tokens actually have the correct indentation
1061
+ * at the end.
1062
+ *
1063
+ * Using Object.assign will cause some offset listeners to be overwritten if the same selector also appears
1064
+ * in `ignoredNodeListeners`. This isn't a problem because all of the matching nodes will be ignored,
1065
+ * so those listeners wouldn't be called anyway.
1066
+ */
1067
+ return Object.assign(offsetListeners, ignoredNodeListeners, {
1068
+ '*:exit'(node) {
1069
+ // If a node's type is nonstandard, we can't tell how its children should be offset, so ignore it.
1070
+ if (!KNOWN_NODES.has(node.type)) {
1071
+ addToIgnoredNodes(node);
1072
+ }
1073
+ },
1074
+ 'Program:exit'() {
1075
+ // If ignoreComments option is enabled, ignore all comment tokens.
1076
+ if (options.ignoreComments) {
1077
+ sourceCode
1078
+ .getAllComments()
1079
+ .forEach(comment => offsets.ignoreToken(comment));
1080
+ }
1081
+ // Invoke the queued offset listeners for the nodes that aren't ignored.
1082
+ listenerCallQueue
1083
+ .filter(nodeInfo => !ignoredNodes.has(nodeInfo.node))
1084
+ .forEach(nodeInfo => nodeInfo.listener(nodeInfo.node));
1085
+ // Update the offsets for ignored nodes to prevent their child tokens from being reported.
1086
+ ignoredNodes.forEach(ignoreNode);
1087
+ addParensIndent(sourceCode.ast.tokens);
1088
+ /*
1089
+ * Create a Map from (tokenOrComment) => (precedingToken).
1090
+ * This is necessary because sourceCode.getTokenBefore does not handle a comment as an argument correctly.
1091
+ */
1092
+ const precedingTokens = sourceCode.ast.comments.reduce((commentMap, comment) => {
1093
+ const tokenOrCommentBefore = sourceCode.getTokenBefore(comment, {
1094
+ includeComments: true,
1095
+ });
1096
+ return commentMap.set(comment, commentMap.has(tokenOrCommentBefore)
1097
+ ? commentMap.get(tokenOrCommentBefore)
1098
+ : tokenOrCommentBefore);
1099
+ }, new WeakMap());
1100
+ sourceCode.lines.forEach((_, lineIndex) => {
1101
+ const lineNumber = lineIndex + 1;
1102
+ if (!tokenInfo.firstTokensByLineNumber.has(lineNumber)) {
1103
+ // Don't check indentation on blank lines
1104
+ return;
1105
+ }
1106
+ const firstTokenOfLine = tokenInfo.firstTokensByLineNumber.get(lineNumber);
1107
+ if (firstTokenOfLine.loc.start.line !== lineNumber) {
1108
+ // Don't check the indentation of multi-line tokens (e.g. template literals or block comments) twice.
1109
+ return;
1110
+ }
1111
+ // If the token matches the expected expected indentation, don't report it.
1112
+ if (validateTokenIndent(firstTokenOfLine, offsets.getDesiredIndent(firstTokenOfLine))) {
1113
+ return;
1114
+ }
1115
+ if (eslint_utils_1.isCommentToken(firstTokenOfLine)) {
1116
+ const tokenBefore = precedingTokens.get(firstTokenOfLine);
1117
+ const tokenAfter = tokenBefore
1118
+ ? sourceCode.getTokenAfter(tokenBefore)
1119
+ : sourceCode.ast.tokens[0];
1120
+ const mayAlignWithBefore = tokenBefore &&
1121
+ !hasBlankLinesBetween(tokenBefore, firstTokenOfLine);
1122
+ const mayAlignWithAfter = tokenAfter && !hasBlankLinesBetween(firstTokenOfLine, tokenAfter);
1123
+ // If a comment matches the expected indentation of the token immediately before or after, don't report it.
1124
+ if ((mayAlignWithBefore &&
1125
+ validateTokenIndent(firstTokenOfLine, offsets.getDesiredIndent(tokenBefore))) ||
1126
+ (mayAlignWithAfter &&
1127
+ validateTokenIndent(firstTokenOfLine, offsets.getDesiredIndent(tokenAfter)))) {
1128
+ return;
1129
+ }
1130
+ }
1131
+ // Otherwise, report the token/comment.
1132
+ report(firstTokenOfLine, offsets.getDesiredIndent(firstTokenOfLine));
1133
+ });
1134
+ },
1135
+ });
1136
+ },
1137
+ });
1138
+ //# sourceMappingURL=index.js.map