eslint-config-typed 7.7.0 → 7.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.
Files changed (156) hide show
  1. package/README.md +6 -0
  2. package/dist/plugins/immer-coding-style/rules/immer-produce.d.mts +16 -0
  3. package/dist/plugins/immer-coding-style/rules/immer-produce.d.mts.map +1 -0
  4. package/dist/plugins/immer-coding-style/rules/immer-produce.mjs +39 -0
  5. package/dist/plugins/immer-coding-style/rules/immer-produce.mjs.map +1 -0
  6. package/dist/plugins/immer-coding-style/rules/mut-prefixed-draft.d.mts +7 -4
  7. package/dist/plugins/immer-coding-style/rules/mut-prefixed-draft.d.mts.map +1 -1
  8. package/dist/plugins/immer-coding-style/rules/mut-prefixed-draft.mjs +62 -60
  9. package/dist/plugins/immer-coding-style/rules/mut-prefixed-draft.mjs.map +1 -1
  10. package/dist/plugins/immer-coding-style/rules/prefer-curried-produce.d.mts.map +1 -1
  11. package/dist/plugins/immer-coding-style/rules/prefer-curried-produce.mjs +4 -31
  12. package/dist/plugins/immer-coding-style/rules/prefer-curried-produce.mjs.map +1 -1
  13. package/dist/plugins/total-functions/rules/no-hidden-type-assertions.d.mts.map +1 -1
  14. package/dist/plugins/total-functions/rules/no-hidden-type-assertions.mjs +159 -26
  15. package/dist/plugins/total-functions/rules/no-hidden-type-assertions.mjs.map +1 -1
  16. package/dist/plugins/total-functions/rules/no-partial-division.d.mts +9 -2
  17. package/dist/plugins/total-functions/rules/no-partial-division.d.mts.map +1 -1
  18. package/dist/plugins/total-functions/rules/no-partial-division.mjs +44 -15
  19. package/dist/plugins/total-functions/rules/no-partial-division.mjs.map +1 -1
  20. package/dist/plugins/ts-restrictions/rules/array-type-utils.mjs +1 -4
  21. package/dist/plugins/ts-restrictions/rules/array-type-utils.mjs.map +1 -1
  22. package/dist/plugins/ts-restrictions/rules/function-order.mjs +1 -8
  23. package/dist/plugins/ts-restrictions/rules/function-order.mjs.map +1 -1
  24. package/dist/plugins/ts-restrictions/rules/jsx-boolean-logical-operands.mjs +1 -4
  25. package/dist/plugins/ts-restrictions/rules/jsx-boolean-logical-operands.mjs.map +1 -1
  26. package/dist/plugins/ts-restrictions/rules/no-date-only-string-to-date.d.mts +9 -4
  27. package/dist/plugins/ts-restrictions/rules/no-date-only-string-to-date.d.mts.map +1 -1
  28. package/dist/plugins/ts-restrictions/rules/no-date-only-string-to-date.mjs +43 -25
  29. package/dist/plugins/ts-restrictions/rules/no-date-only-string-to-date.mjs.map +1 -1
  30. package/dist/plugins/ts-restrictions/rules/no-negated-comparison.d.mts.map +1 -1
  31. package/dist/plugins/ts-restrictions/rules/no-negated-comparison.mjs +1 -4
  32. package/dist/plugins/ts-restrictions/rules/no-negated-comparison.mjs.map +1 -1
  33. package/dist/plugins/ts-restrictions/rules/no-restricted-cast-name.d.mts.map +1 -1
  34. package/dist/plugins/ts-restrictions/rules/no-restricted-cast-name.mjs +1 -3
  35. package/dist/plugins/ts-restrictions/rules/no-restricted-cast-name.mjs.map +1 -1
  36. package/dist/plugins/ts-restrictions/rules/no-unnecessary-array-from.d.mts.map +1 -1
  37. package/dist/plugins/ts-restrictions/rules/no-unnecessary-array-from.mjs +1 -4
  38. package/dist/plugins/ts-restrictions/rules/no-unnecessary-array-from.mjs.map +1 -1
  39. package/dist/plugins/ts-restrictions/rules/no-unnecessary-coalesce-undefined.d.mts.map +1 -1
  40. package/dist/plugins/ts-restrictions/rules/no-unnecessary-coalesce-undefined.mjs +1 -4
  41. package/dist/plugins/ts-restrictions/rules/no-unnecessary-coalesce-undefined.mjs.map +1 -1
  42. package/dist/plugins/ts-restrictions/rules/prefer-catch.d.mts +7 -0
  43. package/dist/plugins/ts-restrictions/rules/prefer-catch.d.mts.map +1 -0
  44. package/dist/plugins/ts-restrictions/rules/prefer-catch.mjs +10 -0
  45. package/dist/plugins/ts-restrictions/rules/prefer-catch.mjs.map +1 -0
  46. package/dist/plugins/ts-restrictions/rules/prefer-curried-call.d.mts.map +1 -1
  47. package/dist/plugins/ts-restrictions/rules/prefer-curried-call.mjs +1 -4
  48. package/dist/plugins/ts-restrictions/rules/prefer-curried-call.mjs.map +1 -1
  49. package/dist/plugins/ts-restrictions/rules/prefer-logical-over-boolean-ternary.d.mts.map +1 -1
  50. package/dist/plugins/ts-restrictions/rules/prefer-logical-over-boolean-ternary.mjs +1 -4
  51. package/dist/plugins/ts-restrictions/rules/prefer-logical-over-boolean-ternary.mjs.map +1 -1
  52. package/dist/plugins/ts-restrictions/rules/prefer-non-mutating-array-method.d.mts.map +1 -1
  53. package/dist/plugins/ts-restrictions/rules/prefer-non-mutating-array-method.mjs +1 -4
  54. package/dist/plugins/ts-restrictions/rules/prefer-non-mutating-array-method.mjs.map +1 -1
  55. package/dist/plugins/ts-restrictions/rules/prefer-nullish-coalescing-when-safe.d.mts.map +1 -1
  56. package/dist/plugins/ts-restrictions/rules/prefer-nullish-coalescing-when-safe.mjs +1 -8
  57. package/dist/plugins/ts-restrictions/rules/prefer-nullish-coalescing-when-safe.mjs.map +1 -1
  58. package/dist/plugins/ts-restrictions/rules/prefer-optional-chain-over-ternary.d.mts.map +1 -1
  59. package/dist/plugins/ts-restrictions/rules/prefer-optional-chain-over-ternary.mjs +1 -4
  60. package/dist/plugins/ts-restrictions/rules/prefer-optional-chain-over-ternary.mjs.map +1 -1
  61. package/dist/plugins/ts-restrictions/rules/prefer-range-in-number-line-order.d.mts.map +1 -1
  62. package/dist/plugins/ts-restrictions/rules/prefer-range-in-number-line-order.mjs +2 -5
  63. package/dist/plugins/ts-restrictions/rules/prefer-range-in-number-line-order.mjs.map +1 -1
  64. package/dist/plugins/ts-restrictions/rules/prefer-ternary.d.mts.map +1 -1
  65. package/dist/plugins/ts-restrictions/rules/prefer-ternary.mjs +2 -9
  66. package/dist/plugins/ts-restrictions/rules/prefer-ternary.mjs.map +1 -1
  67. package/dist/plugins/ts-restrictions/rules/reference-utils.mjs +1 -8
  68. package/dist/plugins/ts-restrictions/rules/reference-utils.mjs.map +1 -1
  69. package/dist/plugins/ts-restrictions/rules/require-ime-guard-on-enter.d.mts.map +1 -1
  70. package/dist/plugins/ts-restrictions/rules/require-ime-guard-on-enter.mjs +1 -8
  71. package/dist/plugins/ts-restrictions/rules/require-ime-guard-on-enter.mjs.map +1 -1
  72. package/dist/plugins/ts-restrictions/rules/rules.d.mts +1 -0
  73. package/dist/plugins/ts-restrictions/rules/rules.d.mts.map +1 -1
  74. package/dist/plugins/ts-restrictions/rules/rules.mjs +2 -0
  75. package/dist/plugins/ts-restrictions/rules/rules.mjs.map +1 -1
  76. package/dist/plugins/ts-restrictions/rules/suggestion-only.d.mts +24 -0
  77. package/dist/plugins/ts-restrictions/rules/suggestion-only.d.mts.map +1 -0
  78. package/dist/plugins/ts-restrictions/rules/suggestion-only.mjs +100 -0
  79. package/dist/plugins/ts-restrictions/rules/suggestion-only.mjs.map +1 -0
  80. package/dist/plugins/vitest-coding-style/rules/no-expect-to-strict-equal.d.mts.map +1 -1
  81. package/dist/plugins/vitest-coding-style/rules/no-expect-to-strict-equal.mjs +12 -35
  82. package/dist/plugins/vitest-coding-style/rules/no-expect-to-strict-equal.mjs.map +1 -1
  83. package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-expect-false.d.mts.map +1 -1
  84. package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-expect-false.mjs +3 -6
  85. package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-expect-false.mjs.map +1 -1
  86. package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-assert.mjs +2 -2
  87. package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-assert.mjs.map +1 -1
  88. package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-expect-true.d.mts.map +1 -1
  89. package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-expect-true.mjs +3 -6
  90. package/dist/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-expect-true.mjs.map +1 -1
  91. package/dist/plugins/vitest-coding-style/rules/vitest-binding.d.mts +47 -14
  92. package/dist/plugins/vitest-coding-style/rules/vitest-binding.d.mts.map +1 -1
  93. package/dist/plugins/vitest-coding-style/rules/vitest-binding.mjs +148 -13
  94. package/dist/plugins/vitest-coding-style/rules/vitest-binding.mjs.map +1 -1
  95. package/dist/rules/eslint-promise-rules.d.mts.map +1 -1
  96. package/dist/rules/eslint-promise-rules.mjs +0 -2
  97. package/dist/rules/eslint-promise-rules.mjs.map +1 -1
  98. package/dist/rules/eslint-ts-data-forge-rules.d.mts +10 -7
  99. package/dist/rules/eslint-ts-data-forge-rules.d.mts.map +1 -1
  100. package/dist/rules/eslint-ts-data-forge-rules.mjs +10 -7
  101. package/dist/rules/eslint-ts-data-forge-rules.mjs.map +1 -1
  102. package/dist/rules/eslint-ts-restrictions-rules.d.mts +2 -1
  103. package/dist/rules/eslint-ts-restrictions-rules.d.mts.map +1 -1
  104. package/dist/rules/eslint-ts-restrictions-rules.mjs +2 -1
  105. package/dist/rules/eslint-ts-restrictions-rules.mjs.map +1 -1
  106. package/dist/types/rules/eslint-ts-data-forge-rules.d.mts +92 -44
  107. package/dist/types/rules/eslint-ts-data-forge-rules.d.mts.map +1 -1
  108. package/dist/types/rules/eslint-ts-restrictions-rules.d.mts +16 -0
  109. package/dist/types/rules/eslint-ts-restrictions-rules.d.mts.map +1 -1
  110. package/package.json +7 -7
  111. package/src/configs/typescript.test.mts +18 -0
  112. package/src/plugins/immer-coding-style/rules/immer-produce.mts +61 -0
  113. package/src/plugins/immer-coding-style/rules/mut-prefixed-draft.mts +96 -85
  114. package/src/plugins/immer-coding-style/rules/mut-prefixed-draft.test.mts +162 -2
  115. package/src/plugins/immer-coding-style/rules/prefer-curried-produce.mts +3 -58
  116. package/src/plugins/total-functions/rules/no-hidden-type-assertions.mts +311 -68
  117. package/src/plugins/total-functions/rules/no-hidden-type-assertions.test.mts +135 -0
  118. package/src/plugins/total-functions/rules/no-partial-division.mts +70 -37
  119. package/src/plugins/total-functions/rules/no-partial-division.test.mts +522 -0
  120. package/src/plugins/ts-restrictions/rules/array-type-utils.mts +1 -5
  121. package/src/plugins/ts-restrictions/rules/function-order.mts +1 -9
  122. package/src/plugins/ts-restrictions/rules/jsx-boolean-logical-operands.mts +1 -5
  123. package/src/plugins/ts-restrictions/rules/no-date-only-string-to-date.mts +69 -44
  124. package/src/plugins/ts-restrictions/rules/no-date-only-string-to-date.test.mts +53 -0
  125. package/src/plugins/ts-restrictions/rules/no-negated-comparison.mts +1 -4
  126. package/src/plugins/ts-restrictions/rules/no-restricted-cast-name.mts +1 -4
  127. package/src/plugins/ts-restrictions/rules/no-unnecessary-array-from.mts +5 -7
  128. package/src/plugins/ts-restrictions/rules/no-unnecessary-coalesce-undefined.mts +5 -7
  129. package/src/plugins/ts-restrictions/rules/prefer-catch.mts +13 -0
  130. package/src/plugins/ts-restrictions/rules/prefer-catch.test.mts +40 -0
  131. package/src/plugins/ts-restrictions/rules/prefer-curried-call.mts +1 -4
  132. package/src/plugins/ts-restrictions/rules/prefer-logical-over-boolean-ternary.mts +1 -4
  133. package/src/plugins/ts-restrictions/rules/prefer-non-mutating-array-method.mts +1 -4
  134. package/src/plugins/ts-restrictions/rules/prefer-nullish-coalescing-when-safe.mts +6 -10
  135. package/src/plugins/ts-restrictions/rules/prefer-optional-chain-over-ternary.mts +1 -4
  136. package/src/plugins/ts-restrictions/rules/prefer-range-in-number-line-order.mts +7 -6
  137. package/src/plugins/ts-restrictions/rules/prefer-range-in-number-line-order.test.mts +23 -0
  138. package/src/plugins/ts-restrictions/rules/prefer-ternary.mts +3 -9
  139. package/src/plugins/ts-restrictions/rules/prefer-ternary.test.mts +9 -0
  140. package/src/plugins/ts-restrictions/rules/reference-utils.mts +1 -9
  141. package/src/plugins/ts-restrictions/rules/require-ime-guard-on-enter.mts +5 -9
  142. package/src/plugins/ts-restrictions/rules/rules.mts +2 -0
  143. package/src/plugins/ts-restrictions/rules/suggestion-only.mts +130 -0
  144. package/src/plugins/ts-restrictions/rules/suggestion-only.test.mts +88 -0
  145. package/src/plugins/vitest-coding-style/rules/no-expect-to-strict-equal.mts +15 -58
  146. package/src/plugins/vitest-coding-style/rules/no-expect-to-strict-equal.test.mts +28 -2
  147. package/src/plugins/vitest-coding-style/rules/prefer-assert-is-false-over-expect-false.mts +3 -9
  148. package/src/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-assert.mts +2 -2
  149. package/src/plugins/vitest-coding-style/rules/prefer-assert-is-true-over-expect-true.mts +3 -9
  150. package/src/plugins/vitest-coding-style/rules/vitest-binding.mts +248 -39
  151. package/src/plugins/vitest-coding-style/rules/vitest-destructured-binding.test.mts +326 -0
  152. package/src/rules/eslint-promise-rules.mts +3 -5
  153. package/src/rules/eslint-ts-data-forge-rules.mts +10 -7
  154. package/src/rules/eslint-ts-restrictions-rules.mts +2 -1
  155. package/src/types/rules/eslint-ts-data-forge-rules.mts +95 -51
  156. package/src/types/rules/eslint-ts-restrictions-rules.mts +17 -0
