@xylabs/eslint-config-flat 8.2.17 → 8.2.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -12
- package/dist/neutral/index.mjs +147 -52
- package/dist/neutral/index.mjs.map +3 -3
- package/dist/neutral/tiers/index.d.ts +18 -6
- package/dist/neutral/tiers/index.d.ts.map +1 -1
- package/dist/neutral/tiers/recommendedConfig.d.ts +16 -0
- package/dist/neutral/tiers/recommendedConfig.d.ts.map +1 -0
- package/dist/node/index.mjs +147 -52
- package/dist/node/index.mjs.map +3 -3
- package/dist/node/tiers/index.d.ts +18 -6
- package/dist/node/tiers/index.d.ts.map +1 -1
- package/dist/node/tiers/recommendedConfig.d.ts +16 -0
- package/dist/node/tiers/recommendedConfig.d.ts.map +1 -0
- package/package.json +3 -3
|
@@ -1,36 +1,48 @@
|
|
|
1
1
|
import type { Linter } from 'eslint';
|
|
2
|
+
export { applyRecommendedConfigTypeChecked, DEFAULT_RECOMMENDED_CONFIG_OPTIONS, formatRecommendedConfigCall, type LintTier, parseRecommendedConfigSource, recommendedConfig, type RecommendedConfigOptions, resolveRecommendedConfigOptions, } from './recommendedConfig.ts';
|
|
2
3
|
/**
|
|
3
4
|
* Tier 0 — correctness: type safety, bug prevention, import restrictions.
|
|
4
5
|
* Each subsequent tier is a superset of the previous tier.
|
|
6
|
+
*
|
|
7
|
+
* @deprecated Use `recommendedConfig({ tier: 0, isTypeChecked: false })` instead.
|
|
5
8
|
*/
|
|
6
9
|
export declare const configTier0Correctness: Linter.Config[];
|
|
10
|
+
/** @deprecated Use `recommendedConfig({ tier: 0, isTypeChecked: true })` instead. */
|
|
7
11
|
export declare const configTier0CorrectnessTypeChecked: Linter.Config[];
|
|
8
12
|
/**
|
|
9
13
|
* Tier 1 — consistency: Tier 0 plus formatting, member ordering, and complexity limits.
|
|
14
|
+
*
|
|
15
|
+
* @deprecated Use `recommendedConfig({ tier: 1, isTypeChecked: false })` instead.
|
|
10
16
|
*/
|
|
11
17
|
export declare const configTier1Consistency: Linter.Config[];
|
|
18
|
+
/** @deprecated Use `recommendedConfig({ tier: 1, isTypeChecked: true })` instead. */
|
|
12
19
|
export declare const configTier1ConsistencyTypeChecked: Linter.Config[];
|
|
13
20
|
/**
|
|
14
21
|
* Tier 2 — best practices: Tier 1 plus unicorn and import validation.
|
|
15
|
-
*
|
|
22
|
+
*
|
|
23
|
+
* @deprecated Use `recommendedConfig({ tier: 2, isTypeChecked: false })` instead.
|
|
16
24
|
*/
|
|
17
25
|
export declare const configTier2BestPractices: Linter.Config[];
|
|
26
|
+
/** @deprecated Use `recommendedConfig({ tier: 2, isTypeChecked: true })` instead. */
|
|
18
27
|
export declare const configTier2BestPracticesTypeChecked: Linter.Config[];
|
|
19
28
|
/**
|
|
20
29
|
* Tier 3 — opinionated: Tier 2 plus unicorn v66 warnings and promotion of optional rules to errors.
|
|
30
|
+
*
|
|
31
|
+
* @deprecated Use `recommendedConfig({ tier: 3, isTypeChecked: false })` instead.
|
|
21
32
|
*/
|
|
22
33
|
export declare const configTier3Opinionated: Linter.Config[];
|
|
34
|
+
/** @deprecated Use `recommendedConfig({ tier: 3, isTypeChecked: true })` instead. */
|
|
23
35
|
export declare const configTier3OpinionatedTypeChecked: Linter.Config[];
|
|
24
36
|
/**
|
|
25
37
|
* Tier 4 — experimental: Tier 3 plus unicorn v67 warnings (v66 remain warnings).
|
|
26
|
-
*
|
|
38
|
+
*
|
|
39
|
+
* @deprecated Use `recommendedConfig({ tier: 4, isTypeChecked: false })` instead.
|
|
27
40
|
*/
|
|
28
41
|
export declare const configTier4Experimental: Linter.Config[];
|
|
42
|
+
/** @deprecated Use `recommendedConfig({ tier: 4, isTypeChecked: true })` instead. */
|
|
29
43
|
export declare const configTier4ExperimentalTypeChecked: Linter.Config[];
|
|
30
|
-
/** @deprecated Use `
|
|
31
|
-
export declare const recommendedConfig: Linter.Config[];
|
|
32
|
-
/** @deprecated Use `configTier2BestPracticesTypeChecked` instead. */
|
|
44
|
+
/** @deprecated Use `recommendedConfig({ tier: 2, isTypeChecked: false })` instead. */
|
|
33
45
|
export declare const recommendedTypeCheckedConfig: Linter.Config[];
|
|
34
|
-
/** @deprecated Use `
|
|
46
|
+
/** @deprecated Use `recommendedConfig({ tier: 2, isTypeChecked: true })` instead. */
|
|
35
47
|
export declare const config: Linter.Config[];
|
|
36
48
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tiers/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tiers/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAEpC,OAAO,EACL,iCAAiC,EACjC,kCAAkC,EAClC,2BAA2B,EAC3B,KAAK,QAAQ,EACb,4BAA4B,EAC5B,iBAAiB,EACjB,KAAK,wBAAwB,EAC7B,+BAA+B,GAChC,MAAM,wBAAwB,CAAA;AAI/B;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAyD,CAAA;AAE3G,qFAAqF;AACrF,eAAO,MAAM,iCAAiC,EAAE,MAAM,CAAC,MAAM,EAAwD,CAAA;AAErH;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAyD,CAAA;AAE3G,qFAAqF;AACrF,eAAO,MAAM,iCAAiC,EAAE,MAAM,CAAC,MAAM,EAAwD,CAAA;AAErH;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,MAAM,CAAC,MAAM,EAAyD,CAAA;AAE7G,qFAAqF;AACrF,eAAO,MAAM,mCAAmC,EAAE,MAAM,CAAC,MAAM,EAAwD,CAAA;AAEvH;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAyD,CAAA;AAE3G,qFAAqF;AACrF,eAAO,MAAM,iCAAiC,EAAE,MAAM,CAAC,MAAM,EAAwD,CAAA;AAErH;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAyD,CAAA;AAE5G,qFAAqF;AACrF,eAAO,MAAM,kCAAkC,EAAE,MAAM,CAAC,MAAM,EAAwD,CAAA;AAEtH,sFAAsF;AACtF,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAAwD,CAAA;AAEhH,qFAAqF;AACrF,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAwD,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Linter } from 'eslint';
|
|
2
|
+
export type LintTier = 0 | 1 | 2 | 3 | 4;
|
|
3
|
+
export interface RecommendedConfigOptions {
|
|
4
|
+
isTypeChecked?: boolean;
|
|
5
|
+
tier?: LintTier;
|
|
6
|
+
}
|
|
7
|
+
export declare const DEFAULT_RECOMMENDED_CONFIG_OPTIONS: Required<RecommendedConfigOptions>;
|
|
8
|
+
export declare function resolveRecommendedConfigOptions(options?: RecommendedConfigOptions): Required<RecommendedConfigOptions>;
|
|
9
|
+
export declare function recommendedConfig(options?: RecommendedConfigOptions): Linter.Config[];
|
|
10
|
+
export declare function formatRecommendedConfigCall(options: RecommendedConfigOptions): string;
|
|
11
|
+
export declare function parseRecommendedConfigSource(source: string): {
|
|
12
|
+
configKind: 'custom' | 'preset';
|
|
13
|
+
options: Required<RecommendedConfigOptions>;
|
|
14
|
+
} | undefined;
|
|
15
|
+
export declare function applyRecommendedConfigTypeChecked(source: string, isEnabled: boolean): string;
|
|
16
|
+
//# sourceMappingURL=recommendedConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recommendedConfig.d.ts","sourceRoot":"","sources":["../../../src/tiers/recommendedConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAsBpC,MAAM,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAExC,MAAM,WAAW,wBAAwB;IACvC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,IAAI,CAAC,EAAE,QAAQ,CAAA;CAChB;AAED,eAAO,MAAM,kCAAkC,EAAE,QAAQ,CAAC,wBAAwB,CAGjF,CAAA;AAqFD,wBAAgB,+BAA+B,CAC7C,OAAO,CAAC,EAAE,wBAAwB,GACjC,QAAQ,CAAC,wBAAwB,CAAC,CAKpC;AAED,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,wBAAwB,GAAG,MAAM,CAAC,MAAM,EAAE,CAGrF;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,wBAAwB,GAAG,MAAM,CAGrF;AA4BD,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,GACb;IAAE,UAAU,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAAC,OAAO,EAAE,QAAQ,CAAC,wBAAwB,CAAC,CAAA;CAAE,GAAG,SAAS,CAQ9F;AAED,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,OAAO,GACjB,MAAM,CAOR"}
|
package/dist/node/index.mjs
CHANGED
|
@@ -824,61 +824,151 @@ var experimentalUnicornLayerConfig = {
|
|
|
824
824
|
var experimentalLayerConfig = experimentalUnicornLayerConfig;
|
|
825
825
|
var experimentalPromotionRules = experimentalUnicornLayerConfig.rules;
|
|
826
826
|
|
|
827
|
-
// src/tiers/
|
|
827
|
+
// src/tiers/recommendedConfig.ts
|
|
828
|
+
var DEFAULT_RECOMMENDED_CONFIG_OPTIONS = {
|
|
829
|
+
isTypeChecked: true,
|
|
830
|
+
tier: 3
|
|
831
|
+
};
|
|
832
|
+
var composedConfigModules = [
|
|
833
|
+
"bestPracticesCoreConfig",
|
|
834
|
+
"consistencyRulesConfig",
|
|
835
|
+
"correctnessCoreConfig",
|
|
836
|
+
"importConfig",
|
|
837
|
+
"rulesConfig",
|
|
838
|
+
"typescriptConfig",
|
|
839
|
+
"typescriptConsistencyConfig",
|
|
840
|
+
"typescriptCorrectnessConfig",
|
|
841
|
+
"typescriptTypeCheckedConfig",
|
|
842
|
+
"typescriptTypeCheckedConsistencyConfig",
|
|
843
|
+
"typescriptTypeCheckedCorrectnessConfig",
|
|
844
|
+
"unicornConfig",
|
|
845
|
+
"workspacesConfig"
|
|
846
|
+
];
|
|
828
847
|
function mergeTierConfigs(...parts) {
|
|
829
848
|
return parts.flat();
|
|
830
849
|
}
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
)
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
)
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
);
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
)
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
);
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
850
|
+
function buildTier0(isTypeChecked) {
|
|
851
|
+
return mergeTierConfigs(
|
|
852
|
+
markdownConfig,
|
|
853
|
+
correctnessCoreConfig,
|
|
854
|
+
isTypeChecked ? typescriptTypeCheckedCorrectnessConfig : typescriptCorrectnessConfig
|
|
855
|
+
);
|
|
856
|
+
}
|
|
857
|
+
function buildTier1(isTypeChecked) {
|
|
858
|
+
return mergeTierConfigs(
|
|
859
|
+
buildTier0(isTypeChecked),
|
|
860
|
+
[consistencyRulesConfig],
|
|
861
|
+
isTypeChecked ? typescriptTypeCheckedConsistencyConfig : typescriptConsistencyConfig,
|
|
862
|
+
[typescriptDelegationConfig]
|
|
863
|
+
);
|
|
864
|
+
}
|
|
865
|
+
function buildTier2(isTypeChecked) {
|
|
866
|
+
return mergeTierConfigs(
|
|
867
|
+
buildTier1(isTypeChecked),
|
|
868
|
+
bestPracticesCoreConfig,
|
|
869
|
+
importConfig
|
|
870
|
+
);
|
|
871
|
+
}
|
|
872
|
+
function buildTier3(isTypeChecked) {
|
|
873
|
+
return mergeTierConfigs(
|
|
874
|
+
buildTier2(isTypeChecked),
|
|
875
|
+
[opinionatedUnicornV66LayerConfig, opinionatedPromotionLayerConfig]
|
|
876
|
+
);
|
|
877
|
+
}
|
|
878
|
+
function buildTier4(isTypeChecked) {
|
|
879
|
+
return mergeTierConfigs(
|
|
880
|
+
buildTier3(isTypeChecked),
|
|
881
|
+
[experimentalUnicornLayerConfig]
|
|
882
|
+
);
|
|
883
|
+
}
|
|
884
|
+
function buildTierConfig(tier, isTypeChecked) {
|
|
885
|
+
switch (tier) {
|
|
886
|
+
case 0: {
|
|
887
|
+
return buildTier0(isTypeChecked);
|
|
888
|
+
}
|
|
889
|
+
case 1: {
|
|
890
|
+
return buildTier1(isTypeChecked);
|
|
891
|
+
}
|
|
892
|
+
case 2: {
|
|
893
|
+
return buildTier2(isTypeChecked);
|
|
894
|
+
}
|
|
895
|
+
case 3: {
|
|
896
|
+
return buildTier3(isTypeChecked);
|
|
897
|
+
}
|
|
898
|
+
case 4: {
|
|
899
|
+
return buildTier4(isTypeChecked);
|
|
900
|
+
}
|
|
901
|
+
default: {
|
|
902
|
+
const unsupported = tier;
|
|
903
|
+
throw new Error(`Unsupported lint tier ${unsupported}`);
|
|
904
|
+
}
|
|
905
|
+
}
|
|
906
|
+
}
|
|
907
|
+
function resolveRecommendedConfigOptions(options) {
|
|
908
|
+
return {
|
|
909
|
+
isTypeChecked: options?.isTypeChecked ?? DEFAULT_RECOMMENDED_CONFIG_OPTIONS.isTypeChecked,
|
|
910
|
+
tier: options?.tier ?? DEFAULT_RECOMMENDED_CONFIG_OPTIONS.tier
|
|
911
|
+
};
|
|
912
|
+
}
|
|
913
|
+
function recommendedConfig(options) {
|
|
914
|
+
const resolved = resolveRecommendedConfigOptions(options);
|
|
915
|
+
return buildTierConfig(resolved.tier, resolved.isTypeChecked);
|
|
916
|
+
}
|
|
917
|
+
function formatRecommendedConfigCall(options) {
|
|
918
|
+
const resolved = resolveRecommendedConfigOptions(options);
|
|
919
|
+
return `recommendedConfig({ tier: ${resolved.tier}, isTypeChecked: ${String(resolved.isTypeChecked)} })`;
|
|
920
|
+
}
|
|
921
|
+
function hasComposedConfigModules(source) {
|
|
922
|
+
return composedConfigModules.some((module) => source.includes(module));
|
|
923
|
+
}
|
|
924
|
+
function parseRecommendedConfigOptionsLiteral(literal) {
|
|
925
|
+
const resolved = { ...DEFAULT_RECOMMENDED_CONFIG_OPTIONS };
|
|
926
|
+
if (literal === void 0 || literal.trim().length === 0) return resolved;
|
|
927
|
+
const tierMatch = /tier:\s*([0-4])\b/.exec(literal);
|
|
928
|
+
if (tierMatch !== null) {
|
|
929
|
+
resolved.tier = Number(tierMatch[1]);
|
|
930
|
+
}
|
|
931
|
+
const isTypeCheckedMatch = /isTypeChecked:\s*(true|false)\b/.exec(literal);
|
|
932
|
+
if (isTypeCheckedMatch === null) {
|
|
933
|
+
const legacyTypeCheckedMatch = /typeChecked:\s*(true|false)\b/.exec(literal);
|
|
934
|
+
if (legacyTypeCheckedMatch !== null) {
|
|
935
|
+
resolved.isTypeChecked = legacyTypeCheckedMatch[1] === "true";
|
|
936
|
+
}
|
|
937
|
+
} else {
|
|
938
|
+
resolved.isTypeChecked = isTypeCheckedMatch[1] === "true";
|
|
939
|
+
}
|
|
940
|
+
return resolved;
|
|
941
|
+
}
|
|
942
|
+
function parseRecommendedConfigSource(source) {
|
|
943
|
+
const callPattern = /recommendedConfig\s*\(\s*(?:\{([^}]*)\})?\s*\)/g;
|
|
944
|
+
const match = callPattern.exec(source);
|
|
945
|
+
if (match === null) return void 0;
|
|
946
|
+
const options = parseRecommendedConfigOptionsLiteral(match[1]);
|
|
947
|
+
const configKind = hasComposedConfigModules(source) ? "custom" : "preset";
|
|
948
|
+
return { configKind, options };
|
|
949
|
+
}
|
|
950
|
+
function applyRecommendedConfigTypeChecked(source, isEnabled) {
|
|
951
|
+
const callPattern = /recommendedConfig\s*\(\s*(?:\{([^}]*)\})?\s*\)/g;
|
|
952
|
+
return source.replaceAll(callPattern, (_match, literal) => {
|
|
953
|
+
const options = parseRecommendedConfigOptionsLiteral(literal);
|
|
954
|
+
options.isTypeChecked = isEnabled;
|
|
955
|
+
return formatRecommendedConfigCall(options);
|
|
956
|
+
});
|
|
957
|
+
}
|
|
958
|
+
|
|
959
|
+
// src/tiers/index.ts
|
|
960
|
+
var configTier0Correctness = recommendedConfig({ tier: 0, isTypeChecked: false });
|
|
961
|
+
var configTier0CorrectnessTypeChecked = recommendedConfig({ tier: 0, isTypeChecked: true });
|
|
962
|
+
var configTier1Consistency = recommendedConfig({ tier: 1, isTypeChecked: false });
|
|
963
|
+
var configTier1ConsistencyTypeChecked = recommendedConfig({ tier: 1, isTypeChecked: true });
|
|
964
|
+
var configTier2BestPractices = recommendedConfig({ tier: 2, isTypeChecked: false });
|
|
965
|
+
var configTier2BestPracticesTypeChecked = recommendedConfig({ tier: 2, isTypeChecked: true });
|
|
966
|
+
var configTier3Opinionated = recommendedConfig({ tier: 3, isTypeChecked: false });
|
|
967
|
+
var configTier3OpinionatedTypeChecked = recommendedConfig({ tier: 3, isTypeChecked: true });
|
|
968
|
+
var configTier4Experimental = recommendedConfig({ tier: 4, isTypeChecked: false });
|
|
969
|
+
var configTier4ExperimentalTypeChecked = recommendedConfig({ tier: 4, isTypeChecked: true });
|
|
970
|
+
var recommendedTypeCheckedConfig = recommendedConfig({ tier: 2, isTypeChecked: true });
|
|
971
|
+
var config = recommendedConfig({ tier: 2, isTypeChecked: true });
|
|
882
972
|
|
|
883
973
|
// src/tiers/plugin-rules.ts
|
|
884
974
|
import js2 from "@eslint/js";
|
|
@@ -994,7 +1084,9 @@ var docsConfig = [
|
|
|
994
1084
|
json5Config
|
|
995
1085
|
];
|
|
996
1086
|
export {
|
|
1087
|
+
DEFAULT_RECOMMENDED_CONFIG_OPTIONS,
|
|
997
1088
|
RULE_OWNERSHIP_GROUPS,
|
|
1089
|
+
applyRecommendedConfigTypeChecked,
|
|
998
1090
|
assertNoRuleOwnershipConflicts,
|
|
999
1091
|
bestPracticesCoreConfig,
|
|
1000
1092
|
collectPluginRuleSnapshots,
|
|
@@ -1018,6 +1110,7 @@ export {
|
|
|
1018
1110
|
experimentalPromotionRules,
|
|
1019
1111
|
experimentalUnicornLayerConfig,
|
|
1020
1112
|
findRuleOwnershipConflicts,
|
|
1113
|
+
formatRecommendedConfigCall,
|
|
1021
1114
|
ignores,
|
|
1022
1115
|
importConfig,
|
|
1023
1116
|
json5Config,
|
|
@@ -1029,8 +1122,10 @@ export {
|
|
|
1029
1122
|
opinionatedPromotionLayerConfig,
|
|
1030
1123
|
opinionatedPromotionRules,
|
|
1031
1124
|
opinionatedUnicornV66LayerConfig,
|
|
1125
|
+
parseRecommendedConfigSource,
|
|
1032
1126
|
recommendedConfig,
|
|
1033
1127
|
recommendedTypeCheckedConfig,
|
|
1128
|
+
resolveRecommendedConfigOptions,
|
|
1034
1129
|
rulesConfig,
|
|
1035
1130
|
serializePluginRuleSnapshots,
|
|
1036
1131
|
srcImportsConfig,
|