@sarj/eslint-plugin 15.10.1 → 15.10.4
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/dist/index.cjs +34 -5
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +34 -5
- package/package.json +10 -10
package/dist/index.cjs
CHANGED
|
@@ -14130,6 +14130,7 @@ var typeParameterNames = (...declarations) => {
|
|
|
14130
14130
|
var readConstructor = (ctor, declared, typeParameters) => {
|
|
14131
14131
|
const body2 = ctor.value.body;
|
|
14132
14132
|
const storedFieldsFrom = /* @__PURE__ */ new Map();
|
|
14133
|
+
const storedMemberFieldsFrom = /* @__PURE__ */ new Map();
|
|
14133
14134
|
let constructedFields = 0;
|
|
14134
14135
|
if (body2 !== null && body2 !== void 0) {
|
|
14135
14136
|
const pending = [...body2.body];
|
|
@@ -14163,13 +14164,21 @@ var readConstructor = (ctor, declared, typeParameters) => {
|
|
|
14163
14164
|
const fields = storedFieldsFrom.get(source.object.name) ?? /* @__PURE__ */ new Set();
|
|
14164
14165
|
fields.add(storedField);
|
|
14165
14166
|
storedFieldsFrom.set(source.object.name, fields);
|
|
14167
|
+
const member = staticMemberName6(source);
|
|
14168
|
+
if (member !== null) {
|
|
14169
|
+
const members = storedMemberFieldsFrom.get(source.object.name) ?? /* @__PURE__ */ new Map();
|
|
14170
|
+
const memberFields = members.get(member) ?? /* @__PURE__ */ new Set();
|
|
14171
|
+
memberFields.add(storedField);
|
|
14172
|
+
members.set(member, memberFields);
|
|
14173
|
+
storedMemberFieldsFrom.set(source.object.name, members);
|
|
14174
|
+
}
|
|
14166
14175
|
}
|
|
14167
14176
|
}
|
|
14168
14177
|
}
|
|
14169
14178
|
const collaborators = [];
|
|
14170
14179
|
for (const parameter of ctor.value.params) {
|
|
14171
|
-
for (const reference of parameterCollaborators(parameter, declared)) {
|
|
14172
|
-
const fields = parameter.type === import_utils69.AST_NODE_TYPES.TSParameterProperty ? [reference.name] : [...storedFieldsFrom.get(reference.name) ?? []];
|
|
14180
|
+
for (const reference of parameterCollaborators(parameter, declared, storedMemberFieldsFrom)) {
|
|
14181
|
+
const fields = parameter.type === import_utils69.AST_NODE_TYPES.TSParameterProperty ? [reference.name] : reference.fields.length > 0 ? reference.fields : [...storedFieldsFrom.get(reference.name) ?? []];
|
|
14173
14182
|
if (fields.length === 0) continue;
|
|
14174
14183
|
if (CONFIGISH_TYPE_RE.test(reference.typeName)) continue;
|
|
14175
14184
|
if (CONFIGISH_NAME_RE.test(reference.name)) continue;
|
|
@@ -14182,14 +14191,33 @@ var readConstructor = (ctor, declared, typeParameters) => {
|
|
|
14182
14191
|
}
|
|
14183
14192
|
return { collaborators, constructedFields };
|
|
14184
14193
|
};
|
|
14185
|
-
var parameterCollaborators = (parameter, declared) => {
|
|
14194
|
+
var parameterCollaborators = (parameter, declared, storedMemberFieldsFrom) => {
|
|
14186
14195
|
let target = parameter;
|
|
14187
14196
|
if (target.type === import_utils69.AST_NODE_TYPES.AssignmentPattern) target = target.left;
|
|
14188
14197
|
if (target.type === import_utils69.AST_NODE_TYPES.ObjectPattern) {
|
|
14189
14198
|
return objectPatternCollaborators(target, declared);
|
|
14190
14199
|
}
|
|
14191
14200
|
const named2 = namedParameterCollaborator(parameter);
|
|
14192
|
-
|
|
14201
|
+
if (named2 !== null && !CONFIGISH_NAME_RE.test(named2.name) && !CONFIGISH_TYPE_RE.test(named2.typeName)) return [named2];
|
|
14202
|
+
return namedBagCollaborators(parameter, declared, storedMemberFieldsFrom);
|
|
14203
|
+
};
|
|
14204
|
+
var namedBagCollaborators = (annotated, declared, storedMemberFieldsFrom) => {
|
|
14205
|
+
let target = annotated;
|
|
14206
|
+
if (target.type === import_utils69.AST_NODE_TYPES.TSParameterProperty) target = target.parameter;
|
|
14207
|
+
if (target.type === import_utils69.AST_NODE_TYPES.AssignmentPattern) target = target.left;
|
|
14208
|
+
if (target.type !== import_utils69.AST_NODE_TYPES.Identifier) return [];
|
|
14209
|
+
const members = bagMemberTypes(target.typeAnnotation?.typeAnnotation, declared);
|
|
14210
|
+
if (members === null) return [];
|
|
14211
|
+
const storedMembers = storedMemberFieldsFrom.get(target.name);
|
|
14212
|
+
if (storedMembers === void 0) return [];
|
|
14213
|
+
const collaborators = [];
|
|
14214
|
+
for (const [name, fields] of storedMembers) {
|
|
14215
|
+
if (CONFIGISH_NAME_RE.test(name)) continue;
|
|
14216
|
+
const reference = members.get(name);
|
|
14217
|
+
if (reference === void 0) continue;
|
|
14218
|
+
collaborators.push({ name, ...reference, fields: [...fields] });
|
|
14219
|
+
}
|
|
14220
|
+
return collaborators;
|
|
14193
14221
|
};
|
|
14194
14222
|
var namedParameterCollaborator = (annotated) => {
|
|
14195
14223
|
let target = annotated;
|
|
@@ -14220,6 +14248,7 @@ var objectPatternCollaborators = (pattern, declared) => {
|
|
|
14220
14248
|
return collaborators;
|
|
14221
14249
|
};
|
|
14222
14250
|
var bagMemberTypes = (annotation, declared) => {
|
|
14251
|
+
if (annotation === void 0) return null;
|
|
14223
14252
|
if (annotation.type === import_utils69.AST_NODE_TYPES.TSTypeLiteral) {
|
|
14224
14253
|
return propertySignatureTypes(annotation.members);
|
|
14225
14254
|
}
|
|
@@ -16056,7 +16085,7 @@ var rules = {
|
|
|
16056
16085
|
};
|
|
16057
16086
|
var meta = {
|
|
16058
16087
|
name: "@sarj/eslint-plugin",
|
|
16059
|
-
version: "15.10.
|
|
16088
|
+
version: "15.10.4"
|
|
16060
16089
|
};
|
|
16061
16090
|
var applicationOnlyRules = [
|
|
16062
16091
|
"no-restricted-library-load",
|
package/dist/index.d.cts
CHANGED
|
@@ -438,7 +438,7 @@ type FlatPreset = {
|
|
|
438
438
|
declare const plugin: {
|
|
439
439
|
readonly meta: {
|
|
440
440
|
readonly name: "@sarj/eslint-plugin";
|
|
441
|
-
readonly version: "15.10.
|
|
441
|
+
readonly version: "15.10.4";
|
|
442
442
|
};
|
|
443
443
|
readonly rules: {
|
|
444
444
|
readonly "iac-source-coupled-test": DocumentedRule<readonly [], "rawSourceOracle">;
|
package/dist/index.d.ts
CHANGED
|
@@ -438,7 +438,7 @@ type FlatPreset = {
|
|
|
438
438
|
declare const plugin: {
|
|
439
439
|
readonly meta: {
|
|
440
440
|
readonly name: "@sarj/eslint-plugin";
|
|
441
|
-
readonly version: "15.10.
|
|
441
|
+
readonly version: "15.10.4";
|
|
442
442
|
};
|
|
443
443
|
readonly rules: {
|
|
444
444
|
readonly "iac-source-coupled-test": DocumentedRule<readonly [], "rawSourceOracle">;
|
package/dist/index.js
CHANGED
|
@@ -14105,6 +14105,7 @@ var typeParameterNames = (...declarations) => {
|
|
|
14105
14105
|
var readConstructor = (ctor, declared, typeParameters) => {
|
|
14106
14106
|
const body2 = ctor.value.body;
|
|
14107
14107
|
const storedFieldsFrom = /* @__PURE__ */ new Map();
|
|
14108
|
+
const storedMemberFieldsFrom = /* @__PURE__ */ new Map();
|
|
14108
14109
|
let constructedFields = 0;
|
|
14109
14110
|
if (body2 !== null && body2 !== void 0) {
|
|
14110
14111
|
const pending = [...body2.body];
|
|
@@ -14138,13 +14139,21 @@ var readConstructor = (ctor, declared, typeParameters) => {
|
|
|
14138
14139
|
const fields = storedFieldsFrom.get(source.object.name) ?? /* @__PURE__ */ new Set();
|
|
14139
14140
|
fields.add(storedField);
|
|
14140
14141
|
storedFieldsFrom.set(source.object.name, fields);
|
|
14142
|
+
const member = staticMemberName6(source);
|
|
14143
|
+
if (member !== null) {
|
|
14144
|
+
const members = storedMemberFieldsFrom.get(source.object.name) ?? /* @__PURE__ */ new Map();
|
|
14145
|
+
const memberFields = members.get(member) ?? /* @__PURE__ */ new Set();
|
|
14146
|
+
memberFields.add(storedField);
|
|
14147
|
+
members.set(member, memberFields);
|
|
14148
|
+
storedMemberFieldsFrom.set(source.object.name, members);
|
|
14149
|
+
}
|
|
14141
14150
|
}
|
|
14142
14151
|
}
|
|
14143
14152
|
}
|
|
14144
14153
|
const collaborators = [];
|
|
14145
14154
|
for (const parameter of ctor.value.params) {
|
|
14146
|
-
for (const reference of parameterCollaborators(parameter, declared)) {
|
|
14147
|
-
const fields = parameter.type === AST_NODE_TYPES55.TSParameterProperty ? [reference.name] : [...storedFieldsFrom.get(reference.name) ?? []];
|
|
14155
|
+
for (const reference of parameterCollaborators(parameter, declared, storedMemberFieldsFrom)) {
|
|
14156
|
+
const fields = parameter.type === AST_NODE_TYPES55.TSParameterProperty ? [reference.name] : reference.fields.length > 0 ? reference.fields : [...storedFieldsFrom.get(reference.name) ?? []];
|
|
14148
14157
|
if (fields.length === 0) continue;
|
|
14149
14158
|
if (CONFIGISH_TYPE_RE.test(reference.typeName)) continue;
|
|
14150
14159
|
if (CONFIGISH_NAME_RE.test(reference.name)) continue;
|
|
@@ -14157,14 +14166,33 @@ var readConstructor = (ctor, declared, typeParameters) => {
|
|
|
14157
14166
|
}
|
|
14158
14167
|
return { collaborators, constructedFields };
|
|
14159
14168
|
};
|
|
14160
|
-
var parameterCollaborators = (parameter, declared) => {
|
|
14169
|
+
var parameterCollaborators = (parameter, declared, storedMemberFieldsFrom) => {
|
|
14161
14170
|
let target = parameter;
|
|
14162
14171
|
if (target.type === AST_NODE_TYPES55.AssignmentPattern) target = target.left;
|
|
14163
14172
|
if (target.type === AST_NODE_TYPES55.ObjectPattern) {
|
|
14164
14173
|
return objectPatternCollaborators(target, declared);
|
|
14165
14174
|
}
|
|
14166
14175
|
const named2 = namedParameterCollaborator(parameter);
|
|
14167
|
-
|
|
14176
|
+
if (named2 !== null && !CONFIGISH_NAME_RE.test(named2.name) && !CONFIGISH_TYPE_RE.test(named2.typeName)) return [named2];
|
|
14177
|
+
return namedBagCollaborators(parameter, declared, storedMemberFieldsFrom);
|
|
14178
|
+
};
|
|
14179
|
+
var namedBagCollaborators = (annotated, declared, storedMemberFieldsFrom) => {
|
|
14180
|
+
let target = annotated;
|
|
14181
|
+
if (target.type === AST_NODE_TYPES55.TSParameterProperty) target = target.parameter;
|
|
14182
|
+
if (target.type === AST_NODE_TYPES55.AssignmentPattern) target = target.left;
|
|
14183
|
+
if (target.type !== AST_NODE_TYPES55.Identifier) return [];
|
|
14184
|
+
const members = bagMemberTypes(target.typeAnnotation?.typeAnnotation, declared);
|
|
14185
|
+
if (members === null) return [];
|
|
14186
|
+
const storedMembers = storedMemberFieldsFrom.get(target.name);
|
|
14187
|
+
if (storedMembers === void 0) return [];
|
|
14188
|
+
const collaborators = [];
|
|
14189
|
+
for (const [name, fields] of storedMembers) {
|
|
14190
|
+
if (CONFIGISH_NAME_RE.test(name)) continue;
|
|
14191
|
+
const reference = members.get(name);
|
|
14192
|
+
if (reference === void 0) continue;
|
|
14193
|
+
collaborators.push({ name, ...reference, fields: [...fields] });
|
|
14194
|
+
}
|
|
14195
|
+
return collaborators;
|
|
14168
14196
|
};
|
|
14169
14197
|
var namedParameterCollaborator = (annotated) => {
|
|
14170
14198
|
let target = annotated;
|
|
@@ -14195,6 +14223,7 @@ var objectPatternCollaborators = (pattern, declared) => {
|
|
|
14195
14223
|
return collaborators;
|
|
14196
14224
|
};
|
|
14197
14225
|
var bagMemberTypes = (annotation, declared) => {
|
|
14226
|
+
if (annotation === void 0) return null;
|
|
14198
14227
|
if (annotation.type === AST_NODE_TYPES55.TSTypeLiteral) {
|
|
14199
14228
|
return propertySignatureTypes(annotation.members);
|
|
14200
14229
|
}
|
|
@@ -16037,7 +16066,7 @@ var rules = {
|
|
|
16037
16066
|
};
|
|
16038
16067
|
var meta = {
|
|
16039
16068
|
name: "@sarj/eslint-plugin",
|
|
16040
|
-
version: "15.10.
|
|
16069
|
+
version: "15.10.4"
|
|
16041
16070
|
};
|
|
16042
16071
|
var applicationOnlyRules = [
|
|
16043
16072
|
"no-restricted-library-load",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sarj/eslint-plugin",
|
|
3
|
-
"version": "15.10.
|
|
3
|
+
"version": "15.10.4",
|
|
4
4
|
"packageManager": "npm@12.0.2",
|
|
5
5
|
"description": "Custom ESLint rules for hypermodern TypeScript / React / Next.js projects",
|
|
6
6
|
"type": "module",
|
|
@@ -59,10 +59,10 @@
|
|
|
59
59
|
"@eslint-community/eslint-plugin-eslint-comments": "^4.7.2",
|
|
60
60
|
"@eslint/compat": "^2.1.0",
|
|
61
61
|
"@eslint/js": "10.0.1",
|
|
62
|
-
"@types/node": "
|
|
63
|
-
"@typescript-eslint/parser": "
|
|
64
|
-
"@typescript-eslint/rule-tester": "
|
|
65
|
-
"@typescript-eslint/utils": "
|
|
62
|
+
"@types/node": "26.2.0",
|
|
63
|
+
"@typescript-eslint/parser": "8.67.0",
|
|
64
|
+
"@typescript-eslint/rule-tester": "8.67.0",
|
|
65
|
+
"@typescript-eslint/utils": "8.67.0",
|
|
66
66
|
"eslint": "^10.8.1",
|
|
67
67
|
"eslint-plugin-better-tailwindcss": "^4.7.0",
|
|
68
68
|
"eslint-plugin-perfectionist": "^5.10.1",
|
|
@@ -73,9 +73,9 @@
|
|
|
73
73
|
"eslint-plugin-unicorn": "^73.0.0",
|
|
74
74
|
"eslint-plugin-zod": "^4.9.1",
|
|
75
75
|
"tsup": "latest",
|
|
76
|
-
"typescript": "
|
|
76
|
+
"typescript": "6.0.3",
|
|
77
77
|
"typescript-eslint": "^8.67.0",
|
|
78
|
-
"vitest": "
|
|
78
|
+
"vitest": "4.1.11"
|
|
79
79
|
},
|
|
80
80
|
"peerDependencies": {
|
|
81
81
|
"eslint": ">=9.39.4",
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
"node": ">=22.13.0"
|
|
86
86
|
},
|
|
87
87
|
"allowScripts": {
|
|
88
|
-
"esbuild@0.28.
|
|
88
|
+
"esbuild@0.28.2": true,
|
|
89
89
|
"fsevents@2.3.3": true
|
|
90
90
|
},
|
|
91
91
|
"peerDependenciesMeta": {
|
|
@@ -95,8 +95,8 @@
|
|
|
95
95
|
},
|
|
96
96
|
"overrides": {
|
|
97
97
|
"brace-expansion@^5.0.0": "5.0.9",
|
|
98
|
-
"esbuild": "
|
|
99
|
-
"nanoid@<3.3.
|
|
98
|
+
"esbuild": "0.28.2",
|
|
99
|
+
"nanoid@<3.3.18": "3.3.18",
|
|
100
100
|
"eslint-plugin-react": {
|
|
101
101
|
"eslint": "$eslint"
|
|
102
102
|
}
|