@alexlit/lint-kit 117.2.1 → 117.3.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 (162) hide show
  1. package/package.json +1 -1
  2. package/packages/config-eslint/index.js +7 -374
  3. package/packages/config-eslint/legacy.js +3 -0
  4. package/packages/config-eslint/node_modules/@eslint/eslintrc/LICENSE +19 -0
  5. package/packages/config-eslint/node_modules/@eslint/eslintrc/README.md +126 -0
  6. package/packages/config-eslint/node_modules/@eslint/eslintrc/conf/config-schema.js +79 -0
  7. package/packages/config-eslint/node_modules/@eslint/eslintrc/conf/environments.js +215 -0
  8. package/packages/config-eslint/node_modules/@eslint/eslintrc/dist/eslintrc-universal.cjs +1143 -0
  9. package/packages/config-eslint/node_modules/@eslint/eslintrc/dist/eslintrc-universal.cjs.map +1 -0
  10. package/packages/config-eslint/node_modules/@eslint/eslintrc/dist/eslintrc.cjs +4371 -0
  11. package/packages/config-eslint/node_modules/@eslint/eslintrc/dist/eslintrc.cjs.map +1 -0
  12. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/cascading-config-array-factory.js +532 -0
  13. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/config-array/config-array.js +510 -0
  14. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/config-array/config-dependency.js +124 -0
  15. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/config-array/extracted-config.js +145 -0
  16. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/config-array/ignore-pattern.js +238 -0
  17. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/config-array/index.js +19 -0
  18. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/config-array/override-tester.js +225 -0
  19. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/config-array-factory.js +1155 -0
  20. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/flat-compat.js +318 -0
  21. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/index-universal.js +29 -0
  22. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/index.js +58 -0
  23. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/shared/ajv.js +191 -0
  24. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/shared/config-ops.js +135 -0
  25. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/shared/config-validator.js +370 -0
  26. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/shared/deprecation-warnings.js +63 -0
  27. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/shared/naming.js +96 -0
  28. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/shared/relative-module-resolver.js +42 -0
  29. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/shared/types.js +149 -0
  30. package/packages/config-eslint/node_modules/@eslint/eslintrc/package.json +82 -0
  31. package/packages/config-eslint/node_modules/@eslint/eslintrc/universal.js +9 -0
  32. package/packages/config-eslint/node_modules/ajv/.tonic_example.js +20 -0
  33. package/packages/config-eslint/node_modules/ajv/LICENSE +22 -0
  34. package/packages/config-eslint/node_modules/ajv/README.md +1497 -0
  35. package/packages/config-eslint/node_modules/ajv/dist/ajv.bundle.js +7189 -0
  36. package/packages/config-eslint/node_modules/ajv/dist/ajv.min.js +3 -0
  37. package/packages/config-eslint/node_modules/ajv/dist/ajv.min.js.map +1 -0
  38. package/packages/config-eslint/node_modules/ajv/lib/ajv.d.ts +397 -0
  39. package/packages/config-eslint/node_modules/ajv/lib/ajv.js +506 -0
  40. package/packages/config-eslint/node_modules/ajv/lib/cache.js +26 -0
  41. package/packages/config-eslint/node_modules/ajv/lib/compile/async.js +90 -0
  42. package/packages/config-eslint/node_modules/ajv/lib/compile/equal.js +5 -0
  43. package/packages/config-eslint/node_modules/ajv/lib/compile/error_classes.js +34 -0
  44. package/packages/config-eslint/node_modules/ajv/lib/compile/formats.js +142 -0
  45. package/packages/config-eslint/node_modules/ajv/lib/compile/index.js +387 -0
  46. package/packages/config-eslint/node_modules/ajv/lib/compile/resolve.js +270 -0
  47. package/packages/config-eslint/node_modules/ajv/lib/compile/rules.js +66 -0
  48. package/packages/config-eslint/node_modules/ajv/lib/compile/schema_obj.js +9 -0
  49. package/packages/config-eslint/node_modules/ajv/lib/compile/ucs2length.js +20 -0
  50. package/packages/config-eslint/node_modules/ajv/lib/compile/util.js +239 -0
  51. package/packages/config-eslint/node_modules/ajv/lib/data.js +49 -0
  52. package/packages/config-eslint/node_modules/ajv/lib/definition_schema.js +37 -0
  53. package/packages/config-eslint/node_modules/ajv/lib/dot/_limit.jst +113 -0
  54. package/packages/config-eslint/node_modules/ajv/lib/dot/_limitItems.jst +12 -0
  55. package/packages/config-eslint/node_modules/ajv/lib/dot/_limitLength.jst +12 -0
  56. package/packages/config-eslint/node_modules/ajv/lib/dot/_limitProperties.jst +12 -0
  57. package/packages/config-eslint/node_modules/ajv/lib/dot/allOf.jst +32 -0
  58. package/packages/config-eslint/node_modules/ajv/lib/dot/anyOf.jst +46 -0
  59. package/packages/config-eslint/node_modules/ajv/lib/dot/coerce.def +51 -0
  60. package/packages/config-eslint/node_modules/ajv/lib/dot/comment.jst +9 -0
  61. package/packages/config-eslint/node_modules/ajv/lib/dot/const.jst +11 -0
  62. package/packages/config-eslint/node_modules/ajv/lib/dot/contains.jst +55 -0
  63. package/packages/config-eslint/node_modules/ajv/lib/dot/custom.jst +191 -0
  64. package/packages/config-eslint/node_modules/ajv/lib/dot/defaults.def +47 -0
  65. package/packages/config-eslint/node_modules/ajv/lib/dot/definitions.def +203 -0
  66. package/packages/config-eslint/node_modules/ajv/lib/dot/dependencies.jst +79 -0
  67. package/packages/config-eslint/node_modules/ajv/lib/dot/enum.jst +30 -0
  68. package/packages/config-eslint/node_modules/ajv/lib/dot/errors.def +194 -0
  69. package/packages/config-eslint/node_modules/ajv/lib/dot/format.jst +106 -0
  70. package/packages/config-eslint/node_modules/ajv/lib/dot/if.jst +73 -0
  71. package/packages/config-eslint/node_modules/ajv/lib/dot/items.jst +98 -0
  72. package/packages/config-eslint/node_modules/ajv/lib/dot/missing.def +39 -0
  73. package/packages/config-eslint/node_modules/ajv/lib/dot/multipleOf.jst +22 -0
  74. package/packages/config-eslint/node_modules/ajv/lib/dot/not.jst +43 -0
  75. package/packages/config-eslint/node_modules/ajv/lib/dot/oneOf.jst +54 -0
  76. package/packages/config-eslint/node_modules/ajv/lib/dot/pattern.jst +14 -0
  77. package/packages/config-eslint/node_modules/ajv/lib/dot/properties.jst +245 -0
  78. package/packages/config-eslint/node_modules/ajv/lib/dot/propertyNames.jst +52 -0
  79. package/packages/config-eslint/node_modules/ajv/lib/dot/ref.jst +85 -0
  80. package/packages/config-eslint/node_modules/ajv/lib/dot/required.jst +108 -0
  81. package/packages/config-eslint/node_modules/ajv/lib/dot/uniqueItems.jst +62 -0
  82. package/packages/config-eslint/node_modules/ajv/lib/dot/validate.jst +276 -0
  83. package/packages/config-eslint/node_modules/ajv/lib/dotjs/README.md +3 -0
  84. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limit.js +163 -0
  85. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limitItems.js +80 -0
  86. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limitLength.js +85 -0
  87. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limitProperties.js +80 -0
  88. package/packages/config-eslint/node_modules/ajv/lib/dotjs/allOf.js +42 -0
  89. package/packages/config-eslint/node_modules/ajv/lib/dotjs/anyOf.js +73 -0
  90. package/packages/config-eslint/node_modules/ajv/lib/dotjs/comment.js +14 -0
  91. package/packages/config-eslint/node_modules/ajv/lib/dotjs/const.js +56 -0
  92. package/packages/config-eslint/node_modules/ajv/lib/dotjs/contains.js +81 -0
  93. package/packages/config-eslint/node_modules/ajv/lib/dotjs/custom.js +228 -0
  94. package/packages/config-eslint/node_modules/ajv/lib/dotjs/dependencies.js +168 -0
  95. package/packages/config-eslint/node_modules/ajv/lib/dotjs/enum.js +66 -0
  96. package/packages/config-eslint/node_modules/ajv/lib/dotjs/format.js +150 -0
  97. package/packages/config-eslint/node_modules/ajv/lib/dotjs/if.js +103 -0
  98. package/packages/config-eslint/node_modules/ajv/lib/dotjs/index.js +33 -0
  99. package/packages/config-eslint/node_modules/ajv/lib/dotjs/items.js +140 -0
  100. package/packages/config-eslint/node_modules/ajv/lib/dotjs/multipleOf.js +80 -0
  101. package/packages/config-eslint/node_modules/ajv/lib/dotjs/not.js +84 -0
  102. package/packages/config-eslint/node_modules/ajv/lib/dotjs/oneOf.js +73 -0
  103. package/packages/config-eslint/node_modules/ajv/lib/dotjs/pattern.js +75 -0
  104. package/packages/config-eslint/node_modules/ajv/lib/dotjs/properties.js +335 -0
  105. package/packages/config-eslint/node_modules/ajv/lib/dotjs/propertyNames.js +81 -0
  106. package/packages/config-eslint/node_modules/ajv/lib/dotjs/ref.js +124 -0
  107. package/packages/config-eslint/node_modules/ajv/lib/dotjs/required.js +270 -0
  108. package/packages/config-eslint/node_modules/ajv/lib/dotjs/uniqueItems.js +86 -0
  109. package/packages/config-eslint/node_modules/ajv/lib/dotjs/validate.js +482 -0
  110. package/packages/config-eslint/node_modules/ajv/lib/keyword.js +146 -0
  111. package/packages/config-eslint/node_modules/ajv/lib/refs/data.json +17 -0
  112. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-draft-04.json +149 -0
  113. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-draft-06.json +154 -0
  114. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-draft-07.json +168 -0
  115. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-secure.json +94 -0
  116. package/packages/config-eslint/node_modules/ajv/package.json +106 -0
  117. package/packages/config-eslint/node_modules/ajv/scripts/.eslintrc.yml +3 -0
  118. package/packages/config-eslint/node_modules/ajv/scripts/bundle.js +61 -0
  119. package/packages/config-eslint/node_modules/ajv/scripts/compile-dots.js +73 -0
  120. package/packages/config-eslint/node_modules/ajv/scripts/info +10 -0
  121. package/packages/config-eslint/node_modules/ajv/scripts/prepare-tests +12 -0
  122. package/packages/config-eslint/node_modules/ajv/scripts/publish-built-version +32 -0
  123. package/packages/config-eslint/node_modules/ajv/scripts/travis-gh-pages +23 -0
  124. package/packages/config-eslint/node_modules/eslint-visitor-keys/LICENSE +201 -0
  125. package/packages/config-eslint/node_modules/eslint-visitor-keys/README.md +105 -0
  126. package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/eslint-visitor-keys.cjs +384 -0
  127. package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/eslint-visitor-keys.d.cts +27 -0
  128. package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/index.d.ts +16 -0
  129. package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/visitor-keys.d.ts +12 -0
  130. package/packages/config-eslint/node_modules/eslint-visitor-keys/lib/index.js +65 -0
  131. package/packages/config-eslint/node_modules/eslint-visitor-keys/lib/visitor-keys.js +315 -0
  132. package/packages/config-eslint/node_modules/eslint-visitor-keys/package.json +74 -0
  133. package/packages/config-eslint/node_modules/espree/LICENSE +25 -0
  134. package/packages/config-eslint/node_modules/espree/README.md +244 -0
  135. package/packages/config-eslint/node_modules/espree/dist/espree.cjs +883 -0
  136. package/packages/config-eslint/node_modules/espree/espree.js +177 -0
  137. package/packages/config-eslint/node_modules/espree/lib/espree.js +349 -0
  138. package/packages/config-eslint/node_modules/espree/lib/features.js +27 -0
  139. package/packages/config-eslint/node_modules/espree/lib/options.js +123 -0
  140. package/packages/config-eslint/node_modules/espree/lib/token-translator.js +263 -0
  141. package/packages/config-eslint/node_modules/espree/lib/version.js +3 -0
  142. package/packages/config-eslint/node_modules/espree/package.json +86 -0
  143. package/packages/config-eslint/node_modules/globals/globals.json +1998 -0
  144. package/packages/config-eslint/node_modules/globals/index.d.ts +2077 -0
  145. package/packages/config-eslint/node_modules/globals/index.js +2 -0
  146. package/packages/config-eslint/node_modules/globals/license +9 -0
  147. package/packages/config-eslint/node_modules/globals/package.json +58 -0
  148. package/packages/config-eslint/node_modules/globals/readme.md +44 -0
  149. package/packages/config-eslint/node_modules/json-schema-traverse/.eslintrc.yml +27 -0
  150. package/packages/config-eslint/node_modules/json-schema-traverse/.travis.yml +8 -0
  151. package/packages/config-eslint/node_modules/json-schema-traverse/LICENSE +21 -0
  152. package/packages/config-eslint/node_modules/json-schema-traverse/README.md +83 -0
  153. package/packages/config-eslint/node_modules/json-schema-traverse/index.js +89 -0
  154. package/packages/config-eslint/node_modules/json-schema-traverse/package.json +43 -0
  155. package/packages/config-eslint/node_modules/json-schema-traverse/spec/.eslintrc.yml +6 -0
  156. package/packages/config-eslint/node_modules/json-schema-traverse/spec/fixtures/schema.js +125 -0
  157. package/packages/config-eslint/node_modules/json-schema-traverse/spec/index.spec.js +171 -0
  158. package/packages/config-eslint/package.json +5 -3
  159. package/packages/config-eslint/plugins/no-await-in-promise.js +2 -2
  160. package/packages/config-eslint/utils/create-config.js +377 -0
  161. package/scripts/lint.eslint.sh +1 -1
  162. package/.eslintrc.cjs +0 -16
