@santi020k/eslint-config-basic 3.1.0 → 3.3.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/CHANGELOG.md +54 -0
- package/dist/agent-skill-generator.d.ts +7 -18
- package/dist/agent-skill-generator.js +54 -18
- package/dist/agent-skill-generator.js.map +1 -0
- package/dist/cli-advanced.d.ts +7 -0
- package/dist/cli-advanced.js +74 -15
- package/dist/cli-advanced.js.map +1 -0
- package/dist/cli-migration.js +388 -34
- package/dist/cli-migration.js.map +1 -0
- package/dist/cli-package-manager.d.ts +10 -0
- package/dist/cli-package-manager.js +135 -0
- package/dist/cli-package-manager.js.map +1 -0
- package/dist/cli-preset.d.ts +103 -0
- package/dist/cli-preset.js +562 -0
- package/dist/cli-preset.js.map +1 -0
- package/dist/cli-workflows.js +1 -0
- package/dist/cli-workflows.js.map +1 -0
- package/dist/cli.d.ts +14 -2
- package/dist/cli.js +689 -94
- package/dist/cli.js.map +1 -0
- package/dist/define-config-metadata.d.ts +10 -0
- package/dist/define-config-metadata.js +16 -0
- package/dist/define-config-metadata.js.map +1 -0
- package/dist/frameworks.d.ts +1 -0
- package/dist/frameworks.js +6 -2
- package/dist/frameworks.js.map +1 -0
- package/dist/index.d.ts +10 -3
- package/dist/index.js +145 -27
- package/dist/index.js.map +1 -0
- package/dist/integrations.js +4 -1
- package/dist/integrations.js.map +1 -0
- package/dist/optional-package-errors.d.ts +3 -0
- package/dist/optional-package-errors.js +15 -0
- package/dist/optional-package-errors.js.map +1 -0
- package/dist/recommended.js +1 -0
- package/dist/recommended.js.map +1 -0
- package/dist/resolvers.js +1 -0
- package/dist/resolvers.js.map +1 -0
- package/dist/tailwind.d.ts +3 -1
- package/dist/tailwind.js +115 -13
- package/dist/tailwind.js.map +1 -0
- package/package.json +20 -19
package/dist/tailwind.js
CHANGED
|
@@ -1,19 +1,118 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import { dirname, extname, isAbsolute, join, resolve } from "node:path";
|
|
3
|
+
const CSS_ESCAPE_PATTERN = String.raw`\\(?:[\dA-Fa-f]{1,6}\s?|[^\f\n\r])`;
|
|
4
|
+
const CSS_CLASS_PATTERN = new RegExp(
|
|
5
|
+
String.raw`\.((?:${CSS_ESCAPE_PATTERN}|[A-Za-z_])(?:${CSS_ESCAPE_PATTERN}|[\w-])*)`,
|
|
6
|
+
"g"
|
|
7
|
+
);
|
|
8
|
+
const CSS_UTILITY_PATTERN = /@utility\s+([A-Za-z_][\w-]*)\s*\{/g;
|
|
9
|
+
const CSS_IMPORT_PATTERN = /@import\s+(?:url\(\s*)?["']([^"']+)["']/g;
|
|
10
|
+
const CSS_COMMENT_PATTERN = /\/\*[\s\S]*?\*\//g;
|
|
11
|
+
const CSS_STRING_PATTERN = /("(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*')/g;
|
|
12
|
+
const MAX_COMPONENT_PATTERN_LENGTH = 3e3;
|
|
13
|
+
const decodeCssIdentifier = (value) => value.replaceAll(/\\([\dA-Fa-f]{1,6})\s?/g, (_, codePoint) => String.fromCodePoint(Number.parseInt(codePoint, 16))).replaceAll(/\\([^\f\n\r])/g, "$1");
|
|
14
|
+
const resolveLocalCssImport = (filePath, specifier) => {
|
|
15
|
+
if (!specifier.startsWith(".") && !isAbsolute(specifier)) return void 0;
|
|
16
|
+
const cleanSpecifier = specifier.split(/[?#]/, 1)[0];
|
|
17
|
+
if (!cleanSpecifier) return void 0;
|
|
18
|
+
const candidate = isAbsolute(cleanSpecifier) ? cleanSpecifier : resolve(dirname(filePath), cleanSpecifier);
|
|
19
|
+
const candidates = extname(candidate) ? [candidate] : [candidate, `${candidate}.css`, join(candidate, "index.css")];
|
|
20
|
+
return candidates.find((path) => existsSync(path));
|
|
21
|
+
};
|
|
22
|
+
const getImportedCssFiles = (filePath, content) => [...content.matchAll(CSS_IMPORT_PATTERN)].flatMap((match) => {
|
|
23
|
+
const importedFile = match[1] ? resolveLocalCssImport(filePath, match[1]) : void 0;
|
|
24
|
+
return importedFile ? [importedFile] : [];
|
|
25
|
+
});
|
|
26
|
+
const getCssSelectorClasses = (content) => {
|
|
27
|
+
const classes = /* @__PURE__ */ new Set();
|
|
28
|
+
const source = content.replaceAll(CSS_COMMENT_PATTERN, "");
|
|
29
|
+
for (const blockStart of source.matchAll(/\{/g)) {
|
|
30
|
+
const index = blockStart.index;
|
|
31
|
+
const boundary = Math.max(
|
|
32
|
+
source.lastIndexOf(";", index - 1),
|
|
33
|
+
source.lastIndexOf("{", index - 1),
|
|
34
|
+
source.lastIndexOf("}", index - 1)
|
|
35
|
+
);
|
|
36
|
+
const selector = source.slice(boundary + 1, index).trim();
|
|
37
|
+
if (!selector || selector.startsWith("@")) continue;
|
|
38
|
+
for (const match of selector.replaceAll(CSS_STRING_PATTERN, "").matchAll(CSS_CLASS_PATTERN)) {
|
|
39
|
+
if (match[1]) classes.add(decodeCssIdentifier(match[1]));
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return [...classes];
|
|
43
|
+
};
|
|
44
|
+
const getCssUtilityClasses = (content) => [...content.replaceAll(CSS_COMMENT_PATTERN, "").matchAll(CSS_UTILITY_PATTERN)].flatMap((match) => match[1] ? [match[1]] : []);
|
|
45
|
+
const collectCssComponentClasses = (filePath, visited, classes) => {
|
|
46
|
+
if (visited.has(filePath)) return;
|
|
47
|
+
visited.add(filePath);
|
|
48
|
+
let content;
|
|
49
|
+
try {
|
|
50
|
+
content = readFileSync(filePath, "utf8");
|
|
51
|
+
} catch {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
for (const className of getCssSelectorClasses(content)) classes.add(className);
|
|
55
|
+
for (const className of getCssUtilityClasses(content)) classes.add(className);
|
|
56
|
+
for (const importedFile of getImportedCssFiles(filePath, content)) {
|
|
57
|
+
collectCssComponentClasses(importedFile, visited, classes);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
const escapeRegex = (value) => value.replaceAll(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
61
|
+
const createExactClassPatterns = (classes) => {
|
|
62
|
+
const patterns = [];
|
|
63
|
+
let alternatives = [];
|
|
64
|
+
const flush = () => {
|
|
65
|
+
if (alternatives.length === 0) return;
|
|
66
|
+
patterns.push(`^(?:${alternatives.join("|")})$`);
|
|
67
|
+
alternatives = [];
|
|
68
|
+
};
|
|
69
|
+
for (const className of classes.toSorted()) {
|
|
70
|
+
const escapedClass = escapeRegex(className);
|
|
71
|
+
const nextLength = alternatives.join("|").length + escapedClass.length + 6;
|
|
72
|
+
if (nextLength > MAX_COMPONENT_PATTERN_LENGTH) flush();
|
|
73
|
+
alternatives.push(escapedClass);
|
|
74
|
+
}
|
|
75
|
+
flush();
|
|
76
|
+
return patterns;
|
|
77
|
+
};
|
|
78
|
+
const findCssComponentClasses = (cwd, entryPoint) => {
|
|
79
|
+
const entryPath = isAbsolute(entryPoint) ? entryPoint : join(cwd, entryPoint);
|
|
80
|
+
const classes = /* @__PURE__ */ new Set();
|
|
81
|
+
collectCssComponentClasses(entryPath, /* @__PURE__ */ new Set(), classes);
|
|
82
|
+
return [...classes].toSorted();
|
|
83
|
+
};
|
|
84
|
+
const findCssComponentClassPatterns = (cwd, entryPoint) => createExactClassPatterns(findCssComponentClasses(cwd, entryPoint));
|
|
85
|
+
const getIgnoredClasses = (tailwindOptions) => {
|
|
86
|
+
const configuredClasses = tailwindOptions.ignore ?? [];
|
|
87
|
+
if (!tailwindOptions.entryPoint || tailwindOptions.detectComponentClasses === false) {
|
|
88
|
+
return configuredClasses;
|
|
89
|
+
}
|
|
90
|
+
const detectedClasses = findCssComponentClassPatterns(
|
|
91
|
+
tailwindOptions.cwd ?? process.cwd(),
|
|
92
|
+
tailwindOptions.entryPoint
|
|
93
|
+
);
|
|
94
|
+
return [.../* @__PURE__ */ new Set([...configuredClasses, ...detectedClasses])];
|
|
95
|
+
};
|
|
96
|
+
const getUnknownClassRule = (tailwindOptions, ignoredClasses) => {
|
|
97
|
+
const options = {
|
|
98
|
+
...tailwindOptions.entryPoint ? { entryPoint: tailwindOptions.entryPoint } : {},
|
|
99
|
+
...ignoredClasses.length ? { ignore: ignoredClasses } : {}
|
|
100
|
+
};
|
|
101
|
+
const hasOptions = Object.keys(options).length > 0;
|
|
102
|
+
const severity = tailwindOptions.noUnknownClasses ?? "error";
|
|
103
|
+
if (!hasOptions && tailwindOptions.noUnknownClasses === void 0) return void 0;
|
|
104
|
+
if (severity === false) return "off";
|
|
105
|
+
return hasOptions ? [severity, options] : severity;
|
|
106
|
+
};
|
|
1
107
|
const buildTailwindSettingsConfig = (tailwindOptions) => {
|
|
2
|
-
const
|
|
3
|
-
const
|
|
108
|
+
const ignoredClasses = getIgnoredClasses(tailwindOptions);
|
|
109
|
+
const noUnknownClassesRule = getUnknownClassRule(tailwindOptions, ignoredClasses);
|
|
110
|
+
const settingsOptions = {
|
|
111
|
+
...tailwindOptions.cwd ? { cwd: tailwindOptions.cwd } : {},
|
|
112
|
+
...tailwindOptions.detectComponentClasses === void 0 ? {} : { detectComponentClasses: tailwindOptions.detectComponentClasses },
|
|
4
113
|
...tailwindOptions.entryPoint ? { entryPoint: tailwindOptions.entryPoint } : {},
|
|
5
114
|
...tailwindOptions.ignore?.length ? { ignore: tailwindOptions.ignore } : {}
|
|
6
115
|
};
|
|
7
|
-
const hasUnknownClassOptions = Object.keys(unknownClassOptions).length > 0;
|
|
8
|
-
const severity = noUnknownClasses ?? "error";
|
|
9
|
-
let noUnknownClassesRule;
|
|
10
|
-
if (hasUnknownClassOptions || noUnknownClasses !== void 0) {
|
|
11
|
-
if (severity === false) {
|
|
12
|
-
noUnknownClassesRule = "off";
|
|
13
|
-
} else {
|
|
14
|
-
noUnknownClassesRule = hasUnknownClassOptions ? [severity, unknownClassOptions] : severity;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
116
|
return {
|
|
18
117
|
name: "eslint-config-basic/tailwind-settings",
|
|
19
118
|
...noUnknownClassesRule === void 0 ? {} : { rules: { "better-tailwindcss/no-unknown-classes": noUnknownClassesRule } },
|
|
@@ -21,5 +120,8 @@ const buildTailwindSettingsConfig = (tailwindOptions) => {
|
|
|
21
120
|
};
|
|
22
121
|
};
|
|
23
122
|
export {
|
|
24
|
-
buildTailwindSettingsConfig
|
|
123
|
+
buildTailwindSettingsConfig,
|
|
124
|
+
findCssComponentClassPatterns,
|
|
125
|
+
findCssComponentClasses
|
|
25
126
|
};
|
|
127
|
+
//# sourceMappingURL=tailwind.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/tailwind.ts"],"sourcesContent":["import { existsSync, readFileSync } from 'node:fs'\nimport { dirname, extname, isAbsolute, join, resolve } from 'node:path'\n\nimport type { TailwindOptions } from '@santi020k/eslint-config-core'\nimport type { TSESLint } from '@typescript-eslint/utils'\n\nconst CSS_ESCAPE_PATTERN = String.raw`\\\\(?:[\\dA-Fa-f]{1,6}\\s?|[^\\f\\n\\r])`\n\nconst CSS_CLASS_PATTERN = new RegExp(\n String.raw`\\.((?:${CSS_ESCAPE_PATTERN}|[A-Za-z_])(?:${CSS_ESCAPE_PATTERN}|[\\w-])*)`,\n 'g'\n)\n\nconst CSS_UTILITY_PATTERN = /@utility\\s+([A-Za-z_][\\w-]*)\\s*\\{/g\nconst CSS_IMPORT_PATTERN = /@import\\s+(?:url\\(\\s*)?[\"']([^\"']+)[\"']/g\nconst CSS_COMMENT_PATTERN = /\\/\\*[\\s\\S]*?\\*\\//g\nconst CSS_STRING_PATTERN = /(\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*')/g\nconst MAX_COMPONENT_PATTERN_LENGTH = 3000\n\nconst decodeCssIdentifier = (value: string): string => value\n .replaceAll(/\\\\([\\dA-Fa-f]{1,6})\\s?/g, (_, codePoint: string) => String.fromCodePoint(Number.parseInt(codePoint, 16)))\n .replaceAll(/\\\\([^\\f\\n\\r])/g, '$1')\n\nconst resolveLocalCssImport = (filePath: string, specifier: string): string | undefined => {\n if (!specifier.startsWith('.') && !isAbsolute(specifier)) return undefined\n\n const cleanSpecifier = specifier.split(/[?#]/, 1)[0]\n\n if (!cleanSpecifier) return undefined\n\n const candidate = isAbsolute(cleanSpecifier) ? cleanSpecifier : resolve(dirname(filePath), cleanSpecifier)\n const candidates = extname(candidate) ? [candidate] : [candidate, `${candidate}.css`, join(candidate, 'index.css')]\n\n return candidates.find(path => existsSync(path))\n}\n\nconst getImportedCssFiles = (filePath: string, content: string): string[] => (\n [...content.matchAll(CSS_IMPORT_PATTERN)].flatMap(match => {\n const importedFile = match[1] ? resolveLocalCssImport(filePath, match[1]) : undefined\n\n return importedFile ? [importedFile] : []\n })\n)\n\nconst getCssSelectorClasses = (content: string): string[] => {\n const classes = new Set<string>()\n const source = content.replaceAll(CSS_COMMENT_PATTERN, '')\n\n for (const blockStart of source.matchAll(/\\{/g)) {\n const index = blockStart.index\n\n const boundary = Math.max(\n source.lastIndexOf(';', index - 1),\n source.lastIndexOf('{', index - 1),\n source.lastIndexOf('}', index - 1)\n )\n\n const selector = source.slice(boundary + 1, index).trim()\n\n if (!selector || selector.startsWith('@')) continue\n\n for (const match of selector.replaceAll(CSS_STRING_PATTERN, '').matchAll(CSS_CLASS_PATTERN)) {\n if (match[1]) classes.add(decodeCssIdentifier(match[1]))\n }\n }\n\n return [...classes]\n}\n\nconst getCssUtilityClasses = (content: string): string[] => (\n [...content.replaceAll(CSS_COMMENT_PATTERN, '').matchAll(CSS_UTILITY_PATTERN)]\n .flatMap(match => match[1] ? [match[1]] : [])\n)\n\nconst collectCssComponentClasses = (\n filePath: string,\n visited: Set<string>,\n classes: Set<string>\n): void => {\n if (visited.has(filePath)) return\n\n visited.add(filePath)\n\n let content: string\n\n try {\n content = readFileSync(filePath, 'utf8')\n } catch {\n return\n }\n\n for (const className of getCssSelectorClasses(content)) classes.add(className)\n\n for (const className of getCssUtilityClasses(content)) classes.add(className)\n\n for (const importedFile of getImportedCssFiles(filePath, content)) {\n collectCssComponentClasses(importedFile, visited, classes)\n }\n}\n\nconst escapeRegex = (value: string): string => value.replaceAll(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n\nconst createExactClassPatterns = (classes: string[]): string[] => {\n const patterns: string[] = []\n let alternatives: string[] = []\n\n const flush = (): void => {\n if (alternatives.length === 0) return\n\n patterns.push(`^(?:${alternatives.join('|')})$`)\n\n alternatives = []\n }\n\n for (const className of classes.toSorted()) {\n const escapedClass = escapeRegex(className)\n const nextLength = alternatives.join('|').length + escapedClass.length + 6\n\n if (nextLength > MAX_COMPONENT_PATTERN_LENGTH) flush()\n\n alternatives.push(escapedClass)\n }\n\n flush()\n\n return patterns\n}\n\nexport const findCssComponentClasses = (\n cwd: string,\n entryPoint: string\n): string[] => {\n const entryPath = isAbsolute(entryPoint) ? entryPoint : join(cwd, entryPoint)\n const classes = new Set<string>()\n\n collectCssComponentClasses(entryPath, new Set(), classes)\n\n return [...classes].toSorted()\n}\n\nexport const findCssComponentClassPatterns = (\n cwd: string,\n entryPoint: string\n): string[] => createExactClassPatterns(findCssComponentClasses(cwd, entryPoint))\n\nconst getIgnoredClasses = (tailwindOptions: TailwindOptions): string[] => {\n const configuredClasses = tailwindOptions.ignore ?? []\n\n if (!tailwindOptions.entryPoint || tailwindOptions.detectComponentClasses === false) {\n return configuredClasses\n }\n\n const detectedClasses = findCssComponentClassPatterns(\n tailwindOptions.cwd ?? process.cwd(),\n tailwindOptions.entryPoint\n )\n\n return [...new Set([...configuredClasses, ...detectedClasses])]\n}\n\nconst getUnknownClassRule = (\n tailwindOptions: TailwindOptions,\n ignoredClasses: string[]\n): TSESLint.FlatConfig.RuleEntry | undefined => {\n const options = {\n ...(tailwindOptions.entryPoint ? { entryPoint: tailwindOptions.entryPoint } : {}),\n ...(ignoredClasses.length ? { ignore: ignoredClasses } : {})\n }\n\n const hasOptions = Object.keys(options).length > 0\n const severity = tailwindOptions.noUnknownClasses ?? 'error'\n\n if (!hasOptions && tailwindOptions.noUnknownClasses === undefined) return undefined\n\n if (severity === false) return 'off'\n\n return hasOptions ? [severity, options] : severity\n}\n\nexport const buildTailwindSettingsConfig = (\n tailwindOptions: TailwindOptions\n): TSESLint.FlatConfig.Config => {\n const ignoredClasses = getIgnoredClasses(tailwindOptions)\n const noUnknownClassesRule = getUnknownClassRule(tailwindOptions, ignoredClasses)\n\n const settingsOptions = {\n ...(tailwindOptions.cwd ? { cwd: tailwindOptions.cwd } : {}),\n ...(tailwindOptions.detectComponentClasses === undefined ?\n {} :\n { detectComponentClasses: tailwindOptions.detectComponentClasses }),\n ...(tailwindOptions.entryPoint ? { entryPoint: tailwindOptions.entryPoint } : {}),\n ...(tailwindOptions.ignore?.length ? { ignore: tailwindOptions.ignore } : {})\n }\n\n return {\n name: 'eslint-config-basic/tailwind-settings',\n ...(noUnknownClassesRule === undefined ?\n {} :\n { rules: { 'better-tailwindcss/no-unknown-classes': noUnknownClassesRule } }),\n settings: { 'better-tailwindcss': settingsOptions }\n }\n}\n"],"mappings":"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","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@santi020k/eslint-config-basic",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.3.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"provenance": true
|
|
@@ -30,7 +30,8 @@
|
|
|
30
30
|
"files": [
|
|
31
31
|
"dist",
|
|
32
32
|
"README.md",
|
|
33
|
-
"CHANGELOG.md"
|
|
33
|
+
"CHANGELOG.md",
|
|
34
|
+
"IMPROVEMENTS.md"
|
|
34
35
|
],
|
|
35
36
|
"bin": {
|
|
36
37
|
"basic-eslint": "./dist/cli.js"
|
|
@@ -38,8 +39,8 @@
|
|
|
38
39
|
"dependencies": {
|
|
39
40
|
"@typescript-eslint/utils": "^8.65.0",
|
|
40
41
|
"semver": "^7.8.5",
|
|
41
|
-
"@santi020k/eslint-config-core": "^3.1.
|
|
42
|
-
"@santi020k/eslint-config-typescript": "^3.1.
|
|
42
|
+
"@santi020k/eslint-config-core": "^3.1.1",
|
|
43
|
+
"@santi020k/eslint-config-typescript": "^3.1.2"
|
|
43
44
|
},
|
|
44
45
|
"devDependencies": {
|
|
45
46
|
"@types/node": "^26.1.2",
|
|
@@ -47,13 +48,13 @@
|
|
|
47
48
|
"tsup": "^8.5.1",
|
|
48
49
|
"typescript": "^6.0.3",
|
|
49
50
|
"@santi020k/eslint-config-angular": "^3.1.0",
|
|
50
|
-
"@santi020k/eslint-config-astro": "^3.1.
|
|
51
|
+
"@santi020k/eslint-config-astro": "^3.1.1",
|
|
51
52
|
"@santi020k/eslint-config-expo": "^3.1.0",
|
|
52
|
-
"@santi020k/eslint-config-extensions": "^3.1.
|
|
53
|
-
"@santi020k/eslint-config-formats": "^3.1.
|
|
53
|
+
"@santi020k/eslint-config-extensions": "^3.1.1",
|
|
54
|
+
"@santi020k/eslint-config-formats": "^3.1.1",
|
|
54
55
|
"@santi020k/eslint-config-hono": "^3.1.0",
|
|
55
56
|
"@santi020k/eslint-config-lit": "^3.1.0",
|
|
56
|
-
"@santi020k/eslint-config-libraries": "^3.1.
|
|
57
|
+
"@santi020k/eslint-config-libraries": "^3.1.1",
|
|
57
58
|
"@santi020k/eslint-config-nest": "^3.1.0",
|
|
58
59
|
"@santi020k/eslint-config-next": "^3.1.0",
|
|
59
60
|
"@santi020k/eslint-config-nuxt": "^3.1.0",
|
|
@@ -65,22 +66,22 @@
|
|
|
65
66
|
"@santi020k/eslint-config-solid": "^3.1.0",
|
|
66
67
|
"@santi020k/eslint-config-svelte": "^3.1.0",
|
|
67
68
|
"@santi020k/eslint-config-tanstack-start": "^3.1.0",
|
|
68
|
-
"@santi020k/eslint-config-testing": "^3.1.
|
|
69
|
-
"@santi020k/eslint-config-tools": "^3.1.
|
|
69
|
+
"@santi020k/eslint-config-testing": "^3.1.1",
|
|
70
|
+
"@santi020k/eslint-config-tools": "^3.1.1",
|
|
70
71
|
"@santi020k/eslint-config-vite": "^3.1.0",
|
|
71
72
|
"@santi020k/eslint-config-vue": "^3.1.0"
|
|
72
73
|
},
|
|
73
74
|
"peerDependencies": {
|
|
74
75
|
"eslint": "^10.0.0",
|
|
75
|
-
"typescript": ">=5.0.0",
|
|
76
|
+
"typescript": ">=5.0.0 <7.0.0",
|
|
76
77
|
"@santi020k/eslint-config-angular": "^3.1.0",
|
|
77
|
-
"@santi020k/eslint-config-astro": "^3.1.
|
|
78
|
+
"@santi020k/eslint-config-astro": "^3.1.1",
|
|
78
79
|
"@santi020k/eslint-config-expo": "^3.1.0",
|
|
79
|
-
"@santi020k/eslint-config-extensions": "^3.1.
|
|
80
|
-
"@santi020k/eslint-config-formats": "^3.1.
|
|
80
|
+
"@santi020k/eslint-config-extensions": "^3.1.1",
|
|
81
|
+
"@santi020k/eslint-config-formats": "^3.1.1",
|
|
81
82
|
"@santi020k/eslint-config-hono": "^3.1.0",
|
|
82
83
|
"@santi020k/eslint-config-lit": "^3.1.0",
|
|
83
|
-
"@santi020k/eslint-config-libraries": "^3.1.
|
|
84
|
+
"@santi020k/eslint-config-libraries": "^3.1.1",
|
|
84
85
|
"@santi020k/eslint-config-nest": "^3.1.0",
|
|
85
86
|
"@santi020k/eslint-config-next": "^3.1.0",
|
|
86
87
|
"@santi020k/eslint-config-nuxt": "^3.1.0",
|
|
@@ -92,8 +93,8 @@
|
|
|
92
93
|
"@santi020k/eslint-config-solid": "^3.1.0",
|
|
93
94
|
"@santi020k/eslint-config-svelte": "^3.1.0",
|
|
94
95
|
"@santi020k/eslint-config-tanstack-start": "^3.1.0",
|
|
95
|
-
"@santi020k/eslint-config-testing": "^3.1.
|
|
96
|
-
"@santi020k/eslint-config-tools": "^3.1.
|
|
96
|
+
"@santi020k/eslint-config-testing": "^3.1.1",
|
|
97
|
+
"@santi020k/eslint-config-tools": "^3.1.1",
|
|
97
98
|
"@santi020k/eslint-config-vite": "^3.1.0",
|
|
98
99
|
"@santi020k/eslint-config-vue": "^3.1.0"
|
|
99
100
|
},
|
|
@@ -192,7 +193,7 @@
|
|
|
192
193
|
"clean": "rm -rf dist",
|
|
193
194
|
"check:exports": "publint",
|
|
194
195
|
"typecheck": "tsc --noEmit",
|
|
195
|
-
"lint": "eslint . --no-warn-ignored --pass-on-no-patterns",
|
|
196
|
-
"lint:fix": "eslint . --fix --no-warn-ignored --pass-on-no-patterns"
|
|
196
|
+
"lint": "eslint . --no-warn-ignored --pass-on-no-patterns --max-warnings=0",
|
|
197
|
+
"lint:fix": "eslint . --fix --no-warn-ignored --pass-on-no-patterns --max-warnings=0"
|
|
197
198
|
}
|
|
198
199
|
}
|