linter-bundle 6.2.2 → 7.0.0

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 (144) hide show
  1. package/.linter-bundle.js +27 -17
  2. package/.linter-bundle.schema.json +45 -0
  3. package/CHANGELOG.md +149 -4
  4. package/README.md +60 -63
  5. package/eslint/gatsby.mjs +95 -0
  6. package/eslint/index.mjs +1127 -0
  7. package/eslint/javascript-lazy.mjs +24 -0
  8. package/eslint/javascript.mjs +126 -0
  9. package/eslint/jest.mjs +172 -0
  10. package/eslint/jsdoc.mjs +103 -0
  11. package/eslint/react.mjs +232 -0
  12. package/eslint/rules/no-unnecessary-typeof.md +1 -1
  13. package/eslint/rules/{no-unnecessary-typeof.js → no-unnecessary-typeof.mjs} +9 -11
  14. package/eslint/rules/restricted-filenames.md +4 -4
  15. package/eslint/rules/{restricted-filenames.js → restricted-filenames.mjs} +7 -6
  16. package/eslint/storybook.mjs +42 -0
  17. package/eslint/type-declarations.mjs +49 -0
  18. package/eslint/{overrides-worker.cjs → worker.mjs} +12 -14
  19. package/eslint.mjs +5 -0
  20. package/files/index.js +3 -3
  21. package/helper/{ensure-type.cjs → ensure-type.mjs} +1 -5
  22. package/helper/get-outdated-dependencies.js +4 -4
  23. package/helper/get-outdated-overrides.js +2 -2
  24. package/helper/get-stylelint-path.js +4 -3
  25. package/helper/is-npm-or-yarn.js +2 -2
  26. package/helper/linter-bundle-config.d.ts +24 -0
  27. package/helper/linter-bundle-config.js +9 -14
  28. package/helper/run-process.js +1 -1
  29. package/lint.js +21 -16
  30. package/package.json +31 -29
  31. package/stylelint/index.mjs +1111 -0
  32. package/stylelint/plugins/stylelint-15.11.0-stylistic/html-tags/{index.cjs → index.mjs} +1 -1
  33. package/stylelint/plugins/stylelint-15.11.0-stylistic/reference/{selectors.cjs → selectors.mjs} +15 -31
  34. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/at-rule-name-case/{index.cjs → index.mjs} +6 -12
  35. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/at-rule-name-space-after/{index.cjs → index.mjs} +11 -13
  36. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/at-rule-semicolon-newline-after/{index.cjs → index.mjs} +18 -22
  37. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/at-rule-semicolon-space-before/{index.cjs → index.mjs} +10 -9
  38. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/{atRuleNameSpaceChecker.cjs → atRuleNameSpaceChecker.mjs} +4 -3
  39. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-closing-brace-empty-line-before/{index.cjs → index.mjs} +16 -30
  40. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-closing-brace-newline-after/{index.cjs → index.mjs} +13 -35
  41. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-closing-brace-newline-before/{index.cjs → index.mjs} +11 -40
  42. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-closing-brace-space-before/{index.cjs → index.mjs} +10 -27
  43. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-opening-brace-newline-after/{index.cjs → index.mjs} +14 -65
  44. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-opening-brace-space-after/{index.cjs → index.mjs} +13 -30
  45. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/block-opening-brace-space-before/{index.cjs → index.mjs} +14 -27
  46. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/color-hex-case/{index.cjs → index.mjs} +10 -16
  47. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-bang-space-after/index.mjs +93 -0
  48. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-bang-space-before/{index.cjs → index.mjs} +11 -12
  49. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-semicolon-newline-after/{index.cjs → index.mjs} +11 -29
  50. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-semicolon-newline-before/{index.cjs → index.mjs} +9 -8
  51. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-semicolon-space-after/{index.cjs → index.mjs} +10 -23
  52. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-semicolon-space-before/{index.cjs → index.mjs} +11 -36
  53. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-block-trailing-semicolon/{index.cjs → index.mjs} +9 -27
  54. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-colon-newline-after/{index.cjs → index.mjs} +9 -25
  55. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-colon-space-after/{index.cjs → index.mjs} +8 -9
  56. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-colon-space-before/{index.cjs → index.mjs} +8 -9
  57. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/{declarationBangSpaceChecker.cjs → declarationBangSpaceChecker.mjs} +5 -4
  58. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/{declarationColonSpaceChecker.cjs → declarationColonSpaceChecker.mjs} +5 -4
  59. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/{findMediaOperator.cjs → findMediaOperator.mjs} +2 -2
  60. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-comma-newline-after/{index.cjs → index.mjs} +8 -9
  61. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-comma-newline-before/{index.cjs → index.mjs} +8 -9
  62. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-comma-space-after/{index.cjs → index.mjs} +8 -9
  63. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-comma-space-before/{index.cjs → index.mjs} +8 -9
  64. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-max-empty-lines/{index.cjs → index.mjs} +19 -39
  65. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-parentheses-newline-inside/{index.cjs → index.mjs} +19 -54
  66. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-parentheses-space-inside/{index.cjs → index.mjs} +21 -68
  67. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/function-whitespace-after/{index.cjs → index.mjs} +16 -31
  68. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/{functionCommaSpaceChecker.cjs → functionCommaSpaceChecker.mjs} +8 -7
  69. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/{functionCommaSpaceFix.cjs → functionCommaSpaceFix.mjs} +1 -1
  70. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/indentation/{index.cjs → index.mjs} +39 -64
  71. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/linebreaks/{index.cjs → index.mjs} +15 -44
  72. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/max-empty-lines/{index.cjs → index.mjs} +10 -49
  73. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/max-line-length/{index.cjs → index.mjs} +10 -9
  74. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-colon-space-after/{index.cjs → index.mjs} +8 -9
  75. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-colon-space-before/{index.cjs → index.mjs} +8 -9
  76. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-name-case/{index.cjs → index.mjs} +9 -16
  77. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-parentheses-space-inside/{index.cjs → index.mjs} +8 -21
  78. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-range-operator-space-after/{index.cjs → index.mjs} +10 -11
  79. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-feature-range-operator-space-before/{index.cjs → index.mjs} +10 -11
  80. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-query-list-comma-newline-after/{index.cjs → index.mjs} +8 -9
  81. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-query-list-comma-newline-before/{index.cjs → index.mjs} +6 -6
  82. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-query-list-comma-space-after/{index.cjs → index.mjs} +8 -9
  83. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/media-query-list-comma-space-before/{index.cjs → index.mjs} +8 -9
  84. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/{mediaFeatureColonSpaceChecker.cjs → mediaFeatureColonSpaceChecker.mjs} +5 -4
  85. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/{mediaQueryListCommaWhitespaceChecker.cjs → mediaQueryListCommaWhitespaceChecker.mjs} +6 -5
  86. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/no-empty-first-line/{index.cjs → index.mjs} +6 -20
  87. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/no-eol-whitespace/{index.cjs → index.mjs} +13 -16
  88. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/no-extra-semicolons/{index.cjs → index.mjs} +10 -33
  89. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/no-missing-end-of-source-newline/{index.cjs → index.mjs} +7 -13
  90. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/number-leading-zero/{index.cjs → index.mjs} +13 -31
  91. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/number-no-trailing-zeros/{index.cjs → index.mjs} +9 -18
  92. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/property-case/{index.cjs → index.mjs} +10 -16
  93. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-attribute-brackets-space-inside/{index.cjs → index.mjs} +9 -36
  94. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-attribute-operator-space-after/{index.cjs → index.mjs} +7 -8
  95. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-attribute-operator-space-before/{index.cjs → index.mjs} +7 -8
  96. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-combinator-space-after/{index.cjs → index.mjs} +7 -8
  97. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-combinator-space-before/{index.cjs → index.mjs} +7 -8
  98. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-descendant-combinator-no-non-space/{index.cjs → index.mjs} +9 -20
  99. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-list-comma-newline-after/{index.cjs → index.mjs} +9 -14
  100. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-list-comma-newline-before/{index.cjs → index.mjs} +7 -8
  101. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-list-comma-space-after/{index.cjs → index.mjs} +7 -8
  102. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-list-comma-space-before/{index.cjs → index.mjs} +7 -8
  103. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-max-empty-lines/{index.cjs → index.mjs} +10 -21
  104. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-pseudo-class-case/{index.cjs → index.mjs} +10 -24
  105. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-pseudo-class-parentheses-space-inside/{index.cjs → index.mjs} +12 -35
  106. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/selector-pseudo-element-case/{index.cjs → index.mjs} +10 -15
  107. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/{selectorAttributeOperatorSpaceChecker.cjs → selectorAttributeOperatorSpaceChecker.mjs} +6 -5
  108. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/{selectorCombinatorSpaceChecker.cjs → selectorCombinatorSpaceChecker.mjs} +12 -11
  109. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/{selectorListCommaWhitespaceChecker.cjs → selectorListCommaWhitespaceChecker.mjs} +5 -4
  110. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/string-quotes/{index.cjs → index.mjs} +43 -65
  111. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/unicode-bom/{index.cjs → index.mjs} +5 -5
  112. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/unit-case/{index.cjs → index.mjs} +17 -34
  113. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-comma-newline-after/{index.cjs → index.mjs} +11 -12
  114. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-comma-newline-before/{index.cjs → index.mjs} +6 -6
  115. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-comma-space-after/{index.cjs → index.mjs} +10 -11
  116. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-comma-space-before/{index.cjs → index.mjs} +10 -11
  117. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/value-list-max-empty-lines/{index.cjs → index.mjs} +12 -18
  118. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/{valueListCommaWhitespaceChecker.cjs → valueListCommaWhitespaceChecker.mjs} +6 -5
  119. package/stylelint/plugins/stylelint-15.11.0-stylistic/style-search/{index.cjs → index.mjs} +1 -1
  120. package/stylelint/plugins/stylelint-15.11.0-stylistic/utils/{addEmptyLineAfter.cjs → addEmptyLineAfter.mjs} +1 -1
  121. package/stylelint/plugins/stylelint-15.11.0-stylistic/utils/{hasEmptyBlock.cjs → hasEmptyBlock.mjs} +2 -2
  122. package/stylelint/plugins/stylelint-15.11.0-stylistic/utils/{nextNonCommentNode.cjs → nextNonCommentNode.mjs} +1 -1
  123. package/stylelint/plugins/stylelint-15.11.0-stylistic/utils/{removeEmptyLinesAfter.cjs → removeEmptyLinesAfter.mjs} +1 -1
  124. package/stylelint/plugins/stylelint-15.11.0-stylistic/utils/transformSelector.mjs +19 -0
  125. package/stylelint/plugins/stylelint-15.11.0-stylistic/utils/{whitespaceChecker.cjs → whitespaceChecker.mjs} +5 -5
  126. package/stylelint/plugins/stylelint-selector-no-empty.js +2 -0
  127. package/stylelint/plugins/stylelint-selector-tag-no-without-class.js +2 -2
  128. package/stylelint.mjs +6 -0
  129. package/TODO.md +0 -58
  130. package/eslint/index.cjs +0 -1065
  131. package/eslint/overrides-gatsby.cjs +0 -108
  132. package/eslint/overrides-javascript-lazy.cjs +0 -27
  133. package/eslint/overrides-javascript.cjs +0 -121
  134. package/eslint/overrides-jest.cjs +0 -144
  135. package/eslint/overrides-jsdoc.cjs +0 -94
  136. package/eslint/overrides-react.cjs +0 -220
  137. package/eslint/overrides-storybook.cjs +0 -44
  138. package/eslint/overrides-type-declarations.cjs +0 -51
  139. package/eslint/rules/no-global-undefined-check.js +0 -85
  140. package/eslint/rules/no-global-undefined-check.md +0 -34
  141. package/eslint.cjs +0 -5
  142. package/stylelint/index.cjs +0 -1104
  143. package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declaration-bang-space-after/index.cjs +0 -95
  144. package/stylelint.cjs +0 -5
