@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.
Files changed (98) hide show
  1. package/README.md +1 -148
  2. package/dist/neutral/index.d.ts +1 -19
  3. package/dist/neutral/index.d.ts.map +1 -1
  4. package/dist/neutral/index.mjs +1 -1522
  5. package/dist/neutral/index.mjs.map +4 -4
  6. package/dist/node/index.d.ts +1 -19
  7. package/dist/node/index.d.ts.map +1 -1
  8. package/dist/node/index.mjs +1 -1522
  9. package/dist/node/index.mjs.map +4 -4
  10. package/package.json +8 -49
  11. package/dist/neutral/core/index.d.ts +0 -5
  12. package/dist/neutral/core/index.d.ts.map +0 -1
  13. package/dist/neutral/ignores.d.ts +0 -2
  14. package/dist/neutral/ignores.d.ts.map +0 -1
  15. package/dist/neutral/import/index.d.ts +0 -3
  16. package/dist/neutral/import/index.d.ts.map +0 -1
  17. package/dist/neutral/json/index.d.ts +0 -5
  18. package/dist/neutral/json/index.d.ts.map +0 -1
  19. package/dist/neutral/markdown/index.d.ts +0 -3
  20. package/dist/neutral/markdown/index.d.ts.map +0 -1
  21. package/dist/neutral/rules/consistency.d.ts +0 -3
  22. package/dist/neutral/rules/consistency.d.ts.map +0 -1
  23. package/dist/neutral/rules/correctness.d.ts +0 -3
  24. package/dist/neutral/rules/correctness.d.ts.map +0 -1
  25. package/dist/neutral/rules/index.d.ts +0 -6
  26. package/dist/neutral/rules/index.d.ts.map +0 -1
  27. package/dist/neutral/shared.d.ts +0 -13
  28. package/dist/neutral/shared.d.ts.map +0 -1
  29. package/dist/neutral/tiers/conflicts.d.ts +0 -22
  30. package/dist/neutral/tiers/conflicts.d.ts.map +0 -1
  31. package/dist/neutral/tiers/index.d.ts +0 -48
  32. package/dist/neutral/tiers/index.d.ts.map +0 -1
  33. package/dist/neutral/tiers/opinionated.d.ts +0 -24
  34. package/dist/neutral/tiers/opinionated.d.ts.map +0 -1
  35. package/dist/neutral/tiers/plugin-rules.d.ts +0 -8
  36. package/dist/neutral/tiers/plugin-rules.d.ts.map +0 -1
  37. package/dist/neutral/tiers/recommendedConfig.d.ts +0 -16
  38. package/dist/neutral/tiers/recommendedConfig.d.ts.map +0 -1
  39. package/dist/neutral/tiers/rule-catalog/index.d.ts +0 -13
  40. package/dist/neutral/tiers/rule-catalog/index.d.ts.map +0 -1
  41. package/dist/neutral/tiers/rule-catalog/managed-rules.d.ts +0 -4
  42. package/dist/neutral/tiers/rule-catalog/managed-rules.d.ts.map +0 -1
  43. package/dist/neutral/tiers/rule-catalog/type-checked-rules.d.ts +0 -5
  44. package/dist/neutral/tiers/rule-catalog/type-checked-rules.d.ts.map +0 -1
  45. package/dist/neutral/tiers/rule-catalog/types.d.ts +0 -14
  46. package/dist/neutral/tiers/rule-catalog/types.d.ts.map +0 -1
  47. package/dist/neutral/tiers/tier-builder.d.ts +0 -6
  48. package/dist/neutral/tiers/tier-builder.d.ts.map +0 -1
  49. package/dist/neutral/typescript/index.d.ts +0 -9
  50. package/dist/neutral/typescript/index.d.ts.map +0 -1
  51. package/dist/neutral/unicorn/index.d.ts +0 -17
  52. package/dist/neutral/unicorn/index.d.ts.map +0 -1
  53. package/dist/neutral/workspaces/index.d.ts +0 -3
  54. package/dist/neutral/workspaces/index.d.ts.map +0 -1
  55. package/dist/node/core/index.d.ts +0 -5
  56. package/dist/node/core/index.d.ts.map +0 -1
  57. package/dist/node/ignores.d.ts +0 -2
  58. package/dist/node/ignores.d.ts.map +0 -1
  59. package/dist/node/import/index.d.ts +0 -3
  60. package/dist/node/import/index.d.ts.map +0 -1
  61. package/dist/node/json/index.d.ts +0 -5
  62. package/dist/node/json/index.d.ts.map +0 -1
  63. package/dist/node/markdown/index.d.ts +0 -3
  64. package/dist/node/markdown/index.d.ts.map +0 -1
  65. package/dist/node/rules/consistency.d.ts +0 -3
  66. package/dist/node/rules/consistency.d.ts.map +0 -1
  67. package/dist/node/rules/correctness.d.ts +0 -3
  68. package/dist/node/rules/correctness.d.ts.map +0 -1
  69. package/dist/node/rules/index.d.ts +0 -6
  70. package/dist/node/rules/index.d.ts.map +0 -1
  71. package/dist/node/shared.d.ts +0 -13
  72. package/dist/node/shared.d.ts.map +0 -1
  73. package/dist/node/tiers/conflicts.d.ts +0 -22
  74. package/dist/node/tiers/conflicts.d.ts.map +0 -1
  75. package/dist/node/tiers/index.d.ts +0 -48
  76. package/dist/node/tiers/index.d.ts.map +0 -1
  77. package/dist/node/tiers/opinionated.d.ts +0 -24
  78. package/dist/node/tiers/opinionated.d.ts.map +0 -1
  79. package/dist/node/tiers/plugin-rules.d.ts +0 -8
  80. package/dist/node/tiers/plugin-rules.d.ts.map +0 -1
  81. package/dist/node/tiers/recommendedConfig.d.ts +0 -16
  82. package/dist/node/tiers/recommendedConfig.d.ts.map +0 -1
  83. package/dist/node/tiers/rule-catalog/index.d.ts +0 -13
  84. package/dist/node/tiers/rule-catalog/index.d.ts.map +0 -1
  85. package/dist/node/tiers/rule-catalog/managed-rules.d.ts +0 -4
  86. package/dist/node/tiers/rule-catalog/managed-rules.d.ts.map +0 -1
  87. package/dist/node/tiers/rule-catalog/type-checked-rules.d.ts +0 -5
  88. package/dist/node/tiers/rule-catalog/type-checked-rules.d.ts.map +0 -1
  89. package/dist/node/tiers/rule-catalog/types.d.ts +0 -14
  90. package/dist/node/tiers/rule-catalog/types.d.ts.map +0 -1
  91. package/dist/node/tiers/tier-builder.d.ts +0 -6
  92. package/dist/node/tiers/tier-builder.d.ts.map +0 -1
  93. package/dist/node/typescript/index.d.ts +0 -9
  94. package/dist/node/typescript/index.d.ts.map +0 -1
  95. package/dist/node/unicorn/index.d.ts +0 -17
  96. package/dist/node/unicorn/index.d.ts.map +0 -1
  97. package/dist/node/workspaces/index.d.ts +0 -3
  98. 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
