@venizia/dev-configs 0.2.1 → 0.3.1-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.
Files changed (99) hide show
  1. package/README.md +224 -41
  2. package/dist/{compile.d.ts → compilers/bun.d.ts} +1 -1
  3. package/dist/compilers/bun.d.ts.map +1 -0
  4. package/dist/{compile.js → compilers/bun.js} +8 -9
  5. package/dist/compilers/bun.js.map +1 -0
  6. package/dist/compilers/index.d.ts +2 -0
  7. package/dist/compilers/index.d.ts.map +1 -0
  8. package/dist/compilers/index.js +18 -0
  9. package/dist/compilers/index.js.map +1 -0
  10. package/dist/formatters/index.d.ts +3 -0
  11. package/dist/formatters/index.d.ts.map +1 -0
  12. package/dist/formatters/index.js +19 -0
  13. package/dist/formatters/index.js.map +1 -0
  14. package/dist/formatters/oxfmt.d.ts +28 -0
  15. package/dist/formatters/oxfmt.d.ts.map +1 -0
  16. package/dist/formatters/oxfmt.js +42 -0
  17. package/dist/formatters/oxfmt.js.map +1 -0
  18. package/dist/formatters/prettier.d.ts +3 -0
  19. package/dist/formatters/prettier.d.ts.map +1 -0
  20. package/dist/{prettier.js → formatters/prettier.js} +2 -2
  21. package/dist/formatters/prettier.js.map +1 -0
  22. package/dist/index.d.ts +3 -4
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +3 -4
  25. package/dist/index.js.map +1 -1
  26. package/dist/linters/browser.d.ts +18 -0
  27. package/dist/linters/browser.d.ts.map +1 -0
  28. package/dist/linters/browser.js +31 -0
  29. package/dist/linters/browser.js.map +1 -0
  30. package/dist/linters/eslint.d.ts +20 -0
  31. package/dist/linters/eslint.d.ts.map +1 -0
  32. package/dist/linters/eslint.js +152 -0
  33. package/dist/linters/eslint.js.map +1 -0
  34. package/dist/linters/index.d.ts +6 -0
  35. package/dist/linters/index.d.ts.map +1 -0
  36. package/dist/linters/index.js +22 -0
  37. package/dist/linters/index.js.map +1 -0
  38. package/dist/linters/oxlint.d.ts +19 -0
  39. package/dist/linters/oxlint.d.ts.map +1 -0
  40. package/dist/linters/oxlint.js +166 -0
  41. package/dist/linters/oxlint.js.map +1 -0
  42. package/dist/linters/react.d.ts +59 -0
  43. package/dist/linters/react.d.ts.map +1 -0
  44. package/dist/linters/react.js +178 -0
  45. package/dist/linters/react.js.map +1 -0
  46. package/dist/linters/rules/common.d.ts +6 -0
  47. package/dist/linters/rules/common.d.ts.map +1 -0
  48. package/dist/linters/rules/common.js +3 -0
  49. package/dist/linters/rules/common.js.map +1 -0
  50. package/dist/linters/rules/eqeqeq.rule.d.ts +10 -0
  51. package/dist/linters/rules/eqeqeq.rule.d.ts.map +1 -0
  52. package/dist/linters/rules/eqeqeq.rule.js +13 -0
  53. package/dist/linters/rules/eqeqeq.rule.js.map +1 -0
  54. package/dist/linters/rules/index.d.ts +9 -0
  55. package/dist/linters/rules/index.d.ts.map +1 -0
  56. package/dist/linters/rules/index.js +25 -0
  57. package/dist/linters/rules/index.js.map +1 -0
  58. package/dist/linters/rules/naming-convention.rule.d.ts +20 -0
  59. package/dist/linters/rules/naming-convention.rule.d.ts.map +1 -0
  60. package/dist/linters/rules/naming-convention.rule.js +64 -0
  61. package/dist/linters/rules/naming-convention.rule.js.map +1 -0
  62. package/dist/linters/rules/no-restricted-imports.rule.d.ts +17 -0
  63. package/dist/linters/rules/no-restricted-imports.rule.d.ts.map +1 -0
  64. package/dist/linters/rules/no-restricted-imports.rule.js +19 -0
  65. package/dist/linters/rules/no-restricted-imports.rule.js.map +1 -0
  66. package/dist/linters/rules/no-restricted-properties.rule.d.ts +22 -0
  67. package/dist/linters/rules/no-restricted-properties.rule.d.ts.map +1 -0
  68. package/dist/linters/rules/no-restricted-properties.rule.js +24 -0
  69. package/dist/linters/rules/no-restricted-properties.rule.js.map +1 -0
  70. package/dist/linters/rules/no-unused-vars.rule.d.ts +12 -0
  71. package/dist/linters/rules/no-unused-vars.rule.d.ts.map +1 -0
  72. package/dist/linters/rules/no-unused-vars.rule.js +13 -0
  73. package/dist/linters/rules/no-unused-vars.rule.js.map +1 -0
  74. package/dist/linters/rules/prefer-nullish-coalescing.rule.d.ts +12 -0
  75. package/dist/linters/rules/prefer-nullish-coalescing.rule.d.ts.map +1 -0
  76. package/dist/linters/rules/prefer-nullish-coalescing.rule.js +13 -0
  77. package/dist/linters/rules/prefer-nullish-coalescing.rule.js.map +1 -0
  78. package/dist/linters/rules/switch-case-braces.rule.d.ts +10 -0
  79. package/dist/linters/rules/switch-case-braces.rule.d.ts.map +1 -0
  80. package/dist/linters/rules/switch-case-braces.rule.js +13 -0
  81. package/dist/linters/rules/switch-case-braces.rule.js.map +1 -0
  82. package/package.json +43 -16
  83. package/{tsconfig → src/tsconfig}/tsconfig.base.json +2 -2
  84. package/src/tsconfig/tsconfig.browser.json +11 -0
  85. package/{tsconfig → src/tsconfig}/tsconfig.common.json +1 -1
  86. package/src/tsconfig/tsconfig.react.json +7 -0
  87. package/dist/compile.d.ts.map +0 -1
  88. package/dist/compile.js.map +0 -1
  89. package/dist/eslint.d.ts +0 -3
  90. package/dist/eslint.d.ts.map +0 -1
  91. package/dist/eslint.js +0 -25
  92. package/dist/eslint.js.map +0 -1
  93. package/dist/prettier.d.ts +0 -3
  94. package/dist/prettier.d.ts.map +0 -1
  95. package/dist/prettier.js.map +0 -1
  96. package/dist/react.d.ts +0 -32
  97. package/dist/react.d.ts.map +0 -1
  98. package/dist/react.js +0 -111
  99. package/dist/react.js.map +0 -1
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BrowserOxlintConfigs = void 0;
4
+ const oxlint_1 = require("./oxlint");
5
+ const rules_1 = require("./rules");
6
+ /**
7
+ * `oxlintConfigs` for code that runs in a browser, React or not: the base rules plus the
8
+ * secure-context ban (`crypto.randomUUID` is `undefined` on a plain-http origin). Nothing in the base
9
+ * is relaxed. `ReactOxlintConfigs` builds on this preset.
10
+ *
11
+ * ```ts
12
+ * // .configs/oxlint.config.mts
13
+ * import { defineConfig } from 'oxlint';
14
+ * import { BrowserOxlintConfigs } from '@venizia/dev-configs/linters';
15
+ *
16
+ * export default defineConfig(BrowserOxlintConfigs.create());
17
+ * ```
18
+ */
19
+ class BrowserOxlintConfigs {
20
+ static create() {
21
+ return {
22
+ ...oxlint_1.oxlintConfigs,
23
+ rules: {
24
+ ...oxlint_1.oxlintConfigs.rules,
25
+ [rules_1.NoRestrictedPropertiesRule.NAME]: rules_1.NoRestrictedPropertiesRule.build(),
26
+ },
27
+ };
28
+ }
29
+ }
30
+ exports.BrowserOxlintConfigs = BrowserOxlintConfigs;
31
+ //# sourceMappingURL=browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/linters/browser.ts"],"names":[],"mappings":";;;AACA,qCAAyC;AACzC,mCAAqD;AAErD;;;;;;;;;;;;GAYG;AACH,MAAa,oBAAoB;IAC/B,MAAM,CAAC,MAAM;QACX,OAAO;YACL,GAAG,sBAAa;YAChB,KAAK,EAAE;gBACL,GAAG,sBAAa,CAAC,KAAK;gBACtB,CAAC,kCAA0B,CAAC,IAAI,CAAC,EAAE,kCAA0B,CAAC,KAAK,EAAE;aACtE;SACF,CAAC;IACJ,CAAC;CACF;AAVD,oDAUC"}
@@ -0,0 +1,20 @@
1
+ import type { Linter } from 'eslint';
2
+ /**
3
+ * The full ESLint preset, owned here: the LoopBack 4 rule set on the ESLint, typescript-eslint and
4
+ * Prettier recommended presets, type-aware through the project service. A project on oxlint uses
5
+ * `oxlintConfigs` + `namingConventionConfigs` instead.
6
+ */
7
+ export declare const eslintConfigs: Linter.Config[];
8
+ /**
9
+ * The one rule of `eslintConfigs` that oxlint cannot run yet, as a standalone ESLint preset to run
10
+ * next to `oxlintConfigs`. It needs no type information, so ESLint stays fast.
11
+ *
12
+ * ```js
13
+ * // .configs/eslint.config.mjs
14
+ * import { namingConventionConfigs } from '@venizia/dev-configs/linters';
15
+ *
16
+ * export default namingConventionConfigs;
17
+ * ```
18
+ */
19
+ export declare const namingConventionConfigs: Linter.Config[];
20
+ //# sourceMappingURL=eslint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eslint.d.ts","sourceRoot":"","sources":["../../src/linters/eslint.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAwFrC;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAqCvC,CAAC;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAWlD,CAAC"}
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.namingConventionConfigs = exports.eslintConfigs = void 0;
7
+ const js_1 = __importDefault(require("@eslint/js"));
8
+ const config_1 = require("eslint/config");
9
+ const eslint_plugin_n_1 = __importDefault(require("eslint-plugin-n"));
10
+ const recommended_1 = __importDefault(require("eslint-plugin-prettier/recommended"));
11
+ const eslint_plugin_unicorn_1 = __importDefault(require("eslint-plugin-unicorn"));
12
+ const typescript_eslint_1 = __importDefault(require("typescript-eslint"));
13
+ const rules_1 = require("./rules");
14
+ /** Every file the preset lints. */
15
+ const SOURCE_FILES = [
16
+ '**/*.js',
17
+ '**/*.cjs',
18
+ '**/*.mjs',
19
+ '**/*.jsx',
20
+ '**/*.ts',
21
+ '**/*.cts',
22
+ '**/*.mts',
23
+ '**/*.tsx',
24
+ ];
25
+ /** Rules that stay off: the type checker, the formatter or the framework's own style covers them. */
26
+ const OFF_RULES = {
27
+ 'no-constant-condition': 'off',
28
+ 'no-undef': 'off',
29
+ 'no-unused-vars': 'off',
30
+ 'no-mixed-operators': 'off',
31
+ 'no-inner-declarations': 'off',
32
+ 'no-dupe-class-members': 'off',
33
+ 'no-redeclare': 'off',
34
+ 'no-invalid-this': 'off',
35
+ 'no-shadow': 'off',
36
+ 'no-return-await': 'off',
37
+ camelcase: 'off',
38
+ '@typescript-eslint/no-explicit-any': 'off',
39
+ '@typescript-eslint/no-unsafe-function-type': 'off',
40
+ '@typescript-eslint/no-this-alias': 'off',
41
+ '@typescript-eslint/no-empty-object-type': 'off',
42
+ '@typescript-eslint/no-invalid-void-type': 'off',
43
+ '@typescript-eslint/no-confusing-void-expression': 'off',
44
+ '@typescript-eslint/no-extraneous-class': 'off',
45
+ '@typescript-eslint/no-require-imports': 'off',
46
+ '@typescript-eslint/strict-boolean-expressions': 'off',
47
+ '@typescript-eslint/explicit-function-return-type': 'off',
48
+ '@typescript-eslint/explicit-member-accessibility': 'off',
49
+ '@typescript-eslint/explicit-module-boundary-types': 'off',
50
+ '@typescript-eslint/array-type': 'off',
51
+ '@typescript-eslint/no-non-null-assertion': 'off',
52
+ '@typescript-eslint/no-empty-function': 'off',
53
+ '@typescript-eslint/consistent-type-assertions': 'off',
54
+ '@typescript-eslint/no-misused-promises': 'off',
55
+ };
56
+ /** The LoopBack 4 rule set, on top of the recommended presets. */
57
+ const STRICT_RULES = {
58
+ 'prefer-const': 'error',
59
+ 'no-var': 'error',
60
+ curly: ['error', 'all'],
61
+ 'no-new-wrappers': 'error',
62
+ 'no-throw-literal': 'error',
63
+ 'no-unused-expressions': 'error',
64
+ eqeqeq: ['error', 'smart'],
65
+ 'no-void': 'error',
66
+ 'no-useless-escape': 'warn',
67
+ 'no-caller': 'error',
68
+ 'n/prefer-node-protocol': ['error'],
69
+ '@typescript-eslint/adjacent-overload-signatures': 'error',
70
+ '@typescript-eslint/prefer-for-of': 'error',
71
+ '@typescript-eslint/unified-signatures': 'error',
72
+ '@typescript-eslint/no-invalid-this': ['error'],
73
+ '@typescript-eslint/no-use-before-define': 'error',
74
+ '@typescript-eslint/no-shadow': 'error',
75
+ '@typescript-eslint/ban-ts-comment': 'error',
76
+ '@typescript-eslint/no-namespace': 'error',
77
+ '@typescript-eslint/await-thenable': 'error',
78
+ '@typescript-eslint/no-floating-promises': 'error',
79
+ '@typescript-eslint/prefer-optional-chain': 'error',
80
+ '@typescript-eslint/prefer-nullish-coalescing': [
81
+ 'error',
82
+ { allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing: true },
83
+ ],
84
+ '@typescript-eslint/return-await': 'error',
85
+ };
86
+ /**
87
+ * The full ESLint preset, owned here: the LoopBack 4 rule set on the ESLint, typescript-eslint and
88
+ * Prettier recommended presets, type-aware through the project service. A project on oxlint uses
89
+ * `oxlintConfigs` + `namingConventionConfigs` instead.
90
+ */
91
+ exports.eslintConfigs = (0, config_1.defineConfig)([
92
+ js_1.default.configs.recommended,
93
+ typescript_eslint_1.default.configs.recommended,
94
+ // Last of the presets, so it turns off every stylistic rule that would fight the formatter.
95
+ recommended_1.default,
96
+ {
97
+ files: SOURCE_FILES,
98
+ languageOptions: {
99
+ parserOptions: {
100
+ // Finds each file's tsconfig; the default project covers root-level scripts and configs.
101
+ projectService: { allowDefaultProject: ['*.js', '*.cjs', '*.mjs', '.*.js'] },
102
+ },
103
+ },
104
+ plugins: { n: eslint_plugin_n_1.default, unicorn: eslint_plugin_unicorn_1.default },
105
+ rules: {
106
+ ...OFF_RULES,
107
+ ...STRICT_RULES,
108
+ '@typescript-eslint/no-unused-vars': rules_1.NoUnusedVarsRule.build(),
109
+ [rules_1.NoRestrictedImportsRule.NAME]: rules_1.NoRestrictedImportsRule.build(),
110
+ [rules_1.SwitchCaseBracesRule.NAME]: rules_1.SwitchCaseBracesRule.build(),
111
+ [rules_1.NamingConventionRule.NAME]: rules_1.NamingConventionRule.build(),
112
+ },
113
+ },
114
+ {
115
+ ignores: [
116
+ '**/node_modules/',
117
+ '**/*.d.ts',
118
+ '**/build/',
119
+ '**/dist/',
120
+ '**/release/',
121
+ '**/babel.config.*',
122
+ '**/.babelrc.*',
123
+ '**/eslint.config.*',
124
+ '**/.eslintrc.*',
125
+ '**/.prettierrc.*',
126
+ ],
127
+ },
128
+ ]);
129
+ /**
130
+ * The one rule of `eslintConfigs` that oxlint cannot run yet, as a standalone ESLint preset to run
131
+ * next to `oxlintConfigs`. It needs no type information, so ESLint stays fast.
132
+ *
133
+ * ```js
134
+ * // .configs/eslint.config.mjs
135
+ * import { namingConventionConfigs } from '@venizia/dev-configs/linters';
136
+ *
137
+ * export default namingConventionConfigs;
138
+ * ```
139
+ */
140
+ exports.namingConventionConfigs = [
141
+ // Global: ESLint does not read .gitignore, and still walks plain .js files no config claims.
142
+ { ignores: ['**/dist/**', '**/build/**', '**/coverage/**', '**/*.d.ts', '**/*.{js,cjs,mjs}'] },
143
+ {
144
+ files: ['**/*.{ts,tsx,mts,cts}'],
145
+ languageOptions: { parser: typescript_eslint_1.default.parser },
146
+ plugins: { '@typescript-eslint': typescript_eslint_1.default.plugin },
147
+ // oxlint owns every other rule, so the disable comments for them are not ESLint's to judge.
148
+ linterOptions: { reportUnusedDisableDirectives: 'off' },
149
+ rules: { [rules_1.NamingConventionRule.NAME]: rules_1.NamingConventionRule.build() },
150
+ },
151
+ ];
152
+ //# sourceMappingURL=eslint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eslint.js","sourceRoot":"","sources":["../../src/linters/eslint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export * from './browser';
2
+ export * from './eslint';
3
+ export * from './oxlint';
4
+ export * from './react';
5
+ export * from './rules';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/linters/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./browser"), exports);
18
+ __exportStar(require("./eslint"), exports);
19
+ __exportStar(require("./oxlint"), exports);
20
+ __exportStar(require("./react"), exports);
21
+ __exportStar(require("./rules"), exports);
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/linters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,2CAAyB;AACzB,2CAAyB;AACzB,0CAAwB;AACxB,0CAAwB"}
@@ -0,0 +1,19 @@
1
+ import type { OxlintConfig } from 'oxlint';
2
+ /**
3
+ * The oxlint port of `eslintConfigs`, generated with `@oxlint/migrate` and kept rule for rule.
4
+ * Type-aware rules (`no-floating-promises`, `return-await`, ...) need `oxlint-tsgolint` installed.
5
+ *
6
+ * Not ported: `@typescript-eslint/naming-convention` (oxlint has no equivalent yet - keep it in
7
+ * ESLint), `@typescript-eslint/prefer-optional-chain` (oxlint nursery), `no-invalid-this` (covered
8
+ * by `noImplicitThis` in `tsconfig.base.json`). `n/prefer-node-protocol` maps to the unicorn rule.
9
+ *
10
+ * ```ts
11
+ * // .configs/oxlint.config.mts
12
+ * import { defineConfig } from 'oxlint';
13
+ * import { oxlintConfigs } from '@venizia/dev-configs/linters';
14
+ *
15
+ * export default defineConfig(oxlintConfigs);
16
+ * ```
17
+ */
18
+ export declare const oxlintConfigs: OxlintConfig;
19
+ //# sourceMappingURL=oxlint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oxlint.d.ts","sourceRoot":"","sources":["../../src/linters/oxlint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAa3C;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,aAAa,EAAE,YAgJ3B,CAAC"}
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.oxlintConfigs = void 0;
4
+ const rules_1 = require("./rules");
5
+ /** File globs the rules are scoped to. */
6
+ const TS_FILES = ['**/*.ts', '**/*.tsx', '**/*.mts', '**/*.cts'];
7
+ const JS_TS_FILES = ['**/*.js', '**/*.cjs', '**/*.mjs', '**/*.jsx', ...TS_FILES];
8
+ /**
9
+ * The oxlint port of `eslintConfigs`, generated with `@oxlint/migrate` and kept rule for rule.
10
+ * Type-aware rules (`no-floating-promises`, `return-await`, ...) need `oxlint-tsgolint` installed.
11
+ *
12
+ * Not ported: `@typescript-eslint/naming-convention` (oxlint has no equivalent yet - keep it in
13
+ * ESLint), `@typescript-eslint/prefer-optional-chain` (oxlint nursery), `no-invalid-this` (covered
14
+ * by `noImplicitThis` in `tsconfig.base.json`). `n/prefer-node-protocol` maps to the unicorn rule.
15
+ *
16
+ * ```ts
17
+ * // .configs/oxlint.config.mts
18
+ * import { defineConfig } from 'oxlint';
19
+ * import { oxlintConfigs } from '@venizia/dev-configs/linters';
20
+ *
21
+ * export default defineConfig(oxlintConfigs);
22
+ * ```
23
+ */
24
+ exports.oxlintConfigs = {
25
+ plugins: ['typescript', 'unicorn'],
26
+ categories: { correctness: 'off' },
27
+ options: { typeAware: true },
28
+ env: { builtin: true },
29
+ ignorePatterns: ['**/node_modules/', '**/*.d.ts', '**/build/', '**/dist/', '**/release/'],
30
+ rules: {
31
+ // eslint:recommended
32
+ 'constructor-super': 'error',
33
+ 'for-direction': 'error',
34
+ 'getter-return': 'error',
35
+ 'no-async-promise-executor': 'error',
36
+ 'no-case-declarations': 'error',
37
+ 'no-class-assign': 'error',
38
+ 'no-compare-neg-zero': 'error',
39
+ 'no-cond-assign': 'error',
40
+ 'no-const-assign': 'error',
41
+ 'no-constant-binary-expression': 'error',
42
+ 'no-constant-condition': 'error',
43
+ 'no-control-regex': 'error',
44
+ 'no-debugger': 'error',
45
+ 'no-delete-var': 'error',
46
+ 'no-dupe-else-if': 'error',
47
+ 'no-dupe-keys': 'error',
48
+ 'no-duplicate-case': 'error',
49
+ 'no-empty': 'error',
50
+ 'no-empty-character-class': 'error',
51
+ 'no-empty-pattern': 'error',
52
+ 'no-empty-static-block': 'error',
53
+ 'no-ex-assign': 'error',
54
+ 'no-extra-boolean-cast': 'error',
55
+ 'no-fallthrough': 'error',
56
+ 'no-func-assign': 'error',
57
+ 'no-global-assign': 'error',
58
+ 'no-import-assign': 'error',
59
+ 'no-invalid-regexp': 'error',
60
+ 'no-irregular-whitespace': 'error',
61
+ 'no-loss-of-precision': 'error',
62
+ 'no-misleading-character-class': 'error',
63
+ 'no-new-native-nonconstructor': 'error',
64
+ 'no-nonoctal-decimal-escape': 'error',
65
+ 'no-obj-calls': 'error',
66
+ 'no-prototype-builtins': 'error',
67
+ 'no-regex-spaces': 'error',
68
+ 'no-self-assign': 'error',
69
+ 'no-setter-return': 'error',
70
+ 'no-shadow-restricted-names': 'error',
71
+ 'no-sparse-arrays': 'error',
72
+ 'no-this-before-super': 'error',
73
+ 'no-unassigned-vars': 'error',
74
+ 'no-unreachable': 'error',
75
+ 'no-unsafe-finally': 'error',
76
+ 'no-unsafe-negation': 'error',
77
+ 'no-unsafe-optional-chaining': 'error',
78
+ 'no-unused-labels': 'error',
79
+ 'no-unused-private-class-members': 'error',
80
+ 'no-useless-backreference': 'error',
81
+ 'no-useless-catch': 'error',
82
+ 'no-with': 'error',
83
+ 'preserve-caught-error': 'error',
84
+ 'require-yield': 'error',
85
+ 'use-isnan': 'error',
86
+ 'valid-typeof': 'error',
87
+ 'no-array-constructor': 'error',
88
+ // Strict rules on top
89
+ [rules_1.NoUnusedVarsRule.NAME]: rules_1.NoUnusedVarsRule.build(),
90
+ 'no-useless-escape': 'warn',
91
+ 'no-unused-expressions': 'error',
92
+ 'no-new-wrappers': 'error',
93
+ 'no-throw-literal': 'error',
94
+ [rules_1.EqeqeqRule.NAME]: rules_1.EqeqeqRule.build(),
95
+ 'no-void': 'error',
96
+ 'no-caller': 'error',
97
+ 'no-shadow': 'error',
98
+ 'no-use-before-define': 'error',
99
+ [rules_1.SwitchCaseBracesRule.NAME]: rules_1.SwitchCaseBracesRule.build(),
100
+ 'unicorn/prefer-node-protocol': 'error',
101
+ // typescript-eslint
102
+ 'typescript/ban-ts-comment': 'error',
103
+ 'typescript/no-duplicate-enum-values': 'error',
104
+ 'typescript/no-empty-object-type': 'error',
105
+ 'typescript/no-extra-non-null-assertion': 'error',
106
+ 'typescript/no-misused-new': 'error',
107
+ 'typescript/no-namespace': 'error',
108
+ 'typescript/no-non-null-asserted-optional-chain': 'error',
109
+ 'typescript/no-this-alias': 'error',
110
+ 'typescript/no-unnecessary-type-constraint': 'error',
111
+ 'typescript/no-unsafe-declaration-merging': 'error',
112
+ 'typescript/no-unsafe-function-type': 'error',
113
+ 'typescript/no-wrapper-object-types': 'error',
114
+ 'typescript/prefer-as-const': 'error',
115
+ 'typescript/prefer-namespace-keyword': 'error',
116
+ 'typescript/triple-slash-reference': 'error',
117
+ 'typescript/adjacent-overload-signatures': 'error',
118
+ 'typescript/prefer-for-of': 'error',
119
+ 'typescript/unified-signatures': 'error',
120
+ // typescript-eslint, type-aware
121
+ 'typescript/await-thenable': 'error',
122
+ 'typescript/no-floating-promises': 'error',
123
+ [rules_1.PreferNullishCoalescingRule.NAME]: rules_1.PreferNullishCoalescingRule.build(),
124
+ 'typescript/return-await': 'error',
125
+ },
126
+ overrides: [
127
+ {
128
+ // TypeScript itself reports these.
129
+ files: TS_FILES,
130
+ rules: {
131
+ 'constructor-super': 'off',
132
+ 'getter-return': 'off',
133
+ 'no-class-assign': 'off',
134
+ 'no-const-assign': 'off',
135
+ 'no-dupe-keys': 'off',
136
+ 'no-func-assign': 'off',
137
+ 'no-import-assign': 'off',
138
+ 'no-new-native-nonconstructor': 'off',
139
+ 'no-obj-calls': 'off',
140
+ 'no-setter-return': 'off',
141
+ 'no-this-before-super': 'off',
142
+ 'no-unreachable': 'off',
143
+ 'no-unsafe-negation': 'off',
144
+ 'no-with': 'off',
145
+ 'no-var': 'error',
146
+ 'prefer-const': 'error',
147
+ 'prefer-rest-params': 'error',
148
+ 'prefer-spread': 'error',
149
+ },
150
+ },
151
+ {
152
+ files: JS_TS_FILES,
153
+ rules: {
154
+ 'no-constant-condition': 'off',
155
+ 'prefer-const': 'error',
156
+ 'no-var': 'error',
157
+ curly: ['error', 'all'],
158
+ [rules_1.NoRestrictedImportsRule.NAME]: rules_1.NoRestrictedImportsRule.build(),
159
+ 'typescript/no-unsafe-function-type': 'off',
160
+ 'typescript/no-this-alias': 'off',
161
+ 'typescript/no-empty-object-type': 'off',
162
+ },
163
+ },
164
+ ],
165
+ };
166
+ //# sourceMappingURL=oxlint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oxlint.js","sourceRoot":"","sources":["../../src/linters/oxlint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import type { ESLint, Linter } from 'eslint';
2
+ import type { OxlintConfig } from 'oxlint';
3
+ /** Without `configs`: each plugin types its presets its own way, and only the rules are used here. */
4
+ type TRulesPlugin = Omit<ESLint.Plugin, 'configs'>;
5
+ export interface IReactEslintPlugins {
6
+ react: TRulesPlugin;
7
+ reactHooks: TRulesPlugin;
8
+ jsxA11y: TRulesPlugin;
9
+ }
10
+ /**
11
+ * The base preset plus what a React frontend needs on top: the React, hooks and accessibility rules.
12
+ * Frontend code is held to the backend's standard - no floating promise, no `void`, no use before
13
+ * declaration - so nothing in the base is relaxed. The plugins come in as options, so a backend that
14
+ * never calls this installs none of them.
15
+ *
16
+ * ```js
17
+ * import react from 'eslint-plugin-react';
18
+ * import reactHooks from 'eslint-plugin-react-hooks';
19
+ * import jsxA11y from 'eslint-plugin-jsx-a11y';
20
+ *
21
+ * export default ReactEslintConfigs.create({ plugins: { react, reactHooks, jsxA11y } });
22
+ * ```
23
+ *
24
+ * `reactVersion` defaults to `detect`. Under ESLint 10, eslint-plugin-react 7 cannot detect it and
25
+ * aborts, so pass the version there (`reactVersion: '19.2'`).
26
+ */
27
+ export declare class ReactEslintConfigs {
28
+ static create(opts: {
29
+ plugins: IReactEslintPlugins;
30
+ reactVersion?: string;
31
+ }): Linter.Config[];
32
+ }
33
+ /**
34
+ * The oxlint counterpart of `ReactEslintConfigs`: `BrowserOxlintConfigs` (the base rules plus the
35
+ * secure-context ban) plus the React, hooks and accessibility rules and `consistent-type-imports`.
36
+ * oxlint runs these plugins natively, so nothing is passed in. `react/no-deprecated` has no oxlint
37
+ * port and is left out.
38
+ *
39
+ * Nothing in the base is relaxed - frontend code meets the backend's standard - and
40
+ * `exhaustive-deps` is an error.
41
+ *
42
+ * ```ts
43
+ * // .configs/oxlint.config.mts
44
+ * import { defineConfig } from 'oxlint';
45
+ * import { ReactOxlintConfigs } from '@venizia/dev-configs/linters';
46
+ *
47
+ * export default defineConfig(ReactOxlintConfigs.create());
48
+ * ```
49
+ */
50
+ export declare class ReactOxlintConfigs {
51
+ static create(): OxlintConfig;
52
+ }
53
+ /**
54
+ * `namingConventionConfigs` for a React project: the base rule plus PascalCase functions in .jsx and
55
+ * .tsx files, where a component is declared as `function App()`.
56
+ */
57
+ export declare const reactNamingConventionConfigs: Linter.Config[];
58
+ export {};
59
+ //# sourceMappingURL=react.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../src/linters/react.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAM3C,sGAAsG;AACtG,KAAK,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAEnD,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,YAAY,CAAC;IACpB,UAAU,EAAE,YAAY,CAAC;IACzB,OAAO,EAAE,YAAY,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,kBAAkB;IAC7B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,mBAAmB,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE;CA8D9F;AAQD;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,kBAAkB;IAC7B,MAAM,CAAC,MAAM,IAAI,YAAY;CAiD9B;AAED;;;GAGG;AACH,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAYvD,CAAC"}