package/README.md CHANGED
@@ -582,6 +582,7 @@ The shape of the rule option varies depending on the rule, so please check the c
582
582
 
583
583
  - Provides the `ts-restrictions/*` rules; `eslintTsRestrictionsRules` lists each one with the severity the preset sets. `ts-restrictions/no-restricted-syntax` duplicates ESLint's `no-restricted-syntax` rule.
584
584
  - Can be used to set the error level to `error` or `warn` as needed.
585
+ - Some rules are an upstream rule wrapped: `ts-restrictions/prefer-global-this` is `unicorn/prefer-global-this` without the reports `globalThis` cannot answer, and `ts-restrictions/prefer-catch` is `promise/prefer-catch` with its fix offered only as a suggestion, because the fix rewrites `p.then(a, b)` into `p.catch(b).then(a)`, which runs `a` after a rejection too. The preset turns each upstream rule off beside its wrapper. A rule whose `--fix` turns out to change what code does is wrapped the same way (`suggestionOnly` in `src/plugins/ts-restrictions/rules/suggestion-only.mts`) rather than turned off, so that its reports stay.
585
586
 
586
587
  Example:
587
588
 
@@ -687,6 +688,11 @@ resolving the binding is what keeps `assert(x)` imported from `node:assert`
687
688
  (which has no `isTrue`) out of it, and what lets
