driftdetect-detectors 0.1.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 (509) hide show
  1. package/dist/accessibility/alt-text.d.ts +63 -0
  2. package/dist/accessibility/alt-text.d.ts.map +1 -0
  3. package/dist/accessibility/alt-text.js +100 -0
  4. package/dist/accessibility/alt-text.js.map +1 -0
  5. package/dist/accessibility/aria-roles.d.ts +65 -0
  6. package/dist/accessibility/aria-roles.d.ts.map +1 -0
  7. package/dist/accessibility/aria-roles.js +87 -0
  8. package/dist/accessibility/aria-roles.js.map +1 -0
  9. package/dist/accessibility/focus-management.d.ts +62 -0
  10. package/dist/accessibility/focus-management.d.ts.map +1 -0
  11. package/dist/accessibility/focus-management.js +88 -0
  12. package/dist/accessibility/focus-management.js.map +1 -0
  13. package/dist/accessibility/heading-hierarchy.d.ts +66 -0
  14. package/dist/accessibility/heading-hierarchy.d.ts.map +1 -0
  15. package/dist/accessibility/heading-hierarchy.js +94 -0
  16. package/dist/accessibility/heading-hierarchy.js.map +1 -0
  17. package/dist/accessibility/index.d.ts +25 -0
  18. package/dist/accessibility/index.d.ts.map +1 -0
  19. package/dist/accessibility/index.js +21 -0
  20. package/dist/accessibility/index.js.map +1 -0
  21. package/dist/accessibility/keyboard-nav.d.ts +63 -0
  22. package/dist/accessibility/keyboard-nav.d.ts.map +1 -0
  23. package/dist/accessibility/keyboard-nav.js +86 -0
  24. package/dist/accessibility/keyboard-nav.js.map +1 -0
  25. package/dist/accessibility/semantic-html.d.ts +76 -0
  26. package/dist/accessibility/semantic-html.d.ts.map +1 -0
  27. package/dist/accessibility/semantic-html.js +204 -0
  28. package/dist/accessibility/semantic-html.js.map +1 -0
  29. package/dist/api/client-patterns.d.ts +121 -0
  30. package/dist/api/client-patterns.d.ts.map +1 -0
  31. package/dist/api/client-patterns.js +478 -0
  32. package/dist/api/client-patterns.js.map +1 -0
  33. package/dist/api/error-format.d.ts +140 -0
  34. package/dist/api/error-format.d.ts.map +1 -0
  35. package/dist/api/error-format.js +614 -0
  36. package/dist/api/error-format.js.map +1 -0
  37. package/dist/api/http-methods.d.ts +255 -0
  38. package/dist/api/http-methods.d.ts.map +1 -0
  39. package/dist/api/http-methods.js +890 -0
  40. package/dist/api/http-methods.js.map +1 -0
  41. package/dist/api/index.d.ts +16 -0
  42. package/dist/api/index.d.ts.map +1 -0
  43. package/dist/api/index.js +37 -0
  44. package/dist/api/index.js.map +1 -0
  45. package/dist/api/pagination.d.ts +133 -0
  46. package/dist/api/pagination.d.ts.map +1 -0
  47. package/dist/api/pagination.js +521 -0
  48. package/dist/api/pagination.js.map +1 -0
  49. package/dist/api/response-envelope.d.ts +261 -0
  50. package/dist/api/response-envelope.d.ts.map +1 -0
  51. package/dist/api/response-envelope.js +1050 -0
  52. package/dist/api/response-envelope.js.map +1 -0
  53. package/dist/api/retry-patterns.d.ts +117 -0
  54. package/dist/api/retry-patterns.d.ts.map +1 -0
  55. package/dist/api/retry-patterns.js +480 -0
  56. package/dist/api/retry-patterns.js.map +1 -0
  57. package/dist/api/route-structure.d.ts +128 -0
  58. package/dist/api/route-structure.d.ts.map +1 -0
  59. package/dist/api/route-structure.js +738 -0
  60. package/dist/api/route-structure.js.map +1 -0
  61. package/dist/auth/audit-logging.d.ts +80 -0
  62. package/dist/auth/audit-logging.d.ts.map +1 -0
  63. package/dist/auth/audit-logging.js +370 -0
  64. package/dist/auth/audit-logging.js.map +1 -0
  65. package/dist/auth/index.d.ts +33 -0
  66. package/dist/auth/index.d.ts.map +1 -0
  67. package/dist/auth/index.js +49 -0
  68. package/dist/auth/index.js.map +1 -0
  69. package/dist/auth/middleware-usage.d.ts +65 -0
  70. package/dist/auth/middleware-usage.d.ts.map +1 -0
  71. package/dist/auth/middleware-usage.js +192 -0
  72. package/dist/auth/middleware-usage.js.map +1 -0
  73. package/dist/auth/permission-checks.d.ts +60 -0
  74. package/dist/auth/permission-checks.d.ts.map +1 -0
  75. package/dist/auth/permission-checks.js +159 -0
  76. package/dist/auth/permission-checks.js.map +1 -0
  77. package/dist/auth/rbac-patterns.d.ts +68 -0
  78. package/dist/auth/rbac-patterns.d.ts.map +1 -0
  79. package/dist/auth/rbac-patterns.js +143 -0
  80. package/dist/auth/rbac-patterns.js.map +1 -0
  81. package/dist/auth/resource-ownership.d.ts +77 -0
  82. package/dist/auth/resource-ownership.d.ts.map +1 -0
  83. package/dist/auth/resource-ownership.js +324 -0
  84. package/dist/auth/resource-ownership.js.map +1 -0
  85. package/dist/auth/token-handling.d.ts +64 -0
  86. package/dist/auth/token-handling.d.ts.map +1 -0
  87. package/dist/auth/token-handling.js +151 -0
  88. package/dist/auth/token-handling.js.map +1 -0
  89. package/dist/base/ast-detector.d.ts +421 -0
  90. package/dist/base/ast-detector.d.ts.map +1 -0
  91. package/dist/base/ast-detector.js +699 -0
  92. package/dist/base/ast-detector.js.map +1 -0
  93. package/dist/base/base-detector.d.ts +366 -0
  94. package/dist/base/base-detector.d.ts.map +1 -0
  95. package/dist/base/base-detector.js +170 -0
  96. package/dist/base/base-detector.js.map +1 -0
  97. package/dist/base/index.d.ts +12 -0
  98. package/dist/base/index.d.ts.map +1 -0
  99. package/dist/base/index.js +17 -0
  100. package/dist/base/index.js.map +1 -0
  101. package/dist/base/regex-detector.d.ts +421 -0
  102. package/dist/base/regex-detector.d.ts.map +1 -0
  103. package/dist/base/regex-detector.js +537 -0
  104. package/dist/base/regex-detector.js.map +1 -0
  105. package/dist/base/structural-detector.d.ts +424 -0
  106. package/dist/base/structural-detector.d.ts.map +1 -0
  107. package/dist/base/structural-detector.js +731 -0
  108. package/dist/base/structural-detector.js.map +1 -0
  109. package/dist/base/types.d.ts +53 -0
  110. package/dist/base/types.d.ts.map +1 -0
  111. package/dist/base/types.js +5 -0
  112. package/dist/base/types.js.map +1 -0
  113. package/dist/components/component-structure.d.ts +163 -0
  114. package/dist/components/component-structure.d.ts.map +1 -0
  115. package/dist/components/component-structure.js +500 -0
  116. package/dist/components/component-structure.js.map +1 -0
  117. package/dist/components/composition.d.ts +287 -0
  118. package/dist/components/composition.d.ts.map +1 -0
  119. package/dist/components/composition.js +1123 -0
  120. package/dist/components/composition.js.map +1 -0
  121. package/dist/components/duplicate-detection.d.ts +251 -0
  122. package/dist/components/duplicate-detection.d.ts.map +1 -0
  123. package/dist/components/duplicate-detection.js +804 -0
  124. package/dist/components/duplicate-detection.js.map +1 -0
  125. package/dist/components/index.d.ts +16 -0
  126. package/dist/components/index.d.ts.map +1 -0
  127. package/dist/components/index.js +51 -0
  128. package/dist/components/index.js.map +1 -0
  129. package/dist/components/near-duplicate.d.ts +402 -0
  130. package/dist/components/near-duplicate.d.ts.map +1 -0
  131. package/dist/components/near-duplicate.js +1090 -0
  132. package/dist/components/near-duplicate.js.map +1 -0
  133. package/dist/components/props-patterns.d.ts +194 -0
  134. package/dist/components/props-patterns.d.ts.map +1 -0
  135. package/dist/components/props-patterns.js +795 -0
  136. package/dist/components/props-patterns.js.map +1 -0
  137. package/dist/components/ref-forwarding.d.ts +250 -0
  138. package/dist/components/ref-forwarding.d.ts.map +1 -0
  139. package/dist/components/ref-forwarding.js +832 -0
  140. package/dist/components/ref-forwarding.js.map +1 -0
  141. package/dist/components/state-patterns.d.ts +291 -0
  142. package/dist/components/state-patterns.d.ts.map +1 -0
  143. package/dist/components/state-patterns.js +970 -0
  144. package/dist/components/state-patterns.js.map +1 -0
  145. package/dist/config/config-validation.d.ts +74 -0
  146. package/dist/config/config-validation.d.ts.map +1 -0
  147. package/dist/config/config-validation.js +446 -0
  148. package/dist/config/config-validation.js.map +1 -0
  149. package/dist/config/default-values.d.ts +72 -0
  150. package/dist/config/default-values.d.ts.map +1 -0
  151. package/dist/config/default-values.js +386 -0
  152. package/dist/config/default-values.js.map +1 -0
  153. package/dist/config/env-naming.d.ts +73 -0
  154. package/dist/config/env-naming.d.ts.map +1 -0
  155. package/dist/config/env-naming.js +429 -0
  156. package/dist/config/env-naming.js.map +1 -0
  157. package/dist/config/environment-detection.d.ts +72 -0
  158. package/dist/config/environment-detection.d.ts.map +1 -0
  159. package/dist/config/environment-detection.js +400 -0
  160. package/dist/config/environment-detection.js.map +1 -0
  161. package/dist/config/feature-flags.d.ts +72 -0
  162. package/dist/config/feature-flags.d.ts.map +1 -0
  163. package/dist/config/feature-flags.js +384 -0
  164. package/dist/config/feature-flags.js.map +1 -0
  165. package/dist/config/index.d.ts +27 -0
  166. package/dist/config/index.d.ts.map +1 -0
  167. package/dist/config/index.js +43 -0
  168. package/dist/config/index.js.map +1 -0
  169. package/dist/config/required-optional.d.ts +71 -0
  170. package/dist/config/required-optional.d.ts.map +1 -0
  171. package/dist/config/required-optional.js +344 -0
  172. package/dist/config/required-optional.js.map +1 -0
  173. package/dist/data-access/connection-pooling.d.ts +63 -0
  174. package/dist/data-access/connection-pooling.d.ts.map +1 -0
  175. package/dist/data-access/connection-pooling.js +297 -0
  176. package/dist/data-access/connection-pooling.js.map +1 -0
  177. package/dist/data-access/dto-patterns.d.ts +64 -0
  178. package/dist/data-access/dto-patterns.d.ts.map +1 -0
  179. package/dist/data-access/dto-patterns.js +291 -0
  180. package/dist/data-access/dto-patterns.js.map +1 -0
  181. package/dist/data-access/index.d.ts +31 -0
  182. package/dist/data-access/index.d.ts.map +1 -0
  183. package/dist/data-access/index.js +49 -0
  184. package/dist/data-access/index.js.map +1 -0
  185. package/dist/data-access/n-plus-one.d.ts +60 -0
  186. package/dist/data-access/n-plus-one.d.ts.map +1 -0
  187. package/dist/data-access/n-plus-one.js +264 -0
  188. package/dist/data-access/n-plus-one.js.map +1 -0
  189. package/dist/data-access/query-patterns.d.ts +64 -0
  190. package/dist/data-access/query-patterns.d.ts.map +1 -0
  191. package/dist/data-access/query-patterns.js +314 -0
  192. package/dist/data-access/query-patterns.js.map +1 -0
  193. package/dist/data-access/repository-pattern.d.ts +62 -0
  194. package/dist/data-access/repository-pattern.d.ts.map +1 -0
  195. package/dist/data-access/repository-pattern.js +257 -0
  196. package/dist/data-access/repository-pattern.js.map +1 -0
  197. package/dist/data-access/transaction-patterns.d.ts +61 -0
  198. package/dist/data-access/transaction-patterns.d.ts.map +1 -0
  199. package/dist/data-access/transaction-patterns.js +277 -0
  200. package/dist/data-access/transaction-patterns.js.map +1 -0
  201. package/dist/data-access/validation-patterns.d.ts +62 -0
  202. package/dist/data-access/validation-patterns.d.ts.map +1 -0
  203. package/dist/data-access/validation-patterns.js +301 -0
  204. package/dist/data-access/validation-patterns.js.map +1 -0
  205. package/dist/documentation/deprecation.d.ts +62 -0
  206. package/dist/documentation/deprecation.d.ts.map +1 -0
  207. package/dist/documentation/deprecation.js +83 -0
  208. package/dist/documentation/deprecation.js.map +1 -0
  209. package/dist/documentation/example-code.d.ts +64 -0
  210. package/dist/documentation/example-code.d.ts.map +1 -0
  211. package/dist/documentation/example-code.js +79 -0
  212. package/dist/documentation/example-code.js.map +1 -0
  213. package/dist/documentation/index.d.ts +22 -0
  214. package/dist/documentation/index.d.ts.map +1 -0
  215. package/dist/documentation/index.js +19 -0
  216. package/dist/documentation/index.js.map +1 -0
  217. package/dist/documentation/jsdoc-patterns.d.ts +72 -0
  218. package/dist/documentation/jsdoc-patterns.d.ts.map +1 -0
  219. package/dist/documentation/jsdoc-patterns.js +92 -0
  220. package/dist/documentation/jsdoc-patterns.js.map +1 -0
  221. package/dist/documentation/readme-structure.d.ts +67 -0
  222. package/dist/documentation/readme-structure.d.ts.map +1 -0
  223. package/dist/documentation/readme-structure.js +76 -0
  224. package/dist/documentation/readme-structure.js.map +1 -0
  225. package/dist/documentation/todo-patterns.d.ts +67 -0
  226. package/dist/documentation/todo-patterns.d.ts.map +1 -0
  227. package/dist/documentation/todo-patterns.js +73 -0
  228. package/dist/documentation/todo-patterns.js.map +1 -0
  229. package/dist/errors/async-errors.d.ts +72 -0
  230. package/dist/errors/async-errors.d.ts.map +1 -0
  231. package/dist/errors/async-errors.js +214 -0
  232. package/dist/errors/async-errors.js.map +1 -0
  233. package/dist/errors/circuit-breaker.d.ts +53 -0
  234. package/dist/errors/circuit-breaker.d.ts.map +1 -0
  235. package/dist/errors/circuit-breaker.js +241 -0
  236. package/dist/errors/circuit-breaker.js.map +1 -0
  237. package/dist/errors/error-codes.d.ts +73 -0
  238. package/dist/errors/error-codes.d.ts.map +1 -0
  239. package/dist/errors/error-codes.js +211 -0
  240. package/dist/errors/error-codes.js.map +1 -0
  241. package/dist/errors/error-logging.d.ts +73 -0
  242. package/dist/errors/error-logging.d.ts.map +1 -0
  243. package/dist/errors/error-logging.js +256 -0
  244. package/dist/errors/error-logging.js.map +1 -0
  245. package/dist/errors/error-propagation.d.ts +73 -0
  246. package/dist/errors/error-propagation.d.ts.map +1 -0
  247. package/dist/errors/error-propagation.js +244 -0
  248. package/dist/errors/error-propagation.js.map +1 -0
  249. package/dist/errors/exception-hierarchy.d.ts +75 -0
  250. package/dist/errors/exception-hierarchy.d.ts.map +1 -0
  251. package/dist/errors/exception-hierarchy.js +259 -0
  252. package/dist/errors/exception-hierarchy.js.map +1 -0
  253. package/dist/errors/index.d.ts +31 -0
  254. package/dist/errors/index.d.ts.map +1 -0
  255. package/dist/errors/index.js +49 -0
  256. package/dist/errors/index.js.map +1 -0
  257. package/dist/errors/try-catch-placement.d.ts +73 -0
  258. package/dist/errors/try-catch-placement.d.ts.map +1 -0
  259. package/dist/errors/try-catch-placement.js +214 -0
  260. package/dist/errors/try-catch-placement.js.map +1 -0
  261. package/dist/index.d.ts +221 -0
  262. package/dist/index.d.ts.map +1 -0
  263. package/dist/index.js +245 -0
  264. package/dist/index.js.map +1 -0
  265. package/dist/logging/context-fields.d.ts +48 -0
  266. package/dist/logging/context-fields.d.ts.map +1 -0
  267. package/dist/logging/context-fields.js +160 -0
  268. package/dist/logging/context-fields.js.map +1 -0
  269. package/dist/logging/correlation-ids.d.ts +44 -0
  270. package/dist/logging/correlation-ids.d.ts.map +1 -0
  271. package/dist/logging/correlation-ids.js +144 -0
  272. package/dist/logging/correlation-ids.js.map +1 -0
  273. package/dist/logging/health-checks.d.ts +45 -0
  274. package/dist/logging/health-checks.d.ts.map +1 -0
  275. package/dist/logging/health-checks.js +165 -0
  276. package/dist/logging/health-checks.js.map +1 -0
  277. package/dist/logging/index.d.ts +31 -0
  278. package/dist/logging/index.d.ts.map +1 -0
  279. package/dist/logging/index.js +49 -0
  280. package/dist/logging/index.js.map +1 -0
  281. package/dist/logging/log-levels.d.ts +46 -0
  282. package/dist/logging/log-levels.d.ts.map +1 -0
  283. package/dist/logging/log-levels.js +178 -0
  284. package/dist/logging/log-levels.js.map +1 -0
  285. package/dist/logging/metric-naming.d.ts +46 -0
  286. package/dist/logging/metric-naming.d.ts.map +1 -0
  287. package/dist/logging/metric-naming.js +157 -0
  288. package/dist/logging/metric-naming.js.map +1 -0
  289. package/dist/logging/pii-redaction.d.ts +44 -0
  290. package/dist/logging/pii-redaction.d.ts.map +1 -0
  291. package/dist/logging/pii-redaction.js +166 -0
  292. package/dist/logging/pii-redaction.js.map +1 -0
  293. package/dist/logging/structured-format.d.ts +53 -0
  294. package/dist/logging/structured-format.d.ts.map +1 -0
  295. package/dist/logging/structured-format.js +235 -0
  296. package/dist/logging/structured-format.js.map +1 -0
  297. package/dist/performance/bundle-size.d.ts +79 -0
  298. package/dist/performance/bundle-size.d.ts.map +1 -0
  299. package/dist/performance/bundle-size.js +276 -0
  300. package/dist/performance/bundle-size.js.map +1 -0
  301. package/dist/performance/caching-patterns.d.ts +78 -0
  302. package/dist/performance/caching-patterns.d.ts.map +1 -0
  303. package/dist/performance/caching-patterns.js +257 -0
  304. package/dist/performance/caching-patterns.js.map +1 -0
  305. package/dist/performance/code-splitting.d.ts +86 -0
  306. package/dist/performance/code-splitting.d.ts.map +1 -0
  307. package/dist/performance/code-splitting.js +447 -0
  308. package/dist/performance/code-splitting.js.map +1 -0
  309. package/dist/performance/debounce-throttle.d.ts +75 -0
  310. package/dist/performance/debounce-throttle.d.ts.map +1 -0
  311. package/dist/performance/debounce-throttle.js +232 -0
  312. package/dist/performance/debounce-throttle.js.map +1 -0
  313. package/dist/performance/index.d.ts +28 -0
  314. package/dist/performance/index.d.ts.map +1 -0
  315. package/dist/performance/index.js +39 -0
  316. package/dist/performance/index.js.map +1 -0
  317. package/dist/performance/lazy-loading.d.ts +75 -0
  318. package/dist/performance/lazy-loading.d.ts.map +1 -0
  319. package/dist/performance/lazy-loading.js +233 -0
  320. package/dist/performance/lazy-loading.js.map +1 -0
  321. package/dist/performance/memoization.d.ts +75 -0
  322. package/dist/performance/memoization.d.ts.map +1 -0
  323. package/dist/performance/memoization.js +251 -0
  324. package/dist/performance/memoization.js.map +1 -0
  325. package/dist/registry/detector-registry.d.ts +266 -0
  326. package/dist/registry/detector-registry.d.ts.map +1 -0
  327. package/dist/registry/detector-registry.js +526 -0
  328. package/dist/registry/detector-registry.js.map +1 -0
  329. package/dist/registry/index.d.ts +10 -0
  330. package/dist/registry/index.d.ts.map +1 -0
  331. package/dist/registry/index.js +10 -0
  332. package/dist/registry/index.js.map +1 -0
  333. package/dist/registry/loader.d.ts +232 -0
  334. package/dist/registry/loader.d.ts.map +1 -0
  335. package/dist/registry/loader.js +419 -0
  336. package/dist/registry/loader.js.map +1 -0
  337. package/dist/registry/types.d.ts +111 -0
  338. package/dist/registry/types.d.ts.map +1 -0
  339. package/dist/registry/types.js +19 -0
  340. package/dist/registry/types.js.map +1 -0
  341. package/dist/security/csp-headers.d.ts +78 -0
  342. package/dist/security/csp-headers.d.ts.map +1 -0
  343. package/dist/security/csp-headers.js +401 -0
  344. package/dist/security/csp-headers.js.map +1 -0
  345. package/dist/security/csrf-protection.d.ts +72 -0
  346. package/dist/security/csrf-protection.d.ts.map +1 -0
  347. package/dist/security/csrf-protection.js +344 -0
  348. package/dist/security/csrf-protection.js.map +1 -0
  349. package/dist/security/index.d.ts +30 -0
  350. package/dist/security/index.d.ts.map +1 -0
  351. package/dist/security/index.js +48 -0
  352. package/dist/security/index.js.map +1 -0
  353. package/dist/security/input-sanitization.d.ts +74 -0
  354. package/dist/security/input-sanitization.d.ts.map +1 -0
  355. package/dist/security/input-sanitization.js +373 -0
  356. package/dist/security/input-sanitization.js.map +1 -0
  357. package/dist/security/rate-limiting.d.ts +81 -0
  358. package/dist/security/rate-limiting.d.ts.map +1 -0
  359. package/dist/security/rate-limiting.js +535 -0
  360. package/dist/security/rate-limiting.js.map +1 -0
  361. package/dist/security/secret-management.d.ts +83 -0
  362. package/dist/security/secret-management.d.ts.map +1 -0
  363. package/dist/security/secret-management.js +547 -0
  364. package/dist/security/secret-management.js.map +1 -0
  365. package/dist/security/sql-injection.d.ts +76 -0
  366. package/dist/security/sql-injection.d.ts.map +1 -0
  367. package/dist/security/sql-injection.js +383 -0
  368. package/dist/security/sql-injection.js.map +1 -0
  369. package/dist/security/xss-prevention.d.ts +80 -0
  370. package/dist/security/xss-prevention.d.ts.map +1 -0
  371. package/dist/security/xss-prevention.js +416 -0
  372. package/dist/security/xss-prevention.js.map +1 -0
  373. package/dist/structural/barrel-exports.d.ts +178 -0
  374. package/dist/structural/barrel-exports.d.ts.map +1 -0
  375. package/dist/structural/barrel-exports.js +553 -0
  376. package/dist/structural/barrel-exports.js.map +1 -0
  377. package/dist/structural/circular-deps.d.ts +140 -0
  378. package/dist/structural/circular-deps.d.ts.map +1 -0
  379. package/dist/structural/circular-deps.js +422 -0
  380. package/dist/structural/circular-deps.js.map +1 -0
  381. package/dist/structural/co-location.d.ts +202 -0
  382. package/dist/structural/co-location.d.ts.map +1 -0
  383. package/dist/structural/co-location.js +640 -0
  384. package/dist/structural/co-location.js.map +1 -0
  385. package/dist/structural/directory-structure.d.ts +151 -0
  386. package/dist/structural/directory-structure.d.ts.map +1 -0
  387. package/dist/structural/directory-structure.js +457 -0
  388. package/dist/structural/directory-structure.js.map +1 -0
  389. package/dist/structural/file-naming.d.ts +61 -0
  390. package/dist/structural/file-naming.d.ts.map +1 -0
  391. package/dist/structural/file-naming.js +231 -0
  392. package/dist/structural/file-naming.js.map +1 -0
  393. package/dist/structural/import-ordering.d.ts +212 -0
  394. package/dist/structural/import-ordering.d.ts.map +1 -0
  395. package/dist/structural/import-ordering.js +821 -0
  396. package/dist/structural/import-ordering.js.map +1 -0
  397. package/dist/structural/index.d.ts +23 -0
  398. package/dist/structural/index.d.ts.map +1 -0
  399. package/dist/structural/index.js +26 -0
  400. package/dist/structural/index.js.map +1 -0
  401. package/dist/structural/module-boundaries.d.ts +164 -0
  402. package/dist/structural/module-boundaries.d.ts.map +1 -0
  403. package/dist/structural/module-boundaries.js +616 -0
  404. package/dist/structural/module-boundaries.js.map +1 -0
  405. package/dist/structural/package-boundaries.d.ts +182 -0
  406. package/dist/structural/package-boundaries.d.ts.map +1 -0
  407. package/dist/structural/package-boundaries.js +602 -0
  408. package/dist/structural/package-boundaries.js.map +1 -0
  409. package/dist/styling/class-naming.d.ts +263 -0
  410. package/dist/styling/class-naming.d.ts.map +1 -0
  411. package/dist/styling/class-naming.js +892 -0
  412. package/dist/styling/class-naming.js.map +1 -0
  413. package/dist/styling/color-usage.d.ts +213 -0
  414. package/dist/styling/color-usage.d.ts.map +1 -0
  415. package/dist/styling/color-usage.js +732 -0
  416. package/dist/styling/color-usage.js.map +1 -0
  417. package/dist/styling/design-tokens.d.ts +212 -0
  418. package/dist/styling/design-tokens.d.ts.map +1 -0
  419. package/dist/styling/design-tokens.js +748 -0
  420. package/dist/styling/design-tokens.js.map +1 -0
  421. package/dist/styling/index.d.ts +16 -0
  422. package/dist/styling/index.d.ts.map +1 -0
  423. package/dist/styling/index.js +56 -0
  424. package/dist/styling/index.js.map +1 -0
  425. package/dist/styling/responsive.d.ts +304 -0
  426. package/dist/styling/responsive.d.ts.map +1 -0
  427. package/dist/styling/responsive.js +888 -0
  428. package/dist/styling/responsive.js.map +1 -0
  429. package/dist/styling/spacing-scale.d.ts +248 -0
  430. package/dist/styling/spacing-scale.d.ts.map +1 -0
  431. package/dist/styling/spacing-scale.js +865 -0
  432. package/dist/styling/spacing-scale.js.map +1 -0
  433. package/dist/styling/tailwind-patterns.d.ts +305 -0
  434. package/dist/styling/tailwind-patterns.d.ts.map +1 -0
  435. package/dist/styling/tailwind-patterns.js +1181 -0
  436. package/dist/styling/tailwind-patterns.js.map +1 -0
  437. package/dist/styling/typography.d.ts +281 -0
  438. package/dist/styling/typography.d.ts.map +1 -0
  439. package/dist/styling/typography.js +1004 -0
  440. package/dist/styling/typography.js.map +1 -0
  441. package/dist/styling/z-index-scale.d.ts +270 -0
  442. package/dist/styling/z-index-scale.d.ts.map +1 -0
  443. package/dist/styling/z-index-scale.js +714 -0
  444. package/dist/styling/z-index-scale.js.map +1 -0
  445. package/dist/testing/co-location.d.ts +42 -0
  446. package/dist/testing/co-location.d.ts.map +1 -0
  447. package/dist/testing/co-location.js +134 -0
  448. package/dist/testing/co-location.js.map +1 -0
  449. package/dist/testing/describe-naming.d.ts +47 -0
  450. package/dist/testing/describe-naming.d.ts.map +1 -0
  451. package/dist/testing/describe-naming.js +150 -0
  452. package/dist/testing/describe-naming.js.map +1 -0
  453. package/dist/testing/file-naming.d.ts +44 -0
  454. package/dist/testing/file-naming.d.ts.map +1 -0
  455. package/dist/testing/file-naming.js +131 -0
  456. package/dist/testing/file-naming.js.map +1 -0
  457. package/dist/testing/fixture-patterns.d.ts +52 -0
  458. package/dist/testing/fixture-patterns.d.ts.map +1 -0
  459. package/dist/testing/fixture-patterns.js +228 -0
  460. package/dist/testing/fixture-patterns.js.map +1 -0
  461. package/dist/testing/index.d.ts +31 -0
  462. package/dist/testing/index.d.ts.map +1 -0
  463. package/dist/testing/index.js +49 -0
  464. package/dist/testing/index.js.map +1 -0
  465. package/dist/testing/mock-patterns.d.ts +53 -0
  466. package/dist/testing/mock-patterns.d.ts.map +1 -0
  467. package/dist/testing/mock-patterns.js +264 -0
  468. package/dist/testing/mock-patterns.js.map +1 -0
  469. package/dist/testing/setup-teardown.d.ts +55 -0
  470. package/dist/testing/setup-teardown.d.ts.map +1 -0
  471. package/dist/testing/setup-teardown.js +262 -0
  472. package/dist/testing/setup-teardown.js.map +1 -0
  473. package/dist/testing/test-structure.d.ts +51 -0
  474. package/dist/testing/test-structure.d.ts.map +1 -0
  475. package/dist/testing/test-structure.js +225 -0
  476. package/dist/testing/test-structure.js.map +1 -0
  477. package/dist/types/any-usage.d.ts +99 -0
  478. package/dist/types/any-usage.d.ts.map +1 -0
  479. package/dist/types/any-usage.js +641 -0
  480. package/dist/types/any-usage.js.map +1 -0
  481. package/dist/types/file-location.d.ts +76 -0
  482. package/dist/types/file-location.d.ts.map +1 -0
  483. package/dist/types/file-location.js +395 -0
  484. package/dist/types/file-location.js.map +1 -0
  485. package/dist/types/generic-patterns.d.ts +97 -0
  486. package/dist/types/generic-patterns.d.ts.map +1 -0
  487. package/dist/types/generic-patterns.js +615 -0
  488. package/dist/types/generic-patterns.js.map +1 -0
  489. package/dist/types/index.d.ts +31 -0
  490. package/dist/types/index.d.ts.map +1 -0
  491. package/dist/types/index.js +43 -0
  492. package/dist/types/index.js.map +1 -0
  493. package/dist/types/interface-vs-type.d.ts +81 -0
  494. package/dist/types/interface-vs-type.d.ts.map +1 -0
  495. package/dist/types/interface-vs-type.js +440 -0
  496. package/dist/types/interface-vs-type.js.map +1 -0
  497. package/dist/types/naming-conventions.d.ts +84 -0
  498. package/dist/types/naming-conventions.d.ts.map +1 -0
  499. package/dist/types/naming-conventions.js +455 -0
  500. package/dist/types/naming-conventions.js.map +1 -0
  501. package/dist/types/type-assertions.d.ts +98 -0
  502. package/dist/types/type-assertions.d.ts.map +1 -0
  503. package/dist/types/type-assertions.js +639 -0
  504. package/dist/types/type-assertions.js.map +1 -0
  505. package/dist/types/utility-types.d.ts +110 -0
  506. package/dist/types/utility-types.d.ts.map +1 -0
  507. package/dist/types/utility-types.js +547 -0
  508. package/dist/types/utility-types.js.map +1 -0
  509. package/package.json +44 -0
