@xylabs/eslint-config-flat 8.6.9 → 8.6.11
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 +1 -148
- package/dist/neutral/index.d.ts +1 -19
- package/dist/neutral/index.d.ts.map +1 -1
- package/dist/neutral/index.mjs +1 -1522
- package/dist/neutral/index.mjs.map +4 -4
- package/dist/node/index.d.ts +1 -19
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.mjs +1 -1522
- package/dist/node/index.mjs.map +4 -4
- package/package.json +8 -49
- package/dist/neutral/core/index.d.ts +0 -5
- package/dist/neutral/core/index.d.ts.map +0 -1
- package/dist/neutral/ignores.d.ts +0 -2
- package/dist/neutral/ignores.d.ts.map +0 -1
- package/dist/neutral/import/index.d.ts +0 -3
- package/dist/neutral/import/index.d.ts.map +0 -1
- package/dist/neutral/json/index.d.ts +0 -5
- package/dist/neutral/json/index.d.ts.map +0 -1
- package/dist/neutral/markdown/index.d.ts +0 -3
- package/dist/neutral/markdown/index.d.ts.map +0 -1
- package/dist/neutral/rules/consistency.d.ts +0 -3
- package/dist/neutral/rules/consistency.d.ts.map +0 -1
- package/dist/neutral/rules/correctness.d.ts +0 -3
- package/dist/neutral/rules/correctness.d.ts.map +0 -1
- package/dist/neutral/rules/index.d.ts +0 -6
- package/dist/neutral/rules/index.d.ts.map +0 -1
- package/dist/neutral/shared.d.ts +0 -13
- package/dist/neutral/shared.d.ts.map +0 -1
- package/dist/neutral/tiers/conflicts.d.ts +0 -22
- package/dist/neutral/tiers/conflicts.d.ts.map +0 -1
- package/dist/neutral/tiers/index.d.ts +0 -48
- package/dist/neutral/tiers/index.d.ts.map +0 -1
- package/dist/neutral/tiers/opinionated.d.ts +0 -24
- package/dist/neutral/tiers/opinionated.d.ts.map +0 -1
- package/dist/neutral/tiers/plugin-rules.d.ts +0 -8
- package/dist/neutral/tiers/plugin-rules.d.ts.map +0 -1
- package/dist/neutral/tiers/recommendedConfig.d.ts +0 -16
- package/dist/neutral/tiers/recommendedConfig.d.ts.map +0 -1
- package/dist/neutral/tiers/rule-catalog/index.d.ts +0 -13
- package/dist/neutral/tiers/rule-catalog/index.d.ts.map +0 -1
- package/dist/neutral/tiers/rule-catalog/managed-rules.d.ts +0 -4
- package/dist/neutral/tiers/rule-catalog/managed-rules.d.ts.map +0 -1
- package/dist/neutral/tiers/rule-catalog/type-checked-rules.d.ts +0 -5
- package/dist/neutral/tiers/rule-catalog/type-checked-rules.d.ts.map +0 -1
- package/dist/neutral/tiers/rule-catalog/types.d.ts +0 -14
- package/dist/neutral/tiers/rule-catalog/types.d.ts.map +0 -1
- package/dist/neutral/tiers/tier-builder.d.ts +0 -6
- package/dist/neutral/tiers/tier-builder.d.ts.map +0 -1
- package/dist/neutral/typescript/index.d.ts +0 -9
- package/dist/neutral/typescript/index.d.ts.map +0 -1
- package/dist/neutral/unicorn/index.d.ts +0 -17
- package/dist/neutral/unicorn/index.d.ts.map +0 -1
- package/dist/neutral/workspaces/index.d.ts +0 -3
- package/dist/neutral/workspaces/index.d.ts.map +0 -1
- package/dist/node/core/index.d.ts +0 -5
- package/dist/node/core/index.d.ts.map +0 -1
- package/dist/node/ignores.d.ts +0 -2
- package/dist/node/ignores.d.ts.map +0 -1
- package/dist/node/import/index.d.ts +0 -3
- package/dist/node/import/index.d.ts.map +0 -1
- package/dist/node/json/index.d.ts +0 -5
- package/dist/node/json/index.d.ts.map +0 -1
- package/dist/node/markdown/index.d.ts +0 -3
- package/dist/node/markdown/index.d.ts.map +0 -1
- package/dist/node/rules/consistency.d.ts +0 -3
- package/dist/node/rules/consistency.d.ts.map +0 -1
- package/dist/node/rules/correctness.d.ts +0 -3
- package/dist/node/rules/correctness.d.ts.map +0 -1
- package/dist/node/rules/index.d.ts +0 -6
- package/dist/node/rules/index.d.ts.map +0 -1
- package/dist/node/shared.d.ts +0 -13
- package/dist/node/shared.d.ts.map +0 -1
- package/dist/node/tiers/conflicts.d.ts +0 -22
- package/dist/node/tiers/conflicts.d.ts.map +0 -1
- package/dist/node/tiers/index.d.ts +0 -48
- package/dist/node/tiers/index.d.ts.map +0 -1
- package/dist/node/tiers/opinionated.d.ts +0 -24
- package/dist/node/tiers/opinionated.d.ts.map +0 -1
- package/dist/node/tiers/plugin-rules.d.ts +0 -8
- package/dist/node/tiers/plugin-rules.d.ts.map +0 -1
- package/dist/node/tiers/recommendedConfig.d.ts +0 -16
- package/dist/node/tiers/recommendedConfig.d.ts.map +0 -1
- package/dist/node/tiers/rule-catalog/index.d.ts +0 -13
- package/dist/node/tiers/rule-catalog/index.d.ts.map +0 -1
- package/dist/node/tiers/rule-catalog/managed-rules.d.ts +0 -4
- package/dist/node/tiers/rule-catalog/managed-rules.d.ts.map +0 -1
- package/dist/node/tiers/rule-catalog/type-checked-rules.d.ts +0 -5
- package/dist/node/tiers/rule-catalog/type-checked-rules.d.ts.map +0 -1
- package/dist/node/tiers/rule-catalog/types.d.ts +0 -14
- package/dist/node/tiers/rule-catalog/types.d.ts.map +0 -1
- package/dist/node/tiers/tier-builder.d.ts +0 -6
- package/dist/node/tiers/tier-builder.d.ts.map +0 -1
- package/dist/node/typescript/index.d.ts +0 -9
- package/dist/node/typescript/index.d.ts.map +0 -1
- package/dist/node/unicorn/index.d.ts +0 -17
- package/dist/node/unicorn/index.d.ts.map +0 -1
- package/dist/node/workspaces/index.d.ts +0 -3
- package/dist/node/workspaces/index.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -1,150 +1,3 @@
|
|
|
1
|
-
[![logo][]](https://xylabs.com)
|
|
2
|
-
|
|
3
1
|
# @xylabs/eslint-config-flat
|
|
4
2
|
|
|
5
|
-
|
|
6
|
-
[![license][license-badge]][license-link]
|
|
7
|
-
|
|
8
|
-
> ESLint Config used throughout XY Labs TypeScript/JavaScript libraries and react projects
|
|
9
|
-
|
|
10
|
-
## Install
|
|
11
|
-
|
|
12
|
-
Using npm:
|
|
13
|
-
|
|
14
|
-
```sh
|
|
15
|
-
npm install -D {{name}}
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
Using yarn:
|
|
19
|
-
|
|
20
|
-
```sh
|
|
21
|
-
yarn add -D {{name}}
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
Using pnpm:
|
|
25
|
-
|
|
26
|
-
```sh
|
|
27
|
-
pnpm add -D {{name}}
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
Using bun:
|
|
31
|
-
|
|
32
|
-
```sh
|
|
33
|
-
bun add -D {{name}}
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
## Usage
|
|
37
|
-
|
|
38
|
-
Use this config in your `eslint.config.ts`:
|
|
39
|
-
|
|
40
|
-
```ts
|
|
41
|
-
import { recommendedConfig } from '@xylabs/eslint-config-flat'
|
|
42
|
-
|
|
43
|
-
const xylabsConfig = recommendedConfig({ tier: 3, isTypeChecked: true })
|
|
44
|
-
|
|
45
|
-
export default [
|
|
46
|
-
...xylabsConfig,
|
|
47
|
-
]
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
`recommendedConfig` accepts:
|
|
51
|
-
|
|
52
|
-
| Option | Default | Description |
|
|
53
|
-
|--------|---------|-------------|
|
|
54
|
-
| `tier` | `3` | Preset strictness level (0–4) |
|
|
55
|
-
| `isTypeChecked` | `true` | Enable TypeScript type-checked rules |
|
|
56
|
-
|
|
57
|
-
When `isTypeChecked` is `false`, all rules that require parser type information are disabled across every tier — including opinionated promotions and React layers — and a safety-net gate turns off any type-checked preset rules that would otherwise remain active.
|
|
58
|
-
|
|
59
|
-
### Tiered presets
|
|
60
|
-
|
|
61
|
-
Each tier is a **superset** of the previous tier. Pick the strictness level that fits your project.
|
|
62
|
-
|
|
63
|
-
| Tier | Category | Description |
|
|
64
|
-
|------|----------|-------------|
|
|
65
|
-
| 0 | Correctness | Type safety, bug prevention, import restrictions, markdown |
|
|
66
|
-
| 1 | Consistency | Tier 0 + formatting, member ordering, complexity limits |
|
|
67
|
-
| 2 | Best practices | Tier 1 + unicorn, import validation, workspace rules |
|
|
68
|
-
| 3 | Opinionated | Tier 2 + unicorn v66 warnings and optional rules promoted to errors |
|
|
69
|
-
| 4 | Experimental | Tier 3 + unicorn v67 and v69 warnings (v66 remain warnings; canary tier) |
|
|
70
|
-
|
|
71
|
-
### Rule catalog
|
|
72
|
-
|
|
73
|
-
XY-managed rule tier assignments live in `RULE_CATALOG` (exported from this package). The catalog records each rule's plugin, category, introducing tier, and whether it requires type checking. Tier composition is built from this catalog plus upstream plugin presets.
|
|
74
|
-
|
|
75
|
-
Named exports such as `configTier3OpinionatedTypeChecked` remain available but are deprecated. Prefer `recommendedConfig({ tier: 3, isTypeChecked: true })`.
|
|
76
|
-
|
|
77
|
-
Type-checked variants append `TypeChecked` (for example `configTier3OpinionatedTypeChecked`).
|
|
78
|
-
|
|
79
|
-
Rules introduced only at tier 3 or 4 default to **warnings**. Use `xy lint --strict` (or `XY_STRICT=1`) to treat warnings as errors in CI.
|
|
80
|
-
|
|
81
|
-
```ts
|
|
82
|
-
import { configTier4ExperimentalTypeChecked } from '@xylabs/eslint-config-flat'
|
|
83
|
-
|
|
84
|
-
export default [...configTier4ExperimentalTypeChecked]
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
`config` is deprecated. Use `configTier3OpinionatedTypeChecked` instead.
|
|
88
|
-
`recommendedTypeCheckedConfig` is a deprecated compatibility alias for `configTier2BestPracticesTypeChecked`.
|
|
89
|
-
|
|
90
|
-
### Extending with custom rules
|
|
91
|
-
|
|
92
|
-
```ts
|
|
93
|
-
import { configTier3OpinionatedTypeChecked } from '@xylabs/eslint-config-flat'
|
|
94
|
-
|
|
95
|
-
const eslintConfig = [
|
|
96
|
-
...configTier3OpinionatedTypeChecked,
|
|
97
|
-
{
|
|
98
|
-
rules: {
|
|
99
|
-
// your overrides
|
|
100
|
-
},
|
|
101
|
-
},
|
|
102
|
-
]
|
|
103
|
-
|
|
104
|
-
export default eslintConfig
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
### Individual configs
|
|
108
|
-
|
|
109
|
-
You can also import individual configs for more granular control:
|
|
110
|
-
|
|
111
|
-
```ts
|
|
112
|
-
import {
|
|
113
|
-
importConfig,
|
|
114
|
-
rulesConfig,
|
|
115
|
-
typescriptConfig,
|
|
116
|
-
unicornConfig,
|
|
117
|
-
} from '@xylabs/eslint-config-flat'
|
|
118
|
-
```
|
|
119
|
-
|
|
120
|
-
## What's included
|
|
121
|
-
|
|
122
|
-
- TypeScript strict linting via `@typescript-eslint`
|
|
123
|
-
- Import sorting and validation via `eslint-plugin-import-x`
|
|
124
|
-
- Best practices via `eslint-plugin-unicorn`
|
|
125
|
-
- Monorepo workspace rules via `eslint-plugin-workspaces`
|
|
126
|
-
- Markdown linting via `eslint-plugin-markdown`
|
|
127
|
-
- Stylistic formatting (no semicolons, single quotes, trailing commas, 2-space indent)
|
|
128
|
-
|
|
129
|
-
For React projects, use [`@xylabs/eslint-config-react-flat`](https://www.npmjs.com/package/@xylabs/eslint-config-react-flat) instead.
|
|
130
|
-
|
|
131
|
-
## Rule ownership
|
|
132
|
-
|
|
133
|
-
Some plugins cover similar territory. This config assigns a single canonical owner per concern and disables overlapping rules. See `RULE_OWNERSHIP_GROUPS` and `assertNoRuleOwnershipConflicts` exported from this package.
|
|
134
|
-
|
|
135
|
-
When upgrading ESLint plugins, run tests in this package — `spec/plugin-rules.spec.ts` snapshots each plugin's rule list and fails when new rules appear.
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
## License
|
|
139
|
-
|
|
140
|
-
See the [LICENSE](LICENSE) file for license rights and limitations (LGPL-3.0-only).
|
|
141
|
-
|
|
142
|
-
## Credits
|
|
143
|
-
|
|
144
|
-
[Made with 🔥 and ❄️ by XY Labs](https://xylabs.com)
|
|
145
|
-
|
|
146
|
-
[npm-badge]: https://img.shields.io/npm/v/@xylabs/eslint-config-flat.svg
|
|
147
|
-
[npm-link]: https://www.npmjs.com/package/@xylabs/eslint-config-flat
|
|
148
|
-
[license-badge]: https://img.shields.io/npm/l/@xylabs/eslint-config-flat.svg
|
|
149
|
-
[license-link]: https://github.com/xylabs/sdk-js/blob/main/LICENSE
|
|
150
|
-
[logo]: https://cdn.xy.company/img/brand/XYPersistentCompany_Logo_Icon_Colored.svg
|
|
3
|
+
Deprecated compatibility package. Use `@ariestools/eslint-config-flat` instead.
|
package/dist/neutral/index.d.ts
CHANGED
|
@@ -1,20 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const docsConfig: Linter.Config[];
|
|
3
|
-
export { bestPracticesCoreConfig, coreConfig, correctnessCoreConfig, } from './core/index.ts';
|
|
4
|
-
export { ignores } from './ignores.ts';
|
|
5
|
-
export { importConfig } from './import/index.ts';
|
|
6
|
-
export { json5Config, jsoncConfig, jsonConfig, } from './json/index.ts';
|
|
7
|
-
export { markdownConfig } from './markdown/index.ts';
|
|
8
|
-
export { consistencyRulesConfig, correctnessRulesConfig, rulesConfig, srcImportsConfig, } from './rules/index.ts';
|
|
9
|
-
export type { RuleSeverity } from './tiers/conflicts.ts';
|
|
10
|
-
export { assertNoRuleOwnershipConflicts, findRuleOwnershipConflicts, getRuleSeverity, mergeConfigRules, RULE_OWNERSHIP_GROUPS, } from './tiers/conflicts.ts';
|
|
11
|
-
export * from './tiers/index.ts';
|
|
12
|
-
export { experimentalLayerConfig, experimentalPromotionRules, experimentalUnicornLayerConfig, experimentalUnicornV69LayerConfig, opinionatedLayerConfig, opinionatedPromotionLayerConfig, opinionatedPromotionRules, opinionatedUnicornPresetLayerConfig, opinionatedUnicornV66LayerConfig, strictLayerConfig, strictPromotionRules, } from './tiers/opinionated.ts';
|
|
13
|
-
export { collectPluginRuleSnapshots, serializePluginRuleSnapshots, } from './tiers/plugin-rules.ts';
|
|
14
|
-
export type { ManagedRuleDefinition, RuleCategory } from './tiers/rule-catalog/index.ts';
|
|
15
|
-
export { buildManagedRulesLayer, buildTypeCheckGateLayer, categoryForTier, collectTypeCheckedRuleNames, findEnabledTypeCheckedRules, managedRulesForTier, RULE_CATALOG, } from './tiers/rule-catalog/index.ts';
|
|
16
|
-
export { buildTierConfig, globalIgnoresConfig } from './tiers/tier-builder.ts';
|
|
17
|
-
export { typescriptConfig, typescriptConsistencyConfig, typescriptCorrectnessConfig, typescriptDelegationConfig, typescriptTypeCheckedConfig, typescriptTypeCheckedConsistencyConfig, typescriptTypeCheckedCorrectnessConfig, } from './typescript/index.ts';
|
|
18
|
-
export { unicornConfig, unicornExperimentalMigrationQueue, unicornGloballyDisabledRules, unicornOpinionatedRules, unicornOpinionatedRulesForTier, unicornV66MigrationQueue, unicornV66NewRules, unicornV67MigrationQueue, unicornV69MigrationQueue, } from './unicorn/index.ts';
|
|
19
|
-
export { workspacesConfig } from './workspaces/index.ts';
|
|
1
|
+
export * from '@ariestools/eslint-config-flat';
|
|
20
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAA"}
|