eslint-plugin-operability 3.0.11 → 3.0.13
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 +4 -2
- package/package.json +5 -17
- package/src/index.d.ts +15 -142
- package/src/index.js +1 -9
- package/src/lib/eslint-plugin-operability.js +0 -1
- package/src/oxlint.d.ts +17 -20
- package/src/oxlint.js +0 -19
- package/src/rules/operability/no-console-log.js +1 -67
- package/src/rules/operability/no-debug-code-in-production.js +0 -11
- package/src/rules/operability/no-process-exit.js +0 -10
- package/src/rules/operability/no-verbose-error-messages.js +0 -14
- package/src/rules/operability/require-code-minification.js +0 -11
- package/src/rules/operability/require-data-minimization.js +0 -13
- package/CHANGELOG.md +0 -186
- package/src/index.js.map +0 -1
- package/src/lib/eslint-plugin-operability.d.ts +0 -1
- package/src/lib/eslint-plugin-operability.js.map +0 -1
- package/src/oxlint.js.map +0 -1
- package/src/rules/operability/no-console-log.d.ts +0 -53
- package/src/rules/operability/no-console-log.js.map +0 -1
- package/src/rules/operability/no-debug-code-in-production.d.ts +0 -12
- package/src/rules/operability/no-debug-code-in-production.js.map +0 -1
- package/src/rules/operability/no-process-exit.d.ts +0 -19
- package/src/rules/operability/no-process-exit.js.map +0 -1
- package/src/rules/operability/no-verbose-error-messages.d.ts +0 -12
- package/src/rules/operability/no-verbose-error-messages.js.map +0 -1
- package/src/rules/operability/require-code-minification.d.ts +0 -12
- package/src/rules/operability/require-code-minification.js.map +0 -1
- package/src/rules/operability/require-data-minimization.d.ts +0 -12
- package/src/rules/operability/require-data-minimization.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<a href="https://eslint.interlace.tools/?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-operability" target="blank"><img src="https://eslint.interlace.tools/
|
|
2
|
+
<a href="https://eslint.interlace.tools/?utm_source=github&utm_medium=referral&utm_campaign=eslint-plugin-operability" target="blank"><img src="https://eslint.interlace.tools/logos/interlace.svg" alt="Interlace" height="90" /></a>
|
|
3
3
|
|
|
4
|
-
<a href="https://
|
|
4
|
+
<a href="https://oxc.rs" target="_blank"><img src="https://eslint.interlace.tools/logos/oxlint.svg" alt="oxlint" height="90" /></a>
|
|
5
|
+
|
|
6
|
+
<a href="https://eslint.org" target="_blank"><img src="https://eslint.interlace.tools/logos/eslint.svg" alt="ESLint" height="90" /></a>
|
|
5
7
|
</p>
|
|
6
8
|
|
|
7
9
|
<p align="center">
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eslint-plugin-operability",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.13",
|
|
4
4
|
"description": "ESLint plugin for production operability — bans debug code and console logging in production, verbose error messages, and process.exit calls.",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "./src/index.js",
|
|
@@ -22,10 +22,8 @@
|
|
|
22
22
|
},
|
|
23
23
|
"files": [
|
|
24
24
|
"src/",
|
|
25
|
-
"dist/",
|
|
26
25
|
"README.md",
|
|
27
|
-
"LICENSE"
|
|
28
|
-
"CHANGELOG.md"
|
|
26
|
+
"LICENSE"
|
|
29
27
|
],
|
|
30
28
|
"keywords": [
|
|
31
29
|
"eslint",
|
|
@@ -52,32 +50,22 @@
|
|
|
52
50
|
},
|
|
53
51
|
"dependencies": {
|
|
54
52
|
"tslib": "^2.3.0",
|
|
55
|
-
"@interlace/eslint-devkit": "
|
|
56
|
-
},
|
|
57
|
-
"devDependencies": {
|
|
58
|
-
"@typescript-eslint/parser": "^8.46.2",
|
|
59
|
-
"@typescript-eslint/rule-tester": "^8.46.2"
|
|
53
|
+
"@interlace/eslint-devkit": "^1.6.1"
|
|
60
54
|
},
|
|
61
55
|
"repository": {
|
|
62
56
|
"type": "git",
|
|
63
|
-
"url": "https://github.com/ofri-peretz/eslint",
|
|
57
|
+
"url": "git+https://github.com/ofri-peretz/eslint.git",
|
|
64
58
|
"directory": "packages/eslint-plugin-operability"
|
|
65
59
|
},
|
|
66
60
|
"homepage": "https://eslint.interlace.tools/docs/quality/plugin-operability?utm_source=npm&utm_medium=referral&utm_campaign=eslint-plugin-operability",
|
|
67
61
|
"bugs": {
|
|
68
62
|
"url": "https://github.com/ofri-peretz/eslint/issues"
|
|
69
63
|
},
|
|
70
|
-
"scripts": {
|
|
71
|
-
"build": "tsx ../../scripts/build-package.ts",
|
|
72
|
-
"test": "vitest run",
|
|
73
|
-
"test:coverage": "vitest run --coverage",
|
|
74
|
-
"typecheck": "tsc -p tsconfig.lib.json --noEmit"
|
|
75
|
-
},
|
|
76
64
|
"peerDependencies": {
|
|
77
65
|
"eslint": "^8.0.0 || ^9.0.0 || ^10.0.0"
|
|
78
66
|
},
|
|
79
67
|
"funding": {
|
|
80
68
|
"type": "github",
|
|
81
|
-
"url": "https://github.com/ofri-peretz/eslint"
|
|
69
|
+
"url": "git+https://github.com/ofri-peretz/eslint.git"
|
|
82
70
|
}
|
|
83
71
|
}
|
package/src/index.d.ts
CHANGED
|
@@ -1,144 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
'no-process-exit': TSESLint.RuleModule<"noProcessExit", [(import("./rules/operability/no-process-exit").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
12
|
-
name: string;
|
|
13
|
-
};
|
|
14
|
-
'no-debug-code-in-production': TSESLint.RuleModule<"violationDetected", [(import("./rules/operability/no-debug-code-in-production").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
15
|
-
name: string;
|
|
16
|
-
};
|
|
17
|
-
'no-verbose-error-messages': TSESLint.RuleModule<"violationDetected", [(import("./rules/operability/no-verbose-error-messages").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
18
|
-
name: string;
|
|
19
|
-
};
|
|
20
|
-
'require-code-minification': TSESLint.RuleModule<"violationDetected", [(import("./rules/operability/require-code-minification").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
21
|
-
name: string;
|
|
22
|
-
};
|
|
23
|
-
'require-data-minimization': TSESLint.RuleModule<"violationDetected", [(import("./rules/operability/require-data-minimization").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
24
|
-
name: string;
|
|
25
|
-
};
|
|
26
|
-
'operability/no-console-log': TSESLint.RuleModule<"consoleLogFound" | "strategyRemove" | "strategyConvert" | "strategyComment" | "strategyWarn", [(import("./rules/operability/no-console-log").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
27
|
-
name: string;
|
|
28
|
-
};
|
|
29
|
-
'operability/no-process-exit': TSESLint.RuleModule<"noProcessExit", [(import("./rules/operability/no-process-exit").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
30
|
-
name: string;
|
|
31
|
-
};
|
|
32
|
-
'operability/no-debug-code-in-production': TSESLint.RuleModule<"violationDetected", [(import("./rules/operability/no-debug-code-in-production").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
33
|
-
name: string;
|
|
34
|
-
};
|
|
35
|
-
'operability/no-verbose-error-messages': TSESLint.RuleModule<"violationDetected", [(import("./rules/operability/no-verbose-error-messages").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
36
|
-
name: string;
|
|
37
|
-
};
|
|
38
|
-
'operability/require-code-minification': TSESLint.RuleModule<"violationDetected", [(import("./rules/operability/require-code-minification").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
39
|
-
name: string;
|
|
40
|
-
};
|
|
41
|
-
'operability/require-data-minimization': TSESLint.RuleModule<"violationDetected", [(import("./rules/operability/require-data-minimization").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
42
|
-
name: string;
|
|
43
|
-
};
|
|
44
|
-
};
|
|
1
|
+
// Minimal declaration written by scripts/build-package.ts.
|
|
2
|
+
//
|
|
3
|
+
// tsc's generated entry declaration inlined every inferred rule-option type
|
|
4
|
+
// (up to 166 kB per plugin) for an API no consumer calls directly. This types
|
|
5
|
+
// what a flat config actually touches. Per-rule option types remain available
|
|
6
|
+
// from the "./types" subpath export where a plugin provides one.
|
|
7
|
+
import type { Linter, Rule } from 'eslint';
|
|
8
|
+
|
|
9
|
+
export declare const rules: Record<string, Rule.RuleModule>;
|
|
10
|
+
export declare const configs: Record<string, Linter.Config>;
|
|
45
11
|
export declare const plugin: {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
version: string;
|
|
49
|
-
};
|
|
50
|
-
rules: {
|
|
51
|
-
'no-console-log': TSESLint.RuleModule<"consoleLogFound" | "strategyRemove" | "strategyConvert" | "strategyComment" | "strategyWarn", [(import("./rules/operability/no-console-log").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
52
|
-
name: string;
|
|
53
|
-
};
|
|
54
|
-
'no-process-exit': TSESLint.RuleModule<"noProcessExit", [(import("./rules/operability/no-process-exit").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
55
|
-
name: string;
|
|
56
|
-
};
|
|
57
|
-
'no-debug-code-in-production': TSESLint.RuleModule<"violationDetected", [(import("./rules/operability/no-debug-code-in-production").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
58
|
-
name: string;
|
|
59
|
-
};
|
|
60
|
-
'no-verbose-error-messages': TSESLint.RuleModule<"violationDetected", [(import("./rules/operability/no-verbose-error-messages").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
61
|
-
name: string;
|
|
62
|
-
};
|
|
63
|
-
'require-code-minification': TSESLint.RuleModule<"violationDetected", [(import("./rules/operability/require-code-minification").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
64
|
-
name: string;
|
|
65
|
-
};
|
|
66
|
-
'require-data-minimization': TSESLint.RuleModule<"violationDetected", [(import("./rules/operability/require-data-minimization").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
67
|
-
name: string;
|
|
68
|
-
};
|
|
69
|
-
'operability/no-console-log': TSESLint.RuleModule<"consoleLogFound" | "strategyRemove" | "strategyConvert" | "strategyComment" | "strategyWarn", [(import("./rules/operability/no-console-log").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
70
|
-
name: string;
|
|
71
|
-
};
|
|
72
|
-
'operability/no-process-exit': TSESLint.RuleModule<"noProcessExit", [(import("./rules/operability/no-process-exit").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
73
|
-
name: string;
|
|
74
|
-
};
|
|
75
|
-
'operability/no-debug-code-in-production': TSESLint.RuleModule<"violationDetected", [(import("./rules/operability/no-debug-code-in-production").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
76
|
-
name: string;
|
|
77
|
-
};
|
|
78
|
-
'operability/no-verbose-error-messages': TSESLint.RuleModule<"violationDetected", [(import("./rules/operability/no-verbose-error-messages").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
79
|
-
name: string;
|
|
80
|
-
};
|
|
81
|
-
'operability/require-code-minification': TSESLint.RuleModule<"violationDetected", [(import("./rules/operability/require-code-minification").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
82
|
-
name: string;
|
|
83
|
-
};
|
|
84
|
-
'operability/require-data-minimization': TSESLint.RuleModule<"violationDetected", [(import("./rules/operability/require-data-minimization").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
85
|
-
name: string;
|
|
86
|
-
};
|
|
87
|
-
};
|
|
88
|
-
};
|
|
89
|
-
export declare const configs: {
|
|
90
|
-
recommended: {
|
|
91
|
-
plugins: {
|
|
92
|
-
operability: {
|
|
93
|
-
meta: {
|
|
94
|
-
name: string;
|
|
95
|
-
version: string;
|
|
96
|
-
};
|
|
97
|
-
rules: {
|
|
98
|
-
'no-console-log': TSESLint.RuleModule<"consoleLogFound" | "strategyRemove" | "strategyConvert" | "strategyComment" | "strategyWarn", [(import("./rules/operability/no-console-log").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
99
|
-
name: string;
|
|
100
|
-
};
|
|
101
|
-
'no-process-exit': TSESLint.RuleModule<"noProcessExit", [(import("./rules/operability/no-process-exit").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
102
|
-
name: string;
|
|
103
|
-
};
|
|
104
|
-
'no-debug-code-in-production': TSESLint.RuleModule<"violationDetected", [(import("./rules/operability/no-debug-code-in-production").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
105
|
-
name: string;
|
|
106
|
-
};
|
|
107
|
-
'no-verbose-error-messages': TSESLint.RuleModule<"violationDetected", [(import("./rules/operability/no-verbose-error-messages").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
108
|
-
name: string;
|
|
109
|
-
};
|
|
110
|
-
'require-code-minification': TSESLint.RuleModule<"violationDetected", [(import("./rules/operability/require-code-minification").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
111
|
-
name: string;
|
|
112
|
-
};
|
|
113
|
-
'require-data-minimization': TSESLint.RuleModule<"violationDetected", [(import("./rules/operability/require-data-minimization").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
114
|
-
name: string;
|
|
115
|
-
};
|
|
116
|
-
'operability/no-console-log': TSESLint.RuleModule<"consoleLogFound" | "strategyRemove" | "strategyConvert" | "strategyComment" | "strategyWarn", [(import("./rules/operability/no-console-log").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
117
|
-
name: string;
|
|
118
|
-
};
|
|
119
|
-
'operability/no-process-exit': TSESLint.RuleModule<"noProcessExit", [(import("./rules/operability/no-process-exit").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
120
|
-
name: string;
|
|
121
|
-
};
|
|
122
|
-
'operability/no-debug-code-in-production': TSESLint.RuleModule<"violationDetected", [(import("./rules/operability/no-debug-code-in-production").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
123
|
-
name: string;
|
|
124
|
-
};
|
|
125
|
-
'operability/no-verbose-error-messages': TSESLint.RuleModule<"violationDetected", [(import("./rules/operability/no-verbose-error-messages").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
126
|
-
name: string;
|
|
127
|
-
};
|
|
128
|
-
'operability/require-code-minification': TSESLint.RuleModule<"violationDetected", [(import("./rules/operability/require-code-minification").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
129
|
-
name: string;
|
|
130
|
-
};
|
|
131
|
-
'operability/require-data-minimization': TSESLint.RuleModule<"violationDetected", [(import("./rules/operability/require-data-minimization").Options | undefined)?], unknown, TSESLint.RuleListener> & {
|
|
132
|
-
name: string;
|
|
133
|
-
};
|
|
134
|
-
};
|
|
135
|
-
};
|
|
136
|
-
};
|
|
137
|
-
rules: {
|
|
138
|
-
'operability/no-console-log': "warn";
|
|
139
|
-
'operability/no-debug-code-in-production': "error";
|
|
140
|
-
'operability/no-verbose-error-messages': "warn";
|
|
141
|
-
};
|
|
142
|
-
};
|
|
12
|
+
meta: { name: string; version: string };
|
|
13
|
+
rules: Record<string, Rule.RuleModule>;
|
|
143
14
|
};
|
|
144
|
-
|
|
15
|
+
|
|
16
|
+
declare const _default: typeof plugin;
|
|
17
|
+
export default _default;
|
package/src/index.js
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Copyright (c) 2025 Ofri Peretz
|
|
4
|
-
* Licensed under the MIT License. Use of this source code is governed by the
|
|
5
|
-
* MIT license that can be found in the LICENSE file.
|
|
6
|
-
*/
|
|
7
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
3
|
exports.configs = exports.plugin = exports.rules = void 0;
|
|
9
|
-
// Operability rules
|
|
10
4
|
const no_console_log_1 = require("./rules/operability/no-console-log");
|
|
11
5
|
const no_process_exit_1 = require("./rules/operability/no-process-exit");
|
|
12
6
|
const no_debug_code_in_production_1 = require("./rules/operability/no-debug-code-in-production");
|
|
@@ -20,7 +14,6 @@ exports.rules = {
|
|
|
20
14
|
'no-verbose-error-messages': no_verbose_error_messages_1.noVerboseErrorMessages,
|
|
21
15
|
'require-code-minification': require_code_minification_1.requireCodeMinification,
|
|
22
16
|
'require-data-minimization': require_data_minimization_1.requireDataMinimization,
|
|
23
|
-
// Categorized names
|
|
24
17
|
'operability/no-console-log': no_console_log_1.noConsoleLog,
|
|
25
18
|
'operability/no-process-exit': no_process_exit_1.noProcessExit,
|
|
26
19
|
'operability/no-debug-code-in-production': no_debug_code_in_production_1.noDebugCodeInProduction,
|
|
@@ -31,7 +24,7 @@ exports.rules = {
|
|
|
31
24
|
exports.plugin = {
|
|
32
25
|
meta: {
|
|
33
26
|
name: 'eslint-plugin-operability',
|
|
34
|
-
version: '3.0.
|
|
27
|
+
version: '3.0.13',
|
|
35
28
|
},
|
|
36
29
|
rules: exports.rules,
|
|
37
30
|
};
|
|
@@ -48,4 +41,3 @@ exports.configs = {
|
|
|
48
41
|
},
|
|
49
42
|
};
|
|
50
43
|
exports.default = exports.plugin;
|
|
51
|
-
//# sourceMappingURL=index.js.map
|
package/src/oxlint.d.ts
CHANGED
|
@@ -1,20 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
*/
|
|
19
|
-
import { plugin } from './index';
|
|
20
|
-
export = plugin;
|
|
1
|
+
// Minimal declaration written by scripts/build-package.ts.
|
|
2
|
+
//
|
|
3
|
+
// tsc's generated entry declaration inlined every inferred rule-option type
|
|
4
|
+
// (up to 166 kB per plugin) for an API no consumer calls directly. This types
|
|
5
|
+
// what a flat config actually touches. Per-rule option types remain available
|
|
6
|
+
// from the "./types" subpath export where a plugin provides one.
|
|
7
|
+
import type { Linter, Rule } from 'eslint';
|
|
8
|
+
|
|
9
|
+
export declare const rules: Record<string, Rule.RuleModule>;
|
|
10
|
+
export declare const configs: Record<string, Linter.Config>;
|
|
11
|
+
export declare const plugin: {
|
|
12
|
+
meta: { name: string; version: string };
|
|
13
|
+
rules: Record<string, Rule.RuleModule>;
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
declare const _default: typeof plugin;
|
|
17
|
+
export default _default;
|
package/src/oxlint.js
CHANGED
|
@@ -1,22 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Copyright (c) 2025 Ofri Peretz
|
|
4
|
-
* Licensed under the MIT License. Use of this source code is governed by the
|
|
5
|
-
* MIT license that can be found in the LICENSE file.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* oxlint sub-export.
|
|
9
|
-
*
|
|
10
|
-
* Consumers wire oxlint to this entry via:
|
|
11
|
-
* { "jsPlugins": ["eslint-plugin-operability/oxlint"] }
|
|
12
|
-
*
|
|
13
|
-
* oxlint's JS plugin loader does `require('eslint-plugin-operability/oxlint')` and reads
|
|
14
|
-
* `.rules` off the result. The compiled output of `export = plugin` is
|
|
15
|
-
* `module.exports = plugin`, which gives oxlint the plugin object directly
|
|
16
|
-
* (`{ meta, rules }`) — no wrapper, no `.default` indirection.
|
|
17
|
-
*
|
|
18
|
-
* Generated by scripts/generate-oxlint-shims.mjs. Do not edit by hand.
|
|
19
|
-
*/
|
|
20
2
|
const index_1 = require("./index");
|
|
21
3
|
module.exports = index_1.plugin;
|
|
22
|
-
//# sourceMappingURL=oxlint.js.map
|
|
@@ -1,16 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Copyright (c) 2025 Ofri Peretz
|
|
4
|
-
* Licensed under the MIT License. Use of this source code is governed by the
|
|
5
|
-
* MIT license that can be found in the LICENSE file.
|
|
6
|
-
*/
|
|
7
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
3
|
exports.noConsoleLog = void 0;
|
|
9
4
|
const eslint_devkit_1 = require("@interlace/eslint-devkit");
|
|
10
5
|
const eslint_devkit_2 = require("@interlace/eslint-devkit");
|
|
11
6
|
const eslint_devkit_3 = require("@interlace/eslint-devkit");
|
|
12
|
-
// Default severity map: only flags console.log by default for minimal disruption
|
|
13
|
-
// Can be extended via severityMap option to include other console methods
|
|
14
7
|
const DEFAULT_SEVERITY_MAP = {
|
|
15
8
|
log: 'debug',
|
|
16
9
|
};
|
|
@@ -27,7 +20,6 @@ exports.noConsoleLog = (0, eslint_devkit_2.createRule)({
|
|
|
27
20
|
fixable: 'code',
|
|
28
21
|
hasSuggestions: false,
|
|
29
22
|
messages: {
|
|
30
|
-
// 🎯 Token optimization: 43% reduction (51→29 tokens) - compact format for logger context
|
|
31
23
|
consoleLogFound: (0, eslint_devkit_1.formatLLMMessage)({
|
|
32
24
|
icon: eslint_devkit_1.MessageIcons.WARNING,
|
|
33
25
|
issueName: 'console.log in production',
|
|
@@ -135,7 +127,7 @@ exports.noConsoleLog = (0, eslint_devkit_2.createRule)({
|
|
|
135
127
|
strategy: 'remove',
|
|
136
128
|
ignorePaths: [],
|
|
137
129
|
loggerName: 'logger',
|
|
138
|
-
severityMap: { log: 'log' },
|
|
130
|
+
severityMap: { log: 'log' },
|
|
139
131
|
autoDetectLogger: true,
|
|
140
132
|
sourcePatterns: ['console'],
|
|
141
133
|
},
|
|
@@ -143,16 +135,10 @@ exports.noConsoleLog = (0, eslint_devkit_2.createRule)({
|
|
|
143
135
|
create(context) {
|
|
144
136
|
const options = context.options[0] || {};
|
|
145
137
|
const { strategy = 'remove', ignorePaths = [], loggerName, maxOccurrences, severityMap = {}, autoDetectLogger = true, sourcePatterns = ['console'], } = options;
|
|
146
|
-
/** Merge user's severityMap with defaults to determine method mappings */
|
|
147
138
|
const effectiveSeverityMap = { ...DEFAULT_SEVERITY_MAP, ...severityMap };
|
|
148
139
|
const filename = context.filename;
|
|
149
|
-
// oxlint-disable-next-line no-shadow
|
|
150
140
|
const sourceCode = context.sourceCode;
|
|
151
141
|
const occurrences = [];
|
|
152
|
-
/**
|
|
153
|
-
* Auto-detect logger in file by scanning imports.
|
|
154
|
-
* Uses strict pattern matching to avoid false positives (e.g., 'reactLogo').
|
|
155
|
-
*/
|
|
156
142
|
let detectedLogger = null;
|
|
157
143
|
if (autoDetectLogger) {
|
|
158
144
|
const ast = sourceCode.ast;
|
|
@@ -170,7 +156,6 @@ exports.noConsoleLog = (0, eslint_devkit_2.createRule)({
|
|
|
170
156
|
}
|
|
171
157
|
}
|
|
172
158
|
}
|
|
173
|
-
// Look for require() calls
|
|
174
159
|
if (statement.type === 'VariableDeclaration') {
|
|
175
160
|
for (const declarator of statement.declarations) {
|
|
176
161
|
if (declarator.init?.type === 'CallExpression' &&
|
|
@@ -189,37 +174,17 @@ exports.noConsoleLog = (0, eslint_devkit_2.createRule)({
|
|
|
189
174
|
break;
|
|
190
175
|
}
|
|
191
176
|
}
|
|
192
|
-
/**
|
|
193
|
-
* Determine the effective logger to use.
|
|
194
|
-
* Priority: explicit loggerName from config > auto-detected logger > default 'logger'
|
|
195
|
-
*/
|
|
196
177
|
const effectiveLogger = loggerName || detectedLogger || 'logger';
|
|
197
|
-
/**
|
|
198
|
-
* Check if the current file should be ignored based on ignorePaths patterns.
|
|
199
|
-
* Supports exact matches, directory prefixes, and glob-like patterns.
|
|
200
|
-
*/
|
|
201
178
|
const shouldIgnoreFile = () => {
|
|
202
179
|
if (ignorePaths.length === 0)
|
|
203
180
|
return false;
|
|
204
181
|
const normalizedPath = (0, eslint_devkit_3.normalizePath)(filename);
|
|
205
182
|
return ignorePaths.some((pattern) => {
|
|
206
183
|
const normalizedPattern = pattern.replace(/\\/g, '/');
|
|
207
|
-
/** Exact match */
|
|
208
184
|
if (normalizedPath === normalizedPattern)
|
|
209
185
|
return true;
|
|
210
|
-
/** Directory match */
|
|
211
186
|
if (normalizedPath.startsWith(normalizedPattern + '/'))
|
|
212
187
|
return true;
|
|
213
|
-
/**
|
|
214
|
-
* Glob-like pattern support. Escape ALL regex metacharacters (the
|
|
215
|
-
* previous logic only escaped `.`, so `(`, `)`, `+`, `[`, `]`, `\`
|
|
216
|
-
* etc. were interpreted as regex syntax). CodeQL specifically flagged
|
|
217
|
-
* the unescaped backslash as `js/incomplete-sanitization`. The escape
|
|
218
|
-
* set MUST include `*` and `?` so the subsequent replaces can find
|
|
219
|
-
* the escaped tokens and translate them to glob equivalents — without
|
|
220
|
-
* that, raw `*` / `?` reach `new RegExp()` and the pattern matching
|
|
221
|
-
* is silently broken.
|
|
222
|
-
*/
|
|
223
188
|
const escaped = normalizedPattern.replace(/[.+^${}()|[\]\\*?]/g, '\\$&');
|
|
224
189
|
const regexPattern = escaped
|
|
225
190
|
.replace(/\\\*/g, '.*')
|
|
@@ -231,10 +196,6 @@ exports.noConsoleLog = (0, eslint_devkit_2.createRule)({
|
|
|
231
196
|
return {};
|
|
232
197
|
}
|
|
233
198
|
return {
|
|
234
|
-
/**
|
|
235
|
-
* CallExpression visitor that checks for member expressions matching source patterns.
|
|
236
|
-
* Handles calls like console.log(), winston.info(), oldLogger.debug(), etc.
|
|
237
|
-
*/
|
|
238
199
|
CallExpression(node) {
|
|
239
200
|
if (node.callee.type !== 'MemberExpression' ||
|
|
240
201
|
node.callee.object.type !== 'Identifier' ||
|
|
@@ -243,42 +204,21 @@ exports.noConsoleLog = (0, eslint_devkit_2.createRule)({
|
|
|
243
204
|
}
|
|
244
205
|
const sourceObject = node.callee.object.name;
|
|
245
206
|
const methodName = node.callee.property.name;
|
|
246
|
-
/** Check if this source object is in our patterns to match */
|
|
247
207
|
if (!sourcePatterns.includes(sourceObject)) {
|
|
248
208
|
return;
|
|
249
209
|
}
|
|
250
|
-
/** Only handle methods that are in the effectiveSeverityMap */
|
|
251
210
|
if (!effectiveSeverityMap[methodName]) {
|
|
252
211
|
return;
|
|
253
212
|
}
|
|
254
213
|
const line = node.loc?.start.line ?? 0;
|
|
255
214
|
occurrences.push(line);
|
|
256
|
-
// ✅ Calculate skip condition (don't return early)
|
|
257
|
-
// 'all' means report all instances
|
|
258
|
-
// undefined means no limit
|
|
259
|
-
// number > 0 means limit to that count
|
|
260
215
|
const shouldSkipReport = maxOccurrences !== undefined &&
|
|
261
216
|
maxOccurrences !== 'all' &&
|
|
262
217
|
typeof maxOccurrences === 'number' &&
|
|
263
218
|
maxOccurrences > 0 &&
|
|
264
219
|
occurrences.length > maxOccurrences;
|
|
265
220
|
const relativePath = (0, eslint_devkit_3.getRelativePath)(process.cwd(), filename);
|
|
266
|
-
/**
|
|
267
|
-
* Determine the target logger method to use based on severityMap.
|
|
268
|
-
* The guard above already returned unless `effectiveSeverityMap[methodName]`
|
|
269
|
-
* is truthy, so no fallback is needed here.
|
|
270
|
-
*
|
|
271
|
-
* @example
|
|
272
|
-
* Default: console.log → logger.log, console.debug → logger.debug
|
|
273
|
-
*
|
|
274
|
-
* @example
|
|
275
|
-
* With severityMap: { log: 'info' } → console.log → logger.info, console.debug → logger.debug
|
|
276
|
-
*/
|
|
277
221
|
const targetLoggerMethod = effectiveSeverityMap[methodName];
|
|
278
|
-
/**
|
|
279
|
-
* Generate fix based on the configured strategy.
|
|
280
|
-
* Handles remove, convert, comment, and warn strategies.
|
|
281
|
-
*/
|
|
282
222
|
const fix = (fixer) => {
|
|
283
223
|
const statement = findParentStatement(node);
|
|
284
224
|
if (!statement)
|
|
@@ -298,12 +238,10 @@ exports.noConsoleLog = (0, eslint_devkit_2.createRule)({
|
|
|
298
238
|
return null;
|
|
299
239
|
}
|
|
300
240
|
};
|
|
301
|
-
/** Build conversion info for the error message */
|
|
302
241
|
let conversionInfo = '';
|
|
303
242
|
if (strategy === 'convert') {
|
|
304
243
|
conversionInfo = ` → ${effectiveLogger}.${targetLoggerMethod}()`;
|
|
305
244
|
}
|
|
306
|
-
// ✅ Only report if not exceeding limit
|
|
307
245
|
if (!shouldSkipReport) {
|
|
308
246
|
context.report({
|
|
309
247
|
node,
|
|
@@ -324,9 +262,6 @@ exports.noConsoleLog = (0, eslint_devkit_2.createRule)({
|
|
|
324
262
|
};
|
|
325
263
|
},
|
|
326
264
|
});
|
|
327
|
-
/**
|
|
328
|
-
* Find the parent statement node for proper removal
|
|
329
|
-
*/
|
|
330
265
|
function findParentStatement(node) {
|
|
331
266
|
let current = node;
|
|
332
267
|
while (current) {
|
|
@@ -339,4 +274,3 @@ function findParentStatement(node) {
|
|
|
339
274
|
}
|
|
340
275
|
return null;
|
|
341
276
|
}
|
|
342
|
-
//# sourceMappingURL=no-console-log.js.map
|
|
@@ -1,16 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Copyright (c) 2025 Ofri Peretz
|
|
4
|
-
* Licensed under the MIT License. Use of this source code is governed by the
|
|
5
|
-
* MIT license that can be found in the LICENSE file.
|
|
6
|
-
*/
|
|
7
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
3
|
exports.noDebugCodeInProduction = void 0;
|
|
9
|
-
/**
|
|
10
|
-
* @fileoverview Detect debug code in production
|
|
11
|
-
* @see https://owasp.org/www-project-mobile-top-10/
|
|
12
|
-
* @see https://cwe.mitre.org/data/definitions/489.html
|
|
13
|
-
*/
|
|
14
4
|
const eslint_devkit_1 = require("@interlace/eslint-devkit");
|
|
15
5
|
exports.noDebugCodeInProduction = (0, eslint_devkit_1.createRule)({
|
|
16
6
|
name: 'no-debug-code-in-production',
|
|
@@ -55,4 +45,3 @@ exports.noDebugCodeInProduction = (0, eslint_devkit_1.createRule)({
|
|
|
55
45
|
};
|
|
56
46
|
},
|
|
57
47
|
});
|
|
58
|
-
//# sourceMappingURL=no-debug-code-in-production.js.map
|
|
@@ -1,9 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Copyright (c) 2025 Ofri Peretz
|
|
4
|
-
* Licensed under the MIT License. Use of this source code is governed by the
|
|
5
|
-
* MIT license that can be found in the LICENSE file.
|
|
6
|
-
*/
|
|
7
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
3
|
exports.noProcessExit = void 0;
|
|
9
4
|
const eslint_devkit_1 = require("@interlace/eslint-devkit");
|
|
@@ -43,14 +38,10 @@ exports.noProcessExit = (0, eslint_devkit_1.createRule)({
|
|
|
43
38
|
},
|
|
44
39
|
defaultOptions: [{ allow: [] }],
|
|
45
40
|
create(context) {
|
|
46
|
-
// oxlint-disable-next-line consistent-function-scoping
|
|
47
41
|
function isInAllowedContext() {
|
|
48
|
-
// For simplicity, we'll skip the allow option for now
|
|
49
42
|
return false;
|
|
50
43
|
}
|
|
51
44
|
function isProcessExitCall(node) {
|
|
52
|
-
// Check if this is a call to process.exit
|
|
53
|
-
// oxlint-disable-next-line consistent-function-scoping
|
|
54
45
|
function isProcessExitMember(callee) {
|
|
55
46
|
if (callee.type === 'MemberExpression' &&
|
|
56
47
|
callee.object.type === 'Identifier' &&
|
|
@@ -79,4 +70,3 @@ exports.noProcessExit = (0, eslint_devkit_1.createRule)({
|
|
|
79
70
|
};
|
|
80
71
|
},
|
|
81
72
|
});
|
|
82
|
-
//# sourceMappingURL=no-process-exit.js.map
|
|
@@ -1,16 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Copyright (c) 2025 Ofri Peretz
|
|
4
|
-
* Licensed under the MIT License. Use of this source code is governed by the
|
|
5
|
-
* MIT license that can be found in the LICENSE file.
|
|
6
|
-
*/
|
|
7
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
3
|
exports.noVerboseErrorMessages = void 0;
|
|
9
|
-
/**
|
|
10
|
-
* @fileoverview Prevent exposing stack traces to users
|
|
11
|
-
* @see https://owasp.org/www-project-mobile-top-10/
|
|
12
|
-
* @see https://cwe.mitre.org/data/definitions/209.html
|
|
13
|
-
*/
|
|
14
4
|
const eslint_devkit_1 = require("@interlace/eslint-devkit");
|
|
15
5
|
exports.noVerboseErrorMessages = (0, eslint_devkit_1.createRule)({
|
|
16
6
|
name: 'no-verbose-error-messages',
|
|
@@ -45,19 +35,16 @@ exports.noVerboseErrorMessages = (0, eslint_devkit_1.createRule)({
|
|
|
45
35
|
}
|
|
46
36
|
return {
|
|
47
37
|
CallExpression(node) {
|
|
48
|
-
// Check res.send/res.json with error.stack
|
|
49
38
|
if (node.type === eslint_devkit_1.AST_NODE_TYPES.CallExpression &&
|
|
50
39
|
node.callee.type === eslint_devkit_1.AST_NODE_TYPES.MemberExpression &&
|
|
51
40
|
node.callee.property.type === eslint_devkit_1.AST_NODE_TYPES.Identifier &&
|
|
52
41
|
['send', 'json'].includes(node.callee.property.name)) {
|
|
53
42
|
const arg = node.arguments[0];
|
|
54
|
-
// Check for error.stack or err.stack
|
|
55
43
|
if (arg?.type === eslint_devkit_1.AST_NODE_TYPES.MemberExpression &&
|
|
56
44
|
arg.property.type === eslint_devkit_1.AST_NODE_TYPES.Identifier &&
|
|
57
45
|
arg.property.name === 'stack') {
|
|
58
46
|
report(node);
|
|
59
47
|
}
|
|
60
|
-
// Check for { stack: error.stack } in object
|
|
61
48
|
if (arg?.type === eslint_devkit_1.AST_NODE_TYPES.ObjectExpression) {
|
|
62
49
|
const stackProp = arg.properties.find((p) => p.type === eslint_devkit_1.AST_NODE_TYPES.Property &&
|
|
63
50
|
p.key.type === eslint_devkit_1.AST_NODE_TYPES.Identifier &&
|
|
@@ -74,4 +61,3 @@ exports.noVerboseErrorMessages = (0, eslint_devkit_1.createRule)({
|
|
|
74
61
|
};
|
|
75
62
|
},
|
|
76
63
|
});
|
|
77
|
-
//# sourceMappingURL=no-verbose-error-messages.js.map
|
|
@@ -1,16 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Copyright (c) 2025 Ofri Peretz
|
|
4
|
-
* Licensed under the MIT License. Use of this source code is governed by the
|
|
5
|
-
* MIT license that can be found in the LICENSE file.
|
|
6
|
-
*/
|
|
7
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
3
|
exports.requireCodeMinification = void 0;
|
|
9
|
-
/**
|
|
10
|
-
* @fileoverview Require minification configuration
|
|
11
|
-
* @see https://owasp.org/www-project-mobile-top-10/
|
|
12
|
-
* @see https://cwe.mitre.org/data/definitions/656.html
|
|
13
|
-
*/
|
|
14
4
|
const eslint_devkit_1 = require("@interlace/eslint-devkit");
|
|
15
5
|
exports.requireCodeMinification = (0, eslint_devkit_1.createRule)({
|
|
16
6
|
name: 'require-code-minification',
|
|
@@ -49,4 +39,3 @@ exports.requireCodeMinification = (0, eslint_devkit_1.createRule)({
|
|
|
49
39
|
};
|
|
50
40
|
},
|
|
51
41
|
});
|
|
52
|
-
//# sourceMappingURL=require-code-minification.js.map
|
|
@@ -1,16 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Copyright (c) 2025 Ofri Peretz
|
|
4
|
-
* Licensed under the MIT License. Use of this source code is governed by the
|
|
5
|
-
* MIT license that can be found in the LICENSE file.
|
|
6
|
-
*/
|
|
7
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
3
|
exports.requireDataMinimization = void 0;
|
|
9
|
-
/**
|
|
10
|
-
* @fileoverview Identify excessive data collection
|
|
11
|
-
* @see https://owasp.org/www-project-mobile-top-10/
|
|
12
|
-
* @see https://cwe.mitre.org/data/definitions/213.html
|
|
13
|
-
*/
|
|
14
4
|
const eslint_devkit_1 = require("@interlace/eslint-devkit");
|
|
15
5
|
exports.requireDataMinimization = (0, eslint_devkit_1.createRule)({
|
|
16
6
|
name: 'require-data-minimization',
|
|
@@ -42,9 +32,7 @@ exports.requireDataMinimization = (0, eslint_devkit_1.createRule)({
|
|
|
42
32
|
}
|
|
43
33
|
return {
|
|
44
34
|
ObjectExpression(node) {
|
|
45
|
-
// Flag objects with >10 properties being collected
|
|
46
35
|
if (node.properties.length > 10) {
|
|
47
|
-
// Check if this looks like user data collection
|
|
48
36
|
const hasUserData = node.properties.some((p) => p.type === eslint_devkit_1.AST_NODE_TYPES.Property &&
|
|
49
37
|
p.key.type === eslint_devkit_1.AST_NODE_TYPES.Identifier &&
|
|
50
38
|
['email', 'name', 'phone', 'address'].includes(p.key.name));
|
|
@@ -56,4 +44,3 @@ exports.requireDataMinimization = (0, eslint_devkit_1.createRule)({
|
|
|
56
44
|
};
|
|
57
45
|
},
|
|
58
46
|
});
|
|
59
|
-
//# sourceMappingURL=require-data-minimization.js.map
|
package/CHANGELOG.md
DELETED
|
@@ -1,186 +0,0 @@
|
|
|
1
|
-
## [3.0.5] - 2026-02-08
|
|
2
|
-
|
|
3
|
-
## 3.0.11
|
|
4
|
-
|
|
5
|
-
### Patch Changes
|
|
6
|
-
|
|
7
|
-
- [#294](https://github.com/ofri-peretz/eslint/pull/294) [`659f6dc`](https://github.com/ofri-peretz/eslint/commit/659f6dc0181b03b675f72b5949fcf123dd066358) Thanks [@ofri-peretz](https://github.com/ofri-peretz)! - Rewrite `description` and `keywords` on every published package for npm search discovery. npm ranks on name, description, and keywords, and the registry only picks up these fields at publish — so this is metadata-only and takes effect for each package on its next release.
|
|
8
|
-
|
|
9
|
-
**Descriptions now lead with the search phrase.** Every one starts `ESLint plugin for <the thing you'd search>` instead of a brand-first or category-first framing, and names the concrete vulnerabilities the plugin actually detects. Three were corrected while doing so:
|
|
10
|
-
|
|
11
|
-
- `eslint-plugin-import-next` claimed "100x faster no-cycle detection". No 100x measurement exists: `CLAIMS.md` records **3.1x end-to-end** (8x in pure rule execution) on a 5,483-file React codebase, and the highest number in any benchmark result is 54.9x on the synthetic corpus. The description now states the real-codebase figure.
|
|
12
|
-
- `eslint-plugin-secure-coding` claimed SQL injection, XSS and CSRF coverage — none of which are its rules. It now names what it does detect: LDAP, XPath, XXE, GraphQL and template injection, unsafe deserialization, ReDoS, missing authentication, and PII in logs.
|
|
13
|
-
- `eslint-plugin-secure-coding` ("89 rules") and `eslint-plugin-react-a11y` ("37 rules") hard-coded rule counts that had drifted from reality. Counts are generated into `interlace-numbers.json`; hand-typed copies are removed rather than corrected.
|
|
14
|
-
|
|
15
|
-
**Keywords now match the vocabulary of the plugins that rank.** `eslint-plugin-security`, `eslint-plugin-jsx-a11y`, `eslint-plugin-n` and `eslint-plugin-import` all carry the `eslint` / `eslintplugin` / `eslint-plugin` trio — six of our packages were missing `eslintplugin`, and every one now carries all three plus `static-analysis`, `linting` and `code-quality`. Security plugins add `sast`, `appsec` and `vulnerability`; `node-security` and `secure-coding` also carry `nodesecurity`, the exact keyword `eslint-plugin-security` ranks on. Each plugin gained the CWE identifiers and attack names for what it detects (`cwe-78` command injection, `cwe-22` path traversal, `cwe-89` SQL injection, `cwe-79` XSS, `cwe-347` JWT algorithm confusion, `cwe-352` CSRF, `cwe-943` NoSQL injection), and `node-security` gained the crypto vocabulary it had been missing entirely despite absorbing the crypto rule set (`crypto`, `cryptography`, `weak-hash`, `md5`, `sha1`, `timing-attack`).
|
|
16
|
-
|
|
17
|
-
No rule behavior, exports, or configuration changes.
|
|
18
|
-
|
|
19
|
-
- Updated dependencies [[`e1cdf83`](https://github.com/ofri-peretz/eslint/commit/e1cdf83e3db761907f0ab06f7fc6c1f1da7513a5), [`659f6dc`](https://github.com/ofri-peretz/eslint/commit/659f6dc0181b03b675f72b5949fcf123dd066358)]:
|
|
20
|
-
- @interlace/eslint-devkit@1.4.3
|
|
21
|
-
|
|
22
|
-
## 3.0.10
|
|
23
|
-
|
|
24
|
-
### Patch Changes
|
|
25
|
-
|
|
26
|
-
- [#269](https://github.com/ofri-peretz/eslint/pull/269) [`7028fe2`](https://github.com/ofri-peretz/eslint/commit/7028fe2668a42266d831014184dcef70e73101ad) Thanks [@ofri-peretz](https://github.com/ofri-peretz)! - docs: dual-logo README header (Interlace mark + ESLint mark side by side) and closing Interlace footer — refreshes the README rendered on npmjs.com. No runtime changes.
|
|
27
|
-
|
|
28
|
-
- Updated dependencies [[`7028fe2`](https://github.com/ofri-peretz/eslint/commit/7028fe2668a42266d831014184dcef70e73101ad)]:
|
|
29
|
-
- @interlace/eslint-devkit@1.4.2
|
|
30
|
-
|
|
31
|
-
## 3.0.9
|
|
32
|
-
|
|
33
|
-
### Patch Changes
|
|
34
|
-
|
|
35
|
-
- [#252](https://github.com/ofri-peretz/eslint/pull/252) [`d67e395`](https://github.com/ofri-peretz/eslint/commit/d67e3953c2748ad36e6aebe0f24b1d04e518b4d0) Thanks [@ofri-peretz](https://github.com/ofri-peretz)! - Fix Codecov badge showing "unknown" — switch from flag to component URL format
|
|
36
|
-
|
|
37
|
-
## 3.0.8
|
|
38
|
-
|
|
39
|
-
### Patch Changes
|
|
40
|
-
|
|
41
|
-
- [#225](https://github.com/ofri-peretz/eslint/pull/225) [`34ff5a8`](https://github.com/ofri-peretz/eslint/commit/34ff5a8e6f5126c5d1c0a524759e0af2b5476b46) Thanks [@ofri-peretz](https://github.com/ofri-peretz)! - CI-only: pin all coverage thresholds at 100% (integration target, merges last).
|
|
42
|
-
|
|
43
|
-
## 3.0.7
|
|
44
|
-
|
|
45
|
-
### Patch Changes
|
|
46
|
-
|
|
47
|
-
- [#200](https://github.com/ofri-peretz/eslint/pull/200) [`02e0baf`](https://github.com/ofri-peretz/eslint/commit/02e0baf7a4e8ba83e8b2ec2b82169f733e4f4d87) Thanks [@ofri-peretz](https://github.com/ofri-peretz)! - fix: republish `recommended` preset with the correct plugin namespace
|
|
48
|
-
|
|
49
|
-
The published builds of `eslint-plugin-maintainability` and
|
|
50
|
-
`eslint-plugin-operability` shipped a `recommended` config whose plugin KEY
|
|
51
|
-
(`@interlace/maintainability`) did not match its rule PREFIX
|
|
52
|
-
(`@interlace/maintainability/maintainability/…` — doubled). ESLint cannot
|
|
53
|
-
resolve that, so spreading `...configs.recommended` throws
|
|
54
|
-
"could not find plugin" the moment a consumer lints a file — under both
|
|
55
|
-
ESLint 9 and 10.
|
|
56
|
-
|
|
57
|
-
The source was corrected in the 2026-05-16 namespace cleanup (alongside
|
|
58
|
-
`react-features`, which has since been republished via other changesets), but
|
|
59
|
-
these two plugins were never bumped — so npm still serves the broken builds and
|
|
60
|
-
they are the only two doubled-namespace plugins still unfixed downstream. This
|
|
61
|
-
republishes them from the corrected source.
|
|
62
|
-
|
|
63
|
-
Regression lock: `packages/eslint-config-interlace/src/ecosystem-integrity.test.ts`
|
|
64
|
-
loads every plugin's every config preset into a real ESLint instance and fails
|
|
65
|
-
if any rule→plugin reference cannot be resolved. Run it against the built
|
|
66
|
-
`dist/` in the release pipeline (pre-publish) to also catch a stale-artifact
|
|
67
|
-
publish — the failure mode that let these two ship broken.
|
|
68
|
-
|
|
69
|
-
## 3.0.6
|
|
70
|
-
|
|
71
|
-
### Patch Changes
|
|
72
|
-
|
|
73
|
-
- [#197](https://github.com/ofri-peretz/eslint/pull/197) [`ecb8491`](https://github.com/ofri-peretz/eslint/commit/ecb849121833bf63b00256fa837f329bb721fbac) Thanks [@ofri-peretz](https://github.com/ofri-peretz)! - fix: republish `recommended` with correctly-namespaced, unscoped rule ids
|
|
74
|
-
|
|
75
|
-
`eslint-plugin-maintainability@3.0.3` and `eslint-plugin-operability@3.0.5`
|
|
76
|
-
shipped a `recommended` preset whose rule ids carried a doubled, scoped plugin
|
|
77
|
-
segment (`@interlace/maintainability/maintainability/cognitive-complexity`)
|
|
78
|
-
that no registered plugin key matched. Enabling the preset alongside any other
|
|
79
|
-
config made ESLint throw at load:
|
|
80
|
-
|
|
81
|
-
```text
|
|
82
|
-
Could not find plugin "@interlace/maintainability/maintainability".
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
(and the equivalent `@interlace/operability/operability` for operability.)
|
|
86
|
-
|
|
87
|
-
The source was already corrected to the bare, unscoped form
|
|
88
|
-
(`maintainability/cognitive-complexity` under a `maintainability` plugin key)
|
|
89
|
-
but was never republished, so npm still served the broken build. This release
|
|
90
|
-
ships the corrected build. `plugin.meta.name` is also fixed to the unscoped
|
|
91
|
-
`eslint-plugin-maintainability` (was `@interlace/eslint-plugin-maintainability`,
|
|
92
|
-
which drifted from the package name and every other plugin).
|
|
93
|
-
|
|
94
|
-
Each plugin is configured on its own — there is no unified config. No rule
|
|
95
|
-
behaviour changes.
|
|
96
|
-
|
|
97
|
-
New regression locks in each plugin's `index.test.ts` reproduce ESLint's rule-id
|
|
98
|
-
resolution, pin the plugin name and key as unscoped, and load each `recommended`
|
|
99
|
-
preset in a real ESLint instance — failing closed if a scoped or doubly
|
|
100
|
-
namespaced config could ship again.
|
|
101
|
-
|
|
102
|
-
### Bug Fixes
|
|
103
|
-
|
|
104
|
-
- align codecov component IDs with full package names ([2831b968](https://github.com/ofri-peretz/eslint/commit/2831b968))
|
|
105
|
-
|
|
106
|
-
### Documentation
|
|
107
|
-
|
|
108
|
-
- fix changelog header format across all packages ([c3a15082](https://github.com/ofri-peretz/eslint/commit/c3a15082))
|
|
109
|
-
|
|
110
|
-
### ❤️ Thank You
|
|
111
|
-
|
|
112
|
-
- Ofri Peretz
|
|
113
|
-
|
|
114
|
-
## [3.0.4] - 2026-02-06
|
|
115
|
-
|
|
116
|
-
### Bug Fixes
|
|
117
|
-
|
|
118
|
-
- align codecov component names and update docs components ([0a59a86c](https://github.com/ofri-peretz/eslint/commit/0a59a86c))
|
|
119
|
-
|
|
120
|
-
### ❤️ Thank You
|
|
121
|
-
|
|
122
|
-
- Ofri Peretz
|
|
123
|
-
|
|
124
|
-
## [3.0.3] - 2026-02-02
|
|
125
|
-
|
|
126
|
-
This was a version bump only for eslint-plugin-operability to align it with other projects, there were no code changes.
|
|
127
|
-
|
|
128
|
-
# Changelog
|
|
129
|
-
|
|
130
|
-
All notable changes to `eslint-plugin-operability` will be documented in this file.
|
|
131
|
-
|
|
132
|
-
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
133
|
-
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
134
|
-
|
|
135
|
-
### Documentation
|
|
136
|
-
|
|
137
|
-
- 📘 Launched new documentation site: [eslint.interlace.tools](https://eslint.interlace.tools/)
|
|
138
|
-
- 📝 Achieved 100% documentation parity (both .md and .mdx files)
|
|
139
|
-
|
|
140
|
-
## [3.0.2] - 2026-02-02
|
|
141
|
-
|
|
142
|
-
This was a version bump only for eslint-plugin-operability to align it with other projects, there were no code changes.
|
|
143
|
-
|
|
144
|
-
## [3.0.1] - 2026-02-02
|
|
145
|
-
|
|
146
|
-
This was a version bump only for eslint-plugin-operability to align it with other projects, there were no code changes.
|
|
147
|
-
|
|
148
|
-
## [3.0.0] - 2026-02-02
|
|
149
|
-
|
|
150
|
-
This was a version bump only for eslint-plugin-operability to align it with other projects, there were no code changes.
|
|
151
|
-
|
|
152
|
-
## [1.0.0] - 2026-01-26
|
|
153
|
-
|
|
154
|
-
### Added
|
|
155
|
-
|
|
156
|
-
- Initial stable release with 6 production-readiness rules
|
|
157
|
-
- LLM-optimized error messages for AI-assisted development
|
|
158
|
-
- 100% test coverage across all rules
|
|
159
|
-
- ESLint 9 flat config support
|
|
160
|
-
- TypeScript type definitions for all rule options
|
|
161
|
-
|
|
162
|
-
### Rules
|
|
163
|
-
|
|
164
|
-
| Rule | Description | 💼 | ⚠️ |
|
|
165
|
-
| :---------------------------- | :----------------------------------------------- | :-: | :-: |
|
|
166
|
-
| `no-console-log` | Disallow `console.log` in production code | 💼 | ⚠️ |
|
|
167
|
-
| `no-process-exit` | Disallow `process.exit()` in library code | | |
|
|
168
|
-
| `no-debug-code-in-production` | Detect `debugger` statements and debug keywords | 💼 | |
|
|
169
|
-
| `no-verbose-error-messages` | Prevent overly detailed error messages (CWE-209) | 💼 | ⚠️ |
|
|
170
|
-
| `require-code-minification` | Detect patterns that prevent minification | | |
|
|
171
|
-
| `require-data-minimization` | Detect excessive data exposure in responses | | |
|
|
172
|
-
|
|
173
|
-
### Presets
|
|
174
|
-
|
|
175
|
-
- `recommended` - Balanced operability checks for production code
|
|
176
|
-
|
|
177
|
-
### Security
|
|
178
|
-
|
|
179
|
-
- `no-verbose-error-messages` prevents information exposure (CWE-209)
|
|
180
|
-
- `require-data-minimization` enforces data protection principles
|
|
181
|
-
|
|
182
|
-
### Jan 2026 Remediation
|
|
183
|
-
|
|
184
|
-
- Converted skeleton documentation to high-fidelity guides
|
|
185
|
-
- Added comprehensive examples for all rules
|
|
186
|
-
- Documented known limitations in `docs/KNOWN-LIMITATIONS.md`
|
package/src/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAIH,oBAAoB;AACpB,uEAAkE;AAClE,yEAAoE;AACpE,iGAA0F;AAC1F,6FAAuF;AACvF,6FAAwF;AACxF,6FAAwF;AAE3E,QAAA,KAAK,GAAG;IACnB,gBAAgB,EAAE,6BAAY;IAC9B,iBAAiB,EAAE,+BAAa;IAChC,6BAA6B,EAAE,qDAAuB;IACtD,2BAA2B,EAAE,kDAAsB;IACnD,2BAA2B,EAAE,mDAAuB;IACpD,2BAA2B,EAAE,mDAAuB;IAEpD,oBAAoB;IACpB,4BAA4B,EAAE,6BAAY;IAC1C,6BAA6B,EAAE,+BAAa;IAC5C,yCAAyC,EAAE,qDAAuB;IAClE,uCAAuC,EAAE,kDAAsB;IAC/D,uCAAuC,EAAE,mDAAuB;IAChE,uCAAuC,EAAE,mDAAuB;CACS,CAAC;AAE/D,QAAA,MAAM,GAAG;IACpB,IAAI,EAAE;QACJ,IAAI,EAAE,2BAA2B;QACjC,OAAO,EAAE,QAAQ;KAClB;IACD,KAAK,EAAL,aAAK;CAC+B,CAAC;AAE1B,QAAA,OAAO,GAAG;IACrB,WAAW,EAAE;QACX,OAAO,EAAE;YACP,aAAa,EAAE,cAAM;SACtB;QACD,KAAK,EAAE;YACL,4BAA4B,EAAE,MAAM;YACpC,yCAAyC,EAAE,OAAO;YAClD,uCAAuC,EAAE,MAAM;SAChD;KACmC;CACc,CAAC;AAEvD,kBAAe,cAAM,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function eslintPluginOperability(): string;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"eslint-plugin-operability.js","sourceRoot":"","sources":["../../../src/lib/eslint-plugin-operability.ts"],"names":[],"mappings":";;AAAA,0DAEC;AAFD,SAAgB,uBAAuB;IACrC,OAAO,2BAA2B,CAAC;AACrC,CAAC"}
|
package/src/oxlint.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oxlint.js","sourceRoot":"","sources":["../../src/oxlint.ts"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH;;;;;;;;;;;;GAYG;AAEH,mCAAiC;AAEjC,iBAAS,cAAM,CAAC"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2025 Ofri Peretz
|
|
3
|
-
* Licensed under the MIT License. Use of this source code is governed by the
|
|
4
|
-
* MIT license that can be found in the LICENSE file.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Enhanced ESLint rule: no-console-log
|
|
8
|
-
* Disallows console.log with configurable strategies and LLM-optimized output
|
|
9
|
-
*/
|
|
10
|
-
import type { TSESLint } from '@interlace/eslint-devkit';
|
|
11
|
-
/**
|
|
12
|
-
* Strategy for handling console.log
|
|
13
|
-
* @enum {string}
|
|
14
|
-
* @description The strategy to use when handling console.log
|
|
15
|
-
* @example
|
|
16
|
-
* - 'remove': Remove the console.log statement
|
|
17
|
-
* - 'convert': Convert the console.log statement to a logger method
|
|
18
|
-
*/
|
|
19
|
-
type Strategy = 'remove' | 'convert' | 'comment' | 'warn';
|
|
20
|
-
/**
|
|
21
|
-
* Message IDs for the rule
|
|
22
|
-
* @enum {string}
|
|
23
|
-
* @description The message IDs for the rule
|
|
24
|
-
* @example
|
|
25
|
-
* - 'consoleLogFound': The message ID for the console.log statement found
|
|
26
|
-
* - 'strategyRemove': The message ID for the strategy to remove the console.log statement
|
|
27
|
-
* - 'strategyConvert': The message ID for the strategy to convert the console.log statement to a logger method
|
|
28
|
-
*/
|
|
29
|
-
type MessageIds = 'consoleLogFound' | 'strategyRemove' | 'strategyConvert' | 'strategyComment' | 'strategyWarn';
|
|
30
|
-
interface SeverityMapping {
|
|
31
|
-
[consoleMethod: string]: string;
|
|
32
|
-
}
|
|
33
|
-
export interface Options {
|
|
34
|
-
/** How to handle console.log: 'remove', 'convert', 'comment', or 'warn' */
|
|
35
|
-
strategy?: Strategy;
|
|
36
|
-
/** File path patterns to ignore */
|
|
37
|
-
ignorePaths?: string[];
|
|
38
|
-
/** Name of the logger to use (e.g., 'logger', 'winston'). Default: 'logger' */
|
|
39
|
-
loggerName?: string;
|
|
40
|
-
/** Maximum occurrences to report: number (e.g., 5), 'all' (report all instances), or undefined (no limit). Default: undefined */
|
|
41
|
-
maxOccurrences?: number | 'all';
|
|
42
|
-
/** Map console methods to logger methods */
|
|
43
|
-
severityMap?: SeverityMapping;
|
|
44
|
-
/** Auto-detect logger import in file. Default: true */
|
|
45
|
-
autoDetectLogger?: boolean;
|
|
46
|
-
/** Object names to match (e.g., ['console', 'winston', 'oldLogger']). Default: ['console'] */
|
|
47
|
-
sourcePatterns?: string[];
|
|
48
|
-
}
|
|
49
|
-
type RuleOptions = [Options?];
|
|
50
|
-
export declare const noConsoleLog: TSESLint.RuleModule<MessageIds, RuleOptions, unknown, TSESLint.RuleListener> & {
|
|
51
|
-
name: string;
|
|
52
|
-
};
|
|
53
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"no-console-log.js","sourceRoot":"","sources":["../../../../src/rules/operability/no-console-log.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAOH,4DAA0E;AAC1E,4DAAsD;AACtD,4DAA0E;AAgC1E,iFAAiF;AACjF,0EAA0E;AAC1E,MAAM,oBAAoB,GAAoB;IAC5C,GAAG,EAAE,OAAO;CACb,CAAC;AA2BW,QAAA,YAAY,GAAG,IAAA,0BAAU,EAA0B;IAC9D,IAAI,EAAE,gBAAgB;IACtB,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,GAAG,EAAE,iHAAiH;YACtH,WAAW,EACT,+DAA+D;YACjE,GAAG,EAAE,SAAS;YACd,IAAI,EAAE,CAAC;SACR;QACD,OAAO,EAAE,MAAM;QACf,cAAc,EAAE,KAAK;QACrB,QAAQ,EAAE;YACR,0FAA0F;YAC1F,eAAe,EAAE,IAAA,gCAAgB,EAAC;gBAChC,IAAI,EAAE,4BAAY,CAAC,OAAO;gBAC1B,SAAS,EAAE,2BAA2B;gBACtC,GAAG,EAAE,SAAS;gBACd,WAAW,EAAE,sCAAsC;gBACnD,QAAQ,EAAE,QAAQ;gBAClB,GAAG,EAAE,wCAAwC;gBAC7C,iBAAiB,EAAE,iDAAiD;aACrE,CAAC;YACF,cAAc,EAAE,IAAA,gCAAgB,EAAC;gBAC/B,IAAI,EAAE,4BAAY,CAAC,QAAQ;gBAC3B,SAAS,EAAE,iBAAiB;gBAC5B,WAAW,EAAE,8BAA8B;gBAC3C,QAAQ,EAAE,KAAK;gBACf,GAAG,EAAE,kCAAkC;gBACvC,iBAAiB,EAAE,iDAAiD;aACrE,CAAC;YACF,eAAe,EAAE,IAAA,gCAAgB,EAAC;gBAChC,IAAI,EAAE,4BAAY,CAAC,QAAQ;gBAC3B,SAAS,EAAE,kBAAkB;gBAC7B,WAAW,EAAE,0BAA0B;gBACvC,QAAQ,EAAE,KAAK;gBACf,GAAG,EAAE,iCAAiC;gBACtC,iBAAiB,EAAE,sCAAsC;aAC1D,CAAC;YACF,eAAe,EAAE,IAAA,gCAAgB,EAAC;gBAChC,IAAI,EAAE,4BAAY,CAAC,QAAQ;gBAC3B,SAAS,EAAE,kBAAkB;gBAC7B,WAAW,EAAE,yBAAyB;gBACtC,QAAQ,EAAE,KAAK;gBACf,GAAG,EAAE,qBAAqB;gBAC1B,iBAAiB,EAAE,iDAAiD;aACrE,CAAC;YACF,YAAY,EAAE,IAAA,gCAAgB,EAAC;gBAC7B,IAAI,EAAE,4BAAY,CAAC,QAAQ;gBAC3B,SAAS,EAAE,eAAe;gBAC1B,WAAW,EAAE,6BAA6B;gBAC1C,QAAQ,EAAE,KAAK;gBACf,GAAG,EAAE,gBAAgB;gBACrB,iBAAiB,EACf,+DAA+D;aAClE,CAAC;SACH;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,QAAQ,EAAE;wBACR,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC;wBAC9C,OAAO,EAAE,QAAQ;wBACjB,WAAW,EAAE,mCAAmC;qBACjD;oBACD,WAAW,EAAE;wBACX,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,OAAO,EAAE,EAAE;wBACX,WAAW,EAAE,8BAA8B;qBAC5C;oBACD,UAAU,EAAE;wBACV,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,QAAQ;wBACjB,WAAW,EACT,4EAA4E;qBAC/E;oBACD,cAAc,EAAE;wBACd,KAAK,EAAE;4BACL;gCACE,IAAI,EAAE,QAAQ;gCACd,OAAO,EAAE,CAAC;gCACV,WAAW,EAAE,yCAAyC;6BACvD;4BACD;gCACE,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,CAAC,KAAK,CAAC;gCACb,WAAW,EAAE,uBAAuB;6BACrC;yBACF;wBACD,WAAW,EACT,8FAA8F;qBACjG;oBACD,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,oBAAoB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACxC,OAAO,EAAE;4BACP,GAAG,EAAE,OAAO;yBACb;wBACD,WAAW,EACT,4FAA4F;qBAC/F;oBACD,gBAAgB,EAAE;wBAChB,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,IAAI;wBACb,WAAW,EAAE,mCAAmC;qBACjD;oBACD,cAAc,EAAE;wBACd,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,OAAO,EAAE,CAAC,SAAS,CAAC;wBACpB,WAAW,EACT,uHAAuH;qBAC1H;iBACF;gBACD,oBAAoB,EAAE,KAAK;aAC5B;SACF;KACF;IACD,cAAc,EAAE;QACd;YACE,QAAQ,EAAE,QAAQ;YAClB,WAAW,EAAE,EAAE;YACf,UAAU,EAAE,QAAQ;YACpB,WAAW,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,mCAAmC;YAChE,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,CAAC,SAAS,CAAC;SAC5B;KACF;IACD,MAAM,CAAC,OAAsD;QAC3D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACzC,MAAM,EACJ,QAAQ,GAAG,QAAQ,EACnB,WAAW,GAAG,EAAE,EAChB,UAAU,EACV,cAAc,EACd,WAAW,GAAG,EAAE,EAChB,gBAAgB,GAAG,IAAI,EACvB,cAAc,GAAG,CAAC,SAAS,CAAC,GAC7B,GAAG,OAAO,CAAC;QAEZ,0EAA0E;QAC1E,MAAM,oBAAoB,GAAG,EAAE,GAAG,oBAAoB,EAAE,GAAG,WAAW,EAAE,CAAC;QAEzE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAClC,qCAAqC;QACrC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACtC,MAAM,WAAW,GAAa,EAAE,CAAC;QAEjC;;;WAGG;QACH,IAAI,cAAc,GAAkB,IAAI,CAAC;QAEzC,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;YAC3B,MAAM,cAAc,GAAG,6CAA6C,CAAC;YAErE,KAAK,MAAM,SAAS,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACjC,IAAI,SAAS,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;oBAC3C,KAAK,MAAM,SAAS,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;wBAC7C,IACE,SAAS,CAAC,IAAI,KAAK,wBAAwB;4BAC3C,SAAS,CAAC,IAAI,KAAK,iBAAiB,EACpC,CAAC;4BACD,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;4BAClC,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gCAC9B,cAAc,GAAG,IAAI,CAAC;gCACtB,MAAM;4BACR,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,2BAA2B;gBAC3B,IAAI,SAAS,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;oBAC7C,KAAK,MAAM,UAAU,IAAI,SAAS,CAAC,YAAY,EAAE,CAAC;wBAChD,IACE,UAAU,CAAC,IAAI,EAAE,IAAI,KAAK,gBAAgB;4BAC1C,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY;4BAC5C,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS;4BACzC,UAAU,CAAC,EAAE,CAAC,IAAI,KAAK,YAAY,EACnC,CAAC;4BACD,MAAM,IAAI,GAAG,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC;4BAChC,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gCAC9B,cAAc,GAAG,IAAI,CAAC;gCACtB,MAAM;4BACR,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,IAAI,cAAc;oBAAE,MAAM;YAC5B,CAAC;QACH,CAAC;QAED;;;WAGG;QACH,MAAM,eAAe,GAAG,UAAU,IAAI,cAAc,IAAI,QAAQ,CAAC;QAEjE;;;WAGG;QACH,MAAM,gBAAgB,GAAG,GAAY,EAAE;YACrC,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YAE3C,MAAM,cAAc,GAAG,IAAA,6BAAa,EAAC,QAAQ,CAAC,CAAC;YAE/C,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,OAAe,EAAE,EAAE;gBAC1C,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;gBAEtD,kBAAkB;gBAClB,IAAI,cAAc,KAAK,iBAAiB;oBAAE,OAAO,IAAI,CAAC;gBAEtD,sBAAsB;gBACtB,IAAI,cAAc,CAAC,UAAU,CAAC,iBAAiB,GAAG,GAAG,CAAC;oBAAE,OAAO,IAAI,CAAC;gBAEpE;;;;;;;;;mBASG;gBACH,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;gBACzE,MAAM,YAAY,GAAG,OAAO;qBACzB,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;qBACtB,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAEzB,OAAO,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,IAAI,gBAAgB,EAAE,EAAE,CAAC;YACvB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO;YACL;;;eAGG;YACH,cAAc,CAAC,IAA6B;gBAC1C,IACE,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,kBAAkB;oBACvC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY;oBACxC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,EAC1C,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;gBAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAE7C,8DAA8D;gBAC9D,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;oBAC3C,OAAO;gBACT,CAAC;gBAED,+DAA+D;gBAC/D,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC;oBACtC,OAAO;gBACT,CAAC;gBAED,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;gBACvC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEvB,kDAAkD;gBAClD,mCAAmC;gBACnC,2BAA2B;gBAC3B,uCAAuC;gBACvC,MAAM,gBAAgB,GACpB,cAAc,KAAK,SAAS;oBAC5B,cAAc,KAAK,KAAK;oBACxB,OAAO,cAAc,KAAK,QAAQ;oBAClC,cAAc,GAAG,CAAC;oBAClB,WAAW,CAAC,MAAM,GAAG,cAAc,CAAC;gBAEtC,MAAM,YAAY,GAAG,IAAA,+BAAe,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;gBAE9D;;;;;;;;;;mBAUG;gBACH,MAAM,kBAAkB,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;gBAE5D;;;mBAGG;gBACH,MAAM,GAAG,GAAG,CAAC,KAAyB,EAAE,EAAE;oBACxC,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;oBAC5C,IAAI,CAAC,SAAS;wBAAE,OAAO,IAAI,CAAC;oBAE5B,QAAQ,QAAQ,EAAE,CAAC;wBACjB,KAAK,QAAQ;4BACX,OAAO,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;wBAEjC,KAAK,SAAS;4BACZ,OAAO,KAAK,CAAC,WAAW,CACtB,IAAI,CAAC,MAAM,EACX,GAAG,eAAe,IAAI,kBAAkB,EAAE,CAC3C,CAAC;wBAEJ,KAAK,SAAS,CAAC,CAAC,CAAC;4BACf,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;4BAC3C,OAAO,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;wBACpD,CAAC;wBAED,KAAK,MAAM;4BACT,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;wBAExD;4BACE,OAAO,IAAI,CAAC;oBAChB,CAAC;gBACH,CAAC,CAAC;gBAEF,kDAAkD;gBAClD,IAAI,cAAc,GAAG,EAAE,CAAC;gBACxB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC3B,cAAc,GAAG,MAAM,eAAe,IAAI,kBAAkB,IAAI,CAAC;gBACnE,CAAC;gBAED,uCAAuC;gBACvC,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACtB,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI;wBACJ,SAAS,EAAE,iBAAiB;wBAC5B,IAAI,EAAE;4BACJ,aAAa,EAAE,GAAG,YAAY,IAAI,UAAU,EAAE;4BAC9C,QAAQ,EAAE,YAAY;4BACtB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC;4BAClB,QAAQ;4BACR,cAAc;4BACd,MAAM,EAAE,eAAe;4BACvB,MAAM,EAAE,kBAAkB;yBAC3B;wBACD,GAAG;qBACJ,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAEH;;GAEG;AACH,SAAS,mBAAmB,CAAC,IAAmB;IAC9C,IAAI,OAAO,GAA8B,IAAI,CAAC;IAE9C,OAAO,OAAO,EAAE,CAAC;QACf,IACE,OAAO,CAAC,IAAI,KAAK,qBAAqB;YACtC,OAAO,CAAC,IAAI,KAAK,iBAAiB;YAClC,OAAO,CAAC,IAAI,KAAK,qBAAqB,EACtC,CAAC;YACD,OAAO,OAA6B,CAAC;QACvC,CAAC;QACD,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2025 Ofri Peretz
|
|
3
|
-
* Licensed under the MIT License. Use of this source code is governed by the
|
|
4
|
-
* MIT license that can be found in the LICENSE file.
|
|
5
|
-
*/
|
|
6
|
-
export interface Options {
|
|
7
|
-
}
|
|
8
|
-
type RuleOptions = [Options?];
|
|
9
|
-
export declare const noDebugCodeInProduction: import("@typescript-eslint/utils/ts-eslint").RuleModule<"violationDetected", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
|
|
10
|
-
name: string;
|
|
11
|
-
};
|
|
12
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"no-debug-code-in-production.js","sourceRoot":"","sources":["../../../../src/rules/operability/no-debug-code-in-production.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH;;;;GAIG;AAEH,4DAKkC;AAUrB,QAAA,uBAAuB,GAAG,IAAA,0BAAU,EAA0B;IACzE,IAAI,EAAE,6BAA6B;IACnC,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,GAAG,EAAE,8HAA8H;YACnI,WAAW,EAAE,iCAAiC;YAC9C,GAAG,EAAE,SAAS;YACd,IAAI,EAAE,GAAG;SACV;QACD,QAAQ,EAAE;YACR,iBAAiB,EAAE,IAAA,gCAAgB,EAAC;gBAClC,IAAI,EAAE,4BAAY,CAAC,QAAQ;gBAC3B,SAAS,EAAE,oBAAoB;gBAC/B,GAAG,EAAE,SAAS;gBACd,WAAW,EACT,oEAAoE;gBACtE,QAAQ,EAAE,MAAM;gBAChB,GAAG,EAAE,mCAAmC;gBACxC,iBAAiB,EAAE,iDAAiD;aACrE,CAAC;SACH;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,UAAU,CAAC,IAAyB;gBAClC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC7C,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC;YACD,cAAc,CAAC,IAA6B;gBAC1C,IACE,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,8BAAc,CAAC,gBAAgB;oBACpD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,8BAAc,CAAC,UAAU;oBACrD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS;oBACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,8BAAc,CAAC,UAAU;oBACvD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK,EACnC,CAAC;oBACD,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2025 Ofri Peretz
|
|
3
|
-
* Licensed under the MIT License. Use of this source code is governed by the
|
|
4
|
-
* MIT license that can be found in the LICENSE file.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* ESLint Rule: no-process-exit
|
|
8
|
-
* Prevent usage of process.exit()
|
|
9
|
-
*/
|
|
10
|
-
import type { TSESLint } from '@interlace/eslint-devkit';
|
|
11
|
-
export interface Options {
|
|
12
|
-
/** Allow process.exit in specific contexts */
|
|
13
|
-
allow?: string[];
|
|
14
|
-
}
|
|
15
|
-
type RuleOptions = [Options?];
|
|
16
|
-
export declare const noProcessExit: TSESLint.RuleModule<"noProcessExit", RuleOptions, unknown, TSESLint.RuleListener> & {
|
|
17
|
-
name: string;
|
|
18
|
-
};
|
|
19
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"no-process-exit.js","sourceRoot":"","sources":["../../../../src/rules/operability/no-process-exit.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAOH,4DAAsD;AACtD,4DAA0E;AAW7D,QAAA,aAAa,GAAG,IAAA,0BAAU,EAA0B;IAC/D,IAAI,EAAE,iBAAiB;IACvB,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,GAAG,EAAE,kHAAkH;YACvH,WAAW,EACT,8EAA8E;SACjF;QACD,cAAc,EAAE,KAAK;QACrB,QAAQ,EAAE;YACR,aAAa,EAAE,IAAA,gCAAgB,EAAC;gBAC9B,IAAI,EAAE,4BAAY,CAAC,OAAO;gBAC1B,SAAS,EAAE,cAAc;gBACzB,WAAW,EAAE,4BAA4B;gBACzC,QAAQ,EAAE,MAAM;gBAChB,GAAG,EAAE,6CAA6C;gBAClD,iBAAiB,EACf,+FAA+F;aAClG,CAAC;SACH;QACD,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,KAAK,EAAE;wBACL,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,OAAO,EAAE,EAAE;qBACZ;iBACF;gBACD,oBAAoB,EAAE,KAAK;aAC5B;SACF;KACF;IACD,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAE/B,MAAM,CAAC,OAAsD;QAC3D,uDAAuD;QACvD,SAAS,kBAAkB;YACzB,sDAAsD;YACtD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,SAAS,iBAAiB,CAAC,IAA6B;YACtD,0CAA0C;YAC1C,uDAAuD;YACvD,SAAS,mBAAmB,CAAC,MAA2B;gBACtD,IACE,MAAM,CAAC,IAAI,KAAK,kBAAkB;oBAClC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY;oBACnC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS;oBAChC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY;oBACrC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM,EAC/B,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO;YACL,cAAc,CAAC,IAA6B;gBAC1C,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;oBACrD,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI;wBACJ,SAAS,EAAE,eAAe;wBAC1B,IAAI,EAAE;4BACJ,OAAO,EAAE,gBAAgB;4BACzB,GAAG,EAAE,uBAAuB;yBAC7B;qBACF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2025 Ofri Peretz
|
|
3
|
-
* Licensed under the MIT License. Use of this source code is governed by the
|
|
4
|
-
* MIT license that can be found in the LICENSE file.
|
|
5
|
-
*/
|
|
6
|
-
export interface Options {
|
|
7
|
-
}
|
|
8
|
-
type RuleOptions = [Options?];
|
|
9
|
-
export declare const noVerboseErrorMessages: import("@typescript-eslint/utils/ts-eslint").RuleModule<"violationDetected", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
|
|
10
|
-
name: string;
|
|
11
|
-
};
|
|
12
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"no-verbose-error-messages.js","sourceRoot":"","sources":["../../../../src/rules/operability/no-verbose-error-messages.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH;;;;GAIG;AAEH,4DAKkC;AAUrB,QAAA,sBAAsB,GAAG,IAAA,0BAAU,EAA0B;IACxE,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,GAAG,EAAE,4HAA4H;YACjI,WAAW,EAAE,wCAAwC;YACrD,GAAG,EAAE,SAAS;YACd,IAAI,EAAE,CAAC;SACR;QACD,QAAQ,EAAE;YACR,iBAAiB,EAAE,IAAA,gCAAgB,EAAC;gBAClC,IAAI,EAAE,4BAAY,CAAC,QAAQ;gBAC3B,SAAS,EAAE,oBAAoB;gBAC/B,GAAG,EAAE,SAAS;gBACd,WAAW,EACT,2EAA2E;gBAC7E,QAAQ,EAAE,QAAQ;gBAClB,GAAG,EAAE,mCAAmC;gBACxC,iBAAiB,EAAE,iDAAiD;aACrE,CAAC;SACH;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,SAAS,MAAM,CAAC,IAAmB;YACjC,OAAO,CAAC,MAAM,CAAC;gBACb,IAAI;gBACJ,SAAS,EAAE,mBAAmB;aAC/B,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,cAAc,CAAC,IAA6B;gBAC1C,2CAA2C;gBAC3C,IACE,IAAI,CAAC,IAAI,KAAK,8BAAc,CAAC,cAAc;oBAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,8BAAc,CAAC,gBAAgB;oBACpD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,8BAAc,CAAC,UAAU;oBACvD,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EACpD,CAAC;oBACD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;oBAE9B,qCAAqC;oBACrC,IACE,GAAG,EAAE,IAAI,KAAK,8BAAc,CAAC,gBAAgB;wBAC7C,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,8BAAc,CAAC,UAAU;wBAC/C,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,EAC7B,CAAC;wBACD,MAAM,CAAC,IAAI,CAAC,CAAC;oBACf,CAAC;oBAED,6CAA6C;oBAC7C,IAAI,GAAG,EAAE,IAAI,KAAK,8BAAc,CAAC,gBAAgB,EAAE,CAAC;wBAClD,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CACnC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,IAAI,KAAK,8BAAc,CAAC,QAAQ;4BAClC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,8BAAc,CAAC,UAAU;4BACxC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO;gCACrB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,8BAAc,CAAC,gBAAgB;oCAC/C,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,8BAAc,CAAC,UAAU;oCACnD,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAC1C,CAAC;wBACF,IAAI,SAAS,EAAE,CAAC;4BACd,MAAM,CAAC,IAAI,CAAC,CAAC;wBACf,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2025 Ofri Peretz
|
|
3
|
-
* Licensed under the MIT License. Use of this source code is governed by the
|
|
4
|
-
* MIT license that can be found in the LICENSE file.
|
|
5
|
-
*/
|
|
6
|
-
export interface Options {
|
|
7
|
-
}
|
|
8
|
-
type RuleOptions = [Options?];
|
|
9
|
-
export declare const requireCodeMinification: import("@typescript-eslint/utils/ts-eslint").RuleModule<"violationDetected", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
|
|
10
|
-
name: string;
|
|
11
|
-
};
|
|
12
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"require-code-minification.js","sourceRoot":"","sources":["../../../../src/rules/operability/require-code-minification.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH;;;;GAIG;AAEH,4DAIkC;AAUrB,QAAA,uBAAuB,GAAG,IAAA,0BAAU,EAA0B;IACzE,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACJ,GAAG,EAAE,4HAA4H;YACjI,WAAW,EAAE,oCAAoC;YACjD,GAAG,EAAE,SAAS;YACd,IAAI,EAAE,GAAG;SACV;QACD,QAAQ,EAAE;YACR,iBAAiB,EAAE,IAAA,gCAAgB,EAAC;gBAClC,IAAI,EAAE,4BAAY,CAAC,QAAQ;gBAC3B,SAAS,EAAE,oBAAoB;gBAC/B,GAAG,EAAE,SAAS;gBACd,WAAW,EACT,iFAAiF;gBACnF,QAAQ,EAAE,KAAK;gBACf,GAAG,EAAE,mCAAmC;gBACxC,iBAAiB,EAAE,iDAAiD;aACrE,CAAC;SACH;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,QAAQ,CAAC,IAAuB;gBAC9B,IACE,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,YAAY;oBAC9B,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,UAAU;oBAC5B,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;oBAC7B,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK,EAC1B,CAAC;oBACD,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC;gBAC3D,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) 2025 Ofri Peretz
|
|
3
|
-
* Licensed under the MIT License. Use of this source code is governed by the
|
|
4
|
-
* MIT license that can be found in the LICENSE file.
|
|
5
|
-
*/
|
|
6
|
-
export interface Options {
|
|
7
|
-
}
|
|
8
|
-
type RuleOptions = [Options?];
|
|
9
|
-
export declare const requireDataMinimization: import("@typescript-eslint/utils/ts-eslint").RuleModule<"violationDetected", RuleOptions, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
|
|
10
|
-
name: string;
|
|
11
|
-
};
|
|
12
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"require-data-minimization.js","sourceRoot":"","sources":["../../../../src/rules/operability/require-data-minimization.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH;;;;GAIG;AAEH,4DAKkC;AAUrB,QAAA,uBAAuB,GAAG,IAAA,0BAAU,EAA0B;IACzE,IAAI,EAAE,2BAA2B;IACjC,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,GAAG,EAAE,4HAA4H;YACjI,WAAW,EAAE,6CAA6C;YAC1D,GAAG,EAAE,SAAS;YACd,IAAI,EAAE,CAAC;SACR;QACD,QAAQ,EAAE;YACR,iBAAiB,EAAE,IAAA,gCAAgB,EAAC;gBAClC,IAAI,EAAE,4BAAY,CAAC,QAAQ;gBAC3B,SAAS,EAAE,oBAAoB;gBAC/B,GAAG,EAAE,SAAS;gBACd,WAAW,EACT,0EAA0E;gBAC5E,QAAQ,EAAE,QAAQ;gBAClB,GAAG,EAAE,mCAAmC;gBACxC,iBAAiB,EAAE,iDAAiD;aACrE,CAAC;SACH;QACD,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,SAAS,MAAM,CAAC,IAAmB;YACjC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO;YACL,gBAAgB,CAAC,IAA+B;gBAC9C,mDAAmD;gBACnD,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;oBAChC,gDAAgD;oBAChD,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CACtC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,IAAI,KAAK,8BAAc,CAAC,QAAQ;wBAClC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,8BAAc,CAAC,UAAU;wBACxC,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAC7D,CAAC;oBAEF,IAAI,WAAW,EAAE,CAAC;wBAChB,MAAM,CAAC,IAAI,CAAC,CAAC;oBACf,CAAC;gBACH,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
|