- [![npm][npm-badge]][npm-link]
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.
@@ -1,20 +1,2 @@
1
- import type { Linter } from 'eslint';
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,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAQpC,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAKrC,CAAA;AAED,OAAO,EACL,uBAAuB,EACvB,UAAU,EACV,qBAAqB,GACtB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EACL,WAAW,EAAE,WAAW,EACxB,UAAU,GACX,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,WAAW,EACX,gBAAgB,GACjB,MAAM,kBAAkB,CAAA;AACzB,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,EAC1B,eAAe,EACf,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,sBAAsB,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,OAAO,EACL,uBAAuB,EACvB,0BAA0B,EAC1B,8BAA8B,EAC9B,iCAAiC,EACjC,sBAAsB,EACtB,+BAA+B,EAC/B,yBAAyB,EACzB,mCAAmC,EACnC,gCAAgC,EAChC,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EACL,0BAA0B,EAC1B,4BAA4B,GAC7B,MAAM,yBAAyB,CAAA;AAChC,YAAY,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AACxF,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,eAAe,EACf,2BAA2B,EAC3B,2BAA2B,EAC3B,mBAAmB,EACnB,YAAY,GACb,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAC9E,OAAO,EACL,gBAAgB,EAChB,2BAA2B,EAC3B,2BAA2B,EAC3B,0BAA0B,EAC1B,2BAA2B,EAC3B,sCAAsC,EACtC,sCAAsC,GACvC,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,aAAa,EACb,iCAAiC,EACjC,4BAA4B,EAC5B,uBAAuB,EACvB,8BAA8B,EAC9B,wBAAwB,EACxB,kBAAkB,EAClB,wBAAwB,EACxB,wBAAwB,GACzB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAA"}