oxlint-plugin-eslint 1.52.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +22 -0
- package/README.md +36 -0
- package/common/ast-utils.cjs +5843 -0
- package/common/chunk.cjs +9 -0
- package/common/eslint-utils.cjs +1633 -0
- package/common/fix-tracker.cjs +89 -0
- package/common/ignore.cjs +123 -0
- package/common/keywords.cjs +15 -0
- package/common/regexpp.cjs +1720 -0
- package/common/regular-expressions.cjs +40 -0
- package/common/string-utils.cjs +39 -0
- package/index.js +7477 -0
- package/package.json +34 -0
- package/rules/accessor-pairs.cjs +233 -0
- package/rules/array-bracket-newline.cjs +172 -0
- package/rules/array-bracket-spacing.cjs +184 -0
- package/rules/array-callback-return.cjs +262 -0
- package/rules/array-element-newline.cjs +178 -0
- package/rules/arrow-body-style.cjs +135 -0
- package/rules/arrow-parens.cjs +130 -0
- package/rules/arrow-spacing.cjs +129 -0
- package/rules/block-scoped-var.cjs +101 -0
- package/rules/block-spacing.cjs +125 -0
- package/rules/brace-style.cjs +141 -0
- package/rules/callback-return.cjs +117 -0
- package/rules/camelcase.cjs +194 -0
- package/rules/capitalized-comments.cjs +168 -0
- package/rules/class-methods-use-this.cjs +155 -0
- package/rules/comma-dangle.cjs +274 -0
- package/rules/comma-spacing.cjs +111 -0
- package/rules/comma-style.cjs +180 -0
- package/rules/complexity.cjs +100 -0
- package/rules/computed-property-spacing.cjs +155 -0
- package/rules/consistent-return.cjs +113 -0
- package/rules/consistent-this.cjs +109 -0
- package/rules/constructor-super.cjs +207 -0
- package/rules/curly.cjs +173 -0
- package/rules/default-case-last.cjs +36 -0
- package/rules/default-case.cjs +50 -0
- package/rules/default-param-last.cjs +61 -0
- package/rules/dot-location.cjs +87 -0
- package/rules/dot-notation.cjs +77 -0
- package/rules/eol-last.cjs +91 -0
- package/rules/eqeqeq.cjs +127 -0
- package/rules/for-direction.cjs +94 -0
- package/rules/func-call-spacing.cjs +127 -0
- package/rules/func-name-matching.cjs +138 -0
- package/rules/func-names.cjs +121 -0
- package/rules/func-style.cjs +103 -0
- package/rules/function-call-argument-newline.cjs +109 -0
- package/rules/function-paren-newline.cjs +173 -0
- package/rules/generator-star-spacing.cjs +174 -0
- package/rules/getter-return.cjs +129 -0
- package/rules/global-require.cjs +84 -0
- package/rules/grouped-accessor-pairs.cjs +146 -0
- package/rules/guard-for-in.cjs +39 -0
- package/rules/handle-callback-err.cjs +86 -0
- package/rules/id-blacklist.cjs +135 -0
- package/rules/id-denylist.cjs +126 -0
- package/rules/id-length.cjs +119 -0
- package/rules/id-match.cjs +139 -0
- package/rules/implicit-arrow-linebreak.cjs +76 -0
- package/rules/indent-legacy.cjs +520 -0
- package/rules/indent.cjs +842 -0
- package/rules/init-declarations.cjs +88 -0
- package/rules/jsx-quotes.cjs +84 -0
- package/rules/key-spacing.cjs +399 -0
- package/rules/keyword-spacing.cjs +464 -0
- package/rules/line-comment-position.cjs +75 -0
- package/rules/linebreak-style.cjs +89 -0
- package/rules/lines-around-comment.cjs +290 -0
- package/rules/lines-around-directive.cjs +129 -0
- package/rules/lines-between-class-members.cjs +212 -0
- package/rules/logical-assignment-operators.cjs +305 -0
- package/rules/max-classes-per-file.cjs +61 -0
- package/rules/max-depth.cjs +117 -0
- package/rules/max-len.cjs +256 -0
- package/rules/max-lines-per-function.cjs +116 -0
- package/rules/max-lines.cjs +109 -0
- package/rules/max-nested-callbacks.cjs +78 -0
- package/rules/max-params.cjs +78 -0
- package/rules/max-statements-per-line.cjs +147 -0
- package/rules/max-statements.cjs +119 -0
- package/rules/multiline-comment-style.cjs +319 -0
- package/rules/multiline-ternary.cjs +106 -0
- package/rules/new-cap.cjs +139 -0
- package/rules/new-parens.cjs +70 -0
- package/rules/newline-after-var.cjs +159 -0
- package/rules/newline-before-return.cjs +128 -0
- package/rules/newline-per-chained-call.cjs +100 -0
- package/rules/no-alert.cjs +84 -0
- package/rules/no-array-constructor.cjs +91 -0
- package/rules/no-async-promise-executor.cjs +33 -0
- package/rules/no-await-in-loop.cjs +75 -0
- package/rules/no-bitwise.cjs +106 -0
- package/rules/no-buffer-constructor.cjs +51 -0
- package/rules/no-caller.cjs +34 -0
- package/rules/no-case-declarations.cjs +56 -0
- package/rules/no-catch-shadow.cjs +57 -0
- package/rules/no-class-assign.cjs +55 -0
- package/rules/no-compare-neg-zero.cjs +52 -0
- package/rules/no-cond-assign.cjs +104 -0
- package/rules/no-confusing-arrow.cjs +87 -0
- package/rules/no-console.cjs +138 -0
- package/rules/no-const-assign.cjs +50 -0
- package/rules/no-constant-binary-expression.cjs +284 -0
- package/rules/no-constant-condition.cjs +119 -0
- package/rules/no-constructor-return.cjs +43 -0
- package/rules/no-continue.cjs +33 -0
- package/rules/no-control-regex.cjs +74 -0
- package/rules/no-debugger.cjs +33 -0
- package/rules/no-delete-var.cjs +32 -0
- package/rules/no-div-regex.cjs +39 -0
- package/rules/no-dupe-args.cjs +61 -0
- package/rules/no-dupe-class-members.cjs +77 -0
- package/rules/no-dupe-else-if.cjs +74 -0
- package/rules/no-dupe-keys.cjs +88 -0
- package/rules/no-duplicate-case.cjs +49 -0
- package/rules/no-duplicate-imports.cjs +166 -0
- package/rules/no-else-return.cjs +182 -0
- package/rules/no-empty-character-class.cjs +47 -0
- package/rules/no-empty-function.cjs +141 -0
- package/rules/no-empty-pattern.cjs +50 -0
- package/rules/no-empty-static-block.cjs +50 -0
- package/rules/no-empty.cjs +78 -0
- package/rules/no-eq-null.cjs +34 -0
- package/rules/no-eval.cjs +165 -0
- package/rules/no-ex-assign.cjs +45 -0
- package/rules/no-extend-native.cjs +103 -0
- package/rules/no-extra-bind.cjs +127 -0
- package/rules/no-extra-boolean-cast.cjs +159 -0
- package/rules/no-extra-label.cjs +116 -0
- package/rules/no-extra-parens.cjs +665 -0
- package/rules/no-extra-semi.cjs +103 -0
- package/rules/no-fallthrough.cjs +136 -0
- package/rules/no-floating-decimal.cjs +66 -0
- package/rules/no-func-assign.cjs +63 -0
- package/rules/no-global-assign.cjs +62 -0
- package/rules/no-implicit-coercion.cjs +219 -0
- package/rules/no-implicit-globals.cjs +77 -0
- package/rules/no-implied-eval.cjs +87 -0
- package/rules/no-import-assign.cjs +123 -0
- package/rules/no-inline-comments.cjs +57 -0
- package/rules/no-inner-declarations.cjs +82 -0
- package/rules/no-invalid-regexp.cjs +130 -0
- package/rules/no-invalid-this.cjs +90 -0
- package/rules/no-irregular-whitespace.cjs +157 -0
- package/rules/no-iterator.cjs +34 -0
- package/rules/no-label-var.cjs +46 -0
- package/rules/no-labels.cjs +106 -0
- package/rules/no-lone-blocks.cjs +75 -0
- package/rules/no-lonely-if.cjs +42 -0
- package/rules/no-loop-func.cjs +143 -0
- package/rules/no-loss-of-precision.cjs +160 -0
- package/rules/no-magic-numbers.cjs +222 -0
- package/rules/no-misleading-character-class.cjs +500 -0
- package/rules/no-mixed-operators.cjs +197 -0
- package/rules/no-mixed-requires.cjs +117 -0
- package/rules/no-mixed-spaces-and-tabs.cjs +87 -0
- package/rules/no-multi-assign.cjs +38 -0
- package/rules/no-multi-spaces.cjs +95 -0
- package/rules/no-multi-str.cjs +44 -0
- package/rules/no-multiple-empty-lines.cjs +112 -0
- package/rules/no-native-reassign.cjs +72 -0
- package/rules/no-negated-condition.cjs +77 -0
- package/rules/no-negated-in-lhs.cjs +43 -0
- package/rules/no-nested-ternary.cjs +33 -0
- package/rules/no-new-func.cjs +50 -0
- package/rules/no-new-native-nonconstructor.cjs +42 -0
- package/rules/no-new-object.cjs +47 -0
- package/rules/no-new-require.cjs +50 -0
- package/rules/no-new-symbol.cjs +48 -0
- package/rules/no-new-wrappers.cjs +44 -0
- package/rules/no-new.cjs +33 -0
- package/rules/no-nonoctal-decimal-escape.cjs +80 -0
- package/rules/no-obj-calls.cjs +64 -0
- package/rules/no-object-constructor.cjs +69 -0
- package/rules/no-octal-escape.cjs +35 -0
- package/rules/no-octal.cjs +32 -0
- package/rules/no-param-reassign.cjs +135 -0
- package/rules/no-path-concat.cjs +52 -0
- package/rules/no-plusplus.cjs +64 -0
- package/rules/no-process-env.cjs +51 -0
- package/rules/no-process-exit.cjs +50 -0
- package/rules/no-promise-executor-return.cjs +131 -0
- package/rules/no-proto.cjs +34 -0
- package/rules/no-prototype-builtins.cjs +85 -0
- package/rules/no-redeclare.cjs +103 -0
- package/rules/no-regex-spaces.cjs +115 -0
- package/rules/no-restricted-exports.cjs +117 -0
- package/rules/no-restricted-globals.cjs +147 -0
- package/rules/no-restricted-imports.cjs +421 -0
- package/rules/no-restricted-modules.cjs +144 -0
- package/rules/no-restricted-properties.cjs +123 -0
- package/rules/no-restricted-syntax.cjs +49 -0
- package/rules/no-return-assign.cjs +45 -0
- package/rules/no-return-await.cjs +88 -0
- package/rules/no-script-url.cjs +49 -0
- package/rules/no-self-assign.cjs +88 -0
- package/rules/no-self-compare.cjs +53 -0
- package/rules/no-sequences.cjs +81 -0
- package/rules/no-setter-return.cjs +110 -0
- package/rules/no-shadow-restricted-names.cjs +60 -0
- package/rules/no-shadow.cjs +302 -0
- package/rules/no-spaced-func.cjs +69 -0
- package/rules/no-sparse-arrays.cjs +40 -0
- package/rules/no-sync.cjs +58 -0
- package/rules/no-tabs.cjs +73 -0
- package/rules/no-template-curly-in-string.cjs +33 -0
- package/rules/no-ternary.cjs +33 -0
- package/rules/no-this-before-super.cjs +177 -0
- package/rules/no-throw-literal.cjs +40 -0
- package/rules/no-trailing-spaces.cjs +123 -0
- package/rules/no-unassigned-vars.cjs +54 -0
- package/rules/no-undef-init.cjs +46 -0
- package/rules/no-undef.cjs +51 -0
- package/rules/no-undefined.cjs +58 -0
- package/rules/no-underscore-dangle.cjs +211 -0
- package/rules/no-unexpected-multiline.cjs +76 -0
- package/rules/no-unmodified-loop-condition.cjs +849 -0
- package/rules/no-unneeded-ternary.cjs +112 -0
- package/rules/no-unreachable-loop.cjs +128 -0
- package/rules/no-unreachable.cjs +195 -0
- package/rules/no-unsafe-finally.cjs +67 -0
- package/rules/no-unsafe-negation.cjs +86 -0
- package/rules/no-unsafe-optional-chaining.cjs +164 -0
- package/rules/no-unused-expressions.cjs +163 -0
- package/rules/no-unused-labels.cjs +97 -0
- package/rules/no-unused-private-class-members.cjs +69 -0
- package/rules/no-unused-vars.cjs +639 -0
- package/rules/no-use-before-define.cjs +245 -0
- package/rules/no-useless-assignment.cjs +250 -0
- package/rules/no-useless-backreference.cjs +137 -0
- package/rules/no-useless-call.cjs +57 -0
- package/rules/no-useless-catch.cjs +38 -0
- package/rules/no-useless-computed-key.cjs +106 -0
- package/rules/no-useless-concat.cjs +78 -0
- package/rules/no-useless-constructor.cjs +152 -0
- package/rules/no-useless-escape.cjs +164 -0
- package/rules/no-useless-rename.cjs +94 -0
- package/rules/no-useless-return.cjs +229 -0
- package/rules/no-var.cjs +235 -0
- package/rules/no-void.cjs +39 -0
- package/rules/no-warning-comments.cjs +112 -0
- package/rules/no-whitespace-before-property.cjs +72 -0
- package/rules/no-with.cjs +32 -0
- package/rules/nonblock-statement-body-position.cjs +107 -0
- package/rules/object-curly-newline.cjs +194 -0
- package/rules/object-curly-spacing.cjs +225 -0
- package/rules/object-property-newline.cjs +81 -0
- package/rules/object-shorthand.cjs +284 -0
- package/rules/one-var-declaration-per-line.cjs +75 -0
- package/rules/one-var.cjs +378 -0
- package/rules/operator-assignment.cjs +146 -0
- package/rules/operator-linebreak.cjs +150 -0
- package/rules/padded-blocks.cjs +192 -0
- package/rules/padding-line-between-statements.cjs +377 -0
- package/rules/prefer-arrow-callback.cjs +185 -0
- package/rules/prefer-const.cjs +240 -0
- package/rules/prefer-destructuring.cjs +188 -0
- package/rules/prefer-exponentiation-operator.cjs +100 -0
- package/rules/prefer-named-capture-group.cjs +111 -0
- package/rules/prefer-numeric-literals.cjs +75 -0
- package/rules/prefer-object-has-own.cjs +54 -0
- package/rules/prefer-object-spread.cjs +170 -0
- package/rules/prefer-promise-reject-errors.cjs +62 -0
- package/rules/prefer-reflect.cjs +100 -0
- package/rules/prefer-regex-literals.cjs +256 -0
- package/rules/prefer-rest-params.cjs +80 -0
- package/rules/prefer-spread.cjs +57 -0
- package/rules/prefer-template.cjs +147 -0
- package/rules/preserve-caught-error.cjs +196 -0
- package/rules/quote-props.cjs +224 -0
- package/rules/quotes.cjs +187 -0
- package/rules/radix.cjs +124 -0
- package/rules/require-atomic-updates.cjs +197 -0
- package/rules/require-await.cjs +90 -0
- package/rules/require-unicode-regexp.cjs +101 -0
- package/rules/require-yield.cjs +56 -0
- package/rules/rest-spread-spacing.cjs +99 -0
- package/rules/semi-spacing.cjs +215 -0
- package/rules/semi-style.cjs +116 -0
- package/rules/semi.cjs +239 -0
- package/rules/sort-imports.cjs +140 -0
- package/rules/sort-keys.cjs +165 -0
- package/rules/sort-vars.cjs +50 -0
- package/rules/space-before-blocks.cjs +132 -0
- package/rules/space-before-function-paren.cjs +126 -0
- package/rules/space-in-parens.cjs +175 -0
- package/rules/space-infix-ops.cjs +133 -0
- package/rules/space-unary-ops.cjs +237 -0
- package/rules/spaced-comment.cjs +233 -0
- package/rules/strict.cjs +206 -0
- package/rules/switch-colon-spacing.cjs +114 -0
- package/rules/symbol-description.cjs +49 -0
- package/rules/template-curly-spacing.cjs +112 -0
- package/rules/template-tag-spacing.cjs +82 -0
- package/rules/unicode-bom.cjs +52 -0
- package/rules/use-isnan.cjs +144 -0
- package/rules/valid-typeof.cjs +104 -0
- package/rules/vars-on-top.cjs +94 -0
- package/rules/wrap-iife.cjs +131 -0
- package/rules/wrap-regex.cjs +57 -0
- package/rules/yield-star-spacing.cjs +115 -0
- package/rules/yoda.cjs +185 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
const require_chunk = require("../common/chunk.cjs"), require_ast_utils$1 = require("../common/ast-utils.cjs");
|
|
2
|
+
//#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-dupe-args.js
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview Rule to flag duplicate arguments
|
|
5
|
+
* @author Jamund Ferguson
|
|
6
|
+
*/
|
|
7
|
+
var require_no_dupe_args = /* @__PURE__ */ require_chunk.t(((exports, module) => {
|
|
8
|
+
let astUtils = require_ast_utils$1.t();
|
|
9
|
+
/** @type {import('../types').Rule.RuleModule} */
|
|
10
|
+
module.exports = {
|
|
11
|
+
meta: {
|
|
12
|
+
type: "problem",
|
|
13
|
+
docs: {
|
|
14
|
+
description: "Disallow duplicate arguments in `function` definitions",
|
|
15
|
+
recommended: !0,
|
|
16
|
+
url: "https://eslint.org/docs/latest/rules/no-dupe-args"
|
|
17
|
+
},
|
|
18
|
+
schema: [],
|
|
19
|
+
messages: { unexpected: "Duplicate param '{{name}}'." }
|
|
20
|
+
},
|
|
21
|
+
create(context) {
|
|
22
|
+
let sourceCode = context.sourceCode;
|
|
23
|
+
/**
|
|
24
|
+
* Checks whether or not a given definition is a parameter's.
|
|
25
|
+
* @param {eslint-scope.DefEntry} def A definition to check.
|
|
26
|
+
* @returns {boolean} `true` if the definition is a parameter's.
|
|
27
|
+
*/
|
|
28
|
+
function isParameter(def) {
|
|
29
|
+
return def.type === "Parameter";
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Determines if a given node has duplicate parameters.
|
|
33
|
+
* @param {ASTNode} node The node to check.
|
|
34
|
+
* @returns {void}
|
|
35
|
+
* @private
|
|
36
|
+
*/
|
|
37
|
+
function checkParams(node) {
|
|
38
|
+
let variables = sourceCode.getDeclaredVariables(node);
|
|
39
|
+
for (let i = 0; i < variables.length; ++i) {
|
|
40
|
+
let variable = variables[i], defs = variable.defs.filter(isParameter), loc = {
|
|
41
|
+
start: astUtils.getOpeningParenOfParams(node, sourceCode).loc.start,
|
|
42
|
+
end: sourceCode.getTokenBefore(node.body).loc.end
|
|
43
|
+
};
|
|
44
|
+
defs.length >= 2 && context.report({
|
|
45
|
+
loc,
|
|
46
|
+
messageId: "unexpected",
|
|
47
|
+
data: { name: variable.name }
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
FunctionDeclaration: checkParams,
|
|
53
|
+
FunctionExpression: checkParams
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
}));
|
|
58
|
+
//#endregion
|
|
59
|
+
//#region src-js/generated/plugin-eslint/rules/no-dupe-args.cjs
|
|
60
|
+
module.exports = require_no_dupe_args().create;
|
|
61
|
+
//#endregion
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
const require_chunk = require("../common/chunk.cjs"), require_ast_utils$1 = require("../common/ast-utils.cjs");
|
|
2
|
+
//#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-dupe-class-members.js
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview A rule to disallow duplicate name in class members.
|
|
5
|
+
* @author Toru Nagashima
|
|
6
|
+
*/
|
|
7
|
+
var require_no_dupe_class_members = /* @__PURE__ */ require_chunk.t(((exports, module) => {
|
|
8
|
+
let astUtils = require_ast_utils$1.t();
|
|
9
|
+
/** @type {import('../types').Rule.RuleModule} */
|
|
10
|
+
module.exports = {
|
|
11
|
+
meta: {
|
|
12
|
+
type: "problem",
|
|
13
|
+
dialects: ["javascript", "typescript"],
|
|
14
|
+
language: "javascript",
|
|
15
|
+
docs: {
|
|
16
|
+
description: "Disallow duplicate class members",
|
|
17
|
+
recommended: !0,
|
|
18
|
+
url: "https://eslint.org/docs/latest/rules/no-dupe-class-members"
|
|
19
|
+
},
|
|
20
|
+
schema: [],
|
|
21
|
+
messages: { unexpected: "Duplicate name '{{name}}'." }
|
|
22
|
+
},
|
|
23
|
+
create(context) {
|
|
24
|
+
let stack = [];
|
|
25
|
+
/**
|
|
26
|
+
* Gets state of a given member name.
|
|
27
|
+
* @param {string} name A name of a member.
|
|
28
|
+
* @param {boolean} isStatic A flag which specifies that is a static member.
|
|
29
|
+
* @returns {Object} A state of a given member name.
|
|
30
|
+
* - retv.init {boolean} A flag which shows the name is declared as normal member.
|
|
31
|
+
* - retv.get {boolean} A flag which shows the name is declared as getter.
|
|
32
|
+
* - retv.set {boolean} A flag which shows the name is declared as setter.
|
|
33
|
+
*/
|
|
34
|
+
function getState(name, isStatic) {
|
|
35
|
+
let stateMap = stack.at(-1), key = `$${name}`;
|
|
36
|
+
return stateMap[key] || (stateMap[key] = {
|
|
37
|
+
nonStatic: {
|
|
38
|
+
init: !1,
|
|
39
|
+
get: !1,
|
|
40
|
+
set: !1
|
|
41
|
+
},
|
|
42
|
+
static: {
|
|
43
|
+
init: !1,
|
|
44
|
+
get: !1,
|
|
45
|
+
set: !1
|
|
46
|
+
}
|
|
47
|
+
}), stateMap[key][isStatic ? "static" : "nonStatic"];
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
Program() {
|
|
51
|
+
stack = [];
|
|
52
|
+
},
|
|
53
|
+
ClassBody() {
|
|
54
|
+
stack.push(Object.create(null));
|
|
55
|
+
},
|
|
56
|
+
"ClassBody:exit"() {
|
|
57
|
+
stack.pop();
|
|
58
|
+
},
|
|
59
|
+
"MethodDefinition, PropertyDefinition"(node) {
|
|
60
|
+
if (node.value && node.value.type === "TSEmptyBodyFunctionExpression") return;
|
|
61
|
+
let name = astUtils.getStaticPropertyName(node), kind = node.type === "MethodDefinition" ? node.kind : "field";
|
|
62
|
+
if (name === null || kind === "constructor") return;
|
|
63
|
+
let state = getState(name, node.static), isDuplicate;
|
|
64
|
+
kind === "get" ? (isDuplicate = state.init || state.get, state.get = !0) : kind === "set" ? (isDuplicate = state.init || state.set, state.set = !0) : (isDuplicate = state.init || state.get || state.set, state.init = !0), isDuplicate && context.report({
|
|
65
|
+
loc: node.key.loc,
|
|
66
|
+
messageId: "unexpected",
|
|
67
|
+
data: { name }
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
}));
|
|
74
|
+
//#endregion
|
|
75
|
+
//#region src-js/generated/plugin-eslint/rules/no-dupe-class-members.cjs
|
|
76
|
+
module.exports = require_no_dupe_class_members().create;
|
|
77
|
+
//#endregion
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
const require_chunk = require("../common/chunk.cjs"), require_ast_utils$1 = require("../common/ast-utils.cjs");
|
|
2
|
+
//#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-dupe-else-if.js
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview Rule to disallow duplicate conditions in if-else-if chains
|
|
5
|
+
* @author Milos Djermanovic
|
|
6
|
+
*/
|
|
7
|
+
var require_no_dupe_else_if = /* @__PURE__ */ require_chunk.t(((exports, module) => {
|
|
8
|
+
let astUtils = require_ast_utils$1.t();
|
|
9
|
+
/**
|
|
10
|
+
* Determines whether the first given array is a subset of the second given array.
|
|
11
|
+
* @param {Function} comparator A function to compare two elements, should return `true` if they are equal.
|
|
12
|
+
* @param {Array} arrA The array to compare from.
|
|
13
|
+
* @param {Array} arrB The array to compare against.
|
|
14
|
+
* @returns {boolean} `true` if the array `arrA` is a subset of the array `arrB`.
|
|
15
|
+
*/
|
|
16
|
+
function isSubsetByComparator(comparator, arrA, arrB) {
|
|
17
|
+
return arrA.every((a) => arrB.some((b) => comparator(a, b)));
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Splits the given node by the given logical operator.
|
|
21
|
+
* @param {string} operator Logical operator `||` or `&&`.
|
|
22
|
+
* @param {ASTNode} node The node to split.
|
|
23
|
+
* @returns {ASTNode[]} Array of conditions that makes the node when joined by the operator.
|
|
24
|
+
*/
|
|
25
|
+
function splitByLogicalOperator(operator, node) {
|
|
26
|
+
return node.type === "LogicalExpression" && node.operator === operator ? [...splitByLogicalOperator(operator, node.left), ...splitByLogicalOperator(operator, node.right)] : [node];
|
|
27
|
+
}
|
|
28
|
+
let splitByOr = splitByLogicalOperator.bind(null, "||"), splitByAnd = splitByLogicalOperator.bind(null, "&&");
|
|
29
|
+
/** @type {import('../types').Rule.RuleModule} */
|
|
30
|
+
module.exports = {
|
|
31
|
+
meta: {
|
|
32
|
+
type: "problem",
|
|
33
|
+
docs: {
|
|
34
|
+
description: "Disallow duplicate conditions in if-else-if chains",
|
|
35
|
+
recommended: !0,
|
|
36
|
+
url: "https://eslint.org/docs/latest/rules/no-dupe-else-if"
|
|
37
|
+
},
|
|
38
|
+
schema: [],
|
|
39
|
+
messages: { unexpected: "This branch can never execute. Its condition is a duplicate or covered by previous conditions in the if-else-if chain." }
|
|
40
|
+
},
|
|
41
|
+
create(context) {
|
|
42
|
+
let sourceCode = context.sourceCode;
|
|
43
|
+
/**
|
|
44
|
+
* Determines whether the two given nodes are considered to be equal. In particular, given that the nodes
|
|
45
|
+
* represent expressions in a boolean context, `||` and `&&` can be considered as commutative operators.
|
|
46
|
+
* @param {ASTNode} a First node.
|
|
47
|
+
* @param {ASTNode} b Second node.
|
|
48
|
+
* @returns {boolean} `true` if the nodes are considered to be equal.
|
|
49
|
+
*/
|
|
50
|
+
function equal(a, b) {
|
|
51
|
+
return a.type === b.type ? a.type === "LogicalExpression" && (a.operator === "||" || a.operator === "&&") && a.operator === b.operator ? equal(a.left, b.left) && equal(a.right, b.right) || equal(a.left, b.right) && equal(a.right, b.left) : astUtils.equalTokens(a, b, sourceCode) : !1;
|
|
52
|
+
}
|
|
53
|
+
let isSubset = isSubsetByComparator.bind(null, equal);
|
|
54
|
+
return { IfStatement(node) {
|
|
55
|
+
let test = node.test, conditionsToCheck = test.type === "LogicalExpression" && test.operator === "&&" ? [test, ...splitByAnd(test)] : [test], current = node, listToCheck = conditionsToCheck.map((c) => splitByOr(c).map(splitByAnd));
|
|
56
|
+
for (; current.parent && current.parent.type === "IfStatement" && current.parent.alternate === current;) {
|
|
57
|
+
current = current.parent;
|
|
58
|
+
let currentOrOperands = splitByOr(current.test).map(splitByAnd);
|
|
59
|
+
if (listToCheck = listToCheck.map((orOperands) => orOperands.filter((orOperand) => !currentOrOperands.some((currentOrOperand) => isSubset(currentOrOperand, orOperand)))), listToCheck.some((orOperands) => orOperands.length === 0)) {
|
|
60
|
+
context.report({
|
|
61
|
+
node: test,
|
|
62
|
+
messageId: "unexpected"
|
|
63
|
+
});
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
} };
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
}));
|
|
71
|
+
//#endregion
|
|
72
|
+
//#region src-js/generated/plugin-eslint/rules/no-dupe-else-if.cjs
|
|
73
|
+
module.exports = require_no_dupe_else_if().create;
|
|
74
|
+
//#endregion
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
const require_chunk = require("../common/chunk.cjs"), require_ast_utils$1 = require("../common/ast-utils.cjs");
|
|
2
|
+
//#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-dupe-keys.js
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview Rule to flag use of duplicate keys in an object.
|
|
5
|
+
* @author Ian Christian Myers
|
|
6
|
+
*/
|
|
7
|
+
var require_no_dupe_keys = /* @__PURE__ */ require_chunk.t(((exports, module) => {
|
|
8
|
+
let astUtils = require_ast_utils$1.t(), GET_KIND = /^(?:init|get)$/u, SET_KIND = /^(?:init|set)$/u;
|
|
9
|
+
/**
|
|
10
|
+
* The class which stores properties' information of an object.
|
|
11
|
+
*/
|
|
12
|
+
var ObjectInfo = class {
|
|
13
|
+
/**
|
|
14
|
+
* @param {ObjectInfo|null} upper The information of the outer object.
|
|
15
|
+
* @param {ASTNode} node The ObjectExpression node of this information.
|
|
16
|
+
*/
|
|
17
|
+
constructor(upper, node) {
|
|
18
|
+
this.upper = upper, this.node = node, this.properties = /* @__PURE__ */ new Map();
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Gets the information of the given Property node.
|
|
22
|
+
* @param {ASTNode} node The Property node to get.
|
|
23
|
+
* @returns {{get: boolean, set: boolean}} The information of the property.
|
|
24
|
+
*/
|
|
25
|
+
getPropertyInfo(node) {
|
|
26
|
+
let name = astUtils.getStaticPropertyName(node);
|
|
27
|
+
return this.properties.has(name) || this.properties.set(name, {
|
|
28
|
+
get: !1,
|
|
29
|
+
set: !1
|
|
30
|
+
}), this.properties.get(name);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Checks whether the given property has been defined already or not.
|
|
34
|
+
* @param {ASTNode} node The Property node to check.
|
|
35
|
+
* @returns {boolean} `true` if the property has been defined.
|
|
36
|
+
*/
|
|
37
|
+
isPropertyDefined(node) {
|
|
38
|
+
let entry = this.getPropertyInfo(node);
|
|
39
|
+
return GET_KIND.test(node.kind) && entry.get || SET_KIND.test(node.kind) && entry.set;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Defines the given property.
|
|
43
|
+
* @param {ASTNode} node The Property node to define.
|
|
44
|
+
* @returns {void}
|
|
45
|
+
*/
|
|
46
|
+
defineProperty(node) {
|
|
47
|
+
let entry = this.getPropertyInfo(node);
|
|
48
|
+
GET_KIND.test(node.kind) && (entry.get = !0), SET_KIND.test(node.kind) && (entry.set = !0);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
/** @type {import('../types').Rule.RuleModule} */
|
|
52
|
+
module.exports = {
|
|
53
|
+
meta: {
|
|
54
|
+
type: "problem",
|
|
55
|
+
docs: {
|
|
56
|
+
description: "Disallow duplicate keys in object literals",
|
|
57
|
+
recommended: !0,
|
|
58
|
+
url: "https://eslint.org/docs/latest/rules/no-dupe-keys"
|
|
59
|
+
},
|
|
60
|
+
schema: [],
|
|
61
|
+
messages: { unexpected: "Duplicate key '{{name}}'." }
|
|
62
|
+
},
|
|
63
|
+
create(context) {
|
|
64
|
+
let info = null;
|
|
65
|
+
return {
|
|
66
|
+
ObjectExpression(node) {
|
|
67
|
+
info = new ObjectInfo(info, node);
|
|
68
|
+
},
|
|
69
|
+
"ObjectExpression:exit"() {
|
|
70
|
+
info = info.upper;
|
|
71
|
+
},
|
|
72
|
+
Property(node) {
|
|
73
|
+
let name = astUtils.getStaticPropertyName(node);
|
|
74
|
+
node.parent.type === "ObjectExpression" && name !== null && (name === "__proto__" && node.kind === "init" && !node.computed && !node.shorthand && !node.method || (info.isPropertyDefined(node) && context.report({
|
|
75
|
+
node: info.node,
|
|
76
|
+
loc: node.key.loc,
|
|
77
|
+
messageId: "unexpected",
|
|
78
|
+
data: { name }
|
|
79
|
+
}), info.defineProperty(node)));
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
}));
|
|
85
|
+
//#endregion
|
|
86
|
+
//#region src-js/generated/plugin-eslint/rules/no-dupe-keys.cjs
|
|
87
|
+
module.exports = require_no_dupe_keys().create;
|
|
88
|
+
//#endregion
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
const require_chunk = require("../common/chunk.cjs"), require_ast_utils$1 = require("../common/ast-utils.cjs");
|
|
2
|
+
//#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-duplicate-case.js
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview Rule to disallow a duplicate case label.
|
|
5
|
+
* @author Dieter Oberkofler
|
|
6
|
+
* @author Burak Yigit Kaya
|
|
7
|
+
*/
|
|
8
|
+
var require_no_duplicate_case = /* @__PURE__ */ require_chunk.t(((exports, module) => {
|
|
9
|
+
let astUtils = require_ast_utils$1.t();
|
|
10
|
+
/** @type {import('../types').Rule.RuleModule} */
|
|
11
|
+
module.exports = {
|
|
12
|
+
meta: {
|
|
13
|
+
type: "problem",
|
|
14
|
+
docs: {
|
|
15
|
+
description: "Disallow duplicate case labels",
|
|
16
|
+
recommended: !0,
|
|
17
|
+
url: "https://eslint.org/docs/latest/rules/no-duplicate-case"
|
|
18
|
+
},
|
|
19
|
+
schema: [],
|
|
20
|
+
messages: { unexpected: "Duplicate case label." }
|
|
21
|
+
},
|
|
22
|
+
create(context) {
|
|
23
|
+
let sourceCode = context.sourceCode;
|
|
24
|
+
/**
|
|
25
|
+
* Determines whether the two given nodes are considered to be equal.
|
|
26
|
+
* @param {ASTNode} a First node.
|
|
27
|
+
* @param {ASTNode} b Second node.
|
|
28
|
+
* @returns {boolean} `true` if the nodes are considered to be equal.
|
|
29
|
+
*/
|
|
30
|
+
function equal(a, b) {
|
|
31
|
+
return a.type === b.type ? astUtils.equalTokens(a, b, sourceCode) : !1;
|
|
32
|
+
}
|
|
33
|
+
return { SwitchStatement(node) {
|
|
34
|
+
let previousTests = [];
|
|
35
|
+
for (let switchCase of node.cases) if (switchCase.test) {
|
|
36
|
+
let test = switchCase.test;
|
|
37
|
+
previousTests.some((previousTest) => equal(previousTest, test)) ? context.report({
|
|
38
|
+
node: switchCase,
|
|
39
|
+
messageId: "unexpected"
|
|
40
|
+
}) : previousTests.push(test);
|
|
41
|
+
}
|
|
42
|
+
} };
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
}));
|
|
46
|
+
//#endregion
|
|
47
|
+
//#region src-js/generated/plugin-eslint/rules/no-duplicate-case.cjs
|
|
48
|
+
module.exports = require_no_duplicate_case().create;
|
|
49
|
+
//#endregion
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
//#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-duplicate-imports.js
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Restrict usage of duplicate imports.
|
|
4
|
+
* @author Simen Bekkhus
|
|
5
|
+
*/
|
|
6
|
+
var require_no_duplicate_imports = /* @__PURE__ */ require("../common/chunk.cjs").t(((exports, module) => {
|
|
7
|
+
let NAMED_TYPES = ["ImportSpecifier", "ExportSpecifier"], NAMESPACE_TYPES = ["ImportNamespaceSpecifier", "ExportNamespaceSpecifier"];
|
|
8
|
+
/**
|
|
9
|
+
* Check if an import/export type belongs to (ImportSpecifier|ExportSpecifier) or (ImportNamespaceSpecifier|ExportNamespaceSpecifier).
|
|
10
|
+
* @param {string} importExportType An import/export type to check.
|
|
11
|
+
* @param {string} type Can be "named" or "namespace"
|
|
12
|
+
* @returns {boolean} True if import/export type belongs to (ImportSpecifier|ExportSpecifier) or (ImportNamespaceSpecifier|ExportNamespaceSpecifier) and false if it doesn't.
|
|
13
|
+
*/
|
|
14
|
+
function isImportExportSpecifier(importExportType, type) {
|
|
15
|
+
return (type === "named" ? NAMED_TYPES : NAMESPACE_TYPES).includes(importExportType);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Return the type of (import|export).
|
|
19
|
+
* @param {ASTNode} node A node to get.
|
|
20
|
+
* @returns {string} The type of the (import|export).
|
|
21
|
+
*/
|
|
22
|
+
function getImportExportType(node) {
|
|
23
|
+
if (node.specifiers && node.specifiers.length > 0) {
|
|
24
|
+
let nodeSpecifiers = node.specifiers, index = nodeSpecifiers.findIndex(({ type }) => isImportExportSpecifier(type, "named") || isImportExportSpecifier(type, "namespace"));
|
|
25
|
+
return nodeSpecifiers[index > -1 ? index : 0].type;
|
|
26
|
+
}
|
|
27
|
+
return node.type === "ExportAllDeclaration" ? node.exported ? "ExportNamespaceSpecifier" : "ExportAll" : "SideEffectImport";
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Returns a boolean indicates if two (import|export) can be merged
|
|
31
|
+
* @param {ASTNode} node1 A node to check.
|
|
32
|
+
* @param {ASTNode} node2 A node to check.
|
|
33
|
+
* @returns {boolean} True if two (import|export) can be merged, false if they can't.
|
|
34
|
+
*/
|
|
35
|
+
function isImportExportCanBeMerged(node1, node2) {
|
|
36
|
+
let importExportType1 = getImportExportType(node1), importExportType2 = getImportExportType(node2);
|
|
37
|
+
if ((node1.importKind === "type" || node1.exportKind === "type") && (node2.importKind === "type" || node2.exportKind === "type")) {
|
|
38
|
+
let isDefault1 = importExportType1 === "ImportDefaultSpecifier", isDefault2 = importExportType2 === "ImportDefaultSpecifier", isNamed1 = isImportExportSpecifier(importExportType1, "named"), isNamed2 = isImportExportSpecifier(importExportType2, "named");
|
|
39
|
+
if (isDefault1 && isNamed2 || isDefault2 && isNamed1) return !1;
|
|
40
|
+
}
|
|
41
|
+
return !(importExportType1 === "ExportAll" && importExportType2 !== "ExportAll" && importExportType2 !== "SideEffectImport" || importExportType1 !== "ExportAll" && importExportType1 !== "SideEffectImport" && importExportType2 === "ExportAll" || isImportExportSpecifier(importExportType1, "namespace") && isImportExportSpecifier(importExportType2, "named") || isImportExportSpecifier(importExportType2, "namespace") && isImportExportSpecifier(importExportType1, "named"));
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Returns a boolean if we should report (import|export).
|
|
45
|
+
* @param {ASTNode} node A node to be reported or not.
|
|
46
|
+
* @param {[ASTNode]} previousNodes An array contains previous nodes of the module imported or exported.
|
|
47
|
+
* @param {boolean} allowSeparateTypeImports Whether to allow separate type and value imports.
|
|
48
|
+
* @returns {boolean} True if the (import|export) should be reported.
|
|
49
|
+
*/
|
|
50
|
+
function shouldReportImportExport(node, previousNodes, allowSeparateTypeImports) {
|
|
51
|
+
let i = 0;
|
|
52
|
+
for (; i < previousNodes.length;) {
|
|
53
|
+
let previousNode = previousNodes[i];
|
|
54
|
+
if (allowSeparateTypeImports && (node.importKind === "type" || node.exportKind === "type") != (previousNode.importKind === "type" || previousNode.exportKind === "type")) {
|
|
55
|
+
i++;
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
if (isImportExportCanBeMerged(node, previousNode)) return !0;
|
|
59
|
+
i++;
|
|
60
|
+
}
|
|
61
|
+
return !1;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Returns array contains only nodes with declarations types equal to type.
|
|
65
|
+
* @param {[{node: ASTNode, declarationType: string}]} nodes An array contains objects, each object contains a node and a declaration type.
|
|
66
|
+
* @param {string} type Declaration type.
|
|
67
|
+
* @returns {[ASTNode]} An array contains only nodes with declarations types equal to type.
|
|
68
|
+
*/
|
|
69
|
+
function getNodesByDeclarationType(nodes, type) {
|
|
70
|
+
return nodes.filter(({ declarationType }) => declarationType === type).map(({ node }) => node);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Returns the name of the module imported or re-exported.
|
|
74
|
+
* @param {ASTNode} node A node to get.
|
|
75
|
+
* @returns {string} The name of the module, or empty string if no name.
|
|
76
|
+
*/
|
|
77
|
+
function getModule(node) {
|
|
78
|
+
return node && node.source && node.source.value ? node.source.value.trim() : "";
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Checks if the (import|export) can be merged with at least one import or one export, and reports if so.
|
|
82
|
+
* @param {RuleContext} context The ESLint rule context object.
|
|
83
|
+
* @param {ASTNode} node A node to get.
|
|
84
|
+
* @param {Map} modules A Map object contains as a key a module name and as value an array contains objects, each object contains a node and a declaration type.
|
|
85
|
+
* @param {string} declarationType A declaration type can be an import or export.
|
|
86
|
+
* @param {boolean} includeExports Whether or not to check for exports in addition to imports.
|
|
87
|
+
* @param {boolean} allowSeparateTypeImports Whether to allow separate type and value imports.
|
|
88
|
+
* @returns {void} No return value.
|
|
89
|
+
*/
|
|
90
|
+
function checkAndReport(context, node, modules, declarationType, includeExports, allowSeparateTypeImports) {
|
|
91
|
+
let module$1 = getModule(node);
|
|
92
|
+
if (modules.has(module$1)) {
|
|
93
|
+
let previousNodes = modules.get(module$1), messagesIds = [], importNodes = getNodesByDeclarationType(previousNodes, "import"), exportNodes;
|
|
94
|
+
includeExports && (exportNodes = getNodesByDeclarationType(previousNodes, "export")), declarationType === "import" ? (shouldReportImportExport(node, importNodes, allowSeparateTypeImports) && messagesIds.push("import"), includeExports && shouldReportImportExport(node, exportNodes, allowSeparateTypeImports) && messagesIds.push("importAs")) : declarationType === "export" && (shouldReportImportExport(node, exportNodes, allowSeparateTypeImports) && messagesIds.push("export"), shouldReportImportExport(node, importNodes, allowSeparateTypeImports) && messagesIds.push("exportAs")), messagesIds.forEach((messageId) => context.report({
|
|
95
|
+
node,
|
|
96
|
+
messageId,
|
|
97
|
+
data: { module: module$1 }
|
|
98
|
+
}));
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* @callback nodeCallback
|
|
103
|
+
* @param {ASTNode} node A node to handle.
|
|
104
|
+
*/
|
|
105
|
+
/**
|
|
106
|
+
* Returns a function handling the (imports|exports) of a given file
|
|
107
|
+
* @param {RuleContext} context The ESLint rule context object.
|
|
108
|
+
* @param {Map} modules A Map object contains as a key a module name and as value an array contains objects, each object contains a node and a declaration type.
|
|
109
|
+
* @param {string} declarationType A declaration type can be an import or export.
|
|
110
|
+
* @param {boolean} includeExports Whether or not to check for exports in addition to imports.
|
|
111
|
+
* @param {boolean} allowSeparateTypeImports Whether to allow separate type and value imports.
|
|
112
|
+
* @returns {nodeCallback} A function passed to ESLint to handle the statement.
|
|
113
|
+
*/
|
|
114
|
+
function handleImportsExports(context, modules, declarationType, includeExports, allowSeparateTypeImports) {
|
|
115
|
+
return function(node) {
|
|
116
|
+
let module$2 = getModule(node);
|
|
117
|
+
if (module$2) {
|
|
118
|
+
checkAndReport(context, node, modules, declarationType, includeExports, allowSeparateTypeImports);
|
|
119
|
+
let currentNode = {
|
|
120
|
+
node,
|
|
121
|
+
declarationType
|
|
122
|
+
}, nodes = [currentNode];
|
|
123
|
+
modules.has(module$2) && (nodes = [...modules.get(module$2), currentNode]), modules.set(module$2, nodes);
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
/** @type {import('../types').Rule.RuleModule} */
|
|
128
|
+
module.exports = {
|
|
129
|
+
meta: {
|
|
130
|
+
dialects: ["javascript", "typescript"],
|
|
131
|
+
language: "javascript",
|
|
132
|
+
type: "problem",
|
|
133
|
+
defaultOptions: [{
|
|
134
|
+
includeExports: !1,
|
|
135
|
+
allowSeparateTypeImports: !1
|
|
136
|
+
}],
|
|
137
|
+
docs: {
|
|
138
|
+
description: "Disallow duplicate module imports",
|
|
139
|
+
recommended: !1,
|
|
140
|
+
url: "https://eslint.org/docs/latest/rules/no-duplicate-imports"
|
|
141
|
+
},
|
|
142
|
+
schema: [{
|
|
143
|
+
type: "object",
|
|
144
|
+
properties: {
|
|
145
|
+
includeExports: { type: "boolean" },
|
|
146
|
+
allowSeparateTypeImports: { type: "boolean" }
|
|
147
|
+
},
|
|
148
|
+
additionalProperties: !1
|
|
149
|
+
}],
|
|
150
|
+
messages: {
|
|
151
|
+
import: "'{{module}}' import is duplicated.",
|
|
152
|
+
importAs: "'{{module}}' import is duplicated as export.",
|
|
153
|
+
export: "'{{module}}' export is duplicated.",
|
|
154
|
+
exportAs: "'{{module}}' export is duplicated as import."
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
create(context) {
|
|
158
|
+
let [{ includeExports, allowSeparateTypeImports }] = context.options, modules = /* @__PURE__ */ new Map(), handlers = { ImportDeclaration: handleImportsExports(context, modules, "import", includeExports, allowSeparateTypeImports) };
|
|
159
|
+
return includeExports && (handlers.ExportNamedDeclaration = handleImportsExports(context, modules, "export", includeExports, allowSeparateTypeImports), handlers.ExportAllDeclaration = handleImportsExports(context, modules, "export", includeExports, allowSeparateTypeImports)), handlers;
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
}));
|
|
163
|
+
//#endregion
|
|
164
|
+
//#region src-js/generated/plugin-eslint/rules/no-duplicate-imports.cjs
|
|
165
|
+
module.exports = require_no_duplicate_imports().create;
|
|
166
|
+
//#endregion
|