@asd14/eslint-config 15.2.0 → 15.4.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.
package/README.md CHANGED
@@ -18,10 +18,11 @@
18
18
  ## Installation
19
19
 
20
20
  ```sh
21
- npm install --save-dev @asd14/eslint-config eslint@^9 prettier@^3 typescript@^5
21
+ npm install --save-dev @asd14/eslint-config eslint@^9 prettier@^3 typescript@^6
22
22
  ```
23
23
 
24
- > NOTE: `eslint`, `prettier` and `typescript` are peerDependencies
24
+ > [!NOTE]
25
+ > `eslint`, `prettier` and `typescript` are peerDependencies
25
26
 
26
27
  ## Exports
27
28
 
@@ -140,9 +140,13 @@ declare namespace _default {
140
140
  }];
141
141
  readonly "jsdoc/sort-tags": ["error", {
142
142
  readonly reportIntraTagGroupSpacing: false;
143
- readonly reportTagGroupSpacing: true;
143
+ readonly reportTagGroupSpacing: false;
144
144
  readonly tagSequence: readonly [{
145
+ readonly tags: readonly ["template"];
146
+ }, {
145
147
  readonly tags: readonly ["typedef", "callback"];
148
+ }, {
149
+ readonly tags: readonly ["extends"];
146
150
  }, {
147
151
  readonly tags: readonly ["param", "arg", "argument", "property", "prop"];
148
152
  }, {
@@ -137,9 +137,13 @@ export namespace nodeConfig {
137
137
  readonly "unicorn/error-message": "error";
138
138
  readonly "jsdoc/sort-tags": ["error", {
139
139
  readonly reportIntraTagGroupSpacing: false;
140
- readonly reportTagGroupSpacing: true;
140
+ readonly reportTagGroupSpacing: false;
141
141
  readonly tagSequence: readonly [{
142
+ readonly tags: readonly ["template"];
143
+ }, {
142
144
  readonly tags: readonly ["typedef", "callback"];
145
+ }, {
146
+ readonly tags: readonly ["extends"];
143
147
  }, {
144
148
  readonly tags: readonly ["param", "arg", "argument", "property", "prop"];
145
149
  }, {
@@ -45,6 +45,7 @@ export namespace reactConfig {
45
45
  readonly AudioNode: false;
46
46
  readonly AudioParam: false;
47
47
  readonly AudioParamMap: false;
48
+ readonly AudioPlaybackStats: false;
48
49
  readonly AudioProcessingEvent: false;
49
50
  readonly AudioScheduledSourceNode: false;
50
51
  readonly AudioSinkInfo: false;
@@ -836,6 +837,7 @@ export namespace reactConfig {
836
837
  readonly RTCSessionDescription: false;
837
838
  readonly RTCStatsReport: false;
838
839
  readonly RTCTrackEvent: false;
840
+ readonly Sanitizer: false;
839
841
  readonly scheduler: false;
840
842
  readonly Scheduler: false;
841
843
  readonly Scheduling: false;
@@ -1037,6 +1039,9 @@ export namespace reactConfig {
1037
1039
  readonly TextTrackList: false;
1038
1040
  readonly TextUpdateEvent: false;
1039
1041
  readonly TimeEvent: false;
1042
+ readonly TimelineTrigger: false;
1043
+ readonly TimelineTriggerRange: false;
1044
+ readonly TimelineTriggerRangeList: false;
1040
1045
  readonly TimeRanges: false;
1041
1046
  readonly ToggleEvent: false;
1042
1047
  readonly toolbar: false;
@@ -1147,9 +1152,13 @@ export namespace reactConfig {
1147
1152
  readonly XRAnchorSet: false;
1148
1153
  readonly XRBoundedReferenceSpace: false;
1149
1154
  readonly XRCamera: false;
1155
+ readonly XRCompositionLayer: false;
1150
1156
  readonly XRCPUDepthInformation: false;
1157
+ readonly XRCubeLayer: false;
1158
+ readonly XRCylinderLayer: false;
1151
1159
  readonly XRDepthInformation: false;
1152
1160
  readonly XRDOMOverlayState: false;
1161
+ readonly XREquirectLayer: false;
1153
1162
  readonly XRFrame: false;
1154
1163
  readonly XRHand: false;
1155
1164
  readonly XRHitTestResult: false;
@@ -1161,9 +1170,14 @@ export namespace reactConfig {
1161
1170
  readonly XRJointPose: false;
1162
1171
  readonly XRJointSpace: false;
1163
1172
  readonly XRLayer: false;
1173
+ readonly XRLayerEvent: false;
1164
1174
  readonly XRLightEstimate: false;
1165
1175
  readonly XRLightProbe: false;
1176
+ readonly XRPlane: false;
1177
+ readonly XRPlaneSet: false;
1166
1178
  readonly XRPose: false;
1179
+ readonly XRProjectionLayer: false;
1180
+ readonly XRQuadLayer: false;
1167
1181
  readonly XRRay: false;
1168
1182
  readonly XRReferenceSpace: false;
1169
1183
  readonly XRReferenceSpaceEvent: false;
@@ -1172,6 +1186,7 @@ export namespace reactConfig {
1172
1186
  readonly XRSession: false;
1173
1187
  readonly XRSessionEvent: false;
1174
1188
  readonly XRSpace: false;
1189
+ readonly XRSubImage: false;
1175
1190
  readonly XRSystem: false;
1176
1191
  readonly XRTransientInputHitTestResult: false;
1177
1192
  readonly XRTransientInputHitTestSource: false;
@@ -1182,6 +1197,7 @@ export namespace reactConfig {
1182
1197
  readonly XRWebGLBinding: false;
1183
1198
  readonly XRWebGLDepthInformation: false;
1184
1199
  readonly XRWebGLLayer: false;
1200
+ readonly XRWebGLSubImage: false;
1185
1201
  readonly XSLTProcessor: false;
1186
1202
  readonly AbortPaymentEvent: false;
1187
1203
  readonly BackgroundFetchEvent: false;
@@ -1390,8 +1406,8 @@ export namespace reactConfig {
1390
1406
  }, {
1391
1407
  readonly selector: "variable";
1392
1408
  readonly types: readonly ["boolean"];
1393
- readonly format: readonly ["camelCase", "PascalCase"];
1394
- readonly prefix: readonly ["is", "has", "can", "does", "should", "will", "did", "was", "are"];
1409
+ readonly format: readonly ["camelCase", "PascalCase", "UPPER_CASE"];
1410
+ readonly prefix: readonly ["is", "IS_", "has", "HAS_", "can", "CAN_", "does", "DOES_", "should", "SHOULD_", "will", "WILL_", "did", "DID_", "was", "WAS_", "are", "ARE_"];
1395
1411
  }, {
1396
1412
  readonly selector: "variable";
1397
1413
  readonly types: readonly ["boolean", "number", "string", "array"];
@@ -1409,9 +1425,13 @@ export namespace reactConfig {
1409
1425
  }];
1410
1426
  readonly "jsdoc/sort-tags": ["error", {
1411
1427
  readonly reportIntraTagGroupSpacing: false;
1412
- readonly reportTagGroupSpacing: true;
1428
+ readonly reportTagGroupSpacing: false;
1413
1429
  readonly tagSequence: readonly [{
1430
+ readonly tags: readonly ["template"];
1431
+ }, {
1414
1432
  readonly tags: readonly ["typedef", "callback"];
1433
+ }, {
1434
+ readonly tags: readonly ["extends"];
1415
1435
  }, {
1416
1436
  readonly tags: readonly ["param", "arg", "argument", "property", "prop"];
1417
1437
  }, {
@@ -138,9 +138,13 @@ export namespace tsConfig {
138
138
  readonly "unicorn/error-message": "error";
139
139
  readonly "jsdoc/sort-tags": ["error", {
140
140
  readonly reportIntraTagGroupSpacing: false;
141
- readonly reportTagGroupSpacing: true;
141
+ readonly reportTagGroupSpacing: false;
142
142
  readonly tagSequence: readonly [{
143
+ readonly tags: readonly ["template"];
144
+ }, {
143
145
  readonly tags: readonly ["typedef", "callback"];
146
+ }, {
147
+ readonly tags: readonly ["extends"];
144
148
  }, {
145
149
  readonly tags: readonly ["param", "arg", "argument", "property", "prop"];
146
150
  }, {
@@ -239,8 +243,8 @@ export namespace tsConfig {
239
243
  }, {
240
244
  readonly selector: "variable";
241
245
  readonly types: readonly ["boolean"];
242
- readonly format: readonly ["camelCase", "PascalCase"];
243
- readonly prefix: readonly ["is", "has", "can", "does", "should", "will", "did", "was", "are"];
246
+ readonly format: readonly ["camelCase", "PascalCase", "UPPER_CASE"];
247
+ readonly prefix: readonly ["is", "IS_", "has", "HAS_", "can", "CAN_", "does", "DOES_", "should", "SHOULD_", "will", "WILL_", "did", "DID_", "was", "WAS_", "are", "ARE_"];
244
248
  }, {
245
249
  readonly selector: "variable";
246
250
  readonly types: readonly ["boolean", "number", "string", "array"];
@@ -5,9 +5,13 @@ declare namespace _default {
5
5
  let rules: {
6
6
  readonly "jsdoc/sort-tags": ["error", {
7
7
  readonly reportIntraTagGroupSpacing: false;
8
- readonly reportTagGroupSpacing: true;
8
+ readonly reportTagGroupSpacing: false;
9
9
  readonly tagSequence: readonly [{
10
+ readonly tags: readonly ["template"];
11
+ }, {
10
12
  readonly tags: readonly ["typedef", "callback"];
13
+ }, {
14
+ readonly tags: readonly ["extends"];
11
15
  }, {
12
16
  readonly tags: readonly ["param", "arg", "argument", "property", "prop"];
13
17
  }, {
@@ -31,8 +31,8 @@ declare namespace _default {
31
31
  }, {
32
32
  readonly selector: "variable";
33
33
  readonly types: readonly ["boolean"];
34
- readonly format: readonly ["camelCase", "PascalCase"];
35
- readonly prefix: readonly ["is", "has", "can", "does", "should", "will", "did", "was", "are"];
34
+ readonly format: readonly ["camelCase", "PascalCase", "UPPER_CASE"];
35
+ readonly prefix: readonly ["is", "IS_", "has", "HAS_", "can", "CAN_", "does", "DOES_", "should", "SHOULD_", "will", "WILL_", "did", "DID_", "was", "WAS_", "are", "ARE_"];
36
36
  }, {
37
37
  readonly selector: "variable";
38
38
  readonly types: readonly ["boolean", "number", "string", "array"];
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@asd14/eslint-config",
4
- "version": "15.2.0",
4
+ "version": "15.4.0",
5
5
  "description": "ASD14's reusable ESLint configurations",
6
6
  "sideEffects": false,
7
7
  "publishConfig": {
@@ -56,39 +56,39 @@
56
56
  "typecheck": "tsc --noEmit"
57
57
  },
58
58
  "dependencies": {
59
- "@nx/eslint-plugin": "^22.5.3",
59
+ "@nx/eslint-plugin": "^22.7.5",
60
60
  "eslint-config-prettier": "^10.1.8",
61
61
  "eslint-plugin-import": "^2.32.0",
62
- "eslint-plugin-jest": "^29.15.0",
63
- "eslint-plugin-jsdoc": "^62.7.1",
62
+ "eslint-plugin-jest": "^29.15.2",
63
+ "eslint-plugin-jsdoc": "^63.0.0",
64
64
  "eslint-plugin-json": "^4.0.1",
65
65
  "eslint-plugin-jsx-a11y": "^6.10.2",
66
66
  "eslint-plugin-no-inferred-method-name": "^2.0.0",
67
- "eslint-plugin-prettier": "^5.5.5",
68
- "eslint-plugin-promise": "^7.2.1",
67
+ "eslint-plugin-prettier": "^5.5.6",
68
+ "eslint-plugin-promise": "^7.3.0",
69
69
  "eslint-plugin-react": "^7.37.5",
70
- "eslint-plugin-react-hooks": "^7.0.1",
70
+ "eslint-plugin-react-hooks": "^7.1.1",
71
71
  "eslint-plugin-react-refresh": "^0.5.2",
72
- "eslint-plugin-testing-library": "^7.16.0",
73
- "eslint-plugin-unicorn": "^63.0.0",
74
- "globals": "^17.4.0",
75
- "typescript-eslint": "^8.56.1"
72
+ "eslint-plugin-testing-library": "^7.16.2",
73
+ "eslint-plugin-unicorn": "^64.0.0",
74
+ "globals": "^17.6.0",
75
+ "typescript-eslint": "^8.60.0"
76
76
  },
77
77
  "devDependencies": {
78
- "@asd14/prettier-config": "^1.2.0",
79
- "@asd14/ts-config": "^1.3.0",
80
- "@commitlint/cli": "^20.4.2",
81
- "@commitlint/config-conventional": "^20.4.2",
78
+ "@asd14/prettier-config": "^1.4.0",
79
+ "@asd14/ts-config": "^1.5.0",
80
+ "@commitlint/cli": "^21.0.1",
81
+ "@commitlint/config-conventional": "^21.0.1",
82
82
  "@semantic-release/git": "^10.0.1",
83
- "conventional-changelog-conventionalcommits": "^9.1.0",
83
+ "conventional-changelog-conventionalcommits": "^9.3.1",
84
84
  "semantic-release": "^25.0.3"
85
85
  },
86
86
  "peerDependencies": {
87
87
  "eslint": "^9",
88
88
  "prettier": "^3",
89
- "typescript": "^5"
89
+ "typescript": "^5 || ^6"
90
90
  },
91
91
  "engines": {
92
- "node": "^22.12.0 || ^24.0.0"
92
+ "node": ">=22.12.0"
93
93
  }
94
94
  }
@@ -14,18 +14,28 @@ const nodeSpecificRules = {
14
14
  "unicorn/prevent-abbreviations": [
15
15
  "error",
16
16
  {
17
- ignore: ["utils", "db", "props"],
17
+ // ignore identifiers and filenames (basename only)
18
+ ignore: ["utils", "db"],
18
19
  replacements: {
20
+ // allow
21
+ acc: false,
22
+ dir: false,
23
+ fn: false,
19
24
  i: false,
20
25
  j: false,
21
- params: false,
22
26
  lib: false,
27
+ params: false,
28
+
29
+ // rewrite
23
30
  args: {
24
31
  params: true,
25
32
  },
26
- props: false,
27
- fn: false,
28
- acc: false,
33
+ folder: {
34
+ dir: true,
35
+ },
36
+ props: {
37
+ params: true,
38
+ },
29
39
  },
30
40
  },
31
41
  ],
@@ -16,24 +16,32 @@ const reactSpecificRules = {
16
16
  "unicorn/prevent-abbreviations": [
17
17
  "error",
18
18
  {
19
+ // ignore identifiers and filenames (basename only)
19
20
  ignore: ["utils", "props"],
20
21
  replacements: {
22
+ // allow
23
+ acc: false,
24
+ dir: false,
25
+ fn: false,
21
26
  i: false,
22
- ref: false,
23
- params: false,
24
27
  lib: false,
28
+ params: false,
29
+ props: false,
30
+ ref: false,
31
+
32
+ // rewrite
25
33
  args: {
26
34
  params: true,
27
35
  },
28
- props: false,
36
+ folder: {
37
+ dir: true,
38
+ },
29
39
  opts: {
30
40
  props: true,
31
41
  },
32
42
  options: {
33
43
  props: true,
34
44
  },
35
- fn: false,
36
- acc: false,
37
45
  },
38
46
  },
39
47
  ],
@@ -10,9 +10,11 @@ export default /** @type {const} */ ({
10
10
  "error",
11
11
  {
12
12
  reportIntraTagGroupSpacing: false,
13
- reportTagGroupSpacing: true,
13
+ reportTagGroupSpacing: false,
14
14
  tagSequence: [
15
+ { tags: ["template"] },
15
16
  { tags: ["typedef", "callback"] },
17
+ { tags: ["extends"] },
16
18
  { tags: ["param", "arg", "argument", "property", "prop"] },
17
19
  { tags: ["returns", "return"] },
18
20
  { tags: ["throws", "exception"] },
@@ -57,17 +57,26 @@ export default /** @type {const} */ ({
57
57
  {
58
58
  selector: "variable",
59
59
  types: ["boolean"],
60
- format: ["camelCase", "PascalCase"],
60
+ format: ["camelCase", "PascalCase", "UPPER_CASE"],
61
61
  prefix: [
62
62
  "is",
63
+ "IS_",
63
64
  "has",
65
+ "HAS_",
64
66
  "can",
67
+ "CAN_",
65
68
  "does",
69
+ "DOES_",
66
70
  "should",
71
+ "SHOULD_",
67
72
  "will",
73
+ "WILL_",
68
74
  "did",
75
+ "DID_",
69
76
  "was",
77
+ "WAS_",
70
78
  "are",
79
+ "ARE_",
71
80
  ],
72
81
  },
73
82
  {