@empline/preflight 1.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 (1589) hide show
  1. package/README.md +540 -0
  2. package/dist/bin/approve.d.ts +24 -0
  3. package/dist/bin/approve.d.ts.map +1 -0
  4. package/dist/bin/approve.js +249 -0
  5. package/dist/bin/approve.js.map +1 -0
  6. package/dist/bin/audit.d.ts +64 -0
  7. package/dist/bin/audit.d.ts.map +1 -0
  8. package/dist/bin/audit.js +464 -0
  9. package/dist/bin/audit.js.map +1 -0
  10. package/dist/bin/install-hooks.d.ts +20 -0
  11. package/dist/bin/install-hooks.d.ts.map +1 -0
  12. package/dist/bin/install-hooks.js +204 -0
  13. package/dist/bin/install-hooks.js.map +1 -0
  14. package/dist/bin/preflight.d.ts +21 -0
  15. package/dist/bin/preflight.d.ts.map +1 -0
  16. package/dist/bin/preflight.js +218 -0
  17. package/dist/bin/preflight.js.map +1 -0
  18. package/dist/bin/preinstall.d.ts +15 -0
  19. package/dist/bin/preinstall.d.ts.map +1 -0
  20. package/dist/bin/preinstall.js +247 -0
  21. package/dist/bin/preinstall.js.map +1 -0
  22. package/dist/bin/review-drift.d.ts +17 -0
  23. package/dist/bin/review-drift.d.ts.map +1 -0
  24. package/dist/bin/review-drift.js +292 -0
  25. package/dist/bin/review-drift.js.map +1 -0
  26. package/dist/bin/review.d.ts +22 -0
  27. package/dist/bin/review.d.ts.map +1 -0
  28. package/dist/bin/review.js +179 -0
  29. package/dist/bin/review.js.map +1 -0
  30. package/dist/bin/submit-drift.d.ts +36 -0
  31. package/dist/bin/submit-drift.d.ts.map +1 -0
  32. package/dist/bin/submit-drift.js +534 -0
  33. package/dist/bin/submit-drift.js.map +1 -0
  34. package/dist/bin/submit.d.ts +23 -0
  35. package/dist/bin/submit.d.ts.map +1 -0
  36. package/dist/bin/submit.js +263 -0
  37. package/dist/bin/submit.js.map +1 -0
  38. package/dist/bin/watch.d.ts +27 -0
  39. package/dist/bin/watch.d.ts.map +1 -0
  40. package/dist/bin/watch.js +327 -0
  41. package/dist/bin/watch.js.map +1 -0
  42. package/dist/checks/ai/card-size-detection-validation.d.ts +23 -0
  43. package/dist/checks/ai/card-size-detection-validation.d.ts.map +1 -0
  44. package/dist/checks/ai/card-size-detection-validation.js +455 -0
  45. package/dist/checks/ai/card-size-detection-validation.js.map +1 -0
  46. package/dist/checks/ai/code-quality-ai.d.ts +17 -0
  47. package/dist/checks/ai/code-quality-ai.d.ts.map +1 -0
  48. package/dist/checks/ai/code-quality-ai.js +399 -0
  49. package/dist/checks/ai/code-quality-ai.js.map +1 -0
  50. package/dist/checks/ai/recognition-pipeline-validation.d.ts +30 -0
  51. package/dist/checks/ai/recognition-pipeline-validation.d.ts.map +1 -0
  52. package/dist/checks/ai/recognition-pipeline-validation.js +882 -0
  53. package/dist/checks/ai/recognition-pipeline-validation.js.map +1 -0
  54. package/dist/checks/ai/series-subset-hierarchy.d.ts +22 -0
  55. package/dist/checks/ai/series-subset-hierarchy.d.ts.map +1 -0
  56. package/dist/checks/ai/series-subset-hierarchy.js +374 -0
  57. package/dist/checks/ai/series-subset-hierarchy.js.map +1 -0
  58. package/dist/checks/api/api-completeness-check.d.ts +27 -0
  59. package/dist/checks/api/api-completeness-check.d.ts.map +1 -0
  60. package/dist/checks/api/api-completeness-check.js +326 -0
  61. package/dist/checks/api/api-completeness-check.js.map +1 -0
  62. package/dist/checks/api/api-contract-validation.d.ts +24 -0
  63. package/dist/checks/api/api-contract-validation.d.ts.map +1 -0
  64. package/dist/checks/api/api-contract-validation.js +219 -0
  65. package/dist/checks/api/api-contract-validation.js.map +1 -0
  66. package/dist/checks/api/api-error-abstraction.d.ts +29 -0
  67. package/dist/checks/api/api-error-abstraction.d.ts.map +1 -0
  68. package/dist/checks/api/api-error-abstraction.js +245 -0
  69. package/dist/checks/api/api-error-abstraction.js.map +1 -0
  70. package/dist/checks/api/pagination-validation.d.ts +21 -0
  71. package/dist/checks/api/pagination-validation.d.ts.map +1 -0
  72. package/dist/checks/api/pagination-validation.js +282 -0
  73. package/dist/checks/api/pagination-validation.js.map +1 -0
  74. package/dist/checks/api/response-consistency.d.ts +21 -0
  75. package/dist/checks/api/response-consistency.d.ts.map +1 -0
  76. package/dist/checks/api/response-consistency.js +246 -0
  77. package/dist/checks/api/response-consistency.js.map +1 -0
  78. package/dist/checks/api/response-schema-validation.d.ts +25 -0
  79. package/dist/checks/api/response-schema-validation.d.ts.map +1 -0
  80. package/dist/checks/api/response-schema-validation.js +294 -0
  81. package/dist/checks/api/response-schema-validation.js.map +1 -0
  82. package/dist/checks/api/response-time-budget.d.ts +18 -0
  83. package/dist/checks/api/response-time-budget.d.ts.map +1 -0
  84. package/dist/checks/api/response-time-budget.js +312 -0
  85. package/dist/checks/api/response-time-budget.js.map +1 -0
  86. package/dist/checks/api/variant-switching-integrity.d.ts +23 -0
  87. package/dist/checks/api/variant-switching-integrity.d.ts.map +1 -0
  88. package/dist/checks/api/variant-switching-integrity.js +312 -0
  89. package/dist/checks/api/variant-switching-integrity.js.map +1 -0
  90. package/dist/checks/architecture/admin-page-consistency.d.ts +28 -0
  91. package/dist/checks/architecture/admin-page-consistency.d.ts.map +1 -0
  92. package/dist/checks/architecture/admin-page-consistency.js +300 -0
  93. package/dist/checks/architecture/admin-page-consistency.js.map +1 -0
  94. package/dist/checks/architecture/backend-ui-coverage.d.ts +26 -0
  95. package/dist/checks/architecture/backend-ui-coverage.d.ts.map +1 -0
  96. package/dist/checks/architecture/backend-ui-coverage.js +565 -0
  97. package/dist/checks/architecture/backend-ui-coverage.js.map +1 -0
  98. package/dist/checks/architecture/component-architecture.d.ts +27 -0
  99. package/dist/checks/architecture/component-architecture.d.ts.map +1 -0
  100. package/dist/checks/architecture/component-architecture.js +517 -0
  101. package/dist/checks/architecture/component-architecture.js.map +1 -0
  102. package/dist/checks/architecture/component-consolidation-opportunities.d.ts +29 -0
  103. package/dist/checks/architecture/component-consolidation-opportunities.d.ts.map +1 -0
  104. package/dist/checks/architecture/component-consolidation-opportunities.js +344 -0
  105. package/dist/checks/architecture/component-consolidation-opportunities.js.map +1 -0
  106. package/dist/checks/architecture/orphaned-pages-detection.d.ts +35 -0
  107. package/dist/checks/architecture/orphaned-pages-detection.d.ts.map +1 -0
  108. package/dist/checks/architecture/orphaned-pages-detection.js +470 -0
  109. package/dist/checks/architecture/orphaned-pages-detection.js.map +1 -0
  110. package/dist/checks/architecture/primitive-component-enforcement.d.ts +26 -0
  111. package/dist/checks/architecture/primitive-component-enforcement.d.ts.map +1 -0
  112. package/dist/checks/architecture/primitive-component-enforcement.js +311 -0
  113. package/dist/checks/architecture/primitive-component-enforcement.js.map +1 -0
  114. package/dist/checks/architecture/shared-component-enforcement.d.ts +34 -0
  115. package/dist/checks/architecture/shared-component-enforcement.d.ts.map +1 -0
  116. package/dist/checks/architecture/shared-component-enforcement.js +725 -0
  117. package/dist/checks/architecture/shared-component-enforcement.js.map +1 -0
  118. package/dist/checks/async-cleanup-validation.d.ts +22 -0
  119. package/dist/checks/async-cleanup-validation.d.ts.map +1 -0
  120. package/dist/checks/async-cleanup-validation.js +193 -0
  121. package/dist/checks/async-cleanup-validation.js.map +1 -0
  122. package/dist/checks/auth/auth-page-consistency.d.ts +25 -0
  123. package/dist/checks/auth/auth-page-consistency.d.ts.map +1 -0
  124. package/dist/checks/auth/auth-page-consistency.js +582 -0
  125. package/dist/checks/auth/auth-page-consistency.js.map +1 -0
  126. package/dist/checks/auth/authenticated-redirect.d.ts +56 -0
  127. package/dist/checks/auth/authenticated-redirect.d.ts.map +1 -0
  128. package/dist/checks/auth/authenticated-redirect.js +392 -0
  129. package/dist/checks/auth/authenticated-redirect.js.map +1 -0
  130. package/dist/checks/auth/role-validation.d.ts +32 -0
  131. package/dist/checks/auth/role-validation.d.ts.map +1 -0
  132. package/dist/checks/auth/role-validation.js +256 -0
  133. package/dist/checks/auth/role-validation.js.map +1 -0
  134. package/dist/checks/auth/session-integrity-validation.d.ts +59 -0
  135. package/dist/checks/auth/session-integrity-validation.d.ts.map +1 -0
  136. package/dist/checks/auth/session-integrity-validation.js +405 -0
  137. package/dist/checks/auth/session-integrity-validation.js.map +1 -0
  138. package/dist/checks/auth/session-security.d.ts +69 -0
  139. package/dist/checks/auth/session-security.d.ts.map +1 -0
  140. package/dist/checks/auth/session-security.js +420 -0
  141. package/dist/checks/auth/session-security.js.map +1 -0
  142. package/dist/checks/auth/session-update-safety.d.ts +97 -0
  143. package/dist/checks/auth/session-update-safety.d.ts.map +1 -0
  144. package/dist/checks/auth/session-update-safety.js +700 -0
  145. package/dist/checks/auth/session-update-safety.js.map +1 -0
  146. package/dist/checks/auth/store-access-delegation.d.ts +35 -0
  147. package/dist/checks/auth/store-access-delegation.d.ts.map +1 -0
  148. package/dist/checks/auth/store-access-delegation.js +344 -0
  149. package/dist/checks/auth/store-access-delegation.js.map +1 -0
  150. package/dist/checks/business/business-invariants.d.ts +21 -0
  151. package/dist/checks/business/business-invariants.d.ts.map +1 -0
  152. package/dist/checks/business/business-invariants.js +177 -0
  153. package/dist/checks/business/business-invariants.js.map +1 -0
  154. package/dist/checks/business/currency-precision.d.ts +21 -0
  155. package/dist/checks/business/currency-precision.d.ts.map +1 -0
  156. package/dist/checks/business/currency-precision.js +342 -0
  157. package/dist/checks/business/currency-precision.js.map +1 -0
  158. package/dist/checks/business/idempotency-key-validation.d.ts +27 -0
  159. package/dist/checks/business/idempotency-key-validation.d.ts.map +1 -0
  160. package/dist/checks/business/idempotency-key-validation.js +275 -0
  161. package/dist/checks/business/idempotency-key-validation.js.map +1 -0
  162. package/dist/checks/business/image-metadata-injection.d.ts +20 -0
  163. package/dist/checks/business/image-metadata-injection.d.ts.map +1 -0
  164. package/dist/checks/business/image-metadata-injection.js +370 -0
  165. package/dist/checks/business/image-metadata-injection.js.map +1 -0
  166. package/dist/checks/business/image-processing-config-sync.d.ts +36 -0
  167. package/dist/checks/business/image-processing-config-sync.d.ts.map +1 -0
  168. package/dist/checks/business/image-processing-config-sync.js +442 -0
  169. package/dist/checks/business/image-processing-config-sync.js.map +1 -0
  170. package/dist/checks/business/image-upload-optimization.d.ts +21 -0
  171. package/dist/checks/business/image-upload-optimization.d.ts.map +1 -0
  172. package/dist/checks/business/image-upload-optimization.js +274 -0
  173. package/dist/checks/business/image-upload-optimization.js.map +1 -0
  174. package/dist/checks/business/inventory-atomicity-validation.d.ts +20 -0
  175. package/dist/checks/business/inventory-atomicity-validation.d.ts.map +1 -0
  176. package/dist/checks/business/inventory-atomicity-validation.js +263 -0
  177. package/dist/checks/business/inventory-atomicity-validation.js.map +1 -0
  178. package/dist/checks/business/listing-status-validation.d.ts +28 -0
  179. package/dist/checks/business/listing-status-validation.d.ts.map +1 -0
  180. package/dist/checks/business/listing-status-validation.js +274 -0
  181. package/dist/checks/business/listing-status-validation.js.map +1 -0
  182. package/dist/checks/business/order-state-machine-validation.d.ts +20 -0
  183. package/dist/checks/business/order-state-machine-validation.d.ts.map +1 -0
  184. package/dist/checks/business/order-state-machine-validation.js +294 -0
  185. package/dist/checks/business/order-state-machine-validation.js.map +1 -0
  186. package/dist/checks/business/price-calculation-validation.d.ts +20 -0
  187. package/dist/checks/business/price-calculation-validation.d.ts.map +1 -0
  188. package/dist/checks/business/price-calculation-validation.js +258 -0
  189. package/dist/checks/business/price-calculation-validation.js.map +1 -0
  190. package/dist/checks/business/price-display-validation.d.ts +22 -0
  191. package/dist/checks/business/price-display-validation.d.ts.map +1 -0
  192. package/dist/checks/business/price-display-validation.js +152 -0
  193. package/dist/checks/business/price-display-validation.js.map +1 -0
  194. package/dist/checks/business/resilient-recognition-validation.d.ts +28 -0
  195. package/dist/checks/business/resilient-recognition-validation.d.ts.map +1 -0
  196. package/dist/checks/business/resilient-recognition-validation.js +241 -0
  197. package/dist/checks/business/resilient-recognition-validation.js.map +1 -0
  198. package/dist/checks/business/store-approval-listing-filter.d.ts +21 -0
  199. package/dist/checks/business/store-approval-listing-filter.d.ts.map +1 -0
  200. package/dist/checks/business/store-approval-listing-filter.js +188 -0
  201. package/dist/checks/business/store-approval-listing-filter.js.map +1 -0
  202. package/dist/checks/business/timezone-handling.d.ts +28 -0
  203. package/dist/checks/business/timezone-handling.d.ts.map +1 -0
  204. package/dist/checks/business/timezone-handling.js +303 -0
  205. package/dist/checks/business/timezone-handling.js.map +1 -0
  206. package/dist/checks/card-processing/card-property-consistency.d.ts +22 -0
  207. package/dist/checks/card-processing/card-property-consistency.d.ts.map +1 -0
  208. package/dist/checks/card-processing/card-property-consistency.js +317 -0
  209. package/dist/checks/card-processing/card-property-consistency.js.map +1 -0
  210. package/dist/checks/card-processing/card-size-consistency.d.ts +21 -0
  211. package/dist/checks/card-processing/card-size-consistency.d.ts.map +1 -0
  212. package/dist/checks/card-processing/card-size-consistency.js +324 -0
  213. package/dist/checks/card-processing/card-size-consistency.js.map +1 -0
  214. package/dist/checks/card-processing/catalog-fk-safety-validation.d.ts +29 -0
  215. package/dist/checks/card-processing/catalog-fk-safety-validation.d.ts.map +1 -0
  216. package/dist/checks/card-processing/catalog-fk-safety-validation.js +280 -0
  217. package/dist/checks/card-processing/catalog-fk-safety-validation.js.map +1 -0
  218. package/dist/checks/card-processing/database-first-pattern.d.ts +26 -0
  219. package/dist/checks/card-processing/database-first-pattern.d.ts.map +1 -0
  220. package/dist/checks/card-processing/database-first-pattern.js +213 -0
  221. package/dist/checks/card-processing/database-first-pattern.js.map +1 -0
  222. package/dist/checks/card-processing/image-workflow-validation.d.ts +49 -0
  223. package/dist/checks/card-processing/image-workflow-validation.d.ts.map +1 -0
  224. package/dist/checks/card-processing/image-workflow-validation.js +511 -0
  225. package/dist/checks/card-processing/image-workflow-validation.js.map +1 -0
  226. package/dist/checks/card-processing/prisma-enum-sync.d.ts +21 -0
  227. package/dist/checks/card-processing/prisma-enum-sync.d.ts.map +1 -0
  228. package/dist/checks/card-processing/prisma-enum-sync.js +304 -0
  229. package/dist/checks/card-processing/prisma-enum-sync.js.map +1 -0
  230. package/dist/checks/card-processing/recognition-progress-validation.d.ts +29 -0
  231. package/dist/checks/card-processing/recognition-progress-validation.d.ts.map +1 -0
  232. package/dist/checks/card-processing/recognition-progress-validation.js +302 -0
  233. package/dist/checks/card-processing/recognition-progress-validation.js.map +1 -0
  234. package/dist/checks/card-processing/reftable-config-sync.d.ts +26 -0
  235. package/dist/checks/card-processing/reftable-config-sync.d.ts.map +1 -0
  236. package/dist/checks/card-processing/reftable-config-sync.js +171 -0
  237. package/dist/checks/card-processing/reftable-config-sync.js.map +1 -0
  238. package/dist/checks/card-processing/test-image-processing-pipeline.d.ts +24 -0
  239. package/dist/checks/card-processing/test-image-processing-pipeline.d.ts.map +1 -0
  240. package/dist/checks/card-processing/test-image-processing-pipeline.js +188 -0
  241. package/dist/checks/card-processing/test-image-processing-pipeline.js.map +1 -0
  242. package/dist/checks/code-hygiene/any-type-detection.d.ts +30 -0
  243. package/dist/checks/code-hygiene/any-type-detection.d.ts.map +1 -0
  244. package/dist/checks/code-hygiene/any-type-detection.js +214 -0
  245. package/dist/checks/code-hygiene/any-type-detection.js.map +1 -0
  246. package/dist/checks/code-hygiene/api-error-handling.d.ts +29 -0
  247. package/dist/checks/code-hygiene/api-error-handling.d.ts.map +1 -0
  248. package/dist/checks/code-hygiene/api-error-handling.js +285 -0
  249. package/dist/checks/code-hygiene/api-error-handling.js.map +1 -0
  250. package/dist/checks/code-hygiene/broken-template-literals.d.ts +25 -0
  251. package/dist/checks/code-hygiene/broken-template-literals.d.ts.map +1 -0
  252. package/dist/checks/code-hygiene/broken-template-literals.js +220 -0
  253. package/dist/checks/code-hygiene/broken-template-literals.js.map +1 -0
  254. package/dist/checks/code-hygiene/comment-hygiene.d.ts +27 -0
  255. package/dist/checks/code-hygiene/comment-hygiene.d.ts.map +1 -0
  256. package/dist/checks/code-hygiene/comment-hygiene.js +428 -0
  257. package/dist/checks/code-hygiene/comment-hygiene.js.map +1 -0
  258. package/dist/checks/code-hygiene/console-chars-sync.d.ts +27 -0
  259. package/dist/checks/code-hygiene/console-chars-sync.d.ts.map +1 -0
  260. package/dist/checks/code-hygiene/console-chars-sync.js +420 -0
  261. package/dist/checks/code-hygiene/console-chars-sync.js.map +1 -0
  262. package/dist/checks/code-hygiene/console-log-detection.d.ts +27 -0
  263. package/dist/checks/code-hygiene/console-log-detection.d.ts.map +1 -0
  264. package/dist/checks/code-hygiene/console-log-detection.js +202 -0
  265. package/dist/checks/code-hygiene/console-log-detection.js.map +1 -0
  266. package/dist/checks/code-hygiene/dead-code-detection.d.ts +28 -0
  267. package/dist/checks/code-hygiene/dead-code-detection.d.ts.map +1 -0
  268. package/dist/checks/code-hygiene/dead-code-detection.js +217 -0
  269. package/dist/checks/code-hygiene/dead-code-detection.js.map +1 -0
  270. package/dist/checks/code-hygiene/decorative-separators.d.ts +33 -0
  271. package/dist/checks/code-hygiene/decorative-separators.d.ts.map +1 -0
  272. package/dist/checks/code-hygiene/decorative-separators.js +259 -0
  273. package/dist/checks/code-hygiene/decorative-separators.js.map +1 -0
  274. package/dist/checks/code-hygiene/empty-catch-detection.d.ts +25 -0
  275. package/dist/checks/code-hygiene/empty-catch-detection.d.ts.map +1 -0
  276. package/dist/checks/code-hygiene/empty-catch-detection.js +190 -0
  277. package/dist/checks/code-hygiene/empty-catch-detection.js.map +1 -0
  278. package/dist/checks/code-hygiene/fix-hardcoded-emoji.d.ts +19 -0
  279. package/dist/checks/code-hygiene/fix-hardcoded-emoji.d.ts.map +1 -0
  280. package/dist/checks/code-hygiene/fix-hardcoded-emoji.js +335 -0
  281. package/dist/checks/code-hygiene/fix-hardcoded-emoji.js.map +1 -0
  282. package/dist/checks/code-hygiene/log-level-misuse.d.ts +26 -0
  283. package/dist/checks/code-hygiene/log-level-misuse.d.ts.map +1 -0
  284. package/dist/checks/code-hygiene/log-level-misuse.js +390 -0
  285. package/dist/checks/code-hygiene/log-level-misuse.js.map +1 -0
  286. package/dist/checks/code-hygiene/missing-logger-import.d.ts +17 -0
  287. package/dist/checks/code-hygiene/missing-logger-import.d.ts.map +1 -0
  288. package/dist/checks/code-hygiene/missing-logger-import.js +161 -0
  289. package/dist/checks/code-hygiene/missing-logger-import.js.map +1 -0
  290. package/dist/checks/code-hygiene/root-file-hygiene.d.ts +32 -0
  291. package/dist/checks/code-hygiene/root-file-hygiene.d.ts.map +1 -0
  292. package/dist/checks/code-hygiene/root-file-hygiene.js +288 -0
  293. package/dist/checks/code-hygiene/root-file-hygiene.js.map +1 -0
  294. package/dist/checks/code-hygiene/todo-tracking.d.ts +25 -0
  295. package/dist/checks/code-hygiene/todo-tracking.d.ts.map +1 -0
  296. package/dist/checks/code-hygiene/todo-tracking.js +213 -0
  297. package/dist/checks/code-hygiene/todo-tracking.js.map +1 -0
  298. package/dist/checks/code-hygiene/unicode-console-compatibility.d.ts +22 -0
  299. package/dist/checks/code-hygiene/unicode-console-compatibility.d.ts.map +1 -0
  300. package/dist/checks/code-hygiene/unicode-console-compatibility.js +240 -0
  301. package/dist/checks/code-hygiene/unicode-console-compatibility.js.map +1 -0
  302. package/dist/checks/code-quality/api-route-patterns.d.ts +30 -0
  303. package/dist/checks/code-quality/api-route-patterns.d.ts.map +1 -0
  304. package/dist/checks/code-quality/api-route-patterns.js +356 -0
  305. package/dist/checks/code-quality/api-route-patterns.js.map +1 -0
  306. package/dist/checks/code-quality/barrel-export-orphans.d.ts +21 -0
  307. package/dist/checks/code-quality/barrel-export-orphans.d.ts.map +1 -0
  308. package/dist/checks/code-quality/barrel-export-orphans.js +327 -0
  309. package/dist/checks/code-quality/barrel-export-orphans.js.map +1 -0
  310. package/dist/checks/code-quality/barrel-export-validation.d.ts +19 -0
  311. package/dist/checks/code-quality/barrel-export-validation.d.ts.map +1 -0
  312. package/dist/checks/code-quality/barrel-export-validation.js +315 -0
  313. package/dist/checks/code-quality/barrel-export-validation.js.map +1 -0
  314. package/dist/checks/code-quality/circular-dependency-detection.d.ts +20 -0
  315. package/dist/checks/code-quality/circular-dependency-detection.d.ts.map +1 -0
  316. package/dist/checks/code-quality/circular-dependency-detection.js +322 -0
  317. package/dist/checks/code-quality/circular-dependency-detection.js.map +1 -0
  318. package/dist/checks/code-quality/deprecated-patterns.d.ts +23 -0
  319. package/dist/checks/code-quality/deprecated-patterns.d.ts.map +1 -0
  320. package/dist/checks/code-quality/deprecated-patterns.js +366 -0
  321. package/dist/checks/code-quality/deprecated-patterns.js.map +1 -0
  322. package/dist/checks/code-quality/duplicate-implementation-detection.d.ts +21 -0
  323. package/dist/checks/code-quality/duplicate-implementation-detection.d.ts.map +1 -0
  324. package/dist/checks/code-quality/duplicate-implementation-detection.js +165 -0
  325. package/dist/checks/code-quality/duplicate-implementation-detection.js.map +1 -0
  326. package/dist/checks/code-quality/duplicate-logic-detection.d.ts +39 -0
  327. package/dist/checks/code-quality/duplicate-logic-detection.d.ts.map +1 -0
  328. package/dist/checks/code-quality/duplicate-logic-detection.js +269 -0
  329. package/dist/checks/code-quality/duplicate-logic-detection.js.map +1 -0
  330. package/dist/checks/code-quality/feature-flag-hygiene.d.ts +26 -0
  331. package/dist/checks/code-quality/feature-flag-hygiene.d.ts.map +1 -0
  332. package/dist/checks/code-quality/feature-flag-hygiene.js +357 -0
  333. package/dist/checks/code-quality/feature-flag-hygiene.js.map +1 -0
  334. package/dist/checks/code-quality/grading-config-usage.d.ts +30 -0
  335. package/dist/checks/code-quality/grading-config-usage.d.ts.map +1 -0
  336. package/dist/checks/code-quality/grading-config-usage.js +213 -0
  337. package/dist/checks/code-quality/grading-config-usage.js.map +1 -0
  338. package/dist/checks/code-quality/legacy-code-detection.d.ts +24 -0
  339. package/dist/checks/code-quality/legacy-code-detection.d.ts.map +1 -0
  340. package/dist/checks/code-quality/legacy-code-detection.js +287 -0
  341. package/dist/checks/code-quality/legacy-code-detection.js.map +1 -0
  342. package/dist/checks/code-quality/legacy-data-pattern-detection.d.ts +36 -0
  343. package/dist/checks/code-quality/legacy-data-pattern-detection.d.ts.map +1 -0
  344. package/dist/checks/code-quality/legacy-data-pattern-detection.js +460 -0
  345. package/dist/checks/code-quality/legacy-data-pattern-detection.js.map +1 -0
  346. package/dist/checks/code-quality/magic-number-detection.d.ts +30 -0
  347. package/dist/checks/code-quality/magic-number-detection.d.ts.map +1 -0
  348. package/dist/checks/code-quality/magic-number-detection.js +402 -0
  349. package/dist/checks/code-quality/magic-number-detection.js.map +1 -0
  350. package/dist/checks/code-quality/mock-function-detection.d.ts +33 -0
  351. package/dist/checks/code-quality/mock-function-detection.d.ts.map +1 -0
  352. package/dist/checks/code-quality/mock-function-detection.js +247 -0
  353. package/dist/checks/code-quality/mock-function-detection.js.map +1 -0
  354. package/dist/checks/code-quality/no-console-production.d.ts +27 -0
  355. package/dist/checks/code-quality/no-console-production.d.ts.map +1 -0
  356. package/dist/checks/code-quality/no-console-production.js +269 -0
  357. package/dist/checks/code-quality/no-console-production.js.map +1 -0
  358. package/dist/checks/code-quality/orphaned-module-detection.d.ts +20 -0
  359. package/dist/checks/code-quality/orphaned-module-detection.d.ts.map +1 -0
  360. package/dist/checks/code-quality/orphaned-module-detection.js +287 -0
  361. package/dist/checks/code-quality/orphaned-module-detection.js.map +1 -0
  362. package/dist/checks/code-quality/shared-utility-gaps.d.ts +28 -0
  363. package/dist/checks/code-quality/shared-utility-gaps.d.ts.map +1 -0
  364. package/dist/checks/code-quality/shared-utility-gaps.js +414 -0
  365. package/dist/checks/code-quality/shared-utility-gaps.js.map +1 -0
  366. package/dist/checks/code-quality/stub-script-detection.d.ts +33 -0
  367. package/dist/checks/code-quality/stub-script-detection.d.ts.map +1 -0
  368. package/dist/checks/code-quality/stub-script-detection.js +214 -0
  369. package/dist/checks/code-quality/stub-script-detection.js.map +1 -0
  370. package/dist/checks/code-quality/typescript-type-safety.d.ts +31 -0
  371. package/dist/checks/code-quality/typescript-type-safety.d.ts.map +1 -0
  372. package/dist/checks/code-quality/typescript-type-safety.js +228 -0
  373. package/dist/checks/code-quality/typescript-type-safety.js.map +1 -0
  374. package/dist/checks/code-quality/unused-lib-detection.d.ts +20 -0
  375. package/dist/checks/code-quality/unused-lib-detection.d.ts.map +1 -0
  376. package/dist/checks/code-quality/unused-lib-detection.js +262 -0
  377. package/dist/checks/code-quality/unused-lib-detection.js.map +1 -0
  378. package/dist/checks/component-imports.d.ts +15 -0
  379. package/dist/checks/component-imports.d.ts.map +1 -0
  380. package/dist/checks/component-imports.js +232 -0
  381. package/dist/checks/component-imports.js.map +1 -0
  382. package/dist/checks/config/configuration-drift-detection.d.ts +24 -0
  383. package/dist/checks/config/configuration-drift-detection.d.ts.map +1 -0
  384. package/dist/checks/config/configuration-drift-detection.js +286 -0
  385. package/dist/checks/config/configuration-drift-detection.js.map +1 -0
  386. package/dist/checks/config/env-completeness.d.ts +20 -0
  387. package/dist/checks/config/env-completeness.d.ts.map +1 -0
  388. package/dist/checks/config/env-completeness.js +193 -0
  389. package/dist/checks/config/env-completeness.js.map +1 -0
  390. package/dist/checks/coverage-gap-analysis.d.ts +21 -0
  391. package/dist/checks/coverage-gap-analysis.d.ts.map +1 -0
  392. package/dist/checks/coverage-gap-analysis.js +779 -0
  393. package/dist/checks/coverage-gap-analysis.js.map +1 -0
  394. package/dist/checks/css/dead-css-detection.d.ts +15 -0
  395. package/dist/checks/css/dead-css-detection.d.ts.map +1 -0
  396. package/dist/checks/css/dead-css-detection.js +225 -0
  397. package/dist/checks/css/dead-css-detection.js.map +1 -0
  398. package/dist/checks/css/sticky-header-validation.d.ts +19 -0
  399. package/dist/checks/css/sticky-header-validation.d.ts.map +1 -0
  400. package/dist/checks/css/sticky-header-validation.js +256 -0
  401. package/dist/checks/css/sticky-header-validation.js.map +1 -0
  402. package/dist/checks/data-integrity/cart-data-integrity.d.ts +21 -0
  403. package/dist/checks/data-integrity/cart-data-integrity.d.ts.map +1 -0
  404. package/dist/checks/data-integrity/cart-data-integrity.js +242 -0
  405. package/dist/checks/data-integrity/cart-data-integrity.js.map +1 -0
  406. package/dist/checks/data-integrity/entity-casing-validation.d.ts +24 -0
  407. package/dist/checks/data-integrity/entity-casing-validation.d.ts.map +1 -0
  408. package/dist/checks/data-integrity/entity-casing-validation.js +278 -0
  409. package/dist/checks/data-integrity/entity-casing-validation.js.map +1 -0
  410. package/dist/checks/data-integrity/enum-special-chars-validation.d.ts +27 -0
  411. package/dist/checks/data-integrity/enum-special-chars-validation.d.ts.map +1 -0
  412. package/dist/checks/data-integrity/enum-special-chars-validation.js +100 -0
  413. package/dist/checks/data-integrity/enum-special-chars-validation.js.map +1 -0
  414. package/dist/checks/data-integrity/notification-template-alignment.d.ts +23 -0
  415. package/dist/checks/data-integrity/notification-template-alignment.d.ts.map +1 -0
  416. package/dist/checks/data-integrity/notification-template-alignment.js +379 -0
  417. package/dist/checks/data-integrity/notification-template-alignment.js.map +1 -0
  418. package/dist/checks/data-integrity/product-data-flow-validation.d.ts +23 -0
  419. package/dist/checks/data-integrity/product-data-flow-validation.d.ts.map +1 -0
  420. package/dist/checks/data-integrity/product-data-flow-validation.js +576 -0
  421. package/dist/checks/data-integrity/product-data-flow-validation.js.map +1 -0
  422. package/dist/checks/data-integrity/r2-metadata-management.d.ts +18 -0
  423. package/dist/checks/data-integrity/r2-metadata-management.d.ts.map +1 -0
  424. package/dist/checks/data-integrity/r2-metadata-management.js +302 -0
  425. package/dist/checks/data-integrity/r2-metadata-management.js.map +1 -0
  426. package/dist/checks/data-integrity/store-data-integrity.d.ts +20 -0
  427. package/dist/checks/data-integrity/store-data-integrity.d.ts.map +1 -0
  428. package/dist/checks/data-integrity/store-data-integrity.js +405 -0
  429. package/dist/checks/data-integrity/store-data-integrity.js.map +1 -0
  430. package/dist/checks/data-integrity/unwired-functionality.d.ts +23 -0
  431. package/dist/checks/data-integrity/unwired-functionality.d.ts.map +1 -0
  432. package/dist/checks/data-integrity/unwired-functionality.js +556 -0
  433. package/dist/checks/data-integrity/unwired-functionality.js.map +1 -0
  434. package/dist/checks/database/block-db-push.d.ts +30 -0
  435. package/dist/checks/database/block-db-push.d.ts.map +1 -0
  436. package/dist/checks/database/block-db-push.js +144 -0
  437. package/dist/checks/database/block-db-push.js.map +1 -0
  438. package/dist/checks/database/grade-integrity.d.ts +13 -0
  439. package/dist/checks/database/grade-integrity.d.ts.map +1 -0
  440. package/dist/checks/database/grade-integrity.js +134 -0
  441. package/dist/checks/database/grade-integrity.js.map +1 -0
  442. package/dist/checks/database/migration-integrity.d.ts +27 -0
  443. package/dist/checks/database/migration-integrity.d.ts.map +1 -0
  444. package/dist/checks/database/migration-integrity.js +242 -0
  445. package/dist/checks/database/migration-integrity.js.map +1 -0
  446. package/dist/checks/database/migration-reversibility.d.ts +26 -0
  447. package/dist/checks/database/migration-reversibility.d.ts.map +1 -0
  448. package/dist/checks/database/migration-reversibility.js +280 -0
  449. package/dist/checks/database/migration-reversibility.js.map +1 -0
  450. package/dist/checks/database/migration-safety.d.ts +27 -0
  451. package/dist/checks/database/migration-safety.d.ts.map +1 -0
  452. package/dist/checks/database/migration-safety.js +243 -0
  453. package/dist/checks/database/migration-safety.js.map +1 -0
  454. package/dist/checks/database/prisma-client-db-sync.d.ts +25 -0
  455. package/dist/checks/database/prisma-client-db-sync.d.ts.map +1 -0
  456. package/dist/checks/database/prisma-client-db-sync.js +229 -0
  457. package/dist/checks/database/prisma-client-db-sync.js.map +1 -0
  458. package/dist/checks/database/prisma-drift-prevention.d.ts +30 -0
  459. package/dist/checks/database/prisma-drift-prevention.d.ts.map +1 -0
  460. package/dist/checks/database/prisma-drift-prevention.js +617 -0
  461. package/dist/checks/database/prisma-drift-prevention.js.map +1 -0
  462. package/dist/checks/database/prisma-overfetch-detection.d.ts +27 -0
  463. package/dist/checks/database/prisma-overfetch-detection.d.ts.map +1 -0
  464. package/dist/checks/database/prisma-overfetch-detection.js +669 -0
  465. package/dist/checks/database/prisma-overfetch-detection.js.map +1 -0
  466. package/dist/checks/database/prisma-precommit-guard.d.ts +26 -0
  467. package/dist/checks/database/prisma-precommit-guard.d.ts.map +1 -0
  468. package/dist/checks/database/prisma-precommit-guard.js +194 -0
  469. package/dist/checks/database/prisma-precommit-guard.js.map +1 -0
  470. package/dist/checks/database/prisma-schema-syntax.d.ts +18 -0
  471. package/dist/checks/database/prisma-schema-syntax.d.ts.map +1 -0
  472. package/dist/checks/database/prisma-schema-syntax.js +64 -0
  473. package/dist/checks/database/prisma-schema-syntax.js.map +1 -0
  474. package/dist/checks/database/prod-db-guardrail.d.ts +21 -0
  475. package/dist/checks/database/prod-db-guardrail.d.ts.map +1 -0
  476. package/dist/checks/database/prod-db-guardrail.js +190 -0
  477. package/dist/checks/database/prod-db-guardrail.js.map +1 -0
  478. package/dist/checks/database/schema-best-practices.d.ts +25 -0
  479. package/dist/checks/database/schema-best-practices.d.ts.map +1 -0
  480. package/dist/checks/database/schema-best-practices.js +396 -0
  481. package/dist/checks/database/schema-best-practices.js.map +1 -0
  482. package/dist/checks/database/schema-migration-column-sync.d.ts +34 -0
  483. package/dist/checks/database/schema-migration-column-sync.d.ts.map +1 -0
  484. package/dist/checks/database/schema-migration-column-sync.js +574 -0
  485. package/dist/checks/database/schema-migration-column-sync.js.map +1 -0
  486. package/dist/checks/database/seed-coverage-validation.d.ts +30 -0
  487. package/dist/checks/database/seed-coverage-validation.d.ts.map +1 -0
  488. package/dist/checks/database/seed-coverage-validation.js +598 -0
  489. package/dist/checks/database/seed-coverage-validation.js.map +1 -0
  490. package/dist/checks/database/soft-delete-consistency.d.ts +24 -0
  491. package/dist/checks/database/soft-delete-consistency.d.ts.map +1 -0
  492. package/dist/checks/database/soft-delete-consistency.js +273 -0
  493. package/dist/checks/database/soft-delete-consistency.js.map +1 -0
  494. package/dist/checks/database/tcg-seed-validation.d.ts +30 -0
  495. package/dist/checks/database/tcg-seed-validation.d.ts.map +1 -0
  496. package/dist/checks/database/tcg-seed-validation.js +284 -0
  497. package/dist/checks/database/tcg-seed-validation.js.map +1 -0
  498. package/dist/checks/database/transaction-integrity.d.ts +25 -0
  499. package/dist/checks/database/transaction-integrity.d.ts.map +1 -0
  500. package/dist/checks/database/transaction-integrity.js +275 -0
  501. package/dist/checks/database/transaction-integrity.js.map +1 -0
  502. package/dist/checks/database/unused-schema-detection.d.ts +29 -0
  503. package/dist/checks/database/unused-schema-detection.d.ts.map +1 -0
  504. package/dist/checks/database/unused-schema-detection.js +627 -0
  505. package/dist/checks/database/unused-schema-detection.js.map +1 -0
  506. package/dist/checks/dependencies/deprecated-packages.d.ts +17 -0
  507. package/dist/checks/dependencies/deprecated-packages.d.ts.map +1 -0
  508. package/dist/checks/dependencies/deprecated-packages.js +220 -0
  509. package/dist/checks/dependencies/deprecated-packages.js.map +1 -0
  510. package/dist/checks/dependencies/weekly-stable-updates.d.ts +27 -0
  511. package/dist/checks/dependencies/weekly-stable-updates.d.ts.map +1 -0
  512. package/dist/checks/dependencies/weekly-stable-updates.js +490 -0
  513. package/dist/checks/dependencies/weekly-stable-updates.js.map +1 -0
  514. package/dist/checks/deployment/esm-import-extensions.d.ts +24 -0
  515. package/dist/checks/deployment/esm-import-extensions.d.ts.map +1 -0
  516. package/dist/checks/deployment/esm-import-extensions.js +186 -0
  517. package/dist/checks/deployment/esm-import-extensions.js.map +1 -0
  518. package/dist/checks/deployment/pre-production-checklist-quick.d.ts +16 -0
  519. package/dist/checks/deployment/pre-production-checklist-quick.d.ts.map +1 -0
  520. package/dist/checks/deployment/pre-production-checklist-quick.js +146 -0
  521. package/dist/checks/deployment/pre-production-checklist-quick.js.map +1 -0
  522. package/dist/checks/deployment/pre-production-checklist.d.ts +19 -0
  523. package/dist/checks/deployment/pre-production-checklist.d.ts.map +1 -0
  524. package/dist/checks/deployment/pre-production-checklist.js +225 -0
  525. package/dist/checks/deployment/pre-production-checklist.js.map +1 -0
  526. package/dist/checks/deployment/production-config.d.ts +36 -0
  527. package/dist/checks/deployment/production-config.d.ts.map +1 -0
  528. package/dist/checks/deployment/production-config.js +424 -0
  529. package/dist/checks/deployment/production-config.js.map +1 -0
  530. package/dist/checks/deployment/production-env-validation.d.ts +19 -0
  531. package/dist/checks/deployment/production-env-validation.d.ts.map +1 -0
  532. package/dist/checks/deployment/production-env-validation.js +168 -0
  533. package/dist/checks/deployment/production-env-validation.js.map +1 -0
  534. package/dist/checks/deployment/rollback-compatibility.d.ts +28 -0
  535. package/dist/checks/deployment/rollback-compatibility.d.ts.map +1 -0
  536. package/dist/checks/deployment/rollback-compatibility.js +330 -0
  537. package/dist/checks/deployment/rollback-compatibility.js.map +1 -0
  538. package/dist/checks/deprecated-api-usage.d.ts +86 -0
  539. package/dist/checks/deprecated-api-usage.d.ts.map +1 -0
  540. package/dist/checks/deprecated-api-usage.js +382 -0
  541. package/dist/checks/deprecated-api-usage.js.map +1 -0
  542. package/dist/checks/drift-prevention/api-contract-consistency.d.ts +18 -0
  543. package/dist/checks/drift-prevention/api-contract-consistency.d.ts.map +1 -0
  544. package/dist/checks/drift-prevention/api-contract-consistency.js +279 -0
  545. package/dist/checks/drift-prevention/api-contract-consistency.js.map +1 -0
  546. package/dist/checks/drift-prevention/breaking-change-detection.d.ts +29 -0
  547. package/dist/checks/drift-prevention/breaking-change-detection.d.ts.map +1 -0
  548. package/dist/checks/drift-prevention/breaking-change-detection.js +367 -0
  549. package/dist/checks/drift-prevention/breaking-change-detection.js.map +1 -0
  550. package/dist/checks/drift-prevention/component-prop-consistency.d.ts +18 -0
  551. package/dist/checks/drift-prevention/component-prop-consistency.d.ts.map +1 -0
  552. package/dist/checks/drift-prevention/component-prop-consistency.js +289 -0
  553. package/dist/checks/drift-prevention/component-prop-consistency.js.map +1 -0
  554. package/dist/checks/drift-prevention/database-query-patterns.d.ts +19 -0
  555. package/dist/checks/drift-prevention/database-query-patterns.d.ts.map +1 -0
  556. package/dist/checks/drift-prevention/database-query-patterns.js +340 -0
  557. package/dist/checks/drift-prevention/database-query-patterns.js.map +1 -0
  558. package/dist/checks/drift-prevention/design-system-consistency.d.ts +18 -0
  559. package/dist/checks/drift-prevention/design-system-consistency.d.ts.map +1 -0
  560. package/dist/checks/drift-prevention/design-system-consistency.js +419 -0
  561. package/dist/checks/drift-prevention/design-system-consistency.js.map +1 -0
  562. package/dist/checks/drift-prevention/empty-state-consistency.d.ts +17 -0
  563. package/dist/checks/drift-prevention/empty-state-consistency.d.ts.map +1 -0
  564. package/dist/checks/drift-prevention/empty-state-consistency.js +257 -0
  565. package/dist/checks/drift-prevention/empty-state-consistency.js.map +1 -0
  566. package/dist/checks/drift-prevention/performance-regression-detection.d.ts +18 -0
  567. package/dist/checks/drift-prevention/performance-regression-detection.d.ts.map +1 -0
  568. package/dist/checks/drift-prevention/performance-regression-detection.js +444 -0
  569. package/dist/checks/drift-prevention/performance-regression-detection.js.map +1 -0
  570. package/dist/checks/drift-prevention/size-convention-consistency.d.ts +40 -0
  571. package/dist/checks/drift-prevention/size-convention-consistency.d.ts.map +1 -0
  572. package/dist/checks/drift-prevention/size-convention-consistency.js +221 -0
  573. package/dist/checks/drift-prevention/size-convention-consistency.js.map +1 -0
  574. package/dist/checks/drift-prevention/state-management-patterns.d.ts +18 -0
  575. package/dist/checks/drift-prevention/state-management-patterns.d.ts.map +1 -0
  576. package/dist/checks/drift-prevention/state-management-patterns.js +240 -0
  577. package/dist/checks/drift-prevention/state-management-patterns.js.map +1 -0
  578. package/dist/checks/e2e/e2e-action-outcome-validator.d.ts +22 -0
  579. package/dist/checks/e2e/e2e-action-outcome-validator.d.ts.map +1 -0
  580. package/dist/checks/e2e/e2e-action-outcome-validator.js +295 -0
  581. package/dist/checks/e2e/e2e-action-outcome-validator.js.map +1 -0
  582. package/dist/checks/e2e/e2e-interaction-coverage-scan.d.ts +22 -0
  583. package/dist/checks/e2e/e2e-interaction-coverage-scan.d.ts.map +1 -0
  584. package/dist/checks/e2e/e2e-interaction-coverage-scan.js +1665 -0
  585. package/dist/checks/e2e/e2e-interaction-coverage-scan.js.map +1 -0
  586. package/dist/checks/e2e/e2e-interaction-regression.d.ts +20 -0
  587. package/dist/checks/e2e/e2e-interaction-regression.d.ts.map +1 -0
  588. package/dist/checks/e2e/e2e-interaction-regression.js +1042 -0
  589. package/dist/checks/e2e/e2e-interaction-regression.js.map +1 -0
  590. package/dist/checks/e2e/e2e-outcome-validation.d.ts +34 -0
  591. package/dist/checks/e2e/e2e-outcome-validation.d.ts.map +1 -0
  592. package/dist/checks/e2e/e2e-outcome-validation.js +613 -0
  593. package/dist/checks/e2e/e2e-outcome-validation.js.map +1 -0
  594. package/dist/checks/e2e/e2e-performance-baseline.d.ts +14 -0
  595. package/dist/checks/e2e/e2e-performance-baseline.d.ts.map +1 -0
  596. package/dist/checks/e2e/e2e-performance-baseline.js +289 -0
  597. package/dist/checks/e2e/e2e-performance-baseline.js.map +1 -0
  598. package/dist/checks/e2e/e2e-performance-patterns.d.ts +19 -0
  599. package/dist/checks/e2e/e2e-performance-patterns.d.ts.map +1 -0
  600. package/dist/checks/e2e/e2e-performance-patterns.js +464 -0
  601. package/dist/checks/e2e/e2e-performance-patterns.js.map +1 -0
  602. package/dist/checks/e2e/e2e-performance-regression.d.ts +18 -0
  603. package/dist/checks/e2e/e2e-performance-regression.d.ts.map +1 -0
  604. package/dist/checks/e2e/e2e-performance-regression.js +230 -0
  605. package/dist/checks/e2e/e2e-performance-regression.js.map +1 -0
  606. package/dist/checks/e2e/e2e-resource-monitoring.d.ts +17 -0
  607. package/dist/checks/e2e/e2e-resource-monitoring.d.ts.map +1 -0
  608. package/dist/checks/e2e/e2e-resource-monitoring.js +368 -0
  609. package/dist/checks/e2e/e2e-resource-monitoring.js.map +1 -0
  610. package/dist/checks/e2e/e2e-test-redundancy-scan.d.ts +28 -0
  611. package/dist/checks/e2e/e2e-test-redundancy-scan.d.ts.map +1 -0
  612. package/dist/checks/e2e/e2e-test-redundancy-scan.js +480 -0
  613. package/dist/checks/e2e/e2e-test-redundancy-scan.js.map +1 -0
  614. package/dist/checks/e2e/playwright-config-validator.d.ts +26 -0
  615. package/dist/checks/e2e/playwright-config-validator.d.ts.map +1 -0
  616. package/dist/checks/e2e/playwright-config-validator.js +561 -0
  617. package/dist/checks/e2e/playwright-config-validator.js.map +1 -0
  618. package/dist/checks/environment/env-duplicates.d.ts +17 -0
  619. package/dist/checks/environment/env-duplicates.d.ts.map +1 -0
  620. package/dist/checks/environment/env-duplicates.js +169 -0
  621. package/dist/checks/environment/env-duplicates.js.map +1 -0
  622. package/dist/checks/event-listener-cleanup.d.ts +18 -0
  623. package/dist/checks/event-listener-cleanup.d.ts.map +1 -0
  624. package/dist/checks/event-listener-cleanup.js +189 -0
  625. package/dist/checks/event-listener-cleanup.js.map +1 -0
  626. package/dist/checks/file-naming-conventions.d.ts +21 -0
  627. package/dist/checks/file-naming-conventions.d.ts.map +1 -0
  628. package/dist/checks/file-naming-conventions.js +1258 -0
  629. package/dist/checks/file-naming-conventions.js.map +1 -0
  630. package/dist/checks/framework/framework-compatibility.d.ts +36 -0
  631. package/dist/checks/framework/framework-compatibility.d.ts.map +1 -0
  632. package/dist/checks/framework/framework-compatibility.js +173 -0
  633. package/dist/checks/framework/framework-compatibility.js.map +1 -0
  634. package/dist/checks/framework/turbopack-enforcement.d.ts +23 -0
  635. package/dist/checks/framework/turbopack-enforcement.d.ts.map +1 -0
  636. package/dist/checks/framework/turbopack-enforcement.js +174 -0
  637. package/dist/checks/framework/turbopack-enforcement.js.map +1 -0
  638. package/dist/checks/governance/check-ui-uniformity.d.ts +19 -0
  639. package/dist/checks/governance/check-ui-uniformity.d.ts.map +1 -0
  640. package/dist/checks/governance/check-ui-uniformity.js +126 -0
  641. package/dist/checks/governance/check-ui-uniformity.js.map +1 -0
  642. package/dist/checks/governance/codeowners-coverage.d.ts +27 -0
  643. package/dist/checks/governance/codeowners-coverage.d.ts.map +1 -0
  644. package/dist/checks/governance/codeowners-coverage.js +293 -0
  645. package/dist/checks/governance/codeowners-coverage.js.map +1 -0
  646. package/dist/checks/governance/naming-conventions.d.ts +7 -0
  647. package/dist/checks/governance/naming-conventions.d.ts.map +1 -0
  648. package/dist/checks/governance/naming-conventions.js +115 -0
  649. package/dist/checks/governance/naming-conventions.js.map +1 -0
  650. package/dist/checks/governance/seller-store-naming-consistency.d.ts +34 -0
  651. package/dist/checks/governance/seller-store-naming-consistency.d.ts.map +1 -0
  652. package/dist/checks/governance/seller-store-naming-consistency.js +248 -0
  653. package/dist/checks/governance/seller-store-naming-consistency.js.map +1 -0
  654. package/dist/checks/governance/store-seller-route-names.d.ts +19 -0
  655. package/dist/checks/governance/store-seller-route-names.d.ts.map +1 -0
  656. package/dist/checks/governance/store-seller-route-names.js +177 -0
  657. package/dist/checks/governance/store-seller-route-names.js.map +1 -0
  658. package/dist/checks/grading-config-usage.d.ts +23 -0
  659. package/dist/checks/grading-config-usage.d.ts.map +1 -0
  660. package/dist/checks/grading-config-usage.js +197 -0
  661. package/dist/checks/grading-config-usage.js.map +1 -0
  662. package/dist/checks/help-center-features-validation.d.ts +21 -0
  663. package/dist/checks/help-center-features-validation.d.ts.map +1 -0
  664. package/dist/checks/help-center-features-validation.js +529 -0
  665. package/dist/checks/help-center-features-validation.js.map +1 -0
  666. package/dist/checks/help-center-validation.d.ts +21 -0
  667. package/dist/checks/help-center-validation.d.ts.map +1 -0
  668. package/dist/checks/help-center-validation.js +325 -0
  669. package/dist/checks/help-center-validation.js.map +1 -0
  670. package/dist/checks/image/card-edge-protection.d.ts +22 -0
  671. package/dist/checks/image/card-edge-protection.d.ts.map +1 -0
  672. package/dist/checks/image/card-edge-protection.js +236 -0
  673. package/dist/checks/image/card-edge-protection.js.map +1 -0
  674. package/dist/checks/image/card-orientation-validation.d.ts +35 -0
  675. package/dist/checks/image/card-orientation-validation.d.ts.map +1 -0
  676. package/dist/checks/image/card-orientation-validation.js +522 -0
  677. package/dist/checks/image/card-orientation-validation.js.map +1 -0
  678. package/dist/checks/image/image-processing-config-sync.d.ts +33 -0
  679. package/dist/checks/image/image-processing-config-sync.d.ts.map +1 -0
  680. package/dist/checks/image/image-processing-config-sync.js +284 -0
  681. package/dist/checks/image/image-processing-config-sync.js.map +1 -0
  682. package/dist/checks/integrations/integration-feature-implementation.d.ts +28 -0
  683. package/dist/checks/integrations/integration-feature-implementation.d.ts.map +1 -0
  684. package/dist/checks/integrations/integration-feature-implementation.js +516 -0
  685. package/dist/checks/integrations/integration-feature-implementation.js.map +1 -0
  686. package/dist/checks/integrations/integration-field-mapping.d.ts +25 -0
  687. package/dist/checks/integrations/integration-field-mapping.d.ts.map +1 -0
  688. package/dist/checks/integrations/integration-field-mapping.js +383 -0
  689. package/dist/checks/integrations/integration-field-mapping.js.map +1 -0
  690. package/dist/checks/integrations/integration-status-display.d.ts +24 -0
  691. package/dist/checks/integrations/integration-status-display.d.ts.map +1 -0
  692. package/dist/checks/integrations/integration-status-display.js +945 -0
  693. package/dist/checks/integrations/integration-status-display.js.map +1 -0
  694. package/dist/checks/integrations/integrations-consolidated.d.ts +83 -0
  695. package/dist/checks/integrations/integrations-consolidated.d.ts.map +1 -0
  696. package/dist/checks/integrations/integrations-consolidated.js +912 -0
  697. package/dist/checks/integrations/integrations-consolidated.js.map +1 -0
  698. package/dist/checks/integrations/platform-feed-integrity.d.ts +76 -0
  699. package/dist/checks/integrations/platform-feed-integrity.d.ts.map +1 -0
  700. package/dist/checks/integrations/platform-feed-integrity.js +490 -0
  701. package/dist/checks/integrations/platform-feed-integrity.js.map +1 -0
  702. package/dist/checks/integrations/woocommerce-template-keys.d.ts +58 -0
  703. package/dist/checks/integrations/woocommerce-template-keys.d.ts.map +1 -0
  704. package/dist/checks/integrations/woocommerce-template-keys.js +270 -0
  705. package/dist/checks/integrations/woocommerce-template-keys.js.map +1 -0
  706. package/dist/checks/integrations/woocommerce-template-validation.d.ts +27 -0
  707. package/dist/checks/integrations/woocommerce-template-validation.d.ts.map +1 -0
  708. package/dist/checks/integrations/woocommerce-template-validation.js +428 -0
  709. package/dist/checks/integrations/woocommerce-template-validation.js.map +1 -0
  710. package/dist/checks/master-preflight.d.ts +57 -0
  711. package/dist/checks/master-preflight.d.ts.map +1 -0
  712. package/dist/checks/master-preflight.js +257 -0
  713. package/dist/checks/master-preflight.js.map +1 -0
  714. package/dist/checks/nextjs/dynamic-route-exports.d.ts +29 -0
  715. package/dist/checks/nextjs/dynamic-route-exports.d.ts.map +1 -0
  716. package/dist/checks/nextjs/dynamic-route-exports.js +204 -0
  717. package/dist/checks/nextjs/dynamic-route-exports.js.map +1 -0
  718. package/dist/checks/nextjs/essential-files-validation.d.ts +24 -0
  719. package/dist/checks/nextjs/essential-files-validation.d.ts.map +1 -0
  720. package/dist/checks/nextjs/essential-files-validation.js +361 -0
  721. package/dist/checks/nextjs/essential-files-validation.js.map +1 -0
  722. package/dist/checks/nextjs/ignore-build-errors.d.ts +16 -0
  723. package/dist/checks/nextjs/ignore-build-errors.d.ts.map +1 -0
  724. package/dist/checks/nextjs/ignore-build-errors.js +126 -0
  725. package/dist/checks/nextjs/ignore-build-errors.js.map +1 -0
  726. package/dist/checks/nextjs/metadata-api-placement.d.ts +30 -0
  727. package/dist/checks/nextjs/metadata-api-placement.d.ts.map +1 -0
  728. package/dist/checks/nextjs/metadata-api-placement.js +277 -0
  729. package/dist/checks/nextjs/metadata-api-placement.js.map +1 -0
  730. package/dist/checks/nextjs/nextjs-image-validation.d.ts +52 -0
  731. package/dist/checks/nextjs/nextjs-image-validation.d.ts.map +1 -0
  732. package/dist/checks/nextjs/nextjs-image-validation.js +255 -0
  733. package/dist/checks/nextjs/nextjs-image-validation.js.map +1 -0
  734. package/dist/checks/nextjs/nextjs16-compatibility.d.ts +40 -0
  735. package/dist/checks/nextjs/nextjs16-compatibility.d.ts.map +1 -0
  736. package/dist/checks/nextjs/nextjs16-compatibility.js +1210 -0
  737. package/dist/checks/nextjs/nextjs16-compatibility.js.map +1 -0
  738. package/dist/checks/nextjs/static-generation-check.d.ts +26 -0
  739. package/dist/checks/nextjs/static-generation-check.d.ts.map +1 -0
  740. package/dist/checks/nextjs/static-generation-check.js +181 -0
  741. package/dist/checks/nextjs/static-generation-check.js.map +1 -0
  742. package/dist/checks/observability/centralized-logging-validation.d.ts +22 -0
  743. package/dist/checks/observability/centralized-logging-validation.d.ts.map +1 -0
  744. package/dist/checks/observability/centralized-logging-validation.js +285 -0
  745. package/dist/checks/observability/centralized-logging-validation.js.map +1 -0
  746. package/dist/checks/order-number-consistency.d.ts +27 -0
  747. package/dist/checks/order-number-consistency.d.ts.map +1 -0
  748. package/dist/checks/order-number-consistency.js +294 -0
  749. package/dist/checks/order-number-consistency.js.map +1 -0
  750. package/dist/checks/organization/agent-steering-validation.d.ts +16 -0
  751. package/dist/checks/organization/agent-steering-validation.d.ts.map +1 -0
  752. package/dist/checks/organization/agent-steering-validation.js +186 -0
  753. package/dist/checks/organization/agent-steering-validation.js.map +1 -0
  754. package/dist/checks/organization/api-route-consolidation.d.ts +24 -0
  755. package/dist/checks/organization/api-route-consolidation.d.ts.map +1 -0
  756. package/dist/checks/organization/api-route-consolidation.js +370 -0
  757. package/dist/checks/organization/api-route-consolidation.js.map +1 -0
  758. package/dist/checks/organization/api-route-naming-validation.d.ts +24 -0
  759. package/dist/checks/organization/api-route-naming-validation.d.ts.map +1 -0
  760. package/dist/checks/organization/api-route-naming-validation.js +497 -0
  761. package/dist/checks/organization/api-route-naming-validation.js.map +1 -0
  762. package/dist/checks/organization/file-organization-validation.d.ts +19 -0
  763. package/dist/checks/organization/file-organization-validation.d.ts.map +1 -0
  764. package/dist/checks/organization/file-organization-validation.js +568 -0
  765. package/dist/checks/organization/file-organization-validation.js.map +1 -0
  766. package/dist/checks/organization/npm-script-bloat-prevention.d.ts +41 -0
  767. package/dist/checks/organization/npm-script-bloat-prevention.d.ts.map +1 -0
  768. package/dist/checks/organization/npm-script-bloat-prevention.js +417 -0
  769. package/dist/checks/organization/npm-script-bloat-prevention.js.map +1 -0
  770. package/dist/checks/organization/preflight-env-check.d.ts +13 -0
  771. package/dist/checks/organization/preflight-env-check.d.ts.map +1 -0
  772. package/dist/checks/organization/preflight-env-check.js +163 -0
  773. package/dist/checks/organization/preflight-env-check.js.map +1 -0
  774. package/dist/checks/organization/preflight-progress-consistency.d.ts +30 -0
  775. package/dist/checks/organization/preflight-progress-consistency.d.ts.map +1 -0
  776. package/dist/checks/organization/preflight-progress-consistency.js +230 -0
  777. package/dist/checks/organization/preflight-progress-consistency.js.map +1 -0
  778. package/dist/checks/organization/preflight-system-validation.d.ts +19 -0
  779. package/dist/checks/organization/preflight-system-validation.d.ts.map +1 -0
  780. package/dist/checks/organization/preflight-system-validation.js +487 -0
  781. package/dist/checks/organization/preflight-system-validation.js.map +1 -0
  782. package/dist/checks/organization/preflight-typescript-validation.d.ts +15 -0
  783. package/dist/checks/organization/preflight-typescript-validation.d.ts.map +1 -0
  784. package/dist/checks/organization/preflight-typescript-validation.js +57 -0
  785. package/dist/checks/organization/preflight-typescript-validation.js.map +1 -0
  786. package/dist/checks/organization/route-structure-validation.d.ts +19 -0
  787. package/dist/checks/organization/route-structure-validation.d.ts.map +1 -0
  788. package/dist/checks/organization/route-structure-validation.js +241 -0
  789. package/dist/checks/organization/route-structure-validation.js.map +1 -0
  790. package/dist/checks/organization/steering-bloat-prevention.d.ts +88 -0
  791. package/dist/checks/organization/steering-bloat-prevention.d.ts.map +1 -0
  792. package/dist/checks/organization/steering-bloat-prevention.js +1199 -0
  793. package/dist/checks/organization/steering-bloat-prevention.js.map +1 -0
  794. package/dist/checks/performance/bundle-optimization-drift.d.ts +19 -0
  795. package/dist/checks/performance/bundle-optimization-drift.d.ts.map +1 -0
  796. package/dist/checks/performance/bundle-optimization-drift.js +263 -0
  797. package/dist/checks/performance/bundle-optimization-drift.js.map +1 -0
  798. package/dist/checks/performance/bundle-size-regression.d.ts +15 -0
  799. package/dist/checks/performance/bundle-size-regression.d.ts.map +1 -0
  800. package/dist/checks/performance/bundle-size-regression.js +239 -0
  801. package/dist/checks/performance/bundle-size-regression.js.map +1 -0
  802. package/dist/checks/performance/core-web-vitals.d.ts +39 -0
  803. package/dist/checks/performance/core-web-vitals.d.ts.map +1 -0
  804. package/dist/checks/performance/core-web-vitals.js +445 -0
  805. package/dist/checks/performance/core-web-vitals.js.map +1 -0
  806. package/dist/checks/performance/mobile-performance-budget.d.ts +30 -0
  807. package/dist/checks/performance/mobile-performance-budget.d.ts.map +1 -0
  808. package/dist/checks/performance/mobile-performance-budget.js +401 -0
  809. package/dist/checks/performance/mobile-performance-budget.js.map +1 -0
  810. package/dist/checks/performance/runtime-regression.d.ts +17 -0
  811. package/dist/checks/performance/runtime-regression.d.ts.map +1 -0
  812. package/dist/checks/performance/runtime-regression.js +425 -0
  813. package/dist/checks/performance/runtime-regression.js.map +1 -0
  814. package/dist/checks/performance/unused-preload-detection.d.ts +18 -0
  815. package/dist/checks/performance/unused-preload-detection.d.ts.map +1 -0
  816. package/dist/checks/performance/unused-preload-detection.js +191 -0
  817. package/dist/checks/performance/unused-preload-detection.js.map +1 -0
  818. package/dist/checks/prisma/prisma7-compatibility.d.ts +30 -0
  819. package/dist/checks/prisma/prisma7-compatibility.d.ts.map +1 -0
  820. package/dist/checks/prisma/prisma7-compatibility.js +443 -0
  821. package/dist/checks/prisma/prisma7-compatibility.js.map +1 -0
  822. package/dist/checks/quality/component-size.d.ts +14 -0
  823. package/dist/checks/quality/component-size.d.ts.map +1 -0
  824. package/dist/checks/quality/component-size.js +107 -0
  825. package/dist/checks/quality/component-size.js.map +1 -0
  826. package/dist/checks/quality/critical-type-imports.d.ts +24 -0
  827. package/dist/checks/quality/critical-type-imports.d.ts.map +1 -0
  828. package/dist/checks/quality/critical-type-imports.js +635 -0
  829. package/dist/checks/quality/critical-type-imports.js.map +1 -0
  830. package/dist/checks/quality/development.d.ts +14 -0
  831. package/dist/checks/quality/development.d.ts.map +1 -0
  832. package/dist/checks/quality/development.js +101 -0
  833. package/dist/checks/quality/development.js.map +1 -0
  834. package/dist/checks/quality/docs-code-sync.d.ts +28 -0
  835. package/dist/checks/quality/docs-code-sync.d.ts.map +1 -0
  836. package/dist/checks/quality/docs-code-sync.js +369 -0
  837. package/dist/checks/quality/docs-code-sync.js.map +1 -0
  838. package/dist/checks/quality/duplicate-jsx-attributes.d.ts +24 -0
  839. package/dist/checks/quality/duplicate-jsx-attributes.d.ts.map +1 -0
  840. package/dist/checks/quality/duplicate-jsx-attributes.js +202 -0
  841. package/dist/checks/quality/duplicate-jsx-attributes.js.map +1 -0
  842. package/dist/checks/quality/file-size.d.ts +14 -0
  843. package/dist/checks/quality/file-size.d.ts.map +1 -0
  844. package/dist/checks/quality/file-size.js +100 -0
  845. package/dist/checks/quality/file-size.js.map +1 -0
  846. package/dist/checks/quality/file-validation.d.ts +14 -0
  847. package/dist/checks/quality/file-validation.d.ts.map +1 -0
  848. package/dist/checks/quality/file-validation.js +106 -0
  849. package/dist/checks/quality/file-validation.js.map +1 -0
  850. package/dist/checks/quality/i18n-hardcoded-strings.d.ts +29 -0
  851. package/dist/checks/quality/i18n-hardcoded-strings.d.ts.map +1 -0
  852. package/dist/checks/quality/i18n-hardcoded-strings.js +339 -0
  853. package/dist/checks/quality/i18n-hardcoded-strings.js.map +1 -0
  854. package/dist/checks/quality/lint-preflight.d.ts +70 -0
  855. package/dist/checks/quality/lint-preflight.d.ts.map +1 -0
  856. package/dist/checks/quality/lint-preflight.js +479 -0
  857. package/dist/checks/quality/lint-preflight.js.map +1 -0
  858. package/dist/checks/quality/react-namespace-import.d.ts +28 -0
  859. package/dist/checks/quality/react-namespace-import.d.ts.map +1 -0
  860. package/dist/checks/quality/react-namespace-import.js +205 -0
  861. package/dist/checks/quality/react-namespace-import.js.map +1 -0
  862. package/dist/checks/quality/strict-lint.d.ts +14 -0
  863. package/dist/checks/quality/strict-lint.d.ts.map +1 -0
  864. package/dist/checks/quality/strict-lint.js +44 -0
  865. package/dist/checks/quality/strict-lint.js.map +1 -0
  866. package/dist/checks/quality/syntax.d.ts +14 -0
  867. package/dist/checks/quality/syntax.d.ts.map +1 -0
  868. package/dist/checks/quality/syntax.js +97 -0
  869. package/dist/checks/quality/syntax.js.map +1 -0
  870. package/dist/checks/quality/unused-imports.d.ts +15 -0
  871. package/dist/checks/quality/unused-imports.d.ts.map +1 -0
  872. package/dist/checks/quality/unused-imports.js +175 -0
  873. package/dist/checks/quality/unused-imports.js.map +1 -0
  874. package/dist/checks/react/component-best-practices.d.ts +24 -0
  875. package/dist/checks/react/component-best-practices.d.ts.map +1 -0
  876. package/dist/checks/react/component-best-practices.js +274 -0
  877. package/dist/checks/react/component-best-practices.js.map +1 -0
  878. package/dist/checks/react/component-callback-consolidation.d.ts +29 -0
  879. package/dist/checks/react/component-callback-consolidation.d.ts.map +1 -0
  880. package/dist/checks/react/component-callback-consolidation.js +246 -0
  881. package/dist/checks/react/component-callback-consolidation.js.map +1 -0
  882. package/dist/checks/react/data-fetching-patterns.d.ts +29 -0
  883. package/dist/checks/react/data-fetching-patterns.d.ts.map +1 -0
  884. package/dist/checks/react/data-fetching-patterns.js +234 -0
  885. package/dist/checks/react/data-fetching-patterns.js.map +1 -0
  886. package/dist/checks/react/dialog-state-consolidation.d.ts +29 -0
  887. package/dist/checks/react/dialog-state-consolidation.d.ts.map +1 -0
  888. package/dist/checks/react/dialog-state-consolidation.js +227 -0
  889. package/dist/checks/react/dialog-state-consolidation.js.map +1 -0
  890. package/dist/checks/react/error-boundary-consistency.d.ts +29 -0
  891. package/dist/checks/react/error-boundary-consistency.d.ts.map +1 -0
  892. package/dist/checks/react/error-boundary-consistency.js +220 -0
  893. package/dist/checks/react/error-boundary-consistency.js.map +1 -0
  894. package/dist/checks/react/error-boundary-coverage.d.ts +28 -0
  895. package/dist/checks/react/error-boundary-coverage.d.ts.map +1 -0
  896. package/dist/checks/react/error-boundary-coverage.js +304 -0
  897. package/dist/checks/react/error-boundary-coverage.js.map +1 -0
  898. package/dist/checks/react/loading-empty-state-composition.d.ts +29 -0
  899. package/dist/checks/react/loading-empty-state-composition.d.ts.map +1 -0
  900. package/dist/checks/react/loading-empty-state-composition.js +255 -0
  901. package/dist/checks/react/loading-empty-state-composition.js.map +1 -0
  902. package/dist/checks/react/memory-leak-detection.d.ts +23 -0
  903. package/dist/checks/react/memory-leak-detection.d.ts.map +1 -0
  904. package/dist/checks/react/memory-leak-detection.js +274 -0
  905. package/dist/checks/react/memory-leak-detection.js.map +1 -0
  906. package/dist/checks/react/memory-leak-patterns.d.ts +29 -0
  907. package/dist/checks/react/memory-leak-patterns.d.ts.map +1 -0
  908. package/dist/checks/react/memory-leak-patterns.js +330 -0
  909. package/dist/checks/react/memory-leak-patterns.js.map +1 -0
  910. package/dist/checks/react/pagination-state-consolidation.d.ts +29 -0
  911. package/dist/checks/react/pagination-state-consolidation.d.ts.map +1 -0
  912. package/dist/checks/react/pagination-state-consolidation.js +258 -0
  913. package/dist/checks/react/pagination-state-consolidation.js.map +1 -0
  914. package/dist/checks/react/react19-compatibility.d.ts +16 -0
  915. package/dist/checks/react/react19-compatibility.d.ts.map +1 -0
  916. package/dist/checks/react/react19-compatibility.js +437 -0
  917. package/dist/checks/react/react19-compatibility.js.map +1 -0
  918. package/dist/checks/react/sort-state-consolidation.d.ts +29 -0
  919. package/dist/checks/react/sort-state-consolidation.d.ts.map +1 -0
  920. package/dist/checks/react/sort-state-consolidation.js +261 -0
  921. package/dist/checks/react/sort-state-consolidation.js.map +1 -0
  922. package/dist/checks/react/useeffect-loop-detector.d.ts +26 -0
  923. package/dist/checks/react/useeffect-loop-detector.d.ts.map +1 -0
  924. package/dist/checks/react/useeffect-loop-detector.js +219 -0
  925. package/dist/checks/react/useeffect-loop-detector.js.map +1 -0
  926. package/dist/checks/runtime/client-process-env-usage.d.ts +28 -0
  927. package/dist/checks/runtime/client-process-env-usage.d.ts.map +1 -0
  928. package/dist/checks/runtime/client-process-env-usage.js +196 -0
  929. package/dist/checks/runtime/client-process-env-usage.js.map +1 -0
  930. package/dist/checks/runtime/client-runtime-errors.d.ts +34 -0
  931. package/dist/checks/runtime/client-runtime-errors.d.ts.map +1 -0
  932. package/dist/checks/runtime/client-runtime-errors.js +308 -0
  933. package/dist/checks/runtime/client-runtime-errors.js.map +1 -0
  934. package/dist/checks/runtime/dev-error-monitoring-system.d.ts +21 -0
  935. package/dist/checks/runtime/dev-error-monitoring-system.d.ts.map +1 -0
  936. package/dist/checks/runtime/dev-error-monitoring-system.js +210 -0
  937. package/dist/checks/runtime/dev-error-monitoring-system.js.map +1 -0
  938. package/dist/checks/runtime/gtm-installation.d.ts +22 -0
  939. package/dist/checks/runtime/gtm-installation.d.ts.map +1 -0
  940. package/dist/checks/runtime/gtm-installation.js +343 -0
  941. package/dist/checks/runtime/gtm-installation.js.map +1 -0
  942. package/dist/checks/runtime/json-parse-safety.d.ts +22 -0
  943. package/dist/checks/runtime/json-parse-safety.d.ts.map +1 -0
  944. package/dist/checks/runtime/json-parse-safety.js +179 -0
  945. package/dist/checks/runtime/json-parse-safety.js.map +1 -0
  946. package/dist/checks/runtime/missing-public-env-import.d.ts +26 -0
  947. package/dist/checks/runtime/missing-public-env-import.d.ts.map +1 -0
  948. package/dist/checks/runtime/missing-public-env-import.js +181 -0
  949. package/dist/checks/runtime/missing-public-env-import.js.map +1 -0
  950. package/dist/checks/runtime/node-deprecations.d.ts +24 -0
  951. package/dist/checks/runtime/node-deprecations.d.ts.map +1 -0
  952. package/dist/checks/runtime/node-deprecations.js +168 -0
  953. package/dist/checks/runtime/node-deprecations.js.map +1 -0
  954. package/dist/checks/runtime/node25-compatibility.d.ts +30 -0
  955. package/dist/checks/runtime/node25-compatibility.d.ts.map +1 -0
  956. package/dist/checks/runtime/node25-compatibility.js +209 -0
  957. package/dist/checks/runtime/node25-compatibility.js.map +1 -0
  958. package/dist/checks/runtime/process-stdio-usage.d.ts +25 -0
  959. package/dist/checks/runtime/process-stdio-usage.d.ts.map +1 -0
  960. package/dist/checks/runtime/process-stdio-usage.js +183 -0
  961. package/dist/checks/runtime/process-stdio-usage.js.map +1 -0
  962. package/dist/checks/runtime/server-client-decimal.d.ts +26 -0
  963. package/dist/checks/runtime/server-client-decimal.d.ts.map +1 -0
  964. package/dist/checks/runtime/server-client-decimal.js +246 -0
  965. package/dist/checks/runtime/server-client-decimal.js.map +1 -0
  966. package/dist/checks/security/client-external-api-calls.d.ts +25 -0
  967. package/dist/checks/security/client-external-api-calls.d.ts.map +1 -0
  968. package/dist/checks/security/client-external-api-calls.js +206 -0
  969. package/dist/checks/security/client-external-api-calls.js.map +1 -0
  970. package/dist/checks/security/csrf-protection.d.ts +20 -0
  971. package/dist/checks/security/csrf-protection.d.ts.map +1 -0
  972. package/dist/checks/security/csrf-protection.js +249 -0
  973. package/dist/checks/security/csrf-protection.js.map +1 -0
  974. package/dist/checks/security/dependency-audit.d.ts +25 -0
  975. package/dist/checks/security/dependency-audit.d.ts.map +1 -0
  976. package/dist/checks/security/dependency-audit.js +219 -0
  977. package/dist/checks/security/dependency-audit.js.map +1 -0
  978. package/dist/checks/security/env-value-leakage.d.ts +23 -0
  979. package/dist/checks/security/env-value-leakage.d.ts.map +1 -0
  980. package/dist/checks/security/env-value-leakage.js +307 -0
  981. package/dist/checks/security/env-value-leakage.js.map +1 -0
  982. package/dist/checks/security/no-tracked-env-files.d.ts +19 -0
  983. package/dist/checks/security/no-tracked-env-files.d.ts.map +1 -0
  984. package/dist/checks/security/no-tracked-env-files.js +253 -0
  985. package/dist/checks/security/no-tracked-env-files.js.map +1 -0
  986. package/dist/checks/security/open-redirect-prevention.d.ts +19 -0
  987. package/dist/checks/security/open-redirect-prevention.d.ts.map +1 -0
  988. package/dist/checks/security/open-redirect-prevention.js +238 -0
  989. package/dist/checks/security/open-redirect-prevention.js.map +1 -0
  990. package/dist/checks/security/path-traversal-prevention.d.ts +25 -0
  991. package/dist/checks/security/path-traversal-prevention.d.ts.map +1 -0
  992. package/dist/checks/security/path-traversal-prevention.js +252 -0
  993. package/dist/checks/security/path-traversal-prevention.js.map +1 -0
  994. package/dist/checks/security/permission-security-validation.d.ts +20 -0
  995. package/dist/checks/security/permission-security-validation.d.ts.map +1 -0
  996. package/dist/checks/security/permission-security-validation.js +332 -0
  997. package/dist/checks/security/permission-security-validation.js.map +1 -0
  998. package/dist/checks/security/prod-command-detection.d.ts +18 -0
  999. package/dist/checks/security/prod-command-detection.d.ts.map +1 -0
  1000. package/dist/checks/security/prod-command-detection.js +238 -0
  1001. package/dist/checks/security/prod-command-detection.js.map +1 -0
  1002. package/dist/checks/security/rate-limiting-validation.d.ts +19 -0
  1003. package/dist/checks/security/rate-limiting-validation.d.ts.map +1 -0
  1004. package/dist/checks/security/rate-limiting-validation.js +265 -0
  1005. package/dist/checks/security/rate-limiting-validation.js.map +1 -0
  1006. package/dist/checks/security/security-sla-enforcement.d.ts +35 -0
  1007. package/dist/checks/security/security-sla-enforcement.d.ts.map +1 -0
  1008. package/dist/checks/security/security-sla-enforcement.js +352 -0
  1009. package/dist/checks/security/security-sla-enforcement.js.map +1 -0
  1010. package/dist/checks/security/sensitive-data-exposure.d.ts +37 -0
  1011. package/dist/checks/security/sensitive-data-exposure.d.ts.map +1 -0
  1012. package/dist/checks/security/sensitive-data-exposure.js +525 -0
  1013. package/dist/checks/security/sensitive-data-exposure.js.map +1 -0
  1014. package/dist/checks/security/sql-injection-prevention.d.ts +25 -0
  1015. package/dist/checks/security/sql-injection-prevention.d.ts.map +1 -0
  1016. package/dist/checks/security/sql-injection-prevention.js +219 -0
  1017. package/dist/checks/security/sql-injection-prevention.js.map +1 -0
  1018. package/dist/checks/security/turnstile-scope-validation.d.ts +22 -0
  1019. package/dist/checks/security/turnstile-scope-validation.d.ts.map +1 -0
  1020. package/dist/checks/security/turnstile-scope-validation.js +247 -0
  1021. package/dist/checks/security/turnstile-scope-validation.js.map +1 -0
  1022. package/dist/checks/security/unvalidated-route-params.d.ts +28 -0
  1023. package/dist/checks/security/unvalidated-route-params.d.ts.map +1 -0
  1024. package/dist/checks/security/unvalidated-route-params.js +246 -0
  1025. package/dist/checks/security/unvalidated-route-params.js.map +1 -0
  1026. package/dist/checks/security/webhook-security-validation.d.ts +19 -0
  1027. package/dist/checks/security/webhook-security-validation.d.ts.map +1 -0
  1028. package/dist/checks/security/webhook-security-validation.js +266 -0
  1029. package/dist/checks/security/webhook-security-validation.js.map +1 -0
  1030. package/dist/checks/seo/missing-metadata.d.ts +26 -0
  1031. package/dist/checks/seo/missing-metadata.d.ts.map +1 -0
  1032. package/dist/checks/seo/missing-metadata.js +185 -0
  1033. package/dist/checks/seo/missing-metadata.js.map +1 -0
  1034. package/dist/checks/storage-keys-validation.d.ts +25 -0
  1035. package/dist/checks/storage-keys-validation.d.ts.map +1 -0
  1036. package/dist/checks/storage-keys-validation.js +314 -0
  1037. package/dist/checks/storage-keys-validation.js.map +1 -0
  1038. package/dist/checks/store-order-numbers.d.ts +20 -0
  1039. package/dist/checks/store-order-numbers.d.ts.map +1 -0
  1040. package/dist/checks/store-order-numbers.js +244 -0
  1041. package/dist/checks/store-order-numbers.js.map +1 -0
  1042. package/dist/checks/system/analyze-consolidation-candidates.d.ts +18 -0
  1043. package/dist/checks/system/analyze-consolidation-candidates.d.ts.map +1 -0
  1044. package/dist/checks/system/analyze-consolidation-candidates.js +227 -0
  1045. package/dist/checks/system/analyze-consolidation-candidates.js.map +1 -0
  1046. package/dist/checks/system/apply-universal-progress.d.ts +15 -0
  1047. package/dist/checks/system/apply-universal-progress.d.ts.map +1 -0
  1048. package/dist/checks/system/apply-universal-progress.js +292 -0
  1049. package/dist/checks/system/apply-universal-progress.js.map +1 -0
  1050. package/dist/checks/system/broken-preflight-detection.d.ts +34 -0
  1051. package/dist/checks/system/broken-preflight-detection.d.ts.map +1 -0
  1052. package/dist/checks/system/broken-preflight-detection.js +568 -0
  1053. package/dist/checks/system/broken-preflight-detection.js.map +1 -0
  1054. package/dist/checks/system/find-orphaned-preflights.d.ts +20 -0
  1055. package/dist/checks/system/find-orphaned-preflights.d.ts.map +1 -0
  1056. package/dist/checks/system/find-orphaned-preflights.js +159 -0
  1057. package/dist/checks/system/find-orphaned-preflights.js.map +1 -0
  1058. package/dist/checks/system/lint-preflight-consistency.d.ts +26 -0
  1059. package/dist/checks/system/lint-preflight-consistency.d.ts.map +1 -0
  1060. package/dist/checks/system/lint-preflight-consistency.js +377 -0
  1061. package/dist/checks/system/lint-preflight-consistency.js.map +1 -0
  1062. package/dist/checks/system/orphaned-scripts-detection.d.ts +25 -0
  1063. package/dist/checks/system/orphaned-scripts-detection.d.ts.map +1 -0
  1064. package/dist/checks/system/orphaned-scripts-detection.js +338 -0
  1065. package/dist/checks/system/orphaned-scripts-detection.js.map +1 -0
  1066. package/dist/checks/system/preflight-command-validation.d.ts +36 -0
  1067. package/dist/checks/system/preflight-command-validation.d.ts.map +1 -0
  1068. package/dist/checks/system/preflight-command-validation.js +634 -0
  1069. package/dist/checks/system/preflight-command-validation.js.map +1 -0
  1070. package/dist/checks/system/preflight-concurrency-support.d.ts +19 -0
  1071. package/dist/checks/system/preflight-concurrency-support.d.ts.map +1 -0
  1072. package/dist/checks/system/preflight-concurrency-support.js +210 -0
  1073. package/dist/checks/system/preflight-concurrency-support.js.map +1 -0
  1074. package/dist/checks/system/preflight-consolidation-safety.d.ts +17 -0
  1075. package/dist/checks/system/preflight-consolidation-safety.d.ts.map +1 -0
  1076. package/dist/checks/system/preflight-consolidation-safety.js +253 -0
  1077. package/dist/checks/system/preflight-consolidation-safety.js.map +1 -0
  1078. package/dist/checks/system/preflight-coverage-map.d.ts +27 -0
  1079. package/dist/checks/system/preflight-coverage-map.d.ts.map +1 -0
  1080. package/dist/checks/system/preflight-coverage-map.js +298 -0
  1081. package/dist/checks/system/preflight-coverage-map.js.map +1 -0
  1082. package/dist/checks/system/preflight-drift-detector.d.ts +28 -0
  1083. package/dist/checks/system/preflight-drift-detector.d.ts.map +1 -0
  1084. package/dist/checks/system/preflight-drift-detector.js +382 -0
  1085. package/dist/checks/system/preflight-drift-detector.js.map +1 -0
  1086. package/dist/checks/system/preflight-env-var-documentation.d.ts +26 -0
  1087. package/dist/checks/system/preflight-env-var-documentation.d.ts.map +1 -0
  1088. package/dist/checks/system/preflight-env-var-documentation.js +336 -0
  1089. package/dist/checks/system/preflight-env-var-documentation.js.map +1 -0
  1090. package/dist/checks/system/preflight-exit-code-validator.d.ts +31 -0
  1091. package/dist/checks/system/preflight-exit-code-validator.d.ts.map +1 -0
  1092. package/dist/checks/system/preflight-exit-code-validator.js +301 -0
  1093. package/dist/checks/system/preflight-exit-code-validator.js.map +1 -0
  1094. package/dist/checks/system/preflight-false-positive-tracker.d.ts +26 -0
  1095. package/dist/checks/system/preflight-false-positive-tracker.d.ts.map +1 -0
  1096. package/dist/checks/system/preflight-false-positive-tracker.js +265 -0
  1097. package/dist/checks/system/preflight-false-positive-tracker.js.map +1 -0
  1098. package/dist/checks/system/preflight-metadata-validator.d.ts +28 -0
  1099. package/dist/checks/system/preflight-metadata-validator.d.ts.map +1 -0
  1100. package/dist/checks/system/preflight-metadata-validator.js +222 -0
  1101. package/dist/checks/system/preflight-metadata-validator.js.map +1 -0
  1102. package/dist/checks/system/preflight-organization.d.ts +16 -0
  1103. package/dist/checks/system/preflight-organization.d.ts.map +1 -0
  1104. package/dist/checks/system/preflight-organization.js +214 -0
  1105. package/dist/checks/system/preflight-organization.js.map +1 -0
  1106. package/dist/checks/system/preflight-performance-optimizer.d.ts +17 -0
  1107. package/dist/checks/system/preflight-performance-optimizer.d.ts.map +1 -0
  1108. package/dist/checks/system/preflight-performance-optimizer.js +377 -0
  1109. package/dist/checks/system/preflight-performance-optimizer.js.map +1 -0
  1110. package/dist/checks/system/preflight-performance-validator.d.ts +28 -0
  1111. package/dist/checks/system/preflight-performance-validator.d.ts.map +1 -0
  1112. package/dist/checks/system/preflight-performance-validator.js +270 -0
  1113. package/dist/checks/system/preflight-performance-validator.js.map +1 -0
  1114. package/dist/checks/system/preflight-redundancy-detection.d.ts +29 -0
  1115. package/dist/checks/system/preflight-redundancy-detection.d.ts.map +1 -0
  1116. package/dist/checks/system/preflight-redundancy-detection.js +1171 -0
  1117. package/dist/checks/system/preflight-redundancy-detection.js.map +1 -0
  1118. package/dist/checks/system/preflight-reporting-standards.d.ts +17 -0
  1119. package/dist/checks/system/preflight-reporting-standards.d.ts.map +1 -0
  1120. package/dist/checks/system/preflight-reporting-standards.js +315 -0
  1121. package/dist/checks/system/preflight-reporting-standards.js.map +1 -0
  1122. package/dist/checks/system/preflight-runtime-health.d.ts +34 -0
  1123. package/dist/checks/system/preflight-runtime-health.d.ts.map +1 -0
  1124. package/dist/checks/system/preflight-runtime-health.js +356 -0
  1125. package/dist/checks/system/preflight-runtime-health.js.map +1 -0
  1126. package/dist/checks/system/preflight-schema-validator.d.ts +24 -0
  1127. package/dist/checks/system/preflight-schema-validator.d.ts.map +1 -0
  1128. package/dist/checks/system/preflight-schema-validator.js +343 -0
  1129. package/dist/checks/system/preflight-schema-validator.js.map +1 -0
  1130. package/dist/checks/system/preflight-test-coverage.d.ts +25 -0
  1131. package/dist/checks/system/preflight-test-coverage.d.ts.map +1 -0
  1132. package/dist/checks/system/preflight-test-coverage.js +245 -0
  1133. package/dist/checks/system/preflight-test-coverage.js.map +1 -0
  1134. package/dist/checks/system/relative-import-validation.d.ts +25 -0
  1135. package/dist/checks/system/relative-import-validation.d.ts.map +1 -0
  1136. package/dist/checks/system/relative-import-validation.js +180 -0
  1137. package/dist/checks/system/relative-import-validation.js.map +1 -0
  1138. package/dist/checks/system/script-path-validation.d.ts +34 -0
  1139. package/dist/checks/system/script-path-validation.d.ts.map +1 -0
  1140. package/dist/checks/system/script-path-validation.js +354 -0
  1141. package/dist/checks/system/script-path-validation.js.map +1 -0
  1142. package/dist/checks/system/stale-preflight-detection.d.ts +16 -0
  1143. package/dist/checks/system/stale-preflight-detection.d.ts.map +1 -0
  1144. package/dist/checks/system/stale-preflight-detection.js +203 -0
  1145. package/dist/checks/system/stale-preflight-detection.js.map +1 -0
  1146. package/dist/checks/system/universal-progress-reporter.d.ts +92 -0
  1147. package/dist/checks/system/universal-progress-reporter.d.ts.map +1 -0
  1148. package/dist/checks/system/universal-progress-reporter.js +272 -0
  1149. package/dist/checks/system/universal-progress-reporter.js.map +1 -0
  1150. package/dist/checks/tailwind/tailwind4-compatibility.d.ts +33 -0
  1151. package/dist/checks/tailwind/tailwind4-compatibility.d.ts.map +1 -0
  1152. package/dist/checks/tailwind/tailwind4-compatibility.js +494 -0
  1153. package/dist/checks/tailwind/tailwind4-compatibility.js.map +1 -0
  1154. package/dist/checks/tanstack/tanstack-query-compatibility.d.ts +32 -0
  1155. package/dist/checks/tanstack/tanstack-query-compatibility.d.ts.map +1 -0
  1156. package/dist/checks/tanstack/tanstack-query-compatibility.js +437 -0
  1157. package/dist/checks/tanstack/tanstack-query-compatibility.js.map +1 -0
  1158. package/dist/checks/ui/accessibility-critical.d.ts +19 -0
  1159. package/dist/checks/ui/accessibility-critical.d.ts.map +1 -0
  1160. package/dist/checks/ui/accessibility-critical.js +360 -0
  1161. package/dist/checks/ui/accessibility-critical.js.map +1 -0
  1162. package/dist/checks/ui/admin-table-client-patterns.d.ts +32 -0
  1163. package/dist/checks/ui/admin-table-client-patterns.d.ts.map +1 -0
  1164. package/dist/checks/ui/admin-table-client-patterns.js +387 -0
  1165. package/dist/checks/ui/admin-table-client-patterns.js.map +1 -0
  1166. package/dist/checks/ui/alert-button-gap.d.ts +27 -0
  1167. package/dist/checks/ui/alert-button-gap.d.ts.map +1 -0
  1168. package/dist/checks/ui/alert-button-gap.js +218 -0
  1169. package/dist/checks/ui/alert-button-gap.js.map +1 -0
  1170. package/dist/checks/ui/async-status-flash-detection.d.ts +33 -0
  1171. package/dist/checks/ui/async-status-flash-detection.d.ts.map +1 -0
  1172. package/dist/checks/ui/async-status-flash-detection.js +303 -0
  1173. package/dist/checks/ui/async-status-flash-detection.js.map +1 -0
  1174. package/dist/checks/ui/breadcrumb-consistency.d.ts +18 -0
  1175. package/dist/checks/ui/breadcrumb-consistency.d.ts.map +1 -0
  1176. package/dist/checks/ui/breadcrumb-consistency.js +237 -0
  1177. package/dist/checks/ui/breadcrumb-consistency.js.map +1 -0
  1178. package/dist/checks/ui/button-group-gap.d.ts +23 -0
  1179. package/dist/checks/ui/button-group-gap.d.ts.map +1 -0
  1180. package/dist/checks/ui/button-group-gap.js +197 -0
  1181. package/dist/checks/ui/button-group-gap.js.map +1 -0
  1182. package/dist/checks/ui/button-icon-prop.d.ts +41 -0
  1183. package/dist/checks/ui/button-icon-prop.d.ts.map +1 -0
  1184. package/dist/checks/ui/button-icon-prop.js +251 -0
  1185. package/dist/checks/ui/button-icon-prop.js.map +1 -0
  1186. package/dist/checks/ui/card-section-content-spacing.d.ts +32 -0
  1187. package/dist/checks/ui/card-section-content-spacing.d.ts.map +1 -0
  1188. package/dist/checks/ui/card-section-content-spacing.js +263 -0
  1189. package/dist/checks/ui/card-section-content-spacing.js.map +1 -0
  1190. package/dist/checks/ui/card-section-patterns.d.ts +35 -0
  1191. package/dist/checks/ui/card-section-patterns.d.ts.map +1 -0
  1192. package/dist/checks/ui/card-section-patterns.js +279 -0
  1193. package/dist/checks/ui/card-section-patterns.js.map +1 -0
  1194. package/dist/checks/ui/category-filter-coverage.d.ts +81 -0
  1195. package/dist/checks/ui/category-filter-coverage.d.ts.map +1 -0
  1196. package/dist/checks/ui/category-filter-coverage.js +520 -0
  1197. package/dist/checks/ui/category-filter-coverage.js.map +1 -0
  1198. package/dist/checks/ui/color-check.d.ts +8 -0
  1199. package/dist/checks/ui/color-check.d.ts.map +1 -0
  1200. package/dist/checks/ui/color-check.js +111 -0
  1201. package/dist/checks/ui/color-check.js.map +1 -0
  1202. package/dist/checks/ui/component-library-quality.d.ts +20 -0
  1203. package/dist/checks/ui/component-library-quality.d.ts.map +1 -0
  1204. package/dist/checks/ui/component-library-quality.js +237 -0
  1205. package/dist/checks/ui/component-library-quality.js.map +1 -0
  1206. package/dist/checks/ui/component-prop-validation.d.ts +22 -0
  1207. package/dist/checks/ui/component-prop-validation.d.ts.map +1 -0
  1208. package/dist/checks/ui/component-prop-validation.js +271 -0
  1209. package/dist/checks/ui/component-prop-validation.js.map +1 -0
  1210. package/dist/checks/ui/confirmation-page-consistency.d.ts +27 -0
  1211. package/dist/checks/ui/confirmation-page-consistency.d.ts.map +1 -0
  1212. package/dist/checks/ui/confirmation-page-consistency.js +366 -0
  1213. package/dist/checks/ui/confirmation-page-consistency.js.map +1 -0
  1214. package/dist/checks/ui/console-log-check.d.ts +8 -0
  1215. package/dist/checks/ui/console-log-check.d.ts.map +1 -0
  1216. package/dist/checks/ui/console-log-check.js +101 -0
  1217. package/dist/checks/ui/console-log-check.js.map +1 -0
  1218. package/dist/checks/ui/css-grid-gap-check.d.ts +25 -0
  1219. package/dist/checks/ui/css-grid-gap-check.d.ts.map +1 -0
  1220. package/dist/checks/ui/css-grid-gap-check.js +317 -0
  1221. package/dist/checks/ui/css-grid-gap-check.js.map +1 -0
  1222. package/dist/checks/ui/css-token-syntax.d.ts +23 -0
  1223. package/dist/checks/ui/css-token-syntax.d.ts.map +1 -0
  1224. package/dist/checks/ui/css-token-syntax.js +389 -0
  1225. package/dist/checks/ui/css-token-syntax.js.map +1 -0
  1226. package/dist/checks/ui/cva-empty-variants.d.ts +28 -0
  1227. package/dist/checks/ui/cva-empty-variants.d.ts.map +1 -0
  1228. package/dist/checks/ui/cva-empty-variants.js +240 -0
  1229. package/dist/checks/ui/cva-empty-variants.js.map +1 -0
  1230. package/dist/checks/ui/dark-mode-support.d.ts +96 -0
  1231. package/dist/checks/ui/dark-mode-support.d.ts.map +1 -0
  1232. package/dist/checks/ui/dark-mode-support.js +703 -0
  1233. package/dist/checks/ui/dark-mode-support.js.map +1 -0
  1234. package/dist/checks/ui/dashboard-section-patterns.d.ts +86 -0
  1235. package/dist/checks/ui/dashboard-section-patterns.d.ts.map +1 -0
  1236. package/dist/checks/ui/dashboard-section-patterns.js +1757 -0
  1237. package/dist/checks/ui/dashboard-section-patterns.js.map +1 -0
  1238. package/dist/checks/ui/dashboard-ui.d.ts +29 -0
  1239. package/dist/checks/ui/dashboard-ui.d.ts.map +1 -0
  1240. package/dist/checks/ui/dashboard-ui.js +509 -0
  1241. package/dist/checks/ui/dashboard-ui.js.map +1 -0
  1242. package/dist/checks/ui/dead-action-detector.d.ts +25 -0
  1243. package/dist/checks/ui/dead-action-detector.d.ts.map +1 -0
  1244. package/dist/checks/ui/dead-action-detector.js +470 -0
  1245. package/dist/checks/ui/dead-action-detector.js.map +1 -0
  1246. package/dist/checks/ui/dialog-state-management.d.ts +27 -0
  1247. package/dist/checks/ui/dialog-state-management.d.ts.map +1 -0
  1248. package/dist/checks/ui/dialog-state-management.js +301 -0
  1249. package/dist/checks/ui/dialog-state-management.js.map +1 -0
  1250. package/dist/checks/ui/doubled-padding-check.d.ts +31 -0
  1251. package/dist/checks/ui/doubled-padding-check.d.ts.map +1 -0
  1252. package/dist/checks/ui/doubled-padding-check.js +236 -0
  1253. package/dist/checks/ui/doubled-padding-check.js.map +1 -0
  1254. package/dist/checks/ui/dropdown-positioning-check.d.ts +27 -0
  1255. package/dist/checks/ui/dropdown-positioning-check.d.ts.map +1 -0
  1256. package/dist/checks/ui/dropdown-positioning-check.js +286 -0
  1257. package/dist/checks/ui/dropdown-positioning-check.js.map +1 -0
  1258. package/dist/checks/ui/duplicate-layout-detection.d.ts +20 -0
  1259. package/dist/checks/ui/duplicate-layout-detection.d.ts.map +1 -0
  1260. package/dist/checks/ui/duplicate-layout-detection.js +290 -0
  1261. package/dist/checks/ui/duplicate-layout-detection.js.map +1 -0
  1262. package/dist/checks/ui/duplicate-shared-component-detection.d.ts +25 -0
  1263. package/dist/checks/ui/duplicate-shared-component-detection.d.ts.map +1 -0
  1264. package/dist/checks/ui/duplicate-shared-component-detection.js +340 -0
  1265. package/dist/checks/ui/duplicate-shared-component-detection.js.map +1 -0
  1266. package/dist/checks/ui/feature-page-hero-consistency.d.ts +30 -0
  1267. package/dist/checks/ui/feature-page-hero-consistency.d.ts.map +1 -0
  1268. package/dist/checks/ui/feature-page-hero-consistency.js +234 -0
  1269. package/dist/checks/ui/feature-page-hero-consistency.js.map +1 -0
  1270. package/dist/checks/ui/filter-loading-states.d.ts +20 -0
  1271. package/dist/checks/ui/filter-loading-states.d.ts.map +1 -0
  1272. package/dist/checks/ui/filter-loading-states.js +199 -0
  1273. package/dist/checks/ui/filter-loading-states.js.map +1 -0
  1274. package/dist/checks/ui/flex-icon-text-gap.d.ts +31 -0
  1275. package/dist/checks/ui/flex-icon-text-gap.d.ts.map +1 -0
  1276. package/dist/checks/ui/flex-icon-text-gap.js +374 -0
  1277. package/dist/checks/ui/flex-icon-text-gap.js.map +1 -0
  1278. package/dist/checks/ui/flex-spacing-validation.d.ts +54 -0
  1279. package/dist/checks/ui/flex-spacing-validation.d.ts.map +1 -0
  1280. package/dist/checks/ui/flex-spacing-validation.js +263 -0
  1281. package/dist/checks/ui/flex-spacing-validation.js.map +1 -0
  1282. package/dist/checks/ui/floating-action-buttons.d.ts +36 -0
  1283. package/dist/checks/ui/floating-action-buttons.d.ts.map +1 -0
  1284. package/dist/checks/ui/floating-action-buttons.js +371 -0
  1285. package/dist/checks/ui/floating-action-buttons.js.map +1 -0
  1286. package/dist/checks/ui/form-control-layout-check.d.ts +31 -0
  1287. package/dist/checks/ui/form-control-layout-check.d.ts.map +1 -0
  1288. package/dist/checks/ui/form-control-layout-check.js +290 -0
  1289. package/dist/checks/ui/form-control-layout-check.js.map +1 -0
  1290. package/dist/checks/ui/form-field-consistency.d.ts +30 -0
  1291. package/dist/checks/ui/form-field-consistency.d.ts.map +1 -0
  1292. package/dist/checks/ui/form-field-consistency.js +273 -0
  1293. package/dist/checks/ui/form-field-consistency.js.map +1 -0
  1294. package/dist/checks/ui/gap-spacing-consistency.d.ts +36 -0
  1295. package/dist/checks/ui/gap-spacing-consistency.d.ts.map +1 -0
  1296. package/dist/checks/ui/gap-spacing-consistency.js +319 -0
  1297. package/dist/checks/ui/gap-spacing-consistency.js.map +1 -0
  1298. package/dist/checks/ui/header-action-text-color.d.ts +20 -0
  1299. package/dist/checks/ui/header-action-text-color.d.ts.map +1 -0
  1300. package/dist/checks/ui/header-action-text-color.js +128 -0
  1301. package/dist/checks/ui/header-action-text-color.js.map +1 -0
  1302. package/dist/checks/ui/header-vertical-alignment.d.ts +22 -0
  1303. package/dist/checks/ui/header-vertical-alignment.d.ts.map +1 -0
  1304. package/dist/checks/ui/header-vertical-alignment.js +215 -0
  1305. package/dist/checks/ui/header-vertical-alignment.js.map +1 -0
  1306. package/dist/checks/ui/image-component-check.d.ts +9 -0
  1307. package/dist/checks/ui/image-component-check.d.ts.map +1 -0
  1308. package/dist/checks/ui/image-component-check.js +99 -0
  1309. package/dist/checks/ui/image-component-check.js.map +1 -0
  1310. package/dist/checks/ui/image-pair-placeholder-priority.d.ts +40 -0
  1311. package/dist/checks/ui/image-pair-placeholder-priority.d.ts.map +1 -0
  1312. package/dist/checks/ui/image-pair-placeholder-priority.js +236 -0
  1313. package/dist/checks/ui/image-pair-placeholder-priority.js.map +1 -0
  1314. package/dist/checks/ui/image-url-double-suffix.d.ts +22 -0
  1315. package/dist/checks/ui/image-url-double-suffix.d.ts.map +1 -0
  1316. package/dist/checks/ui/image-url-double-suffix.js +314 -0
  1317. package/dist/checks/ui/image-url-double-suffix.js.map +1 -0
  1318. package/dist/checks/ui/inline-flex-gap-check.d.ts +27 -0
  1319. package/dist/checks/ui/inline-flex-gap-check.d.ts.map +1 -0
  1320. package/dist/checks/ui/inline-flex-gap-check.js +199 -0
  1321. package/dist/checks/ui/inline-flex-gap-check.js.map +1 -0
  1322. package/dist/checks/ui/inline-notification-misuse.d.ts +38 -0
  1323. package/dist/checks/ui/inline-notification-misuse.d.ts.map +1 -0
  1324. package/dist/checks/ui/inline-notification-misuse.js +348 -0
  1325. package/dist/checks/ui/inline-notification-misuse.js.map +1 -0
  1326. package/dist/checks/ui/inline-to-tailwind-check.d.ts +47 -0
  1327. package/dist/checks/ui/inline-to-tailwind-check.d.ts.map +1 -0
  1328. package/dist/checks/ui/inline-to-tailwind-check.js +332 -0
  1329. package/dist/checks/ui/inline-to-tailwind-check.js.map +1 -0
  1330. package/dist/checks/ui/input-label-gap.d.ts +35 -0
  1331. package/dist/checks/ui/input-label-gap.d.ts.map +1 -0
  1332. package/dist/checks/ui/input-label-gap.js +350 -0
  1333. package/dist/checks/ui/input-label-gap.js.map +1 -0
  1334. package/dist/checks/ui/input-width-consistency.d.ts +53 -0
  1335. package/dist/checks/ui/input-width-consistency.d.ts.map +1 -0
  1336. package/dist/checks/ui/input-width-consistency.js +343 -0
  1337. package/dist/checks/ui/input-width-consistency.js.map +1 -0
  1338. package/dist/checks/ui/js-responsive-visibility.d.ts +32 -0
  1339. package/dist/checks/ui/js-responsive-visibility.d.ts.map +1 -0
  1340. package/dist/checks/ui/js-responsive-visibility.js +216 -0
  1341. package/dist/checks/ui/js-responsive-visibility.js.map +1 -0
  1342. package/dist/checks/ui/label-description-spacing.d.ts +31 -0
  1343. package/dist/checks/ui/label-description-spacing.d.ts.map +1 -0
  1344. package/dist/checks/ui/label-description-spacing.js +288 -0
  1345. package/dist/checks/ui/label-description-spacing.js.map +1 -0
  1346. package/dist/checks/ui/layout-shift-detection.d.ts +32 -0
  1347. package/dist/checks/ui/layout-shift-detection.d.ts.map +1 -0
  1348. package/dist/checks/ui/layout-shift-detection.js +401 -0
  1349. package/dist/checks/ui/layout-shift-detection.js.map +1 -0
  1350. package/dist/checks/ui/list-item-text-pattern.d.ts +33 -0
  1351. package/dist/checks/ui/list-item-text-pattern.d.ts.map +1 -0
  1352. package/dist/checks/ui/list-item-text-pattern.js +197 -0
  1353. package/dist/checks/ui/list-item-text-pattern.js.map +1 -0
  1354. package/dist/checks/ui/loading-empty-state-consistency.d.ts +29 -0
  1355. package/dist/checks/ui/loading-empty-state-consistency.d.ts.map +1 -0
  1356. package/dist/checks/ui/loading-empty-state-consistency.js +333 -0
  1357. package/dist/checks/ui/loading-empty-state-consistency.js.map +1 -0
  1358. package/dist/checks/ui/margin-in-gap-container.d.ts +26 -0
  1359. package/dist/checks/ui/margin-in-gap-container.d.ts.map +1 -0
  1360. package/dist/checks/ui/margin-in-gap-container.js +625 -0
  1361. package/dist/checks/ui/margin-in-gap-container.js.map +1 -0
  1362. package/dist/checks/ui/mega-menu-dropdown-position.d.ts +26 -0
  1363. package/dist/checks/ui/mega-menu-dropdown-position.d.ts.map +1 -0
  1364. package/dist/checks/ui/mega-menu-dropdown-position.js +233 -0
  1365. package/dist/checks/ui/mega-menu-dropdown-position.js.map +1 -0
  1366. package/dist/checks/ui/mega-menu-scrollbar-overlap.d.ts +25 -0
  1367. package/dist/checks/ui/mega-menu-scrollbar-overlap.d.ts.map +1 -0
  1368. package/dist/checks/ui/mega-menu-scrollbar-overlap.js +286 -0
  1369. package/dist/checks/ui/mega-menu-scrollbar-overlap.js.map +1 -0
  1370. package/dist/checks/ui/mega-menu-spacing-check.d.ts +22 -0
  1371. package/dist/checks/ui/mega-menu-spacing-check.d.ts.map +1 -0
  1372. package/dist/checks/ui/mega-menu-spacing-check.js +247 -0
  1373. package/dist/checks/ui/mega-menu-spacing-check.js.map +1 -0
  1374. package/dist/checks/ui/missing-shared-component-detection.d.ts +30 -0
  1375. package/dist/checks/ui/missing-shared-component-detection.d.ts.map +1 -0
  1376. package/dist/checks/ui/missing-shared-component-detection.js +707 -0
  1377. package/dist/checks/ui/missing-shared-component-detection.js.map +1 -0
  1378. package/dist/checks/ui/notification-feedback-check.d.ts +38 -0
  1379. package/dist/checks/ui/notification-feedback-check.d.ts.map +1 -0
  1380. package/dist/checks/ui/notification-feedback-check.js +564 -0
  1381. package/dist/checks/ui/notification-feedback-check.js.map +1 -0
  1382. package/dist/checks/ui/orphaned-page-content.d.ts +30 -0
  1383. package/dist/checks/ui/orphaned-page-content.d.ts.map +1 -0
  1384. package/dist/checks/ui/orphaned-page-content.js +261 -0
  1385. package/dist/checks/ui/orphaned-page-content.js.map +1 -0
  1386. package/dist/checks/ui/orphaned-table-filters.d.ts +35 -0
  1387. package/dist/checks/ui/orphaned-table-filters.d.ts.map +1 -0
  1388. package/dist/checks/ui/orphaned-table-filters.js +289 -0
  1389. package/dist/checks/ui/orphaned-table-filters.js.map +1 -0
  1390. package/dist/checks/ui/overflow-clipping-detection.d.ts +18 -0
  1391. package/dist/checks/ui/overflow-clipping-detection.d.ts.map +1 -0
  1392. package/dist/checks/ui/overflow-clipping-detection.js +201 -0
  1393. package/dist/checks/ui/overflow-clipping-detection.js.map +1 -0
  1394. package/dist/checks/ui/page-layout-spacing.d.ts +30 -0
  1395. package/dist/checks/ui/page-layout-spacing.d.ts.map +1 -0
  1396. package/dist/checks/ui/page-layout-spacing.js +609 -0
  1397. package/dist/checks/ui/page-layout-spacing.js.map +1 -0
  1398. package/dist/checks/ui/path-alias-check.d.ts +8 -0
  1399. package/dist/checks/ui/path-alias-check.d.ts.map +1 -0
  1400. package/dist/checks/ui/path-alias-check.js +101 -0
  1401. package/dist/checks/ui/path-alias-check.js.map +1 -0
  1402. package/dist/checks/ui/product-image-animations.d.ts +70 -0
  1403. package/dist/checks/ui/product-image-animations.d.ts.map +1 -0
  1404. package/dist/checks/ui/product-image-animations.js +326 -0
  1405. package/dist/checks/ui/product-image-animations.js.map +1 -0
  1406. package/dist/checks/ui/raw-enum-display-validation.d.ts +25 -0
  1407. package/dist/checks/ui/raw-enum-display-validation.d.ts.map +1 -0
  1408. package/dist/checks/ui/raw-enum-display-validation.js +186 -0
  1409. package/dist/checks/ui/raw-enum-display-validation.js.map +1 -0
  1410. package/dist/checks/ui/react-component-patterns.d.ts +19 -0
  1411. package/dist/checks/ui/react-component-patterns.d.ts.map +1 -0
  1412. package/dist/checks/ui/react-component-patterns.js +250 -0
  1413. package/dist/checks/ui/react-component-patterns.js.map +1 -0
  1414. package/dist/checks/ui/react-dom-prop-leaking.d.ts +22 -0
  1415. package/dist/checks/ui/react-dom-prop-leaking.d.ts.map +1 -0
  1416. package/dist/checks/ui/react-dom-prop-leaking.js +272 -0
  1417. package/dist/checks/ui/react-dom-prop-leaking.js.map +1 -0
  1418. package/dist/checks/ui/responsive-flex-width-validation.d.ts +64 -0
  1419. package/dist/checks/ui/responsive-flex-width-validation.d.ts.map +1 -0
  1420. package/dist/checks/ui/responsive-flex-width-validation.js +283 -0
  1421. package/dist/checks/ui/responsive-flex-width-validation.js.map +1 -0
  1422. package/dist/checks/ui/search-width-consistency.d.ts +53 -0
  1423. package/dist/checks/ui/search-width-consistency.d.ts.map +1 -0
  1424. package/dist/checks/ui/search-width-consistency.js +277 -0
  1425. package/dist/checks/ui/search-width-consistency.js.map +1 -0
  1426. package/dist/checks/ui/section-spacing-check.d.ts +31 -0
  1427. package/dist/checks/ui/section-spacing-check.d.ts.map +1 -0
  1428. package/dist/checks/ui/section-spacing-check.js +251 -0
  1429. package/dist/checks/ui/section-spacing-check.js.map +1 -0
  1430. package/dist/checks/ui/sibling-spacing-check.d.ts +26 -0
  1431. package/dist/checks/ui/sibling-spacing-check.d.ts.map +1 -0
  1432. package/dist/checks/ui/sibling-spacing-check.js +332 -0
  1433. package/dist/checks/ui/sibling-spacing-check.js.map +1 -0
  1434. package/dist/checks/ui/sidebar-layout-gap.d.ts +35 -0
  1435. package/dist/checks/ui/sidebar-layout-gap.d.ts.map +1 -0
  1436. package/dist/checks/ui/sidebar-layout-gap.js +206 -0
  1437. package/dist/checks/ui/sidebar-layout-gap.js.map +1 -0
  1438. package/dist/checks/ui/size-naming-consistency.d.ts +21 -0
  1439. package/dist/checks/ui/size-naming-consistency.d.ts.map +1 -0
  1440. package/dist/checks/ui/size-naming-consistency.js +220 -0
  1441. package/dist/checks/ui/size-naming-consistency.js.map +1 -0
  1442. package/dist/checks/ui/skeleton-empty-state-validation.d.ts +30 -0
  1443. package/dist/checks/ui/skeleton-empty-state-validation.d.ts.map +1 -0
  1444. package/dist/checks/ui/skeleton-empty-state-validation.js +268 -0
  1445. package/dist/checks/ui/skeleton-empty-state-validation.js.map +1 -0
  1446. package/dist/checks/ui/skeleton-size-consistency.d.ts +37 -0
  1447. package/dist/checks/ui/skeleton-size-consistency.d.ts.map +1 -0
  1448. package/dist/checks/ui/skeleton-size-consistency.js +1251 -0
  1449. package/dist/checks/ui/skeleton-size-consistency.js.map +1 -0
  1450. package/dist/checks/ui/spacing-check.d.ts +8 -0
  1451. package/dist/checks/ui/spacing-check.d.ts.map +1 -0
  1452. package/dist/checks/ui/spacing-check.js +106 -0
  1453. package/dist/checks/ui/spacing-check.js.map +1 -0
  1454. package/dist/checks/ui/spinner-vs-skeleton-validation.d.ts +46 -0
  1455. package/dist/checks/ui/spinner-vs-skeleton-validation.d.ts.map +1 -0
  1456. package/dist/checks/ui/spinner-vs-skeleton-validation.js +352 -0
  1457. package/dist/checks/ui/spinner-vs-skeleton-validation.js.map +1 -0
  1458. package/dist/checks/ui/stale-initial-state-detection.d.ts +30 -0
  1459. package/dist/checks/ui/stale-initial-state-detection.d.ts.map +1 -0
  1460. package/dist/checks/ui/stale-initial-state-detection.js +224 -0
  1461. package/dist/checks/ui/stale-initial-state-detection.js.map +1 -0
  1462. package/dist/checks/ui/styling-standards.d.ts +71 -0
  1463. package/dist/checks/ui/styling-standards.d.ts.map +1 -0
  1464. package/dist/checks/ui/styling-standards.js +568 -0
  1465. package/dist/checks/ui/styling-standards.js.map +1 -0
  1466. package/dist/checks/ui/table-form-control-spacing.d.ts +29 -0
  1467. package/dist/checks/ui/table-form-control-spacing.d.ts.map +1 -0
  1468. package/dist/checks/ui/table-form-control-spacing.js +260 -0
  1469. package/dist/checks/ui/table-form-control-spacing.js.map +1 -0
  1470. package/dist/checks/ui/table-structure-validation.d.ts +36 -0
  1471. package/dist/checks/ui/table-structure-validation.d.ts.map +1 -0
  1472. package/dist/checks/ui/table-structure-validation.js +308 -0
  1473. package/dist/checks/ui/table-structure-validation.js.map +1 -0
  1474. package/dist/checks/ui/tailwind-consistency.d.ts +28 -0
  1475. package/dist/checks/ui/tailwind-consistency.d.ts.map +1 -0
  1476. package/dist/checks/ui/tailwind-consistency.js +349 -0
  1477. package/dist/checks/ui/tailwind-consistency.js.map +1 -0
  1478. package/dist/checks/ui/tailwind-contrast-check.d.ts +46 -0
  1479. package/dist/checks/ui/tailwind-contrast-check.d.ts.map +1 -0
  1480. package/dist/checks/ui/tailwind-contrast-check.js +464 -0
  1481. package/dist/checks/ui/tailwind-contrast-check.js.map +1 -0
  1482. package/dist/checks/ui/text-button-group-gap.d.ts +30 -0
  1483. package/dist/checks/ui/text-button-group-gap.d.ts.map +1 -0
  1484. package/dist/checks/ui/text-button-group-gap.js +245 -0
  1485. package/dist/checks/ui/text-button-group-gap.js.map +1 -0
  1486. package/dist/checks/ui/typography-check.d.ts +8 -0
  1487. package/dist/checks/ui/typography-check.d.ts.map +1 -0
  1488. package/dist/checks/ui/typography-check.js +120 -0
  1489. package/dist/checks/ui/typography-check.js.map +1 -0
  1490. package/dist/checks/ui/ui-consistency-validation.d.ts +52 -0
  1491. package/dist/checks/ui/ui-consistency-validation.d.ts.map +1 -0
  1492. package/dist/checks/ui/ui-consistency-validation.js +235 -0
  1493. package/dist/checks/ui/ui-consistency-validation.js.map +1 -0
  1494. package/dist/checks/ui/z-index-check.d.ts +29 -0
  1495. package/dist/checks/ui/z-index-check.d.ts.map +1 -0
  1496. package/dist/checks/ui/z-index-check.js +669 -0
  1497. package/dist/checks/ui/z-index-check.js.map +1 -0
  1498. package/dist/checks/zod/zod4-compatibility.d.ts +32 -0
  1499. package/dist/checks/zod/zod4-compatibility.d.ts.map +1 -0
  1500. package/dist/checks/zod/zod4-compatibility.js +415 -0
  1501. package/dist/checks/zod/zod4-compatibility.js.map +1 -0
  1502. package/dist/core/categories.d.ts +40 -0
  1503. package/dist/core/categories.d.ts.map +1 -0
  1504. package/dist/core/categories.js +153 -0
  1505. package/dist/core/categories.js.map +1 -0
  1506. package/dist/core/config.d.ts +110 -0
  1507. package/dist/core/config.d.ts.map +1 -0
  1508. package/dist/core/config.js +178 -0
  1509. package/dist/core/config.js.map +1 -0
  1510. package/dist/core/types.d.ts +206 -0
  1511. package/dist/core/types.d.ts.map +1 -0
  1512. package/dist/core/types.js +24 -0
  1513. package/dist/core/types.js.map +1 -0
  1514. package/dist/index.d.ts +38 -0
  1515. package/dist/index.d.ts.map +1 -0
  1516. package/dist/index.js +215 -0
  1517. package/dist/index.js.map +1 -0
  1518. package/dist/runner.d.ts +37 -0
  1519. package/dist/runner.d.ts.map +1 -0
  1520. package/dist/runner.js +728 -0
  1521. package/dist/runner.js.map +1 -0
  1522. package/dist/shared/concurrency-config.d.ts +67 -0
  1523. package/dist/shared/concurrency-config.d.ts.map +1 -0
  1524. package/dist/shared/concurrency-config.js +140 -0
  1525. package/dist/shared/concurrency-config.js.map +1 -0
  1526. package/dist/shared/design-tokens-config.d.ts +140 -0
  1527. package/dist/shared/design-tokens-config.d.ts.map +1 -0
  1528. package/dist/shared/design-tokens-config.js +290 -0
  1529. package/dist/shared/design-tokens-config.js.map +1 -0
  1530. package/dist/shared/design-tokens.d.ts +771 -0
  1531. package/dist/shared/design-tokens.d.ts.map +1 -0
  1532. package/dist/shared/design-tokens.js +873 -0
  1533. package/dist/shared/design-tokens.js.map +1 -0
  1534. package/dist/shared/exclusions.d.ts +93 -0
  1535. package/dist/shared/exclusions.d.ts.map +1 -0
  1536. package/dist/shared/exclusions.js +182 -0
  1537. package/dist/shared/exclusions.js.map +1 -0
  1538. package/dist/shared/file-cache.d.ts +379 -0
  1539. package/dist/shared/file-cache.d.ts.map +1 -0
  1540. package/dist/shared/file-cache.js +744 -0
  1541. package/dist/shared/file-cache.js.map +1 -0
  1542. package/dist/shared/glob-patterns.d.ts +200 -0
  1543. package/dist/shared/glob-patterns.d.ts.map +1 -0
  1544. package/dist/shared/glob-patterns.js +291 -0
  1545. package/dist/shared/glob-patterns.js.map +1 -0
  1546. package/dist/shared/in-process-runner.d.ts +44 -0
  1547. package/dist/shared/in-process-runner.d.ts.map +1 -0
  1548. package/dist/shared/in-process-runner.js +266 -0
  1549. package/dist/shared/in-process-runner.js.map +1 -0
  1550. package/dist/shared/incremental-cache.d.ts +93 -0
  1551. package/dist/shared/incremental-cache.d.ts.map +1 -0
  1552. package/dist/shared/incremental-cache.js +349 -0
  1553. package/dist/shared/incremental-cache.js.map +1 -0
  1554. package/dist/shared/layout-constants.d.ts +101 -0
  1555. package/dist/shared/layout-constants.d.ts.map +1 -0
  1556. package/dist/shared/layout-constants.js +172 -0
  1557. package/dist/shared/layout-constants.js.map +1 -0
  1558. package/dist/utils/config-loader.d.ts +34 -0
  1559. package/dist/utils/config-loader.d.ts.map +1 -0
  1560. package/dist/utils/config-loader.js +169 -0
  1561. package/dist/utils/config-loader.js.map +1 -0
  1562. package/dist/utils/console-chars.d.ts +388 -0
  1563. package/dist/utils/console-chars.d.ts.map +1 -0
  1564. package/dist/utils/console-chars.js +378 -0
  1565. package/dist/utils/console-chars.js.map +1 -0
  1566. package/dist/utils/file-scanner.d.ts +73 -0
  1567. package/dist/utils/file-scanner.d.ts.map +1 -0
  1568. package/dist/utils/file-scanner.js +203 -0
  1569. package/dist/utils/file-scanner.js.map +1 -0
  1570. package/dist/utils/findings-writer.d.ts +32 -0
  1571. package/dist/utils/findings-writer.d.ts.map +1 -0
  1572. package/dist/utils/findings-writer.js +69 -0
  1573. package/dist/utils/findings-writer.js.map +1 -0
  1574. package/dist/utils/plugin-loader.d.ts +76 -0
  1575. package/dist/utils/plugin-loader.d.ts.map +1 -0
  1576. package/dist/utils/plugin-loader.js +259 -0
  1577. package/dist/utils/plugin-loader.js.map +1 -0
  1578. package/dist/utils/preflight-runner.d.ts +29 -0
  1579. package/dist/utils/preflight-runner.d.ts.map +1 -0
  1580. package/dist/utils/preflight-runner.js +131 -0
  1581. package/dist/utils/preflight-runner.js.map +1 -0
  1582. package/dist/utils/progress-reporter.d.ts +92 -0
  1583. package/dist/utils/progress-reporter.d.ts.map +1 -0
  1584. package/dist/utils/progress-reporter.js +272 -0
  1585. package/dist/utils/progress-reporter.js.map +1 -0
  1586. package/package.json +83 -0
  1587. package/templates/domain-specific/trading-card-system/tcg-seed-validation.ts +197 -0
  1588. package/templates/new-check.ts.template +205 -0
  1589. package/templates/preflight.config.ts.template +103 -0
