eslint-plugin-etc-misc 1.1.1 → 1.1.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 (52) hide show
  1. package/README.md +3 -0
  2. package/dist/configs/all-strict.d.ts +1 -0
  3. package/dist/configs/all-strict.d.ts.map +1 -1
  4. package/dist/configs/all-strict.js +1 -0
  5. package/dist/configs/all-strict.js.map +1 -1
  6. package/dist/configs/all.d.ts +1 -0
  7. package/dist/configs/all.d.ts.map +1 -1
  8. package/dist/configs/all.js +1 -0
  9. package/dist/configs/all.js.map +1 -1
  10. package/dist/configs/minimal.d.ts +3 -0
  11. package/dist/configs/minimal.d.ts.map +1 -1
  12. package/dist/configs/minimal.js +3 -0
  13. package/dist/configs/minimal.js.map +1 -1
  14. package/dist/configs/recommended.d.ts +3 -0
  15. package/dist/configs/recommended.d.ts.map +1 -1
  16. package/dist/configs/recommended.js +3 -0
  17. package/dist/configs/recommended.js.map +1 -1
  18. package/dist/configs/strict-type-checked.d.ts +1 -0
  19. package/dist/configs/strict-type-checked.d.ts.map +1 -1
  20. package/dist/configs/strict-type-checked.js +1 -0
  21. package/dist/configs/strict-type-checked.js.map +1 -1
  22. package/dist/configs/strict.d.ts +1 -0
  23. package/dist/configs/strict.d.ts.map +1 -1
  24. package/dist/configs/strict.js +1 -0
  25. package/dist/configs/strict.js.map +1 -1
  26. package/dist/configs.d.ts +8 -7
  27. package/dist/configs.d.ts.map +1 -1
  28. package/dist/configs.js +1 -0
  29. package/dist/configs.js.map +1 -1
  30. package/dist/plugin.cjs +967 -404
  31. package/dist/plugin.cjs.map +4 -4
  32. package/dist/rules/no-function-declare-after-return.d.ts +19 -0
  33. package/dist/rules/no-function-declare-after-return.d.ts.map +1 -0
  34. package/dist/rules/no-function-declare-after-return.js +119 -0
  35. package/dist/rules/no-function-declare-after-return.js.map +1 -0
  36. package/dist/rules/no-use-extend-native.d.ts +9 -0
  37. package/dist/rules/no-use-extend-native.d.ts.map +1 -0
  38. package/dist/rules/no-use-extend-native.js +296 -0
  39. package/dist/rules/no-use-extend-native.js.map +1 -0
  40. package/dist/rules/no-vulnerable.d.ts +15 -0
  41. package/dist/rules/no-vulnerable.d.ts.map +1 -0
  42. package/dist/rules/no-vulnerable.js +182 -0
  43. package/dist/rules/no-vulnerable.js.map +1 -0
  44. package/dist/rules.d.ts.map +1 -1
  45. package/dist/rules.js +8 -0
  46. package/dist/rules.js.map +1 -1
  47. package/docs/docusaurus/package.json +5 -5
  48. package/docs/docusaurus/src/pages/index.module.css +2 -1
  49. package/docs/rules/no-function-declare-after-return.md +143 -0
  50. package/docs/rules/no-use-extend-native.md +89 -0
  51. package/docs/rules/no-vulnerable.md +110 -0
  52. package/package.json +26 -45
