eslint-config-typed 3.14.0 → 4.0.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/README.md +90 -9
- package/dist/plugins/react-coding-style/rules/use-memo-hooks-style.mjs +2 -1
- package/dist/plugins/react-coding-style/rules/use-memo-hooks-style.mjs.map +1 -1
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-deep-strict-equal-over-deep-equal.d.mts +6 -0
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-deep-strict-equal-over-deep-equal.d.mts.map +1 -0
- package/dist/plugins/vitest-coding-style/rules/{prefer-assert-over-assert-ok.mjs → prefer-assert-deep-strict-equal-over-deep-equal.mjs} +8 -8
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-deep-strict-equal-over-deep-equal.mjs.map +1 -0
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-assert-negation.d.mts +6 -0
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-assert-negation.d.mts.map +1 -0
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-assert-negation.mjs +41 -0
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-assert-negation.mjs.map +1 -0
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-assert-not-ok.d.mts +6 -0
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-assert-not-ok.d.mts.map +1 -0
- package/dist/plugins/vitest-coding-style/rules/{prefer-assert-not-ok-over-assert-is-not-ok.mjs → prefer-assert-is-false-over-assert-not-ok.mjs} +8 -8
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-assert-not-ok.mjs.map +1 -0
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-expect-false.d.mts +6 -0
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-expect-false.d.mts.map +1 -0
- package/dist/plugins/vitest-coding-style/rules/{prefer-assert-not-ok-over-expect-false.mjs → prefer-assert-is-false-over-expect-false.mjs} +7 -7
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-expect-false.mjs.map +1 -0
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-assert-negated-is-false.d.mts +6 -0
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-assert-negated-is-false.d.mts.map +1 -0
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-assert-negated-is-false.mjs +41 -0
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-assert-negated-is-false.mjs.map +1 -0
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-assert.d.mts +6 -0
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-assert.d.mts.map +1 -0
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-assert.mjs +52 -0
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-assert.mjs.map +1 -0
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-expect-true.d.mts +6 -0
- package/dist/plugins/vitest-coding-style/rules/{prefer-assert-not-ok-over-expect-false.d.mts.map → prefer-assert-is-true-over-expect-true.d.mts.map} +1 -1
- package/dist/plugins/vitest-coding-style/rules/{prefer-assert-over-expect-true.mjs → prefer-assert-is-true-over-expect-true.mjs} +7 -7
- package/dist/plugins/vitest-coding-style/rules/{prefer-assert-not-ok-over-expect-false.mjs.map → prefer-assert-is-true-over-expect-true.mjs.map} +1 -1
- package/dist/plugins/vitest-coding-style/rules/rules.d.mts +7 -4
- package/dist/plugins/vitest-coding-style/rules/rules.d.mts.map +1 -1
- package/dist/plugins/vitest-coding-style/rules/rules.mjs +14 -8
- package/dist/plugins/vitest-coding-style/rules/rules.mjs.map +1 -1
- package/dist/rules/eslint-jest-rules.d.mts +1 -0
- package/dist/rules/eslint-jest-rules.d.mts.map +1 -1
- package/dist/rules/eslint-jest-rules.mjs +1 -0
- package/dist/rules/eslint-jest-rules.mjs.map +1 -1
- package/dist/rules/eslint-vitest-coding-style-rules.d.mts +7 -4
- package/dist/rules/eslint-vitest-coding-style-rules.d.mts.map +1 -1
- package/dist/rules/eslint-vitest-coding-style-rules.mjs +7 -4
- package/dist/rules/eslint-vitest-coding-style-rules.mjs.map +1 -1
- package/dist/rules/eslint-vitest-rules.d.mts +7 -0
- package/dist/rules/eslint-vitest-rules.d.mts.map +1 -1
- package/dist/rules/eslint-vitest-rules.mjs +10 -0
- package/dist/rules/eslint-vitest-rules.mjs.map +1 -1
- package/dist/types/rules/eslint-jest-rules.d.mts +104 -63
- package/dist/types/rules/eslint-jest-rules.d.mts.map +1 -1
- package/dist/types/rules/eslint-react-rules.d.mts +1 -1
- package/dist/types/rules/eslint-react-rules.d.mts.map +1 -1
- package/dist/types/rules/eslint-rules.d.mts +4 -4
- package/dist/types/rules/eslint-rules.d.mts.map +1 -1
- package/dist/types/rules/eslint-vitest-coding-style-rules.d.mts +57 -12
- package/dist/types/rules/eslint-vitest-coding-style-rules.d.mts.map +1 -1
- package/dist/types/rules/eslint-vitest-rules.d.mts +86 -1
- package/dist/types/rules/eslint-vitest-rules.d.mts.map +1 -1
- package/dist/types/rules/typescript-eslint-rules.d.mts +1 -1
- package/dist/types/rules/typescript-eslint-rules.d.mts.map +1 -1
- package/package.json +22 -17
- package/src/plugins/react-coding-style/rules/use-memo-hooks-style.mts +2 -1
- package/src/plugins/vitest-coding-style/rules/original-assert-api-type.test.mts +147 -0
- package/src/plugins/vitest-coding-style/rules/prefer-assert-coding-style-rules.test.mts +118 -40
- package/src/plugins/vitest-coding-style/rules/{prefer-assert-over-assert-ok.mts → prefer-assert-deep-strict-equal-over-deep-equal.mts} +8 -8
- package/src/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-assert-negation.mts +53 -0
- package/src/plugins/vitest-coding-style/rules/{prefer-assert-not-ok-over-assert-is-not-ok.mts → prefer-assert-is-false-over-assert-not-ok.mts} +9 -8
- package/src/plugins/vitest-coding-style/rules/{prefer-assert-not-ok-over-expect-false.mts → prefer-assert-is-false-over-expect-false.mts} +8 -7
- package/src/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-assert-negated-is-false.mts +53 -0
- package/src/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-assert.mts +67 -0
- package/src/plugins/vitest-coding-style/rules/{prefer-assert-over-expect-true.mts → prefer-assert-is-true-over-expect-true.mts} +8 -7
- package/src/plugins/vitest-coding-style/rules/rules.mts +22 -10
- package/src/plugins/vitest-coding-style/rules/vitest-coding-style.d.mts +1574 -0
- package/src/rules/eslint-jest-rules.mts +2 -0
- package/src/rules/eslint-vitest-coding-style-rules.mts +10 -4
- package/src/rules/eslint-vitest-rules.mts +11 -0
- package/src/types/rules/eslint-jest-rules.mts +109 -63
- package/src/types/rules/eslint-react-rules.mts +0 -1
- package/src/types/rules/eslint-rules.mts +0 -4
- package/src/types/rules/eslint-vitest-coding-style-rules.mts +60 -12
- package/src/types/rules/eslint-vitest-rules.mts +92 -1
- package/src/types/rules/typescript-eslint-rules.mts +0 -1
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-not-ok-over-assert-is-not-ok.d.mts +0 -6
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-not-ok-over-assert-is-not-ok.d.mts.map +0 -1
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-not-ok-over-assert-is-not-ok.mjs.map +0 -1
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-not-ok-over-expect-false.d.mts +0 -6
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-over-assert-ok.d.mts +0 -6
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-over-assert-ok.d.mts.map +0 -1
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-over-assert-ok.mjs.map +0 -1
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-over-expect-true.d.mts +0 -6
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-over-expect-true.d.mts.map +0 -1
- package/dist/plugins/vitest-coding-style/rules/prefer-assert-over-expect-true.mjs.map +0 -1
package/README.md
CHANGED
|
@@ -16,12 +16,12 @@ A comprehensive ESLint configuration package with strongly-typed rule definition
|
|
|
16
16
|
- [defineConfig helper](#defineconfig-helper)
|
|
17
17
|
- [defineKnownRules utility](#defineknownrules-utility)
|
|
18
18
|
- [withDefaultOption utility](#withdefaultoption-utility)
|
|
19
|
+
- [TypeScript Configuration Files](#typescript-configuration-files)
|
|
19
20
|
- [Configuration Examples](#configuration-examples)
|
|
20
21
|
- [TypeScript + React Project](#typescript--react-project)
|
|
21
22
|
- [Node.js TypeScript Project](#nodejs-typescript-project)
|
|
22
23
|
- [React + Testing Libraries](#react--testing-libraries)
|
|
23
24
|
- [VS Code Integration](#vs-code-integration)
|
|
24
|
-
- [TypeScript Configuration Files](#typescript-configuration-files)
|
|
25
25
|
- [Included plugins](#included-plugins)
|
|
26
26
|
- [API Reference](#api-reference)
|
|
27
27
|
- [Configuration Functions](#configuration-functions)
|
|
@@ -31,6 +31,10 @@ A comprehensive ESLint configuration package with strongly-typed rule definition
|
|
|
31
31
|
- [Rule Collections](#rule-collections)
|
|
32
32
|
- [Exported Pre-configured Rule Options](#exported-pre-configured-rule-options)
|
|
33
33
|
- [Custom Plugins](#custom-plugins)
|
|
34
|
+
- [Forked plugins](#forked-plugins)
|
|
35
|
+
- [ts-restrictions](#ts-restrictions)
|
|
36
|
+
- [vitest-coding-style](#vitest-coding-style)
|
|
37
|
+
- [react-coding-style](#react-coding-style)
|
|
34
38
|
- [Type Definitions](#type-definitions)
|
|
35
39
|
- [Core Types](#core-types)
|
|
36
40
|
- [Rule Types](#rule-types)
|
|
@@ -43,6 +47,7 @@ A comprehensive ESLint configuration package with strongly-typed rule definition
|
|
|
43
47
|
- [1. ESLint can't find tsconfig.json](#1-eslint-cant-find-tsconfigjson)
|
|
44
48
|
- [2. Import resolution errors](#2-import-resolution-errors)
|
|
45
49
|
- [3. Performance issues](#3-performance-issues)
|
|
50
|
+
- [4. How to Use import-x/no-unused-modules](#4-how-to-use-import-xno-unused-modules)
|
|
46
51
|
- [Known Limitations](#known-limitations)
|
|
47
52
|
- [Contributing](#contributing)
|
|
48
53
|
- [License](#license)
|
|
@@ -536,16 +541,21 @@ The shape of the rule option varies depending on the rule, so please check the c
|
|
|
536
541
|
|
|
537
542
|
### Custom Plugins
|
|
538
543
|
|
|
544
|
+
#### Forked plugins
|
|
545
|
+
|
|
539
546
|
- **`eslintPluginTotalFunctions`**
|
|
540
|
-
- `eslint-plugin-total-functions`
|
|
547
|
+
- Flat Config version of `eslint-plugin-total-functions`
|
|
541
548
|
- **`eslintPluginTreeShakable`**
|
|
542
|
-
- `eslint-plugin-tree-shakable`
|
|
543
|
-
- **`
|
|
544
|
-
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
+
- Flat Config version of `eslint-plugin-tree-shakable`
|
|
550
|
+
- **`eslintPluginStrictDependencies`**
|
|
551
|
+
- Flat Config version of `eslint-plugin-strict-dependencies`
|
|
552
|
+
|
|
553
|
+
#### ts-restrictions
|
|
554
|
+
|
|
555
|
+
**`eslintPluginTsRestrictions`** - Custom ESLint plugin with additional rules for TypeScript
|
|
556
|
+
|
|
557
|
+
- Currently, this plugin only provides the `ts-restrictions/no-restricted-syntax` rule (which duplicates ESLint's `no-restricted-syntax` rule).
|
|
558
|
+
- Can be used to set the error level to `error` or `warn` as needed.
|
|
549
559
|
|
|
550
560
|
Example:
|
|
551
561
|
|
|
@@ -579,6 +589,77 @@ export default [
|
|
|
579
589
|
] satisfies FlatConfig[];
|
|
580
590
|
```
|
|
581
591
|
|
|
592
|
+
#### vitest-coding-style
|
|
593
|
+
|
|
594
|
+
**`eslintPluginVitestCodingStyle`** - Opinionated rules that constrain how Vitest `assert`/`expect` APIs are used. Rules that rely on type information (for example `prefer-assert-is-true-over-expect-true` / `prefer-assert-is-false-over-expect-false`) assume the plugin types are loaded via tsconfig; add this plugin type definition to `compilerOptions.types` as shown below.
|
|
595
|
+
|
|
596
|
+
```jsonc
|
|
597
|
+
{
|
|
598
|
+
"compilerOptions": {
|
|
599
|
+
"types": [
|
|
600
|
+
"vitest/globals",
|
|
601
|
+
"vitest/importMeta",
|
|
602
|
+
"eslint-config-typed/vitest-coding-style", // add this line
|
|
603
|
+
],
|
|
604
|
+
},
|
|
605
|
+
}
|
|
606
|
+
```
|
|
607
|
+
|
|
608
|
+
This type definition provides overridden `Chai.Assert` type:
|
|
609
|
+
|
|
610
|
+
- Change the type definition of `isTrue`/`isFalse`
|
|
611
|
+
- Change the arg type from `unknown` to `boolean`
|
|
612
|
+
- Change the return type of `isTrue` from `asserts value is true` to `asserts value` so that it can be used as an assertion function like `assert.ok`.
|
|
613
|
+
- Removed optional `message` arg
|
|
614
|
+
- Before
|
|
615
|
+
- `isTrue: (value: unknown, message?: string) => asserts value is true`
|
|
616
|
+
- `isFalse: (value: unknown, message?: string) => asserts value is false`
|
|
617
|
+
- After
|
|
618
|
+
- `isTrue: (value: boolean) => asserts value;`
|
|
619
|
+
- `isFalse: (value: boolean) => asserts value is false`
|
|
620
|
+
- Removed the call signature (`assert(x)`)
|
|
621
|
+
- Removed `deepEqual`, `equal`, `notEqual`, `ok`, `notOk`, `isOk`, `isNotOk`,
|
|
622
|
+
- `deepEqual` : Removed in favor of `assert.deepStrictEqual`
|
|
623
|
+
- `equal` : Removed in favor of `assert.strictEqual`
|
|
624
|
+
- `notEqual` : Removed in favor of `assert.notStrictEqual`
|
|
625
|
+
- `ok` : Removed in favor of `assert.isTrue`
|
|
626
|
+
- `notOk` : Removed in favor of `assert.isFalse`
|
|
627
|
+
- `isOk` : Removed in favor of `assert.isTrue`
|
|
628
|
+
- `isNotOk` : Removed in favor of `assert.isFalse`
|
|
629
|
+
- Removed optional `message` arg from all `assert.*` methods
|
|
630
|
+
- Convert arg types to be readonly
|
|
631
|
+
- Replace `Object` with `object`
|
|
632
|
+
|
|
633
|
+
| Included rules | Description |
|
|
634
|
+
| :--------------------------------------------------- | :-------------------------------------------------------------------------------------------- |
|
|
635
|
+
| `no-expect-to-strict-equal` | Forbid `expect(x).toStrictEqual(y)`; prefer `assert.deepStrictEqual(x, y)` |
|
|
636
|
+
| `prefer-assert-deep-strict-equal-over-deep-equal` | Replace `assert.deepEqual(x)` with `assert.deepStrictEqual(x)` |
|
|
637
|
+
| `prefer-assert-is-true-over-assert` | Canonicalize `assert(x)` / `assert.isOk(x)` / `assert.ok(x)` to `assert.isTrue(x)` |
|
|
638
|
+
| `prefer-assert-is-false-over-assert-not-ok` | Canonicalize `assert.isNotOk(x)` / `assert.notOk(x)` to `assert.isFalse(x)` |
|
|
639
|
+
| `prefer-assert-is-false-over-negated-assert-is-true` | Rewrite `assert.isTrue(!x)` to `assert.isFalse(x)` |
|
|
640
|
+
| `prefer-assert-is-true-over-negated-assert-is-false` | Rewrite `assert.isFalse(!x)` to `assert.isTrue(x)` |
|
|
641
|
+
| `prefer-assert-is-true-over-expect-true` | Rewrite `expect(x).toBe(true)` to `assert.isTrue(x)` (only when `x` is boolean; type-aware) |
|
|
642
|
+
| `prefer-assert-is-false-over-expect-false` | Rewrite `expect(x).toBe(false)` to `assert.isFalse(x)` (only when `x` is boolean; type-aware) |
|
|
643
|
+
|
|
644
|
+
#### react-coding-style
|
|
645
|
+
|
|
646
|
+
**`eslintPluginReactCodingStyle`** - Custom ESLint plugin that codifies this repository's React memo component conventions (namespace imports, `React.memo<Props>`, arrow props naming, etc.).
|
|
647
|
+
|
|
648
|
+
- See [`src/plugins/react-coding-style/README.md`](src/plugins/react-coding-style/README.md) for the rationale and examples.
|
|
649
|
+
- Provides rules such as `react-coding-style/import-style`, `react-coding-style/component-var-type-annotation`, `react-coding-style/react-memo-type-parameter`, `react-coding-style/react-memo-props-argument-name`, `react-coding-style/props-type-annotation-style`, and `react-coding-style/react-hooks-definition-style`.
|
|
650
|
+
|
|
651
|
+
| Included rules | Description |
|
|
652
|
+
| :------------------------------- | :-------------------------------------------------------------------------------------------------------------------- |
|
|
653
|
+
| `component-name` | Enforce concise React.memo component variable names (default max length 42; optional pattern) |
|
|
654
|
+
| `component-var-type-annotation` | Forbid React.FC / React.FunctionComponent type annotations; prefer `React.memo<Props>((props) => ...)` |
|
|
655
|
+
| `import-style` | Enforce React import style (`import * as React` by default; configurable to named imports) |
|
|
656
|
+
| `props-type-annotation-style` | Forbid annotating props in the React.memo arrow function; use `React.memo<Props>((props) => ...)` |
|
|
657
|
+
| `react-memo-props-argument-name` | Require the React.memo arrow function to take a single identifier named `props` |
|
|
658
|
+
| `react-memo-type-parameter` | Require `React.memo<Props>` when props exist; forbid type parameter when there are no props |
|
|
659
|
+
| `use-memo-hook-style` | Forbid type assertions/annotations inside and around `React.useMemo`; annotate via type parameter or variable instead |
|
|
660
|
+
| `ban-use-imperative-handle-hook` | Forbid `React.useImperativeHandle`; move logic to the parent component |
|
|
661
|
+
| `display-name` | Require explicit `displayName` on React.memo components |
|
|
662
|
+
|
|
582
663
|
### Type Definitions
|
|
583
664
|
|
|
584
665
|
All rules and configurations come with complete TypeScript type definitions:
|
|
@@ -75,7 +75,8 @@ const checkNodeForTypeAnnotations = (context, node) => {
|
|
|
75
75
|
if (hasKey(node, 'argument')) {
|
|
76
76
|
const nodeWithArgument = node;
|
|
77
77
|
checkNodeForTypeAnnotations(context,
|
|
78
|
-
//
|
|
78
|
+
// FIXME: Enable @typescript-eslint/no-deprecated
|
|
79
|
+
// eslint-disable-next-line total-functions/no-unsafe-type-assertion, @typescript-eslint/no-deprecated
|
|
79
80
|
nodeWithArgument.argument);
|
|
80
81
|
}
|
|
81
82
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-memo-hooks-style.mjs","sources":["../../../../src/plugins/react-coding-style/rules/use-memo-hooks-style.mts"],"sourcesContent":[null],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"use-memo-hooks-style.mjs","sources":["../../../../src/plugins/react-coding-style/rules/use-memo-hooks-style.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/dist/plugins/vitest-coding-style/rules/prefer-assert-deep-strict-equal-over-deep-equal.d.mts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type TSESLint } from '@typescript-eslint/utils';
|
|
2
|
+
type MessageIds = 'preferAssertDeepStrictEqual';
|
|
3
|
+
type Options = readonly [];
|
|
4
|
+
export declare const preferAssertDeepStrictEqualOverDeepEqualRule: TSESLint.RuleModule<MessageIds, Options>;
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=prefer-assert-deep-strict-equal-over-deep-equal.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prefer-assert-deep-strict-equal-over-deep-equal.d.mts","sourceRoot":"","sources":["../../../../src/plugins/vitest-coding-style/rules/prefer-assert-deep-strict-equal-over-deep-equal.mts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzE,KAAK,UAAU,GAAG,6BAA6B,CAAC;AAEhD,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,eAAO,MAAM,4CAA4C,EAAE,QAAQ,CAAC,UAAU,CAC5E,UAAU,EACV,OAAO,CAiCR,CAAC"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { AST_NODE_TYPES } from '@typescript-eslint/utils';
|
|
2
2
|
|
|
3
|
-
const
|
|
3
|
+
const preferAssertDeepStrictEqualOverDeepEqualRule = {
|
|
4
4
|
meta: {
|
|
5
5
|
type: 'suggestion',
|
|
6
6
|
docs: {
|
|
7
|
-
description: 'Prefer assert(X) over assert.
|
|
7
|
+
description: 'Prefer assert.deepStrictEqual(X) over assert.deepEqual(X).',
|
|
8
8
|
},
|
|
9
9
|
fixable: 'code',
|
|
10
10
|
schema: [],
|
|
11
11
|
messages: {
|
|
12
|
-
|
|
12
|
+
preferAssertDeepStrictEqual: 'Use assert.deepStrictEqual(X) instead of assert.deepEqual(X).',
|
|
13
13
|
},
|
|
14
14
|
},
|
|
15
15
|
defaultOptions: [],
|
|
@@ -18,18 +18,18 @@ const preferAssertOverAssertOkRule = {
|
|
|
18
18
|
if (node.object.type === AST_NODE_TYPES.Identifier &&
|
|
19
19
|
node.object.name === 'assert' &&
|
|
20
20
|
node.property.type === AST_NODE_TYPES.Identifier &&
|
|
21
|
-
|
|
21
|
+
node.property.name === 'deepEqual' &&
|
|
22
22
|
node.parent.type === AST_NODE_TYPES.CallExpression &&
|
|
23
23
|
node.parent.callee === node) {
|
|
24
24
|
context.report({
|
|
25
25
|
node,
|
|
26
|
-
messageId: '
|
|
27
|
-
fix: (fixer) => fixer.replaceText(node, 'assert'),
|
|
26
|
+
messageId: 'preferAssertDeepStrictEqual',
|
|
27
|
+
fix: (fixer) => fixer.replaceText(node, 'assert.deepStrictEqual'),
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
31
|
}),
|
|
32
32
|
};
|
|
33
33
|
|
|
34
|
-
export {
|
|
35
|
-
//# sourceMappingURL=prefer-assert-over-
|
|
34
|
+
export { preferAssertDeepStrictEqualOverDeepEqualRule };
|
|
35
|
+
//# sourceMappingURL=prefer-assert-deep-strict-equal-over-deep-equal.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prefer-assert-deep-strict-equal-over-deep-equal.mjs","sources":["../../../../src/plugins/vitest-coding-style/rules/prefer-assert-deep-strict-equal-over-deep-equal.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAMO,MAAM,4CAA4C,GAGrD;AACF,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,IAAI,EAAE;AACJ,YAAA,WAAW,EAAE,4DAA4D;AAC1E,SAAA;AACD,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,MAAM,EAAE,EAAE;AACV,QAAA,QAAQ,EAAE;AACR,YAAA,2BAA2B,EACzB,+DAA+D;AAClE,SAAA;AACF,KAAA;AACD,IAAA,cAAc,EAAE,EAAE;AAClB,IAAA,MAAM,EAAE,CAAC,OAAO,MAAM;AACpB,QAAA,gBAAgB,EAAE,CAAC,IAAI,KAAI;YACzB,IACE,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;AAC9C,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ;AAC7B,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;AAChD,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,WAAW;AAClC,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,cAAc;AAClD,gBAAA,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,EAC3B;gBACA,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;AACJ,oBAAA,SAAS,EAAE,6BAA6B;AACxC,oBAAA,GAAG,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,wBAAwB,CAAC;AAClE,iBAAA,CAAC;YACJ;QACF,CAAC;KACF,CAAC;;;;;"}
|
package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-assert-negation.d.mts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type TSESLint } from '@typescript-eslint/utils';
|
|
2
|
+
type MessageIds = 'preferAssertIsFalseOverAssertNegation';
|
|
3
|
+
type Options = readonly [];
|
|
4
|
+
export declare const preferAssertIsFalseOverNegatedAssertIsTrueRule: TSESLint.RuleModule<MessageIds, Options>;
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=prefer-assert-is-false-over-assert-negation.d.mts.map
|
package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-assert-negation.d.mts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prefer-assert-is-false-over-assert-negation.d.mts","sourceRoot":"","sources":["../../../../src/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-assert-negation.mts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGzE,KAAK,UAAU,GAAG,uCAAuC,CAAC;AAE1D,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,eAAO,MAAM,8CAA8C,EAAE,QAAQ,CAAC,UAAU,CAC9E,UAAU,EACV,OAAO,CA2CR,CAAC"}
|
package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-assert-negation.mjs
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/utils';
|
|
2
|
+
import { Arr } from 'ts-data-forge';
|
|
3
|
+
|
|
4
|
+
const preferAssertIsFalseOverNegatedAssertIsTrueRule = {
|
|
5
|
+
meta: {
|
|
6
|
+
type: 'suggestion',
|
|
7
|
+
docs: {
|
|
8
|
+
description: 'Prefer assert.isFalse(X) over assert.isTrue(!X).',
|
|
9
|
+
},
|
|
10
|
+
fixable: 'code',
|
|
11
|
+
schema: [],
|
|
12
|
+
messages: {
|
|
13
|
+
preferAssertIsFalseOverAssertNegation: 'Use assert.isFalse(X) instead of assert.isTrue(!X).',
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
defaultOptions: [],
|
|
17
|
+
create: (context) => ({
|
|
18
|
+
CallExpression: (node) => {
|
|
19
|
+
if (node.callee.type === AST_NODE_TYPES.MemberExpression &&
|
|
20
|
+
node.callee.object.type === AST_NODE_TYPES.Identifier &&
|
|
21
|
+
node.callee.object.name === 'assert' &&
|
|
22
|
+
node.callee.property.type === AST_NODE_TYPES.Identifier &&
|
|
23
|
+
node.callee.property.name === 'isTrue' &&
|
|
24
|
+
Arr.isArrayOfLength(node.arguments, 1)) {
|
|
25
|
+
const [arg] = node.arguments;
|
|
26
|
+
if (arg.type === AST_NODE_TYPES.UnaryExpression &&
|
|
27
|
+
arg.operator === '!') {
|
|
28
|
+
const targetText = context.sourceCode.getText(arg.argument);
|
|
29
|
+
context.report({
|
|
30
|
+
node: arg,
|
|
31
|
+
messageId: 'preferAssertIsFalseOverAssertNegation',
|
|
32
|
+
fix: (fixer) => fixer.replaceText(node, `assert.isFalse(${targetText})`),
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
}),
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export { preferAssertIsFalseOverNegatedAssertIsTrueRule };
|
|
41
|
+
//# sourceMappingURL=prefer-assert-is-false-over-assert-negation.mjs.map
|
package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-assert-negation.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prefer-assert-is-false-over-assert-negation.mjs","sources":["../../../../src/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-assert-negation.mts"],"sourcesContent":[null],"names":[],"mappings":";;;AAOO,MAAM,8CAA8C,GAGvD;AACF,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,IAAI,EAAE;AACJ,YAAA,WAAW,EAAE,kDAAkD;AAChE,SAAA;AACD,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,MAAM,EAAE,EAAE;AACV,QAAA,QAAQ,EAAE;AACR,YAAA,qCAAqC,EACnC,qDAAqD;AACxD,SAAA;AACF,KAAA;AACD,IAAA,cAAc,EAAE,EAAE;AAClB,IAAA,MAAM,EAAE,CAAC,OAAO,MAAM;AACpB,QAAA,cAAc,EAAE,CAAC,IAAI,KAAI;YACvB,IACE,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,gBAAgB;gBACpD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;AACrD,gBAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ;gBACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;AACvD,gBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ;gBACtC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EACtC;AACA,gBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS;AAE5B,gBAAA,IACE,GAAG,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe;AAC3C,oBAAA,GAAG,CAAC,QAAQ,KAAK,GAAG,EACpB;AACA,oBAAA,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAE3D,OAAO,CAAC,MAAM,CAAC;AACb,wBAAA,IAAI,EAAE,GAAG;AACT,wBAAA,SAAS,EAAE,uCAAuC;AAClD,wBAAA,GAAG,EAAE,CAAC,KAAK,KACT,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA,eAAA,EAAkB,UAAU,GAAG,CAAC;AAC3D,qBAAA,CAAC;gBACJ;YACF;QACF,CAAC;KACF,CAAC;;;;;"}
|
package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-assert-not-ok.d.mts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type TSESLint } from '@typescript-eslint/utils';
|
|
2
|
+
type MessageIds = 'preferAssertIsFalseOverAssertNotOk';
|
|
3
|
+
type Options = readonly [];
|
|
4
|
+
export declare const preferAssertIsFalseOverAssertNotOkRule: TSESLint.RuleModule<MessageIds, Options>;
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=prefer-assert-is-false-over-assert-not-ok.d.mts.map
|
package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-assert-not-ok.d.mts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prefer-assert-is-false-over-assert-not-ok.d.mts","sourceRoot":"","sources":["../../../../src/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-assert-not-ok.mts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzE,KAAK,UAAU,GAAG,oCAAoC,CAAC;AAEvD,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,eAAO,MAAM,sCAAsC,EAAE,QAAQ,CAAC,UAAU,CACtE,UAAU,EACV,OAAO,CAkCR,CAAC"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { AST_NODE_TYPES } from '@typescript-eslint/utils';
|
|
2
2
|
|
|
3
|
-
const
|
|
3
|
+
const preferAssertIsFalseOverAssertNotOkRule = {
|
|
4
4
|
meta: {
|
|
5
5
|
type: 'suggestion',
|
|
6
6
|
docs: {
|
|
7
|
-
description: 'Prefer assert.
|
|
7
|
+
description: 'Prefer assert.isFalse(X) over assert.isNotOk(X), assert.notOk(X).',
|
|
8
8
|
},
|
|
9
9
|
fixable: 'code',
|
|
10
10
|
schema: [],
|
|
11
11
|
messages: {
|
|
12
|
-
|
|
12
|
+
preferAssertIsFalseOverAssertNotOk: 'Use assert.isFalse(X) instead of assert.isNotOk(X), assert.notOk(X).',
|
|
13
13
|
},
|
|
14
14
|
},
|
|
15
15
|
defaultOptions: [],
|
|
@@ -18,18 +18,18 @@ const preferAssertNotOkOverAssertIsNotOkRule = {
|
|
|
18
18
|
if (node.object.type === AST_NODE_TYPES.Identifier &&
|
|
19
19
|
node.object.name === 'assert' &&
|
|
20
20
|
node.property.type === AST_NODE_TYPES.Identifier &&
|
|
21
|
-
node.property.name === 'isNotOk' &&
|
|
21
|
+
(node.property.name === 'isNotOk' || node.property.name === 'notOk') &&
|
|
22
22
|
node.parent.type === AST_NODE_TYPES.CallExpression &&
|
|
23
23
|
node.parent.callee === node) {
|
|
24
24
|
context.report({
|
|
25
25
|
node,
|
|
26
|
-
messageId: '
|
|
27
|
-
fix: (fixer) => fixer.replaceText(node, 'assert.
|
|
26
|
+
messageId: 'preferAssertIsFalseOverAssertNotOk',
|
|
27
|
+
fix: (fixer) => fixer.replaceText(node, 'assert.isFalse'),
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
31
|
}),
|
|
32
32
|
};
|
|
33
33
|
|
|
34
|
-
export {
|
|
35
|
-
//# sourceMappingURL=prefer-assert-
|
|
34
|
+
export { preferAssertIsFalseOverAssertNotOkRule };
|
|
35
|
+
//# sourceMappingURL=prefer-assert-is-false-over-assert-not-ok.mjs.map
|
package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-assert-not-ok.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prefer-assert-is-false-over-assert-not-ok.mjs","sources":["../../../../src/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-assert-not-ok.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAMO,MAAM,sCAAsC,GAG/C;AACF,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,IAAI,EAAE;AACJ,YAAA,WAAW,EACT,mEAAmE;AACtE,SAAA;AACD,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,MAAM,EAAE,EAAE;AACV,QAAA,QAAQ,EAAE;AACR,YAAA,kCAAkC,EAChC,sEAAsE;AACzE,SAAA;AACF,KAAA;AACD,IAAA,cAAc,EAAE,EAAE;AAClB,IAAA,MAAM,EAAE,CAAC,OAAO,MAAM;AACpB,QAAA,gBAAgB,EAAE,CAAC,IAAI,KAAI;YACzB,IACE,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;AAC9C,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ;AAC7B,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;AAChD,iBAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,CAAC;AACpE,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,cAAc;AAClD,gBAAA,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,EAC3B;gBACA,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI;AACJ,oBAAA,SAAS,EAAE,oCAAoC;AAC/C,oBAAA,GAAG,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,gBAAgB,CAAC;AAC1D,iBAAA,CAAC;YACJ;QACF,CAAC;KACF,CAAC;;;;;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type TSESLint } from '@typescript-eslint/utils';
|
|
2
|
+
type MessageIds = 'preferAssertIsFalseOverExpectFalse';
|
|
3
|
+
type Options = readonly [];
|
|
4
|
+
export declare const preferAssertIsFalseOverExpectFalseRule: TSESLint.RuleModule<MessageIds, Options>;
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=prefer-assert-is-false-over-expect-false.d.mts.map
|
package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-expect-false.d.mts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prefer-assert-is-false-over-expect-false.d.mts","sourceRoot":"","sources":["../../../../src/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-expect-false.mts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,0BAA0B,CAAC;AAIlC,KAAK,UAAU,GAAG,oCAAoC,CAAC;AAEvD,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,eAAO,MAAM,sCAAsC,EAAE,QAAQ,CAAC,UAAU,CACtE,UAAU,EACV,OAAO,CA4DR,CAAC"}
|
|
@@ -2,16 +2,16 @@ import { ESLintUtils, AST_NODE_TYPES } from '@typescript-eslint/utils';
|
|
|
2
2
|
import { Arr } from 'ts-data-forge';
|
|
3
3
|
import * as ts from 'typescript';
|
|
4
4
|
|
|
5
|
-
const
|
|
5
|
+
const preferAssertIsFalseOverExpectFalseRule = {
|
|
6
6
|
meta: {
|
|
7
7
|
type: 'suggestion',
|
|
8
8
|
docs: {
|
|
9
|
-
description: 'Prefer assert.
|
|
9
|
+
description: 'Prefer assert.isFalse(X) over expect(X).toBe(false) (only if X is boolean)',
|
|
10
10
|
},
|
|
11
11
|
fixable: 'code',
|
|
12
12
|
schema: [],
|
|
13
13
|
messages: {
|
|
14
|
-
|
|
14
|
+
preferAssertIsFalseOverExpectFalse: 'Use assert.isFalse(X) instead of expect(X).toBe(false)',
|
|
15
15
|
},
|
|
16
16
|
},
|
|
17
17
|
defaultOptions: [],
|
|
@@ -41,8 +41,8 @@ const preferAssertNotOkOverExpectFalseRule = {
|
|
|
41
41
|
const argText = context.sourceCode.getText(arg);
|
|
42
42
|
context.report({
|
|
43
43
|
node,
|
|
44
|
-
messageId: '
|
|
45
|
-
fix: (fixer) => fixer.replaceText(node, `assert.
|
|
44
|
+
messageId: 'preferAssertIsFalseOverExpectFalse',
|
|
45
|
+
fix: (fixer) => fixer.replaceText(node, `assert.isFalse(${argText})`),
|
|
46
46
|
});
|
|
47
47
|
}
|
|
48
48
|
},
|
|
@@ -50,5 +50,5 @@ const preferAssertNotOkOverExpectFalseRule = {
|
|
|
50
50
|
},
|
|
51
51
|
};
|
|
52
52
|
|
|
53
|
-
export {
|
|
54
|
-
//# sourceMappingURL=prefer-assert-
|
|
53
|
+
export { preferAssertIsFalseOverExpectFalseRule };
|
|
54
|
+
//# sourceMappingURL=prefer-assert-is-false-over-expect-false.mjs.map
|
package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-expect-false.mjs.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prefer-assert-is-false-over-expect-false.mjs","sources":["../../../../src/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-expect-false.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAYO,MAAM,sCAAsC,GAG/C;AACF,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,IAAI,EAAE;AACJ,YAAA,WAAW,EACT,4EAA4E;AAC/E,SAAA;AACD,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,MAAM,EAAE,EAAE;AACV,QAAA,QAAQ,EAAE;AACR,YAAA,kCAAkC,EAChC,wDAAwD;AAC3D,SAAA;AACF,KAAA;AACD,IAAA,cAAc,EAAE,EAAE;AAClB,IAAA,MAAM,EAAE,CAAC,OAAO,KAAI;QAClB,MAAM,cAAc,GAAG,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC;QAE7D,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE;QAEvD,OAAO;AACL,YAAA,cAAc,EAAE,CAAC,IAAI,KAAI;gBACvB,IACE,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,gBAAgB;oBACpD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,cAAc;oBACzD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;oBAC5D,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ;oBAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;AACvD,oBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM;oBACpC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;oBACtC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,OAAO;oBACjD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,EACjC;AACA,oBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AAE3C,oBAAA,IAAI,GAAG,KAAK,SAAS,EAAE;wBACrB,MAAM,MAAM,GAAG,cAAc,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC;wBAE5D,MAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC;AAE9C,wBAAA,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,MAAM,CAAC;wBAE3D,IAAI,CAAC,SAAS,EAAE;4BACd;wBACF;oBACF;oBAEA,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC;oBAE/C,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI;AACJ,wBAAA,SAAS,EAAE,oCAAoC;AAC/C,wBAAA,GAAG,EAAE,CAAC,KAAK,KACT,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA,eAAA,EAAkB,OAAO,GAAG,CAAC;AACxD,qBAAA,CAAC;gBACJ;YACF,CAAC;SACF;IACH,CAAC;;;;;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type TSESLint } from '@typescript-eslint/utils';
|
|
2
|
+
type MessageIds = 'preferAssertIsTrueOverNegatedAssertIsFalse';
|
|
3
|
+
type Options = readonly [];
|
|
4
|
+
export declare const preferAssertIsTrueOverNegatedAssertIsFalseRule: TSESLint.RuleModule<MessageIds, Options>;
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=prefer-assert-is-true-over-assert-negated-is-false.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prefer-assert-is-true-over-assert-negated-is-false.d.mts","sourceRoot":"","sources":["../../../../src/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-assert-negated-is-false.mts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGzE,KAAK,UAAU,GAAG,4CAA4C,CAAC;AAE/D,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,eAAO,MAAM,8CAA8C,EAAE,QAAQ,CAAC,UAAU,CAC9E,UAAU,EACV,OAAO,CA2CR,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/utils';
|
|
2
|
+
import { Arr } from 'ts-data-forge';
|
|
3
|
+
|
|
4
|
+
const preferAssertIsTrueOverNegatedAssertIsFalseRule = {
|
|
5
|
+
meta: {
|
|
6
|
+
type: 'suggestion',
|
|
7
|
+
docs: {
|
|
8
|
+
description: 'Prefer assert.isTrue(X) over assert.isFalse(!X).',
|
|
9
|
+
},
|
|
10
|
+
fixable: 'code',
|
|
11
|
+
schema: [],
|
|
12
|
+
messages: {
|
|
13
|
+
preferAssertIsTrueOverNegatedAssertIsFalse: 'Use assert.isTrue(X) instead of assert.isFalse(!X).',
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
defaultOptions: [],
|
|
17
|
+
create: (context) => ({
|
|
18
|
+
CallExpression: (node) => {
|
|
19
|
+
if (node.callee.type === AST_NODE_TYPES.MemberExpression &&
|
|
20
|
+
node.callee.object.type === AST_NODE_TYPES.Identifier &&
|
|
21
|
+
node.callee.object.name === 'assert' &&
|
|
22
|
+
node.callee.property.type === AST_NODE_TYPES.Identifier &&
|
|
23
|
+
node.callee.property.name === 'isFalse' &&
|
|
24
|
+
Arr.isArrayOfLength(node.arguments, 1)) {
|
|
25
|
+
const [arg] = node.arguments;
|
|
26
|
+
if (arg.type === AST_NODE_TYPES.UnaryExpression &&
|
|
27
|
+
arg.operator === '!') {
|
|
28
|
+
const targetText = context.sourceCode.getText(arg.argument);
|
|
29
|
+
context.report({
|
|
30
|
+
node: arg,
|
|
31
|
+
messageId: 'preferAssertIsTrueOverNegatedAssertIsFalse',
|
|
32
|
+
fix: (fixer) => fixer.replaceText(node, `assert.isTrue(${targetText})`),
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
}),
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
export { preferAssertIsTrueOverNegatedAssertIsFalseRule };
|
|
41
|
+
//# sourceMappingURL=prefer-assert-is-true-over-assert-negated-is-false.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prefer-assert-is-true-over-assert-negated-is-false.mjs","sources":["../../../../src/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-assert-negated-is-false.mts"],"sourcesContent":[null],"names":[],"mappings":";;;AAOO,MAAM,8CAA8C,GAGvD;AACF,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,IAAI,EAAE;AACJ,YAAA,WAAW,EAAE,kDAAkD;AAChE,SAAA;AACD,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,MAAM,EAAE,EAAE;AACV,QAAA,QAAQ,EAAE;AACR,YAAA,0CAA0C,EACxC,qDAAqD;AACxD,SAAA;AACF,KAAA;AACD,IAAA,cAAc,EAAE,EAAE;AAClB,IAAA,MAAM,EAAE,CAAC,OAAO,MAAM;AACpB,QAAA,cAAc,EAAE,CAAC,IAAI,KAAI;YACvB,IACE,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,gBAAgB;gBACpD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;AACrD,gBAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ;gBACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;AACvD,gBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS;gBACvC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EACtC;AACA,gBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS;AAE5B,gBAAA,IACE,GAAG,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe;AAC3C,oBAAA,GAAG,CAAC,QAAQ,KAAK,GAAG,EACpB;AACA,oBAAA,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;oBAE3D,OAAO,CAAC,MAAM,CAAC;AACb,wBAAA,IAAI,EAAE,GAAG;AACT,wBAAA,SAAS,EAAE,4CAA4C;AACvD,wBAAA,GAAG,EAAE,CAAC,KAAK,KACT,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA,cAAA,EAAiB,UAAU,GAAG,CAAC;AAC1D,qBAAA,CAAC;gBACJ;YACF;QACF,CAAC;KACF,CAAC;;;;;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type TSESLint } from '@typescript-eslint/utils';
|
|
2
|
+
type MessageIds = 'preferAssertIsTrueOverAssert';
|
|
3
|
+
type Options = readonly [];
|
|
4
|
+
export declare const preferAssertIsTrueOverAssertRule: TSESLint.RuleModule<MessageIds, Options>;
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=prefer-assert-is-true-over-assert.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prefer-assert-is-true-over-assert.d.mts","sourceRoot":"","sources":["../../../../src/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-assert.mts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzE,KAAK,UAAU,GAAG,8BAA8B,CAAC;AAEjD,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,eAAO,MAAM,gCAAgC,EAAE,QAAQ,CAAC,UAAU,CAChE,UAAU,EACV,OAAO,CA0DR,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/utils';
|
|
2
|
+
|
|
3
|
+
const preferAssertIsTrueOverAssertRule = {
|
|
4
|
+
meta: {
|
|
5
|
+
type: 'suggestion',
|
|
6
|
+
docs: {
|
|
7
|
+
description: 'Prefer assert.isTrue(X) over assert(X), assert.isOk(X), assert.ok(X).',
|
|
8
|
+
},
|
|
9
|
+
fixable: 'code',
|
|
10
|
+
schema: [],
|
|
11
|
+
messages: {
|
|
12
|
+
preferAssertIsTrueOverAssert: 'Use assert.isTrue(X) instead of {{method}}(X).',
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
defaultOptions: [],
|
|
16
|
+
create: (context) => ({
|
|
17
|
+
CallExpression: (node) => {
|
|
18
|
+
// assert(X) -> assert.isTrue(X)
|
|
19
|
+
if (node.callee.type === AST_NODE_TYPES.Identifier &&
|
|
20
|
+
node.callee.name === 'assert') {
|
|
21
|
+
if (node.arguments.length === 0) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
context.report({
|
|
25
|
+
node: node.callee,
|
|
26
|
+
messageId: 'preferAssertIsTrueOverAssert',
|
|
27
|
+
data: { method: 'assert' },
|
|
28
|
+
fix: (fixer) => fixer.replaceText(node.callee, 'assert.isTrue'),
|
|
29
|
+
});
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
// assert.isOk(X) -> assert.isTrue(X)
|
|
33
|
+
if (node.callee.type === AST_NODE_TYPES.MemberExpression) {
|
|
34
|
+
const callee = node.callee;
|
|
35
|
+
if (callee.object.type === AST_NODE_TYPES.Identifier &&
|
|
36
|
+
callee.object.name === 'assert' &&
|
|
37
|
+
callee.property.type === AST_NODE_TYPES.Identifier &&
|
|
38
|
+
(callee.property.name === 'isOk' || callee.property.name === 'ok')) {
|
|
39
|
+
context.report({
|
|
40
|
+
node: callee,
|
|
41
|
+
messageId: 'preferAssertIsTrueOverAssert',
|
|
42
|
+
data: { method: `assert.${callee.property.name}` },
|
|
43
|
+
fix: (fixer) => fixer.replaceText(callee, 'assert.isTrue'),
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
}),
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export { preferAssertIsTrueOverAssertRule };
|
|
52
|
+
//# sourceMappingURL=prefer-assert-is-true-over-assert.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prefer-assert-is-true-over-assert.mjs","sources":["../../../../src/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-assert.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAMO,MAAM,gCAAgC,GAGzC;AACF,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,IAAI,EAAE;AACJ,YAAA,WAAW,EACT,uEAAuE;AAC1E,SAAA;AACD,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,MAAM,EAAE,EAAE;AACV,QAAA,QAAQ,EAAE;AACR,YAAA,4BAA4B,EAC1B,gDAAgD;AACnD,SAAA;AACF,KAAA;AACD,IAAA,cAAc,EAAE,EAAE;AAClB,IAAA,MAAM,EAAE,CAAC,OAAO,MAAM;AACpB,QAAA,cAAc,EAAE,CAAC,IAAI,KAAI;;YAEvB,IACE,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;AAC9C,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,EAC7B;gBACA,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC/B;gBACF;gBAEA,OAAO,CAAC,MAAM,CAAC;oBACb,IAAI,EAAE,IAAI,CAAC,MAAM;AACjB,oBAAA,SAAS,EAAE,8BAA8B;AACzC,oBAAA,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;AAC1B,oBAAA,GAAG,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC;AAChE,iBAAA,CAAC;gBAEF;YACF;;YAIA,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,gBAAgB,EAAE;AACxD,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;gBAE1B,IACE,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;AAChD,oBAAA,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ;AAC/B,oBAAA,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;AAClD,qBAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,EAClE;oBACA,OAAO,CAAC,MAAM,CAAC;AACb,wBAAA,IAAI,EAAE,MAAM;AACZ,wBAAA,SAAS,EAAE,8BAA8B;wBACzC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAA,OAAA,EAAU,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAA,CAAE,EAAE;AAClD,wBAAA,GAAG,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,eAAe,CAAC;AAC3D,qBAAA,CAAC;gBACJ;YACF;QACF,CAAC;KACF,CAAC;;;;;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type TSESLint } from '@typescript-eslint/utils';
|
|
2
|
+
type MessageIds = 'preferAssertIsTrueOverExpectTrue';
|
|
3
|
+
type Options = readonly [];
|
|
4
|
+
export declare const preferAssertIsTrueOverExpectTrueRule: TSESLint.RuleModule<MessageIds, Options>;
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=prefer-assert-is-true-over-expect-true.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prefer-assert-
|
|
1
|
+
{"version":3,"file":"prefer-assert-is-true-over-expect-true.d.mts","sourceRoot":"","sources":["../../../../src/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-expect-true.mts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,0BAA0B,CAAC;AAIlC,KAAK,UAAU,GAAG,kCAAkC,CAAC;AAErD,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,eAAO,MAAM,oCAAoC,EAAE,QAAQ,CAAC,UAAU,CACpE,UAAU,EACV,OAAO,CA4DR,CAAC"}
|
|
@@ -2,16 +2,16 @@ import { ESLintUtils, AST_NODE_TYPES } from '@typescript-eslint/utils';
|
|
|
2
2
|
import { Arr } from 'ts-data-forge';
|
|
3
3
|
import * as ts from 'typescript';
|
|
4
4
|
|
|
5
|
-
const
|
|
5
|
+
const preferAssertIsTrueOverExpectTrueRule = {
|
|
6
6
|
meta: {
|
|
7
7
|
type: 'suggestion',
|
|
8
8
|
docs: {
|
|
9
|
-
description: 'Prefer assert(X) over expect(X).toBe(true) (only if X is boolean)',
|
|
9
|
+
description: 'Prefer assert.isTrue(X) over expect(X).toBe(true) (only if X is boolean)',
|
|
10
10
|
},
|
|
11
11
|
fixable: 'code',
|
|
12
12
|
schema: [],
|
|
13
13
|
messages: {
|
|
14
|
-
|
|
14
|
+
preferAssertIsTrueOverExpectTrue: 'Use assert.isTrue(X) instead of expect(X).toBe(true)',
|
|
15
15
|
},
|
|
16
16
|
},
|
|
17
17
|
defaultOptions: [],
|
|
@@ -41,8 +41,8 @@ const preferAssertOverExpectTrueRule = {
|
|
|
41
41
|
const argText = context.sourceCode.getText(arg);
|
|
42
42
|
context.report({
|
|
43
43
|
node,
|
|
44
|
-
messageId: '
|
|
45
|
-
fix: (fixer) => fixer.replaceText(node, `assert(${argText})`),
|
|
44
|
+
messageId: 'preferAssertIsTrueOverExpectTrue',
|
|
45
|
+
fix: (fixer) => fixer.replaceText(node, `assert.isTrue(${argText})`),
|
|
46
46
|
});
|
|
47
47
|
}
|
|
48
48
|
},
|
|
@@ -50,5 +50,5 @@ const preferAssertOverExpectTrueRule = {
|
|
|
50
50
|
},
|
|
51
51
|
};
|
|
52
52
|
|
|
53
|
-
export {
|
|
54
|
-
//# sourceMappingURL=prefer-assert-over-expect-true.mjs.map
|
|
53
|
+
export { preferAssertIsTrueOverExpectTrueRule };
|
|
54
|
+
//# sourceMappingURL=prefer-assert-is-true-over-expect-true.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prefer-assert-
|
|
1
|
+
{"version":3,"file":"prefer-assert-is-true-over-expect-true.mjs","sources":["../../../../src/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-expect-true.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAYO,MAAM,oCAAoC,GAG7C;AACF,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,IAAI,EAAE;AACJ,YAAA,WAAW,EACT,0EAA0E;AAC7E,SAAA;AACD,QAAA,OAAO,EAAE,MAAM;AACf,QAAA,MAAM,EAAE,EAAE;AACV,QAAA,QAAQ,EAAE;AACR,YAAA,gCAAgC,EAC9B,sDAAsD;AACzD,SAAA;AACF,KAAA;AACD,IAAA,cAAc,EAAE,EAAE;AAClB,IAAA,MAAM,EAAE,CAAC,OAAO,KAAI;QAClB,MAAM,cAAc,GAAG,WAAW,CAAC,iBAAiB,CAAC,OAAO,CAAC;QAE7D,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,cAAc,EAAE;QAEvD,OAAO;AACL,YAAA,cAAc,EAAE,CAAC,IAAI,KAAI;gBACvB,IACE,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,gBAAgB;oBACpD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,cAAc;oBACzD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;oBAC5D,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ;oBAC3C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;AACvD,oBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM;oBACpC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;oBACtC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,OAAO;oBACjD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,EAChC;AACA,oBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AAE3C,oBAAA,IAAI,GAAG,KAAK,SAAS,EAAE;wBACrB,MAAM,MAAM,GAAG,cAAc,CAAC,qBAAqB,CAAC,GAAG,CAAC,GAAG,CAAC;wBAE5D,MAAM,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC;AAE9C,wBAAA,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,MAAM,CAAC;wBAE3D,IAAI,CAAC,SAAS,EAAE;4BACd;wBACF;oBACF;oBAEA,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC;oBAE/C,OAAO,CAAC,MAAM,CAAC;wBACb,IAAI;AACJ,wBAAA,SAAS,EAAE,kCAAkC;AAC7C,wBAAA,GAAG,EAAE,CAAC,KAAK,KACT,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAA,cAAA,EAAiB,OAAO,GAAG,CAAC;AACvD,qBAAA,CAAC;gBACJ;YACF,CAAC;SACF;IACH,CAAC;;;;;"}
|