688
689
  `import { assert as a } from 'vitest'` be recognized — the fixes then keep the
689
690
  local name instead of writing one the file does not have.
691
+ An `expect` destructured from a test's context
692
+ (`test.concurrent('x', ({ expect }) => …)`) or from `import.meta.vitest` is
693
+ Vitest's too and is reported, without a fix: the context has no `assert`, and an
694
+ in-source test reaches Vitest only through that handle, so neither a global
695
+ `assert` nor an added import can be named for it.
690
696
 
691
697
  #### react-coding-style
692
698
 
@@ -0,0 +1,16 @@
1
+ import type { TSESLint, TSESTree } from '@typescript-eslint/utils';
2
+ import type { DeepReadonly } from 'ts-type-forge';
3
+ /** Which of immer's recipe-taking functions a callee calls. */
4
+ export type ImmerProduce = 'produce' | 'produceWithPatches';
5
+ /**
6
+ * For one file, a function that says which of immer's `produce` and
7
+ * `produceWithPatches` a callee calls, or `undefined` when it calls neither.
8
+ *
9
+ * The callee is immer's when it is a named, aliased, default or namespace
10
+ * import from `immer` (immer 9 and earlier export `produce` as the default too)
11
+ * that nothing nearer shadows — a parameter, a local, an import from another
12
+ * module ({@link isShadowedCallee}). The callee and a namespace object are read
13
+ * through type wrappers.
14
+ */
15
+ export declare const buildImmerProduceResolver: (sourceCode: TSESLint.SourceCode) => ((callee: DeepReadonly<TSESTree.Expression>) => ImmerProduce | undefined);
16
+ //# sourceMappingURL=immer-produce.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"immer-produce.d.mts","sourceRoot":"","sources":["../../../../src/plugins/immer-coding-style/rules/immer-produce.mts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAOnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,+DAA+D;AAC/D,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,oBAAoB,CAAC;AAE5D;;;;;;;;;GASG;AACH,eAAO,MAAM,yBAAyB,eAExB,QAAQ,CAAC,UAAU,KAC9B,CAAC,CACF,MAAM,EAAE,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,KACtC,YAAY,GAAG,SAAS,CA+B5B,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { buildCalleeResolver, getImportDeclarations, isShadowedCallee, } from 'eslint-rule-forge';
2
+ import { Arr } from 'ts-data-forge';
3
+
4
+
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+ export const buildImmerProduceResolver = (
14
+
15
+ sourceCode) => {
16
+ const immerImports = getImportDeclarations(sourceCode.ast, immerModule);
17
+ if (Arr.isEmpty(immerImports)) {
18
+ return () => undefined;
19
+ }
20
+ const resolveCallee = buildCalleeResolver(immerImports);
21
+ return (callee) => {
22
+ const resolved = resolveCallee(callee);
23
+ if (resolved === undefined ||
24
+ isShadowedCallee(sourceCode, resolved, immerModule)) {
25
+ return undefined;
26
+ }
27
+ switch (resolved.canonicalName) {
28
+ case 'default':
29
+ case 'produce':
30
+ return 'produce';
31
+ case 'produceWithPatches':
32
+ return 'produceWithPatches';
33
+ default:
34
+ return undefined;
35
+ }
36
+ };
37
+ };
38
+ const immerModule = 'immer';
39
+ //# sourceMappingURL=immer-produce.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"immer-produce.mjs","sourceRoot":"","sources":["../../../../src/plugins/immer-coding-style/rules/immer-produce.mts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAMrD;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;AACvC,8EAA8E;AAC9E,UAA+B,EAGF,EAAE;IAC/B,MAAM,YAAY,GAAG,qBAAqB,CAAC,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAExE,IAAI,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAC9B,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC;IACzB,CAAC;IAED,MAAM,aAAa,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAExD,OAAO,CAAC,MAAM,EAAE,EAAE;QAChB,MAAM,QAAQ,GAAG,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC;QAExD,IACE,QAAQ,KAAK,SAAS;YACtB,gBAAgB,CAAC,UAAU,EAAE,QAAQ,EAAE,WAAW,CAAC,EACnD,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,QAAQ,QAAQ,CAAC,aAAa,EAAE,CAAC;YAC/B,KAAK,SAAS,CAAC;YACf,KAAK,SAAS;gBACZ,OAAO,SAAS,CAAC;YAEnB,KAAK,oBAAoB;gBACvB,OAAO,oBAAoB,CAAC;YAE9B;gBACE,OAAO,SAAS,CAAC;QACrB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,OAAO,CAAC"}
@@ -6,10 +6,13 @@ type MessageIds = 'requireMutPrefix';
6
6
  * mutated, so an unprefixed draft is otherwise reported on every line that
