eslint-config-airbnb-extended 2.3.2 → 3.0.0-beta-2

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 (216) hide show
  1. package/README.md +3 -3
  2. package/dist/_virtual/rolldown_runtime.cjs +1 -0
  3. package/dist/_virtual/rolldown_runtime.js +1 -0
  4. package/dist/configs/base/config.cjs +1 -0
  5. package/dist/configs/base/config.js +1 -26
  6. package/dist/configs/base/configExtended.cjs +1 -0
  7. package/dist/configs/base/configExtended.js +1 -9
  8. package/dist/configs/base/index.cjs +1 -0
  9. package/dist/configs/base/index.js +1 -18
  10. package/dist/configs/base/recommended.cjs +1 -0
  11. package/dist/configs/base/recommended.js +1 -12
  12. package/dist/configs/base/typescript.cjs +1 -0
  13. package/dist/configs/base/typescript.js +1 -12
  14. package/dist/configs/index.cjs +1 -0
  15. package/dist/configs/index.js +1 -21
  16. package/dist/configs/next/config.cjs +1 -0
  17. package/dist/configs/next/config.js +1 -12
  18. package/dist/configs/next/index.cjs +1 -0
  19. package/dist/configs/next/index.js +1 -18
  20. package/dist/configs/next/recommended.cjs +1 -0
  21. package/dist/configs/next/recommended.js +1 -14
  22. package/dist/configs/next/typescript.cjs +1 -0
  23. package/dist/configs/next/typescript.js +1 -8
  24. package/dist/configs/node/config.cjs +1 -0
  25. package/dist/configs/node/config.js +1 -16
  26. package/dist/configs/node/index.cjs +1 -0
  27. package/dist/configs/node/index.js +1 -12
  28. package/dist/configs/node/recommended.cjs +1 -0
  29. package/dist/configs/node/recommended.js +1 -12
  30. package/dist/configs/react/config.cjs +1 -0
  31. package/dist/configs/react/config.js +1 -16
  32. package/dist/configs/react/configExtended.cjs +1 -0
  33. package/dist/configs/react/configExtended.js +1 -9
  34. package/dist/configs/react/index.cjs +1 -0
  35. package/dist/configs/react/index.js +1 -18
  36. package/dist/configs/react/recommended.cjs +1 -0
  37. package/dist/configs/react/recommended.js +1 -12
  38. package/dist/configs/react/typescript.cjs +1 -0
  39. package/dist/configs/react/typescript.js +1 -8
  40. package/dist/configs/typescript/config.cjs +1 -0
  41. package/dist/configs/typescript/config.js +1 -18
  42. package/dist/configs/typescript/configExtended.cjs +1 -0
  43. package/dist/configs/typescript/configExtended.js +1 -9
  44. package/dist/extensions/base/index.cjs +1 -0
  45. package/dist/extensions/base/index.js +1 -15
  46. package/dist/extensions/base/recommended.cjs +1 -0
  47. package/dist/extensions/base/recommended.js +1 -31
  48. package/dist/extensions/base/typescript.cjs +1 -0
  49. package/dist/extensions/base/typescript.js +1 -19
  50. package/dist/extensions/index.cjs +1 -0
  51. package/dist/extensions/index.js +1 -21
  52. package/dist/extensions/next/index.cjs +1 -0
  53. package/dist/extensions/next/index.js +1 -12
  54. package/dist/extensions/next/recommended.cjs +1 -0
  55. package/dist/extensions/next/recommended.js +1 -21
  56. package/dist/extensions/node/index.cjs +1 -0
  57. package/dist/extensions/node/index.js +1 -12
  58. package/dist/extensions/node/recommended.cjs +1 -0
  59. package/dist/extensions/node/recommended.js +1 -39
  60. package/dist/extensions/react/index.cjs +1 -0
  61. package/dist/extensions/react/index.js +1 -15
  62. package/dist/extensions/react/recommended.cjs +1 -0
  63. package/dist/extensions/react/recommended.js +1 -72
  64. package/dist/extensions/react/typescript.cjs +1 -0
  65. package/dist/extensions/react/typescript.js +1 -29
  66. package/dist/helpers/getDevDepsList.cjs +1 -0
  67. package/dist/helpers/getDevDepsList.js +1 -32
  68. package/dist/helpers/getImportSettings.cjs +1 -0
  69. package/dist/helpers/getImportSettings.js +1 -42
  70. package/dist/helpers/getStylisticLegacyConfig.cjs +1 -0
  71. package/dist/helpers/getStylisticLegacyConfig.js +1 -29
  72. package/dist/index.cjs +1 -0
  73. package/dist/index.d.cts +37 -0
  74. package/dist/index.d.ts +37 -0
  75. package/dist/index.js +1 -18
  76. package/dist/legacy/configs/base/config.cjs +1 -0
  77. package/dist/legacy/configs/base/config.js +1 -24
  78. package/dist/legacy/configs/base/index.cjs +1 -0
  79. package/dist/legacy/configs/base/index.js +1 -18
  80. package/dist/legacy/configs/base/legacy.cjs +1 -0
  81. package/dist/legacy/configs/base/legacy.js +1 -46
  82. package/dist/legacy/configs/base/recommended.cjs +1 -0
  83. package/dist/legacy/configs/base/recommended.js +1 -21
  84. package/dist/legacy/configs/base/typescript.cjs +1 -0
  85. package/dist/legacy/configs/base/typescript.js +1 -8
  86. package/dist/legacy/configs/index.cjs +1 -0
  87. package/dist/legacy/configs/index.js +1 -15
  88. package/dist/legacy/configs/react/base.cjs +1 -0
  89. package/dist/legacy/configs/react/base.js +1 -8
  90. package/dist/legacy/configs/react/config.cjs +1 -0
  91. package/dist/legacy/configs/react/config.js +1 -14
  92. package/dist/legacy/configs/react/hooks.cjs +1 -0
  93. package/dist/legacy/configs/react/hooks.js +1 -8
  94. package/dist/legacy/configs/react/index.cjs +1 -0
  95. package/dist/legacy/configs/react/index.js +1 -24
  96. package/dist/legacy/configs/react/legacy.cjs +1 -0
  97. package/dist/legacy/configs/react/legacy.js +1 -8
  98. package/dist/legacy/configs/react/recommended.cjs +1 -0
  99. package/dist/legacy/configs/react/recommended.js +1 -13
  100. package/dist/legacy/configs/react/typescript.cjs +1 -0
  101. package/dist/legacy/configs/react/typescript.js +1 -47
  102. package/dist/legacy/configs/typescript/config.cjs +1 -0
  103. package/dist/legacy/configs/typescript/config.js +1 -14
  104. package/dist/legacy/rules/best-practices.cjs +1 -0
  105. package/dist/legacy/rules/best-practices.js +1 -433
  106. package/dist/legacy/rules/errors.cjs +1 -0
  107. package/dist/legacy/rules/errors.js +1 -167
  108. package/dist/legacy/rules/es6.cjs +1 -0
  109. package/dist/legacy/rules/es6.js +1 -206
  110. package/dist/legacy/rules/imports.cjs +1 -0
  111. package/dist/legacy/rules/imports.js +1 -258
  112. package/dist/legacy/rules/index.cjs +1 -0
  113. package/dist/legacy/rules/index.js +1 -18
  114. package/dist/legacy/rules/node.cjs +1 -0
  115. package/dist/legacy/rules/node.js +1 -35
  116. package/dist/legacy/rules/react/react.cjs +1 -0
  117. package/dist/legacy/rules/react/react.js +1 -663
  118. package/dist/legacy/rules/react/reactHooks.cjs +1 -0
  119. package/dist/legacy/rules/react/reactHooks.js +1 -30
  120. package/dist/legacy/rules/react/reactJsxA11y.cjs +1 -0
  121. package/dist/legacy/rules/react/reactJsxA11y.js +1 -276
  122. package/dist/legacy/rules/strict.cjs +1 -0
  123. package/dist/legacy/rules/strict.js +1 -12
  124. package/dist/legacy/rules/style.cjs +1 -0
  125. package/dist/legacy/rules/style.js +1 -655
  126. package/dist/legacy/rules/typescript/typescript.cjs +1 -0
  127. package/dist/legacy/rules/typescript/typescript.js +1 -231
  128. package/dist/legacy/rules/typescript/typescriptOverrides.cjs +1 -0
  129. package/dist/legacy/rules/typescript/typescriptOverrides.js +1 -36
  130. package/dist/legacy/rules/typescript/typescriptSettings.cjs +1 -0
  131. package/dist/legacy/rules/typescript/typescriptSettings.js +1 -27
  132. package/dist/legacy/rules/variables.cjs +1 -0
  133. package/dist/legacy/rules/variables.js +1 -68
  134. package/dist/legacy.cjs +1 -0
  135. package/dist/legacy.d.cts +17 -0
  136. package/dist/legacy.d.ts +17 -0
  137. package/dist/legacy.js +1 -14
  138. package/dist/plugins/importXPlugin.cjs +1 -0
  139. package/dist/plugins/importXPlugin.js +1 -15
  140. package/dist/plugins/index.cjs +1 -0
  141. package/dist/plugins/index.js +1 -33
  142. package/dist/plugins/nextPlugin.cjs +1 -0
  143. package/dist/plugins/nextPlugin.js +1 -13
  144. package/dist/plugins/nodePlugin.cjs +1 -0
  145. package/dist/plugins/nodePlugin.js +1 -15
  146. package/dist/plugins/reactA11yPlugin.cjs +1 -0
  147. package/dist/plugins/reactA11yPlugin.js +1 -15
  148. package/dist/plugins/reactHooksPlugin.cjs +1 -0
  149. package/dist/plugins/reactHooksPlugin.js +1 -15
  150. package/dist/plugins/reactPlugin.cjs +1 -0
  151. package/dist/plugins/reactPlugin.js +1 -15
  152. package/dist/plugins/stylisticPlugin.cjs +1 -0
  153. package/dist/plugins/stylisticPlugin.js +1 -15
  154. package/dist/plugins/typescriptEslintPlugin.cjs +1 -0
  155. package/dist/plugins/typescriptEslintPlugin.js +1 -15
  156. package/dist/rules/best-practices.cjs +1 -0
  157. package/dist/rules/best-practices.js +1 -396
  158. package/dist/rules/errors.cjs +1 -0
  159. package/dist/rules/errors.js +1 -145
  160. package/dist/rules/es6.cjs +1 -0
  161. package/dist/rules/es6.js +1 -157
  162. package/dist/rules/imports.cjs +1 -0
  163. package/dist/rules/imports.js +1 -202
  164. package/dist/rules/importsStrict.cjs +1 -0
  165. package/dist/rules/importsStrict.js +1 -66
  166. package/dist/rules/index.cjs +1 -0
  167. package/dist/rules/index.js +1 -24
  168. package/dist/rules/next/nextBase.cjs +1 -0
  169. package/dist/rules/next/nextBase.js +1 -73
  170. package/dist/rules/next/nextCoreWebVitals.cjs +1 -0
  171. package/dist/rules/next/nextCoreWebVitals.js +1 -16
  172. package/dist/rules/node/nodeBase.cjs +1 -0
  173. package/dist/rules/node/nodeBase.js +1 -127
  174. package/dist/rules/node/nodeGlobals.cjs +1 -0
  175. package/dist/rules/node/nodeGlobals.js +1 -31
  176. package/dist/rules/node/nodeNoUnsupportedFeatures.cjs +1 -0
  177. package/dist/rules/node/nodeNoUnsupportedFeatures.js +1 -19
  178. package/dist/rules/node/nodePromises.cjs +1 -0
  179. package/dist/rules/node/nodePromises.js +1 -16
  180. package/dist/rules/react/react.cjs +1 -0
  181. package/dist/rules/react/react.js +1 -590
  182. package/dist/rules/react/reactHooks.cjs +1 -0
  183. package/dist/rules/react/reactHooks.js +1 -23
  184. package/dist/rules/react/reactJsxA11y.cjs +1 -0
  185. package/dist/rules/react/reactJsxA11y.js +1 -262
  186. package/dist/rules/react/reactStrict.cjs +1 -0
  187. package/dist/rules/react/reactStrict.js +1 -80
  188. package/dist/rules/react/reactStylistic.cjs +1 -0
  189. package/dist/rules/react/reactStylistic.js +1 -96
  190. package/dist/rules/strict.cjs +1 -0
  191. package/dist/rules/strict.js +1 -12
  192. package/dist/rules/style.cjs +1 -0
  193. package/dist/rules/style.js +1 -205
  194. package/dist/rules/stylistic.cjs +1 -0
  195. package/dist/rules/stylistic.js +1 -524
  196. package/dist/rules/stylisticPlus.cjs +1 -0
  197. package/dist/rules/stylisticPlus.js +1 -16
  198. package/dist/rules/typescript/typescriptBase.cjs +1 -0
  199. package/dist/rules/typescript/typescriptBase.js +1 -32
  200. package/dist/rules/typescript/typescriptEslint.cjs +1 -0
  201. package/dist/rules/typescript/typescriptEslint.js +1 -507
  202. package/dist/rules/typescript/typescriptEslintStrict.cjs +1 -0
  203. package/dist/rules/typescript/typescriptEslintStrict.js +1 -193
  204. package/dist/rules/typescript/typescriptImports.cjs +1 -0
  205. package/dist/rules/typescript/typescriptImports.js +1 -36
  206. package/dist/rules/typescript/typescriptStylistic.cjs +1 -0
  207. package/dist/rules/typescript/typescriptStylistic.js +1 -150
  208. package/dist/rules/typescript/typescriptStylisticPlus.cjs +1 -0
  209. package/dist/rules/typescript/typescriptStylisticPlus.js +1 -16
  210. package/dist/rules/variables.cjs +1 -0
  211. package/dist/rules/variables.js +1 -67
  212. package/dist/utils/index.cjs +1 -0
  213. package/dist/utils/index.js +1 -18
  214. package/package.json +18 -18
  215. package/dist/@types/index.d.ts +0 -32
  216. package/dist/@types/legacy.d.ts +0 -12