@@ -0,0 +1,171 @@
1
+ 'use strict';
2
+
3
+ var traverse = require('../index');
4
+ var assert = require('assert');
5
+
6
+ describe('json-schema-traverse', function() {
7
+ var calls;
8
+
9
+ beforeEach(function() {
10
+ calls = [];
11
+ });
12
+
13
+ it('should traverse all keywords containing schemas recursively', function() {
14
+ var schema = require('./fixtures/schema').schema;
15
+ var expectedCalls = require('./fixtures/schema').expectedCalls;
16
+
17
+ traverse(schema, {cb: callback});
18
+ assert.deepStrictEqual(calls, expectedCalls);
19
+ });
20
+
21
+ describe('Legacy v0.3.1 API', function() {
22
+ it('should traverse all keywords containing schemas recursively', function() {
23
+ var schema = require('./fixtures/schema').schema;
24
+ var expectedCalls = require('./fixtures/schema').expectedCalls;
25
+
26
+ traverse(schema, callback);
27
+ assert.deepStrictEqual(calls, expectedCalls);
28
+ });
29
+
30
+ it('should work when an options object is provided', function() {
31
+ // schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex
32
+ var schema = require('./fixtures/schema').schema;
33
+ var expectedCalls = require('./fixtures/schema').expectedCalls;
34
+
35
+ traverse(schema, {}, callback);
36
+ assert.deepStrictEqual(calls, expectedCalls);
37
+ });
38
+ });
39
+
40
+
41
+ describe('allKeys option', function() {
42
+ var schema = {
43
+ someObject: {
44
+ minimum: 1,
45
+ maximum: 2
46
+ }
47
+ };
48
+
49
+ it('should traverse objects with allKeys: true option', function() {
50
+ // schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex
51
+ var expectedCalls = [
52
+ [schema, '', schema, undefined, undefined, undefined, undefined],
53
+ [schema.someObject, '/someObject', schema, '', 'someObject', schema, undefined]
54
+ ];
55
+
56
+ traverse(schema, {allKeys: true, cb: callback});
57
+ assert.deepStrictEqual(calls, expectedCalls);
58
+ });
59
+
60
+
61
+ it('should NOT traverse objects with allKeys: false option', function() {
62
+ // schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex
63
+ var expectedCalls = [
64
+ [schema, '', schema, undefined, undefined, undefined, undefined]
65
+ ];
66
+
67
+ traverse(schema, {allKeys: false, cb: callback});
68
+ assert.deepStrictEqual(calls, expectedCalls);
69
+ });
70
+
71
+
72
+ it('should NOT traverse objects without allKeys option', function() {
73
+ // schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex
74
+ var expectedCalls = [
75
+ [schema, '', schema, undefined, undefined, undefined, undefined]
76
+ ];
77
+
78
+ traverse(schema, {cb: callback});
79
+ assert.deepStrictEqual(calls, expectedCalls);
80
+ });
81
+
82
+
83
+ it('should NOT travers objects in standard keywords which value is not a schema', function() {
84
+ var schema2 = {
85
+ const: {foo: 'bar'},
86
+ enum: ['a', 'b'],
87
+ required: ['foo'],
88
+ another: {
89
+
90
+ },
91
+ patternProperties: {}, // will not traverse - no properties
92
+ dependencies: true, // will not traverse - invalid
93
+ properties: {
94
+ smaller: {
95
+ type: 'number'
96
+ },
97
+ larger: {
98
+ type: 'number',
99
+ minimum: {$data: '1/smaller'}
100
+ }
101
+ }
102
+ };
103
+
104
+ // schema, jsonPtr, rootSchema, parentJsonPtr, parentKeyword, parentSchema, keyIndex
105
+ var expectedCalls = [
106
+ [schema2, '', schema2, undefined, undefined, undefined, undefined],
107
+ [schema2.another, '/another', schema2, '', 'another', schema2, undefined],
108
+ [schema2.properties.smaller, '/properties/smaller', schema2, '', 'properties', schema2, 'smaller'],
109
+ [schema2.properties.larger, '/properties/larger', schema2, '', 'properties', schema2, 'larger'],
110
+ ];
111
+
112
+ traverse(schema2, {allKeys: true, cb: callback});
113
+ assert.deepStrictEqual(calls, expectedCalls);
114
+ });
115
+ });
116
+
117
+ describe('pre and post', function() {
118
+ var schema = {
119
+ type: 'object',
120
+ properties: {
121
+ name: {type: 'string'},
122
+ age: {type: 'number'}
123
+ }
124
+ };
125
+
126
+ it('should traverse schema in pre-order', function() {
127
+ traverse(schema, {cb: {pre}});
128
+ var expectedCalls = [
129
+ ['pre', schema, '', schema, undefined, undefined, undefined, undefined],
130
+ ['pre', schema.properties.name, '/properties/name', schema, '', 'properties', schema, 'name'],
131
+ ['pre', schema.properties.age, '/properties/age', schema, '', 'properties', schema, 'age'],
132
+ ];
133
+ assert.deepStrictEqual(calls, expectedCalls);
134
+ });
135
+
136
+ it('should traverse schema in post-order', function() {
137
+ traverse(schema, {cb: {post}});
138
+ var expectedCalls = [
139
+ ['post', schema.properties.name, '/properties/name', schema, '', 'properties', schema, 'name'],
140
+ ['post', schema.properties.age, '/properties/age', schema, '', 'properties', schema, 'age'],
141
+ ['post', schema, '', schema, undefined, undefined, undefined, undefined],
142
+ ];
143
+ assert.deepStrictEqual(calls, expectedCalls);
144
+ });
145
+
146
+ it('should traverse schema in pre- and post-order at the same time', function() {
147
+ traverse(schema, {cb: {pre, post}});
148
+ var expectedCalls = [
149
+ ['pre', schema, '', schema, undefined, undefined, undefined, undefined],
150
+ ['pre', schema.properties.name, '/properties/name', schema, '', 'properties', schema, 'name'],
151
+ ['post', schema.properties.name, '/properties/name', schema, '', 'properties', schema, 'name'],
152
+ ['pre', schema.properties.age, '/properties/age', schema, '', 'properties', schema, 'age'],
153
+ ['post', schema.properties.age, '/properties/age', schema, '', 'properties', schema, 'age'],
154
+ ['post', schema, '', schema, undefined, undefined, undefined, undefined],
155
+ ];
156
+ assert.deepStrictEqual(calls, expectedCalls);
157
+ });
158
+ });
159
+
160
+ function callback() {
161
+ calls.push(Array.prototype.slice.call(arguments));
162
+ }
163
+
164
+ function pre() {
165
+ calls.push(['pre'].concat(Array.prototype.slice.call(arguments)));
166
+ }
167
+
168
+ function post() {
169
+ calls.push(['post'].concat(Array.prototype.slice.call(arguments)));
170
+ }
171
+ });
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alexlit/config-eslint",
3
- "version": "84.2.0",
3
+ "version": "84.3.1",
4
4
  "private": false,
