eslint-plugin-typefest 1.0.1

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 (578) hide show
  1. package/CHANGELOG.md +1814 -0
  2. package/LICENSE +21 -0
  3. package/README.md +282 -0
  4. package/dist/_internal/array-like-expression.d.ts +67 -0
  5. package/dist/_internal/array-like-expression.d.ts.map +1 -0
  6. package/dist/_internal/array-like-expression.js +179 -0
  7. package/dist/_internal/array-like-expression.js.map +1 -0
  8. package/dist/_internal/array-method-call-rule.d.ts +34 -0
  9. package/dist/_internal/array-method-call-rule.d.ts.map +1 -0
  10. package/dist/_internal/array-method-call-rule.js +49 -0
  11. package/dist/_internal/array-method-call-rule.js.map +1 -0
  12. package/dist/_internal/ast-node.d.ts +23 -0
  13. package/dist/_internal/ast-node.d.ts.map +1 -0
  14. package/dist/_internal/ast-node.js +38 -0
  15. package/dist/_internal/ast-node.js.map +1 -0
  16. package/dist/_internal/bounded-cache.d.ts +42 -0
  17. package/dist/_internal/bounded-cache.d.ts.map +1 -0
  18. package/dist/_internal/bounded-cache.js +57 -0
  19. package/dist/_internal/bounded-cache.js.map +1 -0
  20. package/dist/_internal/constrained-type-at-location.d.ts +31 -0
  21. package/dist/_internal/constrained-type-at-location.d.ts.map +1 -0
  22. package/dist/_internal/constrained-type-at-location.js +61 -0
  23. package/dist/_internal/constrained-type-at-location.js.map +1 -0
  24. package/dist/_internal/cycle-safe-linked-search.d.ts +48 -0
  25. package/dist/_internal/cycle-safe-linked-search.d.ts.map +1 -0
  26. package/dist/_internal/cycle-safe-linked-search.js +70 -0
  27. package/dist/_internal/cycle-safe-linked-search.js.map +1 -0
  28. package/dist/_internal/expression-boolean-memoizer.d.ts +17 -0
  29. package/dist/_internal/expression-boolean-memoizer.d.ts.map +1 -0
  30. package/dist/_internal/expression-boolean-memoizer.js +23 -0
  31. package/dist/_internal/expression-boolean-memoizer.js.map +1 -0
  32. package/dist/_internal/filter-callback.d.ts +56 -0
  33. package/dist/_internal/filter-callback.d.ts.map +1 -0
  34. package/dist/_internal/filter-callback.js +100 -0
  35. package/dist/_internal/filter-callback.js.map +1 -0
  36. package/dist/_internal/global-identifier-member-call.d.ts +23 -0
  37. package/dist/_internal/global-identifier-member-call.d.ts.map +1 -0
  38. package/dist/_internal/global-identifier-member-call.js +25 -0
  39. package/dist/_internal/global-identifier-member-call.js.map +1 -0
  40. package/dist/_internal/global-member-call-rule.d.ts +36 -0
  41. package/dist/_internal/global-member-call-rule.d.ts.map +1 -0
  42. package/dist/_internal/global-member-call-rule.js +52 -0
  43. package/dist/_internal/global-member-call-rule.js.map +1 -0
  44. package/dist/_internal/import-analysis.d.ts +45 -0
  45. package/dist/_internal/import-analysis.d.ts.map +1 -0
  46. package/dist/_internal/import-analysis.js +113 -0
  47. package/dist/_internal/import-analysis.js.map +1 -0
  48. package/dist/_internal/import-aware-fixes.d.ts +31 -0
  49. package/dist/_internal/import-aware-fixes.d.ts.map +1 -0
  50. package/dist/_internal/import-aware-fixes.js +38 -0
  51. package/dist/_internal/import-aware-fixes.js.map +1 -0
  52. package/dist/_internal/import-fix-coordinator.d.ts +43 -0
  53. package/dist/_internal/import-fix-coordinator.d.ts.map +1 -0
  54. package/dist/_internal/import-fix-coordinator.js +71 -0
  55. package/dist/_internal/import-fix-coordinator.js.map +1 -0
  56. package/dist/_internal/import-insertion.d.ts +27 -0
  57. package/dist/_internal/import-insertion.d.ts.map +1 -0
  58. package/dist/_internal/import-insertion.js +295 -0
  59. package/dist/_internal/import-insertion.js.map +1 -0
  60. package/dist/_internal/imported-type-aliases.d.ts +140 -0
  61. package/dist/_internal/imported-type-aliases.d.ts.map +1 -0
  62. package/dist/_internal/imported-type-aliases.js +316 -0
  63. package/dist/_internal/imported-type-aliases.js.map +1 -0
  64. package/dist/_internal/imported-value-symbols.d.ts +157 -0
  65. package/dist/_internal/imported-value-symbols.d.ts.map +1 -0
  66. package/dist/_internal/imported-value-symbols.js +478 -0
  67. package/dist/_internal/imported-value-symbols.js.map +1 -0
  68. package/dist/_internal/member-call.d.ts +53 -0
  69. package/dist/_internal/member-call.d.ts.map +1 -0
  70. package/dist/_internal/member-call.js +48 -0
  71. package/dist/_internal/member-call.js.map +1 -0
  72. package/dist/_internal/module-source.d.ts +11 -0
  73. package/dist/_internal/module-source.d.ts.map +1 -0
  74. package/dist/_internal/module-source.js +11 -0
  75. package/dist/_internal/module-source.js.map +1 -0
  76. package/dist/_internal/normalize-expression-text.d.ts +26 -0
  77. package/dist/_internal/normalize-expression-text.d.ts.map +1 -0
  78. package/dist/_internal/normalize-expression-text.js +182 -0
  79. package/dist/_internal/normalize-expression-text.js.map +1 -0
  80. package/dist/_internal/nullish-comparison.d.ts +43 -0
  81. package/dist/_internal/nullish-comparison.d.ts.map +1 -0
  82. package/dist/_internal/nullish-comparison.js +147 -0
  83. package/dist/_internal/nullish-comparison.js.map +1 -0
  84. package/dist/_internal/plugin-settings.d.ts +32 -0
  85. package/dist/_internal/plugin-settings.d.ts.map +1 -0
  86. package/dist/_internal/plugin-settings.js +118 -0
  87. package/dist/_internal/plugin-settings.js.map +1 -0
  88. package/dist/_internal/report-adapter.d.ts +25 -0
  89. package/dist/_internal/report-adapter.d.ts.map +1 -0
  90. package/dist/_internal/report-adapter.js +36 -0
  91. package/dist/_internal/report-adapter.js.map +1 -0
  92. package/dist/_internal/rule-catalog.d.ts +51 -0
  93. package/dist/_internal/rule-catalog.d.ts.map +1 -0
  94. package/dist/_internal/rule-catalog.js +162 -0
  95. package/dist/_internal/rule-catalog.js.map +1 -0
  96. package/dist/_internal/rule-docs-metadata.d.ts +37 -0
  97. package/dist/_internal/rule-docs-metadata.d.ts.map +1 -0
  98. package/dist/_internal/rule-docs-metadata.js +192 -0
  99. package/dist/_internal/rule-docs-metadata.js.map +1 -0
  100. package/dist/_internal/rule-docs-url.d.ts +15 -0
  101. package/dist/_internal/rule-docs-url.d.ts.map +1 -0
  102. package/dist/_internal/rule-docs-url.js +15 -0
  103. package/dist/_internal/rule-docs-url.js.map +1 -0
  104. package/dist/_internal/rule-reporting.d.ts +71 -0
  105. package/dist/_internal/rule-reporting.d.ts.map +1 -0
  106. package/dist/_internal/rule-reporting.js +89 -0
  107. package/dist/_internal/rule-reporting.js.map +1 -0
  108. package/dist/_internal/rules-registry.d.ts +14 -0
  109. package/dist/_internal/rules-registry.d.ts.map +1 -0
  110. package/dist/_internal/rules-registry.js +165 -0
  111. package/dist/_internal/rules-registry.js.map +1 -0
  112. package/dist/_internal/safe-type-operation.d.ts +89 -0
  113. package/dist/_internal/safe-type-operation.d.ts.map +1 -0
  114. package/dist/_internal/safe-type-operation.js +147 -0
  115. package/dist/_internal/safe-type-operation.js.map +1 -0
  116. package/dist/_internal/scope-resolution.d.ts +20 -0
  117. package/dist/_internal/scope-resolution.d.ts.map +1 -0
  118. package/dist/_internal/scope-resolution.js +21 -0
  119. package/dist/_internal/scope-resolution.js.map +1 -0
  120. package/dist/_internal/scope-variable.d.ts +17 -0
  121. package/dist/_internal/scope-variable.d.ts.map +1 -0
  122. package/dist/_internal/scope-variable.js +30 -0
  123. package/dist/_internal/scope-variable.js.map +1 -0
  124. package/dist/_internal/set-membership.d.ts +6 -0
  125. package/dist/_internal/set-membership.d.ts.map +1 -0
  126. package/dist/_internal/set-membership.js +11 -0
  127. package/dist/_internal/set-membership.js.map +1 -0
  128. package/dist/_internal/text-character.d.ts +18 -0
  129. package/dist/_internal/text-character.d.ts.map +1 -0
  130. package/dist/_internal/text-character.js +69 -0
  131. package/dist/_internal/text-character.js.map +1 -0
  132. package/dist/_internal/throw-consequent.d.ts +22 -0
  133. package/dist/_internal/throw-consequent.d.ts.map +1 -0
  134. package/dist/_internal/throw-consequent.js +48 -0
  135. package/dist/_internal/throw-consequent.js.map +1 -0
  136. package/dist/_internal/throw-type-error.d.ts +19 -0
  137. package/dist/_internal/throw-type-error.d.ts.map +1 -0
  138. package/dist/_internal/throw-type-error.js +24 -0
  139. package/dist/_internal/throw-type-error.js.map +1 -0
  140. package/dist/_internal/type-checker-compat.d.ts +80 -0
  141. package/dist/_internal/type-checker-compat.d.ts.map +1 -0
  142. package/dist/_internal/type-checker-compat.js +104 -0
  143. package/dist/_internal/type-checker-compat.js.map +1 -0
  144. package/dist/_internal/type-predicate-autofix-safety.d.ts +20 -0
  145. package/dist/_internal/type-predicate-autofix-safety.d.ts.map +1 -0
  146. package/dist/_internal/type-predicate-autofix-safety.js +58 -0
  147. package/dist/_internal/type-predicate-autofix-safety.js.map +1 -0
  148. package/dist/_internal/type-reference-node.d.ts +19 -0
  149. package/dist/_internal/type-reference-node.d.ts.map +1 -0
  150. package/dist/_internal/type-reference-node.js +14 -0
  151. package/dist/_internal/type-reference-node.js.map +1 -0
  152. package/dist/_internal/typed-member-call-rule.d.ts +35 -0
  153. package/dist/_internal/typed-member-call-rule.d.ts.map +1 -0
  154. package/dist/_internal/typed-member-call-rule.js +50 -0
  155. package/dist/_internal/typed-member-call-rule.js.map +1 -0
  156. package/dist/_internal/typed-path-telemetry.d.ts +58 -0
  157. package/dist/_internal/typed-path-telemetry.d.ts.map +1 -0
  158. package/dist/_internal/typed-path-telemetry.js +114 -0
  159. package/dist/_internal/typed-path-telemetry.js.map +1 -0
  160. package/dist/_internal/typed-rule.d.ts +142 -0
  161. package/dist/_internal/typed-rule.d.ts.map +1 -0
  162. package/dist/_internal/typed-rule.js +197 -0
  163. package/dist/_internal/typed-rule.js.map +1 -0
  164. package/dist/_internal/typefest-config-references.d.ts +45 -0
  165. package/dist/_internal/typefest-config-references.d.ts.map +1 -0
  166. package/dist/_internal/typefest-config-references.js +98 -0
  167. package/dist/_internal/typefest-config-references.js.map +1 -0
  168. package/dist/_internal/typescript-eslint-node-autofix.d.ts +32 -0
  169. package/dist/_internal/typescript-eslint-node-autofix.d.ts.map +1 -0
  170. package/dist/_internal/typescript-eslint-node-autofix.js +495 -0
  171. package/dist/_internal/typescript-eslint-node-autofix.js.map +1 -0
  172. package/dist/_internal/value-rewrite-autofix-safety.d.ts +33 -0
  173. package/dist/_internal/value-rewrite-autofix-safety.d.ts.map +1 -0
  174. package/dist/_internal/value-rewrite-autofix-safety.js +103 -0
  175. package/dist/_internal/value-rewrite-autofix-safety.js.map +1 -0
  176. package/dist/plugin.cjs +9718 -0
  177. package/dist/plugin.cjs.map +7 -0
  178. package/dist/plugin.d.cts +76 -0
  179. package/dist/plugin.d.ts +76 -0
  180. package/dist/plugin.d.ts.map +1 -0
  181. package/dist/plugin.js +206 -0
  182. package/dist/plugin.js.map +1 -0
  183. package/dist/rules/prefer-ts-extras-array-at.d.ts +13 -0
  184. package/dist/rules/prefer-ts-extras-array-at.d.ts.map +1 -0
  185. package/dist/rules/prefer-ts-extras-array-at.js +66 -0
  186. package/dist/rules/prefer-ts-extras-array-at.js.map +1 -0
  187. package/dist/rules/prefer-ts-extras-array-concat.d.ts +13 -0
  188. package/dist/rules/prefer-ts-extras-array-concat.d.ts.map +1 -0
  189. package/dist/rules/prefer-ts-extras-array-concat.js +66 -0
  190. package/dist/rules/prefer-ts-extras-array-concat.js.map +1 -0
  191. package/dist/rules/prefer-ts-extras-array-find-last-index.d.ts +13 -0
  192. package/dist/rules/prefer-ts-extras-array-find-last-index.d.ts.map +1 -0
  193. package/dist/rules/prefer-ts-extras-array-find-last-index.js +63 -0
  194. package/dist/rules/prefer-ts-extras-array-find-last-index.js.map +1 -0
  195. package/dist/rules/prefer-ts-extras-array-find-last.d.ts +13 -0
  196. package/dist/rules/prefer-ts-extras-array-find-last.d.ts.map +1 -0
  197. package/dist/rules/prefer-ts-extras-array-find-last.js +66 -0
  198. package/dist/rules/prefer-ts-extras-array-find-last.js.map +1 -0
  199. package/dist/rules/prefer-ts-extras-array-find.d.ts +13 -0
  200. package/dist/rules/prefer-ts-extras-array-find.d.ts.map +1 -0
  201. package/dist/rules/prefer-ts-extras-array-find.js +63 -0
  202. package/dist/rules/prefer-ts-extras-array-find.js.map +1 -0
  203. package/dist/rules/prefer-ts-extras-array-first.d.ts +13 -0
  204. package/dist/rules/prefer-ts-extras-array-first.d.ts.map +1 -0
  205. package/dist/rules/prefer-ts-extras-array-first.js +107 -0
  206. package/dist/rules/prefer-ts-extras-array-first.js.map +1 -0
  207. package/dist/rules/prefer-ts-extras-array-includes.d.ts +13 -0
  208. package/dist/rules/prefer-ts-extras-array-includes.d.ts.map +1 -0
  209. package/dist/rules/prefer-ts-extras-array-includes.js +89 -0
  210. package/dist/rules/prefer-ts-extras-array-includes.js.map +1 -0
  211. package/dist/rules/prefer-ts-extras-array-join.d.ts +13 -0
  212. package/dist/rules/prefer-ts-extras-array-join.d.ts.map +1 -0
  213. package/dist/rules/prefer-ts-extras-array-join.js +66 -0
  214. package/dist/rules/prefer-ts-extras-array-join.js.map +1 -0
  215. package/dist/rules/prefer-ts-extras-array-last.d.ts +8 -0
  216. package/dist/rules/prefer-ts-extras-array-last.d.ts.map +1 -0
  217. package/dist/rules/prefer-ts-extras-array-last.js +132 -0
  218. package/dist/rules/prefer-ts-extras-array-last.js.map +1 -0
  219. package/dist/rules/prefer-ts-extras-as-writable.d.ts +13 -0
  220. package/dist/rules/prefer-ts-extras-as-writable.d.ts.map +1 -0
  221. package/dist/rules/prefer-ts-extras-as-writable.js +110 -0
  222. package/dist/rules/prefer-ts-extras-as-writable.js.map +1 -0
  223. package/dist/rules/prefer-ts-extras-assert-defined.d.ts +13 -0
  224. package/dist/rules/prefer-ts-extras-assert-defined.d.ts.map +1 -0
  225. package/dist/rules/prefer-ts-extras-assert-defined.js +182 -0
  226. package/dist/rules/prefer-ts-extras-assert-defined.js.map +1 -0
  227. package/dist/rules/prefer-ts-extras-assert-error.d.ts +13 -0
  228. package/dist/rules/prefer-ts-extras-assert-error.d.ts.map +1 -0
  229. package/dist/rules/prefer-ts-extras-assert-error.js +152 -0
  230. package/dist/rules/prefer-ts-extras-assert-error.js.map +1 -0
  231. package/dist/rules/prefer-ts-extras-assert-present.d.ts +13 -0
  232. package/dist/rules/prefer-ts-extras-assert-present.d.ts.map +1 -0
  233. package/dist/rules/prefer-ts-extras-assert-present.js +266 -0
  234. package/dist/rules/prefer-ts-extras-assert-present.js.map +1 -0
  235. package/dist/rules/prefer-ts-extras-is-defined-filter.d.ts +13 -0
  236. package/dist/rules/prefer-ts-extras-is-defined-filter.d.ts.map +1 -0
  237. package/dist/rules/prefer-ts-extras-is-defined-filter.js +90 -0
  238. package/dist/rules/prefer-ts-extras-is-defined-filter.js.map +1 -0
  239. package/dist/rules/prefer-ts-extras-is-defined.d.ts +13 -0
  240. package/dist/rules/prefer-ts-extras-is-defined.d.ts.map +1 -0
  241. package/dist/rules/prefer-ts-extras-is-defined.js +179 -0
  242. package/dist/rules/prefer-ts-extras-is-defined.js.map +1 -0
  243. package/dist/rules/prefer-ts-extras-is-empty.d.ts +13 -0
  244. package/dist/rules/prefer-ts-extras-is-empty.d.ts.map +1 -0
  245. package/dist/rules/prefer-ts-extras-is-empty.js +116 -0
  246. package/dist/rules/prefer-ts-extras-is-empty.js.map +1 -0
  247. package/dist/rules/prefer-ts-extras-is-equal-type.d.ts +13 -0
  248. package/dist/rules/prefer-ts-extras-is-equal-type.d.ts.map +1 -0
  249. package/dist/rules/prefer-ts-extras-is-equal-type.js +138 -0
  250. package/dist/rules/prefer-ts-extras-is-equal-type.js.map +1 -0
  251. package/dist/rules/prefer-ts-extras-is-finite.d.ts +13 -0
  252. package/dist/rules/prefer-ts-extras-is-finite.d.ts.map +1 -0
  253. package/dist/rules/prefer-ts-extras-is-finite.js +61 -0
  254. package/dist/rules/prefer-ts-extras-is-finite.js.map +1 -0
  255. package/dist/rules/prefer-ts-extras-is-infinite.d.ts +8 -0
  256. package/dist/rules/prefer-ts-extras-is-infinite.d.ts.map +1 -0
  257. package/dist/rules/prefer-ts-extras-is-infinite.js +178 -0
  258. package/dist/rules/prefer-ts-extras-is-infinite.js.map +1 -0
  259. package/dist/rules/prefer-ts-extras-is-integer.d.ts +13 -0
  260. package/dist/rules/prefer-ts-extras-is-integer.d.ts.map +1 -0
  261. package/dist/rules/prefer-ts-extras-is-integer.js +61 -0
  262. package/dist/rules/prefer-ts-extras-is-integer.js.map +1 -0
  263. package/dist/rules/prefer-ts-extras-is-present-filter.d.ts +13 -0
  264. package/dist/rules/prefer-ts-extras-is-present-filter.d.ts.map +1 -0
  265. package/dist/rules/prefer-ts-extras-is-present-filter.js +216 -0
  266. package/dist/rules/prefer-ts-extras-is-present-filter.js.map +1 -0
  267. package/dist/rules/prefer-ts-extras-is-present.d.ts +13 -0
  268. package/dist/rules/prefer-ts-extras-is-present.d.ts.map +1 -0
  269. package/dist/rules/prefer-ts-extras-is-present.js +217 -0
  270. package/dist/rules/prefer-ts-extras-is-present.js.map +1 -0
  271. package/dist/rules/prefer-ts-extras-is-safe-integer.d.ts +13 -0
  272. package/dist/rules/prefer-ts-extras-is-safe-integer.d.ts.map +1 -0
  273. package/dist/rules/prefer-ts-extras-is-safe-integer.js +61 -0
  274. package/dist/rules/prefer-ts-extras-is-safe-integer.js.map +1 -0
  275. package/dist/rules/prefer-ts-extras-key-in.d.ts +13 -0
  276. package/dist/rules/prefer-ts-extras-key-in.d.ts.map +1 -0
  277. package/dist/rules/prefer-ts-extras-key-in.js +124 -0
  278. package/dist/rules/prefer-ts-extras-key-in.js.map +1 -0
  279. package/dist/rules/prefer-ts-extras-not.d.ts +13 -0
  280. package/dist/rules/prefer-ts-extras-not.d.ts.map +1 -0
  281. package/dist/rules/prefer-ts-extras-not.js +136 -0
  282. package/dist/rules/prefer-ts-extras-not.js.map +1 -0
  283. package/dist/rules/prefer-ts-extras-object-entries.d.ts +13 -0
  284. package/dist/rules/prefer-ts-extras-object-entries.d.ts.map +1 -0
  285. package/dist/rules/prefer-ts-extras-object-entries.js +59 -0
  286. package/dist/rules/prefer-ts-extras-object-entries.js.map +1 -0
  287. package/dist/rules/prefer-ts-extras-object-from-entries.d.ts +13 -0
  288. package/dist/rules/prefer-ts-extras-object-from-entries.d.ts.map +1 -0
  289. package/dist/rules/prefer-ts-extras-object-from-entries.js +59 -0
  290. package/dist/rules/prefer-ts-extras-object-from-entries.js.map +1 -0
  291. package/dist/rules/prefer-ts-extras-object-has-in.d.ts +13 -0
  292. package/dist/rules/prefer-ts-extras-object-has-in.d.ts.map +1 -0
  293. package/dist/rules/prefer-ts-extras-object-has-in.js +79 -0
  294. package/dist/rules/prefer-ts-extras-object-has-in.js.map +1 -0
  295. package/dist/rules/prefer-ts-extras-object-has-own.d.ts +13 -0
  296. package/dist/rules/prefer-ts-extras-object-has-own.d.ts.map +1 -0
  297. package/dist/rules/prefer-ts-extras-object-has-own.js +82 -0
  298. package/dist/rules/prefer-ts-extras-object-has-own.js.map +1 -0
  299. package/dist/rules/prefer-ts-extras-object-keys.d.ts +13 -0
  300. package/dist/rules/prefer-ts-extras-object-keys.d.ts.map +1 -0
  301. package/dist/rules/prefer-ts-extras-object-keys.js +59 -0
  302. package/dist/rules/prefer-ts-extras-object-keys.js.map +1 -0
  303. package/dist/rules/prefer-ts-extras-object-values.d.ts +13 -0
  304. package/dist/rules/prefer-ts-extras-object-values.d.ts.map +1 -0
  305. package/dist/rules/prefer-ts-extras-object-values.js +59 -0
  306. package/dist/rules/prefer-ts-extras-object-values.js.map +1 -0
  307. package/dist/rules/prefer-ts-extras-safe-cast-to.d.ts +13 -0
  308. package/dist/rules/prefer-ts-extras-safe-cast-to.d.ts.map +1 -0
  309. package/dist/rules/prefer-ts-extras-safe-cast-to.js +159 -0
  310. package/dist/rules/prefer-ts-extras-safe-cast-to.js.map +1 -0
  311. package/dist/rules/prefer-ts-extras-set-has.d.ts +13 -0
  312. package/dist/rules/prefer-ts-extras-set-has.d.ts.map +1 -0
  313. package/dist/rules/prefer-ts-extras-set-has.js +304 -0
  314. package/dist/rules/prefer-ts-extras-set-has.js.map +1 -0
  315. package/dist/rules/prefer-ts-extras-string-split.d.ts +13 -0
  316. package/dist/rules/prefer-ts-extras-string-split.d.ts.map +1 -0
  317. package/dist/rules/prefer-ts-extras-string-split.js +166 -0
  318. package/dist/rules/prefer-ts-extras-string-split.js.map +1 -0
  319. package/dist/rules/prefer-type-fest-abstract-constructor.d.ts +13 -0
  320. package/dist/rules/prefer-type-fest-abstract-constructor.d.ts.map +1 -0
  321. package/dist/rules/prefer-type-fest-abstract-constructor.js +65 -0
  322. package/dist/rules/prefer-type-fest-abstract-constructor.js.map +1 -0
  323. package/dist/rules/prefer-type-fest-arrayable.d.ts +13 -0
  324. package/dist/rules/prefer-type-fest-arrayable.d.ts.map +1 -0
  325. package/dist/rules/prefer-type-fest-arrayable.js +123 -0
  326. package/dist/rules/prefer-type-fest-arrayable.js.map +1 -0
  327. package/dist/rules/prefer-type-fest-async-return-type.d.ts +13 -0
  328. package/dist/rules/prefer-type-fest-async-return-type.d.ts.map +1 -0
  329. package/dist/rules/prefer-type-fest-async-return-type.js +92 -0
  330. package/dist/rules/prefer-type-fest-async-return-type.js.map +1 -0
  331. package/dist/rules/prefer-type-fest-conditional-pick.d.ts +13 -0
  332. package/dist/rules/prefer-type-fest-conditional-pick.d.ts.map +1 -0
  333. package/dist/rules/prefer-type-fest-conditional-pick.js +74 -0
  334. package/dist/rules/prefer-type-fest-conditional-pick.js.map +1 -0
  335. package/dist/rules/prefer-type-fest-constructor.d.ts +13 -0
  336. package/dist/rules/prefer-type-fest-constructor.d.ts.map +1 -0
  337. package/dist/rules/prefer-type-fest-constructor.js +67 -0
  338. package/dist/rules/prefer-type-fest-constructor.js.map +1 -0
  339. package/dist/rules/prefer-type-fest-except.d.ts +13 -0
  340. package/dist/rules/prefer-type-fest-except.d.ts.map +1 -0
  341. package/dist/rules/prefer-type-fest-except.js +105 -0
  342. package/dist/rules/prefer-type-fest-except.js.map +1 -0
  343. package/dist/rules/prefer-type-fest-if.d.ts +13 -0
  344. package/dist/rules/prefer-type-fest-if.d.ts.map +1 -0
  345. package/dist/rules/prefer-type-fest-if.js +79 -0
  346. package/dist/rules/prefer-type-fest-if.js.map +1 -0
  347. package/dist/rules/prefer-type-fest-iterable-element.d.ts +13 -0
  348. package/dist/rules/prefer-type-fest-iterable-element.d.ts.map +1 -0
  349. package/dist/rules/prefer-type-fest-iterable-element.js +76 -0
  350. package/dist/rules/prefer-type-fest-iterable-element.js.map +1 -0
  351. package/dist/rules/prefer-type-fest-json-array.d.ts +13 -0
  352. package/dist/rules/prefer-type-fest-json-array.d.ts.map +1 -0
  353. package/dist/rules/prefer-type-fest-json-array.js +164 -0
  354. package/dist/rules/prefer-type-fest-json-array.js.map +1 -0
  355. package/dist/rules/prefer-type-fest-json-object.d.ts +13 -0
  356. package/dist/rules/prefer-type-fest-json-object.d.ts.map +1 -0
  357. package/dist/rules/prefer-type-fest-json-object.js +102 -0
  358. package/dist/rules/prefer-type-fest-json-object.js.map +1 -0
  359. package/dist/rules/prefer-type-fest-json-primitive.d.ts +13 -0
  360. package/dist/rules/prefer-type-fest-json-primitive.d.ts.map +1 -0
  361. package/dist/rules/prefer-type-fest-json-primitive.js +112 -0
  362. package/dist/rules/prefer-type-fest-json-primitive.js.map +1 -0
  363. package/dist/rules/prefer-type-fest-json-value.d.ts +13 -0
  364. package/dist/rules/prefer-type-fest-json-value.d.ts.map +1 -0
  365. package/dist/rules/prefer-type-fest-json-value.js +109 -0
  366. package/dist/rules/prefer-type-fest-json-value.js.map +1 -0
  367. package/dist/rules/prefer-type-fest-keys-of-union.d.ts +13 -0
  368. package/dist/rules/prefer-type-fest-keys-of-union.d.ts.map +1 -0
  369. package/dist/rules/prefer-type-fest-keys-of-union.js +74 -0
  370. package/dist/rules/prefer-type-fest-keys-of-union.js.map +1 -0
  371. package/dist/rules/prefer-type-fest-literal-union.d.ts +13 -0
  372. package/dist/rules/prefer-type-fest-literal-union.d.ts.map +1 -0
  373. package/dist/rules/prefer-type-fest-literal-union.js +181 -0
  374. package/dist/rules/prefer-type-fest-literal-union.js.map +1 -0
  375. package/dist/rules/prefer-type-fest-merge-exclusive.d.ts +13 -0
  376. package/dist/rules/prefer-type-fest-merge-exclusive.d.ts.map +1 -0
  377. package/dist/rules/prefer-type-fest-merge-exclusive.js +63 -0
  378. package/dist/rules/prefer-type-fest-merge-exclusive.js.map +1 -0
  379. package/dist/rules/prefer-type-fest-non-empty-tuple.d.ts +13 -0
  380. package/dist/rules/prefer-type-fest-non-empty-tuple.d.ts.map +1 -0
  381. package/dist/rules/prefer-type-fest-non-empty-tuple.js +133 -0
  382. package/dist/rules/prefer-type-fest-non-empty-tuple.js.map +1 -0
  383. package/dist/rules/prefer-type-fest-omit-index-signature.d.ts +13 -0
  384. package/dist/rules/prefer-type-fest-omit-index-signature.d.ts.map +1 -0
  385. package/dist/rules/prefer-type-fest-omit-index-signature.js +74 -0
  386. package/dist/rules/prefer-type-fest-omit-index-signature.js.map +1 -0
  387. package/dist/rules/prefer-type-fest-partial-deep.d.ts +13 -0
  388. package/dist/rules/prefer-type-fest-partial-deep.d.ts.map +1 -0
  389. package/dist/rules/prefer-type-fest-partial-deep.js +63 -0
  390. package/dist/rules/prefer-type-fest-partial-deep.js.map +1 -0
  391. package/dist/rules/prefer-type-fest-primitive.d.ts +13 -0
  392. package/dist/rules/prefer-type-fest-primitive.d.ts.map +1 -0
  393. package/dist/rules/prefer-type-fest-primitive.js +102 -0
  394. package/dist/rules/prefer-type-fest-primitive.js.map +1 -0
  395. package/dist/rules/prefer-type-fest-promisable.d.ts +13 -0
  396. package/dist/rules/prefer-type-fest-promisable.d.ts.map +1 -0
  397. package/dist/rules/prefer-type-fest-promisable.js +167 -0
  398. package/dist/rules/prefer-type-fest-promisable.js.map +1 -0
  399. package/dist/rules/prefer-type-fest-readonly-deep.d.ts +13 -0
  400. package/dist/rules/prefer-type-fest-readonly-deep.d.ts.map +1 -0
  401. package/dist/rules/prefer-type-fest-readonly-deep.js +63 -0
  402. package/dist/rules/prefer-type-fest-readonly-deep.js.map +1 -0
  403. package/dist/rules/prefer-type-fest-require-all-or-none.d.ts +13 -0
  404. package/dist/rules/prefer-type-fest-require-all-or-none.d.ts.map +1 -0
  405. package/dist/rules/prefer-type-fest-require-all-or-none.js +75 -0
  406. package/dist/rules/prefer-type-fest-require-all-or-none.js.map +1 -0
  407. package/dist/rules/prefer-type-fest-require-at-least-one.d.ts +13 -0
  408. package/dist/rules/prefer-type-fest-require-at-least-one.d.ts.map +1 -0
  409. package/dist/rules/prefer-type-fest-require-at-least-one.js +74 -0
  410. package/dist/rules/prefer-type-fest-require-at-least-one.js.map +1 -0
  411. package/dist/rules/prefer-type-fest-require-exactly-one.d.ts +13 -0
  412. package/dist/rules/prefer-type-fest-require-exactly-one.d.ts.map +1 -0
  413. package/dist/rules/prefer-type-fest-require-exactly-one.js +102 -0
  414. package/dist/rules/prefer-type-fest-require-exactly-one.js.map +1 -0
  415. package/dist/rules/prefer-type-fest-require-one-or-none.d.ts +13 -0
  416. package/dist/rules/prefer-type-fest-require-one-or-none.d.ts.map +1 -0
  417. package/dist/rules/prefer-type-fest-require-one-or-none.js +74 -0
  418. package/dist/rules/prefer-type-fest-require-one-or-none.js.map +1 -0
  419. package/dist/rules/prefer-type-fest-required-deep.d.ts +13 -0
  420. package/dist/rules/prefer-type-fest-required-deep.d.ts.map +1 -0
  421. package/dist/rules/prefer-type-fest-required-deep.js +63 -0
  422. package/dist/rules/prefer-type-fest-required-deep.js.map +1 -0
  423. package/dist/rules/prefer-type-fest-schema.d.ts +13 -0
  424. package/dist/rules/prefer-type-fest-schema.d.ts.map +1 -0
  425. package/dist/rules/prefer-type-fest-schema.js +74 -0
  426. package/dist/rules/prefer-type-fest-schema.js.map +1 -0
  427. package/dist/rules/prefer-type-fest-set-non-nullable.d.ts +13 -0
  428. package/dist/rules/prefer-type-fest-set-non-nullable.d.ts.map +1 -0
  429. package/dist/rules/prefer-type-fest-set-non-nullable.js +74 -0
  430. package/dist/rules/prefer-type-fest-set-non-nullable.js.map +1 -0
  431. package/dist/rules/prefer-type-fest-set-optional.d.ts +13 -0
  432. package/dist/rules/prefer-type-fest-set-optional.d.ts.map +1 -0
  433. package/dist/rules/prefer-type-fest-set-optional.js +74 -0
  434. package/dist/rules/prefer-type-fest-set-optional.js.map +1 -0
  435. package/dist/rules/prefer-type-fest-set-readonly.d.ts +13 -0
  436. package/dist/rules/prefer-type-fest-set-readonly.d.ts.map +1 -0
  437. package/dist/rules/prefer-type-fest-set-readonly.js +74 -0
  438. package/dist/rules/prefer-type-fest-set-readonly.js.map +1 -0
  439. package/dist/rules/prefer-type-fest-set-required.d.ts +13 -0
  440. package/dist/rules/prefer-type-fest-set-required.d.ts.map +1 -0
  441. package/dist/rules/prefer-type-fest-set-required.js +74 -0
  442. package/dist/rules/prefer-type-fest-set-required.js.map +1 -0
  443. package/dist/rules/prefer-type-fest-simplify.d.ts +13 -0
  444. package/dist/rules/prefer-type-fest-simplify.d.ts.map +1 -0
  445. package/dist/rules/prefer-type-fest-simplify.js +75 -0
  446. package/dist/rules/prefer-type-fest-simplify.js.map +1 -0
  447. package/dist/rules/prefer-type-fest-tagged-brands.d.ts +13 -0
  448. package/dist/rules/prefer-type-fest-tagged-brands.d.ts.map +1 -0
  449. package/dist/rules/prefer-type-fest-tagged-brands.js +174 -0
  450. package/dist/rules/prefer-type-fest-tagged-brands.js.map +1 -0
  451. package/dist/rules/prefer-type-fest-tuple-of.d.ts +14 -0
  452. package/dist/rules/prefer-type-fest-tuple-of.d.ts.map +1 -0
  453. package/dist/rules/prefer-type-fest-tuple-of.js +132 -0
  454. package/dist/rules/prefer-type-fest-tuple-of.js.map +1 -0
  455. package/dist/rules/prefer-type-fest-unknown-array.d.ts +13 -0
  456. package/dist/rules/prefer-type-fest-unknown-array.d.ts.map +1 -0
  457. package/dist/rules/prefer-type-fest-unknown-array.js +111 -0
  458. package/dist/rules/prefer-type-fest-unknown-array.js.map +1 -0
  459. package/dist/rules/prefer-type-fest-unknown-map.d.ts +13 -0
  460. package/dist/rules/prefer-type-fest-unknown-map.d.ts.map +1 -0
  461. package/dist/rules/prefer-type-fest-unknown-map.js +82 -0
  462. package/dist/rules/prefer-type-fest-unknown-map.js.map +1 -0
  463. package/dist/rules/prefer-type-fest-unknown-record.d.ts +13 -0
  464. package/dist/rules/prefer-type-fest-unknown-record.d.ts.map +1 -0
  465. package/dist/rules/prefer-type-fest-unknown-record.js +77 -0
  466. package/dist/rules/prefer-type-fest-unknown-record.js.map +1 -0
  467. package/dist/rules/prefer-type-fest-unknown-set.d.ts +13 -0
  468. package/dist/rules/prefer-type-fest-unknown-set.d.ts.map +1 -0
  469. package/dist/rules/prefer-type-fest-unknown-set.js +81 -0
  470. package/dist/rules/prefer-type-fest-unknown-set.js.map +1 -0
  471. package/dist/rules/prefer-type-fest-unwrap-tagged.d.ts +13 -0
  472. package/dist/rules/prefer-type-fest-unwrap-tagged.d.ts.map +1 -0
  473. package/dist/rules/prefer-type-fest-unwrap-tagged.js +74 -0
  474. package/dist/rules/prefer-type-fest-unwrap-tagged.js.map +1 -0
  475. package/dist/rules/prefer-type-fest-value-of.d.ts +13 -0
  476. package/dist/rules/prefer-type-fest-value-of.d.ts.map +1 -0
  477. package/dist/rules/prefer-type-fest-value-of.js +74 -0
  478. package/dist/rules/prefer-type-fest-value-of.js.map +1 -0
  479. package/dist/rules/prefer-type-fest-writable-deep.d.ts +13 -0
  480. package/dist/rules/prefer-type-fest-writable-deep.d.ts.map +1 -0
  481. package/dist/rules/prefer-type-fest-writable-deep.js +64 -0
  482. package/dist/rules/prefer-type-fest-writable-deep.js.map +1 -0
  483. package/dist/rules/prefer-type-fest-writable.d.ts +13 -0
  484. package/dist/rules/prefer-type-fest-writable.d.ts.map +1 -0
  485. package/dist/rules/prefer-type-fest-writable.js +129 -0
  486. package/dist/rules/prefer-type-fest-writable.js.map +1 -0
  487. package/docs/rules/getting-started.md +74 -0
  488. package/docs/rules/guides/adoption-checklist.md +37 -0
  489. package/docs/rules/guides/preset-selection-strategy.md +87 -0
  490. package/docs/rules/guides/rollout-and-fix-safety.md +42 -0
  491. package/docs/rules/guides/snapshot-testing.md +121 -0
  492. package/docs/rules/guides/type-aware-linting-readiness.md +105 -0
  493. package/docs/rules/overview.md +49 -0
  494. package/docs/rules/prefer-ts-extras-array-at.md +132 -0
  495. package/docs/rules/prefer-ts-extras-array-concat.md +138 -0
  496. package/docs/rules/prefer-ts-extras-array-find-last-index.md +108 -0
  497. package/docs/rules/prefer-ts-extras-array-find-last.md +108 -0
  498. package/docs/rules/prefer-ts-extras-array-find.md +108 -0
  499. package/docs/rules/prefer-ts-extras-array-first.md +132 -0
  500. package/docs/rules/prefer-ts-extras-array-includes.md +135 -0
  501. package/docs/rules/prefer-ts-extras-array-join.md +132 -0
  502. package/docs/rules/prefer-ts-extras-array-last.md +132 -0
  503. package/docs/rules/prefer-ts-extras-as-writable.md +124 -0
  504. package/docs/rules/prefer-ts-extras-assert-defined.md +140 -0
  505. package/docs/rules/prefer-ts-extras-assert-error.md +147 -0
  506. package/docs/rules/prefer-ts-extras-assert-present.md +139 -0
  507. package/docs/rules/prefer-ts-extras-is-defined-filter.md +125 -0
  508. package/docs/rules/prefer-ts-extras-is-defined.md +147 -0
  509. package/docs/rules/prefer-ts-extras-is-empty.md +142 -0
  510. package/docs/rules/prefer-ts-extras-is-equal-type.md +144 -0
  511. package/docs/rules/prefer-ts-extras-is-finite.md +116 -0
  512. package/docs/rules/prefer-ts-extras-is-infinite.md +134 -0
  513. package/docs/rules/prefer-ts-extras-is-integer.md +116 -0
  514. package/docs/rules/prefer-ts-extras-is-present-filter.md +125 -0
  515. package/docs/rules/prefer-ts-extras-is-present.md +143 -0
  516. package/docs/rules/prefer-ts-extras-is-safe-integer.md +116 -0
  517. package/docs/rules/prefer-ts-extras-key-in.md +150 -0
  518. package/docs/rules/prefer-ts-extras-not.md +138 -0
  519. package/docs/rules/prefer-ts-extras-object-entries.md +130 -0
  520. package/docs/rules/prefer-ts-extras-object-from-entries.md +131 -0
  521. package/docs/rules/prefer-ts-extras-object-has-in.md +141 -0
  522. package/docs/rules/prefer-ts-extras-object-has-own.md +137 -0
  523. package/docs/rules/prefer-ts-extras-object-keys.md +127 -0
  524. package/docs/rules/prefer-ts-extras-object-values.md +128 -0
  525. package/docs/rules/prefer-ts-extras-safe-cast-to.md +130 -0
  526. package/docs/rules/prefer-ts-extras-set-has.md +203 -0
  527. package/docs/rules/prefer-ts-extras-string-split.md +133 -0
  528. package/docs/rules/prefer-type-fest-abstract-constructor.md +87 -0
  529. package/docs/rules/prefer-type-fest-arrayable.md +127 -0
  530. package/docs/rules/prefer-type-fest-async-return-type.md +117 -0
  531. package/docs/rules/prefer-type-fest-conditional-pick.md +140 -0
  532. package/docs/rules/prefer-type-fest-constructor.md +87 -0
  533. package/docs/rules/prefer-type-fest-except.md +231 -0
  534. package/docs/rules/prefer-type-fest-if.md +217 -0
  535. package/docs/rules/prefer-type-fest-iterable-element.md +170 -0
  536. package/docs/rules/prefer-type-fest-json-array.md +107 -0
  537. package/docs/rules/prefer-type-fest-json-object.md +107 -0
  538. package/docs/rules/prefer-type-fest-json-primitive.md +105 -0
  539. package/docs/rules/prefer-type-fest-json-value.md +107 -0
  540. package/docs/rules/prefer-type-fest-keys-of-union.md +139 -0
  541. package/docs/rules/prefer-type-fest-literal-union.md +118 -0
  542. package/docs/rules/prefer-type-fest-merge-exclusive.md +118 -0
  543. package/docs/rules/prefer-type-fest-non-empty-tuple.md +115 -0
  544. package/docs/rules/prefer-type-fest-omit-index-signature.md +196 -0
  545. package/docs/rules/prefer-type-fest-partial-deep.md +133 -0
  546. package/docs/rules/prefer-type-fest-primitive.md +106 -0
  547. package/docs/rules/prefer-type-fest-promisable.md +246 -0
  548. package/docs/rules/prefer-type-fest-readonly-deep.md +151 -0
  549. package/docs/rules/prefer-type-fest-require-all-or-none.md +149 -0
  550. package/docs/rules/prefer-type-fest-require-at-least-one.md +155 -0
  551. package/docs/rules/prefer-type-fest-require-exactly-one.md +240 -0
  552. package/docs/rules/prefer-type-fest-require-one-or-none.md +165 -0
  553. package/docs/rules/prefer-type-fest-required-deep.md +123 -0
  554. package/docs/rules/prefer-type-fest-schema.md +161 -0
  555. package/docs/rules/prefer-type-fest-set-non-nullable.md +145 -0
  556. package/docs/rules/prefer-type-fest-set-optional.md +133 -0
  557. package/docs/rules/prefer-type-fest-set-readonly.md +136 -0
  558. package/docs/rules/prefer-type-fest-set-required.md +140 -0
  559. package/docs/rules/prefer-type-fest-simplify.md +168 -0
  560. package/docs/rules/prefer-type-fest-tagged-brands.md +278 -0
  561. package/docs/rules/prefer-type-fest-tuple-of.md +250 -0
  562. package/docs/rules/prefer-type-fest-unknown-array.md +126 -0
  563. package/docs/rules/prefer-type-fest-unknown-map.md +123 -0
  564. package/docs/rules/prefer-type-fest-unknown-record.md +130 -0
  565. package/docs/rules/prefer-type-fest-unknown-set.md +123 -0
  566. package/docs/rules/prefer-type-fest-unwrap-tagged.md +133 -0
  567. package/docs/rules/prefer-type-fest-value-of.md +121 -0
  568. package/docs/rules/prefer-type-fest-writable-deep.md +113 -0
  569. package/docs/rules/prefer-type-fest-writable.md +139 -0
  570. package/docs/rules/presets/all.md +102 -0
  571. package/docs/rules/presets/index.md +124 -0
  572. package/docs/rules/presets/minimal.md +37 -0
  573. package/docs/rules/presets/recommended-type-checked.md +37 -0
  574. package/docs/rules/presets/recommended.md +116 -0
  575. package/docs/rules/presets/strict.md +98 -0
  576. package/docs/rules/presets/ts-extras-type-guards.md +45 -0
  577. package/docs/rules/presets/type-fest-types.md +68 -0
  578. package/package.json +574 -0
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Check whether a Set contains a candidate value while intentionally exposing
3
+ * only plain-boolean semantics at call sites.
4
+ */
5
+ export declare const setContainsValue: <Type>(set: ReadonlySet<Type>, item: Type) => boolean;
6
+ //# sourceMappingURL=set-membership.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-membership.d.ts","sourceRoot":"","sources":["../../src/_internal/set-membership.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,IAAI,EACjC,KAAK,WAAW,CAAC,IAAI,CAAC,EACtB,MAAM,IAAI,KACX,OAAkC,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @packageDocumentation
3
+ * Shared helpers for explicit boolean Set membership checks.
4
+ */
5
+ import { setHas } from "ts-extras";
6
+ /**
7
+ * Check whether a Set contains a candidate value while intentionally exposing
8
+ * only plain-boolean semantics at call sites.
9
+ */
10
+ export const setContainsValue = (set, item) => setHas(set, item);
11
+ //# sourceMappingURL=set-membership.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-membership.js","sourceRoot":"","sources":["../../src/_internal/set-membership.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC5B,GAAsB,EACtB,IAAU,EACH,EAAE,CAAC,MAAM,CAAO,GAAG,EAAE,IAAI,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @packageDocumentation
3
+ * Shared character classification helpers for lightweight parser/token logic.
4
+ */
5
+ /**
6
+ * Determine whether a single-character string is an ASCII identifier part.
7
+ *
8
+ * @remarks
9
+ * This intentionally mirrors lightweight token checks used by internal string
10
+ * parsers. It does not attempt to model full Unicode ECMAScript identifiers.
11
+ */
12
+ export declare const isAsciiIdentifierPartCharacter: (character: string) => boolean;
13
+ /**
14
+ * Determine whether a single-character string should be treated as whitespace
15
+ * in internal import/token parsing helpers.
16
+ */
17
+ export declare const isKnownWhitespaceCharacter: (character: string) => boolean;
18
+ //# sourceMappingURL=text-character.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-character.d.ts","sourceRoot":"","sources":["../../src/_internal/text-character.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAyBH;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,GAAI,WAAW,MAAM,KAAG,OAoBlE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,0BAA0B,GAAI,WAAW,MAAM,KAAG,OAuB9D,CAAC"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * @packageDocumentation
3
+ * Shared character classification helpers for lightweight parser/token logic.
4
+ */
5
+ import { isDefined } from "ts-extras";
6
+ const ASCII_DIGIT_ZERO = 48;
7
+ const ASCII_DIGIT_NINE = 57;
8
+ const ASCII_UPPERCASE_A = 65;
9
+ const ASCII_UPPERCASE_Z = 90;
10
+ const ASCII_LOWERCASE_A = 97;
11
+ const ASCII_LOWERCASE_Z = 122;
12
+ const ASCII_TAB = 9;
13
+ const ASCII_LINE_FEED = 10;
14
+ const ASCII_VERTICAL_TAB = 11;
15
+ const ASCII_FORM_FEED = 12;
16
+ const ASCII_CARRIAGE_RETURN = 13;
17
+ const ASCII_SPACE = 32;
18
+ const NO_BREAK_SPACE = 160;
19
+ const BYTE_ORDER_MARK = 65_279;
20
+ const LINE_SEPARATOR = 8232;
21
+ const PARAGRAPH_SEPARATOR = 8233;
22
+ const DOLLAR_SIGN = "$";
23
+ const UNDERSCORE = "_";
24
+ /**
25
+ * Determine whether a single-character string is an ASCII identifier part.
26
+ *
27
+ * @remarks
28
+ * This intentionally mirrors lightweight token checks used by internal string
29
+ * parsers. It does not attempt to model full Unicode ECMAScript identifiers.
30
+ */
31
+ export const isAsciiIdentifierPartCharacter = (character) => {
32
+ if (character === DOLLAR_SIGN || character === UNDERSCORE) {
33
+ return true;
34
+ }
35
+ if (character.length === 0) {
36
+ return false;
37
+ }
38
+ const codePoint = character.codePointAt(0);
39
+ if (!isDefined(codePoint)) {
40
+ return false;
41
+ }
42
+ return ((codePoint >= ASCII_DIGIT_ZERO && codePoint <= ASCII_DIGIT_NINE) ||
43
+ (codePoint >= ASCII_UPPERCASE_A && codePoint <= ASCII_UPPERCASE_Z) ||
44
+ (codePoint >= ASCII_LOWERCASE_A && codePoint <= ASCII_LOWERCASE_Z));
45
+ };
46
+ /**
47
+ * Determine whether a single-character string should be treated as whitespace
48
+ * in internal import/token parsing helpers.
49
+ */
50
+ export const isKnownWhitespaceCharacter = (character) => {
51
+ if (character.length === 0) {
52
+ return false;
53
+ }
54
+ const codePoint = character.codePointAt(0);
55
+ if (!isDefined(codePoint)) {
56
+ return false;
57
+ }
58
+ return (codePoint === ASCII_TAB ||
59
+ codePoint === ASCII_LINE_FEED ||
60
+ codePoint === ASCII_VERTICAL_TAB ||
61
+ codePoint === ASCII_FORM_FEED ||
62
+ codePoint === ASCII_CARRIAGE_RETURN ||
63
+ codePoint === ASCII_SPACE ||
64
+ codePoint === NO_BREAK_SPACE ||
65
+ codePoint === BYTE_ORDER_MARK ||
66
+ codePoint === LINE_SEPARATOR ||
67
+ codePoint === PARAGRAPH_SEPARATOR);
68
+ };
69
+ //# sourceMappingURL=text-character.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-character.js","sourceRoot":"","sources":["../../src/_internal/text-character.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,gBAAgB,GAAG,EAAW,CAAC;AACrC,MAAM,gBAAgB,GAAG,EAAW,CAAC;AACrC,MAAM,iBAAiB,GAAG,EAAW,CAAC;AACtC,MAAM,iBAAiB,GAAG,EAAW,CAAC;AACtC,MAAM,iBAAiB,GAAG,EAAW,CAAC;AACtC,MAAM,iBAAiB,GAAG,GAAY,CAAC;AAEvC,MAAM,SAAS,GAAG,CAAU,CAAC;AAC7B,MAAM,eAAe,GAAG,EAAW,CAAC;AACpC,MAAM,kBAAkB,GAAG,EAAW,CAAC;AACvC,MAAM,eAAe,GAAG,EAAW,CAAC;AACpC,MAAM,qBAAqB,GAAG,EAAW,CAAC;AAC1C,MAAM,WAAW,GAAG,EAAW,CAAC;AAChC,MAAM,cAAc,GAAG,GAAY,CAAC;AACpC,MAAM,eAAe,GAAG,MAAe,CAAC;AACxC,MAAM,cAAc,GAAG,IAAa,CAAC;AACrC,MAAM,mBAAmB,GAAG,IAAa,CAAC;AAE1C,MAAM,WAAW,GAAG,GAAY,CAAC;AACjC,MAAM,UAAU,GAAG,GAAY,CAAC;AAEhC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,SAAiB,EAAW,EAAE;IACzE,IAAI,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAE3C,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,CACH,CAAC,SAAS,IAAI,gBAAgB,IAAI,SAAS,IAAI,gBAAgB,CAAC;QAChE,CAAC,SAAS,IAAI,iBAAiB,IAAI,SAAS,IAAI,iBAAiB,CAAC;QAClE,CAAC,SAAS,IAAI,iBAAiB,IAAI,SAAS,IAAI,iBAAiB,CAAC,CACrE,CAAC;AACN,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,SAAiB,EAAW,EAAE;IACrE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAE3C,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;QACxB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,CACH,SAAS,KAAK,SAAS;QACvB,SAAS,KAAK,eAAe;QAC7B,SAAS,KAAK,kBAAkB;QAChC,SAAS,KAAK,eAAe;QAC7B,SAAS,KAAK,qBAAqB;QACnC,SAAS,KAAK,WAAW;QACzB,SAAS,KAAK,cAAc;QAC5B,SAAS,KAAK,eAAe;QAC7B,SAAS,KAAK,cAAc;QAC5B,SAAS,KAAK,mBAAmB,CACpC,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @packageDocumentation
3
+ * Shared helpers for extracting throw-only `if` consequents.
4
+ */
5
+ import type { TSESTree } from "@typescript-eslint/utils";
6
+ /**
7
+ * Check whether an `if` consequent contains only a throw statement.
8
+ *
9
+ * @param node - Consequent statement to inspect.
10
+ *
11
+ * @returns `true` for `throw ...` and `{ throw ... }` shapes.
12
+ */
13
+ export declare const isThrowOnlyConsequent: (node: Readonly<TSESTree.Statement>) => boolean;
14
+ /**
15
+ * Extract the throw statement from a throw-only consequent.
16
+ *
17
+ * @param node - Consequent statement to inspect.
18
+ *
19
+ * @returns Throw statement when present; otherwise `null`.
20
+ */
21
+ export declare const getThrowStatementFromConsequent: (node: Readonly<TSESTree.Statement>) => null | TSESTree.ThrowStatement;
22
+ //# sourceMappingURL=throw-consequent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"throw-consequent.d.ts","sourceRoot":"","sources":["../../src/_internal/throw-consequent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AA4BzD;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAC9B,MAAM,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,KACnC,OAOF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,+BAA+B,GACxC,MAAM,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,KACnC,IAAI,GAAG,QAAQ,CAAC,cAOlB,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { arrayFirst } from "ts-extras";
2
+ /**
3
+ * Extract the single throw statement from a block consequent when present.
4
+ *
5
+ * @param node - Consequent statement candidate.
6
+ *
7
+ * @returns The throw statement when the consequent is exactly `{ throw ... }`;
8
+ * otherwise `null`.
9
+ */
10
+ const getSingleThrowFromBlockConsequent = (node) => {
11
+ if (node.type !== "BlockStatement" || node.body.length !== 1) {
12
+ return null;
13
+ }
14
+ const firstStatement = arrayFirst(node.body);
15
+ if (firstStatement?.type !== "ThrowStatement") {
16
+ return null;
17
+ }
18
+ return firstStatement;
19
+ };
20
+ /**
21
+ * Check whether an `if` consequent contains only a throw statement.
22
+ *
23
+ * @param node - Consequent statement to inspect.
24
+ *
25
+ * @returns `true` for `throw ...` and `{ throw ... }` shapes.
26
+ */
27
+ export const isThrowOnlyConsequent = (node) => {
28
+ if (node.type === "ThrowStatement") {
29
+ return true;
30
+ }
31
+ /* v8 ignore next 2 -- defensive sparse-array guard for malformed synthetic AST nodes. */
32
+ return getSingleThrowFromBlockConsequent(node) !== null;
33
+ };
34
+ /**
35
+ * Extract the throw statement from a throw-only consequent.
36
+ *
37
+ * @param node - Consequent statement to inspect.
38
+ *
39
+ * @returns Throw statement when present; otherwise `null`.
40
+ */
41
+ export const getThrowStatementFromConsequent = (node) => {
42
+ if (node.type === "ThrowStatement") {
43
+ return node;
44
+ }
45
+ /* v8 ignore next 2 -- guarded by isThrowOnlyConsequent before this helper is invoked in rule flow. */
46
+ return getSingleThrowFromBlockConsequent(node);
47
+ };
48
+ //# sourceMappingURL=throw-consequent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"throw-consequent.js","sourceRoot":"","sources":["../../src/_internal/throw-consequent.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC;;;;;;;GAOG;AACH,MAAM,iCAAiC,GAAG,CACtC,IAAkC,EACJ,EAAE;IAChC,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE7C,IAAI,cAAc,EAAE,IAAI,KAAK,gBAAgB,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,cAAc,CAAC;AAC1B,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACjC,IAAkC,EAC3B,EAAE;IACT,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,yFAAyF;IACzF,OAAO,iCAAiC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;AAC5D,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC3C,IAAkC,EACJ,EAAE;IAChC,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,sGAAsG;IACtG,OAAO,iCAAiC,CAAC,IAAI,CAAC,CAAC;AACnD,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @packageDocumentation
3
+ * Shared helpers for validating canonical `throw new TypeError(...)` shapes.
4
+ */
5
+ import type { TSESLint, TSESTree } from "@typescript-eslint/utils";
6
+ import type { UnknownArray } from "type-fest";
7
+ /**
8
+ * Extract the single constructor argument from `throw new TypeError(...)`
9
+ * statements when the constructor resolves to the global `TypeError` binding.
10
+ *
11
+ * @param options - Rule context and throw statement candidate.
12
+ *
13
+ * @returns The single non-spread constructor argument; otherwise `null`.
14
+ */
15
+ export declare const getSingleGlobalTypeErrorArgument: <MessageIds extends string, Options extends Readonly<UnknownArray>>({ context, throwStatement, }: Readonly<{
16
+ context: Readonly<TSESLint.RuleContext<MessageIds, Options>>;
17
+ throwStatement: Readonly<TSESTree.ThrowStatement>;
18
+ }>) => null | TSESTree.Expression;
19
+ //# sourceMappingURL=throw-type-error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"throw-type-error.d.ts","sourceRoot":"","sources":["../../src/_internal/throw-type-error.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAI9C;;;;;;;GAOG;AACH,eAAO,MAAM,gCAAgC,GACzC,UAAU,SAAS,MAAM,EACzB,OAAO,SAAS,QAAQ,CAAC,YAAY,CAAC,EACxC,8BAGC,QAAQ,CAAC;IACR,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAC7D,cAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;CACrD,CAAC,KAAG,IAAI,GAAG,QAAQ,CAAC,UAqBpB,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { isGlobalIdentifierNamed } from "./typed-rule.js";
2
+ /**
3
+ * Extract the single constructor argument from `throw new TypeError(...)`
4
+ * statements when the constructor resolves to the global `TypeError` binding.
5
+ *
6
+ * @param options - Rule context and throw statement candidate.
7
+ *
8
+ * @returns The single non-spread constructor argument; otherwise `null`.
9
+ */
10
+ export const getSingleGlobalTypeErrorArgument = ({ context, throwStatement, }) => {
11
+ if (throwStatement.argument.type !== "NewExpression" ||
12
+ throwStatement.argument.callee.type !== "Identifier" ||
13
+ throwStatement.argument.callee.name !== "TypeError" ||
14
+ !isGlobalIdentifierNamed(context, throwStatement.argument.callee, "TypeError") ||
15
+ throwStatement.argument.arguments.length !== 1) {
16
+ return null;
17
+ }
18
+ const [firstArgument] = throwStatement.argument.arguments;
19
+ if (!firstArgument || firstArgument.type === "SpreadElement") {
20
+ return null;
21
+ }
22
+ return firstArgument;
23
+ };
24
+ //# sourceMappingURL=throw-type-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"throw-type-error.js","sourceRoot":"","sources":["../../src/_internal/throw-type-error.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAG9C,EACE,OAAO,EACP,cAAc,GAIhB,EAA8B,EAAE;IAC9B,IACI,cAAc,CAAC,QAAQ,CAAC,IAAI,KAAK,eAAe;QAChD,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,YAAY;QACpD,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW;QACnD,CAAC,uBAAuB,CACpB,OAAO,EACP,cAAc,CAAC,QAAQ,CAAC,MAAM,EAC9B,WAAW,CACd;QACD,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAChD,CAAC;QACC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC;IAC1D,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,aAAa,CAAC;AACzB,CAAC,CAAC"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * @packageDocumentation
3
+ * Compatibility wrappers for optional TypeScript TypeChecker APIs.
4
+ */
5
+ import type ts from "typescript";
6
+ /**
7
+ * Read `checker.getApparentType` when the host TypeScript version provides it.
8
+ *
9
+ * @param checker - TypeScript type checker.
10
+ * @param type - Candidate type.
11
+ *
12
+ * @returns Apparent type when available; otherwise `undefined`.
13
+ */
14
+ export declare const getTypeCheckerApparentType: (checker: Readonly<ts.TypeChecker>, type: Readonly<ts.Type>) => ts.Type | undefined;
15
+ /**
16
+ * Read `checker.getBaseTypes` when the host TypeScript version provides it.
17
+ *
18
+ * @param checker - TypeScript type checker.
19
+ * @param type - Candidate type.
20
+ *
21
+ * @returns Base types when available; otherwise `undefined`.
22
+ */
23
+ export declare const getTypeCheckerBaseTypes: (checker: Readonly<ts.TypeChecker>, type: Readonly<ts.Type>) => readonly ts.BaseType[] | undefined;
24
+ /**
25
+ * Read `checker.getStringType` when the host TypeScript version provides it.
26
+ *
27
+ * @param checker - TypeScript type checker.
28
+ *
29
+ * @returns Primitive string type when available; otherwise `undefined`.
30
+ */
31
+ export declare const getTypeCheckerStringType: (checker: Readonly<ts.TypeChecker>) => ts.Type | undefined;
32
+ /**
33
+ * Read `checker.isTypeAssignableTo` when the host TypeScript version provides
34
+ * it.
35
+ *
36
+ * @param checker - TypeScript type checker.
37
+ * @param source - Candidate source type.
38
+ * @param target - Candidate target type.
39
+ *
40
+ * @returns Assignability result when available; otherwise `undefined`.
41
+ */
42
+ export declare const getTypeCheckerIsTypeAssignableToResult: (checker: Readonly<ts.TypeChecker>, source: Readonly<ts.Type>, target: Readonly<ts.Type>) => boolean | undefined;
43
+ /**
44
+ * Read `checker.getBaseConstraintOfType` when the host TypeScript version
45
+ * provides it.
46
+ *
47
+ * @param checker - TypeScript type checker.
48
+ * @param type - Candidate type.
49
+ *
50
+ * @returns Base-constraint type when available; otherwise `undefined`.
51
+ */
52
+ export declare const getTypeCheckerBaseConstraintType: (checker: Readonly<ts.TypeChecker>, type: Readonly<ts.Type>) => ts.Type | undefined;
53
+ /**
54
+ * Read `checker.isArrayType` when the host TypeScript version provides it.
55
+ *
56
+ * @param checker - TypeScript type checker.
57
+ * @param type - Candidate type.
58
+ *
59
+ * @returns Array-type result when available; otherwise `undefined`.
60
+ */
61
+ export declare const getTypeCheckerIsArrayTypeResult: (checker: Readonly<ts.TypeChecker>, type: Readonly<ts.Type>) => boolean | undefined;
62
+ /**
63
+ * Read `checker.isTupleType` when the host TypeScript version provides it.
64
+ *
65
+ * @param checker - TypeScript type checker.
66
+ * @param type - Candidate type.
67
+ *
68
+ * @returns Tuple-type result when available; otherwise `undefined`.
69
+ */
70
+ export declare const getTypeCheckerIsTupleTypeResult: (checker: Readonly<ts.TypeChecker>, type: Readonly<ts.Type>) => boolean | undefined;
71
+ /**
72
+ * Read `checker.getTypeArguments` when the host TypeScript version provides it.
73
+ *
74
+ * @param checker - TypeScript type checker.
75
+ * @param type - Candidate type.
76
+ *
77
+ * @returns Type arguments when available; otherwise `undefined`.
78
+ */
79
+ export declare const getTypeCheckerTypeArguments: (checker: Readonly<ts.TypeChecker>, type: Readonly<ts.Type>) => readonly ts.Type[] | undefined;
80
+ //# sourceMappingURL=type-checker-compat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-checker-compat.d.ts","sourceRoot":"","sources":["../../src/_internal/type-checker-compat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAKjC;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,GACnC,SAAS,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,EACjC,MAAM,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,KACxB,EAAE,CAAC,IAAI,GAAG,SAQZ,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,uBAAuB,GAChC,SAAS,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,EACjC,MAAM,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,KACxB,SAAS,EAAE,CAAC,QAAQ,EAAE,GAAG,SAQ3B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,wBAAwB,GACjC,SAAS,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,KAClC,EAAE,CAAC,IAAI,GAAG,SAQZ,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,sCAAsC,GAC/C,SAAS,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,EACjC,QAAQ,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EACzB,QAAQ,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,KAC1B,OAAO,GAAG,SAeZ,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,gCAAgC,GACzC,SAAS,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,EACjC,MAAM,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,KACxB,EAAE,CAAC,IAAI,GAAG,SAaZ,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B,GACxC,SAAS,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,EACjC,MAAM,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,KACxB,OAAO,GAAG,SAQZ,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B,GACxC,SAAS,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,EACjC,MAAM,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,KACxB,OAAO,GAAG,SAQZ,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,GACpC,SAAS,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,EACjC,MAAM,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,KACxB,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,SAcvB,CAAC"}
@@ -0,0 +1,104 @@
1
+ import { isTypeReferenceType } from "@typescript-eslint/type-utils";
2
+ import { safeCastTo } from "ts-extras";
3
+ /**
4
+ * Read `checker.getApparentType` when the host TypeScript version provides it.
5
+ *
6
+ * @param checker - TypeScript type checker.
7
+ * @param type - Candidate type.
8
+ *
9
+ * @returns Apparent type when available; otherwise `undefined`.
10
+ */
11
+ export const getTypeCheckerApparentType = (checker, type) => {
12
+ const checkerWithApparentType = safeCastTo(checker);
13
+ return checkerWithApparentType.getApparentType?.call(checker, type);
14
+ };
15
+ /**
16
+ * Read `checker.getBaseTypes` when the host TypeScript version provides it.
17
+ *
18
+ * @param checker - TypeScript type checker.
19
+ * @param type - Candidate type.
20
+ *
21
+ * @returns Base types when available; otherwise `undefined`.
22
+ */
23
+ export const getTypeCheckerBaseTypes = (checker, type) => {
24
+ const checkerWithBaseTypes = checker;
25
+ return checkerWithBaseTypes.getBaseTypes?.call(checker, type);
26
+ };
27
+ /**
28
+ * Read `checker.getStringType` when the host TypeScript version provides it.
29
+ *
30
+ * @param checker - TypeScript type checker.
31
+ *
32
+ * @returns Primitive string type when available; otherwise `undefined`.
33
+ */
34
+ export const getTypeCheckerStringType = (checker) => {
35
+ const checkerWithStringType = safeCastTo(checker);
36
+ return checkerWithStringType.getStringType?.call(checker);
37
+ };
38
+ /**
39
+ * Read `checker.isTypeAssignableTo` when the host TypeScript version provides
40
+ * it.
41
+ *
42
+ * @param checker - TypeScript type checker.
43
+ * @param source - Candidate source type.
44
+ * @param target - Candidate target type.
45
+ *
46
+ * @returns Assignability result when available; otherwise `undefined`.
47
+ */
48
+ export const getTypeCheckerIsTypeAssignableToResult = (checker, source, target) => {
49
+ const checkerWithAssignable = safeCastTo(checker);
50
+ return checkerWithAssignable.isTypeAssignableTo?.call(checker, source, target);
51
+ };
52
+ /**
53
+ * Read `checker.getBaseConstraintOfType` when the host TypeScript version
54
+ * provides it.
55
+ *
56
+ * @param checker - TypeScript type checker.
57
+ * @param type - Candidate type.
58
+ *
59
+ * @returns Base-constraint type when available; otherwise `undefined`.
60
+ */
61
+ export const getTypeCheckerBaseConstraintType = (checker, type) => {
62
+ const checkerWithBaseConstraint = safeCastTo(checker);
63
+ return checkerWithBaseConstraint.getBaseConstraintOfType?.call(checker, type);
64
+ };
65
+ /**
66
+ * Read `checker.isArrayType` when the host TypeScript version provides it.
67
+ *
68
+ * @param checker - TypeScript type checker.
69
+ * @param type - Candidate type.
70
+ *
71
+ * @returns Array-type result when available; otherwise `undefined`.
72
+ */
73
+ export const getTypeCheckerIsArrayTypeResult = (checker, type) => {
74
+ const checkerWithArrayType = safeCastTo(checker);
75
+ return checkerWithArrayType.isArrayType?.call(checker, type);
76
+ };
77
+ /**
78
+ * Read `checker.isTupleType` when the host TypeScript version provides it.
79
+ *
80
+ * @param checker - TypeScript type checker.
81
+ * @param type - Candidate type.
82
+ *
83
+ * @returns Tuple-type result when available; otherwise `undefined`.
84
+ */
85
+ export const getTypeCheckerIsTupleTypeResult = (checker, type) => {
86
+ const checkerWithTupleType = safeCastTo(checker);
87
+ return checkerWithTupleType.isTupleType?.call(checker, type);
88
+ };
89
+ /**
90
+ * Read `checker.getTypeArguments` when the host TypeScript version provides it.
91
+ *
92
+ * @param checker - TypeScript type checker.
93
+ * @param type - Candidate type.
94
+ *
95
+ * @returns Type arguments when available; otherwise `undefined`.
96
+ */
97
+ export const getTypeCheckerTypeArguments = (checker, type) => {
98
+ if (!isTypeReferenceType(type)) {
99
+ return undefined;
100
+ }
101
+ const checkerWithTypeArguments = safeCastTo(checker);
102
+ return checkerWithTypeArguments.getTypeArguments?.call(checker, type);
103
+ };
104
+ //# sourceMappingURL=type-checker-compat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-checker-compat.js","sourceRoot":"","sources":["../../src/_internal/type-checker-compat.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACtC,OAAiC,EACjC,IAAuB,EACJ,EAAE;IACrB,MAAM,uBAAuB,GAAG,UAAU,CAIxC,OAAO,CAAC,CAAC;IAEX,OAAO,uBAAuB,CAAC,eAAe,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACxE,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACnC,OAAiC,EACjC,IAAuB,EACW,EAAE;IACpC,MAAM,oBAAoB,GAAG,OAI5B,CAAC;IAEF,OAAO,oBAAoB,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAClE,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACpC,OAAiC,EACd,EAAE;IACrB,MAAM,qBAAqB,GAAG,UAAU,CAItC,OAAO,CAAC,CAAC;IAEX,OAAO,qBAAqB,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9D,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,sCAAsC,GAAG,CAClD,OAAiC,EACjC,MAAyB,EACzB,MAAyB,EACN,EAAE;IACrB,MAAM,qBAAqB,GAAG,UAAU,CAOtC,OAAO,CAAC,CAAC;IAEX,OAAO,qBAAqB,CAAC,kBAAkB,EAAE,IAAI,CACjD,OAAO,EACP,MAAM,EACN,MAAM,CACT,CAAC;AACN,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAC5C,OAAiC,EACjC,IAAuB,EACJ,EAAE;IACrB,MAAM,yBAAyB,GAAG,UAAU,CAM1C,OAAO,CAAC,CAAC;IAEX,OAAO,yBAAyB,CAAC,uBAAuB,EAAE,IAAI,CAC1D,OAAO,EACP,IAAI,CACP,CAAC;AACN,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC3C,OAAiC,EACjC,IAAuB,EACJ,EAAE;IACrB,MAAM,oBAAoB,GAAG,UAAU,CAIrC,OAAO,CAAC,CAAC;IAEX,OAAO,oBAAoB,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACjE,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAC3C,OAAiC,EACjC,IAAuB,EACJ,EAAE;IACrB,MAAM,oBAAoB,GAAG,UAAU,CAIrC,OAAO,CAAC,CAAC;IAEX,OAAO,oBAAoB,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACjE,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CACvC,OAAiC,EACjC,IAAuB,EACO,EAAE;IAChC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,MAAM,wBAAwB,GAAG,UAAU,CAMzC,OAAO,CAAC,CAAC;IAEX,OAAO,wBAAwB,CAAC,gBAAgB,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC1E,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @packageDocumentation
3
+ * Conservative safety checks for autofixes that introduce type predicates.
4
+ */
5
+ import type { TSESTree } from "@typescript-eslint/utils";
6
+ /**
7
+ * Determine whether a call-expression replacement to a type-predicate helper is
8
+ * safe to apply as an autofix.
9
+ *
10
+ * @remarks
11
+ * Type-predicate helpers (for example `setHas`) can change control-flow
12
+ * narrowing in boolean guard expressions. This check intentionally disables
13
+ * autofix in those contexts and leaves a diagnostic for manual review.
14
+ */
15
+ export declare const isTypePredicateExpressionAutofixSafe: (node: Readonly<TSESTree.Expression>) => boolean;
16
+ /**
17
+ * Backward-compatible alias for call-expression-based callers.
18
+ */
19
+ export declare const isTypePredicateAutofixSafe: (node: Readonly<TSESTree.CallExpression>) => boolean;
20
+ //# sourceMappingURL=type-predicate-autofix-safety.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-predicate-autofix-safety.d.ts","sourceRoot":"","sources":["../../src/_internal/type-predicate-autofix-safety.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAKzD;;;;;;;;GAQG;AACH,eAAO,MAAM,oCAAoC,GAC7C,MAAM,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,KACpC,OA+DF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,GACnC,MAAM,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,KACxC,OAAqD,CAAC"}
@@ -0,0 +1,58 @@
1
+ import { getParentNode } from "./ast-node.js";
2
+ import { isTransparentExpressionWrapper } from "./value-rewrite-autofix-safety.js";
3
+ /**
4
+ * Determine whether a call-expression replacement to a type-predicate helper is
5
+ * safe to apply as an autofix.
6
+ *
7
+ * @remarks
8
+ * Type-predicate helpers (for example `setHas`) can change control-flow
9
+ * narrowing in boolean guard expressions. This check intentionally disables
10
+ * autofix in those contexts and leaves a diagnostic for manual review.
11
+ */
12
+ export const isTypePredicateExpressionAutofixSafe = (node) => {
13
+ let currentNode = node;
14
+ while (true) {
15
+ const parentNode = getParentNode(currentNode);
16
+ if (parentNode === undefined) {
17
+ return true;
18
+ }
19
+ if (isTransparentExpressionWrapper(parentNode, currentNode)) {
20
+ currentNode = parentNode;
21
+ continue;
22
+ }
23
+ if (parentNode.type === "UnaryExpression" &&
24
+ parentNode.operator === "!" &&
25
+ parentNode.argument === currentNode) {
26
+ return false;
27
+ }
28
+ if (parentNode.type === "LogicalExpression" &&
29
+ (parentNode.left === currentNode ||
30
+ parentNode.right === currentNode)) {
31
+ return false;
32
+ }
33
+ if (parentNode.type === "ConditionalExpression" &&
34
+ parentNode.test === currentNode) {
35
+ return false;
36
+ }
37
+ if ((parentNode.type === "DoWhileStatement" ||
38
+ parentNode.type === "IfStatement" ||
39
+ parentNode.type === "WhileStatement") &&
40
+ parentNode.test === currentNode) {
41
+ return false;
42
+ }
43
+ if (parentNode.type === "ForStatement" &&
44
+ parentNode.test === currentNode) {
45
+ return false;
46
+ }
47
+ if (parentNode.type === "SwitchCase" &&
48
+ parentNode.test === currentNode) {
49
+ return false;
50
+ }
51
+ return true;
52
+ }
53
+ };
54
+ /**
55
+ * Backward-compatible alias for call-expression-based callers.
56
+ */
57
+ export const isTypePredicateAutofixSafe = (node) => isTypePredicateExpressionAutofixSafe(node);
58
+ //# sourceMappingURL=type-predicate-autofix-safety.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-predicate-autofix-safety.js","sourceRoot":"","sources":["../../src/_internal/type-predicate-autofix-safety.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AAEnF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAChD,IAAmC,EAC5B,EAAE;IACT,IAAI,WAAW,GAA4B,IAAI,CAAC;IAEhD,OAAO,IAAI,EAAE,CAAC;QACV,MAAM,UAAU,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QAE9C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,8BAA8B,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC;YAC1D,WAAW,GAAG,UAAU,CAAC;YACzB,SAAS;QACb,CAAC;QAED,IACI,UAAU,CAAC,IAAI,KAAK,iBAAiB;YACrC,UAAU,CAAC,QAAQ,KAAK,GAAG;YAC3B,UAAU,CAAC,QAAQ,KAAK,WAAW,EACrC,CAAC;YACC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IACI,UAAU,CAAC,IAAI,KAAK,mBAAmB;YACvC,CAAC,UAAU,CAAC,IAAI,KAAK,WAAW;gBAC5B,UAAU,CAAC,KAAK,KAAK,WAAW,CAAC,EACvC,CAAC;YACC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IACI,UAAU,CAAC,IAAI,KAAK,uBAAuB;YAC3C,UAAU,CAAC,IAAI,KAAK,WAAW,EACjC,CAAC;YACC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IACI,CAAC,UAAU,CAAC,IAAI,KAAK,kBAAkB;YACnC,UAAU,CAAC,IAAI,KAAK,aAAa;YACjC,UAAU,CAAC,IAAI,KAAK,gBAAgB,CAAC;YACzC,UAAU,CAAC,IAAI,KAAK,WAAW,EACjC,CAAC;YACC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IACI,UAAU,CAAC,IAAI,KAAK,cAAc;YAClC,UAAU,CAAC,IAAI,KAAK,WAAW,EACjC,CAAC;YACC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IACI,UAAU,CAAC,IAAI,KAAK,YAAY;YAChC,UAAU,CAAC,IAAI,KAAK,WAAW,EACjC,CAAC;YACC,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;AACL,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACtC,IAAuC,EAChC,EAAE,CAAC,oCAAoC,CAAC,IAAI,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @packageDocumentation
3
+ * Predicate helpers for narrowing `TSTypeReference` nodes by identifier name.
4
+ */
5
+ import type { TSESTree } from "@typescript-eslint/utils";
6
+ /**
7
+ * Checks whether a type node is an identifier-based type reference with a
8
+ * specific symbol name.
9
+ *
10
+ * @param node - Type node candidate.
11
+ * @param identifierName - Expected referenced identifier name.
12
+ *
13
+ * @returns `true` when the node is `TSTypeReference` and the referenced
14
+ * `typeName` identifier matches exactly.
15
+ */
16
+ export declare const isIdentifierTypeReference: (node: Readonly<TSESTree.TypeNode>, identifierName: string) => node is TSESTree.TSTypeReference & {
17
+ typeName: TSESTree.Identifier;
18
+ };
19
+ //# sourceMappingURL=type-reference-node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-reference-node.d.ts","sourceRoot":"","sources":["../../src/_internal/type-reference-node.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEzD;;;;;;;;;GASG;AACH,eAAO,MAAM,yBAAyB,GAClC,MAAM,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EACjC,gBAAgB,MAAM,KACvB,IAAI,IAAI,QAAQ,CAAC,eAAe,GAAG;IAAE,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAA;CAG5B,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Checks whether a type node is an identifier-based type reference with a
3
+ * specific symbol name.
4
+ *
5
+ * @param node - Type node candidate.
6
+ * @param identifierName - Expected referenced identifier name.
7
+ *
8
+ * @returns `true` when the node is `TSTypeReference` and the referenced
9
+ * `typeName` identifier matches exactly.
10
+ */
11
+ export const isIdentifierTypeReference = (node, identifierName) => node.type === "TSTypeReference" &&
12
+ node.typeName.type === "Identifier" &&
13
+ node.typeName.name === identifierName;
14
+ //# sourceMappingURL=type-reference-node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-reference-node.js","sourceRoot":"","sources":["../../src/_internal/type-reference-node.ts"],"names":[],"mappings":"AAMA;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACrC,IAAiC,EACjC,cAAsB,EAC8C,EAAE,CACtE,IAAI,CAAC,IAAI,KAAK,iBAAiB;IAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY;IACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,cAAc,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @packageDocumentation
3
+ * Shared reporting helper for typed ts-extras identifier-member call rules.
4
+ */
5
+ import type { TSESLint, TSESTree } from "@typescript-eslint/utils";
6
+ import type { UnknownArray } from "type-fest";
7
+ import { type ImportedValueAliasMap } from "./imported-value-symbols.js";
8
+ /** Direct named value imports collection type from shared import helper. */
9
+ type DirectNamedValueImports = ImportedValueAliasMap;
10
+ /** Typed rule context shape for typed member-call rules. */
11
+ type TypedMemberCallRuleContext<MessageId extends string> = Readonly<TSESLint.RuleContext<MessageId, Readonly<UnknownArray>>>;
12
+ /**
13
+ * Match `<expr>.<memberName>(...)` and report a standardized ts-extras helper
14
+ * replacement when the receiver expression satisfies a caller-provided type
15
+ * predicate.
16
+ */
17
+ export declare const reportTsExtrasTypedMemberCall: <MessageId extends string>({ canAutofix, context, importedName, imports, isMatchingObjectExpression, memberName, messageId, node, reportSuggestion, suggestionMessageId, }: Readonly<{
18
+ canAutofix?: (node: Readonly<TSESTree.CallExpression>) => boolean;
19
+ context: TypedMemberCallRuleContext<MessageId>;
20
+ importedName: string;
21
+ imports: DirectNamedValueImports;
22
+ isMatchingObjectExpression: (expression: Readonly<TSESTree.Expression>) => boolean;
23
+ memberName: string;
24
+ messageId: MessageId;
25
+ node: Readonly<TSESTree.CallExpression>;
26
+ reportSuggestion?: (input: Readonly<{
27
+ fix: TSESLint.ReportFixFunction;
28
+ messageId: MessageId;
29
+ node: Readonly<TSESTree.CallExpression>;
30
+ suggestionMessageId: MessageId;
31
+ }>) => void;
32
+ suggestionMessageId?: MessageId;
33
+ }>) => void;
34
+ export {};
35
+ //# sourceMappingURL=typed-member-call-rule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typed-member-call-rule.d.ts","sourceRoot":"","sources":["../../src/_internal/typed-member-call-rule.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAE9C,OAAO,EAEH,KAAK,qBAAqB,EAC7B,MAAM,6BAA6B,CAAC;AAQrC,4EAA4E;AAC5E,KAAK,uBAAuB,GAAG,qBAAqB,CAAC;AAErD,4DAA4D;AAC5D,KAAK,0BAA0B,CAAC,SAAS,SAAS,MAAM,IAAI,QAAQ,CAChE,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAC1D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,GAAI,SAAS,SAAS,MAAM,EAAE,iJAWrE,QAAQ,CAAC;IACR,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,OAAO,CAAC;IAClE,OAAO,EAAE,0BAA0B,CAAC,SAAS,CAAC,CAAC;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,uBAAuB,CAAC;IACjC,0BAA0B,EAAE,CACxB,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,KACxC,OAAO,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACxC,gBAAgB,CAAC,EAAE,CACf,KAAK,EAAE,QAAQ,CAAC;QACZ,GAAG,EAAE,QAAQ,CAAC,iBAAiB,CAAC;QAChC,SAAS,EAAE,SAAS,CAAC;QACrB,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QACxC,mBAAmB,EAAE,SAAS,CAAC;KAClC,CAAC,KACD,IAAI,CAAC;IACV,mBAAmB,CAAC,EAAE,SAAS,CAAC;CACnC,CAAC,KAAG,IA+CJ,CAAC"}