@2digits/oxlint-config 0.6.17 → 0.8.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/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{t as e}from"./base-DDWqp-yG.mjs";import{t}from"./typescript-C5De5VIw.mjs";import{defineConfig as n}from"@oxlint-types/define-config";import{defu as r}from"defu";const i=n(r(e,t));function a(...e){let t=i;for(let n of e)t=r(n,t);return n(t)}export{a as default,a as withTwoDigits,i as twoDigits};
1
+ import{t as e}from"./base-Ddkw7kpS.mjs";import{t}from"./typescript-CDMKHDlD.mjs";import{defu as n}from"defu";import{defineConfig as r}from"oxlint";const i=r(n(e,t));function a(...e){let t=i,r=[];for(let{overrides:i=[],...a}of e)t=n(a,t),r.push(...i);return{...t,overrides:[...t.overrides??[],...r]}}export{a as default,a as withTwoDigits,i as twoDigits};
@@ -0,0 +1 @@
1
+ import{defineConfig as e}from"oxlint";import{ignorePatterns as t}from"@2digits/constants";const n=[`**/*.d.ts`],r=[`**/*.{test,spec}.ts?(x)`],i=[`**/*.js`,`**/*.cjs`,`**/*.cts`],a=e({overrides:[{files:[...n],rules:{"no-duplicate-imports":`off`,"no-undef":`off`,"no-unused-vars":`off`,"import/unambiguous":`off`}},{files:[...r],globals:{afterAll:`readonly`,afterEach:`readonly`,beforeAll:`readonly`,beforeEach:`readonly`,bench:`readonly`,describe:`readonly`,expect:`readonly`,expectTypeOf:`readonly`,it:`readonly`,suite:`readonly`,test:`readonly`,vi:`readonly`},rules:{"no-unused-expressions":`off`}},{files:[...i],rules:{"typescript/no-import-type-side-effects":`off`}}]}),o=e({options:{typeAware:!0},plugins:[`react`,`react-perf`],jsPlugins:[{name:`react-compiler`,specifier:import.meta.resolve(`eslint-plugin-react-compiler`)},{name:`stylistic`,specifier:import.meta.resolve(`@stylistic/eslint-plugin`)}],rules:{"react/button-has-type":`error`,"react/exhaustive-deps":`error`,"react/function-component-definition":[`error`,{namedComponents:`function-declaration`}],"react/iframe-missing-sandbox":`error`,"react/jsx-key":`error`,"react/jsx-no-comment-textnodes":`warn`,"react/jsx-no-constructed-context-values":`error`,"react/jsx-no-script-url":`warn`,"react/jsx-no-target-blank":`error`,"react/jsx-no-useless-fragment":`off`,"react/no-array-index-key":`warn`,"react/no-children-prop":`error`,"react/no-clone-element":`warn`,"react/no-danger":`warn`,"react/no-danger-with-children":`error`,"react/no-did-mount-set-state":`warn`,"react/no-direct-mutation-state":`error`,"react/no-find-dom-node":`error`,"react/no-namespace":`error`,"react/no-redundant-should-component-update":`error`,"react/no-render-return-value":`error`,"react/no-unsafe":`warn`,"react/no-will-update-set-state":`warn`,"react/rules-of-hooks":`error`,"react/self-closing-comp":`error`,"react/void-dom-elements-no-children":`error`,"react-perf/jsx-no-jsx-as-prop":`error`,"react-compiler/react-compiler":`error`,"stylistic/jsx-curly-newline":`off`,"stylistic/jsx-newline":[`error`,{prevent:!1}],"react/checked-requires-onchange-or-readonly":void 0,"react/display-name":`off`,"react/forbid-component-props":void 0,"react/forbid-dom-props":void 0,"react/forbid-elements":void 0,"react/forward-ref-uses-ref":`off`,"react/hook-use-state":`error`,"react/jsx-boolean-value":`off`,"react/jsx-curly-brace-presence":void 0,"react/jsx-filename-extension":`off`,"react/jsx-fragments":`off`,"react/jsx-handler-names":void 0,"react/jsx-max-depth":void 0,"react/jsx-no-duplicate-props":void 0,"react/jsx-no-literals":void 0,"react/jsx-no-undef":void 0,"react/jsx-pascal-case":`off`,"react/jsx-props-no-spread-multi":void 0,"react/jsx-props-no-spreading":void 0,"react/no-did-update-set-state":`off`,"react/no-is-mounted":void 0,"react/no-multi-comp":void 0,"react/no-object-type-as-default-prop":`off`,"react/no-react-children":void 0,"react/no-set-state":void 0,"react/no-string-refs":`off`,"react/no-this-in-sfc":void 0,"react/no-unescaped-entities":void 0,"react/no-unknown-property":`off`,"react/no-unstable-nested-components":`off`,"react/only-export-components":void 0,"react/prefer-es6-class":void 0,"react/prefer-function-component":void 0,"react/react-compiler":void 0,"react/react-in-jsx-scope":void 0,"react/require-render-return":void 0,"react/state-in-constructor":void 0,"react/style-prop-object":void 0,"react-perf/jsx-no-new-array-as-prop":void 0,"react-perf/jsx-no-new-function-as-prop":void 0,"react-perf/jsx-no-new-object-as-prop":void 0}}),s=e({plugins:[`typescript`],options:{typeAware:!0},rules:{"typescript/adjacent-overload-signatures":`error`,"typescript/array-type":[`error`,{default:`generic`,readonly:`generic`}],"typescript/await-thenable":`error`,"typescript/ban-ts-comment":[`error`,{"ts-ignore":`allow-with-description`}],"typescript/ban-tslint-comment":`error`,"typescript/ban-types":void 0,"typescript/class-literal-property-style":`error`,"typescript/consistent-generic-constructors":[`error`,`constructor`],"typescript/consistent-indexed-object-style":[`error`,`record`],"typescript/consistent-return":`off`,"typescript/consistent-type-assertions":[`error`,{assertionStyle:`as`}],"typescript/consistent-type-definitions":[`error`,`interface`],"typescript/consistent-type-exports":[`error`],"typescript/consistent-type-imports":[`error`,{fixStyle:`inline-type-imports`,prefer:`type-imports`,disallowTypeAnnotations:!1}],"typescript/dot-notation":[`error`,{allowKeywords:!0}],"typescript/explicit-function-return-type":void 0,"typescript/explicit-member-accessibility":void 0,"typescript/explicit-module-boundary-types":void 0,"typescript/method-signature-style":[`error`,`property`],"typescript/no-array-delete":`error`,"typescript/no-base-to-string":`error`,"typescript/no-confusing-non-null-assertion":`error`,"typescript/no-confusing-void-expression":`off`,"typescript/no-deprecated":`error`,"typescript/no-duplicate-enum-values":`error`,"typescript/no-duplicate-type-constituents":`error`,"typescript/no-dynamic-delete":`error`,"typescript/no-empty-interface":[`error`,{allowSingleExtends:!0}],"typescript/no-empty-object-type":[`error`,{allowInterfaces:`with-single-extends`,allowObjectTypes:`never`}],"typescript/no-explicit-any":[`error`],"typescript/no-extra-non-null-assertion":`error`,"typescript/no-extraneous-class":`error`,"typescript/no-floating-promises":`error`,"typescript/no-for-in-array":`error`,"typescript/no-implied-eval":`error`,"typescript/no-import-type-side-effects":[`error`],"typescript/no-inferrable-types":`error`,"typescript/no-invalid-void-type":`error`,"typescript/no-meaningless-void-operator":`error`,"typescript/no-misused-new":`error`,"typescript/no-misused-promises":`off`,"typescript/no-misused-spread":`error`,"typescript/no-mixed-enums":`error`,"typescript/no-namespace":`error`,"typescript/no-non-null-asserted-nullish-coalescing":`error`,"typescript/no-non-null-asserted-optional-chain":`error`,"typescript/no-non-null-assertion":`error`,"typescript/no-redundant-type-constituents":`error`,"typescript/no-require-imports":`error`,"typescript/no-restricted-types":void 0,"typescript/no-this-alias":`error`,"typescript/no-unnecessary-boolean-literal-compare":`error`,"typescript/no-unnecessary-condition":`error`,"typescript/no-unnecessary-parameter-property-assignment":`error`,"typescript/no-unnecessary-qualifier":`error`,"typescript/no-unnecessary-template-expression":`error`,"typescript/no-unnecessary-type-arguments":`error`,"typescript/no-unnecessary-type-assertion":`off`,"typescript/no-unnecessary-type-constraint":`error`,"typescript/no-unnecessary-type-conversion":`error`,"typescript/no-unnecessary-type-parameters":`error`,"typescript/no-unsafe-argument":`error`,"typescript/no-unsafe-assignment":`error`,"typescript/no-unsafe-call":`error`,"typescript/no-unsafe-declaration-merging":`error`,"typescript/no-unsafe-enum-comparison":`error`,"typescript/no-unsafe-function-type":`error`,"typescript/no-unsafe-member-access":`error`,"typescript/no-unsafe-return":`error`,"typescript/no-unsafe-type-assertion":`off`,"typescript/no-unsafe-unary-minus":`error`,"typescript/no-useless-default-assignment":`error`,"typescript/no-useless-empty-export":`error`,"typescript/no-var-requires":`error`,"typescript/no-wrapper-object-types":`error`,"typescript/non-nullable-type-assertion-style":`error`,"typescript/only-throw-error":`error`,"typescript/parameter-properties":[`error`,{prefer:`class-property`}],"typescript/prefer-as-const":`error`,"typescript/prefer-enum-initializers":`error`,"typescript/prefer-find":`error`,"typescript/prefer-for-of":`error`,"typescript/prefer-function-type":`error`,"typescript/prefer-includes":`error`,"typescript/prefer-literal-enum-member":`error`,"typescript/prefer-namespace-keyword":`error`,"typescript/prefer-nullish-coalescing":`error`,"typescript/prefer-optional-chain":`error`,"typescript/prefer-promise-reject-errors":`error`,"typescript/prefer-readonly":`error`,"typescript/prefer-readonly-parameter-types":`off`,"typescript/prefer-reduce-type-parameter":`error`,"typescript/prefer-regexp-exec":`error`,"typescript/prefer-return-this-type":`error`,"typescript/prefer-string-starts-ends-with":`error`,"typescript/prefer-ts-expect-error":void 0,"typescript/promise-function-async":void 0,"typescript/related-getter-setter-pairs":`error`,"typescript/require-array-sort-compare":`error`,"typescript/require-await":`error`,"typescript/restrict-plus-operands":[`error`,{allowAny:!1,allowBoolean:!1,allowNullish:!1,allowNumberAndString:!1,allowRegExp:!1}],"typescript/restrict-template-expressions":[`error`,{allowNumber:!0}],"typescript/return-await":[`error`,`error-handling-correctness-only`],"typescript/strict-boolean-expressions":void 0,"typescript/strict-void-return":`off`,"typescript/switch-exhaustiveness-check":`off`,"typescript/triple-slash-reference":`error`,"typescript/unbound-method":`off`,"typescript/unified-signatures":`error`,"typescript/use-unknown-in-catch-callback-variable":`error`}}),c=e({plugins:[`vitest`],settings:{vitest:{typecheck:!0}},rules:{"vitest/consistent-each-for":[`error`,{describe:`for`,suite:`for`,it:`for`,test:`for`}],"vitest/consistent-test-filename":[`error`,{pattern:String.raw`.*\.spec\.[tj]sx?$`,allTestPattern:String.raw`.*\.(test|spec)\.[tj]sx?$`}],"vitest/consistent-test-it":[`error`,{fn:`it`,withinDescribe:`it`}],"vitest/consistent-vitest-vi":[`error`,{fn:`vi`}],"vitest/expect-expect":[`error`,{additionalTestBlockFunctions:[`it`,`it.effect`,`it.scoped`],assertFunctionNames:[`expect`,`expectTypeOf`,`assert`,`assertType`,`assert*`,`*Equal`]}],"vitest/hoisted-apis-on-top":`error`,"vitest/max-expects":`error`,"vitest/max-nested-describe":`error`,"vitest/no-alias-methods":`error`,"vitest/no-commented-out-tests":`error`,"vitest/no-conditional-expect":`error`,"vitest/no-conditional-in-test":`error`,"vitest/no-conditional-tests":`error`,"vitest/no-disabled-tests":`error`,"vitest/no-duplicate-hooks":`error`,"vitest/no-focused-tests":`error`,"vitest/no-hooks":void 0,"vitest/no-identical-title":`error`,"vitest/no-import-node-test":`error`,"vitest/no-importing-vitest-globals":void 0,"vitest/no-interpolation-in-snapshots":`error`,"vitest/no-large-snapshots":void 0,"vitest/no-mocks-import":`error`,"vitest/no-restricted-matchers":void 0,"vitest/no-restricted-vi-methods":void 0,"vitest/no-standalone-expect":[`error`,{additionalTestBlockFunctions:[`it`,`it.effect`,`it.scoped`]}],"vitest/no-test-prefixes":`error`,"vitest/no-test-return-statement":`error`,"vitest/no-unneeded-async-expect-function":`error`,"vitest/prefer-called-exactly-once-with":`error`,"vitest/prefer-called-once":`error`,"vitest/prefer-called-times":void 0,"vitest/prefer-called-with":`error`,"vitest/prefer-comparison-matcher":`error`,"vitest/prefer-describe-function-title":`error`,"vitest/prefer-each":`error`,"vitest/prefer-equality-matcher":`error`,"vitest/prefer-expect-assertions":void 0,"vitest/prefer-expect-resolves":`error`,"vitest/prefer-expect-type-of":`error`,"vitest/prefer-hooks-in-order":`error`,"vitest/prefer-hooks-on-top":`error`,"vitest/prefer-import-in-mock":`error`,"vitest/prefer-importing-vitest-globals":void 0,"vitest/prefer-lowercase-title":`error`,"vitest/prefer-mock-promise-shorthand":`error`,"vitest/prefer-mock-return-shorthand":`error`,"vitest/prefer-snapshot-hint":[`error`,`always`],"vitest/prefer-spy-on":`error`,"vitest/prefer-strict-boolean-matchers":void 0,"vitest/prefer-strict-equal":`error`,"vitest/prefer-to-be":`error`,"vitest/prefer-to-be-falsy":`error`,"vitest/prefer-to-be-object":`error`,"vitest/prefer-to-be-truthy":`error`,"vitest/prefer-to-contain":`error`,"vitest/prefer-to-have-been-called-times":`error`,"vitest/prefer-to-have-length":`error`,"vitest/prefer-todo":`error`,"vitest/require-awaited-expect-poll":`error`,"vitest/require-hook":void 0,"vitest/require-local-test-context-for-concurrent-snapshots":`error`,"vitest/require-mock-type-parameters":`error`,"vitest/require-test-timeout":void 0,"vitest/require-to-throw-message":`error`,"vitest/require-top-level-describe":`error`,"vitest/valid-describe-callback":`error`,"vitest/valid-expect":`error`,"vitest/valid-expect-in-promise":`error`,"vitest/valid-title":[`error`,{ignoreTypeOfDescribeName:!0}],"vitest/warn-todo":`error`,"vitest/padding-around-after-all-blocks":void 0,"vitest/padding-around-test-blocks":void 0}}),l=e({options:{denyWarnings:!0,reportUnusedDisableDirectives:`deny`},categories:{nursery:`off`,pedantic:`off`,correctness:`off`,perf:`off`,style:`off`,restriction:`off`,suspicious:`off`},extends:[s,c,o,a],ignorePatterns:t});export{l as t};
@@ -1,24 +1,158 @@
1
1
  //#region src/typescript.d.ts