@@ -0,0 +1,1171 @@
1
+ #!/usr/bin/env tsx
2
+ "use strict";
3
+ /**
4
+ * Preflight Redundancy Detection (BLOCKING)
5
+ *
6
+ * Detects redundant preflights by analyzing:
7
+ * 1. Regex patterns being checked (same pattern in multiple preflights)
8
+ * 2. File glob patterns being scanned (same files scanned multiple times)
9
+ * 3. Error codes emitted (duplicate error codes = duplicate checks)
10
+ * 4. Similar check names (semantic overlap)
11
+ * 5. Content hash duplicates (copy-pasted preflights)
12
+ * 6. Local exclude definitions (should use shared/glob-patterns.ts)
13
+ *
14
+ * This runs on every build to ensure efficiency - we don't want to waste
15
+ * CI time running the same checks multiple times.
16
+ *
17
+ * Usage:
18
+ * pnpm preflight:redundancy
19
+ * pnpm preflight:redundancy --verbose # Show info-level issues
20
+ * pnpm preflight:redundancy --json # Output JSON for trend tracking
21
+ * tsx scripts/active/preflights/system/preflight-redundancy-detection.ts
22
+ */
23
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
24
+ if (k2 === undefined) k2 = k;
25
+ var desc = Object.getOwnPropertyDescriptor(m, k);
26
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
27
+ desc = { enumerable: true, get: function() { return m[k]; } };
28
+ }
29
+ Object.defineProperty(o, k2, desc);
30
+ }) : (function(o, m, k, k2) {
31
+ if (k2 === undefined) k2 = k;
32
+ o[k2] = m[k];
33
+ }));
34
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
35
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
36
+ }) : function(o, v) {
37
+ o["default"] = v;
38
+ });
39
+ var __importStar = (this && this.__importStar) || (function () {
40
+ var ownKeys = function(o) {
41
+ ownKeys = Object.getOwnPropertyNames || function (o) {
42
+ var ar = [];
43
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
44
+ return ar;
45
+ };
46
+ return ownKeys(o);
47
+ };
48
+ return function (mod) {
49
+ if (mod && mod.__esModule) return mod;
50
+ var result = {};
51
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
52
+ __setModuleDefault(result, mod);
53
+ return result;
54
+ };
55
+ })();
56
+ Object.defineProperty(exports, "__esModule", { value: true });
57
+ exports.tags = exports.description = exports.blocking = exports.category = exports.name = exports.id = void 0;
58
+ exports.run = run;
59
+ const crypto = __importStar(require("crypto"));
60
+ const fs = __importStar(require("fs"));
61
+ const path = __importStar(require("path"));
62
+ const console_chars_1 = require("../../utils/console-chars");
63
+ // Check metadata
64
+ exports.id = "system/preflight-redundancy-detection";
65
+ exports.name = "Preflight Redundancy Detection";
66
+ exports.category = "system";
67
+ exports.blocking = true;
68
+ exports.description = "Preflight Redundancy Detection (BLOCKING)";
69
+ exports.tags = ["system"];
70
+ // Import shared patterns to exclude from duplicate detection
71
+ // These are expected to appear in many files since they're the shared source
72
+ const file_cache_1 = require("../../shared/file-cache");
73
+ const glob_patterns_1 = require("../../shared/glob-patterns");
74
+ const universal_progress_reporter_1 = require("./universal-progress-reporter");
75
+ const issues = [];
76
+ // Patterns to ignore (too generic to be meaningful for redundancy detection)
77
+ const IGNORE_PATTERNS = new Set([
78
+ // Generic regex patterns
79
+ ".*",
80
+ ".+",
81
+ "\\s+",
82
+ "\\w+",
83
+ "\\d+",
84
+ '[^"]+',
85
+ "[^']+",
86
+ "\\n",
87
+ "\\r?\\n",
88
+ // Common words that appear in many preflights (not actual redundancy)
89
+ "system",
90
+ "shared",
91
+ "scripts",
92
+ "constants",
93
+ "components",
94
+ "utils",
95
+ "hooks",
96
+ "types",
97
+ "config",
98
+ "error",
99
+ "warning",
100
+ "success",
101
+ "failed",
102
+ "import",
103
+ "export",
104
+ "function",
105
+ "const",
106
+ "return",
107
+ "async",
108
+ "await",
109
+ "string",
110
+ "number",
111
+ "boolean",
112
+ "object",
113
+ "array",
114
+ "null",
115
+ "undefined",
116
+ "true",
117
+ "false",
118
+ ]);
119
+ // File globs to ignore (too generic)
120
+ const IGNORE_GLOBS = new Set(["**/*.ts", "**/*.tsx", "**/*.js", "**/*.jsx", "*.ts", "*.tsx"]);
121
+ // Shared pattern globs - these are expected to appear in many files
122
+ // Don't flag them as duplicates since they come from glob-patterns.ts or are common patterns
123
+ const SHARED_PATTERN_GLOBS = new Set([
124
+ // Exclusion patterns from glob-patterns.ts
125
+ ...glob_patterns_1.CORE_EXCLUDES,
126
+ ...glob_patterns_1.STANDARD_EXCLUDES,
127
+ ...glob_patterns_1.FULL_EXCLUDES,
128
+ // Common test/story exclusion patterns
129
+ "**/*.test.ts",
130
+ "**/*.test.tsx",
131
+ "**/*.spec.ts",
132
+ "**/*.spec.tsx",
133
+ "**/tests/**",
134
+ "**/__tests__/**",
135
+ "**/__mocks__/**",
136
+ "**/*.stories.ts",
137
+ "**/*.stories.tsx",
138
+ "**/stories/**",
139
+ "**/.storybook/**",
140
+ // Common INCLUDE patterns - these are expected to be used by many preflights
141
+ "**/*.{ts,tsx}",
142
+ "**/*.{tsx,jsx}",
143
+ "**/*.{ts,tsx,js,jsx}",
144
+ "**/*.{tsx,ts}",
145
+ "**/*.test.*",
146
+ "**/*.spec.*",
147
+ "**/*.test.{ts,tsx}",
148
+ "**/*.spec.{ts,tsx}",
149
+ "**/*.stories.*",
150
+ "**/*.stories.{ts,tsx}",
151
+ "**/scripts/**",
152
+ "**/scripts/active/preflights/**",
153
+ "**/packages/ui/**",
154
+ "tests/e2e/**/*.spec.ts",
155
+ "tests/e2e/**/*.ts",
156
+ "app/**/page.tsx",
157
+ "app/**/page.{ts,tsx,js,jsx}",
158
+ "app/**/layout.tsx",
159
+ "app/**/*.tsx",
160
+ "app/api/**/*.ts",
161
+ "lib/**/*.ts",
162
+ "{app,components,lib,hooks}/**/*.{ts,tsx}",
163
+ "{app,components}/**/*.{tsx,jsx}",
164
+ "app/api/**/route.{ts,js}",
165
+ "app/api/**/route.ts",
166
+ "components/**/*.tsx",
167
+ "components/**/*.ts",
168
+ "components/**/*.{tsx,jsx}",
169
+ "**/ui/**",
170
+ "**/docs/**",
171
+ "**/components/ui/**",
172
+ "app/**/*Client.tsx",
173
+ "{app,components}/**/*.tsx",
174
+ "scripts/active/preflights/**/*.ts",
175
+ "**/utils/**",
176
+ "app/**/*.ts",
177
+ "{app,lib,components}/**/*.{ts,tsx}",
178
+ "app/**/*.{tsx,jsx}",
179
+ "packages/ui/src/**/*.tsx",
180
+ "**/test/**",
181
+ "**/*.d.ts",
182
+ ]);
183
+ function extractRegexPatterns(content) {
184
+ const patterns = [];
185
+ // Match regex literals: /pattern/flags
186
+ const regexLiteralMatches = content.matchAll(/\/([^\/\n]{5,})\/[gimsuvy]*/g);
187
+ for (const match of regexLiteralMatches) {
188
+ const pattern = match[1];
189
+ if (pattern && !IGNORE_PATTERNS.has(pattern) && pattern.length > 5) {
190
+ patterns.push(pattern);
191
+ }
192
+ }
193
+ // Match new RegExp('pattern')
194
+ const regexpConstructorMatches = content.matchAll(/new RegExp\s*\(\s*['"`]([^'"`]{5,})['"`]/g);
195
+ for (const match of regexpConstructorMatches) {
196
+ const pattern = match[1];
197
+ if (pattern && !IGNORE_PATTERNS.has(pattern)) {
198
+ patterns.push(pattern);
199
+ }
200
+ }
201
+ // Match .match(/pattern/) and .test(/pattern/)
202
+ const methodMatches = content.matchAll(/\.(match|test|replace|search)\s*\(\s*\/([^\/\n]{5,})\/[gimsuvy]*/g);
203
+ for (const match of methodMatches) {
204
+ const pattern = match[2];
205
+ if (pattern && !IGNORE_PATTERNS.has(pattern)) {
206
+ patterns.push(pattern);
207
+ }
208
+ }
209
+ return [...new Set(patterns)];
210
+ }
211
+ function extractFileGlobs(content) {
212
+ const globs = [];
213
+ // Match glob patterns in strings
214
+ const globMatches = content.matchAll(/['"`](\*\*\/[^'"`]+|[^'"`]*\*\.[a-z]+)['"`]/g);
215
+ for (const match of globMatches) {
216
+ const pattern = match[1];
217
+ if (pattern && !IGNORE_GLOBS.has(pattern)) {
218
+ globs.push(pattern);
219
+ }
220
+ }
221
+ // Match directory patterns
222
+ const dirMatches = content.matchAll(/glob\s*\(\s*['"`]([^'"`]+)['"`]/g);
223
+ for (const match of dirMatches) {
224
+ const pattern = match[1];
225
+ if (pattern && !IGNORE_GLOBS.has(pattern)) {
226
+ globs.push(pattern);
227
+ }
228
+ }
229
+ return [...new Set(globs)];
230
+ }
231
+ function extractErrorCodes(content) {
232
+ const codes = [];
233
+ // Match code: 'ERROR_CODE' patterns
234
+ const codeMatches = content.matchAll(/code:\s*['"]([A-Z][A-Z0-9_]+)['"]/g);
235
+ for (const match of codeMatches) {
236
+ if (match[1])
237
+ codes.push(match[1]);
238
+ }
239
+ // Match error code constants
240
+ const constMatches = content.matchAll(/const\s+([A-Z][A-Z0-9_]+)\s*=\s*['"]([A-Z][A-Z0-9_]+)['"]/g);
241
+ for (const match of constMatches) {
242
+ if (match[2])
243
+ codes.push(match[2]);
244
+ }
245
+ return [...new Set(codes)];
246
+ }
247
+ function extractCheckDescriptions(content) {
248
+ const descriptions = [];
249
+ // Match console.log with check descriptions
250
+ const logMatches = content.matchAll(/console\.log\s*\(\s*['"`]([^'"`]{20,})['"`]/g);
251
+ for (const match of logMatches) {
252
+ if (match[1] &&
253
+ !match[1].includes("${box.heavyHorizontal}") &&
254
+ !match[1].includes("${box.doubleHorizontal}")) {
255
+ descriptions.push(match[1]);
256
+ }
257
+ }
258
+ // Match description fields
259
+ const descMatches = content.matchAll(/description:\s*['"`]([^'"`]{20,})['"`]/g);
260
+ for (const match of descMatches) {
261
+ if (match[1])
262
+ descriptions.push(match[1]);
263
+ }
264
+ return descriptions;
265
+ }
266
+ function calculateContentHash(content) {
267
+ // Normalize content for comparison (remove comments, whitespace)
268
+ const normalized = content
269
+ .replace(/\/\/.*$/gm, "")
270
+ .replace(/\/\*[\s\S]*?\*\//g, "")
271
+ .replace(/\s+/g, " ")
272
+ .trim();
273
+ return crypto.createHash("md5").update(normalized).digest("hex").slice(0, 12);
274
+ }
275
+ function calculateSimilarity(str1, str2) {
276
+ const words1 = new Set(str1
277
+ .toLowerCase()
278
+ .split(/\W+/)
279
+ .filter((w) => w.length > 2));
280
+ const words2 = new Set(str2
281
+ .toLowerCase()
282
+ .split(/\W+/)
283
+ .filter((w) => w.length > 2));
284
+ if (words1.size === 0 || words2.size === 0)
285
+ return 0;
286
+ const intersection = new Set([...words1].filter((w) => words2.has(w)));
287
+ const union = new Set([...words1, ...words2]);
288
+ return intersection.size / union.size;
289
+ }
290
+ // CACHED FILE LISTS - Scan once, use everywhere
291
+ let _cachedPreflightFiles = null;
292
+ async function getPreflightFiles() {
293
+ if (!_cachedPreflightFiles) {
294
+ _cachedPreflightFiles = await file_cache_1.fileCache.getPreflightFiles();
295
+ }
296
+ return _cachedPreflightFiles;
297
+ }
298
+ async function analyzePreflightFile(filePath) {
299
+ const content = fs.readFileSync(filePath, "utf-8");
300
+ const relativePath = path.relative(process.cwd(), filePath);
301
+ // Extract preflight name from file or content
302
+ const nameMatch = content.match(/name:\s*['"]([^'"]+)['"]/);
303
+ const name = nameMatch?.[1] || path.basename(filePath, path.extname(filePath));
304
+ // Check if file imports from shared glob-patterns
305
+ const usesSharedPatterns = content.includes("from '../shared/glob-patterns'") ||
306
+ content.includes('from "../../shared/glob-patterns"') ||
307
+ content.includes("...STANDARD_EXCLUDES") ||
308
+ content.includes("...CORE_EXCLUDES") ||
309
+ content.includes("...FULL_EXCLUDES") ||
310
+ content.includes("...PRODUCTION_CODE_EXCLUDES");
311
+ return {
312
+ file: relativePath,
313
+ name,
314
+ regexPatterns: extractRegexPatterns(content),
315
+ fileGlobs: extractFileGlobs(content),
316
+ errorCodes: extractErrorCodes(content),
317
+ checkDescriptions: extractCheckDescriptions(content),
318
+ contentHash: calculateContentHash(content),
319
+ lineCount: content.split("\n").length,
320
+ usesSharedPatterns,
321
+ };
322
+ }
323
+ function findDuplicatePatterns(analyses) {
324
+ // Re-enabled with smarter filtering - only flag truly identical complex patterns
325
+ const patternToFiles = new Map();
326
+ for (const analysis of analyses) {
327
+ for (const pattern of analysis.regexPatterns) {
328
+ // Skip short/generic patterns
329
+ if (pattern.length < 20)
330
+ continue;
331
+ // Skip common patterns that are legitimately reused
332
+ if (/flex|grid|gap|margin|padding|className/i.test(pattern))
333
+ continue;
334
+ if (!patternToFiles.has(pattern)) {
335
+ patternToFiles.set(pattern, []);
336
+ }
337
+ patternToFiles.get(pattern).push(analysis.file);
338
+ }
339
+ }
340
+ for (const [pattern, files] of patternToFiles) {
341
+ if (files.length >= 3) {
342
+ // Only flag if 3+ preflights use the exact same complex pattern
343
+ issues.push({
344
+ type: "duplicate-pattern",
345
+ severity: "info",
346
+ message: `Complex regex pattern used by ${files.length} preflights - consider extracting to shared module`,
347
+ files,
348
+ pattern: pattern.substring(0, 50) + (pattern.length > 50 ? "..." : ""),
349
+ });
350
+ }
351
+ }
352
+ }
353
+ function findDuplicateGlobs(analyses) {
354
+ const globToFiles = new Map();
355
+ for (const analysis of analyses) {
356
+ for (const glob of analysis.fileGlobs) {
357
+ // Skip shared patterns - they're expected to be in many files
358
+ if (SHARED_PATTERN_GLOBS.has(glob))
359
+ continue;
360
+ if (!globToFiles.has(glob)) {
361
+ globToFiles.set(glob, []);
362
+ }
363
+ globToFiles.get(glob).push(analysis.file);
364
+ }
365
+ }
366
+ for (const [globPattern, files] of globToFiles) {
367
+ if (files.length >= 6) {
368
+ // Only flag if 6+ preflights scan same glob (meaningful redundancy)
369
+ issues.push({
370
+ type: "duplicate-glob",
371
+ severity: files.length >= 10 ? "warning" : "info",
372
+ message: `File glob "${globPattern}" scanned by ${files.length} preflights - consider consolidating`,
373
+ files,
374
+ pattern: globPattern,
375
+ });
376
+ }
377
+ }
378
+ }
379
+ function findDuplicateErrorCodes(analyses) {
380
+ const codeToFiles = new Map();
381
+ for (const analysis of analyses) {
382
+ for (const code of analysis.errorCodes) {
383
+ if (!codeToFiles.has(code)) {
384
+ codeToFiles.set(code, []);
385
+ }
386
+ codeToFiles.get(code).push(analysis.file);
387
+ }
388
+ }
389
+ for (const [code, files] of codeToFiles) {
390
+ if (files.length > 1) {
391
+ issues.push({
392
+ type: "duplicate-error-code",
393
+ severity: "error", // Duplicate error codes are a real problem
394
+ message: `Error code "${code}" emitted by ${files.length} preflights - indicates duplicate checks`,
395
+ files,
396
+ pattern: code,
397
+ });
398
+ }
399
+ }
400
+ }
401
+ // Generic names that shouldn't trigger similar-name warnings
402
+ const GENERIC_NAMES = new Set([
403
+ "delete",
404
+ "create",
405
+ "update",
406
+ "read",
407
+ "get",
408
+ "set",
409
+ "check",
410
+ "validate",
411
+ "test",
412
+ "run",
413
+ "execute",
414
+ "process",
415
+ "handle",
416
+ "main",
417
+ "init",
418
+ "setup",
419
+ "development",
420
+ "database",
421
+ "security",
422
+ "performance",
423
+ "quality",
424
+ // Workflow file names that call other preflights
425
+ "esm import extensions",
426
+ "image optimization",
427
+ "code quality",
428
+ "cost optimization",
429
+ "strict-lint",
430
+ "strict lint",
431
+ ]);
432
+ function findSimilarNames(analyses) {
433
+ // Re-enabled with better heuristics - only flag very high similarity (>0.8)
434
+ const checked = new Set();
435
+ for (let i = 0; i < analyses.length; i++) {
436
+ for (let j = i + 1; j < analyses.length; j++) {
437
+ const a1 = analyses[i];
438
+ const a2 = analyses[j];
439
+ const key = `${a1.file}:${a2.file}`;
440
+ if (checked.has(key))
441
+ continue;
442
+ checked.add(key);
443
+ // Skip workflow files - they legitimately have similar names
444
+ if (a1.file.includes("/workflows/") || a2.file.includes("/workflows/"))
445
+ continue;
446
+ // Skip consolidated files - they're meant to replace others
447
+ if (a1.file.includes("/consolidated/") || a2.file.includes("/consolidated/"))
448
+ continue;
449
+ const similarity = calculateSimilarity(a1.name, a2.name);
450
+ // Only flag very high similarity (>0.8) and same directory
451
+ if (similarity > 0.8) {
452
+ const dir1 = path.dirname(a1.file);
453
+ const dir2 = path.dirname(a2.file);
454
+ if (dir1 === dir2) {
455
+ issues.push({
456
+ type: "similar-name",
457
+ severity: "info",
458
+ message: `Very similar names in same directory (${(similarity * 100).toFixed(0)}% match) - consider consolidating`,
459
+ files: [a1.file, a2.file],
460
+ similarity,
461
+ });
462
+ }
463
+ }
464
+ }
465
+ }
466
+ }
467
+ function findHighOverlap(analyses) {
468
+ const checked = new Set();
469
+ for (let i = 0; i < analyses.length; i++) {
470
+ for (let j = i + 1; j < analyses.length; j++) {
471
+ const a1 = analyses[i];
472
+ const a2 = analyses[j];
473
+ const key = `${a1.file}:${a2.file}`;
474
+ if (checked.has(key))
475
+ continue;
476
+ checked.add(key);
477
+ // Calculate overlap in regex patterns
478
+ const patterns1 = new Set(a1.regexPatterns);
479
+ const patterns2 = new Set(a2.regexPatterns);
480
+ const patternOverlap = [...patterns1].filter((p) => patterns2.has(p));
481
+ // Calculate overlap in error codes
482
+ const codes1 = new Set(a1.errorCodes);
483
+ const codes2 = new Set(a2.errorCodes);
484
+ const codeOverlap = [...codes1].filter((c) => codes2.has(c));
485
+ // High overlap = many shared patterns AND shared error codes
486
+ if (patternOverlap.length >= 3 && codeOverlap.length >= 1) {
487
+ issues.push({
488
+ type: "high-overlap",
489
+ severity: "error",
490
+ message: `High overlap between preflights: ${patternOverlap.length} shared patterns, ${codeOverlap.length} shared error codes. Consider merging.`,
491
+ files: [a1.file, a2.file],
492
+ similarity: patternOverlap.length / Math.max(patterns1.size, patterns2.size),
493
+ });
494
+ }
495
+ }
496
+ }
497
+ }
498
+ /**
499
+ * Find domain fragmentation - too many preflights in the same category
500
+ * that could be consolidated into fewer modules.
501
+ *
502
+ * Re-enabled with smarter thresholds - only flag categories with 10+ standalone files
503
+ * that are NOT already orchestrated by consolidated/*.ts files.
504
+ */
505
+ function findDomainFragmentation(analyses) {
506
+ const categoryToFiles = new Map();
507
+ // Get list of already orchestrated preflights
508
+ const orchestratedPreflights = getOrchestratedPreflights();
509
+ for (const analysis of analyses) {
510
+ // Extract category from path (e.g., "ui" from "scripts/active/preflights/ui/button-consistency.ts")
511
+ // Normalize path separators for cross-platform compatibility
512
+ const normalizedPath = analysis.file.replace(/\\/g, "/");
513
+ const match = normalizedPath.match(/preflights\/([^\/]+)\//);
514
+ if (!match)
515
+ continue;
516
+ const category = match[1];
517
+ // Skip consolidated, workflows, system, shared, utils - these are organizational
518
+ if (["consolidated", "workflows", "system", "shared", "utils"].includes(category))
519
+ continue;
520
+ // Skip files that are orchestrators themselves
521
+ if (isOrchestratorFile(analysis.file))
522
+ continue;
523
+ // Skip files that are already orchestrated
524
+ const relativePath = normalizedPath.replace(/^scripts\/active\/preflights\//, "");
525
+ if (orchestratedPreflights.has(relativePath) || orchestratedPreflights.has(normalizedPath)) {
526
+ continue;
527
+ }
528
+ if (!categoryToFiles.has(category)) {
529
+ categoryToFiles.set(category, []);
530
+ }
531
+ categoryToFiles.get(category).push(analysis.file);
532
+ }
533
+ for (const [category, files] of categoryToFiles) {
534
+ // Only flag if 10+ NON-ORCHESTRATED files exist
535
+ if (files.length >= 10) {
536
+ // Check if this category already has a consolidated orchestrator
537
+ if (hasConsolidatedOrchestrator(category, analyses)) {
538
+ continue; // Already has orchestrator - not fragmentation
539
+ }
540
+ issues.push({
541
+ type: "similar-name", // Using existing type for domain fragmentation
542
+ severity: "info",
543
+ message: `Category "${category}" has ${files.length} non-orchestrated preflights - consider consolidating into fewer modules`,
544
+ files: files.slice(0, 5),
545
+ });
546
+ }
547
+ }
548
+ }
549
+ /**
550
+ * Find preflights scanning the same test files that could share a single scan
551
+ *
552
+ * DISABLED: This check is advisory only. Many preflights legitimately scan
553
+ * test files for different purposes (patterns, coverage, performance, etc.)
554
+ */
555
+ function findTestFileScanOverlap(_analyses) {
556
+ // Disabled - produces advisory findings that don't indicate actual problems
557
+ return;
558
+ }
559
+ /**
560
+ * NEW: Find orphaned preflights - not referenced in package.json or workflows
561
+ * These may be dead code or forgotten preflights that should be removed or integrated.
562
+ *
563
+ * IMPORTANT: Files orchestrated by consolidated/*.ts are NOT orphaned - they're
564
+ * called via runCheck() which this function now recognizes.
565
+ */
566
+ async function findOrphanedPreflights(analyses) {
567
+ try {
568
+ const packageJsonPath = path.join(process.cwd(), "package.json");
569
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf-8"));
570
+ const scripts = packageJson.scripts || {};
571
+ const scriptValues = Object.values(scripts).join(" ");
572
+ // Get list of orchestrated preflights (called by consolidated/*.ts)
573
+ const orchestratedPreflights = getOrchestratedPreflights();
574
+ // Also check workflow files
575
+ const workflowDir = path.join(process.cwd(), "scripts/active/preflights/workflows");
576
+ let workflowContent = "";
577
+ if (fs.existsSync(workflowDir)) {
578
+ const workflowFiles = fs.readdirSync(workflowDir).filter((f) => f.endsWith(".ts"));
579
+ for (const wf of workflowFiles) {
580
+ workflowContent += fs.readFileSync(path.join(workflowDir, wf), "utf-8");
581
+ }
582
+ }
583
+ // Also check consolidated files for references
584
+ const consolidatedDir = path.join(process.cwd(), "scripts/active/preflights/consolidated");
585
+ let consolidatedContent = "";
586
+ if (fs.existsSync(consolidatedDir)) {
587
+ const consolidatedFiles = fs.readdirSync(consolidatedDir).filter((f) => f.endsWith(".ts"));
588
+ for (const cf of consolidatedFiles) {
589
+ consolidatedContent += fs.readFileSync(path.join(consolidatedDir, cf), "utf-8");
590
+ }
591
+ }
592
+ const orphaned = [];
593
+ for (const analysis of analyses) {
594
+ // Skip workflow files, system files, shared utilities, consolidated files
595
+ if (analysis.file.includes("/workflows/"))
596
+ continue;
597
+ if (analysis.file.includes("/system/"))
598
+ continue;
599
+ if (analysis.file.includes("/shared/"))
600
+ continue;
601
+ if (analysis.file.includes("/utils/"))
602
+ continue;
603
+ if (analysis.file.includes("/consolidated/"))
604
+ continue;
605
+ const fileName = path.basename(analysis.file, path.extname(analysis.file));
606
+ const relativePath = analysis.file.replace(/^scripts\/active\/preflights\//, "");
607
+ // Check if orchestrated by consolidated/*.ts
608
+ if (orchestratedPreflights.has(relativePath) || orchestratedPreflights.has(analysis.file)) {
609
+ continue; // Not orphaned - called by orchestrator
610
+ }
611
+ // Check if referenced in package.json scripts
612
+ const inPackageJson = scriptValues.includes(fileName) || scriptValues.includes(analysis.file);
613
+ // Check if imported in workflow files
614
+ const inWorkflows = workflowContent.includes(fileName) ||
615
+ workflowContent.includes(`from './${fileName}'`) ||
616
+ workflowContent.includes(`from "../${path.basename(path.dirname(analysis.file))}/${fileName}"`);
617
+ // Check if referenced in consolidated files
618
+ const inConsolidated = consolidatedContent.includes(fileName) ||
619
+ consolidatedContent.includes(analysis.file) ||
620
+ consolidatedContent.includes(relativePath);
621
+ if (!inPackageJson && !inWorkflows && !inConsolidated) {
622
+ orphaned.push(analysis.file);
623
+ }
624
+ }
625
+ if (orphaned.length > 5) {
626
+ issues.push({
627
+ type: "local-excludes", // Reusing type for orphaned detection
628
+ severity: "info",
629
+ message: `${orphaned.length} preflights not referenced in package.json, workflows, or consolidated files - may be orphaned`,
630
+ files: orphaned.slice(0, 10),
631
+ });
632
+ }
633
+ }
634
+ catch {
635
+ // Skip if can't read package.json
636
+ }
637
+ }
638
+ /**
639
+ * NEW: Find build command redundancy - preflights called multiple times in build
640
+ */
641
+ function findBuildCommandRedundancy() {
642
+ try {
643
+ const packageJsonPath = path.join(process.cwd(), "package.json");
644
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf-8"));
645
+ const scripts = packageJson.scripts || {};
646
+ const buildCommand = scripts.build || "";
647
+ // Check if preflight:all is called AND individual preflights are also called
648
+ if (buildCommand.includes("preflight:all")) {
649
+ const redundantCalls = [];
650
+ // These are likely already included in preflight:all
651
+ const likelyIncluded = [
652
+ "preflight:ui:consistency",
653
+ "preflight:mobile-responsive",
654
+ "preflight:product-image-animations",
655
+ "preflight:ux-consistency",
656
+ ];
657
+ for (const preflight of likelyIncluded) {
658
+ if (buildCommand.includes(preflight)) {
659
+ redundantCalls.push(preflight);
660
+ }
661
+ }
662
+ if (redundantCalls.length > 0) {
663
+ issues.push({
664
+ type: "duplicate-glob", // Reusing type for build redundancy
665
+ severity: "warning",
666
+ message: `Build command calls preflight:all AND ${redundantCalls.length} individual preflights that may already be included. Check if these are redundant: ${redundantCalls.join(", ")}`,
667
+ files: ["package.json"],
668
+ });
669
+ }
670
+ }
671
+ }
672
+ catch {
673
+ // Skip if can't read package.json
674
+ }
675
+ }
676
+ /**
677
+ * Detect if a file is an orchestrator (calls other preflights)
678
+ * Orchestrators use patterns like:
679
+ * - runCheck('name', 'path/to/preflight.ts')
680
+ * - exec('pnpm preflight:xxx')
681
+ * - import from other preflight files
682
+ */
683
+ function isOrchestratorFile(filePath) {
684
+ // Consolidated and workflow files are always orchestrators
685
+ if (filePath.includes("/consolidated/") || filePath.includes("/workflows/")) {
686
+ return true;
687
+ }
688
+ try {
689
+ const content = fs.readFileSync(filePath, "utf-8");
690
+ // Check for runCheck pattern (used in consolidated/*.ts)
691
+ if (/runCheck\s*\(\s*['"][^'"]+['"]\s*,\s*['"][^'"]+\.ts['"]/.test(content)) {
692
+ return true;
693
+ }
694
+ // Check for exec pattern calling other preflights
695
+ if (/exec\s*\(\s*['"`].*preflight.*\.ts/.test(content)) {
696
+ return true;
697
+ }
698
+ // Check for pnpm preflight commands
699
+ if (/pnpm\s+preflight:/.test(content)) {
700
+ return true;
701
+ }
702
+ // Check for importing and calling multiple preflight modules
703
+ const preflightImports = content.match(/from\s+['"][^'"]*preflights\/[^'"]+['"]/g);
704
+ if (preflightImports && preflightImports.length >= 3) {
705
+ return true;
706
+ }
707
+ return false;
708
+ }
709
+ catch {
710
+ return false;
711
+ }
712
+ }
713
+ /**
714
+ * Get list of preflights that are already orchestrated by consolidated/*.ts files
715
+ */
716
+ function getOrchestratedPreflights() {
717
+ const orchestrated = new Set();
718
+ const consolidatedDir = path.join(process.cwd(), "scripts/active/preflights/consolidated");
719
+ const workflowsDir = path.join(process.cwd(), "scripts/active/preflights/workflows");
720
+ const scanDir = (dir) => {
721
+ if (!fs.existsSync(dir))
722
+ return;
723
+ const files = fs.readdirSync(dir).filter((f) => f.endsWith(".ts"));
724
+ for (const file of files) {
725
+ try {
726
+ const content = fs.readFileSync(path.join(dir, file), "utf-8");
727
+ // Extract preflight paths from runCheck calls
728
+ // Pattern: runCheck("name", "scripts/active/preflights/path.ts")
729
+ const runCheckMatches = content.matchAll(/runCheck\s*\(\s*['"][^'"]+['"]\s*,\s*['"]([^'"]+\.(?:ts|js|mjs))['"]/g);
730
+ for (const match of runCheckMatches) {
731
+ if (match[1]) {
732
+ // Normalize path
733
+ const preflightPath = match[1].replace(/^scripts\/active\/preflights\//, "");
734
+ orchestrated.add(preflightPath);
735
+ }
736
+ }
737
+ // Extract from exec calls
738
+ const execMatches = content.matchAll(/exec\s*\(\s*['"`][^'"`]*scripts\/active\/preflights\/([^'"`\s]+\.(?:ts|js|mjs))/g);
739
+ for (const match of execMatches) {
740
+ if (match[1]) {
741
+ orchestrated.add(match[1]);
742
+ }
743
+ }
744
+ // Extract from script arrays (used in quality.ts pattern)
745
+ // Pattern: { name: "...", script: "scripts/active/preflights/path.ts" }
746
+ const scriptArrayMatches = content.matchAll(/script:\s*['"]scripts\/active\/preflights\/([^'"]+\.(?:ts|js|mjs))['"]/g);
747
+ for (const match of scriptArrayMatches) {
748
+ if (match[1]) {
749
+ orchestrated.add(match[1]);
750
+ }
751
+ }
752
+ // Extract from string literals containing preflight paths
753
+ // Pattern: "scripts/active/preflights/specialized/file.ts"
754
+ const stringLiteralMatches = content.matchAll(/['"]scripts\/active\/preflights\/(specialized\/[^'"]+\.(?:ts|js|mjs))['"]/g);
755
+ for (const match of stringLiteralMatches) {
756
+ if (match[1]) {
757
+ orchestrated.add(match[1]);
758
+ }
759
+ }
760
+ }
761
+ catch {
762
+ // Skip files that can't be read
763
+ }
764
+ }
765
+ };
766
+ scanDir(consolidatedDir);
767
+ scanDir(workflowsDir);
768
+ return orchestrated;
769
+ }
770
+ /**
771
+ * Check if a category already has a consolidated orchestrator
772
+ */
773
+ function hasConsolidatedOrchestrator(category, analyses) {
774
+ const categoryLower = category.toLowerCase().replace(/-/g, "");
775
+ // Check consolidated directory for matching orchestrator
776
+ return analyses.some((a) => {
777
+ if (!a.file.includes("/consolidated/"))
778
+ return false;
779
+ const fileName = path.basename(a.file, path.extname(a.file)).toLowerCase().replace(/-/g, "");
780
+ // Match category name or related names
781
+ return (fileName.includes(categoryLower) ||
782
+ categoryLower.includes(fileName) ||
783
+ // Special mappings
784
+ (category === "prisma" && fileName.includes("database")) ||
785
+ (category === "forms" && fileName.includes("uiforms")) ||
786
+ (category === "buttons" && fileName.includes("uibuttons")) ||
787
+ (category === "cards" && fileName.includes("uicards")) ||
788
+ (category === "responsive" &&
789
+ (fileName.includes("uiresponsive") || fileName.includes("uigrid"))) ||
790
+ (category === "spacing" && fileName.includes("uispacing")) ||
791
+ (category === "typography" && fileName.includes("uitypography")) ||
792
+ (category === "accessibility" && fileName.includes("uiaccessibility")) ||
793
+ (category === "dark-mode" && fileName.includes("darkmode")));
794
+ });
795
+ }
796
+ function findConsolidationOpportunities(analyses) {
797
+ const opportunities = [];
798
+ // Get list of already orchestrated preflights
799
+ const orchestratedPreflights = getOrchestratedPreflights();
800
+ // Group files by prefix patterns (e.g., "button-", "card-", "form-", "grid-")
801
+ const prefixGroups = new Map();
802
+ const prefixPatterns = [
803
+ { prefix: "button-", category: "buttons", suggestedName: "ui-buttons" },
804
+ { prefix: "card-", category: "cards", suggestedName: "ui-cards" },
805
+ { prefix: "form-", category: "forms", suggestedName: "ui-forms" },
806
+ { prefix: "formfield-", category: "forms", suggestedName: "ui-forms" },
807
+ { prefix: "grid-", category: "grid", suggestedName: "ui-grid-responsive" },
808
+ { prefix: "spacing-", category: "spacing", suggestedName: "ui-spacing" },
809
+ { prefix: "deprecated-", category: "deprecated", suggestedName: "ui-deprecated" },
810
+ { prefix: "prisma-", category: "prisma", suggestedName: "database-prisma" },
811
+ { prefix: "select-", category: "forms", suggestedName: "ui-forms" },
812
+ { prefix: "textfield-", category: "forms", suggestedName: "ui-forms" },
813
+ { prefix: "mobile-", category: "responsive", suggestedName: "ui-grid-responsive" },
814
+ { prefix: "table-", category: "tables", suggestedName: "ui-tables" },
815
+ { prefix: "typography-", category: "typography", suggestedName: "ui-typography" },
816
+ { prefix: "dark-mode-", category: "dark-mode", suggestedName: "ui-dark-mode" },
817
+ { prefix: "accessibility-", category: "accessibility", suggestedName: "ui-accessibility" },
818
+ { prefix: "css-", category: "css", suggestedName: "css-validation" },
819
+ ];
820
+ for (const analysis of analyses) {
821
+ // Skip organizational directories
822
+ if (analysis.file.includes("/consolidated/"))
823
+ continue;
824
+ if (analysis.file.includes("/workflows/"))
825
+ continue;
826
+ if (analysis.file.includes("/system/"))
827
+ continue;
828
+ if (analysis.file.includes("/shared/"))
829
+ continue;
830
+ if (analysis.file.includes("/utils/"))
831
+ continue;
832
+ // Skip files that are orchestrators themselves
833
+ if (isOrchestratorFile(analysis.file))
834
+ continue;
835
+ // Skip files that are already orchestrated by consolidated/*.ts
836
+ // Normalize path separators for cross-platform compatibility
837
+ const relativePath = analysis.file
838
+ .replace(/\\/g, "/")
839
+ .replace(/^scripts\/active\/preflights\//, "");
840
+ if (orchestratedPreflights.has(relativePath) ||
841
+ orchestratedPreflights.has(analysis.file.replace(/\\/g, "/"))) {
842
+ continue;
843
+ }
844
+ const fileName = path.basename(analysis.file, path.extname(analysis.file));
845
+ for (const { prefix, category } of prefixPatterns) {
846
+ if (fileName.startsWith(prefix)) {
847
+ if (!prefixGroups.has(category)) {
848
+ prefixGroups.set(category, []);
849
+ }
850
+ prefixGroups.get(category).push(analysis);
851
+ break;
852
+ }
853
+ }
854
+ }
855
+ // Check for groups with 3+ files that could be consolidated
856
+ for (const [category, files] of prefixGroups) {
857
+ if (files.length >= 3) {
858
+ // Check if a consolidated orchestrator already exists for this category
859
+ if (hasConsolidatedOrchestrator(category, analyses)) {
860
+ continue; // Already consolidated - not a real opportunity
861
+ }
862
+ const patternInfo = prefixPatterns.find((p) => p.category === category);
863
+ opportunities.push({
864
+ category,
865
+ files: files.map((f) => f.file),
866
+ reason: `${files.length} preflights with "${category}" prefix could be merged`,
867
+ suggestedName: patternInfo?.suggestedName || `consolidated-${category}`,
868
+ priority: files.length >= 5 ? "high" : files.length >= 3 ? "medium" : "low",
869
+ });
870
+ }
871
+ }
872
+ // Check for files in same directory with similar functionality
873
+ // BUT only if the directory doesn't already have a consolidated orchestrator
874
+ const dirGroups = new Map();
875
+ for (const analysis of analyses) {
876
+ // Skip organizational directories
877
+ if (analysis.file.includes("/consolidated/"))
878
+ continue;
879
+ if (analysis.file.includes("/workflows/"))
880
+ continue;
881
+ if (analysis.file.includes("/system/"))
882
+ continue;
883
+ if (analysis.file.includes("/shared/"))
884
+ continue;
885
+ if (analysis.file.includes("/utils/"))
886
+ continue;
887
+ // Skip orchestrators
888
+ if (isOrchestratorFile(analysis.file))
889
+ continue;
890
+ // Skip already orchestrated files
891
+ // Normalize path separators for cross-platform compatibility
892
+ const relativePath = analysis.file
893
+ .replace(/\\/g, "/")
894
+ .replace(/^scripts\/active\/preflights\//, "");
895
+ if (orchestratedPreflights.has(relativePath) ||
896
+ orchestratedPreflights.has(analysis.file.replace(/\\/g, "/"))) {
897
+ continue;
898
+ }
899
+ const dir = path.dirname(analysis.file);
900
+ if (!dirGroups.has(dir)) {
901
+ dirGroups.set(dir, []);
902
+ }
903
+ dirGroups.get(dir).push(analysis);
904
+ }
905
+ for (const [dir, files] of dirGroups) {
906
+ // Skip if directory has fewer than 8 NON-ORCHESTRATED standalone files
907
+ if (files.length < 8)
908
+ continue;
909
+ const dirName = path.basename(dir);
910
+ // Skip organizational directories that shouldn't be consolidated
911
+ if (["workflows", "utils", "system", "shared", "consolidated"].includes(dirName)) {
912
+ continue;
913
+ }
914
+ // Check if this directory already has a consolidated orchestrator
915
+ if (hasConsolidatedOrchestrator(dirName, analyses)) {
916
+ continue; // Already has orchestrator - not a real opportunity
917
+ }
918
+ opportunities.push({
919
+ category: dirName,
920
+ files: files.slice(0, 10).map((f) => f.file),
921
+ reason: `Directory "${dirName}" has ${files.length} non-orchestrated preflights - consider creating consolidated/${dirName}.ts`,
922
+ suggestedName: `${dirName}`,
923
+ priority: files.length >= 15 ? "high" : "medium",
924
+ });
925
+ }
926
+ return opportunities;
927
+ }
928
+ /**
929
+ * Find preflights with identical or near-identical content (copy-pasted).
930
+ * Uses content hash to detect duplicates.
931
+ */
932
+ function findDuplicateContent(analyses) {
933
+ const hashToFiles = new Map();
934
+ for (const analysis of analyses) {
935
+ if (!hashToFiles.has(analysis.contentHash)) {
936
+ hashToFiles.set(analysis.contentHash, []);
937
+ }
938
+ hashToFiles.get(analysis.contentHash).push(analysis);
939
+ }
940
+ for (const [hash, duplicates] of hashToFiles) {
941
+ if (duplicates.length > 1) {
942
+ issues.push({
943
+ type: "duplicate-content",
944
+ severity: "error",
945
+ message: `${duplicates.length} preflights have identical content (hash: ${hash}). These are likely copy-pasted and should be consolidated.`,
946
+ files: duplicates.map((d) => d.file),
947
+ pattern: hash,
948
+ });
949
+ }
950
+ }
951
+ }
952
+ /**
953
+ * Find preflights not using shared patterns that should be migrated.
954
+ * Tracks adoption rate of shared glob-patterns.ts
955
+ */
956
+ function findSharedPatternAdoption(analyses) {
957
+ const notUsingShared = analyses.filter((a) => !a.usesSharedPatterns);
958
+ const adoptionRate = (((analyses.length - notUsingShared.length) / analyses.length) *
959
+ 100).toFixed(1);
960
+ // Only flag if adoption is below 20% (most preflights don't need shared patterns)
961
+ // This is just for tracking, not actionable
962
+ if (parseFloat(adoptionRate) < 20) {
963
+ issues.push({
964
+ type: "local-excludes",
965
+ severity: "info",
966
+ message: `Shared pattern adoption: ${adoptionRate}%. Consider migrating more preflights to use shared/glob-patterns.ts.`,
967
+ files: notUsingShared.slice(0, 5).map((a) => a.file),
968
+ });
969
+ }
970
+ }
971
+ /**
972
+ * Find preflights with local EXCLUDED definitions that should use shared glob-patterns.ts
973
+ * This prevents the pattern duplication problem from recurring.
974
+ *
975
+ * Only flags const definitions with hardcoded glob strings (not regex patterns or spread operators).
976
+ */
977
+ function findLocalExcludeDefinitions(analyses) {
978
+ const filesWithLocalExcludes = [];
979
+ for (const analysis of analyses) {
980
+ // Skip the shared glob-patterns file itself
981
+ if (analysis.file.includes("shared/glob-patterns"))
982
+ continue;
983
+ try {
984
+ const content = fs.readFileSync(analysis.file, "utf-8");
985
+ // Check if file has local EXCLUDED/EXCLUDED_PATHS/SKIP_PATTERNS const definition
986
+ // with hardcoded glob strings (not using spread from shared patterns)
987
+ const localExcludedMatch = content.match(/const\s+(?:EXCLUDED|EXCLUDED_PATHS|SKIP_PATTERNS)\s*=\s*\[([^\]]*)\]/s);
988
+ if (localExcludedMatch) {
989
+ const arrayContent = localExcludedMatch[1] || "";
990
+ // Skip if it uses spread operator from shared patterns (already migrated)
991
+ if (arrayContent.includes("...STANDARD_EXCLUDES") ||
992
+ arrayContent.includes("...CORE_EXCLUDES") ||
993
+ arrayContent.includes("...PRODUCTION_CODE_EXCLUDES") ||
994
+ arrayContent.includes("...FULL_EXCLUDES") ||
995
+ arrayContent.includes("extendExcludes")) {
996
+ continue;
997
+ }
998
+ // Skip if it's regex patterns (like /node_modules/) not glob strings
999
+ if (arrayContent.includes("/node_modules/") &&
1000
+ !arrayContent.includes("'**/node_modules/**'") &&
1001
+ !arrayContent.includes('"**/node_modules/**"')) {
1002
+ continue;
1003
+ }
1004
+ // Check if it has hardcoded glob strings like '**/node_modules/**'
1005
+ const hasHardcodedGlobs = /['"](\*\*\/[^'"]+|[^'"]*\*\.[a-z]+)['"]/.test(arrayContent);
1006
+ if (hasHardcodedGlobs) {
1007
+ filesWithLocalExcludes.push(analysis.file);
1008
+ }
1009
+ }
1010
+ }
1011
+ catch {
1012
+ // Skip files that can't be read
1013
+ }
1014
+ }
1015
+ if (filesWithLocalExcludes.length > 0) {
1016
+ issues.push({
1017
+ type: "duplicate-glob",
1018
+ severity: "error",
1019
+ message: `${filesWithLocalExcludes.length} preflight(s) define local EXCLUDED/SKIP_PATTERNS arrays with hardcoded globs instead of using shared/glob-patterns.ts. Run: pnpm tsx scripts/active/maintenance-tools/migrate-preflight-excludes.ts --apply`,
1020
+ files: filesWithLocalExcludes,
1021
+ });
1022
+ }
1023
+ }
1024
+ async function run() {
1025
+ const reporter = (0, universal_progress_reporter_1.createUniversalProgressReporter)(exports.name);
1026
+ const isVerbose = process.argv.includes("--verbose");
1027
+ const isJson = process.argv.includes("--json");
1028
+ if (!isJson) {
1029
+ console.log(`\n${console_chars_1.emoji.search} Preflight Redundancy Detection (blocking)\n`);
1030
+ console.log((0, console_chars_1.createDivider)(70, "heavy"));
1031
+ }
1032
+ // Find all preflight files
1033
+ const preflightFiles = await getPreflightFiles();
1034
+ if (!isJson) {
1035
+ console.log(`${console_chars_1.emoji.chart} Analyzing ${preflightFiles.length} preflight files...\n`);
1036
+ }
1037
+ // Analyze each preflight
1038
+ const analyses = [];
1039
+ for (const file of preflightFiles) {
1040
+ try {
1041
+ const analysis = await analyzePreflightFile(file);
1042
+ analyses.push(analysis);
1043
+ }
1044
+ catch (err) {
1045
+ if (!isJson) {
1046
+ console.warn(`${console_chars_1.emoji.warning} Could not analyze ${file}: ${err}`);
1047
+ }
1048
+ }
1049
+ }
1050
+ // Find redundancies
1051
+ findDuplicatePatterns(analyses);
1052
+ findDuplicateGlobs(analyses);
1053
+ findDuplicateErrorCodes(analyses);
1054
+ findSimilarNames(analyses);
1055
+ findHighOverlap(analyses);
1056
+ findDomainFragmentation(analyses);
1057
+ findTestFileScanOverlap(analyses);
1058
+ findDuplicateContent(analyses);
1059
+ findSharedPatternAdoption(analyses);
1060
+ findLocalExcludeDefinitions(analyses);
1061
+ await findOrphanedPreflights(analyses);
1062
+ findBuildCommandRedundancy();
1063
+ // Find consolidation opportunities
1064
+ const consolidationOpportunities = findConsolidationOpportunities(analyses);
1065
+ // Report results
1066
+ const errors = issues.filter((i) => i.severity === "error");
1067
+ const warnings = issues.filter((i) => i.severity === "warning");
1068
+ const infos = issues.filter((i) => i.severity === "info");
1069
+ // JSON output for trend tracking
1070
+ if (isJson) {
1071
+ const report = {
1072
+ timestamp: new Date().toISOString(),
1073
+ totalPreflights: analyses.length,
1074
+ errors: errors.length,
1075
+ warnings: warnings.length,
1076
+ infos: infos.length,
1077
+ totalRegexPatterns: analyses.reduce((sum, a) => sum + a.regexPatterns.length, 0),
1078
+ totalErrorCodes: analyses.reduce((sum, a) => sum + a.errorCodes.length, 0),
1079
+ issues: issues,
1080
+ };
1081
+ console.log(JSON.stringify(report, null, 2));
1082
+ process.exit(errors.length > 0 ? 1 : 0);
1083
+ }
1084
+ if (errors.length > 0) {
1085
+ console.log(`${console_chars_1.emoji.error} ERRORS (blocking - must fix):`);
1086
+ for (const issue of errors) {
1087
+ console.log(`\n [${issue.type}] ${issue.message}`);
1088
+ console.log(` Files: ${issue.files.map((f) => path.basename(f)).join(", ")}`);
1089
+ }
1090
+ console.log("");
1091
+ }
1092
+ if (warnings.length > 0) {
1093
+ console.log(`${console_chars_1.emoji.warning} WARNINGS (should fix):`);
1094
+ for (const issue of warnings.slice(0, 10)) {
1095
+ console.log(`\n [${issue.type}] ${issue.message}`);
1096
+ console.log(` Files: ${issue.files.map((f) => path.basename(f)).join(", ")}`);
1097
+ }
1098
+ if (warnings.length > 10) {
1099
+ console.log(`\n ... and ${warnings.length - 10} more warnings`);
1100
+ }
1101
+ console.log("");
1102
+ }
1103
+ if (infos.length > 0 && isVerbose) {
1104
+ console.log(`${console_chars_1.emoji.info} INFO (for awareness):`);
1105
+ for (const issue of infos.slice(0, 5)) {
1106
+ console.log(` [${issue.type}] ${issue.message}`);
1107
+ }
1108
+ if (infos.length > 5) {
1109
+ console.log(` ... and ${infos.length - 5} more info items`);
1110
+ }
1111
+ console.log("");
1112
+ }
1113
+ // Show consolidation opportunities
1114
+ if (consolidationOpportunities.length > 0) {
1115
+ console.log(`\n${console_chars_1.emoji.hint} CONSOLIDATION OPPORTUNITIES:`);
1116
+ console.log((0, console_chars_1.createDivider)(70, "light"));
1117
+ const highPriority = consolidationOpportunities.filter((o) => o.priority === "high");
1118
+ const mediumPriority = consolidationOpportunities.filter((o) => o.priority === "medium");
1119
+ if (highPriority.length > 0) {
1120
+ console.log(`\n ${console_chars_1.emoji.error} HIGH PRIORITY (5+ files):`);
1121
+ for (const opp of highPriority) {
1122
+ console.log(`\n Category: ${opp.category}`);
1123
+ console.log(` Reason: ${opp.reason}`);
1124
+ console.log(` Suggested: consolidated/${opp.suggestedName}.ts`);
1125
+ console.log(` Files: ${opp.files
1126
+ .slice(0, 5)
1127
+ .map((f) => path.basename(f))
1128
+ .join(", ")}${opp.files.length > 5 ? ` (+${opp.files.length - 5} more)` : ""}`);
1129
+ }
1130
+ }
1131
+ if (mediumPriority.length > 0 && isVerbose) {
1132
+ console.log(`\n ${console_chars_1.emoji.warning} MEDIUM PRIORITY (3-4 files):`);
1133
+ for (const opp of mediumPriority.slice(0, 5)) {
1134
+ console.log(`\n Category: ${opp.category}`);
1135
+ console.log(` Reason: ${opp.reason}`);
1136
+ console.log(` Suggested: consolidated/${opp.suggestedName}.ts`);
1137
+ }
1138
+ if (mediumPriority.length > 5) {
1139
+ console.log(`\n ... and ${mediumPriority.length - 5} more medium priority opportunities`);
1140
+ }
1141
+ }
1142
+ console.log(`\n Total opportunities: ${consolidationOpportunities.length} (${highPriority.length} high, ${mediumPriority.length} medium)`);
1143
+ }
1144
+ // Summary
1145
+ console.log((0, console_chars_1.createDivider)(70, "heavy"));
1146
+ console.log(`${console_chars_1.emoji.chart} Summary: ${errors.length} errors, ${warnings.length} warnings, ${infos.length} info`);
1147
+ console.log(` Analyzed: ${analyses.length} preflights`);
1148
+ console.log(` Total regex patterns: ${analyses.reduce((sum, a) => sum + a.regexPatterns.length, 0)}`);
1149
+ console.log(` Total error codes: ${analyses.reduce((sum, a) => sum + a.errorCodes.length, 0)}`);
1150
+ // Shared pattern adoption stats
1151
+ const usingShared = analyses.filter((a) => a.usesSharedPatterns).length;
1152
+ console.log(` Shared pattern adoption: ${usingShared}/${analyses.length} (${((usingShared / analyses.length) * 100).toFixed(0)}%)`);
1153
+ if (errors.length === 0) {
1154
+ console.log(`\n${console_chars_1.emoji.success} No critical redundancies detected\n`);
1155
+ process.exit(0);
1156
+ }
1157
+ else {
1158
+ console.log(`\n${console_chars_1.emoji.error} Fix redundancies before continuing\n`);
1159
+ console.log(`${console_chars_1.emoji.hint} Suggestions:`);
1160
+ console.log(` ${console_chars_1.chars.bullet} Merge preflights with high overlap into consolidated modules`);
1161
+ console.log(` ${console_chars_1.chars.bullet} Remove duplicate error codes (use unique codes per check)`);
1162
+ console.log(` ${console_chars_1.chars.bullet} Consider if similar-named preflights should be combined`);
1163
+ console.log(" ${chars.bullet} Run: pnpm preflight:migrate-excludes --apply to fix local excludes");
1164
+ process.exit(1);
1165
+ }
1166
+ }
1167
+ // Allow direct execution
1168
+ if (require.main === module) {
1169
+ run().catch(console.error);
1170
+ }
1171
+ //# sourceMappingURL=preflight-redundancy-detection.js.map