@@ -1,12 +1,12 @@
1
1
  /* eslint-disable -- We want to keep as much of the original code as possible */
2
2
  // @ts-nocheck
3
3
 
4
- const stylelint = require('stylelint');
5
- const ruleMessages = require('stylelint/lib/utils/ruleMessages.cjs');
6
- const validateOptions = require('stylelint/lib/utils/validateOptions.cjs');
4
+ import stylelint from 'stylelint';
5
+ import ruleMessages from 'stylelint/lib/utils/ruleMessages.mjs';
6
+ import validateOptions from 'stylelint/lib/utils/validateOptions.mjs';
7
7
 
8
- const whitespaceChecker = require('../../utils/whitespaceChecker.cjs');
9
- const selectorCombinatorSpaceChecker = require('../selectorCombinatorSpaceChecker.cjs');
8
+ import whitespaceChecker from '../../utils/whitespaceChecker.mjs';
9
+ import selectorCombinatorSpaceChecker from '../selectorCombinatorSpaceChecker.mjs';
10
10
 
11
11
  const ruleName = 'plugin/selector-combinator-space-after';
12
12
 
@@ -40,7 +40,7 @@ const rule = (primary, _secondaryOptions, context) => {
40
40
  locationChecker: checker.after,
41
41
  locationType: 'after',
42
42
  checkedRuleName: ruleName,
43
- fix: context.fix ?
43
+ fix:
44
44
  (combinator) => {
45
45
  if (primary === 'always') {
46
46
  combinator.spaces.after = ' ';
@@ -56,7 +56,6 @@ const rule = (primary, _secondaryOptions, context) => {
56
56
 
57
57
  return false;
58
58
  }
59
- : null
60
59
  });
61
60
  };