@@ -0,0 +1,182 @@
1
+ import { checkSync } from "recheck";
2
+ import { arrayFirst, isDefined, keyIn, setHas } from "ts-extras";
3
+ import { ruleCreator } from "../_internal/rule-creator.js";
4
+ const getStaticStringValue = (node) => {
5
+ if (node.type === "Literal" && typeof node.value === "string") {
6
+ return node.value;
7
+ }
8
+ if (node.type === "TemplateLiteral" &&
9
+ node.expressions.length === 0 &&
10
+ node.quasis.length === 1) {
11
+ return arrayFirst(node.quasis)?.value.cooked ?? null;
12
+ }
13
+ return null;
14
+ };
15
+ const isNonSpreadArgument = (argument) => argument.type !== "SpreadElement";
16
+ const isRegExpConstructorCall = (node) => {
17
+ if (node.callee.type !== "Identifier" || node.callee.name !== "RegExp") {
18
+ return false;
19
+ }
20
+ if (node.arguments.length === 0 || node.arguments.length > 2) {
21
+ return false;
22
+ }
23
+ const sourceArgument = arrayFirst(node.arguments);
24
+ if (!isDefined(sourceArgument) || !isNonSpreadArgument(sourceArgument)) {
25
+ return false;
26
+ }
27
+ const sourceValue = getStaticStringValue(sourceArgument);
28
+ if (sourceValue === null) {
29
+ return false;
30
+ }
31
+ const flagsArgument = node.arguments[1];
32
+ if (flagsArgument === undefined) {
33
+ return true;
34
+ }
35
+ if (flagsArgument.type === "SpreadElement") {
36
+ return false;
37
+ }
38
+ return isDefined(getStaticStringValue(flagsArgument));
39
+ };
40
+ const getStaticFlagsValue = (argument) => {
41
+ if (!isDefined(argument)) {
42
+ return "";
43
+ }
44
+ if (!isNonSpreadArgument(argument)) {
45
+ return null;
46
+ }
47
+ return getStaticStringValue(argument);
48
+ };
49
+ const getDiagnosticsErrorMessage = (error) => {
50
+ if (keyIn(error, "message") && typeof error.message === "string") {
51
+ return error.message;
52
+ }
53
+ return "No additional details provided.";
54
+ };
55
+ /**
56
+ * Detect ReDoS-vulnerable regular expressions using `recheck`.
57
+ */
58
+ const rule = ruleCreator({
59
+ create: (context, [rawOptions]) => {
60
+ const options = rawOptions ?? {};
61
+ const { ignoreErrors = true, permittableComplexities = [], ...recheckParameters } = options;
62
+ const allowedComplexities = new Set(permittableComplexities);
63
+ const reportDiagnostics = (node, source, flags) => {
64
+ const diagnostics = checkSync(source, flags, recheckParameters);
65
+ if (diagnostics.status === "safe") {
66
+ return;
67
+ }
68
+ if (diagnostics.status === "vulnerable") {
69
+ if (setHas(allowedComplexities, diagnostics.complexity.type)) {
70
+ return;
71
+ }
72
+ context.report({
73
+ data: {
74
+ summary: diagnostics.complexity.summary,
75
+ },
76
+ messageId: "vulnerable",
77
+ node,
78
+ });
79
+ return;
80
+ }
81
+ if (ignoreErrors) {
82
+ return;
83
+ }
84
+ context.report({
85
+ data: {
86
+ kind: diagnostics.error.kind,
87
+ message: getDiagnosticsErrorMessage(diagnostics.error),
88
+ },
89
+ messageId: "checkerError",
90
+ node,
91
+ });
92
+ };
93
+ return {
94
+ CallExpression: (node) => {
95
+ if (!isRegExpConstructorCall(node)) {
96
+ return;
97
+ }
98
+ const sourceArgument = arrayFirst(node.arguments);
99
+ if (!isDefined(sourceArgument) ||
100
+ !isNonSpreadArgument(sourceArgument)) {
101
+ return;
102
+ }
103
+ const source = getStaticStringValue(sourceArgument);
104
+ const secondArgument = node.arguments[1];
105
+ const flags = getStaticFlagsValue(secondArgument);
106
+ if (source === null || flags === null) {
107
+ return;
108
+ }
109
+ reportDiagnostics(node, source, flags);
110
+ },
111
+ Literal: (node) => {
112
+ if (!(node.value instanceof RegExp)) {
113
+ return;
114
+ }
115
+ reportDiagnostics(node, node.value.source, node.value.flags);
116
+ },
117
+ NewExpression: (node) => {
118
+ if (!isRegExpConstructorCall(node)) {
119
+ return;
120
+ }
121
+ const sourceArgument = arrayFirst(node.arguments);
122
+ if (!isDefined(sourceArgument) ||
123
+ !isNonSpreadArgument(sourceArgument)) {
124
+ return;
125
+ }
126
+ const source = getStaticStringValue(sourceArgument);
127
+ const secondArgument = node.arguments[1];
128
+ const flags = getStaticFlagsValue(secondArgument);
129
+ if (source === null || flags === null) {
130
+ return;
131
+ }
132
+ reportDiagnostics(node, source, flags);
133
+ },
134
+ };
135
+ },
136
+ meta: {
137
+ defaultOptions: [{}],
138
+ deprecated: false,
139
+ docs: {
140
+ deprecated: false,
141
+ description: "disallow ReDoS-vulnerable regular expressions.",
142
+ frozen: false,
143
+ recommended: true,
144
+ url: "https://nick2bad4u.github.io/eslint-plugin-etc-misc/docs/rules/no-vulnerable",
145
+ },
146
+ hasSuggestions: false,
147
+ messages: {
148
+ checkerError: "ReDoS analysis failed ({{kind}}): {{message}}. Consider setting ignoreErrors to true for this pattern.",
149
+ vulnerable: "Potential ReDoS-vulnerable regular expression detected ({{summary}}).",
150
+ },
151
+ schema: [
152
+ {
153
+ additionalProperties: false,
154
+ description: "Configuration for ReDoS analysis, including recheck parameters and local rule behavior flags.",
155
+ properties: {
156
+ ignoreErrors: {
157
+ description: "Whether to suppress errors returned by the ReDoS analyzer.",
158
+ type: "boolean",
159
+ },
160
+ permittableComplexities: {
161
+ description: "List of vulnerable complexity categories to permit without reporting.",
162
+ items: {
163
+ enum: ["polynomial", "exponential"],
164
+ type: "string",
165
+ },
166
+ type: "array",
167
+ uniqueItems: true,
168
+ },
169
+ timeout: {
170
+ description: "Maximum analysis time budget in milliseconds passed through to recheck.",
171
+ type: ["number", "null"],
172
+ },
173
+ },
174
+ type: "object",
175
+ },
176
+ ],
177
+ type: "problem",
178
+ },
179
+ name: "no-vulnerable",
180
+ });
181
+ export default rule;
182
+ //# sourceMappingURL=no-vulnerable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no-vulnerable.js","sourceRoot":"","sources":["../../src/rules/no-vulnerable.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAI9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAmJpE,KAAK,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;AA4MtE;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,gBAAgB,EACnC,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CACnD,CAAC;AAE3B;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CACnD,CAAC;AA+DxB;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CACtB,CAAC"}
1
+ {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAI9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAsJpE,KAAK,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;AAiNtE;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAAS,gBAAgB,EACnC,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CACnD,CAAC;AAE3B;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CACnD,CAAC;AA+DxB;;GAEG;AACH,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CACtB,CAAC"}
package/dist/rules.js CHANGED
@@ -25,6 +25,7 @@ import noDeprecated from "./rules/no-deprecated.js";
25
25
  import noEnum from "./rules/no-enum.js";
26
26
  import noExpressionEmptyLines from "./rules/no-expression-empty-lines.js";
27
27
  import noForeach from "./rules/no-foreach.js";
28
+ import noFunctionDeclareAfterReturn from "./rules/no-function-declare-after-return.js";
28
29
  import noImplicitAnyCatch from "./rules/no-implicit-any-catch.js";
29
30
  import noIndexImport from "./rules/no-index-import.js";
30
31
  import noInternalModules from "./rules/no-internal-modules.js";
@@ -49,8 +50,10 @@ import noUnnecessaryBreak from "./rules/no-unnecessary-break.js";
49
50
  import noUnnecessaryInitialization from "./rules/no-unnecessary-initialization.js";
50
51
  import noUnnecessaryTemplateLiteral from "./rules/no-unnecessary-template-literal.js";
51
52
  import noUnusedDisable from "./rules/no-unused-disable.js";
53
+ import noUseExtendNative from "./rules/no-use-extend-native.js";
52
54
  import noUselessGenerics from "./rules/no-useless-generics.js";
53
55
  import noValueToString from "./rules/no-value-tostring.js";
56
+ import noVulnerable from "./rules/no-vulnerable.js";
54
57
  import noWriteonly from "./rules/no-writeonly.js";
55
58
  import objectFormat from "./rules/object-format.js";
56
59
  import onlyExportName from "./rules/only-export-name.js";
@@ -147,6 +150,7 @@ const recommendedRuleNames = new Set([
147
150
  "consistent-optional-props",
148
151
  "no-assign-mutated-array",
149
152
  "no-const-enum",
153
+ "no-function-declare-after-return",
150
154
  "no-implicit-any-catch",
151
155
  "no-internal",
152
156
  "no-t",
@@ -154,6 +158,7 @@ const recommendedRuleNames = new Set([
154
158
  "no-unnecessary-break",
155
159
  "no-unnecessary-initialization",
156
160
  "no-unnecessary-template-literal",
161
+ "no-vulnerable",
157
162
  "throw-error",
158
163
  "typescript/no-boolean-literal-type",
159
164
  "typescript/prefer-readonly-array",
@@ -195,6 +200,7 @@ const baseRules = {
195
200
  "no-enum": noEnum,
196
201
  "no-expression-empty-lines": noExpressionEmptyLines,
197
202
  "no-foreach": noForeach,
203
+ "no-function-declare-after-return": noFunctionDeclareAfterReturn,
198
204
  "no-implicit-any-catch": noImplicitAnyCatch,
199
205
  "no-index-import": noIndexImport,
200
206
  "no-internal": noInternal,
@@ -219,8 +225,10 @@ const baseRules = {
219
225
  "no-unnecessary-initialization": noUnnecessaryInitialization,
220
226
  "no-unnecessary-template-literal": noUnnecessaryTemplateLiteral,
221
227
  "no-unused-disable": noUnusedDisable,
228
+ "no-use-extend-native": noUseExtendNative,
222
229
  "no-useless-generics": noUselessGenerics,
223
230
  "no-value-tostring": noValueToString,
231
+ "no-vulnerable": noVulnerable,
224
232
  "no-writeonly": noWriteonly,
225
233
  "object-format": objectFormat,
226
234
  "only-export-name": onlyExportName,
package/dist/rules.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"rules.js","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"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"}
@@ -64,19 +64,19 @@
64
64
  "devDependencies": {
65
65
  "@docusaurus/module-type-aliases": "^3.10.1",
66
66
  "@docusaurus/tsconfig": "^3.10.1",
67
- "@eslint/config-inspector": "^2.0.0",
67
+ "@eslint/config-inspector": "^2.0.1",
68
68
  "@mdx-js/react": "^3.1.1",
69
69
  "@types/react": "^19.2.14",
70
70
  "@types/react-dom": "^19.2.3",
71
71
  "docusaurus-plugin-image-zoom": "^3.0.1",
72
- "react": "^19.2.5",
73
- "react-dom": "^19.2.5",
72
+ "react": "^19.2.6",
73
+ "react-dom": "^19.2.6",
74
74
  "react-github-btn": "^1.4.0",
75
75
  "typed-css-modules": "^0.9.1",
76
76
  "typedoc": "^0.28.19",
77
77
  "typedoc-docusaurus-theme": "^1.4.2",
78
78
  "typedoc-plugin-coverage": "^4.0.3",
79
- "typedoc-plugin-dt-links": "^2.0.53",
79
+ "typedoc-plugin-dt-links": "^2.0.54",
80
80
  "typedoc-plugin-external-package-links": "^0.2.0",
81
81
  "typedoc-plugin-markdown": "^4.11.0",
82
82
  "typedoc-plugin-mdn-links": "^5.1.1",
@@ -90,7 +90,7 @@
90
90
  "react": "^19.2.4",
91
91
  "react-dom": "^19.2.4"
92
92
  },
93
- "packageManager": "npm@11.13.0",
93
+ "packageManager": "npm@11.14.1",
94
94
  "engines": {
95
95
  "node": ">=20.19.0"
96
96
  },
@@ -497,7 +497,8 @@
497
497
  block-size: 1.9rem;
498
498
  font-family:
499
499
  "Nerd Font Symbols", "Symbols Nerd Font Mono", "Symbols Nerd Font",
500
- "FiraCode Nerd Font", var(--index-font-family-base);
500
+ "FiraCode Nerd Font", "Segoe UI Symbol", var(--index-font-family-base),
501
+ sans-serif, system-ui;
501
502
  font-size: 1.12rem;
502
503
  font-variant-ligatures: none;
503
504
  inline-size: 1.9rem;
@@ -0,0 +1,143 @@
1
+ # no-function-declare-after-return
2
+
3
+ Disallow function declarations that appear after a `return` statement in the same block scope.
4
+
5
+ ## Rule details
6
+
7
+ JavaScript hoists `function` declarations to the top of their enclosing scope,
8
+ which means the following code is syntactically valid and runs without errors:
9
+
10
+ ```ts
11
+ function publicMethods(obj) {
12
+ if (obj instanceof CustomClass) {
13
+ return {
14
+ get: methodGetter(obj), // ← called before its declaration ❌
15
+ };
16
+ }
17
+ function methodGetter(obj) { // ← declared after the return
18
+ // …
19
+ }
20
+ }
21
+ ```
22
+
23
+ Even though this works at runtime, it is a readability trap:
24
+
25
+ - A reader scanning the function top-to-bottom will encounter the call to
26
+ `methodGetter` before they see its definition.
27
+ - Newcomers unfamiliar with hoisting may not realize `methodGetter` is even in
28
+ scope at the call site.
29
+ - Linters such as `no-unreachable` do not flag this because the declaration is
30
+ not unreachable — it is hoisted.
31
+
32
+ This rule enforces that every `FunctionDeclaration` is placed **before** any
33
+ `ReturnStatement` in the same block scope, making hoisting irrelevant from a
34
+ readability perspective.
35
+
36
+ ### Scope boundaries
37
+
38
+ This rule reports only when the function declaration is a **direct sibling** of
39
+ the `return` statement in the same statement list (`BlockStatement` or
40
+ `Program`).
41
+
42
+ - `return` inside `switch` cases is out of scope for this rule.
43
+ - Function declarations nested inside later `if`/`try`/`for` blocks are not directly targeted by this rule.
44
+
45
+ > **Note:** This rule targets only `FunctionDeclaration` nodes. Arrow functions,
46
+ > function expressions, generator functions, and async function expressions
47
+ > assigned to variables are **not** flagged — those are expression statements and
48
+ > are genuinely unreachable. Use `no-unreachable` for those cases.
49
+
50
+ ## ❌ Incorrect
51
+
52
+ ```ts
53
+ function outer() {
54
+ return 42;
55
+ function helper() {} // ← 'helper' should be moved before the return
56
+ }
57
+ ```
58
+
59
+ ```ts
60
+ function publicMethods(obj) {
61
+ if (obj) {
62
+ return {
63
+ set: methodSetter(obj),
64
+ get: methodGetter(obj),
65
+ };
66
+ function methodSetter(obj) { /* … */ } // ← should be before return
67
+ function methodGetter(obj) { /* … */ } // ← should be before return
68
+ }
69
+ }
70
+ ```
71
+
72
+ ## ✅ Correct
73
+
74
+ ```ts
75
+ function outer() {
76
+ function helper() {} // ← declared before the return
77
+ return helper();
78
+ }
79
+ ```
80
+
81
+ ```ts
82
+ function publicMethods(obj) {
83
+ function methodSetter(obj) { /* … */ } // ← before the return
84
+ function methodGetter(obj) { /* … */ } // ← before the return
85
+ if (obj) {
86
+ return {
87
+ set: methodSetter(obj),
88
+ get: methodGetter(obj),
89
+ };
90
+ }
91
+ }
92
+ ```
93
+
94
+ ```ts
95
+ // Arrow functions and function expressions after return are NOT flagged —
96
+ // use no-unreachable for those.
97
+ function outer() {
98
+ return 1;
99
+ const arrow = () => {}; // not a FunctionDeclaration — not flagged here
100
+ }
101
+ ```
102
+
103
+ ## Autofix
104
+
105
+ This rule provides an **autofix**. When triggered, it moves the offending
106
+ `FunctionDeclaration` to immediately before the `ReturnStatement`, preserving
107
+ the correct indentation level.
108
+
109
+ When a function declaration has leading comments (including JSDoc), the fixer
110
+ moves those comments together with the declaration.
111
+
112
+ ## Options
113
+
114
+ This rule has no options.
115
+
116
+ ## When not to use it
117
+
118
+ - If your team relies on intentional hoisting patterns with thorough documentation,
119
+ you may disable this rule.
120
+ - If the function declaration lives in a different block scope from the return
121
+ statement (e.g., hoisted to the outer function while the return is inside an
122
+ `if`-block), the fix may require manual review to confirm the intended
123
+ placement.
124
+
125
+ ## Further reading
126
+
127
+ - [MDN: Function declarations — Hoisting](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function#hoisting)
128
+ - [ESLint built-in: `no-unreachable`](https://eslint.org/docs/rules/no-unreachable)
129
+
130
+ ## ESLint flat config example
131
+
132
+ ```ts
133
+ import etcMisc from "eslint-plugin-etc-misc";
134
+
135
+ export default [
136
+ {
137
+ plugins: { "etc-misc": etcMisc },
138
+ rules: {
139
+ "etc-misc/no-function-declare-after-return": "warn",
140
+ },
141
+ },
142
+ ];
143
+ ```
@@ -0,0 +1,89 @@
1
+ # no-use-extend-native
2
+
3
+ Disallow usage of non-native members on built-in JavaScript objects.
4
+
5
+ ## Rule details
6
+
7
+ This rule helps prevent implicit reliance on monkey-patched native prototypes (for example from legacy libraries that add methods like `String.prototype.green`).
8
+
9
+ Relying on extended native objects can make code unpredictable across runtimes, bundling targets, and dependency versions.
10
+
11
+ This rule reports member usage on obvious built-in values when the accessed member is not part of the native API.
12
+
13
+ ## Targeted pattern scope
14
+
15
+ This rule is intentionally conservative and focuses on obvious built-in object shapes such as:
16
+
17
+ - String/number/boolean/regexp literals.
18
+ - Array/object literals.
19
+ - `new` expressions for built-ins.
20
+ - `String.prototype.<member>` / `Array.prototype.<member>` style accesses.
21
+
22
+ It does **not** attempt full-flow inference for arbitrary identifiers.
23
+
24
+ ## ❌ Incorrect
25
+
26
+ ```ts
27
+ const value = "unicorn".green;
28
+ ```
29
+
30
+ ```ts
31
+ const value = [].customFunction();
32
+ ```
33
+
34
+ ```ts
35
+ const value = String.prototype.shortHash();
36
+ ```
37
+
38
+ ## ✅ Correct
39
+
40
+ ```ts
41
+ const value = "unicorn".toUpperCase();
42
+ ```
43
+
44
+ ```ts
45
+ const value = [].map((entry) => entry);
46
+ ```
47
+
48
+ ```ts
49
+ const value = String.prototype.toLowerCase.call("ABC");
50
+ ```
51
+
52
+ ## Options
53
+
54
+ This rule has no options.
55
+
56
+ ## Relationship to ESLint `no-extend-native`
57
+
58
+ - ESLint core [`no-extend-native`](https://eslint.org/docs/latest/rules/no-extend-native) prevents adding properties to native prototypes.
59
+ - This rule prevents consuming non-native members when they appear in code.
60
+
61
+ Using both rules together gives better protection:
62
+
63
+ 1. Prevent introducing prototype extension.
64
+ 2. Prevent relying on prototype extension from third-party code.
65
+
66
+ ## When not to use it
67
+
68
+ - If your project intentionally and explicitly relies on controlled prototype extension.
69
+ - If your runtime environment guarantees specific prototype patches and that dependency is accepted in your architecture.
70
+
71
+ ## Further reading
72
+
73
+ - [ESLint `no-extend-native`](https://eslint.org/docs/latest/rules/no-extend-native)
74
+ - [MDN: Inheritance and the prototype chain](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain)
75
+
76
+ ## ESLint flat config example
77
+
78
+ ```ts
79
+ import etcMisc from "eslint-plugin-etc-misc";
80
+
81
+ export default [
82
+ {
83
+ plugins: { "etc-misc": etcMisc },
84
+ rules: {
85
+ "etc-misc/no-use-extend-native": "error",
86
+ },
87
+ },
88
+ ];
89
+ ```