eslint-plugin-etc-misc 1.1.1 → 1.1.3

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 (54) 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/sidebars.rules.ts +1 -1
  49. package/docs/docusaurus/src/pages/index.module.css +2 -1
  50. package/docs/rules/no-expression-empty-lines.md +3 -1
  51. package/docs/rules/no-function-declare-after-return.md +149 -0
  52. package/docs/rules/no-use-extend-native.md +95 -0
  53. package/docs/rules/no-vulnerable.md +116 -0
  54. 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
  },
@@ -174,7 +174,7 @@ const createRuleItems = (ruleDocIds: readonly string[]): SidebarDocItem[] =>
174
174
  return ruleDocId;
175
175
  }
176
176
 
177
- return `${entry.catalogId} · ${entry.ruleName}`;
177
+ return entry.ruleName;
178
178
  })(),
179
179
  type: "doc",
180
180
  }));
@@ -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;
@@ -23,7 +23,9 @@ formatting noise.
23
23
  ## ❌ Incorrect
24
24
 
25
25
  ```ts
26
- someCall(1);
26
+ someCall(
27
+
28
+ 1);
27
29
  ```
28
30
 
29
31
  ## ✅ Correct
@@ -0,0 +1,149 @@
1
+ # no-function-declare-after-return
2
+
3
+ Disallow function declarations that appear after a `return` statement in the same block scope.
4
+
5
+ ## Why this rule is included here
6
+
7
+ This rule was integrated into `eslint-plugin-etc-misc` to avoid requiring a separate single-rule plugin dependency.
8
+
9
+ Original plugin source: [`eslint-plugin-no-function-declare-after-return`](https://github.com/bhumijgupta/eslint-plugin-no-function-declare-after-return).
10
+
11
+ ## Rule details
12
+
13
+ JavaScript hoists `function` declarations to the top of their enclosing scope,
14
+ which means the following code is syntactically valid and runs without errors:
15
+
16
+ ```ts
17
+ function publicMethods(obj) {
18
+ if (obj instanceof CustomClass) {
19
+ return {
20
+ get: methodGetter(obj), // ← called before its declaration ❌
21
+ };
22
+ }
23
+ function methodGetter(obj) { // ← declared after the return
24
+ // …
25
+ }
26
+ }
27
+ ```
28
+
29
+ Even though this works at runtime, it is a readability trap:
30
+
31
+ - A reader scanning the function top-to-bottom will encounter the call to
32
+ `methodGetter` before they see its definition.
33
+ - Newcomers unfamiliar with hoisting may not realize `methodGetter` is even in
34
+ scope at the call site.
35
+ - Linters such as `no-unreachable` do not flag this because the declaration is
36
+ not unreachable — it is hoisted.
37
+
38
+ This rule enforces that every `FunctionDeclaration` is placed **before** any
39
+ `ReturnStatement` in the same block scope, making hoisting irrelevant from a
40
+ readability perspective.
41
+
42
+ ### Scope boundaries
43
+
44
+ This rule reports only when the function declaration is a **direct sibling** of
45
+ the `return` statement in the same statement list (`BlockStatement` or
46
+ `Program`).
47
+
48
+ - `return` inside `switch` cases is out of scope for this rule.
49
+ - Function declarations nested inside later `if`/`try`/`for` blocks are not directly targeted by this rule.
50
+
51
+ > **Note:** This rule targets only `FunctionDeclaration` nodes. Arrow functions,
52
+ > function expressions, generator functions, and async function expressions
53
+ > assigned to variables are **not** flagged — those are expression statements and
54
+ > are genuinely unreachable. Use `no-unreachable` for those cases.
55
+
56
+ ## ❌ Incorrect
57
+
58
+ ```ts
59
+ function outer() {
60
+ return 42;
61
+ function helper() {} // ← 'helper' should be moved before the return
62
+ }
63
+ ```
64
+
65
+ ```ts
66
+ function publicMethods(obj) {
67
+ if (obj) {
68
+ return {
69
+ set: methodSetter(obj),
70
+ get: methodGetter(obj),
71
+ };
72
+ function methodSetter(obj) { /* … */ } // ← should be before return
73
+ function methodGetter(obj) { /* … */ } // ← should be before return
74
+ }
75
+ }
76
+ ```
77
+
78
+ ## ✅ Correct
79
+
80
+ ```ts
81
+ function outer() {
82
+ function helper() {} // ← declared before the return
83
+ return helper();
84
+ }
85
+ ```
86
+
87
+ ```ts
88
+ function publicMethods(obj) {
89
+ function methodSetter(obj) { /* … */ } // ← before the return
90
+ function methodGetter(obj) { /* … */ } // ← before the return
91
+ if (obj) {
92
+ return {
93
+ set: methodSetter(obj),
94
+ get: methodGetter(obj),
95
+ };
96
+ }
97
+ }
98
+ ```
99
+
100
+ ```ts
101
+ // Arrow functions and function expressions after return are NOT flagged —
102
+ // use no-unreachable for those.
103
+ function outer() {
104
+ return 1;
105
+ const arrow = () => {}; // not a FunctionDeclaration — not flagged here
106
+ }
107
+ ```
108
+
109
+ ## Autofix
110
+
111
+ This rule provides an **autofix**. When triggered, it moves the offending
112
+ `FunctionDeclaration` to immediately before the `ReturnStatement`, preserving
113
+ the correct indentation level.
114
+
115
+ When a function declaration has leading comments (including JSDoc), the fixer
116
+ moves those comments together with the declaration.
117
+
118
+ ## Options
119
+
120
+ This rule has no options.
121
+
122
+ ## When not to use it
123
+
124
+ - If your team relies on intentional hoisting patterns with thorough documentation,
125
+ you may disable this rule.
126
+ - If the function declaration lives in a different block scope from the return
127
+ statement (e.g., hoisted to the outer function while the return is inside an
128
+ `if`-block), the fix may require manual review to confirm the intended
129
+ placement.
130
+
131
+ ## Further reading
132
+
133
+ - [MDN: Function declarations — Hoisting](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/function#hoisting)
134
+ - [ESLint built-in: `no-unreachable`](https://eslint.org/docs/rules/no-unreachable)
135
+
136
+ ## ESLint flat config example
137
+
138
+ ```ts
139
+ import etcMisc from "eslint-plugin-etc-misc";
140
+
141
+ export default [
142
+ {
143
+ plugins: { "etc-misc": etcMisc },
144
+ rules: {
145
+ "etc-misc/no-function-declare-after-return": "warn",
146
+ },
147
+ },
148
+ ];
149
+ ```
@@ -0,0 +1,95 @@
1
+ # no-use-extend-native
2
+
3
+ Disallow usage of non-native members on built-in JavaScript objects.
4
+
5
+ ## Why this rule is included here
6
+
7
+ This rule was integrated into `eslint-plugin-etc-misc` to avoid requiring a separate single-rule plugin dependency.
8
+
9
+ Original plugin source: [`eslint-plugin-no-use-extend-native`](https://github.com/dustinspecker/eslint-plugin-no-use-extend-native).
10
+
11
+ ## Rule details
12
+
13
+ This rule helps prevent implicit reliance on monkey-patched native prototypes (for example from legacy libraries that add methods like `String.prototype.green`).
14
+
15
+ Relying on extended native objects can make code unpredictable across runtimes, bundling targets, and dependency versions.
16
+
17
+ This rule reports member usage on obvious built-in values when the accessed member is not part of the native API.
18
+
19
+ ## Targeted pattern scope
20
+
21
+ This rule is intentionally conservative and focuses on obvious built-in object shapes such as:
22
+
23
+ - String/number/boolean/regexp literals.
24
+ - Array/object literals.
25
+ - `new` expressions for built-ins.
26
+ - `String.prototype.<member>` / `Array.prototype.<member>` style accesses.
27
+
28
+ It does **not** attempt full-flow inference for arbitrary identifiers.
29
+
30
+ ## ❌ Incorrect
31
+
32
+ ```ts
33
+ const value = "unicorn".green;
34
+ ```
35
+
36
+ ```ts
37
+ const value = [].customFunction();
38
+ ```
39
+
40
+ ```ts
41
+ const value = String.prototype.shortHash();
42
+ ```
43
+
44
+ ## ✅ Correct
45
+
46
+ ```ts
47
+ const value = "unicorn".toUpperCase();
48
+ ```
49
+
50
+ ```ts
51
+ const value = [].map((entry) => entry);
52
+ ```
53
+
54
+ ```ts
55
+ const value = String.prototype.toLowerCase.call("ABC");
56
+ ```
57
+
58
+ ## Options
59
+
60
+ This rule has no options.
61
+
62
+ ## Relationship to ESLint `no-extend-native`
63
+
64
+ - ESLint core [`no-extend-native`](https://eslint.org/docs/latest/rules/no-extend-native) prevents adding properties to native prototypes.
65
+ - This rule prevents consuming non-native members when they appear in code.
66
+
67
+ Using both rules together gives better protection:
68
+
69
+ 1. Prevent introducing prototype extension.
70
+ 2. Prevent relying on prototype extension from third-party code.
71
+
72
+ ## When not to use it
73
+
74
+ - If your project intentionally and explicitly relies on controlled prototype extension.
75
+ - If your runtime environment guarantees specific prototype patches and that dependency is accepted in your architecture.
76
+
77
+ ## Further reading
78
+
79
+ - [ESLint `no-extend-native`](https://eslint.org/docs/latest/rules/no-extend-native)
80
+ - [MDN: Inheritance and the prototype chain](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Inheritance_and_the_prototype_chain)
81
+
82
+ ## ESLint flat config example
83
+
84
+ ```ts
85
+ import etcMisc from "eslint-plugin-etc-misc";
86
+
87
+ export default [
88
+ {
89
+ plugins: { "etc-misc": etcMisc },
90
+ rules: {
91
+ "etc-misc/no-use-extend-native": "error",
92
+ },
93
+ },
94
+ ];
95
+ ```