2
2
  declare const typescriptConfig: {
3
- readonly options: {
4
- readonly denyWarnings: true;
5
- readonly reportUnusedDisableDirectives: "deny";
3
+ options: {
4
+ denyWarnings: true;
5
+ reportUnusedDisableDirectives: "deny";
6
6
  };
7
- readonly categories: {
8
- readonly nursery: "off";
9
- readonly pedantic: "off";
10
- readonly correctness: "off";
11
- readonly perf: "off";
12
- readonly style: "off";
13
- readonly restriction: "off";
14
- readonly suspicious: "off";
7
+ categories: {
8
+ nursery: "off";
9
+ pedantic: "off";
10
+ correctness: "off";
11
+ perf: "off";
12
+ style: "off";
13
+ restriction: "off";
14
+ suspicious: "off";
15
15
  };
16
- readonly extends: [{
17
- readonly plugins: ["typescript"];
18
- readonly options: {
19
- readonly typeAware: true;
16
+ extends: ({
17
+ overrides: ({
18
+ files: "**/*.d.ts"[];
19
+ rules: {
20
+ 'no-duplicate-imports': "off";
21
+ 'no-undef': "off";
22
+ 'no-unused-vars': "off";
23
+ 'import/unambiguous': "off";
24
+ 'no-unused-expressions'?: undefined;
25
+ 'typescript/no-import-type-side-effects'?: undefined;
26
+ };
27
+ globals?: undefined;
28
+ } | {
29
+ files: "**/*.{test,spec}.ts?(x)"[];
30
+ globals: {
31
+ afterAll: "readonly";
32
+ afterEach: "readonly";
33
+ beforeAll: "readonly";
34
+ beforeEach: "readonly";
35
+ bench: "readonly";
36
+ describe: "readonly";
37
+ expect: "readonly";
38
+ expectTypeOf: "readonly";
39
+ it: "readonly";
40
+ suite: "readonly";
41
+ test: "readonly";
42
+ vi: "readonly";
43
+ };
44
+ rules: {
45
+ 'no-duplicate-imports'?: undefined;
46
+ 'no-undef'?: undefined;
47
+ 'no-unused-vars'?: undefined;
48
+ 'import/unambiguous'?: undefined;
49
+ 'no-unused-expressions': "off";
50
+ 'typescript/no-import-type-side-effects'?: undefined;
51
+ };
52
+ } | {
53
+ globals?: undefined;
54
+ files: ("**/*.cjs" | "**/*.cts" | "**/*.js")[];
55
+ rules: {
56
+ 'no-duplicate-imports'?: undefined;
57
+ 'no-undef'?: undefined;
58
+ 'no-unused-vars'?: undefined;
59
+ 'import/unambiguous'?: undefined;
60
+ 'no-unused-expressions'?: undefined;
61
+ 'typescript/no-import-type-side-effects': "off";
62
+ };
63
+ })[];
64
+ } | {
65
+ options: {
66
+ typeAware: true;
20
67
  };
21
- readonly rules: {
68
+ plugins: ("react" | "react-perf")[];
69
+ jsPlugins: {
70
+ name: string;
71
+ specifier: string;
72
+ }[];
73
+ rules: {
74
+ 'react/button-has-type': "error";
75
+ 'react/exhaustive-deps': "error";
76
+ 'react/function-component-definition': ["error", {
77
+ namedComponents: "function-declaration";
78
+ }];
79
+ 'react/iframe-missing-sandbox': "error";
80
+ 'react/jsx-key': "error";
81
+ 'react/jsx-no-comment-textnodes': "warn";
82
+ 'react/jsx-no-constructed-context-values': "error";
83
+ 'react/jsx-no-script-url': "warn";
84
+ 'react/jsx-no-target-blank': "error";
85
+ 'react/jsx-no-useless-fragment': "off";
86
+ 'react/no-array-index-key': "warn";
87
+ 'react/no-children-prop': "error";
88
+ 'react/no-clone-element': "warn";
89
+ 'react/no-danger': "warn";
90
+ 'react/no-danger-with-children': "error";
91
+ 'react/no-did-mount-set-state': "warn";
92
+ 'react/no-direct-mutation-state': "error";
93
+ 'react/no-find-dom-node': "error";
94
+ 'react/no-namespace': "error";
95
+ 'react/no-redundant-should-component-update': "error";
96
+ 'react/no-render-return-value': "error";
97
+ 'react/no-unsafe': "warn";
98
+ 'react/no-will-update-set-state': "warn";
99
+ 'react/rules-of-hooks': "error";
100
+ 'react/self-closing-comp': "error";
101
+ 'react/void-dom-elements-no-children': "error";
102
+ 'react-perf/jsx-no-jsx-as-prop': "error";
103
+ 'react-compiler/react-compiler': "error";
104
+ 'stylistic/jsx-curly-newline': "off";
105
+ 'stylistic/jsx-newline': ["error", {
106
+ prevent: false;
107
+ }];
108
+ 'react/checked-requires-onchange-or-readonly': undefined;
109
+ 'react/display-name': "off";
110
+ 'react/forbid-component-props': undefined;
111
+ 'react/forbid-dom-props': undefined;
112
+ 'react/forbid-elements': undefined;
113
+ 'react/forward-ref-uses-ref': "off";
114
+ 'react/hook-use-state': "error";
115
+ 'react/jsx-boolean-value': "off";
116
+ 'react/jsx-curly-brace-presence': undefined;
117
+ 'react/jsx-filename-extension': "off";
118
+ 'react/jsx-fragments': "off";
119
+ 'react/jsx-handler-names': undefined;
120
+ 'react/jsx-max-depth': undefined;
121
+ 'react/jsx-no-duplicate-props': undefined;
122
+ 'react/jsx-no-literals': undefined;
123
+ 'react/jsx-no-undef': undefined;
124
+ 'react/jsx-pascal-case': "off";
125
+ 'react/jsx-props-no-spread-multi': undefined;
126
+ 'react/jsx-props-no-spreading': undefined;
127
+ 'react/no-did-update-set-state': "off";
128
+ 'react/no-is-mounted': undefined;
129
+ 'react/no-multi-comp': undefined;
130
+ 'react/no-object-type-as-default-prop': "off";
131
+ 'react/no-react-children': undefined;
132
+ 'react/no-set-state': undefined;
133
+ 'react/no-string-refs': "off";
134
+ 'react/no-this-in-sfc': undefined;
135
+ 'react/no-unescaped-entities': undefined;
136
+ 'react/no-unknown-property': "off";
137
+ 'react/no-unstable-nested-components': "off";
138
+ 'react/only-export-components': undefined;
139
+ 'react/prefer-es6-class': undefined;
140
+ 'react/prefer-function-component': undefined;
141
+ 'react/react-compiler': undefined;
142
+ 'react/react-in-jsx-scope': undefined;
143
+ 'react/require-render-return': undefined;
144
+ 'react/state-in-constructor': undefined;
145
+ 'react/style-prop-object': undefined;
146
+ 'react-perf/jsx-no-new-array-as-prop': undefined;
147
+ 'react-perf/jsx-no-new-function-as-prop': undefined;
148
+ 'react-perf/jsx-no-new-object-as-prop': undefined;
149
+ };
150
+ } | {
151
+ plugins: "typescript"[];
152
+ options: {
153
+ typeAware: true;
154
+ };
155
+ rules: {
22
156
  'typescript/adjacent-overload-signatures': "error";
23
157
  'typescript/array-type': ["error", {
24
158
  default: "generic";
@@ -29,16 +163,16 @@ declare const typescriptConfig: {
29
163
  'ts-ignore': "allow-with-description";
30
164
  }];
31
165
  'typescript/ban-tslint-comment': "error";
166
+ 'typescript/ban-types': undefined;
32
167
  'typescript/class-literal-property-style': "error";
33
168
  'typescript/consistent-generic-constructors': ["error", "constructor"];
34
169
  'typescript/consistent-indexed-object-style': ["error", "record"];
170
+ 'typescript/consistent-return': "off";
35
171
  'typescript/consistent-type-assertions': ["error", {
36
172
  assertionStyle: "as";
37
173
  }];
38
174
  'typescript/consistent-type-definitions': ["error", "interface"];
39
- 'typescript/consistent-type-exports': ["error", {
40
- fixMixedExportsWithInlineTypeSpecifier: true;
41
- }];
175
+ 'typescript/consistent-type-exports': ["error"];
42
176
  'typescript/consistent-type-imports': ["error", {
43
177
  fixStyle: "inline-type-imports";
44
178
  prefer: "type-imports";
@@ -47,13 +181,14 @@ declare const typescriptConfig: {
47
181
  'typescript/dot-notation': ["error", {
48
182
  allowKeywords: true;
49
183
  }];
184
+ 'typescript/explicit-function-return-type': undefined;
185
+ 'typescript/explicit-member-accessibility': undefined;
186
+ 'typescript/explicit-module-boundary-types': undefined;
187
+ 'typescript/method-signature-style': ["error", "property"];
50
188
  'typescript/no-array-delete': "error";
51
189
  'typescript/no-base-to-string': "error";
52
190
  'typescript/no-confusing-non-null-assertion': "error";
53
- 'typescript/no-confusing-void-expression': ["error", {
54
- ignoreArrowShorthand: true;
55
- ignoreVoidOperator: true;
56
- }];
191
+ 'typescript/no-confusing-void-expression': "off";
57
192
  'typescript/no-deprecated': "error";
58
193
  'typescript/no-duplicate-enum-values': "error";
59
194
  'typescript/no-duplicate-type-constituents': "error";
@@ -65,45 +200,35 @@ declare const typescriptConfig: {
65
200
  allowInterfaces: "with-single-extends";
66
201
  allowObjectTypes: "never";
67
202
  }];
68
- 'typescript/no-explicit-any': ["error", {
69
- fixToUnknown: true;
70
- ignoreRestArgs: true;
71
- }];
203
+ 'typescript/no-explicit-any': ["error"];
72
204
  'typescript/no-extra-non-null-assertion': "error";
73
- 'typescript/no-extraneous-class': ["error", {
74
- allowStaticOnly: true;
75
- }];
205
+ 'typescript/no-extraneous-class': "error";
76
206
  'typescript/no-floating-promises': "error";
77
207
  'typescript/no-for-in-array': "error";
78
208
  'typescript/no-implied-eval': "error";
79
- 'typescript/no-import-type-side-effects': "error";
209
+ 'typescript/no-import-type-side-effects': ["error"];
80
210
  'typescript/no-inferrable-types': "error";
81
211
  'typescript/no-invalid-void-type': "error";
82
212
  'typescript/no-meaningless-void-operator': "error";
83
213
  'typescript/no-misused-new': "error";
84
- 'typescript/no-misused-promises': ["error", {
85
- checksVoidReturn: boolean;
86
- }];
214
+ 'typescript/no-misused-promises': "off";
87
215
  'typescript/no-misused-spread': "error";
88
216
  'typescript/no-mixed-enums': "error";
89
- 'typescript/no-namespace': ["error", {
90
- allowDefinitionFiles: true;
91
- }];
217
+ 'typescript/no-namespace': "error";
92
218
  'typescript/no-non-null-asserted-nullish-coalescing': "error";
93
219
  'typescript/no-non-null-asserted-optional-chain': "error";
94
220
  'typescript/no-non-null-assertion': "error";
95
221
  'typescript/no-redundant-type-constituents': "error";
96
222
  'typescript/no-require-imports': "error";
223
+ 'typescript/no-restricted-types': undefined;
97
224
  'typescript/no-this-alias': "error";
98
225
  'typescript/no-unnecessary-boolean-literal-compare': "error";
99
- 'typescript/no-unnecessary-condition': ["error", {
100
- allowConstantLoopConditions: string;
101
- }];
226
+ 'typescript/no-unnecessary-condition': "error";
102
227
  'typescript/no-unnecessary-parameter-property-assignment': "error";
103
228
  'typescript/no-unnecessary-qualifier': "error";
104
229
  'typescript/no-unnecessary-template-expression': "error";
105
230
  'typescript/no-unnecessary-type-arguments': "error";
106
- 'typescript/no-unnecessary-type-assertion': "error";
231
+ 'typescript/no-unnecessary-type-assertion': "off";
107
232
  'typescript/no-unnecessary-type-constraint': "error";
108
233
  'typescript/no-unnecessary-type-conversion': "error";
109
234
  'typescript/no-unnecessary-type-parameters': "error";
@@ -115,6 +240,7 @@ declare const typescriptConfig: {
115
240
  'typescript/no-unsafe-function-type': "error";
116
241
  'typescript/no-unsafe-member-access': "error";
117
242
  'typescript/no-unsafe-return': "error";
243
+ 'typescript/no-unsafe-type-assertion': "off";
118
244
  'typescript/no-unsafe-unary-minus': "error";
119
245
  'typescript/no-useless-default-assignment': "error";
120
246
  'typescript/no-useless-empty-export': "error";
@@ -137,45 +263,43 @@ declare const typescriptConfig: {
137
263
  'typescript/prefer-optional-chain': "error";
138
264
  'typescript/prefer-promise-reject-errors': "error";
139
265
  'typescript/prefer-readonly': "error";
266
+ 'typescript/prefer-readonly-parameter-types': "off";
140
267
  'typescript/prefer-reduce-type-parameter': "error";
141
268
  'typescript/prefer-regexp-exec': "error";
142
269
  'typescript/prefer-return-this-type': "error";
143
270
  'typescript/prefer-string-starts-ends-with': "error";
271
+ 'typescript/prefer-ts-expect-error': undefined;
272
+ 'typescript/promise-function-async': undefined;
144
273
  'typescript/related-getter-setter-pairs': "error";
145
274
  'typescript/require-array-sort-compare': "error";
146
275
  'typescript/require-await': "error";
147
- 'typescript/restrict-plus-operands': "error";
276
+ 'typescript/restrict-plus-operands': ["error", {
277
+ allowAny: false;
278
+ allowBoolean: false;
279
+ allowNullish: false;
280
+ allowNumberAndString: false;
281
+ allowRegExp: false;
282
+ }];
148
283
  'typescript/restrict-template-expressions': ["error", {
149
284
  allowNumber: true;
150
285
  }];
151
286
  'typescript/return-await': ["error", "error-handling-correctness-only"];
287
+ 'typescript/strict-boolean-expressions': undefined;
288
+ 'typescript/strict-void-return': "off";
289
+ 'typescript/switch-exhaustiveness-check': "off";
152
290
  'typescript/triple-slash-reference': "error";
291
+ 'typescript/unbound-method': "off";
153
292
  'typescript/unified-signatures': "error";
154
293
  'typescript/use-unknown-in-catch-callback-variable': "error";
155
- 'typescript/ban-types': undefined;
156
- 'typescript/consistent-return': undefined;
157
- 'typescript/explicit-function-return-type': undefined;
158
- 'typescript/explicit-member-accessibility': undefined;
159
- 'typescript/explicit-module-boundary-types': undefined;
160
- 'typescript/method-signature-style': undefined;
161
- 'typescript/no-restricted-types': undefined;
162
- 'typescript/no-unsafe-type-assertion': undefined;
163
- 'typescript/prefer-readonly-parameter-types': undefined;
164
- 'typescript/prefer-ts-expect-error': undefined;
165
- 'typescript/promise-function-async': undefined;
166
- 'typescript/strict-boolean-expressions': undefined;
167
- 'typescript/strict-void-return': undefined;
168
- 'typescript/switch-exhaustiveness-check': undefined;
169
- 'typescript/unbound-method': "off";
170
294
  };
171
- }, {
172
- readonly plugins: ["vitest"];
173
- readonly settings: {
174
- readonly vitest: {
175
- readonly typecheck: true;
295
+ } | {
296
+ plugins: "vitest"[];
297
+ settings: {
298
+ vitest: {
299
+ typecheck: true;
176
300
  };
177
301
  };
178
- readonly rules: {
302
+ rules: {
179
303
  'vitest/consistent-each-for': ["error", {
180
304
  describe: "for";
181
305
  suite: "for";
@@ -186,7 +310,10 @@ declare const typescriptConfig: {
186
310
  pattern: string;
187
311
  allTestPattern: string;
188
312
  }];
189
- 'vitest/consistent-test-it': "error";
313
+ 'vitest/consistent-test-it': ["error", {
314
+ fn: "it";
315
+ withinDescribe: "it";
316
+ }];
190
317
  'vitest/consistent-vitest-vi': ["error", {
191
318
  fn: "vi";
192
319
  }];
@@ -238,7 +365,7 @@ declare const typescriptConfig: {
238
365
  'vitest/prefer-lowercase-title': "error";
239
366
  'vitest/prefer-mock-promise-shorthand': "error";
240
367
  'vitest/prefer-mock-return-shorthand': "error";
241
- 'vitest/prefer-snapshot-hint': ["error", string];
368
+ 'vitest/prefer-snapshot-hint': ["error", "always"];
242
369
  'vitest/prefer-spy-on': "error";
243
370
  'vitest/prefer-strict-boolean-matchers': undefined;
244
371
  'vitest/prefer-strict-equal': "error";
@@ -260,136 +387,15 @@ declare const typescriptConfig: {
260
387
  'vitest/valid-describe-callback': "error";
261
388
  'vitest/valid-expect': "error";
262
389
  'vitest/valid-expect-in-promise': "error";
263
- 'vitest/valid-title': undefined;
390
+ 'vitest/valid-title': ["error", {
391
+ ignoreTypeOfDescribeName: boolean;
392
+ }];
264
393
  'vitest/warn-todo': "error";
265
394
  'vitest/padding-around-after-all-blocks': undefined;
266
395
  'vitest/padding-around-test-blocks': undefined;
267
396
  };
268
- }, {
269
- readonly options: {
270
- readonly typeAware: true;
271
- };
272
- readonly plugins: ["react", "react-perf"];
273
- readonly jsPlugins: [{
274
- readonly name: "react-compiler";
275
- readonly specifier: string;
276
- }, {
277
- readonly name: "stylistic";
278
- readonly specifier: string;
279
- }];
280
- readonly rules: {
281
- 'react/button-has-type': "error";
282
- 'react/exhaustive-deps': "error";
283
- 'react/function-component-definition': ["error", {
284
- namedComponents: string;
285
- }];
286
- 'react/iframe-missing-sandbox': "error";
287
- 'react/jsx-key': "error";
288
- 'react/jsx-no-comment-textnodes': "warn";
289
- 'react/jsx-no-constructed-context-values': "error";
290
- 'react/jsx-no-script-url': "warn";
291
- 'react/jsx-no-target-blank': "error";
292
- 'react/jsx-no-useless-fragment': "off";
293
- 'react/no-array-index-key': "warn";
294
- 'react/no-children-prop': "error";
295
- 'react/no-clone-element': "warn";
296
- 'react/no-danger': "warn";
297
- 'react/no-danger-with-children': "error";
298
- 'react/no-did-mount-set-state': "warn";
299
- 'react/no-direct-mutation-state': "error";
300
- 'react/no-find-dom-node': "error";
301
- 'react/no-namespace': "error";
302
- 'react/no-redundant-should-component-update': "error";
303
- 'react/no-render-return-value': "error";
304
- 'react/no-unsafe': "warn";
305
- 'react/no-will-update-set-state': "warn";
306
- 'react/rules-of-hooks': "error";
307
- 'react/self-closing-comp': "error";
308
- 'react/void-dom-elements-no-children': "error";
309
- 'react_perf/jsx-no-jsx-as-prop': "error";
310
- 'react-compiler/react-compiler': "error";
311
- 'stylistic/jsx-curly-newline': "off";
312
- 'stylistic/jsx-newline': ["error", {
313
- prevent: false;
314
- }];
315
- 'react/checked-requires-onchange-or-readonly': undefined;
316
- 'react/display-name': "off";
317
- 'react/forbid-component-props': undefined;
318
- 'react/forbid-dom-props': undefined;
319
- 'react/forbid-elements': undefined;
320
- 'react/forward-ref-uses-ref': "off";
321
- 'react/hook-use-state': "off";
322
- 'react/jsx-boolean-value': "off";
323
- 'react/jsx-curly-brace-presence': undefined;
324
- 'react/jsx-filename-extension': "off";
325
- 'react/jsx-fragments': "off";
326
- 'react/jsx-handler-names': undefined;
327
- 'react/jsx-max-depth': undefined;
328
- 'react/jsx-no-duplicate-props': undefined;
329
- 'react/jsx-no-literals': undefined;
330
- 'react/jsx-no-undef': undefined;
331
- 'react/jsx-pascal-case': "off";
332
- 'react/jsx-props-no-spread-multi': undefined;
333
- 'react/jsx-props-no-spreading': undefined;
334
- 'react/no-did-update-set-state': "off";
335
- 'react/no-is-mounted': undefined;
336
- 'react/no-multi-comp': undefined;
337
- 'react/no-object-type-as-default-prop': "off";
338
- 'react/no-react-children': undefined;
339
- 'react/no-set-state': undefined;
340
- 'react/no-string-refs': "off";
341
- 'react/no-this-in-sfc': undefined;
342
- 'react/no-unescaped-entities': undefined;
343
- 'react/no-unknown-property': "off";
344
- 'react/no-unstable-nested-components': "off";
345
- 'react/only-export-components': undefined;
346
- 'react/prefer-es6-class': undefined;
347
- 'react/prefer-function-component': undefined;
348
- 'react/react-compiler': undefined;
349
- 'react/react-in-jsx-scope': undefined;
350
- 'react/require-render-return': undefined;
351
- 'react/state-in-constructor': undefined;
352
- 'react/style-prop-object': undefined;
353
- 'react_perf/jsx-no-new-array-as-prop': undefined;
354
- 'react_perf/jsx-no-new-function-as-prop': undefined;
355
- 'react_perf/jsx-no-new-object-as-prop': undefined;
356
- };
357
- }, {
358
- readonly overrides: [{
359
- readonly files: ["**/*.d.ts"];
360
- readonly rules: {
361
- readonly 'eslint/no-duplicate-imports': "off";
362
- readonly 'eslint/no-undef': "off";
363
- readonly 'eslint/no-unused-vars': "off";
364
- readonly 'import/unambiguous': "off";
365
- };
366
- }, {
367
- readonly files: ["**/*.{test,spec}.ts?(x)"];
368
- readonly globals: {
369
- readonly afterAll: "readonly";
370
- readonly afterEach: "readonly";
371
- readonly beforeAll: "readonly";
372
- readonly beforeEach: "readonly";
373
- readonly bench: "readonly";
374
- readonly describe: "readonly";
375
- readonly expect: "readonly";
376
- readonly expectTypeOf: "readonly";
377
- readonly it: "readonly";
378
- readonly suite: "readonly";
379
- readonly test: "readonly";
380
- readonly vi: "readonly";
381
- };
382
- readonly rules: {
383
- readonly 'eslint/no-unused-expressions': "off";
384
- };
385
- }, {
386
- readonly files: ["**/*.js", "**/*.cjs", "**/*.cts"];
387
- readonly rules: {
388
- readonly 'typescript/no-import-type-side-effects': "off";
389
- };
390
- }];
391
- }];
392
- readonly ignorePatterns: string[];
397
+ })[];
398
+ ignorePatterns: string[];
393
399
  };
394
400
  //#endregion
395
401
  export { typescriptConfig };
@@ -1 +1 @@
1
- import{t as e}from"./typescript-C5De5VIw.mjs";export{e as typescriptConfig};
1
+ import{t as e}from"./typescript-CDMKHDlD.mjs";export{e as typescriptConfig};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@2digits/oxlint-config",
3
- "version": "0.6.17",
3
+ "version": "0.8.0",
4
4
  "description": "Minimal Oxlint config for 2digits projects.",
5
5
  "keywords": [
6
6
  "oxlint-config"
@@ -20,6 +20,7 @@
20
20
  "exports": {
21
21
  ".": "./dist/index.mjs",
22
22
  "./base": "./dist/base.mjs",
23
+ "./effect": "./dist/effect.mjs",
23
24
  "./typescript": "./dist/typescript.mjs",
24
25
  "./package.json": "./package.json"
25
26
  },
@@ -27,7 +28,6 @@
27
28
  "access": "public"
28
29
  },
29
30
  "dependencies": {
30
- "@oxlint-types/define-config": "0.0.13",
31
31
  "@stylistic/eslint-plugin": "5.10.0",
32
32
  "defu": "6.1.7",
33
33
  "eslint-plugin-react-compiler": "19.1.0-rc.2",
@@ -38,16 +38,17 @@
38
38
  "@arethetypeswrong/core": "0.18.5",
39
39
  "@types/node": "24.13.3",
40
40
  "@typescript/native-preview": "7.0.0-dev.20260707.2",
41
- "oxlint": "1.76.0",
41
+ "oxlint": "1.77.0",
42
42
  "oxlint-tsgolint": "7.0.2001",
43
- "publint": "0.3.22",
43
+ "publint": "0.3.23",
44
44
  "typescript": "6.0.3",
45
- "vite-plus": "0.2.6",
45
+ "vite-plus": "0.2.8",
46
46
  "zod": "4.4.3",
47
+ "@2digits/eslint-config": "5.6.1",
47
48
  "@2digits/tsconfig": "0.8.7"
48
49
  },
49
50
  "peerDependencies": {
50
- "oxlint": "1.76.0",
51
+ "oxlint": "1.77.0",
51
52
  "oxlint-tsgolint": "7.0.2001"
52
53
  },
53
54
  "public": true,