7
7
  * writes to it, with a message that does not say the fix is a rename.
8
8
  *
9
- * The recipe is the second argument of `produce` / `produceWithPatches` when it
10
- * is a function literal, and otherwise the first when that one is (the curried
11
- * form). A destructured draft and one that is never referenced are left alone;
12
- * a draft with a default value is reported.
9
+ * The recipe is the second argument of immer's `produce` / `produceWithPatches`
10
+ * when it is a function literal, and otherwise the first when that one is (the
11
+ * curried form). The callee is immer's only, through an import from `immer`
12
+ * that nothing nearer shadows (`buildImmerProduceResolver`): a `produce` from
13
+ * another module, a local one or a parameter is not. A destructured draft and
14
+ * one that is never referenced are left alone; a draft with a default value is
15
+ * reported.
13
16
  *
14
17
  * The fix renames the parameter and its references. It is withheld when it
15
18
  * could change the code's meaning or add shadowing; `canRename` lists the
@@ -1 +1 @@
1
- {"version":3,"file":"mut-prefixed-draft.d.mts","sourceRoot":"","sources":["../../../../src/plugins/immer-coding-style/rules/mut-prefixed-draft.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAET,MAAM,0BAA0B,CAAC;AAMlC,KAAK,UAAU,GAAG,kBAAkB,CAAC;AAErC;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,CAgFvD,CAAC"}
1
+ {"version":3,"file":"mut-prefixed-draft.d.mts","sourceRoot":"","sources":["../../../../src/plugins/immer-coding-style/rules/mut-prefixed-draft.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAET,MAAM,0BAA0B,CAAC;AAUlC,KAAK,UAAU,GAAG,kBAAkB,CAAC;AAErC;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,CAoFvD,CAAC"}
@@ -2,6 +2,10 @@ import { AST_NODE_TYPES, TSESLint, } from '@typescript-eslint/utils';
2
2
  import { isTypeWrapper, skipTypeWrappers } from 'eslint-rule-forge';
3
3
  import { Arr } from 'ts-data-forge';
4
4
  import { mutablePrefix } from '../../../constants/index.mjs';
5
+ import { buildImmerProduceResolver, } from './immer-produce.mjs';
6
+
7
+
8
+
5
9
 
6
10
 
7
11
 
@@ -30,62 +34,59 @@ export const mutPrefixedDraftRule = {
30
34
  },
31
35
  defaultOptions: [],
32
36
  },
33
- create: (context) => ({
34
- CallExpression: (node) => {
35
- const recipe = findRecipe(node);
36
- if (recipe === undefined) {
37
- return;
38
- }
39
- const param = draftParameterOf(recipe);
40
- if (param === undefined || param.name.startsWith(mutablePrefix)) {
41
- return;
42
- }
43
- const scope = context.sourceCode.scopeManager?.scopes.find((s) => s.type === TSESLint.Scope.ScopeType.function &&
44
- s.block.range[0] === recipe.range[0] &&
45
- s.block.range[1] === recipe.range[1]);
46
- if (scope === undefined) {
47
- return;
48
- }
49
- const variable = scope.set.get(param.name);
50
-
51
-
52
- const declared = variable?.identifiers[0];
53
- if (variable === undefined || declared === undefined) {
54
- return;
55
- }
56
-
57
-
58
- const nameToken = context.sourceCode.getFirstToken(declared);
59
- const references = usesOf(variable);
60
- if (nameToken === null || Arr.isEmpty(references)) {
61
- return;
62
- }
63
- const suggested = `${mutablePrefix}${param.name}`;
64
- context.report({
65
- loc: nameToken.loc,
66
- messageId: 'requireMutPrefix',
67
- data: { name: param.name, suggested },
68
- fix: canRename(scope, variable, suggested)
69
- ? (fixer) => Arr.toUnshifted(references.map(({ identifier }) => identifier.parent.type === AST_NODE_TYPES.Property &&
70
- identifier.parent.shorthand &&
71
- identifier.parent.value === identifier
72
- ? fixer.insertTextAfter(identifier, `: ${suggested}`)
73
- : fixer.replaceText(identifier, suggested)), fixer.replaceText(nameToken, suggested))
74
- : null,
75
- });
76
- },
77
- }),
37
+ create: (context) => {
38
+ const resolveProduce = buildImmerProduceResolver(context.sourceCode);
39
+ return {
40
+ CallExpression: (node) => {
41
+ const recipe = findRecipe(node, resolveProduce);
42
+ if (recipe === undefined) {
43
+ return;
44
+ }
45
+ const param = draftParameterOf(recipe);
46
+ if (param === undefined || param.name.startsWith(mutablePrefix)) {
47
+ return;
48
+ }
49
+ const scope = context.sourceCode.scopeManager?.scopes.find((s) => s.type === TSESLint.Scope.ScopeType.function &&
50
+ s.block.range[0] === recipe.range[0] &&
51
+ s.block.range[1] === recipe.range[1]);
52
+ if (scope === undefined) {
53
+ return;
54
+ }
55
+ const variable = scope.set.get(param.name);
56
+
57
+
58
+ const declared = variable?.identifiers[0];
59
+ if (variable === undefined || declared === undefined) {
60
+ return;
61
+ }
62
+
63
+
64
+ const nameToken = context.sourceCode.getFirstToken(declared);
65
+ const references = usesOf(variable);
66
+ if (nameToken === null || Arr.isEmpty(references)) {
67
+ return;
68
+ }
69
+ const suggested = `${mutablePrefix}${param.name}`;
70
+ context.report({
71
+ loc: nameToken.loc,
72
+ messageId: 'requireMutPrefix',
73
+ data: { name: param.name, suggested },
74
+ fix: canRename(scope, variable, suggested, resolveProduce)
75
+ ? (fixer) => Arr.toUnshifted(references.map(({ identifier }) => identifier.parent.type === AST_NODE_TYPES.Property &&
76
+ identifier.parent.shorthand &&
77
+ identifier.parent.value === identifier
78
+ ? fixer.insertTextAfter(identifier, `: ${suggested}`)
79
+ : fixer.replaceText(identifier, suggested)), fixer.replaceText(nameToken, suggested))
80
+ : null,
81
+ });
82
+ },
83
+ };
84
+ },
78
85
  };