62
61
  };
@@ -64,4 +63,4 @@ const rule = (primary, _secondaryOptions, context) => {
64
63
  rule.ruleName = ruleName;
65
64
  rule.messages = messages;
66
65
  rule.meta = meta;
67
- module.exports = stylelint.createPlugin(ruleName, rule);
66
+ export default stylelint.createPlugin(ruleName, rule);
@@ -1,12 +1,12 @@
1
1
  /* eslint-disable -- We want to keep as much of the original code as possible */
2
2
  // @ts-nocheck
3
3
 
4
- const stylelint = require('stylelint');
5
- const ruleMessages = require('stylelint/lib/utils/ruleMessages.cjs');
6
- const validateOptions = require('stylelint/lib/utils/validateOptions.cjs');
4
+ import stylelint from 'stylelint';
5
+ import ruleMessages from 'stylelint/lib/utils/ruleMessages.mjs';
6
+ import validateOptions from 'stylelint/lib/utils/validateOptions.mjs';
7
7
 
8
- const whitespaceChecker = require('../../utils/whitespaceChecker.cjs');
9
- const selectorCombinatorSpaceChecker = require('../selectorCombinatorSpaceChecker.cjs');
8
+ import whitespaceChecker from '../../utils/whitespaceChecker.mjs';
9
+ import selectorCombinatorSpaceChecker from '../selectorCombinatorSpaceChecker.mjs';
10
10
 
11
11
  const ruleName = 'plugin/selector-combinator-space-before';
12
12
 
@@ -40,7 +40,7 @@ const rule = (primary, _secondaryOptions, context) => {
40
40
  locationChecker: checker.before,
41
41
  locationType: 'before',
42
42
  checkedRuleName: ruleName,
43
- fix: context.fix ?
43
+ fix:
44
44
  (combinator) => {
45
45
  if (primary === 'always') {
46
46
  combinator.spaces.before = ' ';
@@ -56,7 +56,6 @@ const rule = (primary, _secondaryOptions, context) => {
56
56
 
57
57
  return false;
58
58
  }
59
- : null
60
59
  });
61
60
  };
62
61
  };