5
5
  "description": "Eslint config",
6
6
  "keywords": [
@@ -37,6 +37,8 @@
37
37
  "up": "../../scripts/up.sh"
38
38
  },
39
39
  "dependencies": {
40
+ "@babel/eslint-parser": "^7.24.5",
41
+ "@eslint/eslintrc": "^3.1.0",
40
42
  "@intlify/eslint-plugin-vue-i18n": "^2.0.0",
41
43
  "@tanstack/eslint-plugin-query": "^5.35.6",
42
44
  "@typescript-eslint/eslint-plugin": "^7.9.0",
@@ -54,12 +56,12 @@
54
56
  "eslint-plugin-ext": "^0.1.0",
55
57
  "eslint-plugin-filenames": "^1.3.2",
56
58
  "eslint-plugin-import": "^2.29.1",
57
- "eslint-plugin-jsdoc": "^48.2.4",
59
+ "eslint-plugin-jsdoc": "^48.2.5",
58
60
  "eslint-plugin-jsx-a11y": "^6.8.0",
59
61
  "eslint-plugin-lit": "^1.13.0",
60
62
  "eslint-plugin-lit-a11y": "^4.1.2",
61
63
  "eslint-plugin-more": "^1.0.5",
62
- "eslint-plugin-no-await-in-promise": "^1.1.6",
64
+ "eslint-plugin-no-await-in-promise": "^2.0.0",
63
65
  "eslint-plugin-no-constructor-bind": "^2.0.4",
64
66
  "eslint-plugin-no-explicit-type-exports": "^0.12.1",
65
67
  "eslint-plugin-no-loops": "^0.3.0",
@@ -1,5 +1,5 @@
1
1
  module.exports = {
2
- extends: ['plugin:no-await-in-promise/recommended'],
2
+ extends: ['plugin:no-await-in-promise/recommended-legacy'],
3
3
 
4
- plugins: ['eslint-plugin-no-await-in-promise'],
4
+ plugins: ['no-await-in-promise'],
5
5
  };
@@ -0,0 +1,377 @@
1
+ /* eslint-disable sonarjs/no-duplicate-string, import/order, no-undef */
2
+
3
+ const { defineConfig } = require('eslint-define-config');
4
+
5
+ const DEFAULT_PLUGINS = {
6
+ /** @see [eslint-plugin-array-func](https://github.com/freaktechnik/eslint-plugin-array-func) */
7
+ 'array-func': true,
8
+
9
+ /** @see [eslint-plugin-compat](https://github.com/amilajack/eslint-plugin-compat) */
10
+ compat: true,
11
+
12
+ /** @see [eslint-plugin-decorator-position](https://github.com/NullVoxPopuli/eslint-plugin-decorator-position) */
13
+ 'decorator-position': true,
14
+
15
+ /** @see [eslint-plugin-eslint-comments](hhttps://github.com/mysticatea/eslint-plugin-eslint-comments) */
16
+ 'eslint-comments': true,
17
+
18
+ /** @see [eslint-plugin-etc](https://github.com/cartant/eslint-plugin-etc) */
19
+ etc: true,
20
+
21
+ /** @see [eslint-plugin-ext](https://github.com/jiangfengming/eslint-plugin-ext) */
22
+ ext: true,
23
+
24
+ /** @see [eslint-plugin-filenames](https://github.com/selaux/eslint-plugin-filenames) */
25
+ filenames: true,
26
+
27
+ /**
28
+ * @see [eslint-plugin-import](https://github.com/benmosher/eslint-plugin-import)
29
+ * @see [eslint-import-resolver-alias](https://github.com/johvin/eslint-import-resolver-alias)
30
+ */
31
+ import: true,
32
+
33
+ /** @see [eslint-plugin-jsdoc](https://github.com/gajus/eslint-plugin-jsdoc) */
34
+ jsdoc: true,
35
+
36
+ /** @see [eslint-plugin-jsx-a11y](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y) */
37
+ 'jsx-a11y': true,
38
+
39
+ /** @see [eslint-plugin-lit](https://github.com/43081j/eslint-plugin-lit) */
40
+ lit: true,
41
+
42
+ /** @see [eslint-plugin-lit-a11y](https://www.npmjs.com/package/eslint-plugin-lit-a11y) */
43
+ 'lit-a11y': true,
44
+
45
+ /** @see [eslint-plugin-more](https://github.com/WebbyLab/eslint-plugin-more) */
46
+ more: true,
47
+
48
+ /** @see [eslint-plugin-no-constructor-bind](https://github.com/markalfred/eslint-plugin-no-constructor-bind) */
49
+ 'no-constructor-bind': true,
50
+
51
+ /** @see [eslint-plugin-no-explicit-type-exports](https://github.com/intuit/eslint-plugin-no-explicit-type-exports) */
52
+ 'no-explicit-type-exports': true,
53
+
54
+ /** @see [eslint-plugin-no-loops](https://github.com/buildo/eslint-plugin-no-loops) */
55
+ 'no-loops': true,
56
+
57
+ /** @see [eslint-plugin-no-secrets](https://github.com/nickdeis/eslint-plugin-no-secrets) */
58
+ 'no-secrets': true,
59
+
60
+ /** @see [eslint-plugin-no-use-extend-native](https://github.com/dustinspecker/eslint-plugin-no-use-extend-native) */
61
+ 'no-use-extend-native': true,
62
+
63
+ /** @see [eslint-plugin-promise](https://github.com/xjamundx/eslint-plugin-promise) */
64
+ promise: true,
65
+
66
+ /** @see [eslint-plugin-regexp](https://github.com/ota-meshi/eslint-plugin-regexp) */
67
+ regexp: true,
68
+
69
+ /** @see [eslint-plugin-simple-import-sort](https://github.com/lydell/eslint-plugin-simple-import-sort) */
70
+ 'simple-import-sort': true,
71
+
72
+ /** @see [eslint-plugin-sonarjs](https://github.com/SonarSource/eslint-plugin-sonarjs) */
73
+ sonar: true,
74
+
75
+ /** @see [eslint-plugin-sort-class-members](https://github.com/bryanrsmith/eslint-plugin-sort-class-members) */
76
+ 'sort-class-members': true,
77
+
78
+ /** @see [eslint-plugin-sort-destructure-keys](https://github.com/mthadley/eslint-plugin-sort-destructure-keys) */
79
+ 'sort-destructure-keys': true,
80
+
81
+ /** @see [eslint-plugin-sort-keys-fix](https://github.com/leo-buneev/eslint-plugin-sort-keys-fix) */
82
+ 'sort-keys-fix': true,
83
+
84
+ /** @see [eslint-plugin-spellcheck](https://github.com/aotaduy/eslint-plugin-spellcheck) */
85
+ spellcheck: true,
86
+
87
+ /** @see [eslint-plugin-sql](https://github.com/gajus/eslint-plugin-sql) */
88
+ sql: true,
89
+
90
+ /** @see [@tanstack/query](https://tanstack.com/query/v4/docs/react/eslint/eslint-plugin-query) */
91
+ 'tanstack-query': true,
92
+
93
+ /** @see [eslint-plugin-testing-library](https://github.com/testing-library/eslint-plugin-testing-library) */
94
+ 'testing-library': true,
95
+
96
+ /** @see [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint) */
97
+ typescript: true,
98
+
99
+ /** @see [eslint-plugin-typescript-sort-keys](https://github.com/infctr/eslint-plugin-typescript-sort-keys) */
100
+ 'typescript-sort-keys': true,
101
+
102
+ /** @see [eslint-plugin-unicorn](https://github.com/sindresorhus/eslint-plugin-unicorn) */
103
+ unicorn: true,
104
+
105
+ /** @see [eslint-plugin-unused-imports](https://github.com/sweepline/eslint-plugin-unused-imports) */
106
+ 'unused-imports': true,
107
+
108
+ /** @see [eslint-plugin-vitest](https://github.com/veritem/eslint-plugin-vitest) */
109
+ vitest: true,
110
+
111
+ /** @see [eslint-plugin-vue](https://eslint.vuejs.org/rules/) */
112
+ vue: true,
113
+
114
+ /** @see [eslint-plugin-vue-i18n](https://eslint-plugin-vue-i18n.intlify.dev/) */
115
+ 'vue-i18n': true,
116
+
117
+ /** @see [eslint-plugin-vuejs-accessibility](https://github.com/vue-a11y/eslint-plugin-vuejs-accessibility) */
118
+ 'vuejs-accessibility': true,
119
+
120
+ /** @see [eslint-plugin-wc](https://github.com/43081j/eslint-plugin-wc) */
121
+ wc: true,
122
+
123
+ /** @see [eslint-plugin-write-good-comments](https://github.com/kantord/eslint-plugin-write-good-comments) */
124
+ 'write-good-comments': true,
125
+ };
126
+
127
+ const OPTIONAL_PLUGINS = {
128
+ /** @see [eslint-plugin-no-await-in-promise](https://github.com/hugo-vrijswijk/eslint-plugin-no-await-in-promise/) */
129
+ 'no-await-in-promise': false, // won't work
130
+
131
+ /** @see [eslint-plugin-node](https://github.com/mysticatea/eslint-plugin-node) */
132
+ node: false,
133
+
134
+ /** @see [eslint-plugin-security](https://github.com/nodesecurity/eslint-plugin-security) */
135
+ security: false,
136
+ };
137
+
138
+ const CODESTYLE_PLUGINS = {
139
+ /** @see [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) */
140
+ prettier: true,
141
+ };
142
+
143
+ const PLUGINS = {
144
+ ...DEFAULT_PLUGINS,
145
+ ...OPTIONAL_PLUGINS,
146
+ ...CODESTYLE_PLUGINS,
147
+ };
148
+
149
+ /**
150
+ * Create "extends" field
151
+ *
152
+ * @param {PLUGINS} plugins Enabled/disabled plugins list
153
+ */
154
+ const createPluginsList = (plugins = {}) => {
155
+ const pluginsList = [];
156
+
157
+ Object.entries({ ...PLUGINS, ...plugins })?.forEach(([name, isActive]) => {
158
+ if (isActive) {
159
+ pluginsList.push(require.resolve(`../plugins/${name}`));
160
+ }
161
+ });
162
+
163
+ return pluginsList;
164
+ };
165
+
166
+ /**
167
+ * Create eslint config
168
+ *
169
+ * @param {PLUGINS} plugins Enabled/disabled plugins list
170
+ * @param {import('eslint-define-config').defineConfig} options Eslint options
171
+ */
172
+ const createConfig = (plugins = {}, options = {}) =>
173
+ defineConfig({
174
+ ...options,
175
+
176
+ env: {
177
+ browser: true,
178
+ node: true,
179
+
180
+ ...options.env,
181
+ },
182
+
183
+ extends: [
184
+ /** @see [eslint-config-airbnb-base](https://github.com/airbnb/javascript/tree/master/packages/eslint-config-airbnb-base) */
185
+ 'airbnb-base',
186
+
187
+ ...createPluginsList(plugins),
188
+
189
+ ...(options.extends ?? []),
190
+ ],
191
+
192
+ ignorePatterns: [
193
+ 'build',
194
+ 'dist',
195
+ 'docs',
196
+ 'node_modules',
197
+ 'storybook-*',
198
+ 'sw.js',
199
+ '!.*.js',
200
+ '!.node',
201
+ '!.storybook',
202
+
203
+ ...(options.ignorePatterns ?? []),
204
+ ],
205
+
206
+ overrides: [
207
+ {
208
+ files: ['.*.cjs', '.*.js'],
209
+
210
+ rules: {
211
+ 'global-require': 'off',
212
+ },
213
+ },
214
+ {
215
+ files: ['**/store/**/*', '**/vuex/**/*', '**/pinia/**/*'],
216
+
217
+ rules: {
218
+ 'no-param-reassign': 'off',
219
+ },
220
+ },
221
+
222
+ ...(options.overrides ?? []),
223
+ ],
224
+
225
+ parserOptions: {
226
+ ecmaFeatures: { jsx: true },
227
+ extraFileExtensions: ['.vue'],
228
+ parser: '@typescript-eslint/parser',
229
+ project: ['./tsconfig.json'],
230
+
231
+ ...options.parserOptions,
232
+ },
233
+
234
+ root: options.root ?? true,
235
+
236
+ rules: {
237
+ 'class-methods-use-this': 'off',
238
+ curly: 'error',
239
+ 'func-style': ['error', 'declaration', { allowArrowFunctions: true }],
240
+ 'grouped-accessor-pairs': ['error', 'getBeforeSet'],
241
+ indent: 'off',
242
+
243
+ 'lines-around-comment': [
244
+ 'warn',
245
+ {
246
+ afterBlockComment: false,
247
+ afterLineComment: false,
248
+
249
+ allowArrayEnd: true,
250
+ allowArrayStart: true,
251
+
252
+ allowBlockEnd: true,
253
+ allowBlockStart: true,
254
+
255
+ allowClassEnd: true,
256
+ allowClassStart: true,
257
+
258
+ allowObjectEnd: true,
259
+ allowObjectStart: true,
260
+
261
+ beforeBlockComment: true,
262
+ beforeLineComment: false,
263
+ },
264
+ ],
265
+
266
+ 'no-console': 'warn',
267
+
268
+ 'no-implicit-coercion': 'error',
269
+
270
+ 'no-param-reassign': ['error', { props: false }],
271
+
272
+ 'no-restricted-exports': [
273
+ 'error',
274
+ {
275
+ restrictedNamedExports: [
276
+ 'then', // this will cause tons of confusion when your module is dynamically `import()`ed, and will break in most node ESM versions
277
+ ],
278
+ },
279
+ ],
280
+
281
+ 'no-restricted-imports': [
282
+ 'error',
283
+ {
284
+ patterns: [
285
+ {
286
+ group: ['.', '..', '*/..'],
287
+ message: 'Use absolute path instead',
288
+ },
289
+ ],
290
+ },
291
+ ],
292
+
293
+ 'no-return-await': 'off',
294
+
295
+ 'no-shadow': 'off',
296
+
297
+ 'no-underscore-dangle': 'off',
298
+
299
+ 'no-unused-vars': 'off',
300
+
301
+ // delegate to eslint-plugin-unused-imports
302
+ 'no-use-before-define': 'off',
303
+
304
+ 'nonblock-statement-body-position': ['error', 'below'],
305
+
306
+ 'padding-line-between-statements': [
307
+ 'warn',
308
+ // always
309
+ { blankLine: 'always', next: '*', prev: 'block-like' },
310
+ { blankLine: 'always', next: '*', prev: 'case' },
311
+ { blankLine: 'always', next: '*', prev: 'cjs-export' },
312
+ { blankLine: 'always', next: '*', prev: 'cjs-import' },
313
+ { blankLine: 'always', next: '*', prev: 'class' },
314
+ { blankLine: 'always', next: '*', prev: 'default' },
315
+ { blankLine: 'always', next: '*', prev: 'directive' },
316
+ { blankLine: 'always', next: '*', prev: 'expression' },
317
+ { blankLine: 'always', next: '*', prev: 'iife' },
318
+ { blankLine: 'always', next: '*', prev: 'multiline-block-like' },
319
+ { blankLine: 'always', next: '*', prev: 'multiline-const' },
320
+ { blankLine: 'always', next: '*', prev: 'multiline-expression' },
321
+ { blankLine: 'always', next: '*', prev: 'multiline-let' },
322
+ { blankLine: 'always', next: '*', prev: 'multiline-var' },
323
+ { blankLine: 'always', next: '*', prev: 'singleline-const' },
324
+ { blankLine: 'always', next: '*', prev: 'singleline-let' },
325
+ { blankLine: 'always', next: '*', prev: 'singleline-var' },
326
+ { blankLine: 'always', next: 'block-like', prev: '*' },
327
+ { blankLine: 'always', next: 'cjs-export', prev: '*' },
328
+ { blankLine: 'always', next: 'cjs-import', prev: '*' },
329
+ { blankLine: 'always', next: 'class', prev: '*' },
330
+ { blankLine: 'always', next: 'expression', prev: '*' },
331
+ { blankLine: 'always', next: 'function', prev: '*' },
332
+ { blankLine: 'always', next: 'iife', prev: '*' },
333
+ { blankLine: 'always', next: 'multiline-block-like', prev: '*' },
334
+ { blankLine: 'always', next: 'multiline-const', prev: '*' },
335
+ { blankLine: 'always', next: 'multiline-expression', prev: '*' },
336
+ { blankLine: 'always', next: 'multiline-let', prev: '*' },
337
+ { blankLine: 'always', next: 'multiline-var', prev: '*' },
338
+ { blankLine: 'always', next: 'return', prev: '*' },
339
+ { blankLine: 'always', next: 'switch', prev: '*' },
340
+ // any
341
+ { blankLine: 'any', next: 'expression', prev: 'expression' },
342
+ {
343
+ blankLine: 'any',
344
+ next: 'singleline-const',
345
+ prev: 'singleline-const',
346
+ },
347
+ { blankLine: 'any', next: 'singleline-let', prev: 'singleline-let' },
348
+ { blankLine: 'any', next: 'singleline-var', prev: 'singleline-var' },
349
+ // never
350
+ { blankLine: 'never', next: 'cjs-export', prev: 'cjs-export' },
351
+ { blankLine: 'never', next: 'cjs-import', prev: 'cjs-import' },
352
+ { blankLine: 'never', next: 'directive', prev: 'directive' },
353
+ ],
354
+
355
+ quotes: ['error', 'single'],
356
+ 'require-await': 'off',
357
+
358
+ 'sort-imports': [
359
+ 'warn',
360
+ {
361
+ allowSeparatedGroups: true,
362
+ ignoreCase: true,
363
+ ignoreDeclarationSort: true,
364
+ ignoreMemberSort: false,
365
+ memberSyntaxSortOrder: ['none', 'all', 'multiple', 'single'],
366
+ },
367
+ ],
368
+
369
+ 'sort-keys': 'off', // delegate to sort-keys-fix
370
+
371
+ 'sort-vars': 'warn',
372
+
373
+ ...options.rules,
374
+ },
375
+ });
376
+
377
+ module.exports = { createConfig };
@@ -12,4 +12,4 @@ if [ $OPTION ] && [ $OPTION = 'fix' ]; then
12
12
  echo -e "${GREY}autofix:${WHITE} true"
13
13
  fi
14
14
 
15
- eslint --ext ${FILES} --ignore-path .gitignore --ignore-path .eslintignore --ignore-path .prettierignore ./ --${OPTION}
15
+ ESLINT_USE_FLAT_CONFIG=true && eslint ./**/*{${FILES}} --${OPTION}
package/.eslintrc.cjs DELETED
@@ -1,16 +0,0 @@
1
- const { createConfig } = require('@alexlit/config-eslint');
2
-
3
- module.exports = createConfig(
4
- { node: true, security: true },
5
- {
6
- overrides: [
7
- {
8
- files: ['./packages/config-eslint/**/*.js'],
9
-
10
- rules: {
11
- 'no-undef': 'off',
12
- },
13
- },
14
- ],
15
- },
16
- );