@@ -1,663 +1 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const eslint_plugin_react_1 = __importDefault(require("eslint-plugin-react"));
7
- const globals_1 = __importDefault(require("globals"));
8
- const style_1 = __importDefault(require("../../../legacy/rules/style"));
9
- const utils_1 = require("../../../utils");
10
- const dangleRules = style_1.default.rules['no-underscore-dangle'];
11
- const legacyReactBaseRules = {
12
- name: 'airbnb/config/react/legacy',
13
- files: utils_1.allFiles,
14
- plugins: {
15
- react: eslint_plugin_react_1.default,
16
- },
17
- languageOptions: {
18
- parserOptions: {
19
- ecmaFeatures: {
20
- jsx: true,
21
- },
22
- },
23
- globals: Object.assign({}, globals_1.default.browser),
24
- },
25
- settings: {
26
- 'import/resolver': {
27
- node: {
28
- extensions: [...utils_1.jsExtensionsWithReact, '.json'],
29
- },
30
- },
31
- react: {
32
- pragma: 'React',
33
- version: 'detect',
34
- },
35
- propWrapperFunctions: [
36
- 'forbidExtraProps', // https://www.npmjs.com/package/airbnb-prop-types
37
- 'exact', // https://www.npmjs.com/package/prop-types-exact
38
- 'Object.freeze', // https://tc39.github.io/ecma262/#sec-object.freeze
39
- ],
40
- },
41
- rules: {
42
- 'no-underscore-dangle': [
43
- dangleRules[0],
44
- Object.assign(Object.assign({}, dangleRules[1]), { allow: [...dangleRules[1].allow, '__REDUX_DEVTOOLS_EXTENSION_COMPOSE__'] }),
45
- ],
46
- // Specify whether double or single quotes should be used in JSX attributes
47
- // https://eslint.org/docs/rules/jsx-quotes
48
- 'jsx-quotes': ['error', 'prefer-double'],
49
- 'class-methods-use-this': [
50
- 'error',
51
- {
52
- exceptMethods: [
53
- 'render',
54
- 'getInitialState',
55
- 'getDefaultProps',
56
- 'getChildContext',
57
- 'componentWillMount',
58
- 'UNSAFE_componentWillMount',
59
- 'componentDidMount',
60
- 'componentWillReceiveProps',
61
- 'UNSAFE_componentWillReceiveProps',
62
- 'shouldComponentUpdate',
63
- 'componentWillUpdate',
64
- 'UNSAFE_componentWillUpdate',
65
- 'componentDidUpdate',
66
- 'componentWillUnmount',
67
- 'componentDidCatch',
68
- 'getSnapshotBeforeUpdate',
69
- ],
70
- },
71
- ],
72
- // This rule enforces onChange or readonly attribute for checked property of input elements.
73
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/checked-requires-onchange-or-readonly.md
74
- 'react/checked-requires-onchange-or-readonly': [
75
- 'off',
76
- {
77
- ignoreMissingProperties: false,
78
- ignoreExclusiveCheckedAttribute: false,
79
- },
80
- ],
81
- // Prevent missing displayName in a React component definition
82
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/display-name.md
83
- 'react/display-name': [
84
- 'off',
85
- {
86
- ignoreTranspilerName: false,
87
- },
88
- ],
89
- // Forbid certain propTypes (any, array, object)
90
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/843d71a432baf0f01f598d7cf1eea75ad6896e4b/docs/rules/forbid-prop-types.md
91
- 'react/forbid-prop-types': [
92
- 'error',
93
- {
94
- forbid: ['any', 'array', 'object'],
95
- checkContextTypes: true,
96
- checkChildContextTypes: true,
97
- },
98
- ],
99
- // Forbid certain props on DOM Nodes
100
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/843d71a432baf0f01f598d7cf1eea75ad6896e4b/docs/rules/forbid-dom-props.md
101
- 'react/forbid-dom-props': [
102
- 'off',
103
- {
104
- forbid: [],
105
- },
106
- ],
107
- // Enforce boolean attributes notation in JSX
108
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-boolean-value.md
109
- 'react/jsx-boolean-value': [
110
- 'error',
111
- 'never',
112
- {
113
- always: [],
114
- },
115
- ],
116
- // Validate closing bracket location in JSX
117
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-closing-bracket-location.md
118
- 'react/jsx-closing-bracket-location': ['error', 'line-aligned'],
119
- // Validate closing tag location in JSX
120
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-closing-tag-location.md
121
- 'react/jsx-closing-tag-location': 'error',
122
- // Enforce or disallow spaces inside of curly braces in JSX attributes
123
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-curly-spacing.md
124
- 'react/jsx-curly-spacing': [
125
- 'error',
126
- 'never',
127
- {
128
- allowMultiline: true,
129
- },
130
- ],
131
- // Enforce event handler naming conventions in JSX
132
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-handler-names.md
133
- 'react/jsx-handler-names': [
134
- 'off',
135
- {
136
- eventHandlerPrefix: 'handle',
137
- eventHandlerPropPrefix: 'on',
138
- },
139
- ],
140
- // Validate props indentation in JSX
141
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-indent-props.md
142
- 'react/jsx-indent-props': ['error', 2],
143
- // Validate JSX has key prop when in array or iterator
144
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-key.md
145
- // Turned off because it has too many false positives
146
- 'react/jsx-key': 'off',
147
- // Limit maximum of props on a single line in JSX
148
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-max-props-per-line.md
149
- 'react/jsx-max-props-per-line': [
150
- 'error',
151
- {
152
- maximum: 1,
153
- when: 'multiline',
154
- },
155
- ],
156
- // Prevent usage of .bind() in JSX props
157
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-no-bind.md
158
- 'react/jsx-no-bind': [
159
- 'error',
160
- {
161
- ignoreRefs: true,
162
- allowArrowFunctions: true,
163
- allowFunctions: false,
164
- allowBind: false,
165
- ignoreDOMComponents: true,
166
- },
167
- ],
168
- // Prevent duplicate props in JSX
169
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-no-duplicate-props.md
170
- 'react/jsx-no-duplicate-props': [
171
- 'error',
172
- {
173
- ignoreCase: true,
174
- },
175
- ],
176
- // Prevent usage of unwrapped JSX strings
177
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-no-literals.md
178
- 'react/jsx-no-literals': [
179
- 'off',
180
- {
181
- noStrings: true,
182
- },
183
- ],
184
- // Disallow undeclared variables in JSX
185
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-no-undef.md
186
- 'react/jsx-no-undef': 'error',
187
- // Enforce PascalCase for user-defined JSX components
188
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-pascal-case.md
189
- 'react/jsx-pascal-case': [
190
- 'error',
191
- {
192
- allowAllCaps: true,
193
- ignore: [],
194
- },
195
- ],
196
- // Enforce propTypes declarations alphabetical sorting
197
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/sort-prop-types.md
198
- 'react/sort-prop-types': [
199
- 'off',
200
- {
201
- ignoreCase: true,
202
- callbacksLast: false,
203
- requiredFirst: false,
204
- sortShapeProp: true,
205
- },
206
- ],
207
- // Deprecated in favor of react/jsx-sort-props
208
- 'react/jsx-sort-prop-types': 'off',
209
- // Enforce props alphabetical sorting
210
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-sort-props.md
211
- 'react/jsx-sort-props': [
212
- 'off',
213
- {
214
- ignoreCase: true,
215
- callbacksLast: false,
216
- shorthandFirst: false,
217
- shorthandLast: false,
218
- noSortAlphabetically: false,
219
- reservedFirst: true,
220
- },
221
- ],
222
- // Enforce defaultProps declarations alphabetical sorting
223
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/843d71a432baf0f01f598d7cf1eea75ad6896e4b/docs/rules/jsx-sort-default-props.md
224
- 'react/jsx-sort-default-props': [
225
- 'off',
226
- {
227
- ignoreCase: true,
228
- },
229
- ],
230
- // Prevent React to be incorrectly marked as unused
231
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-uses-react.md
232
- 'react/jsx-uses-react': ['error'],
233
- // Prevent variables used in JSX to be incorrectly marked as unused
234
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-uses-vars.md
235
- 'react/jsx-uses-vars': 'error',
236
- // Prevent usage of dangerous JSX properties
237
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-danger.md
238
- 'react/no-danger': 'warn',
239
- // Prevent usage of deprecated methods
240
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-deprecated.md
241
- 'react/no-deprecated': ['error'],
242
- // Prevent usage of setState in componentDidMount
243
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-did-mount-set-state.md
244
- // this is necessary for server-rendering
245
- 'react/no-did-mount-set-state': 'off',
246
- // Prevent usage of setState in componentDidUpdate
247
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-did-update-set-state.md
248
- 'react/no-did-update-set-state': 'error',
249
- // Prevent usage of setState in componentWillUpdate
250
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-will-update-set-state.md
251
- 'react/no-will-update-set-state': 'error',
252
- // Prevent direct mutation of this.state
253
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-direct-mutation-state.md
254
- 'react/no-direct-mutation-state': 'off',
255
- // Prevent usage of isMounted
256
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-is-mounted.md
257
- 'react/no-is-mounted': 'error',
258
- // Prevent multiple component definition per file
259
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-multi-comp.md
260
- 'react/no-multi-comp': 'off',
261
- // Prevent usage of setState
262
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-set-state.md
263
- 'react/no-set-state': 'off',
264
- // Prevent using string references
265
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-string-refs.md
266
- 'react/no-string-refs': 'error',
267
- // Prevent usage of unknown DOM property
268
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-unknown-property.md
269
- 'react/no-unknown-property': 'error',
270
- // Require ES6 class declarations over React.createClass
271
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/prefer-es6-class.md
272
- 'react/prefer-es6-class': ['error', 'always'],
273
- // Require stateless functions when not using lifecycle methods, setState or ref
274
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/prefer-stateless-function.md
275
- 'react/prefer-stateless-function': [
276
- 'error',
277
- {
278
- ignorePureComponents: true,
279
- },
280
- ],
281
- // Prevent missing props validation in a React component definition
282
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/prop-types.md
283
- 'react/prop-types': [
284
- 'error',
285
- {
286
- ignore: [],
287
- customValidators: [],
288
- skipUndeclared: false,
289
- },
290
- ],
291
- // Prevent missing React when using JSX
292
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/react-in-jsx-scope.md
293
- 'react/react-in-jsx-scope': 'error',
294
- // Require render() methods to return something
295
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/require-render-return.md
296
- 'react/require-render-return': 'error',
297
- // Prevent extra closing tags for components without children
298
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/self-closing-comp.md
299
- 'react/self-closing-comp': 'error',
300
- // Enforce component methods order
301
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/843d71a432baf0f01f598d7cf1eea75ad6896e4b/docs/rules/sort-comp.md
302
- 'react/sort-comp': [
303
- 'error',
304
- {
305
- order: [
306
- 'static-variables',
307
- 'static-methods',
308
- 'instance-variables',
309
- 'lifecycle',
310
- '/^handle.+$/',
311
- '/^on.+$/',
312
- 'getters',
313
- 'setters',
314
- '/^(get|set)(?!(InitialState$|DefaultProps$|ChildContext$)).+$/',
315
- 'instance-methods',
316
- 'everything-else',
317
- 'rendering',
318
- ],
319
- groups: {
320
- lifecycle: [
321
- 'displayName',
322
- 'propTypes',
323
- 'contextTypes',
324
- 'childContextTypes',
325
- 'mixins',
326
- 'statics',
327
- 'defaultProps',
328
- 'constructor',
329
- 'getDefaultProps',
330
- 'getInitialState',
331
- 'state',
332
- 'getChildContext',
333
- 'getDerivedStateFromProps',
334
- 'componentWillMount',
335
- 'UNSAFE_componentWillMount',
336
- 'componentDidMount',
337
- 'componentWillReceiveProps',
338
- 'UNSAFE_componentWillReceiveProps',
339
- 'shouldComponentUpdate',
340
- 'componentWillUpdate',
341
- 'UNSAFE_componentWillUpdate',
342
- 'getSnapshotBeforeUpdate',
343
- 'componentDidUpdate',
344
- 'componentDidCatch',
345
- 'componentWillUnmount',
346
- ],
347
- rendering: ['/^render.+$/', 'render'],
348
- },
349
- },
350
- ],
351
- // Prevent missing parentheses around multilines JSX
352
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/843d71a432baf0f01f598d7cf1eea75ad6896e4b/docs/rules/jsx-wrap-multilines.md
353
- 'react/jsx-wrap-multilines': [
354
- 'error',
355
- {
356
- declaration: 'parens-new-line',
357
- assignment: 'parens-new-line',
358
- return: 'parens-new-line',
359
- arrow: 'parens-new-line',
360
- condition: 'parens-new-line',
361
- logical: 'parens-new-line',
362
- prop: 'parens-new-line',
363
- },
364
- ],
365
- // Require that the first prop in a JSX element be on a new line when the element is multiline
366
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-first-prop-new-line.md
367
- 'react/jsx-first-prop-new-line': ['error', 'multiline-multiprop'],
368
- // Enforce spacing around jsx equals signs
369
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-equals-spacing.md
370
- 'react/jsx-equals-spacing': ['error', 'never'],
371
- // Enforce JSX indentation
372
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-indent.md
373
- 'react/jsx-indent': ['error', 2],
374
- // Disallow target="_blank" on links
375
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/ac102885765be5ff37847a871f239c6703e1c7cc/docs/rules/jsx-no-target-blank.md
376
- 'react/jsx-no-target-blank': [
377
- 'error',
378
- {
379
- enforceDynamicLinks: 'always',
380
- },
381
- ],
382
- // only .jsx files may have JSX
383
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-filename-extension.md
384
- 'react/jsx-filename-extension': [
385
- 'error',
386
- {
387
- extensions: ['.jsx'],
388
- },
389
- ],
390
- // prevent accidental JS comments from being injected into JSX as text
391
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-no-comment-textnodes.md
392
- 'react/jsx-no-comment-textnodes': 'error',
393
- // disallow using React.render/ReactDOM.render's return value
394
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-render-return-value.md
395
- 'react/no-render-return-value': 'error',
396
- // require a shouldComponentUpdate method, or PureRenderMixin
397
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/require-optimization.md
398
- 'react/require-optimization': [
399
- 'off',
400
- {
401
- allowDecorators: [],
402
- },
403
- ],
404
- // warn against using findDOMNode()
405
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-find-dom-node.md
406
- 'react/no-find-dom-node': 'error',
407
- // Forbid certain props on Components
408
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/forbid-component-props.md
409
- 'react/forbid-component-props': [
410
- 'off',
411
- {
412
- forbid: [],
413
- },
414
- ],
415
- // Forbid certain elements
416
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/forbid-elements.md
417
- 'react/forbid-elements': [
418
- 'off',
419
- {
420
- forbid: [],
421
- },
422
- ],
423
- // Prevent problem with children and props.dangerouslySetInnerHTML
424
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-danger-with-children.md
425
- 'react/no-danger-with-children': 'error',
426
- // Prevent unused propType definitions
427
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-unused-prop-types.md
428
- 'react/no-unused-prop-types': [
429
- 'error',
430
- {
431
- customValidators: [],
432
- skipShapeProps: true,
433
- },
434
- ],
435
- // Require style prop value be an object or var
436
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/style-prop-object.md
437
- 'react/style-prop-object': 'error',
438
- // Prevent invalid characters from appearing in markup
439
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-unescaped-entities.md
440
- 'react/no-unescaped-entities': 'error',
441
- // Prevent passing of children as props
442
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-children-prop.md
443
- 'react/no-children-prop': 'error',
444
- // Validate whitespace in and around the JSX opening and closing brackets
445
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/843d71a432baf0f01f598d7cf1eea75ad6896e4b/docs/rules/jsx-tag-spacing.md
446
- 'react/jsx-tag-spacing': [
447
- 'error',
448
- {
449
- closingSlash: 'never',
450
- beforeSelfClosing: 'always',
451
- afterOpening: 'never',
452
- beforeClosing: 'never',
453
- },
454
- ],
455
- // Enforce spaces before the closing bracket of self-closing JSX elements
456
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-space-before-closing.md
457
- // Deprecated in favor of jsx-tag-spacing
458
- 'react/jsx-space-before-closing': ['off', 'always'],
459
- // Prevent usage of Array index in keys
460
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-array-index-key.md
461
- 'react/no-array-index-key': 'error',
462
- // Enforce a defaultProps definition for every prop that is not a required prop
463
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/843d71a432baf0f01f598d7cf1eea75ad6896e4b/docs/rules/require-default-props.md
464
- 'react/require-default-props': [
465
- 'error',
466
- {
467
- forbidDefaultForRequired: true,
468
- },
469
- ],
470
- // Forbids using non-exported propTypes
471
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/forbid-foreign-prop-types.md
472
- // this is intentionally set to "warn". it would be "error",
473
- // but it's only critical if you're stripping propTypes in production.
474
- 'react/forbid-foreign-prop-types': [
475
- 'warn',
476
- {
477
- allowInPropTypes: true,
478
- },
479
- ],
480
- // Prevent void DOM elements from receiving children
481
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/void-dom-elements-no-children.md
482
- 'react/void-dom-elements-no-children': 'error',
483
- // Enforce all defaultProps have a corresponding non-required PropType
484
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/9e13ae2c51e44872b45cc15bf1ac3a72105bdd0e/docs/rules/default-props-match-prop-types.md
485
- 'react/default-props-match-prop-types': [
486
- 'error',
487
- {
488
- allowRequiredDefaults: false,
489
- },
490
- ],
491
- // Prevent usage of shouldComponentUpdate when extending React.PureComponent
492
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/9e13ae2c51e44872b45cc15bf1ac3a72105bdd0e/docs/rules/no-redundant-should-component-update.md
493
- 'react/no-redundant-should-component-update': 'error',
494
- // Prevent unused state values
495
- // https://github.com/jsx-eslint/eslint-plugin-react/pull/1103/
496
- 'react/no-unused-state': 'error',
497
- // Enforces consistent naming for boolean props
498
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/843d71a432baf0f01f598d7cf1eea75ad6896e4b/docs/rules/boolean-prop-naming.md
499
- 'react/boolean-prop-naming': [
500
- 'off',
501
- {
502
- propTypeNames: ['bool', 'mutuallyExclusiveTrueProps'],
503
- rule: '^(is|has)[A-Z]([A-Za-z0-9]?)+',
504
- message: '',
505
- },
506
- ],
507
- // Prevents common casing typos
508
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/73abadb697034b5ccb514d79fb4689836fe61f91/docs/rules/no-typos.md
509
- 'react/no-typos': 'error',
510
- // Enforce curly braces or disallow unnecessary curly braces in JSX props and/or children
511
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-curly-brace-presence.md
512
- 'react/jsx-curly-brace-presence': [
513
- 'error',
514
- {
515
- props: 'never',
516
- children: 'never',
517
- },
518
- ],
519
- // One JSX Element Per Line
520
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/843d71a432baf0f01f598d7cf1eea75ad6896e4b/docs/rules/jsx-one-expression-per-line.md
521
- 'react/jsx-one-expression-per-line': [
522
- 'error',
523
- {
524
- allow: 'single-child',
525
- },
526
- ],
527
- // Enforce consistent usage of destructuring assignment of props, state, and context
528
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/843d71a432baf0f01f598d7cf1eea75ad6896e4b/docs/rules/destructuring-assignment.md
529
- 'react/destructuring-assignment': ['error', 'always'],
530
- // Prevent using this.state within a this.setState
531
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/843d71a432baf0f01f598d7cf1eea75ad6896e4b/docs/rules/no-access-state-in-setstate.md
532
- 'react/no-access-state-in-setstate': 'error',
533
- // Prevent usage of button elements without an explicit type attribute
534
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/843d71a432baf0f01f598d7cf1eea75ad6896e4b/docs/rules/button-has-type.md
535
- 'react/button-has-type': [
536
- 'error',
537
- {
538
- button: true,
539
- submit: true,
540
- reset: false,
541
- },
542
- ],
543
- // Ensures inline tags are not rendered without spaces between them
544
- 'react/jsx-child-element-spacing': 'off',
545
- // Prevent this from being used in stateless functional components
546
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/843d71a432baf0f01f598d7cf1eea75ad6896e4b/docs/rules/no-this-in-sfc.md
547
- 'react/no-this-in-sfc': 'error',
548
- // Validate JSX maximum depth
549
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/abe8381c0d6748047224c430ce47f02e40160ed0/docs/rules/jsx-max-depth.md
550
- 'react/jsx-max-depth': 'off',
551
- // Disallow multiple spaces between inline JSX props
552
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/ac102885765be5ff37847a871f239c6703e1c7cc/docs/rules/jsx-props-no-multi-spaces.md
553
- 'react/jsx-props-no-multi-spaces': 'error',
554
- // Prevent usage of UNSAFE_ methods
555
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/157cc932be2cfaa56b3f5b45df6f6d4322a2f660/docs/rules/no-unsafe.md
556
- 'react/no-unsafe': 'off',
557
- // Enforce shorthand or standard form for React fragments
558
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/bc976b837abeab1dffd90ac6168b746a83fc83cc/docs/rules/jsx-fragments.md
559
- 'react/jsx-fragments': ['error', 'syntax'],
560
- // Enforce linebreaks in curly braces in JSX attributes and expressions.
561
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-curly-newline.md
562
- 'react/jsx-curly-newline': [
563
- 'error',
564
- {
565
- multiline: 'consistent',
566
- singleline: 'consistent',
567
- },
568
- ],
569
- // Enforce state initialization style
570
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/state-in-constructor.md
571
- 'react/state-in-constructor': ['error', 'always'],
572
- // Enforces where React component static properties should be positioned
573
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/static-property-placement.md
574
- 'react/static-property-placement': ['error', 'property assignment'],
575
- // Disallow JSX props spreading
576
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-props-no-spreading.md
577
- 'react/jsx-props-no-spreading': [
578
- 'error',
579
- {
580
- html: 'enforce',
581
- custom: 'enforce',
582
- explicitSpread: 'ignore',
583
- exceptions: [],
584
- },
585
- ],
586
- // Enforce that props are read-only
587
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/prefer-read-only-props.md
588
- 'react/prefer-read-only-props': 'off',
589
- // Prevent usage of `javascript:` URLs
590
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-no-script-url.md
591
- 'react/jsx-no-script-url': [
592
- 'error',
593
- [
594
- {
595
- name: 'Link',
596
- props: ['to'],
597
- },
598
- ],
599
- ],
600
- // Disallow unnecessary fragments
601
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/jsx-no-useless-fragment.md
602
- 'react/jsx-no-useless-fragment': 'error',
603
- // Prevent adjacent inline elements not separated by whitespace
604
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/no-adjacent-inline-elements.md
605
- 'react/no-adjacent-inline-elements': 'off',
606
- // Enforce a specific function type for function components
607
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/function-component-definition.md
608
- 'react/function-component-definition': [
609
- 'error',
610
- {
611
- namedComponents: ['function-declaration', 'function-expression'],
612
- unnamedComponents: 'function-expression',
613
- },
614
- ],
615
- // Enforce a new line after jsx elements and expressions
616
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/e2eaadae316f9506d163812a09424eb42698470a/docs/rules/jsx-newline.md
617
- 'react/jsx-newline': 'off',
618
- // Prevent react contexts from taking non-stable values
619
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/e2eaadae316f9506d163812a09424eb42698470a/docs/rules/jsx-no-constructed-context-values.md
620
- 'react/jsx-no-constructed-context-values': 'error',
621
- // Prevent creating unstable components inside components
622
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/c2a790a3472eea0f6de984bdc3ee2a62197417fb/docs/rules/no-unstable-nested-components.md
623
- 'react/no-unstable-nested-components': 'error',
624
- // Enforce that namespaces are not used in React elements
625
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/8785c169c25b09b33c95655bf508cf46263bc53f/docs/rules/no-namespace.md
626
- 'react/no-namespace': 'error',
627
- // Prefer exact proptype definitions
628
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/8785c169c25b09b33c95655bf508cf46263bc53f/docs/rules/prefer-exact-props.md
629
- 'react/prefer-exact-props': 'error',
630
- // Lifecycle methods should be methods on the prototype, not class fields
631
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/21e01b61af7a38fc86d94f27eb66cda8054582ed/docs/rules/no-arrow-function-lifecycle.md
632
- 'react/no-arrow-function-lifecycle': 'error',
633
- // Prevent usage of invalid attributes
634
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/21e01b61af7a38fc86d94f27eb66cda8054582ed/docs/rules/no-invalid-html-attribute.md
635
- 'react/no-invalid-html-attribute': 'error',
636
- // Prevent declaring unused methods of component class
637
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/21e01b61af7a38fc86d94f27eb66cda8054582ed/docs/rules/no-unused-class-component-methods.md
638
- 'react/no-unused-class-component-methods': 'error',
639
- // Ensure destructuring and symmetric naming of useState hook value and setter variables
640
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/c8833f301314dab3e79ef7ac4cf863e4d5fa0019/docs/rules/hook-use-state.md
641
- 'react/hook-use-state': 'off',
642
- // Enforce sandbox attribute on iframe elements
643
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/c8833f301314dab3e79ef7ac4cf863e4d5fa0019/docs/rules/iframe-missing-sandbox.md
644
- 'react/iframe-missing-sandbox': 'off',
645
- // Prevent problematic leaked values from being rendered
646
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/c42b624d0fb9ad647583a775ab9751091eec066f/docs/rules/jsx-no-leaked-render.md
647
- 'react/jsx-no-leaked-render': 'off',
648
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/66b58dd4864678eb869a7bf434c72ff7ac530eb1/docs/rules/no-object-type-as-default-prop.md
649
- 'react/no-object-type-as-default-prop': 'off',
650
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/66b58dd4864678eb869a7bf434c72ff7ac530eb1/docs/rules/sort-default-props.md
651
- 'react/sort-default-props': [
652
- 'off',
653
- {
654
- ignoreCase: false,
655
- },
656
- ],
657
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/9668ee0762acd5c23f53cd3a372e2d8d9563944d/docs/rules/forward-ref-uses-ref.md
658
- 'react/forward-ref-uses-ref': 'off',
659
- // https://github.com/jsx-eslint/eslint-plugin-react/blob/9668ee0762acd5c23f53cd3a372e2d8d9563944d/docs/rules/jsx-props-no-spread-multi.md
660
- 'react/jsx-props-no-spread-multi': 'off',
661
- },
662
- };
663
- exports.default = legacyReactBaseRules;
1
+ import{__esmMin as e}from"../../../_virtual/rolldown_runtime.js";import{allFiles as t,init_utils as n,jsExtensionsWithReact as r}from"../../../utils/index.js";import i,{init_style as a}from"../style.js";import o from"globals";import s from"eslint-plugin-react";var c,l,u,d=e((()=>{a(),n(),c=i.rules[`no-underscore-dangle`],l={name:`airbnb/config/react/legacy`,files:t,plugins:{react:s},languageOptions:{parserOptions:{ecmaFeatures:{jsx:!0}},globals:{...o.browser}},settings:{"import/resolver":{node:{extensions:[...r,`.json`]}},react:{pragma:`React`,version:`detect`},propWrapperFunctions:[`forbidExtraProps`,`exact`,`Object.freeze`]},rules:{"no-underscore-dangle":[c[0],{...c[1],allow:[...c[1].allow,`__REDUX_DEVTOOLS_EXTENSION_COMPOSE__`]}],"jsx-quotes":[`error`,`prefer-double`],"class-methods-use-this":[`error`,{exceptMethods:[`render`,`getInitialState`,`getDefaultProps`,`getChildContext`,`componentWillMount`,`UNSAFE_componentWillMount`,`componentDidMount`,`componentWillReceiveProps`,`UNSAFE_componentWillReceiveProps`,`shouldComponentUpdate`,`componentWillUpdate`,`UNSAFE_componentWillUpdate`,`componentDidUpdate`,`componentWillUnmount`,`componentDidCatch`,`getSnapshotBeforeUpdate`]}],"react/checked-requires-onchange-or-readonly":[`off`,{ignoreMissingProperties:!1,ignoreExclusiveCheckedAttribute:!1}],"react/display-name":[`off`,{ignoreTranspilerName:!1}],"react/forbid-prop-types":[`error`,{forbid:[`any`,`array`,`object`],checkContextTypes:!0,checkChildContextTypes:!0}],"react/forbid-dom-props":[`off`,{forbid:[]}],"react/jsx-boolean-value":[`error`,`never`,{always:[]}],"react/jsx-closing-bracket-location":[`error`,`line-aligned`],"react/jsx-closing-tag-location":`error`,"react/jsx-curly-spacing":[`error`,`never`,{allowMultiline:!0}],"react/jsx-handler-names":[`off`,{eventHandlerPrefix:`handle`,eventHandlerPropPrefix:`on`}],"react/jsx-indent-props":[`error`,2],"react/jsx-key":`off`,"react/jsx-max-props-per-line":[`error`,{maximum:1,when:`multiline`}],"react/jsx-no-bind":[`error`,{ignoreRefs:!0,allowArrowFunctions:!0,allowFunctions:!1,allowBind:!1,ignoreDOMComponents:!0}],"react/jsx-no-duplicate-props":[`error`,{ignoreCase:!0}],"react/jsx-no-literals":[`off`,{noStrings:!0}],"react/jsx-no-undef":`error`,"react/jsx-pascal-case":[`error`,{allowAllCaps:!0,ignore:[]}],"react/sort-prop-types":[`off`,{ignoreCase:!0,callbacksLast:!1,requiredFirst:!1,sortShapeProp:!0}],"react/jsx-sort-prop-types":`off`,"react/jsx-sort-props":[`off`,{ignoreCase:!0,callbacksLast:!1,shorthandFirst:!1,shorthandLast:!1,noSortAlphabetically:!1,reservedFirst:!0}],"react/jsx-sort-default-props":[`off`,{ignoreCase:!0}],"react/jsx-uses-react":[`error`],"react/jsx-uses-vars":`error`,"react/no-danger":`warn`,"react/no-deprecated":[`error`],"react/no-did-mount-set-state":`off`,"react/no-did-update-set-state":`error`,"react/no-will-update-set-state":`error`,"react/no-direct-mutation-state":`off`,"react/no-is-mounted":`error`,"react/no-multi-comp":`off`,"react/no-set-state":`off`,"react/no-string-refs":`error`,"react/no-unknown-property":`error`,"react/prefer-es6-class":[`error`,`always`],"react/prefer-stateless-function":[`error`,{ignorePureComponents:!0}],"react/prop-types":[`error`,{ignore:[],customValidators:[],skipUndeclared:!1}],"react/react-in-jsx-scope":`error`,"react/require-render-return":`error`,"react/self-closing-comp":`error`,"react/sort-comp":[`error`,{order:[`static-variables`,`static-methods`,`instance-variables`,`lifecycle`,`/^handle.+$/`,`/^on.+$/`,`getters`,`setters`,`/^(get|set)(?!(InitialState$|DefaultProps$|ChildContext$)).+$/`,`instance-methods`,`everything-else`,`rendering`],groups:{lifecycle:[`displayName`,`propTypes`,`contextTypes`,`childContextTypes`,`mixins`,`statics`,`defaultProps`,`constructor`,`getDefaultProps`,`getInitialState`,`state`,`getChildContext`,`getDerivedStateFromProps`,`componentWillMount`,`UNSAFE_componentWillMount`,`componentDidMount`,`componentWillReceiveProps`,`UNSAFE_componentWillReceiveProps`,`shouldComponentUpdate`,`componentWillUpdate`,`UNSAFE_componentWillUpdate`,`getSnapshotBeforeUpdate`,`componentDidUpdate`,`componentDidCatch`,`componentWillUnmount`],rendering:[`/^render.+$/`,`render`]}}],"react/jsx-wrap-multilines":[`error`,{declaration:`parens-new-line`,assignment:`parens-new-line`,return:`parens-new-line`,arrow:`parens-new-line`,condition:`parens-new-line`,logical:`parens-new-line`,prop:`parens-new-line`}],"react/jsx-first-prop-new-line":[`error`,`multiline-multiprop`],"react/jsx-equals-spacing":[`error`,`never`],"react/jsx-indent":[`error`,2],"react/jsx-no-target-blank":[`error`,{enforceDynamicLinks:`always`}],"react/jsx-filename-extension":[`error`,{extensions:[`.jsx`]}],"react/jsx-no-comment-textnodes":`error`,"react/no-render-return-value":`error`,"react/require-optimization":[`off`,{allowDecorators:[]}],"react/no-find-dom-node":`error`,"react/forbid-component-props":[`off`,{forbid:[]}],"react/forbid-elements":[`off`,{forbid:[]}],"react/no-danger-with-children":`error`,"react/no-unused-prop-types":[`error`,{customValidators:[],skipShapeProps:!0}],"react/style-prop-object":`error`,"react/no-unescaped-entities":`error`,"react/no-children-prop":`error`,"react/jsx-tag-spacing":[`error`,{closingSlash:`never`,beforeSelfClosing:`always`,afterOpening:`never`,beforeClosing:`never`}],"react/jsx-space-before-closing":[`off`,`always`],"react/no-array-index-key":`error`,"react/require-default-props":[`error`,{forbidDefaultForRequired:!0}],"react/forbid-foreign-prop-types":[`warn`,{allowInPropTypes:!0}],"react/void-dom-elements-no-children":`error`,"react/default-props-match-prop-types":[`error`,{allowRequiredDefaults:!1}],"react/no-redundant-should-component-update":`error`,"react/no-unused-state":`error`,"react/boolean-prop-naming":[`off`,{propTypeNames:[`bool`,`mutuallyExclusiveTrueProps`],rule:`^(is|has)[A-Z]([A-Za-z0-9]?)+`,message:``}],"react/no-typos":`error`,"react/jsx-curly-brace-presence":[`error`,{props:`never`,children:`never`}],"react/jsx-one-expression-per-line":[`error`,{allow:`single-child`}],"react/destructuring-assignment":[`error`,`always`],"react/no-access-state-in-setstate":`error`,"react/button-has-type":[`error`,{button:!0,submit:!0,reset:!1}],"react/jsx-child-element-spacing":`off`,"react/no-this-in-sfc":`error`,"react/jsx-max-depth":`off`,"react/jsx-props-no-multi-spaces":`error`,"react/no-unsafe":`off`,"react/jsx-fragments":[`error`,`syntax`],"react/jsx-curly-newline":[`error`,{multiline:`consistent`,singleline:`consistent`}],"react/state-in-constructor":[`error`,`always`],"react/static-property-placement":[`error`,`property assignment`],"react/jsx-props-no-spreading":[`error`,{html:`enforce`,custom:`enforce`,explicitSpread:`ignore`,exceptions:[]}],"react/prefer-read-only-props":`off`,"react/jsx-no-script-url":[`error`,[{name:`Link`,props:[`to`]}]],"react/jsx-no-useless-fragment":`error`,"react/no-adjacent-inline-elements":`off`,"react/function-component-definition":[`error`,{namedComponents:[`function-declaration`,`function-expression`],unnamedComponents:`function-expression`}],"react/jsx-newline":`off`,"react/jsx-no-constructed-context-values":`error`,"react/no-unstable-nested-components":`error`,"react/no-namespace":`error`,"react/prefer-exact-props":`error`,"react/no-arrow-function-lifecycle":`error`,"react/no-invalid-html-attribute":`error`,"react/no-unused-class-component-methods":`error`,"react/hook-use-state":`off`,"react/iframe-missing-sandbox":`off`,"react/jsx-no-leaked-render":`off`,"react/no-object-type-as-default-prop":`off`,"react/sort-default-props":[`off`,{ignoreCase:!1}],"react/forward-ref-uses-ref":`off`,"react/jsx-props-no-spread-multi":`off`}},u=l}));d();export{u as default,d as init_react};