@@ -0,0 +1,259 @@
1
+ /**
2
+ * Exception Hierarchy Detector - Exception taxonomy detection
3
+ *
4
+ * Detects exception hierarchy patterns including:
5
+ * - AppError base class inheritance
6
+ * - Custom error class definitions
7
+ * - Error class naming conventions
8
+ * - Error inheritance chains
9
+ *
10
+ * Flags violations:
11
+ * - Throwing raw Error instead of custom errors
12
+ * - Inconsistent error class naming
13
+ * - Missing error inheritance
14
+ *
15
+ * @requirements 12.1 - Exception hierarchy patterns
16
+ */
17
+ import { RegexDetector } from '../base/index.js';
18
+ // ============================================================================
19
+ // Constants
20
+ // ============================================================================
21
+ export const APP_ERROR_PATTERNS = [
22
+ // JavaScript/TypeScript
23
+ /class\s+AppError\s+extends\s+Error/gi,
24
+ /class\s+BaseError\s+extends\s+Error/gi,
25
+ /class\s+ApplicationError\s+extends\s+Error/gi,
26
+ // Python
27
+ /class\s+AppError\s*\(\s*Exception\s*\)/gi,
28
+ /class\s+BaseError\s*\(\s*Exception\s*\)/gi,
29
+ /class\s+ApplicationError\s*\(\s*Exception\s*\)/gi,
30
+ ];
31
+ export const CUSTOM_ERROR_PATTERNS = [
32
+ // JavaScript/TypeScript
33
+ /class\s+(\w+Error)\s+extends\s+(?:App|Base|Application)?Error/gi,
34
+ /class\s+(\w+Exception)\s+extends\s+(?:App|Base|Application)?Error/gi,
35
+ // Python
36
+ /class\s+(\w+Error)\s*\(\s*(?:App|Base|Application)?Error\s*\)/gi,
37
+ /class\s+(\w+Exception)\s*\(\s*(?:App|Base|Application)?Exception\s*\)/gi,
38
+ /class\s+(\w+Error)\s*\(\s*Exception\s*\)/gi,
39
+ ];
40
+ export const ERROR_INHERITANCE_PATTERNS = [
41
+ // JavaScript/TypeScript
42
+ /class\s+(\w+)\s+extends\s+(\w+Error)/gi,
43
+ /class\s+(\w+)\s+extends\s+(\w+Exception)/gi,
44
+ // Python
45
+ /class\s+(\w+)\s*\(\s*(\w+Error)\s*\)/gi,
46
+ /class\s+(\w+)\s*\(\s*(\w+Exception)\s*\)/gi,
47
+ ];
48
+ export const ERROR_FACTORY_PATTERNS = [
49
+ // JavaScript/TypeScript
50
+ /function\s+create\w*Error\s*\(/gi,
51
+ /const\s+create\w*Error\s*=/gi,
52
+ /export\s+(?:function|const)\s+\w*Error(?:Factory)?\s*[=(]/gi,
53
+ // Python
54
+ /def\s+create_\w*error\s*\(/gi,
55
+ /def\s+make_\w*error\s*\(/gi,
56
+ ];
57
+ export const RAW_ERROR_PATTERNS = [
58
+ // JavaScript/TypeScript
59
+ /throw\s+new\s+Error\s*\(/gi,
60
+ /throw\s+Error\s*\(/gi,
61
+ // Python
62
+ /raise\s+Exception\s*\(/gi,
63
+ /raise\s+RuntimeError\s*\(/gi,
64
+ /raise\s+ValueError\s*\(/gi,
65
+ ];
66
+ export const EXCLUDED_FILE_PATTERNS = [
67
+ /\.test\.[jt]sx?$/,
68
+ /\.spec\.[jt]sx?$/,
69
+ /node_modules\//,
70
+ /\.d\.ts$/,
71
+ ];
72
+ // ============================================================================
73
+ // Helper Functions
74
+ // ============================================================================
75
+ export function shouldExcludeFile(filePath) {
76
+ return EXCLUDED_FILE_PATTERNS.some(p => p.test(filePath));
77
+ }
78
+ function isInsideComment(content, index) {
79
+ const before = content.slice(0, index);
80
+ const lastNewline = before.lastIndexOf('\n');
81
+ const line = before.slice(lastNewline + 1);
82
+ if (line.includes('//') && index - lastNewline - 1 > line.indexOf('//'))
83
+ return true;
84
+ return before.lastIndexOf('/*') > before.lastIndexOf('*/');
85
+ }
86
+ function getPosition(content, index) {
87
+ const before = content.slice(0, index);
88
+ return { line: before.split('\n').length, column: index - before.lastIndexOf('\n') };
89
+ }
90
+ // ============================================================================
91
+ // Detection Functions
92
+ // ============================================================================
93
+ export function detectAppErrorClasses(content, file) {
94
+ const results = [];
95
+ const lines = content.split('\n');
96
+ for (const pattern of APP_ERROR_PATTERNS) {
97
+ const regex = new RegExp(pattern.source, pattern.flags);
98
+ let match;
99
+ while ((match = regex.exec(content)) !== null) {
100
+ if (isInsideComment(content, match.index))
101
+ continue;
102
+ const { line, column } = getPosition(content, match.index);
103
+ results.push({
104
+ type: 'app-error-class',
105
+ file, line, column,
106
+ matchedText: match[0],
107
+ className: match[0].match(/class\s+(\w+)/)?.[1],
108
+ context: lines[line - 1] || '',
109
+ });
110
+ }
111
+ }
112
+ return results;
113
+ }
114
+ export function detectCustomErrorClasses(content, file) {
115
+ const results = [];
116
+ const lines = content.split('\n');
117
+ for (const pattern of CUSTOM_ERROR_PATTERNS) {
118
+ const regex = new RegExp(pattern.source, pattern.flags);
119
+ let match;
120
+ while ((match = regex.exec(content)) !== null) {
121
+ if (isInsideComment(content, match.index))
122
+ continue;
123
+ const { line, column } = getPosition(content, match.index);
124
+ const classMatch = match[0].match(/class\s+(\w+)\s+extends\s+(\w+)/);
125
+ results.push({
126
+ type: 'custom-error-class',
127
+ file, line, column,
128
+ matchedText: match[0],
129
+ className: classMatch?.[1],
130
+ baseClass: classMatch?.[2],
131
+ context: lines[line - 1] || '',
132
+ });
133
+ }
134
+ }
135
+ return results;
136
+ }
137
+ export function detectErrorInheritance(content, file) {
138
+ const results = [];
139
+ const lines = content.split('\n');
140
+ for (const pattern of ERROR_INHERITANCE_PATTERNS) {
141
+ const regex = new RegExp(pattern.source, pattern.flags);
142
+ let match;
143
+ while ((match = regex.exec(content)) !== null) {
144
+ if (isInsideComment(content, match.index))
145
+ continue;
146
+ const { line, column } = getPosition(content, match.index);
147
+ const classMatch = match[0].match(/class\s+(\w+)\s+extends\s+(\w+)/);
148
+ results.push({
149
+ type: 'error-inheritance',
150
+ file, line, column,
151
+ matchedText: match[0],
152
+ className: classMatch?.[1],
153
+ baseClass: classMatch?.[2],
154
+ context: lines[line - 1] || '',
155
+ });
156
+ }
157
+ }
158
+ return results;
159
+ }
160
+ export function detectErrorFactories(content, file) {
161
+ const results = [];
162
+ const lines = content.split('\n');
163
+ for (const pattern of ERROR_FACTORY_PATTERNS) {
164
+ const regex = new RegExp(pattern.source, pattern.flags);
165
+ let match;
166
+ while ((match = regex.exec(content)) !== null) {
167
+ if (isInsideComment(content, match.index))
168
+ continue;
169
+ const { line, column } = getPosition(content, match.index);
170
+ results.push({
171
+ type: 'error-factory',
172
+ file, line, column,
173
+ matchedText: match[0],
174
+ context: lines[line - 1] || '',
175
+ });
176
+ }
177
+ }
178
+ return results;
179
+ }
180
+ export function detectRawErrorViolations(patterns, content, file) {
181
+ const violations = [];
182
+ const lines = content.split('\n');
183
+ const hasCustomErrors = patterns.length > 0;
184
+ // Only flag raw errors if the file has custom error classes
185
+ if (!hasCustomErrors)
186
+ return violations;
187
+ for (const pattern of RAW_ERROR_PATTERNS) {
188
+ const regex = new RegExp(pattern.source, pattern.flags);
189
+ let match;
190
+ while ((match = regex.exec(content)) !== null) {
191
+ if (isInsideComment(content, match.index))
192
+ continue;
193
+ const { line, column } = getPosition(content, match.index);
194
+ violations.push({
195
+ type: 'raw-error-throw',
196
+ file, line, column,
197
+ endLine: line,
198
+ endColumn: column + match[0].length,
199
+ value: match[0],
200
+ issue: 'Throwing raw Error instead of custom error class',
201
+ suggestedFix: 'Use a custom error class that extends AppError',
202
+ lineContent: lines[line - 1] || '',
203
+ });
204
+ }
205
+ }
206
+ return violations;
207
+ }
208
+ // ============================================================================
209
+ // Main Analysis Function
210
+ // ============================================================================
211
+ export function analyzeExceptionHierarchy(content, file) {
212
+ if (shouldExcludeFile(file)) {
213
+ return { patterns: [], violations: [], hasCustomErrors: false, hasAppError: false, errorClasses: [], confidence: 1.0 };
214
+ }
215
+ const appErrors = detectAppErrorClasses(content, file);
216
+ const customErrors = detectCustomErrorClasses(content, file);
217
+ const inheritance = detectErrorInheritance(content, file);
218
+ const factories = detectErrorFactories(content, file);
219
+ const allPatterns = [...appErrors, ...customErrors, ...inheritance, ...factories];
220
+ const violations = detectRawErrorViolations(allPatterns, content, file);
221
+ const errorClasses = allPatterns
222
+ .filter(p => p.className)
223
+ .map(p => p.className)
224
+ .filter((v, i, a) => a.indexOf(v) === i);
225
+ const confidence = allPatterns.length > 0 ? Math.max(0.5, 1 - violations.length * 0.1) : 1.0;
226
+ return {
227
+ patterns: allPatterns,
228
+ violations,
229
+ hasCustomErrors: customErrors.length > 0 || inheritance.length > 0,
230
+ hasAppError: appErrors.length > 0,
231
+ errorClasses,
232
+ confidence,
233
+ };
234
+ }
235
+ // ============================================================================
236
+ // Detector Class
237
+ // ============================================================================
238
+ export class ExceptionHierarchyDetector extends RegexDetector {
239
+ id = 'errors/exception-hierarchy';
240
+ name = 'Exception Hierarchy Detector';
241
+ description = 'Detects exception hierarchy and custom error patterns';
242
+ category = 'errors';
243
+ subcategory = 'hierarchy';
244
+ supportedLanguages = ['typescript', 'javascript', 'python'];
245
+ async detect(context) {
246
+ const { content, file } = context;
247
+ if (shouldExcludeFile(file))
248
+ return this.createEmptyResult();
249
+ const analysis = analyzeExceptionHierarchy(content, file);
250
+ return this.createResult([], [], analysis.confidence);
251
+ }
252
+ generateQuickFix() {
253
+ return null;
254
+ }
255
+ }
256
+ export function createExceptionHierarchyDetector() {
257
+ return new ExceptionHierarchyDetector();
258
+ }
259
+ //# sourceMappingURL=exception-hierarchy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exception-hierarchy.js","sourceRoot":"","sources":["../../src/errors/exception-hierarchy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Error detectors module exports
3
+ *
4
+ * Detects error handling patterns including:
5
+ * - Exception hierarchy patterns
6
+ * - Error code patterns
7
+ * - Try/catch placement patterns
8
+ * - Error propagation patterns
9
+ * - Async error handling patterns
10
+ * - Circuit breaker patterns
11
+ * - Error logging patterns
12
+ *
13
+ * @requirements 12.1-12.8 - Error handling patterns
14
+ */
15
+ export { type ExceptionPatternType, type ExceptionViolationType, type ExceptionPatternInfo, type ExceptionViolationInfo, type ExceptionAnalysis, APP_ERROR_PATTERNS, CUSTOM_ERROR_PATTERNS, ERROR_INHERITANCE_PATTERNS, ERROR_FACTORY_PATTERNS, RAW_ERROR_PATTERNS, shouldExcludeFile as shouldExcludeExceptionFile, detectAppErrorClasses, detectCustomErrorClasses, detectErrorInheritance, detectErrorFactories, detectRawErrorViolations, analyzeExceptionHierarchy, ExceptionHierarchyDetector, createExceptionHierarchyDetector, } from './exception-hierarchy.js';
16
+ export { type ErrorCodePatternType, type ErrorCodeViolationType, type ErrorCodePatternInfo, type ErrorCodeViolationInfo, type ErrorCodeAnalysis, ERROR_CODE_ENUM_PATTERNS, ERROR_CODE_CONST_PATTERNS, ERROR_CODE_USAGE_PATTERNS, ERROR_CODE_TYPE_PATTERNS, MAGIC_STRING_CODE_PATTERNS, shouldExcludeFile as shouldExcludeErrorCodeFile, detectErrorCodeEnums, detectErrorCodeConstants, detectErrorCodeUsage, detectMagicStringViolations, analyzeErrorCodes, ErrorCodesDetector, createErrorCodesDetector, } from './error-codes.js';
17
+ export { type TryCatchPatternType, type TryCatchViolationType, type TryCatchPatternInfo, type TryCatchViolationInfo, type TryCatchAnalysis, TRY_CATCH_PATTERNS, TRY_CATCH_FINALLY_PATTERNS, TYPED_CATCH_PATTERNS, EMPTY_CATCH_PATTERNS, shouldExcludeFile as shouldExcludeTryCatchFile, detectTryCatchBlocks, detectTryCatchFinally, detectTypedCatch, detectEmptyCatchViolations, analyzeTryCatchPlacement, TryCatchPlacementDetector, createTryCatchPlacementDetector, } from './try-catch-placement.js';
18
+ export { type PropagationPatternType, type PropagationViolationType, type PropagationPatternInfo, type PropagationViolationInfo, type PropagationAnalysis, RETHROW_PATTERNS, WRAP_RETHROW_PATTERNS, TRANSFORM_PATTERNS, CHAIN_PRESERVE_PATTERNS, LOST_CONTEXT_PATTERNS, shouldExcludeFile as shouldExcludePropagationFile, detectRethrowPatterns, detectWrapRethrowPatterns, detectTransformPatterns, detectChainPreservePatterns, detectLostContextViolations, analyzeErrorPropagation, ErrorPropagationDetector, createErrorPropagationDetector, } from './error-propagation.js';
19
+ export { type AsyncErrorPatternType, type AsyncErrorViolationType, type AsyncErrorPatternInfo, type AsyncErrorViolationInfo, type AsyncErrorAnalysis, ASYNC_TRY_CATCH_PATTERNS, PROMISE_CATCH_PATTERNS, PROMISE_FINALLY_PATTERNS, ERROR_BOUNDARY_PATTERNS, shouldExcludeFile as shouldExcludeAsyncErrorFile, detectAsyncTryCatch, detectPromiseCatch, detectPromiseFinally, detectErrorBoundaries, analyzeAsyncErrors, AsyncErrorsDetector, createAsyncErrorsDetector, } from './async-errors.js';
20
+ export { type CircuitBreakerPatternType, type CircuitBreakerPatternInfo, type CircuitBreakerAnalysis, CIRCUIT_BREAKER_CLASS_PATTERNS, CIRCUIT_BREAKER_LIB_PATTERNS, STATE_MANAGEMENT_PATTERNS, FAILURE_THRESHOLD_PATTERNS, RESET_TIMEOUT_PATTERNS, shouldExcludeFile as shouldExcludeCircuitBreakerFile, detectCircuitBreakerClasses, detectCircuitBreakerLibs, detectStateManagement, detectFailureThreshold, detectResetTimeout, analyzeCircuitBreaker, CircuitBreakerDetector, createCircuitBreakerDetector, } from './circuit-breaker.js';
21
+ export { type ErrorLoggingPatternType, type ErrorLoggingViolationType, type ErrorLoggingPatternInfo, type ErrorLoggingViolationInfo, type ErrorLoggingAnalysis, LOGGER_ERROR_PATTERNS, STRUCTURED_LOG_PATTERNS, CONTEXT_LOG_PATTERNS, STACK_TRACE_PATTERNS, CONSOLE_ERROR_PATTERNS, shouldExcludeFile as shouldExcludeErrorLoggingFile, detectLoggerError, detectStructuredLogging, detectContextLogging, detectStackTraceLogging, detectConsoleErrorViolations, analyzeErrorLogging, ErrorLoggingDetector, createErrorLoggingDetector, } from './error-logging.js';
22
+ export declare function createAllErrorDetectors(): {
23
+ exceptionHierarchy: import("./exception-hierarchy.js").ExceptionHierarchyDetector;
24
+ errorCodes: import("./error-codes.js").ErrorCodesDetector;
25
+ tryCatchPlacement: import("./try-catch-placement.js").TryCatchPlacementDetector;
26
+ errorPropagation: import("./error-propagation.js").ErrorPropagationDetector;
27
+ asyncErrors: import("./async-errors.js").AsyncErrorsDetector;
28
+ circuitBreaker: import("./circuit-breaker.js").CircuitBreakerDetector;
29
+ errorLogging: import("./error-logging.js").ErrorLoggingDetector;
30
+ };
31
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Error detectors module exports
3
+ *
4
+ * Detects error handling patterns including:
5
+ * - Exception hierarchy patterns
6
+ * - Error code patterns
7
+ * - Try/catch placement patterns
8
+ * - Error propagation patterns
9
+ * - Async error handling patterns
10
+ * - Circuit breaker patterns
11
+ * - Error logging patterns
12
+ *
13
+ * @requirements 12.1-12.8 - Error handling patterns
14
+ */
15
+ // Exception Hierarchy Detector
16
+ export { APP_ERROR_PATTERNS, CUSTOM_ERROR_PATTERNS, ERROR_INHERITANCE_PATTERNS, ERROR_FACTORY_PATTERNS, RAW_ERROR_PATTERNS, shouldExcludeFile as shouldExcludeExceptionFile, detectAppErrorClasses, detectCustomErrorClasses, detectErrorInheritance, detectErrorFactories, detectRawErrorViolations, analyzeExceptionHierarchy, ExceptionHierarchyDetector, createExceptionHierarchyDetector, } from './exception-hierarchy.js';
17
+ // Error Codes Detector
18
+ export { ERROR_CODE_ENUM_PATTERNS, ERROR_CODE_CONST_PATTERNS, ERROR_CODE_USAGE_PATTERNS, ERROR_CODE_TYPE_PATTERNS, MAGIC_STRING_CODE_PATTERNS, shouldExcludeFile as shouldExcludeErrorCodeFile, detectErrorCodeEnums, detectErrorCodeConstants, detectErrorCodeUsage, detectMagicStringViolations, analyzeErrorCodes, ErrorCodesDetector, createErrorCodesDetector, } from './error-codes.js';
19
+ // Try-Catch Placement Detector
20
+ export { TRY_CATCH_PATTERNS, TRY_CATCH_FINALLY_PATTERNS, TYPED_CATCH_PATTERNS, EMPTY_CATCH_PATTERNS, shouldExcludeFile as shouldExcludeTryCatchFile, detectTryCatchBlocks, detectTryCatchFinally, detectTypedCatch, detectEmptyCatchViolations, analyzeTryCatchPlacement, TryCatchPlacementDetector, createTryCatchPlacementDetector, } from './try-catch-placement.js';
21
+ // Error Propagation Detector
22
+ export { RETHROW_PATTERNS, WRAP_RETHROW_PATTERNS, TRANSFORM_PATTERNS, CHAIN_PRESERVE_PATTERNS, LOST_CONTEXT_PATTERNS, shouldExcludeFile as shouldExcludePropagationFile, detectRethrowPatterns, detectWrapRethrowPatterns, detectTransformPatterns, detectChainPreservePatterns, detectLostContextViolations, analyzeErrorPropagation, ErrorPropagationDetector, createErrorPropagationDetector, } from './error-propagation.js';
23
+ // Async Errors Detector
24
+ export { ASYNC_TRY_CATCH_PATTERNS, PROMISE_CATCH_PATTERNS, PROMISE_FINALLY_PATTERNS, ERROR_BOUNDARY_PATTERNS, shouldExcludeFile as shouldExcludeAsyncErrorFile, detectAsyncTryCatch, detectPromiseCatch, detectPromiseFinally, detectErrorBoundaries, analyzeAsyncErrors, AsyncErrorsDetector, createAsyncErrorsDetector, } from './async-errors.js';
25
+ // Circuit Breaker Detector
26
+ export { CIRCUIT_BREAKER_CLASS_PATTERNS, CIRCUIT_BREAKER_LIB_PATTERNS, STATE_MANAGEMENT_PATTERNS, FAILURE_THRESHOLD_PATTERNS, RESET_TIMEOUT_PATTERNS, shouldExcludeFile as shouldExcludeCircuitBreakerFile, detectCircuitBreakerClasses, detectCircuitBreakerLibs, detectStateManagement, detectFailureThreshold, detectResetTimeout, analyzeCircuitBreaker, CircuitBreakerDetector, createCircuitBreakerDetector, } from './circuit-breaker.js';
27
+ // Error Logging Detector
28
+ export { LOGGER_ERROR_PATTERNS, STRUCTURED_LOG_PATTERNS, CONTEXT_LOG_PATTERNS, STACK_TRACE_PATTERNS, CONSOLE_ERROR_PATTERNS, shouldExcludeFile as shouldExcludeErrorLoggingFile, detectLoggerError, detectStructuredLogging, detectContextLogging, detectStackTraceLogging, detectConsoleErrorViolations, analyzeErrorLogging, ErrorLoggingDetector, createErrorLoggingDetector, } from './error-logging.js';
29
+ // Import factory functions for createAllErrorDetectors
30
+ import { createExceptionHierarchyDetector } from './exception-hierarchy.js';
31
+ import { createErrorCodesDetector } from './error-codes.js';
32
+ import { createTryCatchPlacementDetector } from './try-catch-placement.js';
33
+ import { createErrorPropagationDetector } from './error-propagation.js';
34
+ import { createAsyncErrorsDetector } from './async-errors.js';
35
+ import { createCircuitBreakerDetector } from './circuit-breaker.js';
36
+ import { createErrorLoggingDetector } from './error-logging.js';
37
+ // Convenience factory for all error detectors
38
+ export function createAllErrorDetectors() {
39
+ return {
40
+ exceptionHierarchy: createExceptionHierarchyDetector(),
41
+ errorCodes: createErrorCodesDetector(),
42
+ tryCatchPlacement: createTryCatchPlacementDetector(),
43
+ errorPropagation: createErrorPropagationDetector(),
44
+ asyncErrors: createAsyncErrorsDetector(),
45
+ circuitBreaker: createCircuitBreakerDetector(),
46
+ errorLogging: createErrorLoggingDetector(),
47
+ };
48
+ }
49
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Try-Catch Placement Detector - Try/catch pattern detection
3
+ *
4
+ * Detects try/catch placement patterns including:
5
+ * - Try/catch at function boundaries
6
+ * - Nested try/catch blocks
7
+ * - Try/catch with specific error types
8
+ * - Finally block usage
9
+ *
10
+ * Flags violations:
11
+ * - Empty catch blocks
12
+ * - Catch-all without re-throw
13
+ * - Deeply nested try/catch
14
+ *
15
+ * @requirements 12.3 - Try/catch placement patterns
16
+ */
17
+ import type { Language } from 'driftdetect-core';
18
+ import { RegexDetector, type DetectionContext, type DetectionResult } from '../base/index.js';
19
+ export type TryCatchPatternType = 'try-catch-block' | 'try-catch-finally' | 'typed-catch' | 'boundary-catch';
20
+ export type TryCatchViolationType = 'empty-catch' | 'catch-all-no-rethrow' | 'deeply-nested';
21
+ export interface TryCatchPatternInfo {
22
+ type: TryCatchPatternType;
23
+ file: string;
24
+ line: number;
25
+ column: number;
26
+ matchedText: string;
27
+ hasFinally?: boolean;
28
+ errorType?: string;
29
+ context?: string;
30
+ }
31
+ export interface TryCatchViolationInfo {
32
+ type: TryCatchViolationType;
33
+ file: string;
34
+ line: number;
35
+ column: number;
36
+ endLine: number;
37
+ endColumn: number;
38
+ value: string;
39
+ issue: string;
40
+ suggestedFix?: string;
41
+ lineContent: string;
42
+ }
43
+ export interface TryCatchAnalysis {
44
+ patterns: TryCatchPatternInfo[];
45
+ violations: TryCatchViolationInfo[];
46
+ hasTryCatch: boolean;
47
+ hasFinally: boolean;
48
+ confidence: number;
49
+ }
50
+ export declare const TRY_CATCH_PATTERNS: readonly [RegExp, RegExp];
51
+ export declare const TRY_CATCH_FINALLY_PATTERNS: readonly [RegExp, RegExp];
52
+ export declare const TYPED_CATCH_PATTERNS: readonly [RegExp, RegExp, RegExp, RegExp, RegExp];
53
+ export declare const EMPTY_CATCH_PATTERNS: readonly [RegExp, RegExp, RegExp, RegExp];
54
+ export declare const CATCH_ALL_PATTERNS: readonly [RegExp, RegExp, RegExp];
55
+ export declare const EXCLUDED_FILE_PATTERNS: RegExp[];
56
+ export declare function shouldExcludeFile(filePath: string): boolean;
57
+ export declare function detectTryCatchBlocks(content: string, file: string): TryCatchPatternInfo[];
58
+ export declare function detectTryCatchFinally(content: string, file: string): TryCatchPatternInfo[];
59
+ export declare function detectTypedCatch(content: string, file: string): TryCatchPatternInfo[];
60
+ export declare function detectEmptyCatchViolations(content: string, file: string): TryCatchViolationInfo[];
61
+ export declare function analyzeTryCatchPlacement(content: string, file: string): TryCatchAnalysis;
62
+ export declare class TryCatchPlacementDetector extends RegexDetector {
63
+ readonly id = "errors/try-catch-placement";
64
+ readonly name = "Try-Catch Placement Detector";
65
+ readonly description = "Detects try/catch placement patterns";
66
+ readonly category = "errors";
67
+ readonly subcategory = "try-catch";
68
+ readonly supportedLanguages: Language[];
69
+ detect(context: DetectionContext): Promise<DetectionResult>;
70
+ generateQuickFix(): null;
71
+ }
72
+ export declare function createTryCatchPlacementDetector(): TryCatchPlacementDetector;
73
+ //# sourceMappingURL=try-catch-placement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"try-catch-placement.d.ts","sourceRoot":"","sources":["../../src/errors/try-catch-placement.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAM9F,MAAM,MAAM,mBAAmB,GAC3B,iBAAiB,GACjB,mBAAmB,GACnB,aAAa,GACb,gBAAgB,CAAC;AAErB,MAAM,MAAM,qBAAqB,GAC7B,aAAa,GACb,sBAAsB,GACtB,eAAe,CAAC;AAEpB,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,UAAU,EAAE,qBAAqB,EAAE,CAAC;IACpC,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAMD,eAAO,MAAM,kBAAkB,2BAKrB,CAAC;AAEX,eAAO,MAAM,0BAA0B,2BAK7B,CAAC;AAEX,eAAO,MAAM,oBAAoB,mDAQvB,CAAC;AAEX,eAAO,MAAM,oBAAoB,2CAOvB,CAAC;AAEX,eAAO,MAAM,kBAAkB,mCAMrB,CAAC;AAEX,eAAO,MAAM,sBAAsB,UAKlC,CAAC;AAMF,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE3D;AAmBD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAmBzF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAoB1F;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAmBrF;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAuBjG;AAMD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAqBxF;AAMD,qBAAa,yBAA0B,SAAQ,aAAa;IAC1D,QAAQ,CAAC,EAAE,gCAAgC;IAC3C,QAAQ,CAAC,IAAI,kCAAkC;IAC/C,QAAQ,CAAC,WAAW,0CAA0C;IAC9D,QAAQ,CAAC,QAAQ,YAAY;IAC7B,QAAQ,CAAC,WAAW,eAAe;IACnC,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,EAAE,CAA0C;IAE3E,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAQjE,gBAAgB,IAAI,IAAI;CAGzB;AAED,wBAAgB,+BAA+B,IAAI,yBAAyB,CAE3E"}