@@ -64,4 +63,4 @@ const rule = (primary, _secondaryOptions, context) => {
64
63
  rule.ruleName = ruleName;
65
64
  rule.messages = messages;
66
65
  rule.meta = meta;
67
- module.exports = stylelint.createPlugin(ruleName, rule);
66
+ export default stylelint.createPlugin(ruleName, rule);
@@ -1,12 +1,12 @@
1
1
  /* eslint-disable -- We want to keep as much of the original code as possible */
2
2
  // @ts-nocheck
3
3
 
4
- const stylelint = require('stylelint');
5
- const isStandardSyntaxRule = require('stylelint/lib/utils/isStandardSyntaxRule.cjs');
6
- const parseSelector = require('stylelint/lib/utils/parseSelector.cjs');
7
- const report = require('stylelint/lib/utils/report.cjs');
8
- const ruleMessages = require('stylelint/lib/utils/ruleMessages.cjs');
9
- const validateOptions = require('stylelint/lib/utils/validateOptions.cjs');
4
+ import stylelint from 'stylelint';
5
+ import isStandardSyntaxRule from 'stylelint/lib/utils/isStandardSyntaxRule.mjs';
6
+ import parseSelector from 'stylelint/lib/utils/parseSelector.mjs';
7
+ import report from 'stylelint/lib/utils/report.mjs';
8
+ import ruleMessages from 'stylelint/lib/utils/ruleMessages.mjs';
9
+ import validateOptions from 'stylelint/lib/utils/validateOptions.mjs';
10
10
 
11
11
  const ruleName = 'plugin/selector-descendant-combinator-no-non-space';
12
12
 
@@ -55,24 +55,13 @@ const rule = (primary, _secondaryOptions, context) => (root, result) => {
55
55
  value.includes('\n') ||
56
56
  value.includes('\r')
57
57
  ) {
58
- if (context.fix && (/^\s+$/).test(value)) {
59
- hasFixed = true;
60
-
61
- if (!combinatorNode.raws) { combinatorNode.raws = {}; }
62
-
63
- combinatorNode.raws.value = ' ';
64
- combinatorNode.rawSpaceBefore = combinatorNode.rawSpaceBefore.replace(/^\s+/, '');
65
- combinatorNode.rawSpaceAfter = combinatorNode.rawSpaceAfter.replace(/\s+$/, '');
66
-
67
- return;
68
- }
69
-
70
58
  report({
71
59
  result,
72
60
  ruleName,
73
61
  message: messages.rejected(value),
74
62
  node: ruleNode,
75
- index: combinatorNode.sourceIndex
63
+ index: combinatorNode.sourceIndex,
64
+ endIndex: combinatorNode.sourceIndex
76
65
  });
77
66
  }
78
67
  });
