@thethracian/oxlint-config 0.2.0 → 0.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 (279) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +125 -19
  3. package/dist/codemod-fix/cli.d.ts +3 -0
  4. package/dist/codemod-fix/cli.d.ts.map +1 -0
  5. package/dist/codemod-fix/cli.js +22 -0
  6. package/dist/codemod-fix/cli.js.map +1 -0
  7. package/dist/codemod-fix/index.d.ts +44 -0
  8. package/dist/codemod-fix/index.d.ts.map +1 -0
  9. package/dist/codemod-fix/index.js +110 -0
  10. package/dist/codemod-fix/index.js.map +1 -0
  11. package/dist/codemods/arrow-body-style.d.ts +7 -0
  12. package/dist/codemods/arrow-body-style.d.ts.map +1 -0
  13. package/dist/codemods/arrow-body-style.js +106 -0
  14. package/dist/codemods/arrow-body-style.js.map +1 -0
  15. package/dist/codemods/comment-format.d.ts +24 -0
  16. package/dist/codemods/comment-format.d.ts.map +1 -0
  17. package/dist/codemods/comment-format.js +100 -0
  18. package/dist/codemods/comment-format.js.map +1 -0
  19. package/dist/codemods/explicit-return-types.d.ts +7 -0
  20. package/dist/codemods/explicit-return-types.d.ts.map +1 -0
  21. package/dist/codemods/explicit-return-types.js +350 -0
  22. package/dist/codemods/explicit-return-types.js.map +1 -0
  23. package/dist/codemods/format-file-header.d.ts +7 -0
  24. package/dist/codemods/format-file-header.d.ts.map +1 -0
  25. package/dist/codemods/format-file-header.js +163 -0
  26. package/dist/codemods/format-file-header.js.map +1 -0
  27. package/dist/codemods/format-jsdoc-comments.d.ts +7 -0
  28. package/dist/codemods/format-jsdoc-comments.d.ts.map +1 -0
  29. package/dist/codemods/format-jsdoc-comments.js +129 -0
  30. package/dist/codemods/format-jsdoc-comments.js.map +1 -0
  31. package/dist/codemods/function-declarations.d.ts +7 -0
  32. package/dist/codemods/function-declarations.d.ts.map +1 -0
  33. package/dist/codemods/function-declarations.js +202 -0
  34. package/dist/codemods/function-declarations.js.map +1 -0
  35. package/dist/codemods/inline-export-lists.d.ts +7 -0
  36. package/dist/codemods/inline-export-lists.d.ts.map +1 -0
  37. package/dist/codemods/inline-export-lists.js +168 -0
  38. package/dist/codemods/inline-export-lists.js.map +1 -0
  39. package/dist/codemods/internal-export-docs.d.ts +7 -0
  40. package/dist/codemods/internal-export-docs.d.ts.map +1 -0
  41. package/dist/codemods/internal-export-docs.js +93 -0
  42. package/dist/codemods/internal-export-docs.js.map +1 -0
  43. package/dist/codemods/no-ternary-branch-initializers.d.ts +14 -0
  44. package/dist/codemods/no-ternary-branch-initializers.d.ts.map +1 -0
  45. package/dist/codemods/no-ternary-branch-initializers.js +240 -0
  46. package/dist/codemods/no-ternary-branch-initializers.js.map +1 -0
  47. package/dist/codemods/no-ternary-variable-initializers.d.ts +14 -0
  48. package/dist/codemods/no-ternary-variable-initializers.d.ts.map +1 -0
  49. package/dist/codemods/no-ternary-variable-initializers.js +235 -0
  50. package/dist/codemods/no-ternary-variable-initializers.js.map +1 -0
  51. package/dist/codemods/no-ternary.d.ts +7 -0
  52. package/dist/codemods/no-ternary.d.ts.map +1 -0
  53. package/dist/codemods/no-ternary.js +215 -0
  54. package/dist/codemods/no-ternary.js.map +1 -0
  55. package/dist/codemods/rename-acronyms.d.ts +8 -0
  56. package/dist/codemods/rename-acronyms.d.ts.map +1 -0
  57. package/dist/codemods/rename-acronyms.js +193 -0
  58. package/dist/codemods/rename-acronyms.js.map +1 -0
  59. package/dist/codemods/run.d.ts +2 -0
  60. package/dist/codemods/run.d.ts.map +1 -0
  61. package/dist/codemods/run.js +14 -0
  62. package/dist/codemods/run.js.map +1 -0
  63. package/dist/codemods/sort-imports.d.ts +7 -0
  64. package/dist/codemods/sort-imports.d.ts.map +1 -0
  65. package/dist/codemods/sort-imports.js +235 -0
  66. package/dist/codemods/sort-imports.js.map +1 -0
  67. package/dist/index.d.ts +30 -96
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +157 -95
  70. package/dist/index.js.map +1 -1
  71. package/dist/rules/acronym-case.d.ts +7 -3
  72. package/dist/rules/acronym-case.d.ts.map +1 -1
  73. package/dist/rules/acronym-case.js +129 -120
  74. package/dist/rules/acronym-case.js.map +1 -1
  75. package/dist/rules/acronyms-1.d.ts +3 -0
  76. package/dist/rules/acronyms-1.d.ts.map +1 -0
  77. package/dist/rules/acronyms-1.js +407 -0
  78. package/dist/rules/acronyms-1.js.map +1 -0
  79. package/dist/rules/acronyms-2.d.ts +3 -0
  80. package/dist/rules/acronyms-2.d.ts.map +1 -0
  81. package/dist/rules/acronyms-2.js +407 -0
  82. package/dist/rules/acronyms-2.js.map +1 -0
  83. package/dist/rules/acronyms-3.d.ts +3 -0
  84. package/dist/rules/acronyms-3.d.ts.map +1 -0
  85. package/dist/rules/acronyms-3.js +407 -0
  86. package/dist/rules/acronyms-3.js.map +1 -0
  87. package/dist/rules/acronyms-4.d.ts +3 -0
  88. package/dist/rules/acronyms-4.d.ts.map +1 -0
  89. package/dist/rules/acronyms-4.js +377 -0
  90. package/dist/rules/acronyms-4.js.map +1 -0
  91. package/dist/rules/acronyms.d.ts +1 -8
  92. package/dist/rules/acronyms.d.ts.map +1 -1
  93. package/dist/rules/acronyms.js +14 -1578
  94. package/dist/rules/acronyms.js.map +1 -1
  95. package/dist/rules/boolean-prefix.d.ts +11 -2
  96. package/dist/rules/boolean-prefix.d.ts.map +1 -1
  97. package/dist/rules/boolean-prefix.js +95 -59
  98. package/dist/rules/boolean-prefix.js.map +1 -1
  99. package/dist/rules/camel-case-identifiers.d.ts +3 -4
  100. package/dist/rules/camel-case-identifiers.d.ts.map +1 -1
  101. package/dist/rules/camel-case-identifiers.js +59 -40
  102. package/dist/rules/camel-case-identifiers.js.map +1 -1
  103. package/dist/rules/char-class.d.ts +26 -13
  104. package/dist/rules/char-class.d.ts.map +1 -1
  105. package/dist/rules/char-class.js +56 -24
  106. package/dist/rules/char-class.js.map +1 -1
  107. package/dist/rules/diagnostic-guidance.d.ts +91 -0
  108. package/dist/rules/diagnostic-guidance.d.ts.map +1 -0
  109. package/dist/rules/diagnostic-guidance.js +243 -0
  110. package/dist/rules/diagnostic-guidance.js.map +1 -0
  111. package/dist/rules/effect-default-ast.d.ts +89 -0
  112. package/dist/rules/effect-default-ast.d.ts.map +1 -0
  113. package/dist/rules/effect-default-ast.js +208 -0
  114. package/dist/rules/effect-default-ast.js.map +1 -0
  115. package/dist/rules/effect-default-compat-rules.d.ts +76 -0
  116. package/dist/rules/effect-default-compat-rules.d.ts.map +1 -0
  117. package/dist/rules/effect-default-compat-rules.js +270 -0
  118. package/dist/rules/effect-default-compat-rules.js.map +1 -0
  119. package/dist/rules/effect-default-env-rules.d.ts +60 -0
  120. package/dist/rules/effect-default-env-rules.d.ts.map +1 -0
  121. package/dist/rules/effect-default-env-rules.js +259 -0
  122. package/dist/rules/effect-default-env-rules.js.map +1 -0
  123. package/dist/rules/effect-default-fiber-helpers.d.ts +13 -0
  124. package/dist/rules/effect-default-fiber-helpers.d.ts.map +1 -0
  125. package/dist/rules/effect-default-fiber-helpers.js +76 -0
  126. package/dist/rules/effect-default-fiber-helpers.js.map +1 -0
  127. package/dist/rules/effect-default-floating-helpers.d.ts +7 -0
  128. package/dist/rules/effect-default-floating-helpers.d.ts.map +1 -0
  129. package/dist/rules/effect-default-floating-helpers.js +113 -0
  130. package/dist/rules/effect-default-floating-helpers.js.map +1 -0
  131. package/dist/rules/effect-default-helpers.d.ts +8 -32
  132. package/dist/rules/effect-default-helpers.d.ts.map +1 -1
  133. package/dist/rules/effect-default-helpers.js +11 -458
  134. package/dist/rules/effect-default-helpers.js.map +1 -1
  135. package/dist/rules/effect-default-resource-helpers.d.ts +18 -4
  136. package/dist/rules/effect-default-resource-helpers.d.ts.map +1 -1
  137. package/dist/rules/effect-default-resource-helpers.js +30 -13
  138. package/dist/rules/effect-default-resource-helpers.js.map +1 -1
  139. package/dist/rules/effect-default-safety-helpers.d.ts +43 -0
  140. package/dist/rules/effect-default-safety-helpers.d.ts.map +1 -0
  141. package/dist/rules/effect-default-safety-helpers.js +126 -0
  142. package/dist/rules/effect-default-safety-helpers.js.map +1 -0
  143. package/dist/rules/effect-default-scan-helpers.d.ts +43 -0
  144. package/dist/rules/effect-default-scan-helpers.d.ts.map +1 -0
  145. package/dist/rules/effect-default-scan-helpers.js +141 -0
  146. package/dist/rules/effect-default-scan-helpers.js.map +1 -0
  147. package/dist/rules/effect-default-schema-helpers.d.ts +37 -0
  148. package/dist/rules/effect-default-schema-helpers.d.ts.map +1 -0
  149. package/dist/rules/effect-default-schema-helpers.js +104 -0
  150. package/dist/rules/effect-default-schema-helpers.js.map +1 -0
  151. package/dist/rules/effect-default-test-helpers.d.ts +18 -4
  152. package/dist/rules/effect-default-test-helpers.d.ts.map +1 -1
  153. package/dist/rules/effect-default-test-helpers.js +41 -20
  154. package/dist/rules/effect-default-test-helpers.js.map +1 -1
  155. package/dist/rules/effect-default-workflow-helpers.d.ts +91 -0
  156. package/dist/rules/effect-default-workflow-helpers.d.ts.map +1 -0
  157. package/dist/rules/effect-default-workflow-helpers.js +247 -0
  158. package/dist/rules/effect-default-workflow-helpers.js.map +1 -0
  159. package/dist/rules/effect-default.d.ts +1 -1
  160. package/dist/rules/effect-default.d.ts.map +1 -1
  161. package/dist/rules/effect-default.js +198 -637
  162. package/dist/rules/effect-default.js.map +1 -1
  163. package/dist/rules/effect-exported-declarations.d.ts +19 -0
  164. package/dist/rules/effect-exported-declarations.d.ts.map +1 -0
  165. package/dist/rules/effect-exported-declarations.js +237 -0
  166. package/dist/rules/effect-exported-declarations.js.map +1 -0
  167. package/dist/rules/effect-path-options.d.ts +49 -11
  168. package/dist/rules/effect-path-options.d.ts.map +1 -1
  169. package/dist/rules/effect-path-options.js +85 -52
  170. package/dist/rules/effect-path-options.js.map +1 -1
  171. package/dist/rules/effect-rule-aliases.d.ts +55 -0
  172. package/dist/rules/effect-rule-aliases.d.ts.map +1 -0
  173. package/dist/rules/effect-rule-aliases.js +278 -0
  174. package/dist/rules/effect-rule-aliases.js.map +1 -0
  175. package/dist/rules/effect-rule-core.d.ts +46 -24
  176. package/dist/rules/effect-rule-core.d.ts.map +1 -1
  177. package/dist/rules/effect-rule-core.js +263 -303
  178. package/dist/rules/effect-rule-core.js.map +1 -1
  179. package/dist/rules/effect-rule-names.d.ts +12 -3
  180. package/dist/rules/effect-rule-names.d.ts.map +1 -1
  181. package/dist/rules/effect-rule-names.js +15 -3
  182. package/dist/rules/effect-rule-names.js.map +1 -1
  183. package/dist/rules/effect-source-comments.d.ts +7 -0
  184. package/dist/rules/effect-source-comments.d.ts.map +1 -0
  185. package/dist/rules/effect-source-comments.js +227 -0
  186. package/dist/rules/effect-source-comments.js.map +1 -0
  187. package/dist/rules/effect-source-helpers.d.ts +4 -9
  188. package/dist/rules/effect-source-helpers.d.ts.map +1 -1
  189. package/dist/rules/effect-source-helpers.js +7 -333
  190. package/dist/rules/effect-source-helpers.js.map +1 -1
  191. package/dist/rules/effect-source-navigation.d.ts +25 -0
  192. package/dist/rules/effect-source-navigation.d.ts.map +1 -0
  193. package/dist/rules/effect-source-navigation.js +244 -0
  194. package/dist/rules/effect-source-navigation.js.map +1 -0
  195. package/dist/rules/effect-source-scan.d.ts +30 -7
  196. package/dist/rules/effect-source-scan.d.ts.map +1 -1
  197. package/dist/rules/effect-source-scan.js +377 -297
  198. package/dist/rules/effect-source-scan.js.map +1 -1
  199. package/dist/rules/effect-strict-ast-specs.d.ts +8 -0
  200. package/dist/rules/effect-strict-ast-specs.d.ts.map +1 -0
  201. package/dist/rules/effect-strict-ast-specs.js +166 -0
  202. package/dist/rules/effect-strict-ast-specs.js.map +1 -0
  203. package/dist/rules/effect-strict-boundary-helpers.d.ts +25 -0
  204. package/dist/rules/effect-strict-boundary-helpers.d.ts.map +1 -0
  205. package/dist/rules/effect-strict-boundary-helpers.js +127 -0
  206. package/dist/rules/effect-strict-boundary-helpers.js.map +1 -0
  207. package/dist/rules/effect-strict-core-specs.d.ts +8 -0
  208. package/dist/rules/effect-strict-core-specs.d.ts.map +1 -0
  209. package/dist/rules/effect-strict-core-specs.js +334 -0
  210. package/dist/rules/effect-strict-core-specs.js.map +1 -0
  211. package/dist/rules/effect-strict-external-helpers.d.ts +25 -0
  212. package/dist/rules/effect-strict-external-helpers.d.ts.map +1 -0
  213. package/dist/rules/effect-strict-external-helpers.js +87 -0
  214. package/dist/rules/effect-strict-external-helpers.js.map +1 -0
  215. package/dist/rules/effect-strict-helpers.d.ts +75 -33
  216. package/dist/rules/effect-strict-helpers.d.ts.map +1 -1
  217. package/dist/rules/effect-strict-helpers.js +124 -246
  218. package/dist/rules/effect-strict-helpers.js.map +1 -1
  219. package/dist/rules/effect-strict-internals.d.ts +198 -0
  220. package/dist/rules/effect-strict-internals.d.ts.map +1 -0
  221. package/dist/rules/effect-strict-internals.js +477 -0
  222. package/dist/rules/effect-strict-internals.js.map +1 -0
  223. package/dist/rules/effect-strict-segment-helpers.d.ts +79 -0
  224. package/dist/rules/effect-strict-segment-helpers.d.ts.map +1 -0
  225. package/dist/rules/effect-strict-segment-helpers.js +308 -0
  226. package/dist/rules/effect-strict-segment-helpers.js.map +1 -0
  227. package/dist/rules/effect-strict.d.ts +1 -1
  228. package/dist/rules/effect-strict.d.ts.map +1 -1
  229. package/dist/rules/effect-strict.js +10 -661
  230. package/dist/rules/effect-strict.js.map +1 -1
  231. package/dist/rules/max-import-depth.d.ts +2 -2
  232. package/dist/rules/max-import-depth.d.ts.map +1 -1
  233. package/dist/rules/max-import-depth.js +52 -17
  234. package/dist/rules/max-import-depth.js.map +1 -1
  235. package/dist/rules/max-line-length.d.ts +9 -2
  236. package/dist/rules/max-line-length.d.ts.map +1 -1
  237. package/dist/rules/max-line-length.js +62 -7
  238. package/dist/rules/max-line-length.js.map +1 -1
  239. package/dist/rules/no-commented-out-code.d.ts +3 -7
  240. package/dist/rules/no-commented-out-code.d.ts.map +1 -1
  241. package/dist/rules/no-commented-out-code.js +157 -102
  242. package/dist/rules/no-commented-out-code.js.map +1 -1
  243. package/dist/rules/pascal-case-types.d.ts +1 -1
  244. package/dist/rules/pascal-case-types.d.ts.map +1 -1
  245. package/dist/rules/pascal-case-types.js +65 -46
  246. package/dist/rules/pascal-case-types.js.map +1 -1
  247. package/dist/rules/plugin-commented-out-code-rule.d.ts +32 -0
  248. package/dist/rules/plugin-commented-out-code-rule.d.ts.map +1 -0
  249. package/dist/rules/plugin-commented-out-code-rule.js +135 -0
  250. package/dist/rules/plugin-commented-out-code-rule.js.map +1 -0
  251. package/dist/rules/plugin.d.ts +3 -121
  252. package/dist/rules/plugin.d.ts.map +1 -1
  253. package/dist/rules/plugin.js +195 -201
  254. package/dist/rules/plugin.js.map +1 -1
  255. package/dist/rules/private-underscore.d.ts +1 -1
  256. package/dist/rules/private-underscore.d.ts.map +1 -1
  257. package/dist/rules/private-underscore.js +11 -4
  258. package/dist/rules/private-underscore.js.map +1 -1
  259. package/dist/rules/require-file-doc.d.ts +5 -6
  260. package/dist/rules/require-file-doc.d.ts.map +1 -1
  261. package/dist/rules/require-file-doc.js +127 -78
  262. package/dist/rules/require-file-doc.js.map +1 -1
  263. package/dist/rules/require-function-doc-ignored-text.d.ts +7 -0
  264. package/dist/rules/require-function-doc-ignored-text.d.ts.map +1 -0
  265. package/dist/rules/require-function-doc-ignored-text.js +67 -0
  266. package/dist/rules/require-function-doc-ignored-text.js.map +1 -0
  267. package/dist/rules/require-function-doc-local-exports.d.ts +7 -0
  268. package/dist/rules/require-function-doc-local-exports.d.ts.map +1 -0
  269. package/dist/rules/require-function-doc-local-exports.js +114 -0
  270. package/dist/rules/require-function-doc-local-exports.js.map +1 -0
  271. package/dist/rules/require-function-doc.d.ts +3 -18
  272. package/dist/rules/require-function-doc.d.ts.map +1 -1
  273. package/dist/rules/require-function-doc.js +404 -218
  274. package/dist/rules/require-function-doc.js.map +1 -1
  275. package/dist/rules/source-cache.d.ts +19 -0
  276. package/dist/rules/source-cache.d.ts.map +1 -0
  277. package/dist/rules/source-cache.js +63 -0
  278. package/dist/rules/source-cache.js.map +1 -0
  279. package/package.json +15 -10