79
- const produceNames = new Set([
80
- 'produce',
81
- 'produceWithPatches',
82
- ]);
83
86
  const isFunctionNode = (node) => node.type === AST_NODE_TYPES.ArrowFunctionExpression ||
84
87
  node.type === AST_NODE_TYPES.FunctionExpression;
85
- const findRecipe = (node) => {
86
- const callee = skipTypeWrappers(node.callee);
87
- if (callee.type !== AST_NODE_TYPES.Identifier ||
88
- !produceNames.has(callee.name)) {
88
+ const findRecipe = (node, resolveProduce) => {
89
+ if (resolveProduce(node.callee) === undefined) {
89
90
  return undefined;
90
91
  }
91
92
 
@@ -125,15 +126,16 @@ const usesOf = (variable) => variable.references.filter(({ identifier }) => iden
125
126
  const outsideTypeWrappers = (node) => node !== undefined && isTypeWrapper(node)
126
127
  ? outsideTypeWrappers(node.parent)
127
128
  : node;
128
- const isRecipe = (node) => {
129
+ const isRecipe = (node, resolveProduce) => {
129
130
  const call = outsideTypeWrappers(node.parent);
130
- return (call?.type === AST_NODE_TYPES.CallExpression && findRecipe(call) === node);
131
+ return (call?.type === AST_NODE_TYPES.CallExpression &&
132
+ findRecipe(call, resolveProduce) === node);
131
133
  };
132
134
 
133
135
 
134
136
 
135
137
 
136
- const isDraftNameOfRecipeAround = (scope, name) => {
138
+ const isDraftNameOfRecipeAround = (scope, name, resolveProduce) => {
137
139
  const { upper } = scope;
138
140
  if (upper === null) {
139
141
  return false;
@@ -143,11 +145,11 @@ const isDraftNameOfRecipeAround = (scope, name) => {
143
145
  return (
144
146
 
145
147
  (isFunctionNode(block) &&
146
- isRecipe(block) &&
148
+ isRecipe(block, resolveProduce) &&
147
149
  draftParameterOf(block)?.name === name &&
148
150
  outer !== undefined &&
149
151
  Arr.isNonEmpty(usesOf(outer))) ||
150
- isDraftNameOfRecipeAround(upper, name));
152
+ isDraftNameOfRecipeAround(upper, name, resolveProduce));
151
153
  };
152
154
 
153
155
  const isValueIn = (scope, name) => scope.set.get(name)?.isValueVariable ?? false;
@@ -172,14 +174,14 @@ const isDeclaredAround = (scope, name) => scope.upper !== null &&
172
174
 
173
175
 
174
176
 
175
- const canRename = (scope, variable, newName) => !isDeclaredWithin(scope, newName) &&
177
+ const canRename = (scope, variable, newName, resolveProduce) => !isDeclaredWithin(scope, newName) &&
176
178
  !isDeclaredAround(scope, newName) &&
177
179
  scope.through.every(
178
180
 
179
181
  (reference) => !reference.isValueReference ||
180
182
  (reference.identifier.name !== newName &&
181
183
  reference.identifier.name !== 'eval')) &&
182
- !isDraftNameOfRecipeAround(scope, variable.name) &&
184
+ !isDraftNameOfRecipeAround(scope, variable.name, resolveProduce) &&
183
185
  Arr.isFixedLengthArray(1, variable.defs) &&
184
186
  variable.references.every(
185
187
 
@@ -1 +1 @@
1
- {"version":3,"file":"mut-prefixed-draft.mjs","sourceRoot":"","sources":["../../../../src/plugins/immer-coding-style/rules/mut-prefixed-draft.mts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mut-prefixed-draft.mjs","sourceRoot":"","sources":["../../../../src/plugins/immer-coding-style/rules/mut-prefixed-draft.mts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"prefer-curried-produce.d.mts","sourceRoot":"","sources":["../../../../src/plugins/immer-coding-style/rules/prefer-curried-produce.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAalC,KAAK,UAAU,GAAG,mBAAmB,CAAC;AAOtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,CAuL3D,CAAC"}
1
+ {"version":3,"file":"prefer-curried-produce.d.mts","sourceRoot":"","sources":["../../../../src/plugins/immer-coding-style/rules/prefer-curried-produce.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAWlC,KAAK,UAAU,GAAG,mBAAmB,CAAC;AAOtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,UAAU,CAAC,UAAU,CAoI3D,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { AST_NODE_TYPES, } from '@typescript-eslint/utils';
2
- import { buildCalleeResolver, getImportDeclarations, hasCommentWithin, hasForeignBinding, isTypeWrapper, skipTypeWrappers, typeWrapperLayers, } from 'eslint-rule-forge';
2
+ import { hasCommentWithin, isTypeWrapper, skipTypeWrappers, typeWrapperLayers, } from 'eslint-rule-forge';
3
3
  import { Arr, hasKey, isRecord } from 'ts-data-forge';
4
+ import { buildImmerProduceResolver } from './immer-produce.mjs';
4
5
 
5
6
 
6
7
 
@@ -51,35 +52,8 @@ export const preferCurriedProduceRule = {
51
52
  },
52
53
  create: (context) => {
53
54
  const sourceCode = context.sourceCode;
54
- const immerImports = getImportDeclarations(sourceCode.ast, immerModule);
55
- if (Arr.isEmpty(immerImports)) {
56
- return {};
57
- }
58
- const resolveCallee = buildCalleeResolver(immerImports);
59
-
60
- const defaultImportNames = new Set(immerImports.flatMap((declaration) => Arr.generate(function* () {
61
- for (const specifier of declaration.specifiers) {
62
- if (specifier.type === AST_NODE_TYPES.ImportDefaultSpecifier) {
63
- yield specifier.local.name;
64
- }
65
- }
66
- })));
67
- const isImmerProduce = (call) => {
68
- const callee = call.callee;
69
- const canonicalName = resolveCallee(callee)?.canonicalName;
70
- const unwrapped = skipTypeWrappers(callee);
71
- if (canonicalName !== 'produce' &&
72
- canonicalName !== 'default' &&
73
- !(unwrapped.type === AST_NODE_TYPES.Identifier &&
74
- defaultImportNames.has(unwrapped.name))) {
75
- return false;
76
- }
77
- const bound = unwrapped.type === AST_NODE_TYPES.MemberExpression
78
- ? skipTypeWrappers(unwrapped.object)
79
- : unwrapped;
80
- return (bound.type === AST_NODE_TYPES.Identifier &&
81
- !hasForeignBinding(sourceCode, call, bound.name, immerModule));
82
- };
55
+ const resolveProduce = buildImmerProduceResolver(sourceCode);
56
+ const isImmerProduce = (call) => resolveProduce(call.callee) === 'produce';
83
57
  return {
84
58
  ArrowFunctionExpression: (node) => {
85
59
  if (node.async ||
@@ -234,7 +208,6 @@ const report = (context, { arrowFunction, callExpression, isFixable, remainingAr
234
208
  : null,
235
209
  });
236
210
  };
237
- const immerModule = 'immer';
238
211
 
239
212
 
240
213
 
@@ -1 +1 @@
1
- {"version":3,"file":"prefer-curried-produce.mjs","sourceRoot":"","sources":["../../../../src/plugins/immer-coding-style/rules/prefer-curried-produce.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,GAGf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAUvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAoC;IACvE,IAAI,EAAE;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE;YACJ,WAAW,EACT,+EAA+E;SAClF;QACD,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE;YACR,iBAAiB,EACf,0GAA0G;SAC7G;QACD,cAAc,EAAE,EAAE;KACnB;IACD,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE;QAClB,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QAEtC,MAAM,YAAY,GAAG,qBAAqB,CAAC,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAExE,IAAI,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,aAAa,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAExD,2DAA2D;QAC3D,MAAM,kBAAkB,GAAwB,IAAI,GAAG,CACrD,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CACnC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACpB,KAAK,MAAM,SAAS,IAAI,WAAW,CAAC,UAAU,EAAE,CAAC;gBAC/C,IAAI,SAAS,CAAC,IAAI,KAAK,cAAc,CAAC,sBAAsB,EAAE,CAAC;oBAC7D,MAAM,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CACH,CACF,CAAC;QAEF,MAAM,cAAc,GAAG,CACrB,IAA2C,EAClC,EAAE;YACX,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAE5C,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;YAE3D,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAE3C,IACE,aAAa,KAAK,SAAS;gBAC3B,aAAa,KAAK,SAAS;gBAC3B,CAAC,CACC,SAAS,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;oBAC5C,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CACvC,EACD,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC;YAED,MAAM,KAAK,GACT,SAAS,CAAC,IAAI,KAAK,cAAc,CAAC,gBAAgB;gBAChD,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC;gBACpC,CAAC,CAAC,SAAS,CAAC;YAEhB,OAAO,CACL,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;gBACxC,CAAC,iBAAiB,CAChB,UAAU,EACV,eAAe,CAAC,IAAI,CAAC,EACrB,KAAK,CAAC,IAAI,EACV,WAAW,CACZ,CACF,CAAC;QACJ,CAAC,CAAC;QAEF,OAAO;YACL,uBAAuB,EAAE,CACvB,IAAoD,EACpD,EAAE;gBACF,IACE,IAAI,CAAC,KAAK;oBACV,IAAI,CAAC,cAAc,KAAK,SAAS;oBACjC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EACvC,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;gBAE7B,oEAAoE;gBACpE,eAAe;gBACf,IACE,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU;oBACxC,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;oBACvB,KAAK,CAAC,QAAQ,EACd,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;gBAEtC,MAAM,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEnD,sEAAsE;gBACtE,wBAAwB;gBACxB,IACE,cAAc,CAAC,IAAI,KAAK,cAAc,CAAC,cAAc;oBACrD,CAAC,cAAc,CAAC,cAAc,CAAC;oBAC/B,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAC/B,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,SAAS,CAC3C,EACD,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,MAAM,CAAC,YAAY,EAAE,GAAG,aAAa,CAAC,GAAG,cAAc,CAAC,SAAS,CAAC;gBAElE,IACE,YAAY,KAAK,SAAS;oBAC1B,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,EAAE,aAAa,CAAC;oBACzC,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EACxC,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,oEAAoE;gBACpE,sCAAsC;gBACtC,IACE,iBAAiB,CAAC,YAAY,CAAC,CAAC,IAAI,CAClC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,mBAAmB,CAC7D,EACD,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,kEAAkE;gBAClE,+DAA+D;gBAC/D,eAAe;gBACf,IACE,gBAAgB,CACd,YAAY,EACZ,KAAK,CAAC,cAAc,KAAK,SAAS;oBAChC,CAAC,CAAC,SAAS;oBACX,CAAC,CAAC,UAAU,CACR,UAAU,EACV,eAAe,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,CACrD,EACL,UAAU,CACX,EACD,CAAC;oBACD,OAAO;gBACT,CAAC;gBAED,MAAM,cAAc,GAAG,cAAc,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;gBAEnE,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;oBACjC,OAAO;gBACT,CAAC;gBAED,IAAI,kBAAkB,CAAC,OAAO,EAAE,aAAa,EAAE,cAAc,CAAC,EAAE,CAAC;oBAC/D,OAAO;gBACT,CAAC;gBAED,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;gBAEhC,MAAM,SAAS,GACb,IAAI,CAAC,IAAI,KAAK,cAAc;oBAC5B,CAAC,gBAAgB,CAAC,cAAc,CAAC;oBACjC,CAAC,gBAAgB,CAAC,UAAU,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE;wBACnD,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;wBAChC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;qBACjC,CAAC,CAAC;gBAEL,MAAM,CAAC,OAAO,EAAE;oBACd,aAAa,EAAE,IAAI;oBACnB,cAAc;oBACd,SAAS;oBACT,kBAAkB,EAAE,aAAa;oBACjC,UAAU;iBACX,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACO,CAAC;AAYX,MAAM,gBAAgB,GAAG,CACvB,IAA2C,EACQ,EAAE;IACrD,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAE1C,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,EAAE,CAAC;QAClE,OACE,WAID,CAAC,aAAa,CAAC;IAClB,CAAC;IAED,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAAC,EAAE,CAAC;QACnE,OAAQ,WAAsD;aAC3D,cAAc,CAAC;IACpB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,6BAA6B,GAAG,CAAC,EACrC,aAAa,EACb,UAAU,GAMV,EAAsB,EAAE;IACxB,MAAM,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC;IAEzC,IAAI,SAAS,EAAE,IAAI,KAAK,cAAc,CAAC,UAAU,EAAE,CAAC;QAClD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,cAAc,GAAG,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;IAEhE,OAAO,cAAc,KAAK,SAAS;QACjC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC;AAC1D,CAAC,CAAC;AAEF,MAAM,0BAA0B,GAAG,CAAC,EAClC,aAAa,EACb,UAAU,GAMV,EAAsB,EAAE;IACxB,MAAM,cAAc,GAAG,aAAa,CAAC,UAAU,EAAE,cAAc,CAAC;IAEhE,OAAO,cAAc,KAAK,SAAS;QACjC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC;AAC1D,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,EAC7B,aAAa,EACb,cAAc,EACd,UAAU,GAOV,EAAU,EAAE;IACZ,MAAM,aAAa,GAAG,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAEvD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,wEAAwE;IACxE,2DAA2D;IAC3D,MAAM,aAAa,GAAG,6BAA6B,CAAC;QAClD,aAAa;QACb,UAAU;KACX,CAAC,CAAC;IAEH,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,IAAI,aAAa,GAAG,CAAC;IAC9B,CAAC;IAED,MAAM,UAAU,GAAG,0BAA0B,CAAC;QAC5C,aAAa;QACb,UAAU;KACX,CAAC,CAAC;IAEH,OAAO,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3D,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,IAAY,EAAU,EAAE;IACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE/B,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC;SAC5B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;SACxC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IAEzD,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IAEvC,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAC3C,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAC3C,CAAC;IAEF,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,CACb,OAA2D,EAC3D,EACE,aAAa,EACb,cAAc,EACd,SAAS,EACT,kBAAkB,EAClB,UAAU,GACI,EACV,EAAE;IACR,MAAM,gBAAgB,GAAG,GAAW,EAAE;QACpC,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CACnC,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,CACvC,CAAC;QAEF,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;YAC/C,aAAa;YACb,cAAc;YACd,UAAU;SACX,CAAC,CAAC;QAEH,MAAM,sBAAsB,GAAG,kBAAkB;aAC9C,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAChB,sBAAsB,CAAC,UAAU,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CACtE;aACA,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO,GAAG,UAAU,GAAG,kBAAkB,IAAI,sBAAsB,GAAG,CAAC;IACzE,CAAC,CAAC;IAEF,OAAO,CAAC,MAAM,CAAC;QACb,IAAI,EAAE,eAAe,CAAC,aAAa,CAAC;QACpC,SAAS,EAAE,mBAAmB;QAC9B,GAAG,EAAE,SAAS;YACZ,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;YACzE,CAAC,CAAC,IAAI;KACT,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,OAAO,CAAC;AAE5B;;;GAGG;AACH,MAAM,UAAU,GAAG,CACjB,IAAiC,EACY,EAAE,CAC/C,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,cAAc;IAC3C,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe;IAC1C,CAAC,CAAC,IAAI,CAAC,cAAc;IACrB,CAAC,CAAC,SAAS,CAAC;AAEhB;;;;GAIG;AACH,MAAM,gBAAgB,GAAG,CAAC,EACxB,MAAM,GACgC,EAAW,EAAE,CACnD,aAAa,CAAC,MAAM,CAAC;IACrB,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,gBAAgB;QAC9C,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAElC;;;GAGG;AACH,MAAM,UAAU,GAAG,CACjB,UAAuB;AACvB,8EAA8E;AAC9E,IAAuB,EACf,EAAE,CACV,UAAU;KACP,SAAS,CAAC,IAAI,CAAC;KACf,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;KAC3B,IAAI,CAAC,GAAG,CAAC,CAAC;AAEf;;;;;;GAMG;AACH,MAAM,gBAAgB,GAAG,CACvB,QAAuD,EACvD,aAAiC,EACjC,UAAuB,EACd,EAAE,CACX,QAAQ,CAAC,IAAI,KAAK,cAAc,CAAC,aAAa;IAC9C,iBAAiB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE;QACzC,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAEnC,OAAO,CACL,QAAQ,KAAK,SAAS;YACtB,UAAU,CAAC,UAAU,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,KAAK,aAAa,CACpE,CAAC;IACJ,CAAC,CAAC,CAAC;AAML;;;;;GAKG;AACH,MAAM,qBAAqB,GAAG,CAC5B,MAAqD,EAC5C,EAAE;IACX,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC,aAAa,EAAE,CAAC;QACjD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAEtC,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,uBAAuB;QACpD,GAAG,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;QACpC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,WAAW,CAAC,CACxE,CAAC;AACJ,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,cAAc,GAAG,CACrB,QAAuD,EACvD,YAAoB,EAC2B,EAAE;IACjD,IAAI,QAAQ,CAAC,IAAI,KAAK,cAAc,CAAC,aAAa,EAAE,CAAC;QACnD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAExC,OAAO,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY;QAC1E,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CACzB,OAA2D,EAC3D,aAAqB,EACrB,cAAiD,EACxC,EAAE;IACX,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC;IAE3E,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CACnC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,KAAK,aAAa,CACtD,CAAC;IAEF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAC7B,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,KAAK,cAAc,CACvD,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"prefer-curried-produce.mjs","sourceRoot":"","sources":["../../../../src/plugins/immer-coding-style/rules/prefer-curried-produce.mts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-hidden-type-assertions.d.mts","sourceRoot":"","sources":["../../../../src/plugins/total-functions/rules/no-hidden-type-assertions.mts"],"names":[],"mappings":"AAIA,OAAO,EAEL,WAAW,EAEZ,MAAM,0BAA0B,CAAC;AAsBlC,oDAAoD;AAEpD,eAAO,MAAM,sBAAsB;;CA8QxB,CAAC"}
1
+ {"version":3,"file":"no-hidden-type-assertions.d.mts","sourceRoot":"","sources":["../../../../src/plugins/total-functions/rules/no-hidden-type-assertions.mts"],"names":[],"mappings":"AAKA,OAAO,EAEL,WAAW,EAEZ,MAAM,0BAA0B,CAAC;AAgClC,oDAAoD;AAEpD,eAAO,MAAM,sBAAsB;;CAscxB,CAAC"}