@alextheman/eslint-plugin 2.9.0 → 3.0.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/dist/index.cjs +62 -37
- package/dist/index.d.cts +9 -2
- package/dist/index.d.ts +9 -2
- package/dist/index.js +55 -35
- package/package.json +12 -14
package/dist/index.cjs
CHANGED
|
@@ -3411,7 +3411,7 @@ var require_package = __commonJS({
|
|
|
3411
3411
|
"node_modules/@eslint/js/package.json"(exports2, module2) {
|
|
3412
3412
|
module2.exports = {
|
|
3413
3413
|
name: "@eslint/js",
|
|
3414
|
-
version: "9.
|
|
3414
|
+
version: "9.39.1",
|
|
3415
3415
|
description: "ESLint JavaScript language implementation",
|
|
3416
3416
|
funding: "https://eslint.org/donate",
|
|
3417
3417
|
main: "./src/index.js",
|
|
@@ -3453,7 +3453,7 @@ var require_eslint_all = __commonJS({
|
|
|
3453
3453
|
"node_modules/@eslint/js/src/configs/eslint-all.js"(exports2, module2) {
|
|
3454
3454
|
"use strict";
|
|
3455
3455
|
module2.exports = Object.freeze({
|
|
3456
|
-
|
|
3456
|
+
rules: Object.freeze({
|
|
3457
3457
|
"accessor-pairs": "error",
|
|
3458
3458
|
"array-callback-return": "error",
|
|
3459
3459
|
"arrow-body-style": "error",
|
|
@@ -3637,6 +3637,7 @@ var require_eslint_all = __commonJS({
|
|
|
3637
3637
|
"prefer-rest-params": "error",
|
|
3638
3638
|
"prefer-spread": "error",
|
|
3639
3639
|
"prefer-template": "error",
|
|
3640
|
+
"preserve-caught-error": "error",
|
|
3640
3641
|
"radix": "error",
|
|
3641
3642
|
"require-atomic-updates": "error",
|
|
3642
3643
|
"require-await": "error",
|
|
@@ -3652,7 +3653,7 @@ var require_eslint_all = __commonJS({
|
|
|
3652
3653
|
"valid-typeof": "error",
|
|
3653
3654
|
"vars-on-top": "error",
|
|
3654
3655
|
"yoda": "error"
|
|
3655
|
-
}
|
|
3656
|
+
})
|
|
3656
3657
|
});
|
|
3657
3658
|
}
|
|
3658
3659
|
});
|
|
@@ -3751,7 +3752,12 @@ var require_src = __commonJS({
|
|
|
3751
3752
|
var index_exports = {};
|
|
3752
3753
|
__export(index_exports, {
|
|
3753
3754
|
default: () => index_default,
|
|
3755
|
+
parseConsistentTestFunctionOptions: () => parseConsistentTestFunctionOptions,
|
|
3756
|
+
parseNoNamespaceImportsOptions: () => parseNoNamespaceImportsOptions,
|
|
3757
|
+
parseNoRelativeImportsOptions: () => parseNoRelativeImportsOptions,
|
|
3758
|
+
parseStandardiseErrorMessagesOptions: () => parseStandardiseErrorMessagesOptions,
|
|
3754
3759
|
parseTestFunction: () => parseTestFunction,
|
|
3760
|
+
parseUseNormalizedImportsOptions: () => parseUseNormalizedImportsOptions,
|
|
3755
3761
|
prettierRules: () => prettierRules_default,
|
|
3756
3762
|
sortObjects: () => sortObjects_default
|
|
3757
3763
|
});
|
|
@@ -3759,7 +3765,7 @@ module.exports = __toCommonJS(index_exports);
|
|
|
3759
3765
|
|
|
3760
3766
|
// package.json
|
|
3761
3767
|
var name = "@alextheman/eslint-plugin";
|
|
3762
|
-
var version = "
|
|
3768
|
+
var version = "3.0.0";
|
|
3763
3769
|
|
|
3764
3770
|
// src/configs/index.ts
|
|
3765
3771
|
var import_eslint_plugin_package_json = __toESM(require("eslint-plugin-package-json"), 1);
|
|
@@ -3860,14 +3866,14 @@ var import_js = __toESM(require_src(), 1);
|
|
|
3860
3866
|
var import_eslint_config_prettier = __toESM(require("eslint-config-prettier"), 1);
|
|
3861
3867
|
var import_eslint_plugin_import = __toESM(require("eslint-plugin-import"), 1);
|
|
3862
3868
|
|
|
3863
|
-
// src/configs/
|
|
3869
|
+
// src/configs/helpers/javaScriptLanguageOptions.ts
|
|
3864
3870
|
var import_globals2 = __toESM(require_globals2(), 1);
|
|
3865
3871
|
var javaScriptLanguageOptions = {
|
|
3866
3872
|
globals: __spreadValues(__spreadValues(__spreadValues({}, import_globals2.default.node), import_globals2.default.browser), import_globals2.default.vitest)
|
|
3867
3873
|
};
|
|
3868
3874
|
var javaScriptLanguageOptions_default = javaScriptLanguageOptions;
|
|
3869
3875
|
|
|
3870
|
-
// src/configs/
|
|
3876
|
+
// src/configs/helpers/unusedVarsIgnorePatterns.ts
|
|
3871
3877
|
var unusedVarsIgnorePatterns = {
|
|
3872
3878
|
argsIgnorePattern: "^_",
|
|
3873
3879
|
caughtErrorsIgnorePattern: "^_",
|
|
@@ -3926,7 +3932,7 @@ var javaScriptBase_default = javaScriptBase;
|
|
|
3926
3932
|
var import_eslint_plugin_perfectionist = __toESM(require("eslint-plugin-perfectionist"), 1);
|
|
3927
3933
|
var import_eslint_plugin_prettier = __toESM(require("eslint-plugin-prettier"), 1);
|
|
3928
3934
|
|
|
3929
|
-
// src/configs/
|
|
3935
|
+
// src/configs/helpers/prettierRules.ts
|
|
3930
3936
|
var prettierRules = {
|
|
3931
3937
|
printWidth: 100
|
|
3932
3938
|
};
|
|
@@ -4009,10 +4015,20 @@ var javaScriptBase_default3 = createCombinedJavaScriptBaseConfig;
|
|
|
4009
4015
|
// src/configs/general/reactBase.ts
|
|
4010
4016
|
var import_eslint_plugin_jsx_a11y = __toESM(require("eslint-plugin-jsx-a11y"), 1);
|
|
4011
4017
|
var import_eslint_plugin_react = __toESM(require("eslint-plugin-react"), 1);
|
|
4012
|
-
var import_eslint_plugin_react_hooks = __toESM(require("eslint-plugin-react-hooks"), 1);
|
|
4013
4018
|
var import_eslint_plugin_react_refresh = __toESM(require("eslint-plugin-react-refresh"), 1);
|
|
4014
4019
|
|
|
4015
|
-
// src/configs/
|
|
4020
|
+
// src/configs/helpers/reactHooks.ts
|
|
4021
|
+
var import_utility = require("@alextheman/utility");
|
|
4022
|
+
var import_eslint_plugin_react_hooks = __toESM(require("eslint-plugin-react-hooks"), 1);
|
|
4023
|
+
var reactHooks = __spreadProps(__spreadValues({}, import_eslint_plugin_react_hooks.default), {
|
|
4024
|
+
configs: __spreadProps(__spreadValues({}, (0, import_utility.omitProperties)(import_eslint_plugin_react_hooks.default.configs, "flat")), {
|
|
4025
|
+
"flat/recommended": import_eslint_plugin_react_hooks.default.configs.flat.recommended,
|
|
4026
|
+
"flat/recommended-latest": import_eslint_plugin_react_hooks.default.configs.flat["recommended-latest"]
|
|
4027
|
+
})
|
|
4028
|
+
});
|
|
4029
|
+
var reactHooks_default = reactHooks;
|
|
4030
|
+
|
|
4031
|
+
// src/configs/helpers/reactLanguageOptions.ts
|
|
4016
4032
|
var import_globals3 = __toESM(require_globals2(), 1);
|
|
4017
4033
|
var reactLanguageOptions = {
|
|
4018
4034
|
ecmaVersion: 2020,
|
|
@@ -4035,10 +4051,10 @@ var reactBase = [
|
|
|
4035
4051
|
name: "@alextheman/general/react",
|
|
4036
4052
|
plugins: {
|
|
4037
4053
|
react: import_eslint_plugin_react.default,
|
|
4038
|
-
"react-hooks":
|
|
4054
|
+
"react-hooks": reactHooks_default,
|
|
4039
4055
|
"react-refresh": import_eslint_plugin_react_refresh.default
|
|
4040
4056
|
},
|
|
4041
|
-
rules: __spreadProps(__spreadValues({},
|
|
4057
|
+
rules: __spreadProps(__spreadValues({}, reactHooks_default.configs["flat/recommended"].rules), {
|
|
4042
4058
|
"react/destructuring-assignment": ["error", "always", { destructureInSignature: "always" }],
|
|
4043
4059
|
"react/hook-use-state": "error",
|
|
4044
4060
|
"react/jsx-curly-brace-presence": [
|
|
@@ -4060,7 +4076,6 @@ var reactBase_default = reactBase;
|
|
|
4060
4076
|
|
|
4061
4077
|
// src/configs/personal/reactBase.ts
|
|
4062
4078
|
var import_eslint_plugin_react2 = __toESM(require("eslint-plugin-react"), 1);
|
|
4063
|
-
var import_eslint_plugin_react_hooks2 = __toESM(require("eslint-plugin-react-hooks"), 1);
|
|
4064
4079
|
var import_eslint_plugin_react_refresh2 = __toESM(require("eslint-plugin-react-refresh"), 1);
|
|
4065
4080
|
var personalReactBaseConfig = [
|
|
4066
4081
|
{
|
|
@@ -4068,7 +4083,7 @@ var personalReactBaseConfig = [
|
|
|
4068
4083
|
name: "@alextheman/personal/react",
|
|
4069
4084
|
plugins: {
|
|
4070
4085
|
react: import_eslint_plugin_react2.default,
|
|
4071
|
-
"react-hooks":
|
|
4086
|
+
"react-hooks": reactHooks_default,
|
|
4072
4087
|
"react-refresh": import_eslint_plugin_react_refresh2.default
|
|
4073
4088
|
},
|
|
4074
4089
|
rules: {
|
|
@@ -4110,12 +4125,12 @@ function createCombinedJavaScriptReactBaseConfig(plugin) {
|
|
|
4110
4125
|
var javaScriptReactBase_default = createCombinedJavaScriptReactBaseConfig;
|
|
4111
4126
|
|
|
4112
4127
|
// src/configs/general/typeScriptBase.ts
|
|
4113
|
-
var
|
|
4128
|
+
var import_typescript_eslint2 = __toESM(require("typescript-eslint"), 1);
|
|
4114
4129
|
|
|
4115
|
-
// src/configs/
|
|
4116
|
-
var
|
|
4130
|
+
// src/configs/helpers/typeScriptLanguageOptions.ts
|
|
4131
|
+
var import_typescript_eslint = __toESM(require("typescript-eslint"), 1);
|
|
4117
4132
|
var typeScriptLanguageOptions = {
|
|
4118
|
-
parser:
|
|
4133
|
+
parser: import_typescript_eslint.default.parser,
|
|
4119
4134
|
parserOptions: {
|
|
4120
4135
|
ecmaVersion: "latest",
|
|
4121
4136
|
projectService: true,
|
|
@@ -4127,7 +4142,7 @@ var typeScriptLanguageOptions_default = typeScriptLanguageOptions;
|
|
|
4127
4142
|
|
|
4128
4143
|
// src/configs/general/typeScriptBase.ts
|
|
4129
4144
|
var typeScriptBase = [
|
|
4130
|
-
...
|
|
4145
|
+
...import_typescript_eslint2.default.configs.recommended,
|
|
4131
4146
|
...javaScriptBase_default,
|
|
4132
4147
|
{
|
|
4133
4148
|
files: ["**/*.ts", "**/*.tsx"],
|
|
@@ -4156,7 +4171,7 @@ var typeScriptBase_default = typeScriptBase;
|
|
|
4156
4171
|
// src/configs/personal/eslintPlugin.ts
|
|
4157
4172
|
var import_eslint_plugin_perfectionist2 = __toESM(require("eslint-plugin-perfectionist"), 1);
|
|
4158
4173
|
|
|
4159
|
-
// src/configs/
|
|
4174
|
+
// src/configs/helpers/sortObjects.ts
|
|
4160
4175
|
var sortObjects = {
|
|
4161
4176
|
customGroups: [],
|
|
4162
4177
|
destructuredObjects: true,
|
|
@@ -4195,20 +4210,25 @@ function createPersonalEslintPluginConfig(plugin) {
|
|
|
4195
4210
|
"no-restricted-imports": [
|
|
4196
4211
|
"error",
|
|
4197
4212
|
{
|
|
4198
|
-
paths: [
|
|
4199
|
-
|
|
4213
|
+
paths: [
|
|
4214
|
+
...["src/alexPlugin", "src/index", "src"].map((name2) => {
|
|
4215
|
+
return {
|
|
4216
|
+
importNames: ["default"],
|
|
4217
|
+
message: "Do not import the plugin directly from the config files. Please create a function that takes in the plugin and returns the config instead.",
|
|
4218
|
+
name: name2
|
|
4219
|
+
};
|
|
4220
|
+
}),
|
|
4221
|
+
{
|
|
4200
4222
|
importNames: ["default"],
|
|
4201
|
-
message:
|
|
4202
|
-
name:
|
|
4203
|
-
}
|
|
4204
|
-
|
|
4223
|
+
message: 'Please import from "src/configs/helpers/reactHooks" instead.',
|
|
4224
|
+
name: "eslint-plugin-react-hooks"
|
|
4225
|
+
}
|
|
4226
|
+
]
|
|
4205
4227
|
}
|
|
4206
4228
|
]
|
|
4207
4229
|
}
|
|
4208
4230
|
},
|
|
4209
4231
|
{
|
|
4210
|
-
// Since the object exported in the rules index serves the same function as the exports in other projects, it's best to sort them in alphabetical order
|
|
4211
|
-
// as well to make it easier to compare against the file directory.
|
|
4212
4232
|
files: ["src/rules/index.ts", "src/configs/**"],
|
|
4213
4233
|
rules: {
|
|
4214
4234
|
"perfectionist/sort-objects": ["error", sortObjects_default]
|
|
@@ -4314,7 +4334,7 @@ var neurosongsFrontEndConfig = [
|
|
|
4314
4334
|
var neurosongsFrontEnd_default = neurosongsFrontEndConfig;
|
|
4315
4335
|
|
|
4316
4336
|
// src/configs/personal/typeScriptBase.ts
|
|
4317
|
-
var
|
|
4337
|
+
var import_typescript_eslint3 = __toESM(require("typescript-eslint"), 1);
|
|
4318
4338
|
function createPersonalTypeScriptBaseConfig(plugin) {
|
|
4319
4339
|
return [
|
|
4320
4340
|
{
|
|
@@ -4323,7 +4343,7 @@ function createPersonalTypeScriptBaseConfig(plugin) {
|
|
|
4323
4343
|
name: "@alextheman/personal/typescript",
|
|
4324
4344
|
plugins: {
|
|
4325
4345
|
"@alextheman": plugin,
|
|
4326
|
-
"@typescript-eslint":
|
|
4346
|
+
"@typescript-eslint": import_typescript_eslint3.default.plugin
|
|
4327
4347
|
},
|
|
4328
4348
|
rules: {
|
|
4329
4349
|
"@alextheman/standardise-error-messages": "error",
|
|
@@ -4341,12 +4361,12 @@ function createPersonalTypeScriptBaseConfig(plugin) {
|
|
|
4341
4361
|
var typeScriptBase_default2 = createPersonalTypeScriptBaseConfig;
|
|
4342
4362
|
|
|
4343
4363
|
// src/configs/personal/utility.ts
|
|
4344
|
-
var
|
|
4364
|
+
var import_typescript_eslint4 = __toESM(require("typescript-eslint"), 1);
|
|
4345
4365
|
var utilityConfig = [
|
|
4346
4366
|
{
|
|
4347
4367
|
name: "@alextheman/personal/utility",
|
|
4348
4368
|
plugins: {
|
|
4349
|
-
"@typescript-eslint":
|
|
4369
|
+
"@typescript-eslint": import_typescript_eslint4.default.plugin
|
|
4350
4370
|
},
|
|
4351
4371
|
rules: {
|
|
4352
4372
|
"@typescript-eslint/explicit-module-boundary-types": "error"
|
|
@@ -4393,9 +4413,9 @@ var alexCLineConfig = [
|
|
|
4393
4413
|
var alexCLine_default = alexCLineConfig;
|
|
4394
4414
|
|
|
4395
4415
|
// src/utility/camelToKebab.ts
|
|
4396
|
-
var
|
|
4416
|
+
var import_utility3 = require("@alextheman/utility");
|
|
4397
4417
|
function camelToKebab(string) {
|
|
4398
|
-
return (0,
|
|
4418
|
+
return (0, import_utility3.camelToKebab)(
|
|
4399
4419
|
string.replace(/[Tt]ypeScript/, "typescript").replace(/[Jj]avaScript/, "javascript")
|
|
4400
4420
|
);
|
|
4401
4421
|
}
|
|
@@ -4474,10 +4494,10 @@ var createRule = import_utils.ESLintUtils.RuleCreator((ruleName) => {
|
|
|
4474
4494
|
var createRule_default = createRule;
|
|
4475
4495
|
|
|
4476
4496
|
// src/utility/createRuleSchema.ts
|
|
4477
|
-
var
|
|
4497
|
+
var import_utility4 = require("@alextheman/utility");
|
|
4478
4498
|
var import_zod = __toESM(require("zod"), 1);
|
|
4479
4499
|
function createRuleSchema(schema6) {
|
|
4480
|
-
return [(0,
|
|
4500
|
+
return [(0, import_utility4.omitProperties)(import_zod.default.toJSONSchema(schema6), "$schema")];
|
|
4481
4501
|
}
|
|
4482
4502
|
var createRuleSchema_default = createRuleSchema;
|
|
4483
4503
|
|
|
@@ -4935,7 +4955,7 @@ var import_zod6 = __toESM(require("zod"), 1);
|
|
|
4935
4955
|
var useNormalizedImportsOptionsSchema = import_zod6.default.object({
|
|
4936
4956
|
fixable: import_zod6.default.boolean()
|
|
4937
4957
|
}).partial();
|
|
4938
|
-
function
|
|
4958
|
+
function parseUseNormalizedImportsOptions(data) {
|
|
4939
4959
|
return useNormalizedImportsOptionsSchema.parse(data);
|
|
4940
4960
|
}
|
|
4941
4961
|
var schema5 = createRuleSchema_default(useNormalizedImportsOptionsSchema);
|
|
@@ -4955,7 +4975,7 @@ var useNormalizedImports = createRule_default({
|
|
|
4955
4975
|
defaultOptions: [{ fixable: true }],
|
|
4956
4976
|
create(context) {
|
|
4957
4977
|
var _a;
|
|
4958
|
-
const { fixable: isFixable } =
|
|
4978
|
+
const { fixable: isFixable } = parseUseNormalizedImportsOptions(
|
|
4959
4979
|
(_a = context.options[0]) != null ? _a : { fixable: true }
|
|
4960
4980
|
);
|
|
4961
4981
|
return {
|
|
@@ -5049,7 +5069,12 @@ var alexPlugin_default = alexPlugin;
|
|
|
5049
5069
|
var index_default = alexPlugin_default;
|
|
5050
5070
|
// Annotate the CommonJS export names for ESM import in node:
|
|
5051
5071
|
0 && (module.exports = {
|
|
5072
|
+
parseConsistentTestFunctionOptions,
|
|
5073
|
+
parseNoNamespaceImportsOptions,
|
|
5074
|
+
parseNoRelativeImportsOptions,
|
|
5075
|
+
parseStandardiseErrorMessagesOptions,
|
|
5052
5076
|
parseTestFunction,
|
|
5077
|
+
parseUseNormalizedImportsOptions,
|
|
5053
5078
|
prettierRules,
|
|
5054
5079
|
sortObjects
|
|
5055
5080
|
});
|
package/dist/index.d.cts
CHANGED
|
@@ -4,7 +4,7 @@ import { Config } from 'prettier';
|
|
|
4
4
|
import z from 'zod';
|
|
5
5
|
|
|
6
6
|
var name = "@alextheman/eslint-plugin";
|
|
7
|
-
var version = "
|
|
7
|
+
var version = "3.0.0";
|
|
8
8
|
|
|
9
9
|
type CamelToKebab<S extends string> = S extends `${IgnoreCase<"J">}avaScript${infer Rest}` ? Rest extends "" ? "javascript" : `javascript${CamelToKebab<Rest>}` : S extends `${IgnoreCase<"T">}ypeScript${infer Rest}` ? Rest extends "" ? "typescript" : `typescript${CamelToKebab<Rest>}` : S extends `${infer Head}${infer Tail}` ? Head extends Lowercase<Head> ? `${Head}${CamelToKebab<Tail>}` : `-${Lowercase<Head>}${CamelToKebab<Tail>}` : S;
|
|
10
10
|
|
|
@@ -71,25 +71,32 @@ declare const consistentTestFunctionOptionsSchema: z.ZodObject<{
|
|
|
71
71
|
}>>;
|
|
72
72
|
}, z.core.$strip>;
|
|
73
73
|
type ConsistentTestFunctionOptions = z.infer<typeof consistentTestFunctionOptionsSchema>;
|
|
74
|
+
declare function parseConsistentTestFunctionOptions(data: unknown): ConsistentTestFunctionOptions;
|
|
74
75
|
|
|
75
76
|
declare const noNamespaceImportsOptionsSchema: z.ZodObject<{
|
|
76
77
|
allow: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
77
78
|
}, z.core.$strip>;
|
|
78
79
|
type NoNamespaceImportsOptions = z.infer<typeof noNamespaceImportsOptionsSchema>;
|
|
80
|
+
declare function parseNoNamespaceImportsOptions(data: unknown): NoNamespaceImportsOptions;
|
|
79
81
|
|
|
80
82
|
declare const noRelativeImportsOptionsSchema: z.ZodObject<{
|
|
81
83
|
depth: z.ZodOptional<z.ZodInt>;
|
|
82
84
|
}, z.core.$strip>;
|
|
83
85
|
type NoRelativeImportsOptions = z.infer<typeof noRelativeImportsOptionsSchema>;
|
|
86
|
+
declare function parseNoRelativeImportsOptions(data: unknown): NoRelativeImportsOptions;
|
|
84
87
|
|
|
85
88
|
declare const standardiseErrorMessagesOptionsSchema: z.ZodObject<{
|
|
86
89
|
regex: z.ZodOptional<z.ZodString>;
|
|
87
90
|
}, z.core.$strip>;
|
|
88
91
|
type StandardiseErrorMessagesOptions = z.infer<typeof standardiseErrorMessagesOptionsSchema>;
|
|
92
|
+
declare function parseStandardiseErrorMessagesOptions(data: unknown): StandardiseErrorMessagesOptions;
|
|
89
93
|
|
|
90
94
|
declare const useNormalizedImportsOptionsSchema: z.ZodObject<{
|
|
91
95
|
fixable: z.ZodOptional<z.ZodBoolean>;
|
|
92
96
|
}, z.core.$strip>;
|
|
93
97
|
type UseNormalizedImportsOptions = z.infer<typeof useNormalizedImportsOptionsSchema>;
|
|
98
|
+
declare function parseUseNormalizedImportsOptions(data: unknown): {
|
|
99
|
+
fixable?: boolean | undefined;
|
|
100
|
+
};
|
|
94
101
|
|
|
95
|
-
export { type AlexPlugin, type AlexPluginConfigGroup, type CombinedConfig, type ConfigGroupName, type ConfigKey, type ConsistentTestFunctionOptions, type GeneralConfig, type NoNamespaceImportsOptions, type NoRelativeImportsOptions, type PersonalConfig, type PluginConfig, type StandardiseErrorMessagesOptions, type TestFunction, type UseNormalizedImportsOptions, alexPlugin as default, parseTestFunction, prettierRules, sortObjects };
|
|
102
|
+
export { type AlexPlugin, type AlexPluginConfigGroup, type CombinedConfig, type ConfigGroupName, type ConfigKey, type ConsistentTestFunctionOptions, type GeneralConfig, type NoNamespaceImportsOptions, type NoRelativeImportsOptions, type PersonalConfig, type PluginConfig, type StandardiseErrorMessagesOptions, type TestFunction, type UseNormalizedImportsOptions, alexPlugin as default, parseConsistentTestFunctionOptions, parseNoNamespaceImportsOptions, parseNoRelativeImportsOptions, parseStandardiseErrorMessagesOptions, parseTestFunction, parseUseNormalizedImportsOptions, prettierRules, sortObjects };
|
package/dist/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { Config } from 'prettier';
|
|
|
4
4
|
import z from 'zod';
|
|
5
5
|
|
|
6
6
|
var name = "@alextheman/eslint-plugin";
|
|
7
|
-
var version = "
|
|
7
|
+
var version = "3.0.0";
|
|
8
8
|
|
|
9
9
|
type CamelToKebab<S extends string> = S extends `${IgnoreCase<"J">}avaScript${infer Rest}` ? Rest extends "" ? "javascript" : `javascript${CamelToKebab<Rest>}` : S extends `${IgnoreCase<"T">}ypeScript${infer Rest}` ? Rest extends "" ? "typescript" : `typescript${CamelToKebab<Rest>}` : S extends `${infer Head}${infer Tail}` ? Head extends Lowercase<Head> ? `${Head}${CamelToKebab<Tail>}` : `-${Lowercase<Head>}${CamelToKebab<Tail>}` : S;
|
|
10
10
|
|
|
@@ -71,25 +71,32 @@ declare const consistentTestFunctionOptionsSchema: z.ZodObject<{
|
|
|
71
71
|
}>>;
|
|
72
72
|
}, z.core.$strip>;
|
|
73
73
|
type ConsistentTestFunctionOptions = z.infer<typeof consistentTestFunctionOptionsSchema>;
|
|
74
|
+
declare function parseConsistentTestFunctionOptions(data: unknown): ConsistentTestFunctionOptions;
|
|
74
75
|
|
|
75
76
|
declare const noNamespaceImportsOptionsSchema: z.ZodObject<{
|
|
76
77
|
allow: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
77
78
|
}, z.core.$strip>;
|
|
78
79
|
type NoNamespaceImportsOptions = z.infer<typeof noNamespaceImportsOptionsSchema>;
|
|
80
|
+
declare function parseNoNamespaceImportsOptions(data: unknown): NoNamespaceImportsOptions;
|
|
79
81
|
|
|
80
82
|
declare const noRelativeImportsOptionsSchema: z.ZodObject<{
|
|
81
83
|
depth: z.ZodOptional<z.ZodInt>;
|
|
82
84
|
}, z.core.$strip>;
|
|
83
85
|
type NoRelativeImportsOptions = z.infer<typeof noRelativeImportsOptionsSchema>;
|
|
86
|
+
declare function parseNoRelativeImportsOptions(data: unknown): NoRelativeImportsOptions;
|
|
84
87
|
|
|
85
88
|
declare const standardiseErrorMessagesOptionsSchema: z.ZodObject<{
|
|
86
89
|
regex: z.ZodOptional<z.ZodString>;
|
|
87
90
|
}, z.core.$strip>;
|
|
88
91
|
type StandardiseErrorMessagesOptions = z.infer<typeof standardiseErrorMessagesOptionsSchema>;
|
|
92
|
+
declare function parseStandardiseErrorMessagesOptions(data: unknown): StandardiseErrorMessagesOptions;
|
|
89
93
|
|
|
90
94
|
declare const useNormalizedImportsOptionsSchema: z.ZodObject<{
|
|
91
95
|
fixable: z.ZodOptional<z.ZodBoolean>;
|
|
92
96
|
}, z.core.$strip>;
|
|
93
97
|
type UseNormalizedImportsOptions = z.infer<typeof useNormalizedImportsOptionsSchema>;
|
|
98
|
+
declare function parseUseNormalizedImportsOptions(data: unknown): {
|
|
99
|
+
fixable?: boolean | undefined;
|
|
100
|
+
};
|
|
94
101
|
|
|
95
|
-
export { type AlexPlugin, type AlexPluginConfigGroup, type CombinedConfig, type ConfigGroupName, type ConfigKey, type ConsistentTestFunctionOptions, type GeneralConfig, type NoNamespaceImportsOptions, type NoRelativeImportsOptions, type PersonalConfig, type PluginConfig, type StandardiseErrorMessagesOptions, type TestFunction, type UseNormalizedImportsOptions, alexPlugin as default, parseTestFunction, prettierRules, sortObjects };
|
|
102
|
+
export { type AlexPlugin, type AlexPluginConfigGroup, type CombinedConfig, type ConfigGroupName, type ConfigKey, type ConsistentTestFunctionOptions, type GeneralConfig, type NoNamespaceImportsOptions, type NoRelativeImportsOptions, type PersonalConfig, type PluginConfig, type StandardiseErrorMessagesOptions, type TestFunction, type UseNormalizedImportsOptions, alexPlugin as default, parseConsistentTestFunctionOptions, parseNoNamespaceImportsOptions, parseNoRelativeImportsOptions, parseStandardiseErrorMessagesOptions, parseTestFunction, parseUseNormalizedImportsOptions, prettierRules, sortObjects };
|
package/dist/index.js
CHANGED
|
@@ -3405,7 +3405,7 @@ var require_package = __commonJS({
|
|
|
3405
3405
|
"node_modules/@eslint/js/package.json"(exports, module) {
|
|
3406
3406
|
module.exports = {
|
|
3407
3407
|
name: "@eslint/js",
|
|
3408
|
-
version: "9.
|
|
3408
|
+
version: "9.39.1",
|
|
3409
3409
|
description: "ESLint JavaScript language implementation",
|
|
3410
3410
|
funding: "https://eslint.org/donate",
|
|
3411
3411
|
main: "./src/index.js",
|
|
@@ -3447,7 +3447,7 @@ var require_eslint_all = __commonJS({
|
|
|
3447
3447
|
"node_modules/@eslint/js/src/configs/eslint-all.js"(exports, module) {
|
|
3448
3448
|
"use strict";
|
|
3449
3449
|
module.exports = Object.freeze({
|
|
3450
|
-
|
|
3450
|
+
rules: Object.freeze({
|
|
3451
3451
|
"accessor-pairs": "error",
|
|
3452
3452
|
"array-callback-return": "error",
|
|
3453
3453
|
"arrow-body-style": "error",
|
|
@@ -3631,6 +3631,7 @@ var require_eslint_all = __commonJS({
|
|
|
3631
3631
|
"prefer-rest-params": "error",
|
|
3632
3632
|
"prefer-spread": "error",
|
|
3633
3633
|
"prefer-template": "error",
|
|
3634
|
+
"preserve-caught-error": "error",
|
|
3634
3635
|
"radix": "error",
|
|
3635
3636
|
"require-atomic-updates": "error",
|
|
3636
3637
|
"require-await": "error",
|
|
@@ -3646,7 +3647,7 @@ var require_eslint_all = __commonJS({
|
|
|
3646
3647
|
"valid-typeof": "error",
|
|
3647
3648
|
"vars-on-top": "error",
|
|
3648
3649
|
"yoda": "error"
|
|
3649
|
-
}
|
|
3650
|
+
})
|
|
3650
3651
|
});
|
|
3651
3652
|
}
|
|
3652
3653
|
});
|
|
@@ -3743,7 +3744,7 @@ var require_src = __commonJS({
|
|
|
3743
3744
|
|
|
3744
3745
|
// package.json
|
|
3745
3746
|
var name = "@alextheman/eslint-plugin";
|
|
3746
|
-
var version = "
|
|
3747
|
+
var version = "3.0.0";
|
|
3747
3748
|
|
|
3748
3749
|
// src/configs/index.ts
|
|
3749
3750
|
import packageJson from "eslint-plugin-package-json";
|
|
@@ -3844,14 +3845,14 @@ var import_js = __toESM(require_src(), 1);
|
|
|
3844
3845
|
import prettierConfig from "eslint-config-prettier";
|
|
3845
3846
|
import importPlugin from "eslint-plugin-import";
|
|
3846
3847
|
|
|
3847
|
-
// src/configs/
|
|
3848
|
+
// src/configs/helpers/javaScriptLanguageOptions.ts
|
|
3848
3849
|
var import_globals2 = __toESM(require_globals2(), 1);
|
|
3849
3850
|
var javaScriptLanguageOptions = {
|
|
3850
3851
|
globals: __spreadValues(__spreadValues(__spreadValues({}, import_globals2.default.node), import_globals2.default.browser), import_globals2.default.vitest)
|
|
3851
3852
|
};
|
|
3852
3853
|
var javaScriptLanguageOptions_default = javaScriptLanguageOptions;
|
|
3853
3854
|
|
|
3854
|
-
// src/configs/
|
|
3855
|
+
// src/configs/helpers/unusedVarsIgnorePatterns.ts
|
|
3855
3856
|
var unusedVarsIgnorePatterns = {
|
|
3856
3857
|
argsIgnorePattern: "^_",
|
|
3857
3858
|
caughtErrorsIgnorePattern: "^_",
|
|
@@ -3910,7 +3911,7 @@ var javaScriptBase_default = javaScriptBase;
|
|
|
3910
3911
|
import perfectionist from "eslint-plugin-perfectionist";
|
|
3911
3912
|
import prettierPlugin from "eslint-plugin-prettier";
|
|
3912
3913
|
|
|
3913
|
-
// src/configs/
|
|
3914
|
+
// src/configs/helpers/prettierRules.ts
|
|
3914
3915
|
var prettierRules = {
|
|
3915
3916
|
printWidth: 100
|
|
3916
3917
|
};
|
|
@@ -3993,10 +3994,20 @@ var javaScriptBase_default3 = createCombinedJavaScriptBaseConfig;
|
|
|
3993
3994
|
// src/configs/general/reactBase.ts
|
|
3994
3995
|
import jsxA11y from "eslint-plugin-jsx-a11y";
|
|
3995
3996
|
import reactPlugin from "eslint-plugin-react";
|
|
3996
|
-
import reactHooks from "eslint-plugin-react-hooks";
|
|
3997
3997
|
import reactRefresh from "eslint-plugin-react-refresh";
|
|
3998
3998
|
|
|
3999
|
-
// src/configs/
|
|
3999
|
+
// src/configs/helpers/reactHooks.ts
|
|
4000
|
+
import { omitProperties } from "@alextheman/utility";
|
|
4001
|
+
import reactHooksPlugin from "eslint-plugin-react-hooks";
|
|
4002
|
+
var reactHooks = __spreadProps(__spreadValues({}, reactHooksPlugin), {
|
|
4003
|
+
configs: __spreadProps(__spreadValues({}, omitProperties(reactHooksPlugin.configs, "flat")), {
|
|
4004
|
+
"flat/recommended": reactHooksPlugin.configs.flat.recommended,
|
|
4005
|
+
"flat/recommended-latest": reactHooksPlugin.configs.flat["recommended-latest"]
|
|
4006
|
+
})
|
|
4007
|
+
});
|
|
4008
|
+
var reactHooks_default = reactHooks;
|
|
4009
|
+
|
|
4010
|
+
// src/configs/helpers/reactLanguageOptions.ts
|
|
4000
4011
|
var import_globals3 = __toESM(require_globals2(), 1);
|
|
4001
4012
|
var reactLanguageOptions = {
|
|
4002
4013
|
ecmaVersion: 2020,
|
|
@@ -4019,10 +4030,10 @@ var reactBase = [
|
|
|
4019
4030
|
name: "@alextheman/general/react",
|
|
4020
4031
|
plugins: {
|
|
4021
4032
|
react: reactPlugin,
|
|
4022
|
-
"react-hooks":
|
|
4033
|
+
"react-hooks": reactHooks_default,
|
|
4023
4034
|
"react-refresh": reactRefresh
|
|
4024
4035
|
},
|
|
4025
|
-
rules: __spreadProps(__spreadValues({},
|
|
4036
|
+
rules: __spreadProps(__spreadValues({}, reactHooks_default.configs["flat/recommended"].rules), {
|
|
4026
4037
|
"react/destructuring-assignment": ["error", "always", { destructureInSignature: "always" }],
|
|
4027
4038
|
"react/hook-use-state": "error",
|
|
4028
4039
|
"react/jsx-curly-brace-presence": [
|
|
@@ -4044,7 +4055,6 @@ var reactBase_default = reactBase;
|
|
|
4044
4055
|
|
|
4045
4056
|
// src/configs/personal/reactBase.ts
|
|
4046
4057
|
import reactPlugin2 from "eslint-plugin-react";
|
|
4047
|
-
import reactHooks2 from "eslint-plugin-react-hooks";
|
|
4048
4058
|
import reactRefresh2 from "eslint-plugin-react-refresh";
|
|
4049
4059
|
var personalReactBaseConfig = [
|
|
4050
4060
|
{
|
|
@@ -4052,7 +4062,7 @@ var personalReactBaseConfig = [
|
|
|
4052
4062
|
name: "@alextheman/personal/react",
|
|
4053
4063
|
plugins: {
|
|
4054
4064
|
react: reactPlugin2,
|
|
4055
|
-
"react-hooks":
|
|
4065
|
+
"react-hooks": reactHooks_default,
|
|
4056
4066
|
"react-refresh": reactRefresh2
|
|
4057
4067
|
},
|
|
4058
4068
|
rules: {
|
|
@@ -4094,12 +4104,12 @@ function createCombinedJavaScriptReactBaseConfig(plugin) {
|
|
|
4094
4104
|
var javaScriptReactBase_default = createCombinedJavaScriptReactBaseConfig;
|
|
4095
4105
|
|
|
4096
4106
|
// src/configs/general/typeScriptBase.ts
|
|
4097
|
-
import
|
|
4107
|
+
import tseslint2 from "typescript-eslint";
|
|
4098
4108
|
|
|
4099
|
-
// src/configs/
|
|
4100
|
-
import
|
|
4109
|
+
// src/configs/helpers/typeScriptLanguageOptions.ts
|
|
4110
|
+
import tseslint from "typescript-eslint";
|
|
4101
4111
|
var typeScriptLanguageOptions = {
|
|
4102
|
-
parser:
|
|
4112
|
+
parser: tseslint.parser,
|
|
4103
4113
|
parserOptions: {
|
|
4104
4114
|
ecmaVersion: "latest",
|
|
4105
4115
|
projectService: true,
|
|
@@ -4111,7 +4121,7 @@ var typeScriptLanguageOptions_default = typeScriptLanguageOptions;
|
|
|
4111
4121
|
|
|
4112
4122
|
// src/configs/general/typeScriptBase.ts
|
|
4113
4123
|
var typeScriptBase = [
|
|
4114
|
-
...
|
|
4124
|
+
...tseslint2.configs.recommended,
|
|
4115
4125
|
...javaScriptBase_default,
|
|
4116
4126
|
{
|
|
4117
4127
|
files: ["**/*.ts", "**/*.tsx"],
|
|
@@ -4140,7 +4150,7 @@ var typeScriptBase_default = typeScriptBase;
|
|
|
4140
4150
|
// src/configs/personal/eslintPlugin.ts
|
|
4141
4151
|
import perfectionist2 from "eslint-plugin-perfectionist";
|
|
4142
4152
|
|
|
4143
|
-
// src/configs/
|
|
4153
|
+
// src/configs/helpers/sortObjects.ts
|
|
4144
4154
|
var sortObjects = {
|
|
4145
4155
|
customGroups: [],
|
|
4146
4156
|
destructuredObjects: true,
|
|
@@ -4179,20 +4189,25 @@ function createPersonalEslintPluginConfig(plugin) {
|
|
|
4179
4189
|
"no-restricted-imports": [
|
|
4180
4190
|
"error",
|
|
4181
4191
|
{
|
|
4182
|
-
paths: [
|
|
4183
|
-
|
|
4192
|
+
paths: [
|
|
4193
|
+
...["src/alexPlugin", "src/index", "src"].map((name2) => {
|
|
4194
|
+
return {
|
|
4195
|
+
importNames: ["default"],
|
|
4196
|
+
message: "Do not import the plugin directly from the config files. Please create a function that takes in the plugin and returns the config instead.",
|
|
4197
|
+
name: name2
|
|
4198
|
+
};
|
|
4199
|
+
}),
|
|
4200
|
+
{
|
|
4184
4201
|
importNames: ["default"],
|
|
4185
|
-
message:
|
|
4186
|
-
name:
|
|
4187
|
-
}
|
|
4188
|
-
|
|
4202
|
+
message: 'Please import from "src/configs/helpers/reactHooks" instead.',
|
|
4203
|
+
name: "eslint-plugin-react-hooks"
|
|
4204
|
+
}
|
|
4205
|
+
]
|
|
4189
4206
|
}
|
|
4190
4207
|
]
|
|
4191
4208
|
}
|
|
4192
4209
|
},
|
|
4193
4210
|
{
|
|
4194
|
-
// Since the object exported in the rules index serves the same function as the exports in other projects, it's best to sort them in alphabetical order
|
|
4195
|
-
// as well to make it easier to compare against the file directory.
|
|
4196
4211
|
files: ["src/rules/index.ts", "src/configs/**"],
|
|
4197
4212
|
rules: {
|
|
4198
4213
|
"perfectionist/sort-objects": ["error", sortObjects_default]
|
|
@@ -4298,7 +4313,7 @@ var neurosongsFrontEndConfig = [
|
|
|
4298
4313
|
var neurosongsFrontEnd_default = neurosongsFrontEndConfig;
|
|
4299
4314
|
|
|
4300
4315
|
// src/configs/personal/typeScriptBase.ts
|
|
4301
|
-
import
|
|
4316
|
+
import tseslint3 from "typescript-eslint";
|
|
4302
4317
|
function createPersonalTypeScriptBaseConfig(plugin) {
|
|
4303
4318
|
return [
|
|
4304
4319
|
{
|
|
@@ -4307,7 +4322,7 @@ function createPersonalTypeScriptBaseConfig(plugin) {
|
|
|
4307
4322
|
name: "@alextheman/personal/typescript",
|
|
4308
4323
|
plugins: {
|
|
4309
4324
|
"@alextheman": plugin,
|
|
4310
|
-
"@typescript-eslint":
|
|
4325
|
+
"@typescript-eslint": tseslint3.plugin
|
|
4311
4326
|
},
|
|
4312
4327
|
rules: {
|
|
4313
4328
|
"@alextheman/standardise-error-messages": "error",
|
|
@@ -4325,12 +4340,12 @@ function createPersonalTypeScriptBaseConfig(plugin) {
|
|
|
4325
4340
|
var typeScriptBase_default2 = createPersonalTypeScriptBaseConfig;
|
|
4326
4341
|
|
|
4327
4342
|
// src/configs/personal/utility.ts
|
|
4328
|
-
import
|
|
4343
|
+
import tseslint4 from "typescript-eslint";
|
|
4329
4344
|
var utilityConfig = [
|
|
4330
4345
|
{
|
|
4331
4346
|
name: "@alextheman/personal/utility",
|
|
4332
4347
|
plugins: {
|
|
4333
|
-
"@typescript-eslint":
|
|
4348
|
+
"@typescript-eslint": tseslint4.plugin
|
|
4334
4349
|
},
|
|
4335
4350
|
rules: {
|
|
4336
4351
|
"@typescript-eslint/explicit-module-boundary-types": "error"
|
|
@@ -4458,10 +4473,10 @@ var createRule = ESLintUtils.RuleCreator((ruleName) => {
|
|
|
4458
4473
|
var createRule_default = createRule;
|
|
4459
4474
|
|
|
4460
4475
|
// src/utility/createRuleSchema.ts
|
|
4461
|
-
import { omitProperties } from "@alextheman/utility";
|
|
4476
|
+
import { omitProperties as omitProperties2 } from "@alextheman/utility";
|
|
4462
4477
|
import z from "zod";
|
|
4463
4478
|
function createRuleSchema(schema6) {
|
|
4464
|
-
return [
|
|
4479
|
+
return [omitProperties2(z.toJSONSchema(schema6), "$schema")];
|
|
4465
4480
|
}
|
|
4466
4481
|
var createRuleSchema_default = createRuleSchema;
|
|
4467
4482
|
|
|
@@ -4919,7 +4934,7 @@ import z6 from "zod";
|
|
|
4919
4934
|
var useNormalizedImportsOptionsSchema = z6.object({
|
|
4920
4935
|
fixable: z6.boolean()
|
|
4921
4936
|
}).partial();
|
|
4922
|
-
function
|
|
4937
|
+
function parseUseNormalizedImportsOptions(data) {
|
|
4923
4938
|
return useNormalizedImportsOptionsSchema.parse(data);
|
|
4924
4939
|
}
|
|
4925
4940
|
var schema5 = createRuleSchema_default(useNormalizedImportsOptionsSchema);
|
|
@@ -4939,7 +4954,7 @@ var useNormalizedImports = createRule_default({
|
|
|
4939
4954
|
defaultOptions: [{ fixable: true }],
|
|
4940
4955
|
create(context) {
|
|
4941
4956
|
var _a;
|
|
4942
|
-
const { fixable: isFixable } =
|
|
4957
|
+
const { fixable: isFixable } = parseUseNormalizedImportsOptions(
|
|
4943
4958
|
(_a = context.options[0]) != null ? _a : { fixable: true }
|
|
4944
4959
|
);
|
|
4945
4960
|
return {
|
|
@@ -5033,7 +5048,12 @@ var alexPlugin_default = alexPlugin;
|
|
|
5033
5048
|
var index_default = alexPlugin_default;
|
|
5034
5049
|
export {
|
|
5035
5050
|
index_default as default,
|
|
5051
|
+
parseConsistentTestFunctionOptions,
|
|
5052
|
+
parseNoNamespaceImportsOptions,
|
|
5053
|
+
parseNoRelativeImportsOptions,
|
|
5054
|
+
parseStandardiseErrorMessagesOptions,
|
|
5036
5055
|
parseTestFunction,
|
|
5056
|
+
parseUseNormalizedImportsOptions,
|
|
5037
5057
|
prettierRules_default as prettierRules,
|
|
5038
5058
|
sortObjects_default as sortObjects
|
|
5039
5059
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alextheman/eslint-plugin",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "A package to provide custom ESLint rules and configs",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -45,34 +45,32 @@
|
|
|
45
45
|
"@types/common-tags": "^1.8.4",
|
|
46
46
|
"@types/eslint": "^9.6.1",
|
|
47
47
|
"@types/eslint-plugin-jsx-a11y": "^6.10.1",
|
|
48
|
-
"@types/node": "^24.10.
|
|
49
|
-
"@typescript-eslint/rule-tester": "^8.46.
|
|
50
|
-
"@typescript-eslint/utils": "^8.46.
|
|
48
|
+
"@types/node": "^24.10.1",
|
|
49
|
+
"@typescript-eslint/rule-tester": "^8.46.4",
|
|
50
|
+
"@typescript-eslint/utils": "^8.46.4",
|
|
51
51
|
"eslint-plugin-eslint-plugin": "^7.2.0",
|
|
52
52
|
"globals": "^16.5.0",
|
|
53
53
|
"husky": "^9.1.7",
|
|
54
54
|
"jiti": "^2.6.1",
|
|
55
55
|
"prettier": "^3.6.2",
|
|
56
|
-
"tsup": "^8.5.
|
|
56
|
+
"tsup": "^8.5.1",
|
|
57
57
|
"tsx": "^4.20.6",
|
|
58
58
|
"typescript": "^5.9.3",
|
|
59
59
|
"vite-tsconfig-paths": "^5.1.4",
|
|
60
|
-
"vitest": "^4.0.
|
|
60
|
+
"vitest": "^4.0.9"
|
|
61
61
|
},
|
|
62
62
|
"peerDependencies": {
|
|
63
|
-
"
|
|
64
|
-
"@typescript-eslint/parser": "^8.37.0",
|
|
65
|
-
"eslint": "^9.31.0",
|
|
63
|
+
"eslint": "^9.39.1",
|
|
66
64
|
"eslint-config-prettier": "^10.1.8",
|
|
67
65
|
"eslint-import-resolver-typescript": "^4.4.4",
|
|
68
66
|
"eslint-plugin-import": "^2.32.0",
|
|
69
67
|
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
70
68
|
"eslint-plugin-package-json": "^0.74.0",
|
|
71
|
-
"eslint-plugin-perfectionist": "^4.15.
|
|
72
|
-
"eslint-plugin-prettier": "^5.5.
|
|
69
|
+
"eslint-plugin-perfectionist": "^4.15.1",
|
|
70
|
+
"eslint-plugin-prettier": "^5.5.4",
|
|
73
71
|
"eslint-plugin-react": "^7.37.5",
|
|
74
|
-
"eslint-plugin-react-hooks": "^
|
|
75
|
-
"eslint-plugin-react-refresh": "^0.4.
|
|
76
|
-
"typescript-eslint": "^8.
|
|
72
|
+
"eslint-plugin-react-hooks": "^7.0.1",
|
|
73
|
+
"eslint-plugin-react-refresh": "^0.4.24",
|
|
74
|
+
"typescript-eslint": "^8.46.4"
|
|
77
75
|
}
|
|
78
76
|
}
|