@@ -1 +1 @@
1
- {"version":3,"file":"effect-strict.js","sourceRoot":"","sources":["../../src/rules/effect-strict.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,uBAAuB,GACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,SAAS,GACV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,EAC9B,yBAAyB,EACzB,yBAAyB,EACzB,+BAA+B,EAC/B,4BAA4B,EAC5B,+BAA+B,EAC/B,kCAAkC,EAClC,iCAAiC,EACjC,uCAAuC,EACvC,eAAe,EACf,kBAAkB,EAClB,iCAAiC,EACjC,8BAA8B,EAC9B,+BAA+B,EAC/B,kBAAkB,EAClB,wCAAwC,EACxC,+BAA+B,EAC/B,2BAA2B,EAC3B,oBAAoB,EACpB,gCAAgC,EAChC,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,gCAAgC,GACjC,MAAM,4BAA4B,CAAC;AAMpC,SAAS,SAAS,CAAC,OAAoB,EAAE,OAAe,EAAE,IAAY;IACpE,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,QAAQ,CAAC,IAAa;IAC7B,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,CAAC,CAAC,CAAE,IAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AAClG,CAAC;AAED,SAAS,cAAc,CAAC,IAAa;IACnC,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,YAAY,CAAC,CAAC,CAAE,IAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;AACxF,CAAC;AAED,SAAS,YAAY,CAAC,IAAa;IACjC,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAE,IAA4B,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACxF,CAAC;AAED,SAAS,UAAU,CAAC,IAAa;IAC/B,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,iBAAiB,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,KAAK,GAAG,IAAiD,CAAC;IAChE,OAAO,KAAK,CAAC,QAAQ,KAAK,MAAM,IAAI,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,WAAW,CAAC,IAAa;IAChC,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,kBAAkB,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,MAAM,GAAG,IAAgD,CAAC;IAChE,OAAO;QACL,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC;QACzC,YAAY,EAAE,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,IAAa,EAAE,MAAc,EAAE,OAA4B;IACjF,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IACvD,OAAO,OAAO,CACZ,UAAU;QACV,YAAY;QACZ,mBAAmB,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAC1B,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,IAAa,EAAE,UAAkB,EAAE,YAAoB;IACvE,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO,KAAK,CAAC,UAAU,KAAK,UAAU,IAAI,KAAK,CAAC,YAAY,KAAK,YAAY,CAAC;AAChF,CAAC;AAED,SAAS,cAAc,CAAC,IAAa,EAAE,MAAc,EAAE,YAAoB;IACzE,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO,OAAO,CACZ,KAAK,CAAC,UAAU;QAChB,KAAK,CAAC,YAAY,KAAK,YAAY;QACnC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAC9D,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAe,EAAE,MAAc,EAAE,YAAoB;IACjF,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,OAAO,CACZ,UAAU,IAAI,qBAAqB,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CACzF,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAa,EAAE,MAAc;IACxD,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;IAChC,MAAM,SAAS,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;IACrC,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,gBAAgB,EAAE,CAAC;QAC9C,OAAO,EAAE,SAAS,EAAE,CAAC;IACvB,CAAC;IACD,MAAM,KAAK,GAAG,UAAyD,CAAC;IACxE,MAAM,KAAK,GAAG,KAAK,CAAC,MAAiE,CAAC;IACtF,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,gBAAgB,EAAE,CAAC;QACnD,OAAO,EAAE,SAAS,EAAE,CAAC;IACvB,CAAC;IACD,MAAM,SAAS,GAAG,KAAK,CAAC;IACxB,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACnE,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,YAAY,KAAK,KAAK,IAAI,YAAY,KAAK,YAAY,CAAC,EAAE,CAAC;QAC1F,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAuB,EAAE,CAAC;IAC1F,CAAC;IACD,IACE,UAAU;QACV,mBAAmB,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;QAChD,YAAY,KAAK,SAAS,EAC1B,CAAC;QACD,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAuB,EAAE,CAAC;IACtF,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,CAAC;AACvB,CAAC;AAED,SAAS,6BAA6B,CAAC,MAAc;IACnD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;QAC7D,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,EAAE,mBAAmB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;QAC/F,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,6BAA6B,CAAC,WAAmB;IACxD,IAAI,2CAA2C,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAClE,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3C,OAAO,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,uCAAuC,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9D,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3C,OAAO,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAS,oCAAoC,CAAC,WAAmB;IAC/D,IAAI,CAAC,0DAA0D,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAClF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,eAAe,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAC7D,MAAM,kBAAkB,GACtB,0FAA0F,CAAC;IAC7F,MAAM,UAAU,GAAG,mBAAmB,CAAC;IACvC,MAAM,WAAW,GAAG,oBAAoB,kBAAkB,GAAG,UAAU,EAAE,CAAC;IAC1E,MAAM,aAAa,GAAG,oBAAoB,kBAAkB,EAAE,CAAC;IAC/D,OAAO,CACL,IAAI,MAAM,CAAC,GAAG,WAAW,sCAAsC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC;QACtF,IAAI,MAAM,CAAC,oBAAoB,kBAAkB,YAAY,UAAU,iBAAiB,CAAC,CAAC,IAAI,CAC5F,eAAe,CAChB;QACD,IAAI,MAAM,CAAC,GAAG,WAAW,mBAAmB,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC;QACnE,IAAI,MAAM,CAAC,GAAG,WAAW,2CAA2C,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC;QAC3F,IAAI,MAAM,CAAC,GAAG,WAAW,gCAAgC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC;QAChF,IAAI,MAAM,CAAC,GAAG,aAAa,UAAU,UAAU,sCAAsC,CAAC,CAAC,IAAI,CACzF,eAAe,CAChB;QACD,IAAI,MAAM,CAAC,GAAG,aAAa,eAAe,UAAU,gCAAgC,CAAC,CAAC,IAAI,CACxF,eAAe,CAChB,CACF,CAAC;AACJ,CAAC;AAED,SAAS,4BAA4B,CAAC,MAAc;IAClD,OAAO,wBAAwB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE;QAC3D,IAAI,0DAA0D,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACjF,OAAO,oCAAoC,CAAC,WAAW,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,SAAS,GAAG,uBAAuB,CAAC,6BAA6B,CAAC,WAAW,CAAC,CAAC,CAAC;QACtF,OAAO,CACL,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC;YAC/B,sCAAsC,CAAC,IAAI,CAAC,SAAS,CAAC;YACtD,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAC9B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAc;IAC9C,OAAO,wBAAwB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAC3D,2BAA2B,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,CACvE,CAAC;AACJ,CAAC;AAED,SAAS,gCAAgC,CAAC,MAAc;IACtD,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,wCAAwC,CAAC,EAAE,CAAC;QAC5E,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QACjF,IAAI,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,oDAAoD,CAAC,EAAE,CAAC;QACxF,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;YACrB,SAAS;QACX,CAAC;QACD,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACnD,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACxF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAc;IACzC,MAAM,KAAK,GAAG,2BAA2B,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;IAChF,OAAO,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC;AAC/B,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAc;IACzC,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,gDAAgD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1E,OAAO,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC;AAC/B,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAc;IAC5C,MAAM,KAAK,GAAG,kEAAkE,CAAC,IAAI,CACnF,uBAAuB,CAAC,MAAM,CAAC,CAChC,CAAC;IACF,OAAO,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC;AAC/B,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAc;IAC9C,MAAM,KAAK,GACT,+EAA+E,CAAC,IAAI,CAClF,uBAAuB,CAAC,MAAM,CAAC,CAChC,CAAC;IACJ,OAAO,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC;AAC/B,CAAC;AAED,SAAS,6BAA6B,CAAC,MAAc;IACnD,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,aAAa,GACjB,mHAAmH,CAAC;IACtH,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACjD,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;QACjC,IAAI,SAAS,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC,EAAE,CAAC;YACxD,OAAO,KAAK,CAAC,KAAK,CAAC;QACrB,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAClB,iHAAiH,CAAC;IACpH,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QAClD,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;QACjC,IAAI,SAAS,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC,EAAE,CAAC;YACxD,OAAO,KAAK,CAAC,KAAK,CAAC;QACrB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAc;IAC7C,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,qEAAqE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/F,OAAO,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC;AAC/B,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAc;IAC7C,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,wDAAwD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClF,OAAO,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC;AAC/B,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAc;IAC1C,MAAM,KAAK,GACT,uFAAuF,CAAC,IAAI,CAC1F,aAAa,CAAC,MAAM,CAAC,CACtB,CAAC;IACJ,OAAO,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC;AAC/B,CAAC;AAED,SAAS,cAAc,CAAC,MAAc,EAAE,OAAoB;IAC1D,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE,CAAC;QAC/C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QACnD,MAAM,YAAY,GAAG,OAAO,CAAC,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACxE,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC,KAAK,CAAC;QACrB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,wBAAwB,CAAC,MAAc;IAC9C,MAAM,KAAK,GAAG,uDAAuD,CAAC,IAAI,CACxE,uBAAuB,CAAC,MAAM,CAAC,CAChC,CAAC;IACF,OAAO,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC;AAC/B,CAAC;AAED,SAAS,YAAY,CAAC,MAAc;IAClC,MAAM,KAAK,GAAG,yEAAyE,CAAC,IAAI,CAC1F,uBAAuB,CAAC,MAAM,CAAC,CAChC,CAAC;IACF,OAAO,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC;AAC/B,CAAC;AAED,SAAS,aAAa,CAAC,MAAc;IACnC,MAAM,KAAK,GACT,kHAAkH,CAAC,IAAI,CACrH,uBAAuB,CAAC,MAAM,CAAC,CAChC,CAAC;IACJ,OAAO,KAAK,EAAE,KAAK,IAAI,KAAK,CAAC;AAC/B,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAc,EAAE,WAAmB;IACjE,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAC7B,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,EACxC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,CAC1C,CAAC;IACF,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;IACjE,OAAO,uCAAuC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AACzF,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAc,EAAE,OAAoB;IACnE,IAAI,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,EAAE,CAAC;QAC/C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAC/B,+DAA+D,CAChE,EAAE,CAAC;QACF,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,iBAAiB,GAAG;IACxB;QACE,IAAI,EAAE,mCAAmC;QACzC,OAAO,EAAE,uDAAuD;QAChE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CACzB,cAAc,CAAC,MAAM,CAAC;YACtB,CAAC,wBAAwB,CAAC,MAAM,CAAC;YACjC,CAAC,yBAAyB,CAAC,MAAM,CAAC;YAClC,CAAC,gBAAgB,CAAC,OAAO,CAAC;YAC1B,CAAC,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC;KAC5C;IACD;QACE,IAAI,EAAE,gDAAgD;QACtD,OAAO,EAAE,qFAAqF;QAC9F,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CACzB,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC;YACxC,kCAAkC,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;KAC3E;IACD;QACE,IAAI,EAAE,8CAA8C;QACpD,OAAO,EAAE,qDAAqD;QAC9D,KAAK,EAAE,gCAAgC;KACxC;IACD;QACE,IAAI,EAAE,wCAAwC;QAC9C,OAAO,EAAE,mEAAmE;QAC5E,KAAK,EAAE,4BAA4B;KACpC;IACD;QACE,IAAI,EAAE,mDAAmD;QACzD,OAAO,EAAE,kEAAkE;QAC3E,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CACzB,kBAAkB,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;YACxD,CAAC,eAAe,CAAC,MAAM,CAAC;YACxB,CAAC,gBAAgB,CAAC,OAAO,EAAE,cAAc,CAAC;KAC7C;IACD;QACE,IAAI,EAAE,gDAAgD;QACtD,OAAO,EAAE,mEAAmE;QAC5E,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CACzB,mCAAmC,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;YACzE,CAAC,eAAe,CAAC,MAAM,CAAC;YACxB,CAAC,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC;KAC9C;IACD;QACE,IAAI,EAAE,oDAAoD;QAC1D,OAAO,EAAE,+EAA+E;QACxF,KAAK,EAAE,uBAAuB;KAC/B;IACD;QACE,IAAI,EAAE,sCAAsC;QAC5C,OAAO,EAAE,sEAAsE;QAC/E,QAAQ,EAAE,CAAC,8CAA8C,CAAC;KAC3D;IACD;QACE,IAAI,EAAE,+BAA+B;QACrC,OAAO,EAAE,0CAA0C;QACnD,QAAQ,EAAE;YACR,oCAAoC;YACpC,2CAA2C;YAC3C,wDAAwD;SACzD;KACF;IACD;QACE,IAAI,EAAE,uCAAuC;QAC7C,OAAO,EAAE,uEAAuE;QAChF,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CACzB,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;KAChG;IACD;QACE,IAAI,EAAE,qCAAqC;QAC3C,OAAO,EAAE,+DAA+D;QACxE,KAAK,EAAE,yBAAyB;KACjC;IACD;QACE,IAAI,EAAE,sCAAsC;QAC5C,OAAO,EAAE,wDAAwD;QACjE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CACzB,gCAAgC,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;YACtE,CAAC,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,CAAC;KACjD;IACD;QACE,IAAI,EAAE,qCAAqC;QAC3C,OAAO,EAAE,0EAA0E;QACnF,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CACzB,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC;YACnC,gCAAgC,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;KACzE;IACD;QACE,IAAI,EAAE,2CAA2C;QACjD,OAAO,EACL,0FAA0F;QAC5F,KAAK,EAAE,eAAe;KACvB;IACD;QACE,IAAI,EAAE,0CAA0C;QAChD,OAAO,EAAE,gDAAgD;QACzD,QAAQ,EAAE;YACR,8FAA8F;SAC/F;KACF;IACD;QACE,IAAI,EAAE,8BAA8B;QACpC,OAAO,EAAE,wEAAwE;QACjF,QAAQ,EAAE;YACR,+FAA+F;SAChG;KACF;IACD;QACE,IAAI,EAAE,yCAAyC;QAC/C,OAAO,EAAE,6CAA6C;QACtD,QAAQ,EAAE,CAAC,iDAAiD,CAAC;KAC9D;IACD;QACE,IAAI,EAAE,2CAA2C;QACjD,OAAO,EAAE,gDAAgD;QACzD,KAAK,EAAE,wBAAwB;KAChC;IACD;QACE,IAAI,EAAE,8CAA8C;QACpD,OAAO,EAAE,gFAAgF;QACzF,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CACzB,CAAC,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC;YAC3C,CAAC,gBAAgB,CAAC,OAAO,EAAE,cAAc,CAAC;YAC1C,CAAC,SAAS,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;YAChD,+CAA+C,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;KACxF;IACD;QACE,IAAI,EAAE,sDAAsD;QAC5D,OAAO,EAAE,6EAA6E;QACtF,KAAK,EAAE,4BAA4B;KACpC;IACD;QACE,IAAI,EAAE,uDAAuD;QAC7D,OAAO,EAAE,mEAAmE;QAC5E,KAAK,EAAE,8BAA8B;KACtC;IACD;QACE,IAAI,EAAE,mDAAmD;QACzD,OAAO,EAAE,oDAAoD;QAC7D,KAAK,EAAE,kCAAkC;KAC1C;IACD;QACE,IAAI,EAAE,kDAAkD;QACxD,OAAO,EAAE,mDAAmD;QAC5D,KAAK,EAAE,iCAAiC;KACzC;IACD;QACE,IAAI,EAAE,qCAAqC;QAC3C,OAAO,EAAE,8DAA8D;QACvE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CACzB,gBAAgB,CAAC,OAAO,EAAE,cAAc,CAAC;YACzC,UAAU,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;YAChD,CAAC,UAAU,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;KACpD;IACD;QACE,IAAI,EAAE,0CAA0C;QAChD,OAAO,EAAE,kEAAkE;QAC3E,KAAK,EAAE,+BAA+B;KACvC;IACD;QACE,IAAI,EAAE,6CAA6C;QACnD,OAAO,EAAE,6DAA6D;QACtE,KAAK,EAAE,8BAA8B;KACtC;IACD;QACE,IAAI,EAAE,4CAA4C;QAClD,OAAO,EAAE,uEAAuE;QAChF,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAChB,wBAAwB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CACpD,aAAa,CAAC,IAAI,CAAC,uBAAuB,CAAC,6BAA6B,CAAC,WAAW,CAAC,CAAC,CAAC,CACxF;KACJ;IACD;QACE,IAAI,EAAE,4CAA4C;QAClD,OAAO,EAAE,0CAA0C;QACnD,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,+BAA+B,CAAC,MAAM,CAAC;KAC3D;IACD;QACE,IAAI,EAAE,6DAA6D;QACnE,OAAO,EAAE,qEAAqE;QAC9E,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,uCAAuC,CAAC,MAAM,CAAC;KACnE;IACD;QACE,IAAI,EAAE,4CAA4C;QAClD,OAAO,EAAE,sCAAsC;QAC/C,KAAK,EAAE,6BAA6B;KACrC;IACD;QACE,IAAI,EAAE,8BAA8B;QACpC,OAAO,EAAE,sDAAsD;QAC/D,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,4BAA4B,CAAC,MAAM,CAAC;KACxD;IACD;QACE,IAAI,EAAE,+CAA+C;QACrD,OAAO,EAAE,uDAAuD;QAChE,KAAK,EAAE,wCAAwC;KAChD;IACD;QACE,IAAI,EAAE,6CAA6C;QACnD,OAAO,EAAE,yEAAyE;QAClF,KAAK,EAAE,+BAA+B;KACvC;IACD;QACE,IAAI,EAAE,gCAAgC;QACtC,OAAO,EAAE,2DAA2D;QACpE,KAAK,EAAE,uBAAuB;KAC/B;IACD;QACE,IAAI,EAAE,mCAAmC;QACzC,OAAO,EAAE,oFAAoF;QAC7F,KAAK,EAAE,+BAA+B;KACvC;IACD;QACE,IAAI,EAAE,uCAAuC;QAC7C,OAAO,EAAE,qDAAqD;QAC9D,KAAK,EAAE,uBAAuB;KAC/B;IACD;QACE,IAAI,EAAE,mCAAmC;QACzC,OAAO,EAAE,qEAAqE;QAC9E,KAAK,EAAE,gCAAgC;KACxC;IACD;QACE,IAAI,EAAE,0CAA0C;QAChD,OAAO,EAAE,uEAAuE;QAChF,KAAK,EAAE,yBAAyB;KACjC;IACD;QACE,IAAI,EAAE,sCAAsC;QAC5C,OAAO,EAAE,wDAAwD;QACjE,KAAK,EAAE,oBAAoB;KAC5B;IACD;QACE,IAAI,EAAE,4CAA4C;QAClD,OAAO,EAAE,iEAAiE;QAC1E,KAAK,EAAE,iCAAiC;KACzC;IACD;QACE,IAAI,EAAE,oCAAoC;QAC1C,OAAO,EAAE,4EAA4E;QACrF,QAAQ,EAAE,CAAC,8DAA8D,CAAC;KAC3E;IACD;QACE,IAAI,EAAE,2CAA2C;QACjD,OAAO,EAAE,yDAAyD;QAClE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CACzB,gBAAgB,CAAC,OAAO,CAAC,IAAI,gCAAgC,CAAC,MAAM,CAAC;KACxE;IACD;QACE,IAAI,EAAE,yCAAyC;QAC/C,OAAO,EAAE,0DAA0D;QACnE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC;KAClF;IACD;QACE,IAAI,EAAE,uCAAuC;QAC7C,OAAO,EAAE,4DAA4D;QACrE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC;KAClF;IACD;QACE,IAAI,EAAE,wCAAwC;QAC9C,OAAO,EAAE,4DAA4D;QACrE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,2BAA2B,CAAC,MAAM,CAAC;KAC7F;IACD;QACE,IAAI,EAAE,gCAAgC;QACtC,OAAO,EAAE,4EAA4E;QACrF,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CACzB,gBAAgB,CAAC,OAAO,CAAC;YACzB,uDAAuD,CAAC,IAAI,CAAC,MAAM,CAAC;KACvE;IACD;QACE,IAAI,EAAE,8CAA8C;QACpD,OAAO,EAAE,yDAAyD;QAClE,QAAQ,EAAE,CAAC,6DAA6D,CAAC;KAC1E;IACD;QACE,IAAI,EAAE,qDAAqD;QAC3D,OAAO,EAAE,6EAA6E;QACtF,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAChB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/B,IAAI,CAAC,wCAAwC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzD,OAAO,KAAK,CAAC;YACf,CAAC;YAED,OAAO,CAAC,6CAA6C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,CAAC,CAAC;KACL;IACD;QACE,IAAI,EAAE,6BAA6B;QACnC,OAAO,EAAE,6EAA6E;QACtF,KAAK,EAAE,mBAAmB;QAC1B,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACjB,cAAc,CAAC,IAAI;gBACjB,IAAI,QAAQ,CAAE,IAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,CAAC;oBAC/D,SAAS,CACP,OAAO,EACP,6EAA6E,EAC7E,IAAI,CACL,CAAC;gBACJ,CAAC;YACH,CAAC;SACF,CAAC;KACH;IACD;QACE,IAAI,EAAE,0CAA0C;QAChD,OAAO,EAAE,uEAAuE;QAChF,KAAK,EAAE,mBAAmB;QAC1B,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACjB,gBAAgB,CAAC,IAAI;gBACnB,MAAM,MAAM,GAAG,IAA8C,CAAC;gBAC9D,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC/C,IACE,MAAM,CAAC,QAAQ,KAAK,YAAY;oBAChC,SAAS;oBACT,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,EACrC,CAAC;oBACD,SAAS,CACP,OAAO,EACP,uEAAuE,EACvE,IAAI,CACL,CAAC;gBACJ,CAAC;YACH,CAAC;SACF,CAAC;KACH;IACD;QACE,IAAI,EAAE,oCAAoC;QAC1C,OAAO,EAAE,4EAA4E;QACrF,KAAK,EAAE,sBAAsB;QAC7B,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YACzB,cAAc,CAAC,IAAI;gBACjB,MAAM,IAAI,GAAG,IAAmD,CAAC;gBACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAA2C,CAAC;gBAC/E,IACE,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;oBAC9C,QAAQ,CAAC,QAAQ,CAAC,KAAK,kBAAkB,EACzC,CAAC;oBACD,OAAO;gBACT,CAAC;gBACD,MAAM,SAAS,GAAG,QAAsC,CAAC;gBACzD,IACE,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;oBACtC,MAAM,IAAI,GAAG,QAA8C,CAAC;oBAC5D,OAAO,CACL,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,MAAM;wBACnC,cAAc,CAAE,IAAI,CAAC,KAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAClE,CAAC;gBACJ,CAAC,CAAC,EACF,CAAC;oBACD,SAAS,CACP,OAAO,EACP,4EAA4E,EAC5E,IAAI,CACL,CAAC;gBACJ,CAAC;YACH,CAAC;SACF,CAAC;KACH;IACD;QACE,IAAI,EAAE,2CAA2C;QACjD,OAAO,EAAE,4DAA4D;QACrE,KAAK,EAAE,wBAAwB;QAC/B,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YACzB,cAAc,CAAC,IAAI;gBACjB,MAAM,IAAI,GAAG,IAAmD,CAAC;gBACjE,MAAM,eAAe,GACnB,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAClC,cAAc,CAAE,QAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAChE,CAAC,MAAM,IAAI,CAAC,CAAC;gBAChB,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;oBACxE,SAAS,CAAC,OAAO,EAAE,4DAA4D,EAAE,IAAI,CAAC,CAAC;gBACzF,CAAC;YACH,CAAC;SACF,CAAC;KACH;IACD;QACE,IAAI,EAAE,2CAA2C;QACjD,OAAO,EAAE,yEAAyE;QAClF,KAAK,EAAE,6BAA6B;QACpC,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YACzB,gBAAgB,CAAC,IAAI;gBACnB,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,mBAAmB,CAAC,IAAe,EAAE,MAAM,CAAC,CAAC;gBACxE,IAAI,SAAS,IAAI,GAAG,IAAI,SAAS,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC,EAAE,CAAC;oBAC5E,SAAS,CACP,OAAO,EACP,yEAAyE,EACzE,IAAI,CACL,CAAC;gBACJ,CAAC;YACH,CAAC;SACF,CAAC;KACH;IACD;QACE,IAAI,EAAE,kCAAkC;QACxC,OAAO,EAAE,+EAA+E;QACxF,KAAK,EAAE,uBAAuB;KAC/B;IACD;QACE,IAAI,EAAE,iDAAiD;QACvD,OAAO,EAAE,sDAAsD;QAC/D,KAAK,EAAE,uBAAuB;KAC/B;IACD;QACE,IAAI,EAAE,qDAAqD;QAC3D,OAAO,EAAE,uEAAuE;QAChF,KAAK,EAAE,oBAAoB;QAC3B,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACjB,iBAAiB,CAAC,IAAI;gBACpB,MAAM,WAAW,GAAG,YAAY,CAAE,IAA6B,CAAC,MAAM,CAAC,CAAC;gBACxE,IACE,CAAC,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC;oBAC3C,OAAO,WAAW,KAAK,QAAQ;oBAC/B,wEAAwE,CAAC,IAAI,CAAC,WAAW,CAAC,EAC1F,CAAC;oBACD,SAAS,CACP,OAAO,EACP,uEAAuE,EACvE,IAAI,CACL,CAAC;gBACJ,CAAC;YACH,CAAC;SACF,CAAC;KACH;IACD;QACE,IAAI,EAAE,wBAAwB;QAC9B,OAAO,EAAE,2EAA2E;QACpF,KAAK,EAAE,cAAc;QACrB,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YACzB,cAAc,CAAC,IAAI;gBACjB,MAAM,UAAU,GAAG,cAAc,CAAE,IAAgB,CAAC,MAAM,CAAC,CAAC;gBAC5D,MAAM,YAAY,GAAG,sBAAsB,CACzC,uBAAuB,CAAC,MAAM,CAAC,EAC9B,IAA2B,CAAC,KAAK,IAAI,CAAC,CACxC,CAAC;gBACF,IAAI,UAAU,KAAK,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,eAAe,CAAC,IAAI,YAAY,EAAE,CAAC;oBAC1F,SAAS,CACP,OAAO,EACP,2EAA2E,EAC3E,IAAI,CACL,CAAC;gBACJ,CAAC;YACH,CAAC;SACF,CAAC;KACH;IACD;QACE,IAAI,EAAE,2BAA2B;QACjC,OAAO,EAAE,uDAAuD;QAChE,KAAK,EAAE,wBAAwB;QAC/B,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YACzB,cAAc,CAAC,IAAI;gBACjB,MAAM,IAAI,GAAG,IAAmD,CAAC;gBACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;gBACrC,IACE,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBACxD,oBAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;oBACvD,CAAC,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,CAAC,KAAK,WAAW,IAAI,UAAU,CAAC,QAAQ,CAAC,CAAC,EAC/E,CAAC;oBACD,SAAS,CAAC,OAAO,EAAE,uDAAuD,EAAE,IAAI,CAAC,CAAC;gBACpF,CAAC;YACH,CAAC;SACF,CAAC;KACH;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,sEAAsE;QAC/E,KAAK,EAAE,YAAY;KACpB;IACD;QACE,IAAI,EAAE,wCAAwC;QAC9C,OAAO,EAAE,sEAAsE;QAC/E,KAAK,EAAE,aAAa;KACrB;CAC4B,CAAC;AAEhC,MAAM,iBAAiB,GAAG,SAAS,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAC,CAAC;AAE5F,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"effect-strict.js","sourceRoot":"","sources":["../../src/rules/effect-strict.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,gFAAgF;AAChF,gFAAgF;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,MAAM,iBAAiB,GAAG,SAAS,CAAC,CAAC,GAAG,qBAAqB,EAAE,GAAG,oBAAoB,CAAC,EAAE;IACvF,MAAM,EAAE,uBAAuB;CAChC,CAAC,CAAC;AAEH,eAAe,iBAAiB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
- * Count leading `../` segments in an import path.
3
- * Returns 0 for non-relative imports (no leading `..`).
2
+ * Count leading `../` segments in an import path. Returns 0 for non-relative imports (no leading
3
+ * `..`).
4
4
  */
5
5
  export default function countImportDepth(path: string): number;
6
6
  //# sourceMappingURL=max-import-depth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"max-import-depth.d.ts","sourceRoot":"","sources":["../../src/rules/max-import-depth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA6B7D"}
1
+ {"version":3,"file":"max-import-depth.d.ts","sourceRoot":"","sources":["../../src/rules/max-import-depth.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAiB7D"}
@@ -1,29 +1,64 @@
1
+ /* -------------------------------------------------------------------------- */
2
+ /* Import-depth helper for detecting parent path climbs. */
3
+ /* -------------------------------------------------------------------------- */
1
4
  /**
2
- * Count leading `../` segments in an import path.
3
- * Returns 0 for non-relative imports (no leading `..`).
5
+ * Count leading `../` segments in an import path. Returns 0 for non-relative imports (no leading
6
+ * `..`).
4
7
  */
5
8
  export default function countImportDepth(path) {
6
- const len = path.length;
7
- if (len < 2 || path.charCodeAt(0) !== 46 || path.charCodeAt(1) !== 46) {
8
- return 0;
9
- }
10
- // `.../` is not a relative path — skip triple+ dot
11
- if (len > 2 && path.charCodeAt(2) === 46) {
12
- return 0;
9
+ if (!isParentRelativePath(path)) {
10
+ return NO_PARENT_IMPORT_DEPTH;
13
11
  }
14
12
  let depth = 0;
15
- let idx = 0;
16
- while (idx + 2 < len &&
17
- path.charCodeAt(idx) === 46 &&
18
- path.charCodeAt(idx + 1) === 46 &&
19
- path.charCodeAt(idx + 2) === 47) {
13
+ let index = 0;
14
+ while (hasParentDirectorySegment(path, index)) {
20
15
  depth++;
21
- idx += 3;
16
+ index += PARENT_DIRECTORY_SEGMENT_LENGTH;
22
17
  }
23
- // Trailing `..` at end-of-string
24
- if (idx + 2 === len && path.charCodeAt(idx) === 46 && path.charCodeAt(idx + 1) === 46) {
18
+ if (hasTrailingParentDirectory(path, index)) {
25
19
  depth++;
26
20
  }
27
21
  return depth;
28
22
  }
23
+ const CHAR_DOT = 46;
24
+ const CHAR_SLASH = 47;
25
+ const FIRST_CHAR_INDEX = 0;
26
+ const SECOND_CHAR_INDEX = 1;
27
+ const THIRD_CHAR_INDEX = 2;
28
+ const NO_PARENT_IMPORT_DEPTH = 0;
29
+ const PARENT_DIRECTORY_SEGMENT_LENGTH = 3;
30
+ const PARENT_DIRECTORY_TOKEN_LENGTH = 2;
31
+ const isParentRelativePath = (path) => {
32
+ if (path.length < PARENT_DIRECTORY_TOKEN_LENGTH) {
33
+ return false;
34
+ }
35
+ if (path.charCodeAt(FIRST_CHAR_INDEX) !== CHAR_DOT) {
36
+ return false;
37
+ }
38
+ if (path.charCodeAt(SECOND_CHAR_INDEX) !== CHAR_DOT) {
39
+ return false;
40
+ }
41
+ return path.charCodeAt(THIRD_CHAR_INDEX) !== CHAR_DOT;
42
+ };
43
+ const hasParentDirectorySegment = (path, index) => {
44
+ if (index + PARENT_DIRECTORY_TOKEN_LENGTH >= path.length) {
45
+ return false;
46
+ }
47
+ if (path.charCodeAt(index) !== CHAR_DOT) {
48
+ return false;
49
+ }
50
+ if (path.charCodeAt(index + SECOND_CHAR_INDEX) !== CHAR_DOT) {
51
+ return false;
52
+ }
53
+ return path.charCodeAt(index + THIRD_CHAR_INDEX) === CHAR_SLASH;
54
+ };
55
+ const hasTrailingParentDirectory = (path, index) => {
56
+ if (index + PARENT_DIRECTORY_TOKEN_LENGTH !== path.length) {
57
+ return false;
58
+ }
59
+ if (path.charCodeAt(index) !== CHAR_DOT) {
60
+ return false;
61
+ }
62
+ return path.charCodeAt(index + SECOND_CHAR_INDEX) === CHAR_DOT;
63
+ };
29
64
  //# sourceMappingURL=max-import-depth.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"max-import-depth.js","sourceRoot":"","sources":["../../src/rules/max-import-depth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,IAAY;IACnD,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;IACxB,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QACtE,OAAO,CAAC,CAAC;IACX,CAAC;IACD,mDAAmD;IACnD,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QACzC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,GAAG,GAAG,CAAC,CAAC;IAEZ,OACE,GAAG,GAAG,CAAC,GAAG,GAAG;QACb,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE;QAC3B,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE;QAC/B,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,EAC/B,CAAC;QACD,KAAK,EAAE,CAAC;QACR,GAAG,IAAI,CAAC,CAAC;IACX,CAAC;IAED,iCAAiC;IACjC,IAAI,GAAG,GAAG,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QACtF,KAAK,EAAE,CAAC;IACV,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"max-import-depth.js","sourceRoot":"","sources":["../../src/rules/max-import-depth.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,gFAAgF;AAChF,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,IAAY;IACnD,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;QAChC,OAAO,sBAAsB,CAAC;IAChC,CAAC;IACD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,OAAO,yBAAyB,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QAC9C,KAAK,EAAE,CAAC;QACR,KAAK,IAAI,+BAA+B,CAAC;IAC3C,CAAC;IAED,IAAI,0BAA0B,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QAC5C,KAAK,EAAE,CAAC;IACV,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,QAAQ,GAAG,EAAE,CAAC;AACpB,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAC5B,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACjC,MAAM,+BAA+B,GAAG,CAAC,CAAC;AAC1C,MAAM,6BAA6B,GAAG,CAAC,CAAC;AAExC,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAW,EAAE;IACrD,IAAI,IAAI,CAAC,MAAM,GAAG,6BAA6B,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,KAAK,QAAQ,EAAE,CAAC;QACnD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,QAAQ,EAAE,CAAC;QACpD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,KAAK,QAAQ,CAAC;AACxD,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAC,IAAY,EAAE,KAAa,EAAW,EAAE;IACzE,IAAI,KAAK,GAAG,6BAA6B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QACzD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,iBAAiB,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC5D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,gBAAgB,CAAC,KAAK,UAAU,CAAC;AAClE,CAAC,CAAC;AAEF,MAAM,0BAA0B,GAAG,CAAC,IAAY,EAAE,KAAa,EAAW,EAAE;IAC1E,IAAI,KAAK,GAAG,6BAA6B,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,iBAAiB,CAAC,KAAK,QAAQ,CAAC;AACjE,CAAC,CAAC"}
@@ -1,7 +1,14 @@
1
- type LineLengthViolation = {
1
+ interface LineLengthViolation {
2
2
  line: number;
3
3
  length: number;
4
- };
4
+ }
5
+ /**
6
+ * Finds source lines that exceed the configured maximum width.
7
+ *
8
+ * @param source - Source text to scan.
9
+ * @param maxLength - Maximum allowed line width.
10
+ * @returns Line-length violations with one-based line numbers.
11
+ */
5
12
  export default function findLongLines(source: string, maxLength?: number): LineLengthViolation[];
6
13
  export {};
7
14
  //# sourceMappingURL=max-line-length.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"max-line-length.d.ts","sourceRoot":"","sources":["../../src/rules/max-line-length.ts"],"names":[],"mappings":"AAAA,KAAK,mBAAmB,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAKF,MAAM,CAAC,OAAO,UAAU,aAAa,CACnC,MAAM,EAAE,MAAM,EACd,SAAS,SAAqB,GAC7B,mBAAmB,EAAE,CAavB"}
1
+ {"version":3,"file":"max-line-length.d.ts","sourceRoot":"","sources":["../../src/rules/max-line-length.ts"],"names":[],"mappings":"AAGA,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AA4ED;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CACnC,MAAM,EAAE,MAAM,EACd,SAAS,SAAqB,GAC7B,mBAAmB,EAAE,CAmBvB"}
@@ -1,14 +1,69 @@
1
1
  const DEFAULT_MAX_LENGTH = 150;
2
- const URL_PATTERN = /https?:\/\//;
2
+ const CHAR_CODE_CARRIAGE_RETURN = 13;
3
+ const lineContainsURL = (source, start, end) => {
4
+ const httpIndex = source.indexOf('http://', start);
5
+ if (httpIndex !== -1 && httpIndex < end) {
6
+ return true;
7
+ }
8
+ const httpsIndex = source.indexOf('https://', start);
9
+ return httpsIndex !== -1 && httpsIndex < end;
10
+ };
11
+ const nextLineEnd = (source, lineStart) => {
12
+ const newlineIndex = source.indexOf('\n', lineStart);
13
+ if (newlineIndex === -1) {
14
+ return source.length;
15
+ }
16
+ return newlineIndex;
17
+ };
18
+ const contentEndForLine = (source, lineStart, lineEnd) => {
19
+ if (lineEnd > lineStart && source.charCodeAt(lineEnd - 1) === CHAR_CODE_CARRIAGE_RETURN) {
20
+ return lineEnd - 1;
21
+ }
22
+ return lineEnd;
23
+ };
24
+ const addLineViolation = (violations, check) => {
25
+ const { lineEnd, lineNumber, lineStart, maxLength, source } = check;
26
+ const contentEnd = contentEndForLine(source, lineStart, lineEnd);
27
+ const length = contentEnd - lineStart;
28
+ if (length > maxLength && !lineContainsURL(source, lineStart, contentEnd)) {
29
+ violations.push({ length, line: lineNumber });
30
+ }
31
+ };
32
+ const nextLineStart = (lineEnd) => lineEnd + 1;
33
+ const nextLineCursor = (cursor, lineEnd) => ({
34
+ lineNumber: cursor.lineNumber + 1,
35
+ lineStart: nextLineStart(lineEnd),
36
+ });
37
+ const addCursorViolation = (violations, source, maxLength, cursor) => {
38
+ const lineEnd = nextLineEnd(source, cursor.lineStart);
39
+ addLineViolation(violations, {
40
+ lineEnd,
41
+ lineNumber: cursor.lineNumber,
42
+ lineStart: cursor.lineStart,
43
+ maxLength,
44
+ source,
45
+ });
46
+ return lineEnd;
47
+ };
48
+ /**
49
+ * Finds source lines that exceed the configured maximum width.
50
+ *
51
+ * @param source - Source text to scan.
52
+ * @param maxLength - Maximum allowed line width.
53
+ * @returns Line-length violations with one-based line numbers.
54
+ */
3
55
  export default function findLongLines(source, maxLength = DEFAULT_MAX_LENGTH) {
56
+ if (source.length <= maxLength) {
57
+ return [];
58
+ }
4
59
  const violations = [];
5
- const lines = source.split('\n');
6
- for (let index = 0; index < lines.length; index += 1) {
7
- const line = lines[index];
8
- if (line.length <= maxLength || URL_PATTERN.test(line)) {
9
- continue;
60
+ let cursor = { lineNumber: 1, lineStart: 0 };
61
+ while (cursor.lineStart <= source.length) {
62
+ const lineEnd = addCursorViolation(violations, source, maxLength, cursor);
63
+ if (lineEnd === source.length) {
64
+ break;
10
65
  }
11
- violations.push({ line: index + 1, length: line.length });
66
+ cursor = nextLineCursor(cursor, lineEnd);
12
67
  }
13
68
  return violations;
14
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"max-line-length.js","sourceRoot":"","sources":["../../src/rules/max-line-length.ts"],"names":[],"mappings":"AAKA,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,WAAW,GAAG,aAAa,CAAC;AAElC,MAAM,CAAC,OAAO,UAAU,aAAa,CACnC,MAAc,EACd,SAAS,GAAG,kBAAkB;IAE9B,MAAM,UAAU,GAA0B,EAAE,CAAC;IAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEjC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1B,IAAI,IAAI,CAAC,MAAM,IAAI,SAAS,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvD,SAAS;QACX,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"max-line-length.js","sourceRoot":"","sources":["../../src/rules/max-line-length.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,8 @@
1
1
  /**
2
- * Detection heuristic for commented-out source code.
2
+ * Determines whether comment text is likely dead source code.
3
3
  *
4
- * Checks whether a comment's text content looks like code rather than
5
- * natural language. Uses a scoring approach: each code indicator adds
6
- * to a score; if the score meets the threshold, the comment is flagged.
7
- *
8
- * Optimized: pre-compiled regex, line scanning via indexOf, minimal
9
- * string allocations.
4
+ * @param text - Raw comment text without comment delimiters.
5
+ * @returns True when the text scores as commented-out code.
10
6
  */
11
7
  export default function isCommentedOutCode(text: string): boolean;
12
8
  //# sourceMappingURL=no-commented-out-code.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"no-commented-out-code.d.ts","sourceRoot":"","sources":["../../src/rules/no-commented-out-code.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAwEH,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAwHhE"}
1
+ {"version":3,"file":"no-commented-out-code.d.ts","sourceRoot":"","sources":["../../src/rules/no-commented-out-code.ts"],"names":[],"mappings":"AAgQA;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAehE"}
@@ -1,13 +1,10 @@
1
- /**
2
- * Detection heuristic for commented-out source code.
3
- *
4
- * Checks whether a comment's text content looks like code rather than
5
- * natural language. Uses a scoring approach: each code indicator adds
6
- * to a score; if the score meets the threshold, the comment is flagged.
7
- *
8
- * Optimized: pre-compiled regex, line scanning via indexOf, minimal
9
- * string allocations.
10
- */
1
+ /* -------------------------------------------------------------------------- */
2
+ /* Detection heuristic for commented-out source code. Checks whether a */
3
+ /* Comment's text content looks like code rather than natural language. Uses */
4
+ /* A scoring approach: each code indicator adds to a score; if the score */
5
+ /* Meets the threshold, the comment is flagged. Optimized: pre-compiled */
6
+ /* Regex, line scanning via indexOf, minimal string allocations. */
7
+ /* -------------------------------------------------------------------------- */
11
8
  // Pre-compiled regex patterns
12
9
  const RE_ARROW_FN = /\b=>\s*[{(\w]/;
13
10
  const RE_ASSIGNMENT = /\b\w+\s*=\s*[^=]/;
@@ -21,6 +18,22 @@ const RE_KEYWORD_SCAN = /\b(await|async|function|class|import|export|return|thro
21
18
  const RE_NATURAL_START = /^(a|an|the|this|that|these|those|we|you|it|is|are|was|were|to|in|of|for|with|on|at|by|from|see|note|use)\s/i;
22
19
  const RE_JSDOC_TAG = /^@\w+/;
23
20
  const RE_URL = /https?:\/\//;
21
+ const CHAR_CODE_SPACE = 32;
22
+ const CHAR_CODE_OPEN_BRACE = 123;
23
+ const CHAR_CODE_UPPER_A = 65;
24
+ const CHAR_CODE_UPPER_Z = 90;
25
+ const CHAR_CODE_LOWER_A = 97;
26
+ const CHAR_CODE_LOWER_Z = 122;
27
+ const MIN_COMMENT_LENGTH = 3;
28
+ const KEYWORD_SCORE = 2;
29
+ const PATTERN_SCORE = 2;
30
+ const MULTILINE_LINE_THRESHOLD = 3;
31
+ const MULTILINE_SCORE = 1;
32
+ const NATURAL_LANGUAGE_PENALTY = 3;
33
+ const JSDOC_TAG_PENALTY = 10;
34
+ const URL_PENALTY = 5;
35
+ const SENTENCE_CASE_PENALTY = 2;
36
+ const FLAG_SCORE_THRESHOLD = 3;
24
37
  // Code-indicative keywords
25
38
  const CODE_KEYWORDS = new Set([
26
39
  'const',
@@ -64,118 +77,160 @@ const CODE_KEYWORDS = new Set([
64
77
  'private',
65
78
  'public',
66
79
  ]);
67
- /** Extract first whitespace-delimited word from text. */
68
- function firstWord(text) {
80
+ /**
81
+ * Extract first whitespace-delimited word from text.
82
+ */
83
+ const firstWord = (text) => {
69
84
  let end = 0;
70
85
  const len = text.length;
71
- while (end < len && text.charCodeAt(end) > 32) {
86
+ while (end < len && text.charCodeAt(end) > CHAR_CODE_SPACE) {
72
87
  end++;
73
88
  }
74
89
  return text.slice(0, end).toLowerCase();
75
- }
76
- export default function isCommentedOutCode(text) {
77
- const normalized = text.trim();
78
- if (normalized.length < 3) {
79
- return false;
80
- }
81
- // Fast-path: check for code-like tokens
82
- let hasCodeTokens = RE_CODE_TOKEN.test(normalized);
83
- if (!hasCodeTokens) {
84
- hasCodeTokens = CODE_KEYWORDS.has(firstWord(normalized));
85
- }
86
- if (!hasCodeTokens && !RE_KEYWORD_SCAN.test(normalized)) {
87
- return false;
90
+ };
91
+ const countOpenBraces = (source, start, end) => {
92
+ let count = 0;
93
+ for (let idx = start; idx < end; idx++) {
94
+ if (source.charCodeAt(idx) === CHAR_CODE_OPEN_BRACE) {
95
+ count++;
96
+ }
88
97
  }
89
- let score = 0;
90
- let foundKeyword = false;
91
- // 1. Line-by-line keyword scanning (avoid split() scan with indexOf)
92
- let braceCount = 0;
93
- let lineCount = 0;
98
+ return count;
99
+ };
100
+ const hasCodeTokenSignal = (normalized) => {
101
+ if (RE_CODE_TOKEN.test(normalized)) {
102
+ return true;
103
+ }
104
+ if (CODE_KEYWORDS.has(firstWord(normalized))) {
105
+ return true;
106
+ }
107
+ return RE_KEYWORD_SCAN.test(normalized);
108
+ };
109
+ const nextLineEnd = (source, position) => {
110
+ const lineEnd = source.indexOf('\n', position);
111
+ if (lineEnd === -1) {
112
+ return source.length;
113
+ }
114
+ return lineEnd;
115
+ };
116
+ const firstNonWhitespaceIndex = (source, start, end) => {
117
+ let index = start;
118
+ while (index < end && source.charCodeAt(index) <= CHAR_CODE_SPACE) {
119
+ index++;
120
+ }
121
+ return index;
122
+ };
123
+ const firstLineWord = (source, start, end) => {
124
+ let wordEnd = start;
125
+ while (wordEnd < end && source.charCodeAt(wordEnd) > CHAR_CODE_SPACE) {
126
+ wordEnd++;
127
+ }
128
+ return source
129
+ .slice(start, wordEnd)
130
+ .toLowerCase()
131
+ .replace(/[;:,]$/, '');
132
+ };
133
+ const lineKeywordScore = (source, lineStart, lineEnd) => {
134
+ const clean = firstLineWord(source, lineStart, lineEnd);
135
+ if (CODE_KEYWORDS.has(clean)) {
136
+ return { hasFoundKeyword: true, score: KEYWORD_SCORE };
137
+ }
138
+ return { hasFoundKeyword: false, score: 0 };
139
+ };
140
+ const addLineStats = (stats, normalized, lineStart, lineEnd) => {
141
+ const keywordScore = lineKeywordScore(normalized, lineStart, lineEnd);
142
+ return {
143
+ braceCount: stats.braceCount + countOpenBraces(normalized, lineStart, lineEnd),
144
+ hasFoundKeyword: stats.hasFoundKeyword || keywordScore.hasFoundKeyword,
145
+ lineCount: stats.lineCount + 1,
146
+ score: stats.score + keywordScore.score,
147
+ };
148
+ };
149
+ const scanLineStats = (normalized) => {
150
+ let stats = {
151
+ braceCount: 0,
152
+ hasFoundKeyword: false,
153
+ lineCount: 0,
154
+ score: 0,
155
+ };
94
156
  let pos = 0;
95
- const len = normalized.length;
96
- while (pos < len) {
97
- // Find line end
98
- let lineEnd = normalized.indexOf('\n', pos);
99
- if (lineEnd === -1) {
100
- lineEnd = len;
101
- }
102
- // Skip leading whitespace
103
- let lineStart = pos;
104
- while (lineStart < lineEnd && normalized.charCodeAt(lineStart) <= 32) {
105
- lineStart++;
106
- }
157
+ while (pos < normalized.length) {
158
+ const lineEnd = nextLineEnd(normalized, pos);
159
+ const lineStart = firstNonWhitespaceIndex(normalized, pos, lineEnd);
107
160
  if (lineStart < lineEnd) {
108
- lineCount++;
109
- // Count braces in this line
110
- for (let idx = lineStart; idx < lineEnd; idx++) {
111
- if (normalized.charCodeAt(idx) === 123) {
112
- braceCount++;
113
- }
114
- }
115
- // Extract first word of line
116
- let wordEnd = lineStart;
117
- while (wordEnd < lineEnd && normalized.charCodeAt(wordEnd) > 32) {
118
- wordEnd++;
119
- }
120
- const fw = normalized.slice(lineStart, wordEnd).toLowerCase();
121
- // Strip trailing punctuation
122
- const clean = fw.replace(/[;:,]$/, '');
123
- if (CODE_KEYWORDS.has(clean)) {
124
- score += 2;
125
- foundKeyword = true;
126
- }
161
+ stats = addLineStats(stats, normalized, lineStart, lineEnd);
127
162
  }
128
163
  pos = lineEnd + 1;
129
164
  }
130
- // 2. Code patterns
131
- if (RE_ARROW_FN.test(normalized)) {
132
- score += 2;
133
- }
134
- if (RE_ASSIGNMENT.test(normalized)) {
135
- score += 2;
136
- }
137
- if (RE_SEMICOLON_LINE.test(normalized)) {
138
- score += 2;
139
- }
140
- if (RE_DOT_CALL.test(normalized)) {
141
- score += 2;
165
+ return stats;
166
+ };
167
+ const patternScore = (normalized) => {
168
+ const patterns = [
169
+ RE_ARROW_FN,
170
+ RE_ASSIGNMENT,
171
+ RE_SEMICOLON_LINE,
172
+ RE_DOT_CALL,
173
+ RE_TEMPLATE,
174
+ RE_JSX_TAG,
175
+ RE_SPREAD,
176
+ ];
177
+ return patterns.reduce((score, pattern) => {
178
+ if (pattern.test(normalized)) {
179
+ return score + PATTERN_SCORE;
180
+ }
181
+ return score;
182
+ }, 0);
183
+ };
184
+ const isSentenceCaseSingleLine = (normalized, stats) => !stats.hasFoundKeyword &&
185
+ stats.braceCount === 0 &&
186
+ stats.lineCount === 1 &&
187
+ normalized.charCodeAt(0) >= CHAR_CODE_UPPER_A &&
188
+ normalized.charCodeAt(0) <= CHAR_CODE_UPPER_Z &&
189
+ normalized.charCodeAt(1) >= CHAR_CODE_LOWER_A &&
190
+ normalized.charCodeAt(1) <= CHAR_CODE_LOWER_Z;
191
+ const languagePenalty = (normalized, stats) => {
192
+ let penalty = 0;
193
+ if (!stats.hasFoundKeyword && RE_NATURAL_START.test(normalized)) {
194
+ penalty += NATURAL_LANGUAGE_PENALTY;
142
195
  }
143
- if (RE_TEMPLATE.test(normalized)) {
144
- score += 2;
196
+ if (RE_JSDOC_TAG.test(normalized)) {
197
+ penalty += JSDOC_TAG_PENALTY;
145
198
  }
146
- if (RE_JSX_TAG.test(normalized)) {
147
- score += 2;
199
+ if (!stats.hasFoundKeyword && RE_URL.test(normalized)) {
200
+ penalty += URL_PENALTY;
148
201
  }
149
- if (RE_SPREAD.test(normalized)) {
150
- score += 2;
202
+ if (isSentenceCaseSingleLine(normalized, stats)) {
203
+ penalty += SENTENCE_CASE_PENALTY;
151
204
  }
152
- // 3. Brace bonus
205
+ return penalty;
206
+ };
207
+ const structuralScore = (stats) => {
208
+ const { braceCount, lineCount, score: baseScore } = stats;
209
+ let score = baseScore;
153
210
  if (braceCount >= 1) {
154
211
  score += braceCount;
155
212
  }
156
- // 4. Multi-line bonus
157
- if (lineCount >= 3) {
158
- score += 1;
159
- }
160
- // 5. Natural-language penalties
161
- if (!foundKeyword && RE_NATURAL_START.test(normalized)) {
162
- score -= 3;
163
- }
164
- if (RE_JSDOC_TAG.test(normalized)) {
165
- score -= 10;
213
+ if (lineCount >= MULTILINE_LINE_THRESHOLD) {
214
+ score += MULTILINE_SCORE;
166
215
  }
167
- if (!foundKeyword && RE_URL.test(normalized)) {
168
- score -= 5;
216
+ return score;
217
+ };
218
+ /**
219
+ * Determines whether comment text is likely dead source code.
220
+ *
221
+ * @param text - Raw comment text without comment delimiters.
222
+ * @returns True when the text scores as commented-out code.
223
+ */
224
+ export default function isCommentedOutCode(text) {
225
+ const normalized = text.trim();
226
+ if (normalized.length < MIN_COMMENT_LENGTH) {
227
+ return false;
169
228
  }
170
- if (!foundKeyword &&
171
- braceCount === 0 &&
172
- lineCount === 1 &&
173
- normalized.charCodeAt(0) >= 65 &&
174
- normalized.charCodeAt(0) <= 90 &&
175
- normalized.charCodeAt(1) >= 97 &&
176
- normalized.charCodeAt(1) <= 122) {
177
- score -= 2;
229
+ if (!hasCodeTokenSignal(normalized)) {
230
+ return false;
178
231
  }
179
- return score >= 3;
232
+ const stats = scanLineStats(normalized);
233
+ const score = structuralScore(stats) + patternScore(normalized) - languagePenalty(normalized, stats);
234
+ return score >= FLAG_SCORE_THRESHOLD;
180
235
  }
181
236
  //# sourceMappingURL=no-commented-out-code.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"no-commented-out-code.js","sourceRoot":"","sources":["../../src/rules/no-commented-out-code.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-commented-out-code.js","sourceRoot":"","sources":["../../src/rules/no-commented-out-code.ts"],"names":[],"mappings":"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"}