eslint-config-typed 4.2.1 → 4.3.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 (170) hide show
  1. package/README.md +4 -0
  2. package/dist/configs/immer.d.mts +3 -0
  3. package/dist/configs/immer.d.mts.map +1 -0
  4. package/dist/configs/immer.mjs +11 -0
  5. package/dist/configs/immer.mjs.map +1 -0
  6. package/dist/configs/index.d.mts +2 -0
  7. package/dist/configs/index.d.mts.map +1 -1
  8. package/dist/configs/index.mjs +2 -0
  9. package/dist/configs/index.mjs.map +1 -1
  10. package/dist/configs/plugins.d.mts +1 -1
  11. package/dist/configs/plugins.d.mts.map +1 -1
  12. package/dist/configs/plugins.mjs +2 -0
  13. package/dist/configs/plugins.mjs.map +1 -1
  14. package/dist/configs/ts-data-forge.d.mts +3 -0
  15. package/dist/configs/ts-data-forge.d.mts.map +1 -0
  16. package/dist/configs/ts-data-forge.mjs +11 -0
  17. package/dist/configs/ts-data-forge.mjs.map +1 -0
  18. package/dist/configs/typescript.d.mts.map +1 -1
  19. package/dist/configs/typescript.mjs +0 -2
  20. package/dist/configs/typescript.mjs.map +1 -1
  21. package/dist/entry-point.mjs +4 -0
  22. package/dist/entry-point.mjs.map +1 -1
  23. package/dist/index.mjs +4 -0
  24. package/dist/index.mjs.map +1 -1
  25. package/dist/plugins/index.d.mts +1 -0
  26. package/dist/plugins/index.d.mts.map +1 -1
  27. package/dist/plugins/index.mjs +1 -0
  28. package/dist/plugins/index.mjs.map +1 -1
  29. package/dist/plugins/ts-data-forge/index.d.mts +2 -0
  30. package/dist/plugins/ts-data-forge/index.d.mts.map +1 -0
  31. package/dist/plugins/ts-data-forge/index.mjs +2 -0
  32. package/dist/plugins/ts-data-forge/index.mjs.map +1 -0
  33. package/dist/plugins/ts-data-forge/plugin.d.mts +3 -0
  34. package/dist/plugins/ts-data-forge/plugin.d.mts.map +1 -0
  35. package/dist/plugins/ts-data-forge/plugin.mjs +8 -0
  36. package/dist/plugins/ts-data-forge/plugin.mjs.map +1 -0
  37. package/dist/plugins/ts-data-forge/rules/branded-number-types.d.mts +5 -0
  38. package/dist/plugins/ts-data-forge/rules/branded-number-types.d.mts.map +1 -0
  39. package/dist/plugins/ts-data-forge/rules/branded-number-types.mjs +35 -0
  40. package/dist/plugins/ts-data-forge/rules/branded-number-types.mjs.map +1 -0
  41. package/dist/plugins/ts-data-forge/rules/constants.d.mts +2 -0
  42. package/dist/plugins/ts-data-forge/rules/constants.d.mts.map +1 -0
  43. package/dist/plugins/ts-data-forge/rules/constants.mjs +4 -0
  44. package/dist/plugins/ts-data-forge/rules/constants.mjs.map +1 -0
  45. package/dist/plugins/ts-data-forge/rules/import-utils.d.mts +5 -0
  46. package/dist/plugins/ts-data-forge/rules/import-utils.d.mts.map +1 -0
  47. package/dist/plugins/ts-data-forge/rules/import-utils.mjs +31 -0
  48. package/dist/plugins/ts-data-forge/rules/import-utils.mjs.map +1 -0
  49. package/dist/plugins/ts-data-forge/rules/index.d.mts +2 -0
  50. package/dist/plugins/ts-data-forge/rules/index.d.mts.map +1 -0
  51. package/dist/plugins/ts-data-forge/rules/index.mjs +2 -0
  52. package/dist/plugins/ts-data-forge/rules/index.mjs.map +1 -0
  53. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-array-at-least-length.d.mts +6 -0
  54. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-array-at-least-length.d.mts.map +1 -0
  55. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-array-at-least-length.mjs +94 -0
  56. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-array-at-least-length.mjs.map +1 -0
  57. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-array-of-length.d.mts +6 -0
  58. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-array-of-length.d.mts.map +1 -0
  59. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-array-of-length.mjs +95 -0
  60. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-array-of-length.mjs.map +1 -0
  61. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-array.d.mts +6 -0
  62. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-array.d.mts.map +1 -0
  63. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-array.mjs +72 -0
  64. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-array.mjs.map +1 -0
  65. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-non-empty.d.mts +6 -0
  66. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-non-empty.d.mts.map +1 -0
  67. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-non-empty.mjs +71 -0
  68. package/dist/plugins/ts-data-forge/rules/prefer-arr-is-non-empty.mjs.map +1 -0
  69. package/dist/plugins/ts-data-forge/rules/prefer-arr-sum.d.mts +6 -0
  70. package/dist/plugins/ts-data-forge/rules/prefer-arr-sum.d.mts.map +1 -0
  71. package/dist/plugins/ts-data-forge/rules/prefer-arr-sum.mjs +183 -0
  72. package/dist/plugins/ts-data-forge/rules/prefer-arr-sum.mjs.map +1 -0
  73. package/dist/plugins/ts-data-forge/rules/prefer-as-int.d.mts +6 -0
  74. package/dist/plugins/ts-data-forge/rules/prefer-as-int.d.mts.map +1 -0
  75. package/dist/plugins/ts-data-forge/rules/prefer-as-int.mjs +86 -0
  76. package/dist/plugins/ts-data-forge/rules/prefer-as-int.mjs.map +1 -0
  77. package/dist/plugins/ts-data-forge/rules/prefer-is-non-null-object.d.mts +6 -0
  78. package/dist/plugins/ts-data-forge/rules/prefer-is-non-null-object.d.mts.map +1 -0
  79. package/dist/plugins/ts-data-forge/rules/prefer-is-non-null-object.mjs +103 -0
  80. package/dist/plugins/ts-data-forge/rules/prefer-is-non-null-object.mjs.map +1 -0
  81. package/dist/plugins/ts-data-forge/rules/prefer-is-record-and-has-key.d.mts +6 -0
  82. package/dist/plugins/ts-data-forge/rules/prefer-is-record-and-has-key.d.mts.map +1 -0
  83. package/dist/plugins/ts-data-forge/rules/prefer-is-record-and-has-key.mjs +105 -0
  84. package/dist/plugins/ts-data-forge/rules/prefer-is-record-and-has-key.mjs.map +1 -0
  85. package/dist/plugins/ts-data-forge/rules/prefer-range-for-loop.d.mts +6 -0
  86. package/dist/plugins/ts-data-forge/rules/prefer-range-for-loop.d.mts.map +1 -0
  87. package/dist/plugins/ts-data-forge/rules/prefer-range-for-loop.mjs +130 -0
  88. package/dist/plugins/ts-data-forge/rules/prefer-range-for-loop.mjs.map +1 -0
  89. package/dist/plugins/ts-data-forge/rules/rules.d.mts +12 -0
  90. package/dist/plugins/ts-data-forge/rules/rules.d.mts.map +1 -0
  91. package/dist/plugins/ts-data-forge/rules/rules.mjs +24 -0
  92. package/dist/plugins/ts-data-forge/rules/rules.mjs.map +1 -0
  93. package/dist/plugins/ts-restrictions/rules/check-destructuring-completeness.d.mts.map +1 -1
  94. package/dist/plugins/ts-restrictions/rules/check-destructuring-completeness.mjs +6 -8
  95. package/dist/plugins/ts-restrictions/rules/check-destructuring-completeness.mjs.map +1 -1
  96. package/dist/plugins/ts-restrictions/rules/no-restricted-cast-name.d.mts.map +1 -1
  97. package/dist/plugins/ts-restrictions/rules/no-restricted-cast-name.mjs +11 -15
  98. package/dist/plugins/ts-restrictions/rules/no-restricted-cast-name.mjs.map +1 -1
  99. package/dist/rules/eslint-jest-rules.d.mts +3 -0
  100. package/dist/rules/eslint-jest-rules.d.mts.map +1 -1
  101. package/dist/rules/eslint-jest-rules.mjs +3 -0
  102. package/dist/rules/eslint-jest-rules.mjs.map +1 -1
  103. package/dist/rules/eslint-ts-data-forge-rules.d.mts +12 -0
  104. package/dist/rules/eslint-ts-data-forge-rules.d.mts.map +1 -0
  105. package/dist/rules/eslint-ts-data-forge-rules.mjs +14 -0
  106. package/dist/rules/eslint-ts-data-forge-rules.mjs.map +1 -0
  107. package/dist/rules/eslint-vitest-rules.d.mts +2 -2
  108. package/dist/rules/eslint-vitest-rules.mjs +2 -2
  109. package/dist/rules/eslint-vitest-rules.mjs.map +1 -1
  110. package/dist/rules/index.d.mts +1 -0
  111. package/dist/rules/index.d.mts.map +1 -1
  112. package/dist/rules/index.mjs +1 -0
  113. package/dist/rules/index.mjs.map +1 -1
  114. package/dist/types/define-known-rules.d.mts +2 -2
  115. package/dist/types/define-known-rules.d.mts.map +1 -1
  116. package/dist/types/define-known-rules.mjs.map +1 -1
  117. package/dist/types/rules/eslint-jest-rules.d.mts +119 -67
  118. package/dist/types/rules/eslint-jest-rules.d.mts.map +1 -1
  119. package/dist/types/rules/eslint-ts-data-forge-rules.d.mts +147 -0
  120. package/dist/types/rules/eslint-ts-data-forge-rules.d.mts.map +1 -0
  121. package/dist/types/rules/eslint-ts-data-forge-rules.mjs +2 -0
  122. package/dist/types/rules/eslint-ts-data-forge-rules.mjs.map +1 -0
  123. package/dist/types/rules/eslint-vitest-rules.d.mts +41 -20
  124. package/dist/types/rules/eslint-vitest-rules.d.mts.map +1 -1
  125. package/dist/types/rules/index.d.mts +1 -0
  126. package/dist/types/rules/index.d.mts.map +1 -1
  127. package/package.json +14 -14
  128. package/src/configs/immer.mts +9 -0
  129. package/src/configs/index.mts +2 -0
  130. package/src/configs/plugins.mts +3 -0
  131. package/src/configs/ts-data-forge.mts +11 -0
  132. package/src/configs/typescript.mts +0 -2
  133. package/src/plugins/index.mts +1 -0
  134. package/src/plugins/strict-dependencies/rules/resolve-import-path.test.mts +7 -9
  135. package/src/plugins/ts-data-forge/index.mts +1 -0
  136. package/src/plugins/ts-data-forge/plugin.mts +6 -0
  137. package/src/plugins/ts-data-forge/rules/branded-number-types.mts +36 -0
  138. package/src/plugins/ts-data-forge/rules/constants.mts +1 -0
  139. package/src/plugins/ts-data-forge/rules/import-utils.mts +56 -0
  140. package/src/plugins/ts-data-forge/rules/index.mts +1 -0
  141. package/src/plugins/ts-data-forge/rules/prefer-arr-is-array-at-least-length.mts +140 -0
  142. package/src/plugins/ts-data-forge/rules/prefer-arr-is-array-at-least-length.test.mts +175 -0
  143. package/src/plugins/ts-data-forge/rules/prefer-arr-is-array-of-length.mts +144 -0
  144. package/src/plugins/ts-data-forge/rules/prefer-arr-is-array-of-length.test.mts +183 -0
  145. package/src/plugins/ts-data-forge/rules/prefer-arr-is-array.mts +97 -0
  146. package/src/plugins/ts-data-forge/rules/prefer-arr-is-array.test.mts +62 -0
  147. package/src/plugins/ts-data-forge/rules/prefer-arr-is-non-empty.mts +106 -0
  148. package/src/plugins/ts-data-forge/rules/prefer-arr-is-non-empty.test.mts +83 -0
  149. package/src/plugins/ts-data-forge/rules/prefer-arr-sum.mts +269 -0
  150. package/src/plugins/ts-data-forge/rules/prefer-arr-sum.test.mts +171 -0
  151. package/src/plugins/ts-data-forge/rules/prefer-as-int.mts +130 -0
  152. package/src/plugins/ts-data-forge/rules/prefer-as-int.test.mts +267 -0
  153. package/src/plugins/ts-data-forge/rules/prefer-is-non-null-object.mts +144 -0
  154. package/src/plugins/ts-data-forge/rules/prefer-is-non-null-object.test.mts +156 -0
  155. package/src/plugins/ts-data-forge/rules/prefer-is-record-and-has-key.mts +158 -0
  156. package/src/plugins/ts-data-forge/rules/prefer-is-record-and-has-key.test.mts +191 -0
  157. package/src/plugins/ts-data-forge/rules/prefer-range-for-loop.mts +181 -0
  158. package/src/plugins/ts-data-forge/rules/prefer-range-for-loop.test.mts +156 -0
  159. package/src/plugins/ts-data-forge/rules/rules.mts +22 -0
  160. package/src/plugins/ts-restrictions/rules/check-destructuring-completeness.mts +6 -8
  161. package/src/plugins/ts-restrictions/rules/no-restricted-cast-name.mts +11 -15
  162. package/src/rules/eslint-jest-rules.mts +3 -0
  163. package/src/rules/eslint-ts-data-forge-rules.mts +13 -0
  164. package/src/rules/eslint-vitest-rules.mts +2 -2
  165. package/src/rules/index.mts +1 -0
  166. package/src/types/define-known-rules.mts +2 -0
  167. package/src/types/rules/eslint-jest-rules.mts +122 -67
  168. package/src/types/rules/eslint-ts-data-forge-rules.mts +156 -0
  169. package/src/types/rules/eslint-vitest-rules.mts +46 -21
  170. package/src/types/rules/index.mts +1 -0