@@ -92,4 +81,4 @@ const rule = (primary, _secondaryOptions, context) => (root, result) => {
92
81
  rule.ruleName = ruleName;
93
82
  rule.messages = messages;
94
83
  rule.meta = meta;
95
- module.exports = stylelint.createPlugin(ruleName, rule);
84
+ export default stylelint.createPlugin(ruleName, rule);
@@ -1,14 +1,14 @@
1
1
  /* eslint-disable -- We want to keep as much of the original code as possible */
2
2
  // @ts-nocheck
3
3
 
4
- const stylelint = require('stylelint');
5
- const isStandardSyntaxRule = require('stylelint/lib/utils/isStandardSyntaxRule.cjs');
6
- const report = require('stylelint/lib/utils/report.cjs');
7
- const ruleMessages = require('stylelint/lib/utils/ruleMessages.cjs');
8
- const validateOptions = require('stylelint/lib/utils/validateOptions.cjs');
4
+ import stylelint from 'stylelint';
5
+ import isStandardSyntaxRule from 'stylelint/lib/utils/isStandardSyntaxRule.mjs';
6
+ import report from 'stylelint/lib/utils/report.mjs';
7
+ import ruleMessages from 'stylelint/lib/utils/ruleMessages.mjs';
8
+ import validateOptions from 'stylelint/lib/utils/validateOptions.mjs';
9
9
 
10
- const styleSearch = require('../../style-search/index.cjs');
11
- const whitespaceChecker = require('../../utils/whitespaceChecker.cjs');
10
+ import styleSearch from '../../style-search/index.mjs';
11
+ import whitespaceChecker from '../../utils/whitespaceChecker.mjs';
12
12
 
13
13
  const ruleName = 'plugin/selector-list-comma-newline-after';
14
14
 
@@ -74,16 +74,11 @@ const rule = (primary, _secondaryOptions, context) => {
74
74
  source: selector,
75
75
  index: indextoCheckAfter,
76
76
  err: (m) => {
77
- if (context.fix) {
78
- fixIndices.push(indextoCheckAfter + 1);
79
-
80
- return;
81
- }
82
-
83
77
  report({
84
78
  message: m,
85
79
  node: ruleNode,
86
80
  index: match.startIndex,
81
+ endIndex: match.startIndex,
87
82
  result,
88
83
  ruleName
89
84
  });
@@ -123,4 +118,4 @@ const rule = (primary, _secondaryOptions, context) => {
123
118
  rule.ruleName = ruleName;
124
119
  rule.messages = messages;
125
120
  rule.meta = meta;
126
- module.exports = stylelint.createPlugin(ruleName, rule);
121
+ export default stylelint.createPlugin(ruleName, rule);
@@ -1,12 +1,12 @@
1
1
  /* eslint-disable -- We want to keep as much of the original code as possible */
2
2
  // @ts-nocheck
3
3
 
4
- const stylelint = require('stylelint');
5
- const ruleMessages = require('stylelint/lib/utils/ruleMessages.cjs');
6
- const validateOptions = require('stylelint/lib/utils/validateOptions.cjs');
4
+ import stylelint from 'stylelint';
5
+ import ruleMessages from 'stylelint/lib/utils/ruleMessages.mjs';
6
+ import validateOptions from 'stylelint/lib/utils/validateOptions.mjs';
7
7
 
8
- const whitespaceChecker = require('../../utils/whitespaceChecker.cjs');
9
- const selectorListCommaWhitespaceChecker = require('../selectorListCommaWhitespaceChecker.cjs');
8
+ import whitespaceChecker from '../../utils/whitespaceChecker.mjs';
9
+ import selectorListCommaWhitespaceChecker from '../selectorListCommaWhitespaceChecker.mjs';
10
10
 
11
11
  const ruleName = 'plugin/selector-list-comma-newline-before';
12
12
 
@@ -43,7 +43,7 @@ const rule = (primary, _secondaryOptions, context) => {
43
43
  result,
44
44
  locationChecker: checker.beforeAllowingIndentation,
45
45
  checkedRuleName: ruleName,
46
- fix: context.fix ?
46
+ fix:
47
47
  (ruleNode, index) => {
48
48
  fixData ||= new Map();
49
49
  const commaIndices = fixData.get(ruleNode) || [];
@@ -53,7 +53,6 @@ const rule = (primary, _secondaryOptions, context) => {
53
53
 
54
54
  return true;
55
55
  }
56
- : null
57
56
  });
58
57
 
59
58
  if (fixData) {
@@ -98,4 +97,4 @@ const rule = (primary, _secondaryOptions, context) => {
98
97
  rule.ruleName = ruleName;
99
98
  rule.messages = messages;
100
99
  rule.meta = meta;
101
- module.exports = stylelint.createPlugin(ruleName, rule);
100
+ export default stylelint.createPlugin(ruleName, rule);
@@ -1,12 +1,12 @@
1
1
  /* eslint-disable -- We want to keep as much of the original code as possible */
2
2
  // @ts-nocheck
3
3
 
4
- const stylelint = require('stylelint');
5
- const ruleMessages = require('stylelint/lib/utils/ruleMessages.cjs');
6
- const validateOptions = require('stylelint/lib/utils/validateOptions.cjs');
4
+ import stylelint from 'stylelint';
5
+ import ruleMessages from 'stylelint/lib/utils/ruleMessages.mjs';
6
+ import validateOptions from 'stylelint/lib/utils/validateOptions.mjs';
7
7
 
8
- const whitespaceChecker = require('../../utils/whitespaceChecker.cjs');
9
- const selectorListCommaWhitespaceChecker = require('../selectorListCommaWhitespaceChecker.cjs');
8
+ import whitespaceChecker from '../../utils/whitespaceChecker.mjs';
9
+ import selectorListCommaWhitespaceChecker from '../selectorListCommaWhitespaceChecker.mjs';
10
10
 
11
11
  const ruleName = 'plugin/selector-list-comma-space-after';
12
12
 
@@ -44,7 +44,7 @@ const rule = (primary, _secondaryOptions, context) => {
44
44
  result,
45
45
  locationChecker: checker.after,
46
46
  checkedRuleName: ruleName,
47
- fix: context.fix ?
47
+ fix:
48
48
  (ruleNode, index) => {
49
49
  fixData ||= new Map();
50
50
  const commaIndices = fixData.get(ruleNode) || [];
@@ -54,7 +54,6 @@ const rule = (primary, _secondaryOptions, context) => {
54
54
 
55
55
  return true;
56
56
  }
57
- : null
58
57
  });
59
58
 
60
59
  if (fixData) {
@@ -89,4 +88,4 @@ const rule = (primary, _secondaryOptions, context) => {
89
88
  rule.ruleName = ruleName;
90
89
  rule.messages = messages;
91
90
  rule.meta = meta;
92
- module.exports = stylelint.createPlugin(ruleName, rule);
91
+ export default stylelint.createPlugin(ruleName, rule);
@@ -1,12 +1,12 @@
1
1
  /* eslint-disable -- We want to keep as much of the original code as possible */
2
2
  // @ts-nocheck
3
3
 
4
- const stylelint = require('stylelint');
5
- const ruleMessages = require('stylelint/lib/utils/ruleMessages.cjs');
6
- const validateOptions = require('stylelint/lib/utils/validateOptions.cjs');
4
+ import stylelint from 'stylelint';
5
+ import ruleMessages from 'stylelint/lib/utils/ruleMessages.mjs';
6
+ import validateOptions from 'stylelint/lib/utils/validateOptions.mjs';
7
7
 
8
- const whitespaceChecker = require('../../utils/whitespaceChecker.cjs');
9
- const selectorListCommaWhitespaceChecker = require('../selectorListCommaWhitespaceChecker.cjs');
8
+ import whitespaceChecker from '../../utils/whitespaceChecker.mjs';
9
+ import selectorListCommaWhitespaceChecker from '../selectorListCommaWhitespaceChecker.mjs';
10
10
 
11
11
  const ruleName = 'plugin/selector-list-comma-space-before';
12
12
 
@@ -44,7 +44,7 @@ const rule = (primary, _secondaryOptions, context) => {
44
44
  result,
45
45
  locationChecker: checker.before,
46
46
  checkedRuleName: ruleName,
47
- fix: context.fix ?
47
+ fix:
48
48
  (ruleNode, index) => {
49
49
  fixData ||= new Map();
50
50
  const commaIndices = fixData.get(ruleNode) || [];
@@ -54,7 +54,6 @@ const rule = (primary, _secondaryOptions, context) => {
54
54
 
55
55
  return true;
56
56
  }
57
- : null
58
57
  });
59
58
 
60
59
  if (fixData) {
@@ -89,4 +88,4 @@ const rule = (primary, _secondaryOptions, context) => {
89
88
  rule.ruleName = ruleName;
90
89
  rule.messages = messages;
91
90
  rule.meta = meta;
92
- module.exports = stylelint.createPlugin(ruleName, rule);
91
+ export default stylelint.createPlugin(ruleName, rule);
@@ -1,11 +1,11 @@
1
1
  /* eslint-disable -- We want to keep as much of the original code as possible */
2
2
  // @ts-nocheck
3
3
 
4
- const stylelint = require('stylelint');
5
- const report = require('stylelint/lib/utils/report.cjs');
6
- const ruleMessages = require('stylelint/lib/utils/ruleMessages.cjs');
7
- const validateOptions = require('stylelint/lib/utils/validateOptions.cjs');
8
- const { isNumber } = require('stylelint/lib/utils/validateTypes.cjs');
4
+ import stylelint from 'stylelint';
5
+ import report from 'stylelint/lib/utils/report.mjs';
6
+ import ruleMessages from 'stylelint/lib/utils/ruleMessages.mjs';
7
+ import validateOptions from 'stylelint/lib/utils/validateOptions.mjs';
8
+ import{ isNumber } from 'stylelint/lib/utils/validateTypes.mjs';
9
9
 
10
10
  const ruleName = 'plugin/selector-max-empty-lines';
11
11
 
@@ -34,25 +34,13 @@ const rule = (primary, _secondaryOptions, context) => {
34
34
 
35
35
  const violatedCRLFNewLinesRegex = new RegExp(`(?:\r\n){${maxAdjacentNewlines + 1},}`);
36
36
  const violatedLFNewLinesRegex = new RegExp(`\n{${maxAdjacentNewlines + 1},}`);
37
- const allowedLFNewLinesString = context.fix ? '\n'.repeat(maxAdjacentNewlines) : '';
38
- const allowedCRLFNewLinesString = context.fix ? '\r\n'.repeat(maxAdjacentNewlines) : '';
37
+ const allowedLFNewLinesString = '';
38
+ const allowedCRLFNewLinesString = '';
39
39
 
40
40
  root.walkRules((ruleNode) => {
41
41
  const selector = ruleNode.raws.selector ? ruleNode.raws.selector.raw : ruleNode.selector;
42
42
 
43
- if (context.fix) {
44
- const newSelectorString = selector
45
- .replace(new RegExp(violatedLFNewLinesRegex, 'gm'), allowedLFNewLinesString)
46
- .replace(new RegExp(violatedCRLFNewLinesRegex, 'gm'), allowedCRLFNewLinesString);
47
-
48
- if (ruleNode.raws.selector) {
49
- ruleNode.raws.selector.raw = newSelectorString;
50
- }
51
- else {
52
- ruleNode.selector = newSelectorString;
53
- }
54
- }
55
- else if (
43
+ if (
56
44
  violatedLFNewLinesRegex.test(selector) ||
57
45
  violatedCRLFNewLinesRegex.test(selector)
58
46
  ) {
@@ -60,6 +48,7 @@ const rule = (primary, _secondaryOptions, context) => {
60
48
  message: messages.expected(primary),
61
49
  node: ruleNode,
62
50
  index: 0,
51
+ endIndex: 0,
63
52
  result,
64
53
  ruleName
65
54
  });
@@ -71,4 +60,4 @@ const rule = (primary, _secondaryOptions, context) => {
71
60
  rule.ruleName = ruleName;
72
61
  rule.messages = messages;
73
62
  rule.meta = meta;
74
- module.exports = stylelint.createPlugin(ruleName, rule);
63
+ export default stylelint.createPlugin(ruleName, rule);
@@ -1,15 +1,15 @@
1
1
  /* eslint-disable -- We want to keep as much of the original code as possible */
2
2
  // @ts-nocheck
3
3
 
4
- const stylelint = require('stylelint');
5
- const isStandardSyntaxRule = require('stylelint/lib/utils/isStandardSyntaxRule.cjs');
6
- const isStandardSyntaxSelector = require('stylelint/lib/utils/isStandardSyntaxSelector.cjs');
7
- const parseSelector = require('stylelint/lib/utils/parseSelector.cjs');
8
- const report = require('stylelint/lib/utils/report.cjs');
9
- const ruleMessages = require('stylelint/lib/utils/ruleMessages.cjs');
10
- const validateOptions = require('stylelint/lib/utils/validateOptions.cjs');
4
+ import stylelint from 'stylelint';
5
+ import isStandardSyntaxRule from 'stylelint/lib/utils/isStandardSyntaxRule.mjs';
6
+ import isStandardSyntaxSelector from 'stylelint/lib/utils/isStandardSyntaxSelector.mjs';
7
+ import parseSelector from 'stylelint/lib/utils/parseSelector.mjs';
8
+ import report from 'stylelint/lib/utils/report.mjs';
9
+ import ruleMessages from 'stylelint/lib/utils/ruleMessages.mjs';
10
+ import validateOptions from 'stylelint/lib/utils/validateOptions.mjs';
11
11
 
12
- const { levelOneAndTwoPseudoElements } = require('../../reference/selectors.cjs');
12
+ import { levelOneAndTwoPseudoElements } from '../../reference/selectors.mjs';
13
13
 
14
14
  const ruleName = 'plugin/selector-pseudo-class-case';
15
15
 
@@ -70,35 +70,21 @@ const rule = (primary, _secondaryOptions, context) => (root, result) => {
70
70
  return;
71
71
  }
72
72
 
73
- if (context.fix) {
74
- pseudoNode.value = expectedPseudo;
75
-
76
- return;
77
- }
78
-
79
73
  report({
80
74
  message: messages.expected(pseudo, expectedPseudo),
81
75
  node: ruleNode,
82
76
  index: pseudoNode.sourceIndex,
77
+ endIndex: pseudoNode.sourceIndex,
83
78
  ruleName,
84
79
  result
85
80
  });
86
81
  });
87
82
  }
88
83
  );
89
-
90
- if (context.fix && fixedSelector) {
91
- if (ruleNode.raws.selector) {
92
- ruleNode.raws.selector.raw = fixedSelector;
93
- }
94
- else {
95
- ruleNode.selector = fixedSelector;
96
- }
97
- }
98
84
  });
99
85
  };
100
86
 
101
87
  rule.ruleName = ruleName;
102
88
  rule.messages = messages;
103
89
  rule.meta = meta;
104
- module.exports = stylelint.createPlugin(ruleName, rule);
90
+ export default stylelint.createPlugin(ruleName, rule);
@@ -1,12 +1,12 @@
1
1
  /* eslint-disable -- We want to keep as much of the original code as possible */
2
2
  // @ts-nocheck
3
3
 
4
- const stylelint = require('stylelint');
5
- const isStandardSyntaxRule = require('stylelint/lib/utils/isStandardSyntaxRule.cjs');
6
- const parseSelector = require('stylelint/lib/utils/parseSelector.cjs');
7
- const report = require('stylelint/lib/utils/report.cjs');
8
- const ruleMessages = require('stylelint/lib/utils/ruleMessages.cjs');
9
- const validateOptions = require('stylelint/lib/utils/validateOptions.cjs');
4
+ import stylelint from 'stylelint';
5
+ import isStandardSyntaxRule from 'stylelint/lib/utils/isStandardSyntaxRule.mjs';
6
+ import parseSelector from 'stylelint/lib/utils/parseSelector.mjs';
7
+ import report from 'stylelint/lib/utils/report.mjs';
8
+ import ruleMessages from 'stylelint/lib/utils/ruleMessages.mjs';
9
+ import validateOptions from 'stylelint/lib/utils/validateOptions.mjs';
10
10
 
11
11
  const ruleName = 'plugin/selector-pseudo-class-parentheses-space-inside';
12
12
 
@@ -55,46 +55,22 @@ const rule = (primary, _secondaryOptions, context) => (root, result) => {
55
55
  const openIndex = pseudoNode.sourceIndex + pseudoNode.value.length + 1;
56
56
 
57
57
  if (nextCharIsSpace && primary === 'never') {
58
- if (context.fix) {
59
- hasFixed = true;
60
- setFirstNodeSpaceBefore(pseudoNode, '');
61
- }
62
- else {
63
- complain(messages.rejectedOpening, openIndex);
64
- }
58
+ complain(messages.rejectedOpening, openIndex);
65
59
  }
66
60
 
67
61
  if (!nextCharIsSpace && primary === 'always') {
68
- if (context.fix) {
69
- hasFixed = true;
70
- setFirstNodeSpaceBefore(pseudoNode, ' ');
71
- }
72
- else {
73
- complain(messages.expectedOpening, openIndex);
74
- }
62
+ complain(messages.expectedOpening, openIndex);
75
63
  }
76
64
 
77
65
  const previousCharIsSpace = paramString.endsWith(' ');
78
66
  const closeIndex = openIndex + paramString.length - 1;
79
67
 
80
68
  if (previousCharIsSpace && primary === 'never') {
81
- if (context.fix) {
82
- hasFixed = true;
83
- setLastNodeSpaceAfter(pseudoNode, '');
84
- }
85
- else {
86
- complain(messages.rejectedClosing, closeIndex);
87
- }
69
+ complain(messages.rejectedClosing, closeIndex);
88
70
  }
89
71
 
90
72
  if (!previousCharIsSpace && primary === 'always') {
91
- if (context.fix) {
92
- hasFixed = true;
93
- setLastNodeSpaceAfter(pseudoNode, ' ');
94
- }
95
- else {
96
- complain(messages.expectedClosing, closeIndex);
97
- }
73
+ complain(messages.expectedClosing, closeIndex);
98
74
  }
99
75
  });
100
76
  });
@@ -116,6 +92,7 @@ const rule = (primary, _secondaryOptions, context) => (root, result) => {
116
92
  report({
117
93
  message,
118
94
  index,
95
+ endIndex: index,
119
96
  result,
120
97
  ruleName,
121
98
  node: ruleNode
@@ -159,4 +136,4 @@ function setLastNodeSpaceAfter (node, value) {
159
136
  rule.ruleName = ruleName;
160
137
  rule.messages = messages;
161
138
  rule.meta = meta;
162
- module.exports = stylelint.createPlugin(ruleName, rule);
139
+ export default stylelint.createPlugin(ruleName, rule);
@@ -1,15 +1,15 @@
1
1
  /* eslint-disable -- We want to keep as much of the original code as possible */
2
2
  // @ts-nocheck
3
3
 
4
- const stylelint = require('stylelint');
5
- const isStandardSyntaxRule = require('stylelint/lib/utils/isStandardSyntaxRule.cjs');
6
- const isStandardSyntaxSelector = require('stylelint/lib/utils/isStandardSyntaxSelector.cjs');
7
- const report = require('stylelint/lib/utils/report.cjs');
8
- const ruleMessages = require('stylelint/lib/utils/ruleMessages.cjs');
9
- const transformSelector = require('stylelint/lib/utils/transformSelector.cjs');
10
- const validateOptions = require('stylelint/lib/utils/validateOptions.cjs');
4
+ import stylelint from 'stylelint';
5
+ import isStandardSyntaxRule from 'stylelint/lib/utils/isStandardSyntaxRule.mjs';
6
+ import isStandardSyntaxSelector from 'stylelint/lib/utils/isStandardSyntaxSelector.mjs';
7
+ import report from 'stylelint/lib/utils/report.mjs';
8
+ import ruleMessages from 'stylelint/lib/utils/ruleMessages.mjs';
9
+ import transformSelector from '../../utils/transformSelector.mjs';
10
+ import validateOptions from 'stylelint/lib/utils/validateOptions.mjs';
11
11
 
12
- const { levelOneAndTwoPseudoElements } = require('../../reference/selectors.cjs');
12
+ import { levelOneAndTwoPseudoElements } from '../../reference/selectors.mjs';
13
13
 
14
14
  const ruleName = 'plugin/selector-pseudo-element-case';
15
15
 
@@ -66,16 +66,11 @@ const rule = (primary, _secondaryOptions, context) => (root, result) => {
66
66
  return;
67
67
  }
68
68
 
69
- if (context.fix) {
70
- pseudoNode.value = expectedPseudoElement;
71
-
72
- return;
73
- }
74
-
75
69
  report({
76
70
  message: messages.expected(pseudoElement, expectedPseudoElement),
77
71
  node: ruleNode,
78
72
  index: pseudoNode.sourceIndex,
73
+ endIndex: pseudoNode.sourceIndex,
79
74
  ruleName,
80
75
  result
81
76
  });
@@ -87,4 +82,4 @@ const rule = (primary, _secondaryOptions, context) => (root, result) => {
87
82
  rule.ruleName = ruleName;
88
83
  rule.messages = messages;
89
84
  rule.meta = meta;
90
- module.exports = stylelint.createPlugin(ruleName, rule);
85
+ export default stylelint.createPlugin(ruleName, rule);
@@ -1,11 +1,11 @@
1
1
  /* eslint-disable -- We want to keep as much of the original code as possible */
2
2
  // @ts-nocheck
3
3
 
4
- const isStandardSyntaxRule = require('stylelint/lib/utils/isStandardSyntaxRule.cjs');
5
- const parseSelector = require('stylelint/lib/utils/parseSelector.cjs');
6
- const report = require('stylelint/lib/utils/report.cjs');
4
+ import isStandardSyntaxRule from 'stylelint/lib/utils/isStandardSyntaxRule.mjs';
5
+ import parseSelector from 'stylelint/lib/utils/parseSelector.mjs';
6
+ import report from 'stylelint/lib/utils/report.mjs';
7
7
 
8
- const styleSearch = require('../style-search/index.cjs');
8
+ import styleSearch from '../style-search/index.mjs';
9
9
 
10
10
  /**
11
11
  * @param {{
@@ -18,7 +18,7 @@ const styleSearch = require('../style-search/index.cjs');
18
18
  * }} options
19
19
  * @returns {void}
20
20
  */
21
- module.exports = function selectorAttributeOperatorSpaceChecker (options) {
21
+ export default function selectorAttributeOperatorSpaceChecker (options) {
22
22
  options.root.walkRules((rule) => {
23
23
  if (!isStandardSyntaxRule(rule)) {
24
24
  return;
@@ -85,6 +85,7 @@ module.exports = function selectorAttributeOperatorSpaceChecker (options) {
85
85
  ),
86
86
  node,
87
87
  index: attributeNode.sourceIndex + index,
88
+ endIndex: attributeNode.sourceIndex + index,
88
89
  result: options.result,
89
90
  ruleName: options.checkedRuleName
90
91
  });
@@ -1,10 +1,10 @@
1
1
  /* eslint-disable -- We want to keep as much of the original code as possible */
2
2
  // @ts-nocheck
3
3
 
4
- const isStandardSyntaxCombinator = require('stylelint/lib/utils/isStandardSyntaxCombinator.cjs');
5
- const isStandardSyntaxRule = require('stylelint/lib/utils/isStandardSyntaxRule.cjs');
6
- const parseSelector = require('stylelint/lib/utils/parseSelector.cjs');
7
- const report = require('stylelint/lib/utils/report.cjs');
4
+ import isStandardSyntaxCombinator from 'stylelint/lib/utils/isStandardSyntaxCombinator.mjs';
5
+ import isStandardSyntaxRule from 'stylelint/lib/utils/isStandardSyntaxRule.mjs';
6
+ import parseSelector from 'stylelint/lib/utils/parseSelector.mjs';
7
+ import report from 'stylelint/lib/utils/report.mjs';
8
8
 
9
9
  /**
10
10
  * @typedef {(args: { source: string, index: number, errTarget: string, err: (message: string) => void }) => void} LocationChecker
@@ -15,17 +15,17 @@ const report = require('stylelint/lib/utils/report.cjs');
15
15
  * locationType: 'before' | 'after',
16
16
  * checkedRuleName: string,
17
17
  * fix: ((combinator: import('postcss-selector-parser').Combinator) => boolean) | null,
18
- * @param options-
19
- * @param options-
20
- * @param options-
21
- * @param options-
22
- * @param options-
23
- * @param options-
18
+ * @param options-
19
+ * @param options-
20
+ * @param options-
21
+ * @param options-
22
+ * @param options-
23
+ * @param options-
24
24
  * @param options
25
25
  * }} opts
26
26
  * @returns {void}
27
27
  */
28
- module.exports = function selectorCombinatorSpaceChecker (options) {
28
+ export default function selectorCombinatorSpaceChecker (options) {
29
29
  let hasFixed;
30
30
 
31
31
  options.root.walkRules((rule) => {
@@ -104,6 +104,7 @@ module.exports = function selectorCombinatorSpaceChecker (options) {
104
104
  message,
105
105
  node,
106
106
  index: sourceIndex,
107
+ endIndex: sourceIndex,
107
108
  result: options.result,
108
109
  ruleName: options.checkedRuleName
109
110
  });