package/README.md CHANGED
@@ -660,6 +660,10 @@ This type definition provides overridden `Chai.Assert` type:
660
660
  | `ban-use-imperative-handle-hook` | Forbid `React.useImperativeHandle`; move logic to the parent component |
661
661
  | `display-name` | Require explicit `displayName` on React.memo components |
662
662
 
663
+ #### ts-data-forge
664
+
665
+ **`eslintPluginTsDataForge`** - Custom ESLint plugin for [`ts-data-forge`](https://github.com/noshiro-pf/ts-data-forge).
666
+
663
667
  ### Type Definitions
664
668
 
665
669
  All rules and configurations come with complete TypeScript type definitions:
@@ -0,0 +1,3 @@
1
+ import { type FlatConfig } from '../types/index.mjs';
2
+ export declare const eslintConfigForImmer: (files?: readonly string[]) => FlatConfig;
3
+ //# sourceMappingURL=immer.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"immer.d.mts","sourceRoot":"","sources":["../../src/configs/immer.mts"],"names":[],"mappings":"AACA,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEvE,eAAO,MAAM,oBAAoB,GAAI,QAAQ,SAAS,MAAM,EAAE,KAAG,UAKpD,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { defineKnownRules } from '../types/define-known-rules.mjs';
2
+ import { eslintImmerCodingStyleRules } from '../rules/eslint-immer-coding-style-rules.mjs';
3
+ import '../rules/eslint-rules.mjs';
4
+
5
+ const eslintConfigForImmer = (files) => ({
6
+ ...(files === undefined ? {} : { files }),
7
+ rules: defineKnownRules({ ...eslintImmerCodingStyleRules }),
8
+ });
9
+
10
+ export { eslintConfigForImmer };
11
+ //# sourceMappingURL=immer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"immer.mjs","sources":["../../src/configs/immer.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;MAGa,oBAAoB,GAAG,CAAC,KAAyB,MAC3D;AACC,IAAA,IAAI,KAAK,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AAEzC,IAAA,KAAK,EAAE,gBAAgB,CAAC,EAAE,GAAG,2BAA2B,EAAE,CAAC;AAC5D,CAAA;;;;"}
@@ -1,5 +1,6 @@
1
1
  export * from './browser.mjs';
2
2
  export * from './cypress.mjs';
3
+ export * from './immer.mjs';
3
4
  export * from './jest.mjs';
4
5
  export * from './nodejs.mjs';
5
6
  export * from './playwright.mjs';
@@ -7,6 +8,7 @@ export * from './plugins.mjs';
7
8
  export * from './preact.mjs';
8
9
  export * from './react.mjs';
9
10
  export * from './testing-library.mjs';
11
+ export * from './ts-data-forge.mjs';
10
12
  export * from './typescript-without-rules.mjs';
11
13
  export * from './typescript.mjs';
12
14
  export * from './vitest.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/configs/index.mts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/configs/index.mts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export { eslintConfigForBrowser } from './browser.mjs';
2
2
  export { eslintConfigForCypress } from './cypress.mjs';
3
+ export { eslintConfigForImmer } from './immer.mjs';
3
4
  export { eslintConfigForJest } from './jest.mjs';
4
5
  export { eslintConfigForNodeJs } from './nodejs.mjs';
5
6
  export { eslintConfigForPlaywright } from './playwright.mjs';
@@ -7,6 +8,7 @@ export { plugins } from './plugins.mjs';
7
8
  export { eslintConfigForPreact } from './preact.mjs';
8
9
  export { eslintConfigForReact } from './react.mjs';
9
10
  export { eslintConfigForTestingLibrary } from './testing-library.mjs';
11
+ export { eslintConfigForTsDataForge } from './ts-data-forge.mjs';
10
12
  export { eslintConfigForTypeScriptWithoutRules } from './typescript-without-rules.mjs';
11
13
  export { eslintConfigForTypeScript } from './typescript.mjs';
12
14
  export { eslintConfigForVitest } from './vitest.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
@@ -1,3 +1,3 @@
1
1
  import { type ESLintPlugin } from '../types/index.mjs';
2
- export declare const plugins: Record<'@typescript-eslint' | '@stylistic' | 'array-func' | 'cypress' | 'playwright' | 'functional' | 'import-x' | 'jest' | 'vitest' | 'jsx-a11y' | 'math' | 'prefer-arrow-functions' | 'promise' | 'n' | 'react' | 'react-hooks' | 'react-refresh' | 'react-perf' | 'security' | 'testing-library' | 'unicorn' | 'sort-destructure-keys' | 'eslint-plugin' | 'tree-shakable' | 'total-functions' | 'strict-dependencies' | 'ts-restrictions' | 'react-coding-style' | 'immer-coding-style' | 'vitest-coding-style', Omit<ESLintPlugin, 'configs'>>;
2
+ export declare const plugins: Record<'@typescript-eslint' | '@stylistic' | 'array-func' | 'cypress' | 'playwright' | 'functional' | 'import-x' | 'jest' | 'vitest' | 'jsx-a11y' | 'math' | 'prefer-arrow-functions' | 'promise' | 'n' | 'react' | 'react-hooks' | 'react-refresh' | 'react-perf' | 'security' | 'testing-library' | 'unicorn' | 'sort-destructure-keys' | 'eslint-plugin' | 'tree-shakable' | 'total-functions' | 'strict-dependencies' | 'ts-restrictions' | 'ts-data-forge' | 'react-coding-style' | 'immer-coding-style' | 'vitest-coding-style', Omit<ESLintPlugin, 'configs'>>;
3
3
  //# sourceMappingURL=plugins.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugins.d.mts","sourceRoot":"","sources":["../../src/configs/plugins.mts"],"names":[],"mappings":"AAkEA,OAAO,EAAE,KAAK,YAAY,EAAmB,MAAM,oBAAoB,CAAC;AAExE,eAAO,MAAM,OAAO,EAAE,MAAM,CACxB,oBAAoB,GACpB,YAAY,GACZ,YAAY,GACZ,SAAS,GACT,YAAY,GACZ,YAAY,GACZ,UAAU,GACV,MAAM,GACN,QAAQ,GACR,UAAU,GACV,MAAM,GACN,wBAAwB,GACxB,SAAS,GACT,GAAG,GACH,OAAO,GACP,aAAa,GACb,eAAe,GACf,YAAY,GACZ,UAAU,GACV,iBAAiB,GACjB,SAAS,GACT,uBAAuB,GACvB,eAAe,GACf,eAAe,GACf,iBAAiB,GACjB,qBAAqB,GACrB,iBAAiB,GACjB,oBAAoB,GACpB,oBAAoB,GACpB,qBAAqB,EACvB,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAuCW,CAAC"}
1
+ {"version":3,"file":"plugins.d.mts","sourceRoot":"","sources":["../../src/configs/plugins.mts"],"names":[],"mappings":"AAmEA,OAAO,EAAE,KAAK,YAAY,EAAmB,MAAM,oBAAoB,CAAC;AAExE,eAAO,MAAM,OAAO,EAAE,MAAM,CACxB,oBAAoB,GACpB,YAAY,GACZ,YAAY,GACZ,SAAS,GACT,YAAY,GACZ,YAAY,GACZ,UAAU,GACV,MAAM,GACN,QAAQ,GACR,UAAU,GACV,MAAM,GACN,wBAAwB,GACxB,SAAS,GACT,GAAG,GACH,OAAO,GACP,aAAa,GACb,eAAe,GACf,YAAY,GACZ,UAAU,GACV,iBAAiB,GACjB,SAAS,GACT,uBAAuB,GACvB,eAAe,GACf,eAAe,GACf,iBAAiB,GACjB,qBAAqB,GACrB,iBAAiB,GACjB,eAAe,GACf,oBAAoB,GACpB,oBAAoB,GACpB,qBAAqB,EACvB,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAwCW,CAAC"}
@@ -26,6 +26,7 @@ import { eslintPluginReactCodingStyle } from '../plugins/react-coding-style/plug
26
26
  import { eslintPluginStrictDependencies } from '../plugins/strict-dependencies/plugin.mjs';
27
27
  import { eslintPluginTotalFunctions } from '../plugins/total-functions/plugin.mjs';
28
28
  import { eslintPluginTreeShakable } from '../plugins/tree-shakable/plugin.mjs';
29
+ import { eslintPluginTsDataForge } from '../plugins/ts-data-forge/plugin.mjs';
29
30
  import { eslintPluginTsRestrictions } from '../plugins/ts-restrictions/plugin.mjs';
30
31
  import { eslintPluginVitestCodingStyle } from '../plugins/vitest-coding-style/plugin.mjs';
31
32
 
@@ -66,6 +67,7 @@ const plugins = {
66
67
  'total-functions': eslintPluginTotalFunctions,
67
68
  'strict-dependencies': eslintPluginStrictDependencies,
68
69
  'ts-restrictions': eslintPluginTsRestrictions,
70
+ 'ts-data-forge': eslintPluginTsDataForge,
69
71
  'react-coding-style': eslintPluginReactCodingStyle,
70
72
  'immer-coding-style': eslintPluginImmerCodingStyle,
71
73
  'vitest-coding-style': eslintPluginVitestCodingStyle,
@@ -1 +1 @@
1
- {"version":3,"file":"plugins.mjs","sources":["../../src/configs/plugins.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AAmEO,MAAM,OAAO,GAgChB;AACF,IAAA,oBAAoB,EAAE,gBAAgB;AACtC,IAAA,YAAY,EAAE,SAAS;;AAEvB,IAAA,YAAY,EAAE,qBAAqB;AACnC,IAAA,OAAO,EAAE,mBAAmB;AAC5B,IAAA,UAAU,EAAE,sBAAsB;AAClC,IAAA,UAAU,EAAE,sBAAsB;;AAElC,IAAA,uBAAuB,EAAE,+BAA+B;AACxD,IAAA,UAAU,EAAE,kBAAkB;AAC9B,IAAA,IAAI,EAAE,gBAAgB;AACtB,IAAA,MAAM,EAAE,kBAAkB;;AAE1B,IAAA,UAAU,EAAE,mBAAmB;AAC/B,IAAA,IAAI,EAAE,gBAAgB;AACtB,IAAA,wBAAwB,EAAE,gCAAgC;;AAE1D,IAAA,OAAO,EAAE,mBAAmB;AAC5B,IAAA,CAAC,EAAE,aAAa;AAChB,IAAA,KAAK,EAAE,iBAAiB;;AAExB,IAAA,aAAa,EAAE,sBAAiD;AAChE,IAAA,eAAe,EAAE,wBAAwB;;AAEzC,IAAA,YAAY,EAAE,qBAAqB;;AAEnC,IAAA,QAAQ,EAAE,oBAAoB;AAC9B,IAAA,iBAAiB,EAAE,0BAA0B;AAC7C,IAAA,OAAO,EAAE,mBAAmB;AAC5B,IAAA,eAAe,EAAE,wBAAwB;AACzC,IAAA,eAAe,EAAE,wBAAwB;AACzC,IAAA,iBAAiB,EAAE,0BAA0B;AAC7C,IAAA,qBAAqB,EAAE,8BAA8B;AACrD,IAAA,iBAAiB,EAAE,0BAA0B;AAC7C,IAAA,oBAAoB,EAAE,4BAA4B;AAClD,IAAA,oBAAoB,EAAE,4BAA4B;AAClD,IAAA,qBAAqB,EAAE,6BAA6B;;;;;"}
1
+ {"version":3,"file":"plugins.mjs","sources":["../../src/configs/plugins.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AAoEO,MAAM,OAAO,GAiChB;AACF,IAAA,oBAAoB,EAAE,gBAAgB;AACtC,IAAA,YAAY,EAAE,SAAS;;AAEvB,IAAA,YAAY,EAAE,qBAAqB;AACnC,IAAA,OAAO,EAAE,mBAAmB;AAC5B,IAAA,UAAU,EAAE,sBAAsB;AAClC,IAAA,UAAU,EAAE,sBAAsB;;AAElC,IAAA,uBAAuB,EAAE,+BAA+B;AACxD,IAAA,UAAU,EAAE,kBAAkB;AAC9B,IAAA,IAAI,EAAE,gBAAgB;AACtB,IAAA,MAAM,EAAE,kBAAkB;;AAE1B,IAAA,UAAU,EAAE,mBAAmB;AAC/B,IAAA,IAAI,EAAE,gBAAgB;AACtB,IAAA,wBAAwB,EAAE,gCAAgC;;AAE1D,IAAA,OAAO,EAAE,mBAAmB;AAC5B,IAAA,CAAC,EAAE,aAAa;AAChB,IAAA,KAAK,EAAE,iBAAiB;;AAExB,IAAA,aAAa,EAAE,sBAAiD;AAChE,IAAA,eAAe,EAAE,wBAAwB;;AAEzC,IAAA,YAAY,EAAE,qBAAqB;;AAEnC,IAAA,QAAQ,EAAE,oBAAoB;AAC9B,IAAA,iBAAiB,EAAE,0BAA0B;AAC7C,IAAA,OAAO,EAAE,mBAAmB;AAC5B,IAAA,eAAe,EAAE,wBAAwB;AACzC,IAAA,eAAe,EAAE,wBAAwB;AACzC,IAAA,iBAAiB,EAAE,0BAA0B;AAC7C,IAAA,qBAAqB,EAAE,8BAA8B;AACrD,IAAA,iBAAiB,EAAE,0BAA0B;AAC7C,IAAA,eAAe,EAAE,uBAAuB;AACxC,IAAA,oBAAoB,EAAE,4BAA4B;AAClD,IAAA,oBAAoB,EAAE,4BAA4B;AAClD,IAAA,qBAAqB,EAAE,6BAA6B;;;;;"}
@@ -0,0 +1,3 @@
1
+ import { type FlatConfig } from '../types/index.mjs';
2
+ export declare const eslintConfigForTsDataForge: (files?: readonly string[]) => FlatConfig;
3
+ //# sourceMappingURL=ts-data-forge.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts-data-forge.d.mts","sourceRoot":"","sources":["../../src/configs/ts-data-forge.mts"],"names":[],"mappings":"AACA,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEvE,eAAO,MAAM,0BAA0B,GACrC,QAAQ,SAAS,MAAM,EAAE,KACxB,UAKU,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { defineKnownRules } from '../types/define-known-rules.mjs';
2
+ import '../rules/eslint-rules.mjs';
3
+ import { eslintTsDataForgeRules } from '../rules/eslint-ts-data-forge-rules.mjs';
4
+
5
+ const eslintConfigForTsDataForge = (files) => ({
6
+ ...(files === undefined ? {} : { files }),
7
+ rules: defineKnownRules({ ...eslintTsDataForgeRules }),
8
+ });
9
+
10
+ export { eslintConfigForTsDataForge };
11
+ //# sourceMappingURL=ts-data-forge.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts-data-forge.mjs","sources":["../../src/configs/ts-data-forge.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;MAGa,0BAA0B,GAAG,CACxC,KAAyB,MAExB;AACC,IAAA,IAAI,KAAK,KAAK,SAAS,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AAEzC,IAAA,KAAK,EAAE,gBAAgB,CAAC,EAAE,GAAG,sBAAsB,EAAE,CAAC;AACvD,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"typescript.d.mts","sourceRoot":"","sources":["../../src/configs/typescript.mts"],"names":[],"mappings":"AAmBA,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGvE,eAAO,MAAM,yBAAyB,GAAI,8EAMvC,QAAQ,CAAC;IACV,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC,KAAG,SAAS,UAAU,EA8FZ,CAAC"}
1
+ {"version":3,"file":"typescript.d.mts","sourceRoot":"","sources":["../../src/configs/typescript.mts"],"names":[],"mappings":"AAkBA,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGvE,eAAO,MAAM,yBAAyB,GAAI,8EAMvC,QAAQ,CAAC;IACV,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC,KAAG,SAAS,UAAU,EA6FZ,CAAC"}
@@ -2,7 +2,6 @@ import { allExtensionsStr } from '../constants/all-extensions.mjs';
2
2
  import { eslintArrayFuncRules } from '../rules/eslint-array-func-rules.mjs';
3
3
  import { defineKnownRules } from '../types/define-known-rules.mjs';
4
4
  import { eslintFunctionalRules } from '../rules/eslint-functional-rules.mjs';
5
- import { eslintImmerCodingStyleRules } from '../rules/eslint-immer-coding-style-rules.mjs';
6
5
  import { eslintImportsRules } from '../rules/eslint-import-rules.mjs';
7
6
  import { eslintMathRules } from '../rules/eslint-math-rules.mjs';
8
7
  import { eslintPluginSortDestructureKeysRules } from '../rules/eslint-plugin-sort-destructure-keys-rules.mjs';
@@ -41,7 +40,6 @@ const eslintConfigForTypeScript = ({ files, packageDirs, tsconfigFileName, tscon
41
40
  ...eslintTreeShakableRules,
42
41
  ...eslintPluginSortDestructureKeysRules,
43
42
  ...eslintTsRestrictionsRules,
44
- ...eslintImmerCodingStyleRules,
45
43
  'strict-dependencies/strict-dependencies': ['error', []],
46
44
  'import-x/no-extraneous-dependencies': [
47
45
  'error',
@@ -1 +1 @@
1
- {"version":3,"file":"typescript.mjs","sources":["../../src/configs/typescript.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAsBO,MAAM,yBAAyB,GAAG,CAAC,EACxC,KAAK,EACL,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GAOhB,KACA;AACE,IAAA,GAAG,qCAAqC,CAAC;QACvC,gBAAgB;QAChB,eAAe;KAChB,CAAC;AACF,IAAA;AACE,QAAA,KAAK,EAAE,KAAK,IAAI,CAAC,sCAAsC,CAAC;QACxD,KAAK,EAAE,gBAAgB,CAAC;AACtB,YAAA,GAAG,oBAAoB;AACvB,YAAA,GAAG,8BAA8B;AACjC,YAAA,GAAG,qBAAqB;AACxB,YAAA,GAAG,yBAAyB;AAC5B,YAAA,GAAG,kBAAkB;AACrB,YAAA,GAAG,eAAe;AAClB,YAAA,GAAG,kBAAkB;AACrB,YAAA,GAAG,WAAW;AACd,YAAA,GAAG,oBAAoB;AACvB,YAAA,GAAG,mBAAmB;AACtB,YAAA,GAAG,kBAAkB;AACrB,YAAA,GAAG,qBAAqB;AACxB,YAAA,GAAG,uBAAuB;AAC1B,YAAA,GAAG,oCAAoC;AACvC,YAAA,GAAG,yBAAyB;AAC5B,YAAA,GAAG,2BAA2B;AAE9B,YAAA,yCAAyC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;AAExD,YAAA,qCAAqC,EAAE;gBACrC,OAAO;AACP,gBAAA;AACE,oBAAA,UAAU,EAAE,WAAW;AACxB,iBAAA;AACF,aAAA;YACD,IAAI,gBAAgB,KAAK;AACvB,kBAAE;AACE,oBAAA,iDAAiD,EAAE,KAAK;AACxD,oBAAA,2DAA2D,EACzD,KAAK;AACR;kBACD,EAAE,CAAC;SACR,CAAC;AACH,KAAA;AACD,IAAA;QACE,KAAK,EAAE,CAAC,uBAAuB,CAAC;QAChC,KAAK,EAAE,gBAAgB,CAAC;AACtB,YAAA,kDAAkD,EAAE,KAAK;AACzD,YAAA,8BAA8B,EAAE,KAAK;SACtC,CAAC;AACH,KAAA;AACD,IAAA;QACE,KAAK,EAAE,CAAC,qBAAqB,CAAC;QAC9B,KAAK,EAAE,gBAAgB,CAAC;AACtB,YAAA,2CAA2C,EAAE,KAAK;;AAGlD,YAAA,gDAAgD,EAAE,KAAK;AAEvD,YAAA,sBAAsB,EAAE,KAAK;SAC9B,CAAC;AACH,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,CAAC,CAAA,UAAA,EAAa,gBAAgB,GAAG,CAAC;QACzC,KAAK,EAAE,gBAAgB,CAAC;AACtB,YAAA,4CAA4C,EAAE,KAAK;SACpD,CAAC;AACH,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE;;;;;;;;YASL,qCAAqC;YAErC,uCAAuC;YAEvC,4CAA4C;YAC5C,gDAAgD;YAChD,qCAAqC;AACtC,SAAA;QACD,KAAK,EAAE,gBAAgB,CAAC;AACtB,YAAA,0CAA0C,EAAE,KAAK;AACjD,YAAA,4BAA4B,EAAE,KAAK;AACnC,YAAA,sCAAsC,EAAE,KAAK;AAC7C,YAAA,8BAA8B,EAAE,KAAK;AACrC,YAAA,8BAA8B,EAAE,KAAK;AACrC,YAAA,oBAAoB,EAAE,KAAK;SAC5B,CAAC;AACH,KAAA;;;;;"}
1
+ {"version":3,"file":"typescript.mjs","sources":["../../src/configs/typescript.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAqBO,MAAM,yBAAyB,GAAG,CAAC,EACxC,KAAK,EACL,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GAOhB,KACA;AACE,IAAA,GAAG,qCAAqC,CAAC;QACvC,gBAAgB;QAChB,eAAe;KAChB,CAAC;AACF,IAAA;AACE,QAAA,KAAK,EAAE,KAAK,IAAI,CAAC,sCAAsC,CAAC;QACxD,KAAK,EAAE,gBAAgB,CAAC;AACtB,YAAA,GAAG,oBAAoB;AACvB,YAAA,GAAG,8BAA8B;AACjC,YAAA,GAAG,qBAAqB;AACxB,YAAA,GAAG,yBAAyB;AAC5B,YAAA,GAAG,kBAAkB;AACrB,YAAA,GAAG,eAAe;AAClB,YAAA,GAAG,kBAAkB;AACrB,YAAA,GAAG,WAAW;AACd,YAAA,GAAG,oBAAoB;AACvB,YAAA,GAAG,mBAAmB;AACtB,YAAA,GAAG,kBAAkB;AACrB,YAAA,GAAG,qBAAqB;AACxB,YAAA,GAAG,uBAAuB;AAC1B,YAAA,GAAG,oCAAoC;AACvC,YAAA,GAAG,yBAAyB;AAE5B,YAAA,yCAAyC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;AAExD,YAAA,qCAAqC,EAAE;gBACrC,OAAO;AACP,gBAAA;AACE,oBAAA,UAAU,EAAE,WAAW;AACxB,iBAAA;AACF,aAAA;YACD,IAAI,gBAAgB,KAAK;AACvB,kBAAE;AACE,oBAAA,iDAAiD,EAAE,KAAK;AACxD,oBAAA,2DAA2D,EACzD,KAAK;AACR;kBACD,EAAE,CAAC;SACR,CAAC;AACH,KAAA;AACD,IAAA;QACE,KAAK,EAAE,CAAC,uBAAuB,CAAC;QAChC,KAAK,EAAE,gBAAgB,CAAC;AACtB,YAAA,kDAAkD,EAAE,KAAK;AACzD,YAAA,8BAA8B,EAAE,KAAK;SACtC,CAAC;AACH,KAAA;AACD,IAAA;QACE,KAAK,EAAE,CAAC,qBAAqB,CAAC;QAC9B,KAAK,EAAE,gBAAgB,CAAC;AACtB,YAAA,2CAA2C,EAAE,KAAK;;AAGlD,YAAA,gDAAgD,EAAE,KAAK;AAEvD,YAAA,sBAAsB,EAAE,KAAK;SAC9B,CAAC;AACH,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE,CAAC,CAAA,UAAA,EAAa,gBAAgB,GAAG,CAAC;QACzC,KAAK,EAAE,gBAAgB,CAAC;AACtB,YAAA,4CAA4C,EAAE,KAAK;SACpD,CAAC;AACH,KAAA;AACD,IAAA;AACE,QAAA,KAAK,EAAE;;;;;;;;YASL,qCAAqC;YAErC,uCAAuC;YAEvC,4CAA4C;YAC5C,gDAAgD;YAChD,qCAAqC;AACtC,SAAA;QACD,KAAK,EAAE,gBAAgB,CAAC;AACtB,YAAA,0CAA0C,EAAE,KAAK;AACjD,YAAA,4BAA4B,EAAE,KAAK;AACnC,YAAA,sCAAsC,EAAE,KAAK;AAC7C,YAAA,8BAA8B,EAAE,KAAK;AACrC,YAAA,8BAA8B,EAAE,KAAK;AACrC,YAAA,oBAAoB,EAAE,KAAK;SAC5B,CAAC;AACH,KAAA;;;;;"}
@@ -1,5 +1,6 @@
1
1
  export { eslintConfigForBrowser } from './configs/browser.mjs';
2
2
  export { eslintConfigForCypress } from './configs/cypress.mjs';
3
+ export { eslintConfigForImmer } from './configs/immer.mjs';
3
4
  export { eslintConfigForJest } from './configs/jest.mjs';
4
5
  export { eslintConfigForNodeJs } from './configs/nodejs.mjs';
5
6
  export { eslintConfigForPlaywright } from './configs/playwright.mjs';
@@ -7,6 +8,7 @@ export { plugins } from './configs/plugins.mjs';
7
8
  export { eslintConfigForPreact } from './configs/preact.mjs';
8
9
  export { eslintConfigForReact } from './configs/react.mjs';
9
10
  export { eslintConfigForTestingLibrary } from './configs/testing-library.mjs';
11
+ export { eslintConfigForTsDataForge } from './configs/ts-data-forge.mjs';
10
12
  export { eslintConfigForTypeScriptWithoutRules } from './configs/typescript-without-rules.mjs';
11
13
  export { eslintConfigForTypeScript } from './configs/typescript.mjs';
12
14
  export { eslintConfigForVitest } from './configs/vitest.mjs';
@@ -15,6 +17,7 @@ export { eslintPluginReactCodingStyle } from './plugins/react-coding-style/plugi
15
17
  export { eslintPluginStrictDependencies } from './plugins/strict-dependencies/plugin.mjs';
16
18
  export { eslintPluginTotalFunctions } from './plugins/total-functions/plugin.mjs';
17
19
  export { eslintPluginTreeShakable } from './plugins/tree-shakable/plugin.mjs';
20
+ export { eslintPluginTsDataForge } from './plugins/ts-data-forge/plugin.mjs';
18
21
  export { eslintPluginTsRestrictions } from './plugins/ts-restrictions/plugin.mjs';
19
22
  export { eslintPluginVitestCodingStyle } from './plugins/vitest-coding-style/plugin.mjs';
20
23
  export { eslintArrayFuncRules } from './rules/eslint-array-func-rules.mjs';
@@ -42,6 +45,7 @@ export { eslintStylisticRules } from './rules/eslint-stylistic-rules.mjs';
42
45
  export { eslintTestingLibraryRules } from './rules/eslint-testing-library-rules.mjs';
43
46
  export { eslintTotalFunctionsRules } from './rules/eslint-total-functions-rules.mjs';
44
47
  export { eslintTreeShakableRules } from './rules/eslint-tree-shakable-rules.mjs';
48
+ export { eslintTsDataForgeRules } from './rules/eslint-ts-data-forge-rules.mjs';
45
49
  export { eslintTsRestrictionsRules } from './rules/eslint-ts-restrictions-rules.mjs';
46
50
  export { eslintUnicornRules } from './rules/eslint-unicorn-rules.mjs';
47
51
  export { eslintVitestCodingStyleRules } from './rules/eslint-vitest-coding-style-rules.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"entry-point.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"entry-point.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index.mjs CHANGED
@@ -1,5 +1,6 @@
1
1
  export { eslintConfigForBrowser } from './configs/browser.mjs';
2
2
  export { eslintConfigForCypress } from './configs/cypress.mjs';
3
+ export { eslintConfigForImmer } from './configs/immer.mjs';
3
4
  export { eslintConfigForJest } from './configs/jest.mjs';
4
5
  export { eslintConfigForNodeJs } from './configs/nodejs.mjs';
5
6
  export { eslintConfigForPlaywright } from './configs/playwright.mjs';
@@ -7,6 +8,7 @@ export { plugins } from './configs/plugins.mjs';
7
8
  export { eslintConfigForPreact } from './configs/preact.mjs';
8
9
  export { eslintConfigForReact } from './configs/react.mjs';
9
10
  export { eslintConfigForTestingLibrary } from './configs/testing-library.mjs';
11
+ export { eslintConfigForTsDataForge } from './configs/ts-data-forge.mjs';
10
12
  export { eslintConfigForTypeScriptWithoutRules } from './configs/typescript-without-rules.mjs';
11
13
  export { eslintConfigForTypeScript } from './configs/typescript.mjs';
12
14
  export { eslintConfigForVitest } from './configs/vitest.mjs';
@@ -15,6 +17,7 @@ export { eslintPluginReactCodingStyle } from './plugins/react-coding-style/plugi
15
17
  export { eslintPluginStrictDependencies } from './plugins/strict-dependencies/plugin.mjs';
16
18
  export { eslintPluginTotalFunctions } from './plugins/total-functions/plugin.mjs';
17
19
  export { eslintPluginTreeShakable } from './plugins/tree-shakable/plugin.mjs';
20
+ export { eslintPluginTsDataForge } from './plugins/ts-data-forge/plugin.mjs';
18
21
  export { eslintPluginTsRestrictions } from './plugins/ts-restrictions/plugin.mjs';
19
22
  export { eslintPluginVitestCodingStyle } from './plugins/vitest-coding-style/plugin.mjs';
20
23
  export { eslintArrayFuncRules } from './rules/eslint-array-func-rules.mjs';
@@ -42,6 +45,7 @@ export { eslintStylisticRules } from './rules/eslint-stylistic-rules.mjs';
42
45
  export { eslintTestingLibraryRules } from './rules/eslint-testing-library-rules.mjs';
43
46
  export { eslintTotalFunctionsRules } from './rules/eslint-total-functions-rules.mjs';
44
47
  export { eslintTreeShakableRules } from './rules/eslint-tree-shakable-rules.mjs';
48
+ export { eslintTsDataForgeRules } from './rules/eslint-ts-data-forge-rules.mjs';
45
49
  export { eslintTsRestrictionsRules } from './rules/eslint-ts-restrictions-rules.mjs';
46
50
  export { eslintUnicornRules } from './rules/eslint-unicorn-rules.mjs';
47
51
  export { eslintVitestCodingStyleRules } from './rules/eslint-vitest-coding-style-rules.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -3,6 +3,7 @@ export * from './react-coding-style/index.mjs';
3
3
  export * from './strict-dependencies/index.mjs';
4
4
  export * from './total-functions/index.mjs';
5
5
  export * from './tree-shakable/index.mjs';
6
+ export * from './ts-data-forge/index.mjs';
6
7
  export * from './ts-restrictions/index.mjs';
7
8
  export * from './vitest-coding-style/index.mjs';
8
9
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/plugins/index.mts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC"}
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../src/plugins/index.mts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC"}
@@ -3,6 +3,7 @@ export { eslintPluginReactCodingStyle } from './react-coding-style/plugin.mjs';
3
3
  export { eslintPluginStrictDependencies } from './strict-dependencies/plugin.mjs';
4
4
  export { eslintPluginTotalFunctions } from './total-functions/plugin.mjs';
5
5
  export { eslintPluginTreeShakable } from './tree-shakable/plugin.mjs';
6
+ export { eslintPluginTsDataForge } from './ts-data-forge/plugin.mjs';
6
7
  export { eslintPluginTsRestrictions } from './ts-restrictions/plugin.mjs';
7
8
  export { eslintPluginVitestCodingStyle } from './vitest-coding-style/plugin.mjs';
8
9
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -0,0 +1,2 @@
1
+ export * from './plugin.mjs';
2
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../src/plugins/ts-data-forge/index.mts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { eslintPluginTsDataForge } from './plugin.mjs';
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { type ESLintPlugin } from '../../types/index.mjs';
2
+ export declare const eslintPluginTsDataForge: ESLintPlugin;
3
+ //# sourceMappingURL=plugin.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.mts","sourceRoot":"","sources":["../../../src/plugins/ts-data-forge/plugin.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG1D,eAAO,MAAM,uBAAuB,EAAE,YAE5B,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { tsDataForgeRules } from './rules/rules.mjs';
2
+
3
+ const eslintPluginTsDataForge = {
4
+ rules: tsDataForgeRules,
5
+ };
6
+
7
+ export { eslintPluginTsDataForge };
8
+ //# sourceMappingURL=plugin.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.mjs","sources":["../../../src/plugins/ts-data-forge/plugin.mts"],"sourcesContent":[null],"names":[],"mappings":";;AAGO,MAAM,uBAAuB,GAAiB;AACnD,IAAA,KAAK,EAAE,gBAAgB;;;;;"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Branded number types from ts-data-forge and their corresponding as* functions
3
+ */
4
+ export declare const brandedNumberTypeNameToFunctionName: ReadonlyMap<string, `as${string}`>;
5
+ //# sourceMappingURL=branded-number-types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branded-number-types.d.mts","sourceRoot":"","sources":["../../../../src/plugins/ts-data-forge/rules/branded-number-types.mts"],"names":[],"mappings":"AA6BA;;GAEG;AACH,eAAO,MAAM,mCAAmC,EAAE,WAAW,CAC3D,MAAM,EACN,KAAK,MAAM,EAAE,CAC0C,CAAC"}
@@ -0,0 +1,35 @@
1
+ const brandedNumberTypes = [
2
+ 'FiniteNumber',
3
+ 'Int',
4
+ 'Int16',
5
+ 'Int32',
6
+ 'NonNegativeFiniteNumber',
7
+ 'NonNegativeInt16',
8
+ 'NonNegativeInt32',
9
+ 'NonZeroFiniteNumber',
10
+ 'NonZeroInt',
11
+ 'NonZeroInt16',
12
+ 'NonZeroInt32',
13
+ 'NonZeroSafeInt',
14
+ 'NonZeroUint16',
15
+ 'NonZeroUint32',
16
+ 'PositiveFiniteNumber',
17
+ 'PositiveInt',
18
+ 'PositiveInt16',
19
+ 'PositiveInt32',
20
+ 'PositiveSafeInt',
21
+ 'PositiveUint16',
22
+ 'PositiveUint32',
23
+ 'SafeInt',
24
+ 'SafeUint',
25
+ 'Uint',
26
+ 'Uint16',
27
+ 'Uint32',
28
+ ];
29
+ /**
30
+ * Branded number types from ts-data-forge and their corresponding as* functions
31
+ */
32
+ const brandedNumberTypeNameToFunctionName = new Map(brandedNumberTypes.map((t) => [t, `as${t}`]));
33
+
34
+ export { brandedNumberTypeNameToFunctionName };
35
+ //# sourceMappingURL=branded-number-types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branded-number-types.mjs","sources":["../../../../src/plugins/ts-data-forge/rules/branded-number-types.mts"],"sourcesContent":[null],"names":[],"mappings":"AAAA,MAAM,kBAAkB,GAAG;IACzB,cAAc;IACd,KAAK;IACL,OAAO;IACP,OAAO;IACP,yBAAyB;IACzB,kBAAkB;IAClB,kBAAkB;IAClB,qBAAqB;IACrB,YAAY;IACZ,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,eAAe;IACf,eAAe;IACf,sBAAsB;IACtB,aAAa;IACb,eAAe;IACf,eAAe;IACf,iBAAiB;IACjB,gBAAgB;IAChB,gBAAgB;IAChB,SAAS;IACT,UAAU;IACV,MAAM;IACN,QAAQ;IACR,QAAQ;CACA;AAEV;;AAEG;AACI,MAAM,mCAAmC,GAG5C,IAAI,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAA,EAAA,EAAK,CAAC,CAAA,CAAE,CAAC,CAAC;;;;"}
@@ -0,0 +1,2 @@
1
+ export declare const TS_DATA_FORGE_MODULE = "ts-data-forge";
2
+ //# sourceMappingURL=constants.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.mts","sourceRoot":"","sources":["../../../../src/plugins/ts-data-forge/rules/constants.mts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,kBAAkB,CAAC"}
@@ -0,0 +1,4 @@
1
+ const TS_DATA_FORGE_MODULE = 'ts-data-forge';
2
+
3
+ export { TS_DATA_FORGE_MODULE };
4
+ //# sourceMappingURL=constants.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.mjs","sources":["../../../../src/plugins/ts-data-forge/rules/constants.mts"],"sourcesContent":[null],"names":[],"mappings":"AAAO,MAAM,oBAAoB,GAAG;;;;"}
@@ -0,0 +1,5 @@
1
+ import { type TSESLint, type TSESTree } from '@typescript-eslint/utils';
2
+ export declare const getTsDataForgeImport: (program: TSESTree.Program) => TSESTree.ImportDeclaration | undefined;
3
+ export declare const getNamedImports: (node: DeepReadonly<TSESTree.ImportDeclaration> | undefined) => readonly string[];
4
+ export declare const buildImportFixes: (fixer: TSESLint.RuleFixer, program: TSESTree.Program, _tsDataForgeImport: TSESTree.ImportDeclaration | undefined, requiredNames: readonly string[]) => readonly TSESLint.RuleFix[];
5
+ //# sourceMappingURL=import-utils.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-utils.d.mts","sourceRoot":"","sources":["../../../../src/plugins/ts-data-forge/rules/import-utils.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,QAAQ,EACd,MAAM,0BAA0B,CAAC;AAKlC,eAAO,MAAM,oBAAoB,GAC/B,SAAS,QAAQ,CAAC,OAAO,KACxB,QAAQ,CAAC,iBAAiB,GAAG,SAK7B,CAAC;AAEJ,eAAO,MAAM,eAAe,GAC1B,MAAM,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,GAAG,SAAS,KACzD,SAAS,MAAM,EAejB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,OAAO,QAAQ,CAAC,SAAS,EACzB,SAAS,QAAQ,CAAC,OAAO,EACzB,oBAAoB,QAAQ,CAAC,iBAAiB,GAAG,SAAS,EAC1D,eAAe,SAAS,MAAM,EAAE,KAC/B,SAAS,QAAQ,CAAC,OAAO,EAY3B,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { AST_NODE_TYPES } from '@typescript-eslint/utils';
2
+ import { TS_DATA_FORGE_MODULE } from './constants.mjs';
3
+
4
+ /* eslint-disable @typescript-eslint/prefer-readonly-parameter-types */
5
+ const getTsDataForgeImport = (program) => program.body.find((node) => node.type === AST_NODE_TYPES.ImportDeclaration &&
6
+ node.source.value === TS_DATA_FORGE_MODULE);
7
+ const getNamedImports = (node) => {
8
+ if (node === undefined)
9
+ return [];
10
+ return node.specifiers.flatMap((specifier) => specifier.type === AST_NODE_TYPES.ImportSpecifier
11
+ ? (() => {
12
+ const importedName = specifier.imported.type === AST_NODE_TYPES.Identifier
13
+ ? specifier.imported.name
14
+ : specifier.imported.value;
15
+ return typeof importedName === 'string' ? [importedName] : [];
16
+ })()
17
+ : []);
18
+ };
19
+ const buildImportFixes = (fixer, program, _tsDataForgeImport, requiredNames) => {
20
+ const specifierText = requiredNames.join(', ');
21
+ const importStatement = `import { ${specifierText} } from '${TS_DATA_FORGE_MODULE}';`;
22
+ const newLine = '\n';
23
+ const insertionText = `${importStatement}${newLine}`;
24
+ // Always insert at the beginning of the file
25
+ // (organize-imports will handle merging/deduplication)
26
+ return [fixer.insertTextBefore(program, insertionText)];
27
+ };
28
+ /* eslint-enable @typescript-eslint/prefer-readonly-parameter-types */
29
+
30
+ export { buildImportFixes, getNamedImports, getTsDataForgeImport };
31
+ //# sourceMappingURL=import-utils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-utils.mjs","sources":["../../../../src/plugins/ts-data-forge/rules/import-utils.mts"],"sourcesContent":[null],"names":[],"mappings":";;;AAOA;AAEO,MAAM,oBAAoB,GAAG,CAClC,OAAyB,KAEzB,OAAO,CAAC,IAAI,CAAC,IAAI,CACf,CAAC,IAAI,KACH,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,iBAAiB;AAC9C,IAAA,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,oBAAoB;AAGzC,MAAM,eAAe,GAAG,CAC7B,IAA0D,KACrC;IACrB,IAAI,IAAI,KAAK,SAAS;AAAE,QAAA,OAAO,EAAE;AAEjC,IAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,KACvC,SAAS,CAAC,IAAI,KAAK,cAAc,CAAC;UAC9B,CAAC,MAAK;YACJ,MAAM,YAAY,GAChB,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,cAAc,CAAC;AACzC,kBAAE,SAAS,CAAC,QAAQ,CAAC;AACrB,kBAAE,SAAS,CAAC,QAAQ,CAAC,KAAK;AAE9B,YAAA,OAAO,OAAO,YAAY,KAAK,QAAQ,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE;AAC/D,QAAA,CAAC;UACD,EAAE,CACP;AACH;AAEO,MAAM,gBAAgB,GAAG,CAC9B,KAAyB,EACzB,OAAyB,EACzB,kBAA0D,EAC1D,aAAgC,KACD;IAC/B,MAAM,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;AAE9C,IAAA,MAAM,eAAe,GAAG,CAAA,SAAA,EAAY,aAAa,CAAA,SAAA,EAAY,oBAAoB,IAAI;IAErF,MAAM,OAAO,GAAG,IAAI;AAEpB,IAAA,MAAM,aAAa,GAAG,CAAA,EAAG,eAAe,CAAA,EAAG,OAAO,EAAE;;;IAIpD,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AACzD;AACA;;;;"}
@@ -0,0 +1,2 @@
1
+ export * from './rules.mjs';
2
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../../src/plugins/ts-data-forge/rules/index.mts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { tsDataForgeRules } from './rules.mjs';
2
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { type TSESLint } from '@typescript-eslint/utils';
2
+ type Options = readonly [];
3
+ type MessageIds = 'useIsArrayAtLeastLength';
4
+ export declare const preferArrIsArrayAtLeastLength: TSESLint.RuleModule<MessageIds, Options>;
5
+ export {};
6
+ //# sourceMappingURL=prefer-arr-is-array-at-least-length.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prefer-arr-is-array-at-least-length.d.mts","sourceRoot":"","sources":["../../../../src/plugins/ts-data-forge/rules/prefer-arr-is-array-at-least-length.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAOlC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,yBAAyB,CAAC;AAE5C,eAAO,MAAM,6BAA6B,EAAE,QAAQ,CAAC,UAAU,CAC7D,UAAU,EACV,OAAO,CAmHR,CAAC"}
@@ -0,0 +1,94 @@
1
+ import { AST_NODE_TYPES } from '@typescript-eslint/utils';
2
+ import { getTsDataForgeImport, getNamedImports, buildImportFixes } from './import-utils.mjs';
3
+
4
+ const preferArrIsArrayAtLeastLength = {
5
+ meta: {
6
+ type: 'suggestion',
7
+ docs: {
8
+ description: 'Replace `xs.length >= n` with `Arr.isArrayAtLeastLength(xs, n)` from ts-data-forge.',
9
+ },
10
+ fixable: 'code',
11
+ schema: [],
12
+ messages: {
13
+ useIsArrayAtLeastLength: 'Replace `{{original}}` with `Arr.isArrayAtLeastLength({{arrayName}}, {{length}})` from ts-data-forge.',
14
+ },
15
+ },
16
+ create: (context) => {
17
+ const sourceCode = context.sourceCode;
18
+ const program = sourceCode.ast;
19
+ const tsDataForgeImport = getTsDataForgeImport(program);
20
+ const services = context.sourceCode.parserServices;
21
+ const mut_nodesToFix = [];
22
+ return {
23
+ BinaryExpression: (node) => {
24
+ // Check for `xs.length >= n` or `n <= xs.length`
25
+ if (node.operator !== '>=' && node.operator !== '<=')
26
+ return;
27
+ // xs.length >= n or n <= xs.length
28
+ const isLengthOnLeft = node.operator === '>=';
29
+ const lengthSide = isLengthOnLeft ? node.left : node.right;
30
+ const valueSide = isLengthOnLeft ? node.right : node.left;
31
+ // Check if lengthSide is accessing .length
32
+ if (!isLengthAccess(lengthSide))
33
+ return;
34
+ // lengthSide is MemberExpression accessing .length
35
+ const arrayExpression = lengthSide.object;
36
+ // Check if arrayExpression is actually an array type
37
+ if (services?.program !== undefined && services.program !== null) {
38
+ const checker = services.program.getTypeChecker();
39
+ const tsNode = services.esTreeNodeToTSNodeMap?.get(arrayExpression);
40
+ if (tsNode !== undefined) {
41
+ const type = checker.getTypeAtLocation(tsNode);
42
+ // Check if it's an array type or tuple type
43
+ const isArrayType = checker.isArrayType(type) || checker.isTupleType(type);
44
+ if (!isArrayType)
45
+ return;
46
+ }
47
+ else {
48
+ return;
49
+ }
50
+ }
51
+ else {
52
+ return;
53
+ }
54
+ mut_nodesToFix.push({
55
+ node,
56
+ arrayExpression,
57
+ lengthExpression: valueSide,
58
+ });
59
+ },
60
+ 'Program:exit': () => {
61
+ const namedImports = getNamedImports(tsDataForgeImport);
62
+ const hasArrImport = namedImports.includes('Arr');
63
+ for (const [index, { node, arrayExpression, lengthExpression },] of mut_nodesToFix.entries()) {
64
+ const arrayText = sourceCode.getText(arrayExpression);
65
+ const lengthText = sourceCode.getText(lengthExpression);
66
+ const originalText = sourceCode.getText(node);
67
+ context.report({
68
+ node,
69
+ messageId: 'useIsArrayAtLeastLength',
70
+ data: {
71
+ original: originalText,
72
+ arrayName: arrayText,
73
+ length: lengthText,
74
+ },
75
+ fix: (fixer) => {
76
+ const replacement = `Arr.isArrayAtLeastLength(${arrayText}, ${lengthText})`;
77
+ const importFixes = index === 0 && !hasArrImport
78
+ ? buildImportFixes(fixer, program, tsDataForgeImport, ['Arr'])
79
+ : [];
80
+ return [...importFixes, fixer.replaceText(node, replacement)];
81
+ },
82
+ });
83
+ }
84
+ },
85
+ };
86
+ },
87
+ defaultOptions: [],
88
+ };
89
+ const isLengthAccess = (node) => node.type === AST_NODE_TYPES.MemberExpression &&
90
+ node.property.type === AST_NODE_TYPES.Identifier &&
91
+ node.property.name === 'length';
92
+
93
+ export { preferArrIsArrayAtLeastLength };
94
+ //# sourceMappingURL=prefer-arr-is-array-at-least-length.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prefer-arr-is-array-at-least-length.mjs","sources":["../../../../src/plugins/ts-data-forge/rules/prefer-arr-is-array-at-least-length.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { type TSESLint } from '@typescript-eslint/utils';
2
+ type Options = readonly [];
3
+ type MessageIds = 'useIsArrayOfLength';
4
+ export declare const preferArrIsArrayOfLength: TSESLint.RuleModule<MessageIds, Options>;
5
+ export {};
6
+ //# sourceMappingURL=prefer-arr-is-array-of-length.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prefer-arr-is-array-of-length.d.mts","sourceRoot":"","sources":["../../../../src/plugins/ts-data-forge/rules/prefer-arr-is-array-of-length.mts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,0BAA0B,CAAC;AAOlC,KAAK,OAAO,GAAG,SAAS,EAAE,CAAC;AAE3B,KAAK,UAAU,GAAG,oBAAoB,CAAC;AAEvC,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,UAAU,CACxD,UAAU,EACV,OAAO,CAuHR,CAAC"}