@empline/preflight 1.0.20

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 (1297) 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 +229 -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 +22 -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 +452 -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 +27 -0
  51. package/dist/checks/ai/recognition-pipeline-validation.d.ts.map +1 -0
  52. package/dist/checks/ai/recognition-pipeline-validation.js +808 -0
  53. package/dist/checks/ai/recognition-pipeline-validation.js.map +1 -0
  54. package/dist/checks/ai/series-subset-hierarchy.d.ts +21 -0
  55. package/dist/checks/ai/series-subset-hierarchy.d.ts.map +1 -0
  56. package/dist/checks/ai/series-subset-hierarchy.js +373 -0
  57. package/dist/checks/ai/series-subset-hierarchy.js.map +1 -0
  58. package/dist/checks/api/api-completeness-check.d.ts +26 -0
  59. package/dist/checks/api/api-completeness-check.d.ts.map +1 -0
  60. package/dist/checks/api/api-completeness-check.js +311 -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/pagination-validation.d.ts +21 -0
  67. package/dist/checks/api/pagination-validation.d.ts.map +1 -0
  68. package/dist/checks/api/pagination-validation.js +270 -0
  69. package/dist/checks/api/pagination-validation.js.map +1 -0
  70. package/dist/checks/api/response-consistency.d.ts +21 -0
  71. package/dist/checks/api/response-consistency.d.ts.map +1 -0
  72. package/dist/checks/api/response-consistency.js +238 -0
  73. package/dist/checks/api/response-consistency.js.map +1 -0
  74. package/dist/checks/api/response-schema-validation.d.ts +25 -0
  75. package/dist/checks/api/response-schema-validation.d.ts.map +1 -0
  76. package/dist/checks/api/response-schema-validation.js +288 -0
  77. package/dist/checks/api/response-schema-validation.js.map +1 -0
  78. package/dist/checks/api/response-time-budget.d.ts +17 -0
  79. package/dist/checks/api/response-time-budget.d.ts.map +1 -0
  80. package/dist/checks/api/response-time-budget.js +294 -0
  81. package/dist/checks/api/response-time-budget.js.map +1 -0
  82. package/dist/checks/api/variant-switching-integrity.d.ts +22 -0
  83. package/dist/checks/api/variant-switching-integrity.d.ts.map +1 -0
  84. package/dist/checks/api/variant-switching-integrity.js +306 -0
  85. package/dist/checks/api/variant-switching-integrity.js.map +1 -0
  86. package/dist/checks/architecture/admin-page-consistency.d.ts +27 -0
  87. package/dist/checks/architecture/admin-page-consistency.d.ts.map +1 -0
  88. package/dist/checks/architecture/admin-page-consistency.js +294 -0
  89. package/dist/checks/architecture/admin-page-consistency.js.map +1 -0
  90. package/dist/checks/architecture/backend-ui-coverage.d.ts +25 -0
  91. package/dist/checks/architecture/backend-ui-coverage.d.ts.map +1 -0
  92. package/dist/checks/architecture/backend-ui-coverage.js +562 -0
  93. package/dist/checks/architecture/backend-ui-coverage.js.map +1 -0
  94. package/dist/checks/architecture/component-architecture.d.ts +26 -0
  95. package/dist/checks/architecture/component-architecture.d.ts.map +1 -0
  96. package/dist/checks/architecture/component-architecture.js +513 -0
  97. package/dist/checks/architecture/component-architecture.js.map +1 -0
  98. package/dist/checks/architecture/component-consolidation-opportunities.d.ts +28 -0
  99. package/dist/checks/architecture/component-consolidation-opportunities.d.ts.map +1 -0
  100. package/dist/checks/architecture/component-consolidation-opportunities.js +338 -0
  101. package/dist/checks/architecture/component-consolidation-opportunities.js.map +1 -0
  102. package/dist/checks/architecture/orphaned-pages-detection.d.ts +34 -0
  103. package/dist/checks/architecture/orphaned-pages-detection.d.ts.map +1 -0
  104. package/dist/checks/architecture/orphaned-pages-detection.js +464 -0
  105. package/dist/checks/architecture/orphaned-pages-detection.js.map +1 -0
  106. package/dist/checks/architecture/primitive-component-enforcement.d.ts +25 -0
  107. package/dist/checks/architecture/primitive-component-enforcement.d.ts.map +1 -0
  108. package/dist/checks/architecture/primitive-component-enforcement.js +305 -0
  109. package/dist/checks/architecture/primitive-component-enforcement.js.map +1 -0
  110. package/dist/checks/architecture/shared-component-enforcement.d.ts +34 -0
  111. package/dist/checks/architecture/shared-component-enforcement.d.ts.map +1 -0
  112. package/dist/checks/architecture/shared-component-enforcement.js +725 -0
  113. package/dist/checks/architecture/shared-component-enforcement.js.map +1 -0
  114. package/dist/checks/async-cleanup-validation.d.ts +20 -0
  115. package/dist/checks/async-cleanup-validation.d.ts.map +1 -0
  116. package/dist/checks/async-cleanup-validation.js +179 -0
  117. package/dist/checks/async-cleanup-validation.js.map +1 -0
  118. package/dist/checks/auth/auth-page-consistency.d.ts +25 -0
  119. package/dist/checks/auth/auth-page-consistency.d.ts.map +1 -0
  120. package/dist/checks/auth/auth-page-consistency.js +581 -0
  121. package/dist/checks/auth/auth-page-consistency.js.map +1 -0
  122. package/dist/checks/auth/authenticated-redirect.d.ts +55 -0
  123. package/dist/checks/auth/authenticated-redirect.d.ts.map +1 -0
  124. package/dist/checks/auth/authenticated-redirect.js +389 -0
  125. package/dist/checks/auth/authenticated-redirect.js.map +1 -0
  126. package/dist/checks/auth/role-validation.d.ts +31 -0
  127. package/dist/checks/auth/role-validation.d.ts.map +1 -0
  128. package/dist/checks/auth/role-validation.js +252 -0
  129. package/dist/checks/auth/role-validation.js.map +1 -0
  130. package/dist/checks/auth/session-integrity-validation.d.ts +58 -0
  131. package/dist/checks/auth/session-integrity-validation.d.ts.map +1 -0
  132. package/dist/checks/auth/session-integrity-validation.js +402 -0
  133. package/dist/checks/auth/session-integrity-validation.js.map +1 -0
  134. package/dist/checks/auth/session-security.d.ts +67 -0
  135. package/dist/checks/auth/session-security.d.ts.map +1 -0
  136. package/dist/checks/auth/session-security.js +399 -0
  137. package/dist/checks/auth/session-security.js.map +1 -0
  138. package/dist/checks/auth/session-update-safety.d.ts +96 -0
  139. package/dist/checks/auth/session-update-safety.d.ts.map +1 -0
  140. package/dist/checks/auth/session-update-safety.js +697 -0
  141. package/dist/checks/auth/session-update-safety.js.map +1 -0
  142. package/dist/checks/auth/store-access-delegation.d.ts +33 -0
  143. package/dist/checks/auth/store-access-delegation.d.ts.map +1 -0
  144. package/dist/checks/auth/store-access-delegation.js +344 -0
  145. package/dist/checks/auth/store-access-delegation.js.map +1 -0
  146. package/dist/checks/business/business-invariants.d.ts +20 -0
  147. package/dist/checks/business/business-invariants.d.ts.map +1 -0
  148. package/dist/checks/business/business-invariants.js +174 -0
  149. package/dist/checks/business/business-invariants.js.map +1 -0
  150. package/dist/checks/business/currency-precision.d.ts +21 -0
  151. package/dist/checks/business/currency-precision.d.ts.map +1 -0
  152. package/dist/checks/business/currency-precision.js +433 -0
  153. package/dist/checks/business/currency-precision.js.map +1 -0
  154. package/dist/checks/business/idempotency-key-validation.d.ts +27 -0
  155. package/dist/checks/business/idempotency-key-validation.d.ts.map +1 -0
  156. package/dist/checks/business/idempotency-key-validation.js +275 -0
  157. package/dist/checks/business/idempotency-key-validation.js.map +1 -0
  158. package/dist/checks/business/image-metadata-injection.d.ts +19 -0
  159. package/dist/checks/business/image-metadata-injection.d.ts.map +1 -0
  160. package/dist/checks/business/image-metadata-injection.js +367 -0
  161. package/dist/checks/business/image-metadata-injection.js.map +1 -0
  162. package/dist/checks/business/image-upload-optimization.d.ts +20 -0
  163. package/dist/checks/business/image-upload-optimization.d.ts.map +1 -0
  164. package/dist/checks/business/image-upload-optimization.js +271 -0
  165. package/dist/checks/business/image-upload-optimization.js.map +1 -0
  166. package/dist/checks/business/inventory-atomicity-validation.d.ts +19 -0
  167. package/dist/checks/business/inventory-atomicity-validation.d.ts.map +1 -0
  168. package/dist/checks/business/inventory-atomicity-validation.js +257 -0
  169. package/dist/checks/business/inventory-atomicity-validation.js.map +1 -0
  170. package/dist/checks/business/order-state-machine-validation.d.ts +19 -0
  171. package/dist/checks/business/order-state-machine-validation.d.ts.map +1 -0
  172. package/dist/checks/business/order-state-machine-validation.js +289 -0
  173. package/dist/checks/business/order-state-machine-validation.js.map +1 -0
  174. package/dist/checks/business/price-calculation-validation.d.ts +20 -0
  175. package/dist/checks/business/price-calculation-validation.d.ts.map +1 -0
  176. package/dist/checks/business/price-calculation-validation.js +247 -0
  177. package/dist/checks/business/price-calculation-validation.js.map +1 -0
  178. package/dist/checks/business/price-display-validation.d.ts +22 -0
  179. package/dist/checks/business/price-display-validation.d.ts.map +1 -0
  180. package/dist/checks/business/price-display-validation.js +152 -0
  181. package/dist/checks/business/price-display-validation.js.map +1 -0
  182. package/dist/checks/business/resilient-recognition-validation.d.ts +26 -0
  183. package/dist/checks/business/resilient-recognition-validation.d.ts.map +1 -0
  184. package/dist/checks/business/resilient-recognition-validation.js +230 -0
  185. package/dist/checks/business/resilient-recognition-validation.js.map +1 -0
  186. package/dist/checks/business/store-approval-listing-filter.d.ts +19 -0
  187. package/dist/checks/business/store-approval-listing-filter.d.ts.map +1 -0
  188. package/dist/checks/business/store-approval-listing-filter.js +176 -0
  189. package/dist/checks/business/store-approval-listing-filter.js.map +1 -0
  190. package/dist/checks/business/timezone-handling.d.ts +28 -0
  191. package/dist/checks/business/timezone-handling.d.ts.map +1 -0
  192. package/dist/checks/business/timezone-handling.js +294 -0
  193. package/dist/checks/business/timezone-handling.js.map +1 -0
  194. package/dist/checks/code-hygiene/any-type-detection.d.ts +30 -0
  195. package/dist/checks/code-hygiene/any-type-detection.d.ts.map +1 -0
  196. package/dist/checks/code-hygiene/any-type-detection.js +210 -0
  197. package/dist/checks/code-hygiene/any-type-detection.js.map +1 -0
  198. package/dist/checks/code-hygiene/api-error-handling.d.ts +29 -0
  199. package/dist/checks/code-hygiene/api-error-handling.d.ts.map +1 -0
  200. package/dist/checks/code-hygiene/api-error-handling.js +285 -0
  201. package/dist/checks/code-hygiene/api-error-handling.js.map +1 -0
  202. package/dist/checks/code-hygiene/broken-template-literals.d.ts +24 -0
  203. package/dist/checks/code-hygiene/broken-template-literals.d.ts.map +1 -0
  204. package/dist/checks/code-hygiene/broken-template-literals.js +209 -0
  205. package/dist/checks/code-hygiene/broken-template-literals.js.map +1 -0
  206. package/dist/checks/code-hygiene/comment-hygiene.d.ts +26 -0
  207. package/dist/checks/code-hygiene/comment-hygiene.d.ts.map +1 -0
  208. package/dist/checks/code-hygiene/comment-hygiene.js +421 -0
  209. package/dist/checks/code-hygiene/comment-hygiene.js.map +1 -0
  210. package/dist/checks/code-hygiene/console-chars-sync.d.ts +26 -0
  211. package/dist/checks/code-hygiene/console-chars-sync.d.ts.map +1 -0
  212. package/dist/checks/code-hygiene/console-chars-sync.js +417 -0
  213. package/dist/checks/code-hygiene/console-chars-sync.js.map +1 -0
  214. package/dist/checks/code-hygiene/console-log-detection.d.ts +27 -0
  215. package/dist/checks/code-hygiene/console-log-detection.d.ts.map +1 -0
  216. package/dist/checks/code-hygiene/console-log-detection.js +204 -0
  217. package/dist/checks/code-hygiene/console-log-detection.js.map +1 -0
  218. package/dist/checks/code-hygiene/dead-code-detection.d.ts +28 -0
  219. package/dist/checks/code-hygiene/dead-code-detection.d.ts.map +1 -0
  220. package/dist/checks/code-hygiene/dead-code-detection.js +217 -0
  221. package/dist/checks/code-hygiene/dead-code-detection.js.map +1 -0
  222. package/dist/checks/code-hygiene/decorative-separators.d.ts +32 -0
  223. package/dist/checks/code-hygiene/decorative-separators.d.ts.map +1 -0
  224. package/dist/checks/code-hygiene/decorative-separators.js +251 -0
  225. package/dist/checks/code-hygiene/decorative-separators.js.map +1 -0
  226. package/dist/checks/code-hygiene/empty-catch-detection.d.ts +25 -0
  227. package/dist/checks/code-hygiene/empty-catch-detection.d.ts.map +1 -0
  228. package/dist/checks/code-hygiene/empty-catch-detection.js +184 -0
  229. package/dist/checks/code-hygiene/empty-catch-detection.js.map +1 -0
  230. package/dist/checks/code-hygiene/fix-hardcoded-emoji.d.ts +18 -0
  231. package/dist/checks/code-hygiene/fix-hardcoded-emoji.d.ts.map +1 -0
  232. package/dist/checks/code-hygiene/fix-hardcoded-emoji.js +332 -0
  233. package/dist/checks/code-hygiene/fix-hardcoded-emoji.js.map +1 -0
  234. package/dist/checks/code-hygiene/log-level-misuse.d.ts +25 -0
  235. package/dist/checks/code-hygiene/log-level-misuse.d.ts.map +1 -0
  236. package/dist/checks/code-hygiene/log-level-misuse.js +383 -0
  237. package/dist/checks/code-hygiene/log-level-misuse.js.map +1 -0
  238. package/dist/checks/code-hygiene/missing-logger-import.d.ts +16 -0
  239. package/dist/checks/code-hygiene/missing-logger-import.d.ts.map +1 -0
  240. package/dist/checks/code-hygiene/missing-logger-import.js +154 -0
  241. package/dist/checks/code-hygiene/missing-logger-import.js.map +1 -0
  242. package/dist/checks/code-hygiene/root-file-hygiene.d.ts +31 -0
  243. package/dist/checks/code-hygiene/root-file-hygiene.d.ts.map +1 -0
  244. package/dist/checks/code-hygiene/root-file-hygiene.js +285 -0
  245. package/dist/checks/code-hygiene/root-file-hygiene.js.map +1 -0
  246. package/dist/checks/code-hygiene/todo-tracking.d.ts +25 -0
  247. package/dist/checks/code-hygiene/todo-tracking.d.ts.map +1 -0
  248. package/dist/checks/code-hygiene/todo-tracking.js +205 -0
  249. package/dist/checks/code-hygiene/todo-tracking.js.map +1 -0
  250. package/dist/checks/code-hygiene/unicode-console-compatibility.d.ts +21 -0
  251. package/dist/checks/code-hygiene/unicode-console-compatibility.d.ts.map +1 -0
  252. package/dist/checks/code-hygiene/unicode-console-compatibility.js +229 -0
  253. package/dist/checks/code-hygiene/unicode-console-compatibility.js.map +1 -0
  254. package/dist/checks/code-quality/duplicate-logic-detection.d.ts +39 -0
  255. package/dist/checks/code-quality/duplicate-logic-detection.d.ts.map +1 -0
  256. package/dist/checks/code-quality/duplicate-logic-detection.js +270 -0
  257. package/dist/checks/code-quality/duplicate-logic-detection.js.map +1 -0
  258. package/dist/checks/code-quality/feature-flag-hygiene.d.ts +26 -0
  259. package/dist/checks/code-quality/feature-flag-hygiene.d.ts.map +1 -0
  260. package/dist/checks/code-quality/feature-flag-hygiene.js +353 -0
  261. package/dist/checks/code-quality/feature-flag-hygiene.js.map +1 -0
  262. package/dist/checks/code-quality/grading-config-usage.d.ts +29 -0
  263. package/dist/checks/code-quality/grading-config-usage.d.ts.map +1 -0
  264. package/dist/checks/code-quality/grading-config-usage.js +210 -0
  265. package/dist/checks/code-quality/grading-config-usage.js.map +1 -0
  266. package/dist/checks/code-quality/legacy-data-pattern-detection.d.ts +36 -0
  267. package/dist/checks/code-quality/legacy-data-pattern-detection.d.ts.map +1 -0
  268. package/dist/checks/code-quality/legacy-data-pattern-detection.js +450 -0
  269. package/dist/checks/code-quality/legacy-data-pattern-detection.js.map +1 -0
  270. package/dist/checks/code-quality/magic-number-detection.d.ts +30 -0
  271. package/dist/checks/code-quality/magic-number-detection.d.ts.map +1 -0
  272. package/dist/checks/code-quality/magic-number-detection.js +405 -0
  273. package/dist/checks/code-quality/magic-number-detection.js.map +1 -0
  274. package/dist/checks/code-quality/mock-function-detection.d.ts +32 -0
  275. package/dist/checks/code-quality/mock-function-detection.d.ts.map +1 -0
  276. package/dist/checks/code-quality/mock-function-detection.js +244 -0
  277. package/dist/checks/code-quality/mock-function-detection.js.map +1 -0
  278. package/dist/checks/code-quality/no-console-production.d.ts +26 -0
  279. package/dist/checks/code-quality/no-console-production.d.ts.map +1 -0
  280. package/dist/checks/code-quality/no-console-production.js +272 -0
  281. package/dist/checks/code-quality/no-console-production.js.map +1 -0
  282. package/dist/checks/code-quality/shared-utility-gaps.d.ts +27 -0
  283. package/dist/checks/code-quality/shared-utility-gaps.d.ts.map +1 -0
  284. package/dist/checks/code-quality/shared-utility-gaps.js +413 -0
  285. package/dist/checks/code-quality/shared-utility-gaps.js.map +1 -0
  286. package/dist/checks/code-quality/stub-script-detection.d.ts +32 -0
  287. package/dist/checks/code-quality/stub-script-detection.d.ts.map +1 -0
  288. package/dist/checks/code-quality/stub-script-detection.js +211 -0
  289. package/dist/checks/code-quality/stub-script-detection.js.map +1 -0
  290. package/dist/checks/code-quality/typescript-type-safety.d.ts +31 -0
  291. package/dist/checks/code-quality/typescript-type-safety.d.ts.map +1 -0
  292. package/dist/checks/code-quality/typescript-type-safety.js +228 -0
  293. package/dist/checks/code-quality/typescript-type-safety.js.map +1 -0
  294. package/dist/checks/component-imports.d.ts +15 -0
  295. package/dist/checks/component-imports.d.ts.map +1 -0
  296. package/dist/checks/component-imports.js +227 -0
  297. package/dist/checks/component-imports.js.map +1 -0
  298. package/dist/checks/config/env-completeness.d.ts +20 -0
  299. package/dist/checks/config/env-completeness.d.ts.map +1 -0
  300. package/dist/checks/config/env-completeness.js +193 -0
  301. package/dist/checks/config/env-completeness.js.map +1 -0
  302. package/dist/checks/coverage-gap-analysis.d.ts +21 -0
  303. package/dist/checks/coverage-gap-analysis.d.ts.map +1 -0
  304. package/dist/checks/coverage-gap-analysis.js +779 -0
  305. package/dist/checks/coverage-gap-analysis.js.map +1 -0
  306. package/dist/checks/css/dead-css-detection.d.ts +14 -0
  307. package/dist/checks/css/dead-css-detection.d.ts.map +1 -0
  308. package/dist/checks/css/dead-css-detection.js +222 -0
  309. package/dist/checks/css/dead-css-detection.js.map +1 -0
  310. package/dist/checks/css/sticky-header-validation.d.ts +19 -0
  311. package/dist/checks/css/sticky-header-validation.d.ts.map +1 -0
  312. package/dist/checks/css/sticky-header-validation.js +256 -0
  313. package/dist/checks/css/sticky-header-validation.js.map +1 -0
  314. package/dist/checks/data-integrity/cart-data-integrity.d.ts +19 -0
  315. package/dist/checks/data-integrity/cart-data-integrity.d.ts.map +1 -0
  316. package/dist/checks/data-integrity/cart-data-integrity.js +235 -0
  317. package/dist/checks/data-integrity/cart-data-integrity.js.map +1 -0
  318. package/dist/checks/data-integrity/enum-special-chars-validation.d.ts +26 -0
  319. package/dist/checks/data-integrity/enum-special-chars-validation.d.ts.map +1 -0
  320. package/dist/checks/data-integrity/enum-special-chars-validation.js +94 -0
  321. package/dist/checks/data-integrity/enum-special-chars-validation.js.map +1 -0
  322. package/dist/checks/data-integrity/notification-template-alignment.d.ts +21 -0
  323. package/dist/checks/data-integrity/notification-template-alignment.d.ts.map +1 -0
  324. package/dist/checks/data-integrity/notification-template-alignment.js +372 -0
  325. package/dist/checks/data-integrity/notification-template-alignment.js.map +1 -0
  326. package/dist/checks/data-integrity/product-data-flow-validation.d.ts +21 -0
  327. package/dist/checks/data-integrity/product-data-flow-validation.d.ts.map +1 -0
  328. package/dist/checks/data-integrity/product-data-flow-validation.js +569 -0
  329. package/dist/checks/data-integrity/product-data-flow-validation.js.map +1 -0
  330. package/dist/checks/data-integrity/store-data-integrity.d.ts +18 -0
  331. package/dist/checks/data-integrity/store-data-integrity.d.ts.map +1 -0
  332. package/dist/checks/data-integrity/store-data-integrity.js +398 -0
  333. package/dist/checks/data-integrity/store-data-integrity.js.map +1 -0
  334. package/dist/checks/data-integrity/unwired-functionality.d.ts +22 -0
  335. package/dist/checks/data-integrity/unwired-functionality.d.ts.map +1 -0
  336. package/dist/checks/data-integrity/unwired-functionality.js +550 -0
  337. package/dist/checks/data-integrity/unwired-functionality.js.map +1 -0
  338. package/dist/checks/database/block-db-push.d.ts +29 -0
  339. package/dist/checks/database/block-db-push.d.ts.map +1 -0
  340. package/dist/checks/database/block-db-push.js +138 -0
  341. package/dist/checks/database/block-db-push.js.map +1 -0
  342. package/dist/checks/database/grade-integrity.d.ts +13 -0
  343. package/dist/checks/database/grade-integrity.d.ts.map +1 -0
  344. package/dist/checks/database/grade-integrity.js +131 -0
  345. package/dist/checks/database/grade-integrity.js.map +1 -0
  346. package/dist/checks/database/migration-integrity.d.ts +26 -0
  347. package/dist/checks/database/migration-integrity.d.ts.map +1 -0
  348. package/dist/checks/database/migration-integrity.js +239 -0
  349. package/dist/checks/database/migration-integrity.js.map +1 -0
  350. package/dist/checks/database/migration-reversibility.d.ts +25 -0
  351. package/dist/checks/database/migration-reversibility.d.ts.map +1 -0
  352. package/dist/checks/database/migration-reversibility.js +277 -0
  353. package/dist/checks/database/migration-reversibility.js.map +1 -0
  354. package/dist/checks/database/migration-safety.d.ts +27 -0
  355. package/dist/checks/database/migration-safety.d.ts.map +1 -0
  356. package/dist/checks/database/migration-safety.js +243 -0
  357. package/dist/checks/database/migration-safety.js.map +1 -0
  358. package/dist/checks/database/prisma-client-db-sync.d.ts +24 -0
  359. package/dist/checks/database/prisma-client-db-sync.d.ts.map +1 -0
  360. package/dist/checks/database/prisma-client-db-sync.js +226 -0
  361. package/dist/checks/database/prisma-client-db-sync.js.map +1 -0
  362. package/dist/checks/database/prisma-drift-prevention.d.ts +29 -0
  363. package/dist/checks/database/prisma-drift-prevention.d.ts.map +1 -0
  364. package/dist/checks/database/prisma-drift-prevention.js +614 -0
  365. package/dist/checks/database/prisma-drift-prevention.js.map +1 -0
  366. package/dist/checks/database/prisma-overfetch-detection.d.ts +26 -0
  367. package/dist/checks/database/prisma-overfetch-detection.d.ts.map +1 -0
  368. package/dist/checks/database/prisma-overfetch-detection.js +666 -0
  369. package/dist/checks/database/prisma-overfetch-detection.js.map +1 -0
  370. package/dist/checks/database/prisma-precommit-guard.d.ts +25 -0
  371. package/dist/checks/database/prisma-precommit-guard.d.ts.map +1 -0
  372. package/dist/checks/database/prisma-precommit-guard.js +188 -0
  373. package/dist/checks/database/prisma-precommit-guard.js.map +1 -0
  374. package/dist/checks/database/prisma-schema-syntax.d.ts +17 -0
  375. package/dist/checks/database/prisma-schema-syntax.d.ts.map +1 -0
  376. package/dist/checks/database/prisma-schema-syntax.js +50 -0
  377. package/dist/checks/database/prisma-schema-syntax.js.map +1 -0
  378. package/dist/checks/database/prod-db-guardrail.d.ts +20 -0
  379. package/dist/checks/database/prod-db-guardrail.d.ts.map +1 -0
  380. package/dist/checks/database/prod-db-guardrail.js +184 -0
  381. package/dist/checks/database/prod-db-guardrail.js.map +1 -0
  382. package/dist/checks/database/schema-best-practices.d.ts +24 -0
  383. package/dist/checks/database/schema-best-practices.d.ts.map +1 -0
  384. package/dist/checks/database/schema-best-practices.js +393 -0
  385. package/dist/checks/database/schema-best-practices.js.map +1 -0
  386. package/dist/checks/database/schema-migration-column-sync.d.ts +33 -0
  387. package/dist/checks/database/schema-migration-column-sync.d.ts.map +1 -0
  388. package/dist/checks/database/schema-migration-column-sync.js +561 -0
  389. package/dist/checks/database/schema-migration-column-sync.js.map +1 -0
  390. package/dist/checks/database/seed-coverage-validation.d.ts +29 -0
  391. package/dist/checks/database/seed-coverage-validation.d.ts.map +1 -0
  392. package/dist/checks/database/seed-coverage-validation.js +595 -0
  393. package/dist/checks/database/seed-coverage-validation.js.map +1 -0
  394. package/dist/checks/database/soft-delete-consistency.d.ts +24 -0
  395. package/dist/checks/database/soft-delete-consistency.d.ts.map +1 -0
  396. package/dist/checks/database/soft-delete-consistency.js +273 -0
  397. package/dist/checks/database/soft-delete-consistency.js.map +1 -0
  398. package/dist/checks/database/tcg-seed-validation.d.ts +29 -0
  399. package/dist/checks/database/tcg-seed-validation.d.ts.map +1 -0
  400. package/dist/checks/database/tcg-seed-validation.js +281 -0
  401. package/dist/checks/database/tcg-seed-validation.js.map +1 -0
  402. package/dist/checks/database/transaction-integrity.d.ts +25 -0
  403. package/dist/checks/database/transaction-integrity.d.ts.map +1 -0
  404. package/dist/checks/database/transaction-integrity.js +275 -0
  405. package/dist/checks/database/transaction-integrity.js.map +1 -0
  406. package/dist/checks/database/unused-schema-detection.d.ts +28 -0
  407. package/dist/checks/database/unused-schema-detection.d.ts.map +1 -0
  408. package/dist/checks/database/unused-schema-detection.js +624 -0
  409. package/dist/checks/database/unused-schema-detection.js.map +1 -0
  410. package/dist/checks/dependencies/deprecated-packages.d.ts +17 -0
  411. package/dist/checks/dependencies/deprecated-packages.d.ts.map +1 -0
  412. package/dist/checks/dependencies/deprecated-packages.js +220 -0
  413. package/dist/checks/dependencies/deprecated-packages.js.map +1 -0
  414. package/dist/checks/dependencies/weekly-stable-updates.d.ts +27 -0
  415. package/dist/checks/dependencies/weekly-stable-updates.d.ts.map +1 -0
  416. package/dist/checks/dependencies/weekly-stable-updates.js +490 -0
  417. package/dist/checks/dependencies/weekly-stable-updates.js.map +1 -0
  418. package/dist/checks/deployment/esm-import-extensions.d.ts +23 -0
  419. package/dist/checks/deployment/esm-import-extensions.d.ts.map +1 -0
  420. package/dist/checks/deployment/esm-import-extensions.js +183 -0
  421. package/dist/checks/deployment/esm-import-extensions.js.map +1 -0
  422. package/dist/checks/deployment/pre-production-checklist-quick.d.ts +15 -0
  423. package/dist/checks/deployment/pre-production-checklist-quick.d.ts.map +1 -0
  424. package/dist/checks/deployment/pre-production-checklist-quick.js +140 -0
  425. package/dist/checks/deployment/pre-production-checklist-quick.js.map +1 -0
  426. package/dist/checks/deployment/pre-production-checklist.d.ts +18 -0
  427. package/dist/checks/deployment/pre-production-checklist.d.ts.map +1 -0
  428. package/dist/checks/deployment/pre-production-checklist.js +219 -0
  429. package/dist/checks/deployment/pre-production-checklist.js.map +1 -0
  430. package/dist/checks/deployment/production-config.d.ts +36 -0
  431. package/dist/checks/deployment/production-config.d.ts.map +1 -0
  432. package/dist/checks/deployment/production-config.js +424 -0
  433. package/dist/checks/deployment/production-config.js.map +1 -0
  434. package/dist/checks/deployment/production-env-validation.d.ts +18 -0
  435. package/dist/checks/deployment/production-env-validation.d.ts.map +1 -0
  436. package/dist/checks/deployment/production-env-validation.js +162 -0
  437. package/dist/checks/deployment/production-env-validation.js.map +1 -0
  438. package/dist/checks/deployment/rollback-compatibility.d.ts +27 -0
  439. package/dist/checks/deployment/rollback-compatibility.d.ts.map +1 -0
  440. package/dist/checks/deployment/rollback-compatibility.js +327 -0
  441. package/dist/checks/deployment/rollback-compatibility.js.map +1 -0
  442. package/dist/checks/deprecated-api-usage.d.ts +86 -0
  443. package/dist/checks/deprecated-api-usage.d.ts.map +1 -0
  444. package/dist/checks/deprecated-api-usage.js +382 -0
  445. package/dist/checks/deprecated-api-usage.js.map +1 -0
  446. package/dist/checks/drift-prevention/api-contract-consistency.d.ts +18 -0
  447. package/dist/checks/drift-prevention/api-contract-consistency.d.ts.map +1 -0
  448. package/dist/checks/drift-prevention/api-contract-consistency.js +279 -0
  449. package/dist/checks/drift-prevention/api-contract-consistency.js.map +1 -0
  450. package/dist/checks/drift-prevention/breaking-change-detection.d.ts +28 -0
  451. package/dist/checks/drift-prevention/breaking-change-detection.d.ts.map +1 -0
  452. package/dist/checks/drift-prevention/breaking-change-detection.js +364 -0
  453. package/dist/checks/drift-prevention/breaking-change-detection.js.map +1 -0
  454. package/dist/checks/drift-prevention/component-prop-consistency.d.ts +18 -0
  455. package/dist/checks/drift-prevention/component-prop-consistency.d.ts.map +1 -0
  456. package/dist/checks/drift-prevention/component-prop-consistency.js +289 -0
  457. package/dist/checks/drift-prevention/component-prop-consistency.js.map +1 -0
  458. package/dist/checks/drift-prevention/database-query-patterns.d.ts +19 -0
  459. package/dist/checks/drift-prevention/database-query-patterns.d.ts.map +1 -0
  460. package/dist/checks/drift-prevention/database-query-patterns.js +340 -0
  461. package/dist/checks/drift-prevention/database-query-patterns.js.map +1 -0
  462. package/dist/checks/drift-prevention/design-system-consistency.d.ts +18 -0
  463. package/dist/checks/drift-prevention/design-system-consistency.d.ts.map +1 -0
  464. package/dist/checks/drift-prevention/design-system-consistency.js +419 -0
  465. package/dist/checks/drift-prevention/design-system-consistency.js.map +1 -0
  466. package/dist/checks/drift-prevention/empty-state-consistency.d.ts +17 -0
  467. package/dist/checks/drift-prevention/empty-state-consistency.d.ts.map +1 -0
  468. package/dist/checks/drift-prevention/empty-state-consistency.js +257 -0
  469. package/dist/checks/drift-prevention/empty-state-consistency.js.map +1 -0
  470. package/dist/checks/drift-prevention/performance-regression-detection.d.ts +18 -0
  471. package/dist/checks/drift-prevention/performance-regression-detection.d.ts.map +1 -0
  472. package/dist/checks/drift-prevention/performance-regression-detection.js +444 -0
  473. package/dist/checks/drift-prevention/performance-regression-detection.js.map +1 -0
  474. package/dist/checks/drift-prevention/size-convention-consistency.d.ts +40 -0
  475. package/dist/checks/drift-prevention/size-convention-consistency.d.ts.map +1 -0
  476. package/dist/checks/drift-prevention/size-convention-consistency.js +219 -0
  477. package/dist/checks/drift-prevention/size-convention-consistency.js.map +1 -0
  478. package/dist/checks/drift-prevention/state-management-patterns.d.ts +18 -0
  479. package/dist/checks/drift-prevention/state-management-patterns.d.ts.map +1 -0
  480. package/dist/checks/drift-prevention/state-management-patterns.js +240 -0
  481. package/dist/checks/drift-prevention/state-management-patterns.js.map +1 -0
  482. package/dist/checks/e2e/e2e-action-outcome-validator.d.ts +21 -0
  483. package/dist/checks/e2e/e2e-action-outcome-validator.d.ts.map +1 -0
  484. package/dist/checks/e2e/e2e-action-outcome-validator.js +292 -0
  485. package/dist/checks/e2e/e2e-action-outcome-validator.js.map +1 -0
  486. package/dist/checks/e2e/e2e-interaction-coverage-scan.d.ts +21 -0
  487. package/dist/checks/e2e/e2e-interaction-coverage-scan.d.ts.map +1 -0
  488. package/dist/checks/e2e/e2e-interaction-coverage-scan.js +1688 -0
  489. package/dist/checks/e2e/e2e-interaction-coverage-scan.js.map +1 -0
  490. package/dist/checks/e2e/e2e-interaction-regression.d.ts +19 -0
  491. package/dist/checks/e2e/e2e-interaction-regression.d.ts.map +1 -0
  492. package/dist/checks/e2e/e2e-interaction-regression.js +1039 -0
  493. package/dist/checks/e2e/e2e-interaction-regression.js.map +1 -0
  494. package/dist/checks/e2e/e2e-outcome-validation.d.ts +33 -0
  495. package/dist/checks/e2e/e2e-outcome-validation.d.ts.map +1 -0
  496. package/dist/checks/e2e/e2e-outcome-validation.js +610 -0
  497. package/dist/checks/e2e/e2e-outcome-validation.js.map +1 -0
  498. package/dist/checks/e2e/e2e-performance-baseline.d.ts +14 -0
  499. package/dist/checks/e2e/e2e-performance-baseline.d.ts.map +1 -0
  500. package/dist/checks/e2e/e2e-performance-baseline.js +289 -0
  501. package/dist/checks/e2e/e2e-performance-baseline.js.map +1 -0
  502. package/dist/checks/e2e/e2e-performance-patterns.d.ts +19 -0
  503. package/dist/checks/e2e/e2e-performance-patterns.d.ts.map +1 -0
  504. package/dist/checks/e2e/e2e-performance-patterns.js +464 -0
  505. package/dist/checks/e2e/e2e-performance-patterns.js.map +1 -0
  506. package/dist/checks/e2e/e2e-performance-regression.d.ts +18 -0
  507. package/dist/checks/e2e/e2e-performance-regression.d.ts.map +1 -0
  508. package/dist/checks/e2e/e2e-performance-regression.js +230 -0
  509. package/dist/checks/e2e/e2e-performance-regression.js.map +1 -0
  510. package/dist/checks/e2e/e2e-resource-monitoring.d.ts +17 -0
  511. package/dist/checks/e2e/e2e-resource-monitoring.d.ts.map +1 -0
  512. package/dist/checks/e2e/e2e-resource-monitoring.js +368 -0
  513. package/dist/checks/e2e/e2e-resource-monitoring.js.map +1 -0
  514. package/dist/checks/e2e/e2e-test-redundancy-scan.d.ts +27 -0
  515. package/dist/checks/e2e/e2e-test-redundancy-scan.d.ts.map +1 -0
  516. package/dist/checks/e2e/e2e-test-redundancy-scan.js +477 -0
  517. package/dist/checks/e2e/e2e-test-redundancy-scan.js.map +1 -0
  518. package/dist/checks/e2e/playwright-config-validator.d.ts +25 -0
  519. package/dist/checks/e2e/playwright-config-validator.d.ts.map +1 -0
  520. package/dist/checks/e2e/playwright-config-validator.js +558 -0
  521. package/dist/checks/e2e/playwright-config-validator.js.map +1 -0
  522. package/dist/checks/environment/env-duplicates.d.ts +16 -0
  523. package/dist/checks/environment/env-duplicates.d.ts.map +1 -0
  524. package/dist/checks/environment/env-duplicates.js +166 -0
  525. package/dist/checks/environment/env-duplicates.js.map +1 -0
  526. package/dist/checks/event-listener-cleanup.d.ts +18 -0
  527. package/dist/checks/event-listener-cleanup.d.ts.map +1 -0
  528. package/dist/checks/event-listener-cleanup.js +187 -0
  529. package/dist/checks/event-listener-cleanup.js.map +1 -0
  530. package/dist/checks/file-naming-conventions.d.ts +21 -0
  531. package/dist/checks/file-naming-conventions.d.ts.map +1 -0
  532. package/dist/checks/file-naming-conventions.js +1258 -0
  533. package/dist/checks/file-naming-conventions.js.map +1 -0
  534. package/dist/checks/framework/framework-compatibility.d.ts +35 -0
  535. package/dist/checks/framework/framework-compatibility.d.ts.map +1 -0
  536. package/dist/checks/framework/framework-compatibility.js +159 -0
  537. package/dist/checks/framework/framework-compatibility.js.map +1 -0
  538. package/dist/checks/framework/turbopack-enforcement.d.ts +22 -0
  539. package/dist/checks/framework/turbopack-enforcement.d.ts.map +1 -0
  540. package/dist/checks/framework/turbopack-enforcement.js +171 -0
  541. package/dist/checks/framework/turbopack-enforcement.js.map +1 -0
  542. package/dist/checks/governance/check-ui-uniformity.d.ts +18 -0
  543. package/dist/checks/governance/check-ui-uniformity.d.ts.map +1 -0
  544. package/dist/checks/governance/check-ui-uniformity.js +127 -0
  545. package/dist/checks/governance/check-ui-uniformity.js.map +1 -0
  546. package/dist/checks/governance/codeowners-coverage.d.ts +26 -0
  547. package/dist/checks/governance/codeowners-coverage.d.ts.map +1 -0
  548. package/dist/checks/governance/codeowners-coverage.js +290 -0
  549. package/dist/checks/governance/codeowners-coverage.js.map +1 -0
  550. package/dist/checks/governance/naming-conventions.d.ts +7 -0
  551. package/dist/checks/governance/naming-conventions.d.ts.map +1 -0
  552. package/dist/checks/governance/naming-conventions.js +115 -0
  553. package/dist/checks/governance/naming-conventions.js.map +1 -0
  554. package/dist/checks/governance/seller-store-naming-consistency.d.ts +32 -0
  555. package/dist/checks/governance/seller-store-naming-consistency.d.ts.map +1 -0
  556. package/dist/checks/governance/seller-store-naming-consistency.js +241 -0
  557. package/dist/checks/governance/seller-store-naming-consistency.js.map +1 -0
  558. package/dist/checks/governance/store-seller-route-names.d.ts +17 -0
  559. package/dist/checks/governance/store-seller-route-names.d.ts.map +1 -0
  560. package/dist/checks/governance/store-seller-route-names.js +170 -0
  561. package/dist/checks/governance/store-seller-route-names.js.map +1 -0
  562. package/dist/checks/grading-config-usage.d.ts +23 -0
  563. package/dist/checks/grading-config-usage.d.ts.map +1 -0
  564. package/dist/checks/grading-config-usage.js +197 -0
  565. package/dist/checks/grading-config-usage.js.map +1 -0
  566. package/dist/checks/help-center-features-validation.d.ts +21 -0
  567. package/dist/checks/help-center-features-validation.d.ts.map +1 -0
  568. package/dist/checks/help-center-features-validation.js +529 -0
  569. package/dist/checks/help-center-features-validation.js.map +1 -0
  570. package/dist/checks/help-center-validation.d.ts +21 -0
  571. package/dist/checks/help-center-validation.d.ts.map +1 -0
  572. package/dist/checks/help-center-validation.js +325 -0
  573. package/dist/checks/help-center-validation.js.map +1 -0
  574. package/dist/checks/image/card-edge-protection.d.ts +33 -0
  575. package/dist/checks/image/card-edge-protection.d.ts.map +1 -0
  576. package/dist/checks/image/card-edge-protection.js +230 -0
  577. package/dist/checks/image/card-edge-protection.js.map +1 -0
  578. package/dist/checks/image/card-orientation-validation.d.ts +34 -0
  579. package/dist/checks/image/card-orientation-validation.d.ts.map +1 -0
  580. package/dist/checks/image/card-orientation-validation.js +519 -0
  581. package/dist/checks/image/card-orientation-validation.js.map +1 -0
  582. package/dist/checks/integrations/integrations-consolidated.d.ts +76 -0
  583. package/dist/checks/integrations/integrations-consolidated.d.ts.map +1 -0
  584. package/dist/checks/integrations/integrations-consolidated.js +493 -0
  585. package/dist/checks/integrations/integrations-consolidated.js.map +1 -0
  586. package/dist/checks/integrations/platform-feed-integrity.d.ts +75 -0
  587. package/dist/checks/integrations/platform-feed-integrity.d.ts.map +1 -0
  588. package/dist/checks/integrations/platform-feed-integrity.js +487 -0
  589. package/dist/checks/integrations/platform-feed-integrity.js.map +1 -0
  590. package/dist/checks/master-preflight.d.ts +56 -0
  591. package/dist/checks/master-preflight.d.ts.map +1 -0
  592. package/dist/checks/master-preflight.js +254 -0
  593. package/dist/checks/master-preflight.js.map +1 -0
  594. package/dist/checks/nextjs/dynamic-route-exports.d.ts +28 -0
  595. package/dist/checks/nextjs/dynamic-route-exports.d.ts.map +1 -0
  596. package/dist/checks/nextjs/dynamic-route-exports.js +201 -0
  597. package/dist/checks/nextjs/dynamic-route-exports.js.map +1 -0
  598. package/dist/checks/nextjs/essential-files-validation.d.ts +23 -0
  599. package/dist/checks/nextjs/essential-files-validation.d.ts.map +1 -0
  600. package/dist/checks/nextjs/essential-files-validation.js +355 -0
  601. package/dist/checks/nextjs/essential-files-validation.js.map +1 -0
  602. package/dist/checks/nextjs/ignore-build-errors.d.ts +15 -0
  603. package/dist/checks/nextjs/ignore-build-errors.d.ts.map +1 -0
  604. package/dist/checks/nextjs/ignore-build-errors.js +120 -0
  605. package/dist/checks/nextjs/ignore-build-errors.js.map +1 -0
  606. package/dist/checks/nextjs/metadata-api-placement.d.ts +29 -0
  607. package/dist/checks/nextjs/metadata-api-placement.d.ts.map +1 -0
  608. package/dist/checks/nextjs/metadata-api-placement.js +274 -0
  609. package/dist/checks/nextjs/metadata-api-placement.js.map +1 -0
  610. package/dist/checks/nextjs/nextjs-image-validation.d.ts +52 -0
  611. package/dist/checks/nextjs/nextjs-image-validation.d.ts.map +1 -0
  612. package/dist/checks/nextjs/nextjs-image-validation.js +253 -0
  613. package/dist/checks/nextjs/nextjs-image-validation.js.map +1 -0
  614. package/dist/checks/nextjs/nextjs16-compatibility.d.ts +39 -0
  615. package/dist/checks/nextjs/nextjs16-compatibility.d.ts.map +1 -0
  616. package/dist/checks/nextjs/nextjs16-compatibility.js +1208 -0
  617. package/dist/checks/nextjs/nextjs16-compatibility.js.map +1 -0
  618. package/dist/checks/nextjs/static-generation-check.d.ts +25 -0
  619. package/dist/checks/nextjs/static-generation-check.d.ts.map +1 -0
  620. package/dist/checks/nextjs/static-generation-check.js +178 -0
  621. package/dist/checks/nextjs/static-generation-check.js.map +1 -0
  622. package/dist/checks/observability/centralized-logging-validation.d.ts +22 -0
  623. package/dist/checks/observability/centralized-logging-validation.d.ts.map +1 -0
  624. package/dist/checks/observability/centralized-logging-validation.js +285 -0
  625. package/dist/checks/observability/centralized-logging-validation.js.map +1 -0
  626. package/dist/checks/order-number-consistency.d.ts +23 -0
  627. package/dist/checks/order-number-consistency.d.ts.map +1 -0
  628. package/dist/checks/order-number-consistency.js +288 -0
  629. package/dist/checks/order-number-consistency.js.map +1 -0
  630. package/dist/checks/organization/agent-steering-validation.d.ts +16 -0
  631. package/dist/checks/organization/agent-steering-validation.d.ts.map +1 -0
  632. package/dist/checks/organization/agent-steering-validation.js +186 -0
  633. package/dist/checks/organization/agent-steering-validation.js.map +1 -0
  634. package/dist/checks/organization/api-route-consolidation.d.ts +23 -0
  635. package/dist/checks/organization/api-route-consolidation.d.ts.map +1 -0
  636. package/dist/checks/organization/api-route-consolidation.js +364 -0
  637. package/dist/checks/organization/api-route-consolidation.js.map +1 -0
  638. package/dist/checks/organization/api-route-naming-validation.d.ts +23 -0
  639. package/dist/checks/organization/api-route-naming-validation.d.ts.map +1 -0
  640. package/dist/checks/organization/api-route-naming-validation.js +491 -0
  641. package/dist/checks/organization/api-route-naming-validation.js.map +1 -0
  642. package/dist/checks/organization/file-organization-validation.d.ts +18 -0
  643. package/dist/checks/organization/file-organization-validation.d.ts.map +1 -0
  644. package/dist/checks/organization/file-organization-validation.js +562 -0
  645. package/dist/checks/organization/file-organization-validation.js.map +1 -0
  646. package/dist/checks/organization/npm-script-bloat-prevention.d.ts +40 -0
  647. package/dist/checks/organization/npm-script-bloat-prevention.d.ts.map +1 -0
  648. package/dist/checks/organization/npm-script-bloat-prevention.js +412 -0
  649. package/dist/checks/organization/npm-script-bloat-prevention.js.map +1 -0
  650. package/dist/checks/organization/preflight-env-check.d.ts +12 -0
  651. package/dist/checks/organization/preflight-env-check.d.ts.map +1 -0
  652. package/dist/checks/organization/preflight-env-check.js +157 -0
  653. package/dist/checks/organization/preflight-env-check.js.map +1 -0
  654. package/dist/checks/organization/preflight-progress-consistency.d.ts +25 -0
  655. package/dist/checks/organization/preflight-progress-consistency.d.ts.map +1 -0
  656. package/dist/checks/organization/preflight-progress-consistency.js +227 -0
  657. package/dist/checks/organization/preflight-progress-consistency.js.map +1 -0
  658. package/dist/checks/organization/preflight-system-validation.d.ts +19 -0
  659. package/dist/checks/organization/preflight-system-validation.d.ts.map +1 -0
  660. package/dist/checks/organization/preflight-system-validation.js +487 -0
  661. package/dist/checks/organization/preflight-system-validation.js.map +1 -0
  662. package/dist/checks/organization/preflight-typescript-validation.d.ts +14 -0
  663. package/dist/checks/organization/preflight-typescript-validation.d.ts.map +1 -0
  664. package/dist/checks/organization/preflight-typescript-validation.js +43 -0
  665. package/dist/checks/organization/preflight-typescript-validation.js.map +1 -0
  666. package/dist/checks/organization/route-structure-validation.d.ts +18 -0
  667. package/dist/checks/organization/route-structure-validation.d.ts.map +1 -0
  668. package/dist/checks/organization/route-structure-validation.js +235 -0
  669. package/dist/checks/organization/route-structure-validation.js.map +1 -0
  670. package/dist/checks/organization/steering-bloat-prevention.d.ts +88 -0
  671. package/dist/checks/organization/steering-bloat-prevention.d.ts.map +1 -0
  672. package/dist/checks/organization/steering-bloat-prevention.js +1197 -0
  673. package/dist/checks/organization/steering-bloat-prevention.js.map +1 -0
  674. package/dist/checks/performance/bundle-optimization-drift.d.ts +18 -0
  675. package/dist/checks/performance/bundle-optimization-drift.d.ts.map +1 -0
  676. package/dist/checks/performance/bundle-optimization-drift.js +260 -0
  677. package/dist/checks/performance/bundle-optimization-drift.js.map +1 -0
  678. package/dist/checks/performance/bundle-size-regression.d.ts +14 -0
  679. package/dist/checks/performance/bundle-size-regression.d.ts.map +1 -0
  680. package/dist/checks/performance/bundle-size-regression.js +236 -0
  681. package/dist/checks/performance/bundle-size-regression.js.map +1 -0
  682. package/dist/checks/performance/core-web-vitals.d.ts +39 -0
  683. package/dist/checks/performance/core-web-vitals.d.ts.map +1 -0
  684. package/dist/checks/performance/core-web-vitals.js +445 -0
  685. package/dist/checks/performance/core-web-vitals.js.map +1 -0
  686. package/dist/checks/performance/mobile-performance-budget.d.ts +29 -0
  687. package/dist/checks/performance/mobile-performance-budget.d.ts.map +1 -0
  688. package/dist/checks/performance/mobile-performance-budget.js +415 -0
  689. package/dist/checks/performance/mobile-performance-budget.js.map +1 -0
  690. package/dist/checks/performance/runtime-regression.d.ts +17 -0
  691. package/dist/checks/performance/runtime-regression.d.ts.map +1 -0
  692. package/dist/checks/performance/runtime-regression.js +425 -0
  693. package/dist/checks/performance/runtime-regression.js.map +1 -0
  694. package/dist/checks/performance/unused-preload-detection.d.ts +17 -0
  695. package/dist/checks/performance/unused-preload-detection.d.ts.map +1 -0
  696. package/dist/checks/performance/unused-preload-detection.js +185 -0
  697. package/dist/checks/performance/unused-preload-detection.js.map +1 -0
  698. package/dist/checks/prisma/prisma7-compatibility.d.ts +29 -0
  699. package/dist/checks/prisma/prisma7-compatibility.d.ts.map +1 -0
  700. package/dist/checks/prisma/prisma7-compatibility.js +440 -0
  701. package/dist/checks/prisma/prisma7-compatibility.js.map +1 -0
  702. package/dist/checks/quality/component-size.d.ts +13 -0
  703. package/dist/checks/quality/component-size.d.ts.map +1 -0
  704. package/dist/checks/quality/component-size.js +104 -0
  705. package/dist/checks/quality/component-size.js.map +1 -0
  706. package/dist/checks/quality/critical-type-imports.d.ts +23 -0
  707. package/dist/checks/quality/critical-type-imports.d.ts.map +1 -0
  708. package/dist/checks/quality/critical-type-imports.js +632 -0
  709. package/dist/checks/quality/critical-type-imports.js.map +1 -0
  710. package/dist/checks/quality/development.d.ts +13 -0
  711. package/dist/checks/quality/development.d.ts.map +1 -0
  712. package/dist/checks/quality/development.js +98 -0
  713. package/dist/checks/quality/development.js.map +1 -0
  714. package/dist/checks/quality/docs-code-sync.d.ts +27 -0
  715. package/dist/checks/quality/docs-code-sync.d.ts.map +1 -0
  716. package/dist/checks/quality/docs-code-sync.js +368 -0
  717. package/dist/checks/quality/docs-code-sync.js.map +1 -0
  718. package/dist/checks/quality/duplicate-jsx-attributes.d.ts +23 -0
  719. package/dist/checks/quality/duplicate-jsx-attributes.d.ts.map +1 -0
  720. package/dist/checks/quality/duplicate-jsx-attributes.js +201 -0
  721. package/dist/checks/quality/duplicate-jsx-attributes.js.map +1 -0
  722. package/dist/checks/quality/file-size.d.ts +13 -0
  723. package/dist/checks/quality/file-size.d.ts.map +1 -0
  724. package/dist/checks/quality/file-size.js +97 -0
  725. package/dist/checks/quality/file-size.js.map +1 -0
  726. package/dist/checks/quality/file-validation.d.ts +13 -0
  727. package/dist/checks/quality/file-validation.d.ts.map +1 -0
  728. package/dist/checks/quality/file-validation.js +103 -0
  729. package/dist/checks/quality/file-validation.js.map +1 -0
  730. package/dist/checks/quality/i18n-hardcoded-strings.d.ts +28 -0
  731. package/dist/checks/quality/i18n-hardcoded-strings.d.ts.map +1 -0
  732. package/dist/checks/quality/i18n-hardcoded-strings.js +336 -0
  733. package/dist/checks/quality/i18n-hardcoded-strings.js.map +1 -0
  734. package/dist/checks/quality/lint-preflight.d.ts +70 -0
  735. package/dist/checks/quality/lint-preflight.d.ts.map +1 -0
  736. package/dist/checks/quality/lint-preflight.js +477 -0
  737. package/dist/checks/quality/lint-preflight.js.map +1 -0
  738. package/dist/checks/quality/react-namespace-import.d.ts +27 -0
  739. package/dist/checks/quality/react-namespace-import.d.ts.map +1 -0
  740. package/dist/checks/quality/react-namespace-import.js +212 -0
  741. package/dist/checks/quality/react-namespace-import.js.map +1 -0
  742. package/dist/checks/quality/strict-lint.d.ts +13 -0
  743. package/dist/checks/quality/strict-lint.d.ts.map +1 -0
  744. package/dist/checks/quality/strict-lint.js +41 -0
  745. package/dist/checks/quality/strict-lint.js.map +1 -0
  746. package/dist/checks/quality/syntax.d.ts +13 -0
  747. package/dist/checks/quality/syntax.d.ts.map +1 -0
  748. package/dist/checks/quality/syntax.js +94 -0
  749. package/dist/checks/quality/syntax.js.map +1 -0
  750. package/dist/checks/quality/unused-imports.d.ts +14 -0
  751. package/dist/checks/quality/unused-imports.d.ts.map +1 -0
  752. package/dist/checks/quality/unused-imports.js +172 -0
  753. package/dist/checks/quality/unused-imports.js.map +1 -0
  754. package/dist/checks/react/component-best-practices.d.ts +23 -0
  755. package/dist/checks/react/component-best-practices.d.ts.map +1 -0
  756. package/dist/checks/react/component-best-practices.js +273 -0
  757. package/dist/checks/react/component-best-practices.js.map +1 -0
  758. package/dist/checks/react/error-boundary-coverage.d.ts +26 -0
  759. package/dist/checks/react/error-boundary-coverage.d.ts.map +1 -0
  760. package/dist/checks/react/error-boundary-coverage.js +304 -0
  761. package/dist/checks/react/error-boundary-coverage.js.map +1 -0
  762. package/dist/checks/react/memory-leak-detection.d.ts +22 -0
  763. package/dist/checks/react/memory-leak-detection.d.ts.map +1 -0
  764. package/dist/checks/react/memory-leak-detection.js +268 -0
  765. package/dist/checks/react/memory-leak-detection.js.map +1 -0
  766. package/dist/checks/react/memory-leak-patterns.d.ts +27 -0
  767. package/dist/checks/react/memory-leak-patterns.d.ts.map +1 -0
  768. package/dist/checks/react/memory-leak-patterns.js +324 -0
  769. package/dist/checks/react/memory-leak-patterns.js.map +1 -0
  770. package/dist/checks/react/react19-compatibility.d.ts +14 -0
  771. package/dist/checks/react/react19-compatibility.d.ts.map +1 -0
  772. package/dist/checks/react/react19-compatibility.js +433 -0
  773. package/dist/checks/react/react19-compatibility.js.map +1 -0
  774. package/dist/checks/react/useeffect-loop-detector.d.ts +25 -0
  775. package/dist/checks/react/useeffect-loop-detector.d.ts.map +1 -0
  776. package/dist/checks/react/useeffect-loop-detector.js +216 -0
  777. package/dist/checks/react/useeffect-loop-detector.js.map +1 -0
  778. package/dist/checks/runtime/client-process-env-usage.d.ts +28 -0
  779. package/dist/checks/runtime/client-process-env-usage.d.ts.map +1 -0
  780. package/dist/checks/runtime/client-process-env-usage.js +190 -0
  781. package/dist/checks/runtime/client-process-env-usage.js.map +1 -0
  782. package/dist/checks/runtime/client-runtime-errors.d.ts +34 -0
  783. package/dist/checks/runtime/client-runtime-errors.d.ts.map +1 -0
  784. package/dist/checks/runtime/client-runtime-errors.js +308 -0
  785. package/dist/checks/runtime/client-runtime-errors.js.map +1 -0
  786. package/dist/checks/runtime/dev-error-monitoring-system.d.ts +22 -0
  787. package/dist/checks/runtime/dev-error-monitoring-system.d.ts.map +1 -0
  788. package/dist/checks/runtime/dev-error-monitoring-system.js +209 -0
  789. package/dist/checks/runtime/dev-error-monitoring-system.js.map +1 -0
  790. package/dist/checks/runtime/gtm-installation.d.ts +21 -0
  791. package/dist/checks/runtime/gtm-installation.d.ts.map +1 -0
  792. package/dist/checks/runtime/gtm-installation.js +341 -0
  793. package/dist/checks/runtime/gtm-installation.js.map +1 -0
  794. package/dist/checks/runtime/json-parse-safety.d.ts +22 -0
  795. package/dist/checks/runtime/json-parse-safety.d.ts.map +1 -0
  796. package/dist/checks/runtime/json-parse-safety.js +179 -0
  797. package/dist/checks/runtime/json-parse-safety.js.map +1 -0
  798. package/dist/checks/runtime/missing-public-env-import.d.ts +26 -0
  799. package/dist/checks/runtime/missing-public-env-import.d.ts.map +1 -0
  800. package/dist/checks/runtime/missing-public-env-import.js +175 -0
  801. package/dist/checks/runtime/missing-public-env-import.js.map +1 -0
  802. package/dist/checks/runtime/node-deprecations.d.ts +22 -0
  803. package/dist/checks/runtime/node-deprecations.d.ts.map +1 -0
  804. package/dist/checks/runtime/node-deprecations.js +157 -0
  805. package/dist/checks/runtime/node-deprecations.js.map +1 -0
  806. package/dist/checks/runtime/node25-compatibility.d.ts +28 -0
  807. package/dist/checks/runtime/node25-compatibility.d.ts.map +1 -0
  808. package/dist/checks/runtime/node25-compatibility.js +200 -0
  809. package/dist/checks/runtime/node25-compatibility.js.map +1 -0
  810. package/dist/checks/runtime/process-stdio-usage.d.ts +26 -0
  811. package/dist/checks/runtime/process-stdio-usage.d.ts.map +1 -0
  812. package/dist/checks/runtime/process-stdio-usage.js +179 -0
  813. package/dist/checks/runtime/process-stdio-usage.js.map +1 -0
  814. package/dist/checks/runtime/server-client-decimal.d.ts +25 -0
  815. package/dist/checks/runtime/server-client-decimal.d.ts.map +1 -0
  816. package/dist/checks/runtime/server-client-decimal.js +243 -0
  817. package/dist/checks/runtime/server-client-decimal.js.map +1 -0
  818. package/dist/checks/security/csrf-protection.d.ts +20 -0
  819. package/dist/checks/security/csrf-protection.d.ts.map +1 -0
  820. package/dist/checks/security/csrf-protection.js +249 -0
  821. package/dist/checks/security/csrf-protection.js.map +1 -0
  822. package/dist/checks/security/dependency-audit.d.ts +25 -0
  823. package/dist/checks/security/dependency-audit.d.ts.map +1 -0
  824. package/dist/checks/security/dependency-audit.js +219 -0
  825. package/dist/checks/security/dependency-audit.js.map +1 -0
  826. package/dist/checks/security/env-value-leakage.d.ts +21 -0
  827. package/dist/checks/security/env-value-leakage.d.ts.map +1 -0
  828. package/dist/checks/security/env-value-leakage.js +285 -0
  829. package/dist/checks/security/env-value-leakage.js.map +1 -0
  830. package/dist/checks/security/no-tracked-env-files.d.ts +18 -0
  831. package/dist/checks/security/no-tracked-env-files.d.ts.map +1 -0
  832. package/dist/checks/security/no-tracked-env-files.js +247 -0
  833. package/dist/checks/security/no-tracked-env-files.js.map +1 -0
  834. package/dist/checks/security/open-redirect-prevention.d.ts +19 -0
  835. package/dist/checks/security/open-redirect-prevention.d.ts.map +1 -0
  836. package/dist/checks/security/open-redirect-prevention.js +238 -0
  837. package/dist/checks/security/open-redirect-prevention.js.map +1 -0
  838. package/dist/checks/security/path-traversal-prevention.d.ts +25 -0
  839. package/dist/checks/security/path-traversal-prevention.d.ts.map +1 -0
  840. package/dist/checks/security/path-traversal-prevention.js +246 -0
  841. package/dist/checks/security/path-traversal-prevention.js.map +1 -0
  842. package/dist/checks/security/permission-security-validation.d.ts +19 -0
  843. package/dist/checks/security/permission-security-validation.d.ts.map +1 -0
  844. package/dist/checks/security/permission-security-validation.js +319 -0
  845. package/dist/checks/security/permission-security-validation.js.map +1 -0
  846. package/dist/checks/security/prod-command-detection.d.ts +17 -0
  847. package/dist/checks/security/prod-command-detection.d.ts.map +1 -0
  848. package/dist/checks/security/prod-command-detection.js +222 -0
  849. package/dist/checks/security/prod-command-detection.js.map +1 -0
  850. package/dist/checks/security/rate-limiting-validation.d.ts +19 -0
  851. package/dist/checks/security/rate-limiting-validation.d.ts.map +1 -0
  852. package/dist/checks/security/rate-limiting-validation.js +260 -0
  853. package/dist/checks/security/rate-limiting-validation.js.map +1 -0
  854. package/dist/checks/security/security-sla-enforcement.d.ts +34 -0
  855. package/dist/checks/security/security-sla-enforcement.d.ts.map +1 -0
  856. package/dist/checks/security/security-sla-enforcement.js +349 -0
  857. package/dist/checks/security/security-sla-enforcement.js.map +1 -0
  858. package/dist/checks/security/sensitive-data-exposure.d.ts +36 -0
  859. package/dist/checks/security/sensitive-data-exposure.d.ts.map +1 -0
  860. package/dist/checks/security/sensitive-data-exposure.js +540 -0
  861. package/dist/checks/security/sensitive-data-exposure.js.map +1 -0
  862. package/dist/checks/security/sql-injection-prevention.d.ts +25 -0
  863. package/dist/checks/security/sql-injection-prevention.d.ts.map +1 -0
  864. package/dist/checks/security/sql-injection-prevention.js +216 -0
  865. package/dist/checks/security/sql-injection-prevention.js.map +1 -0
  866. package/dist/checks/security/turnstile-scope-validation.d.ts +21 -0
  867. package/dist/checks/security/turnstile-scope-validation.d.ts.map +1 -0
  868. package/dist/checks/security/turnstile-scope-validation.js +237 -0
  869. package/dist/checks/security/turnstile-scope-validation.js.map +1 -0
  870. package/dist/checks/security/unvalidated-route-params.d.ts +28 -0
  871. package/dist/checks/security/unvalidated-route-params.d.ts.map +1 -0
  872. package/dist/checks/security/unvalidated-route-params.js +246 -0
  873. package/dist/checks/security/unvalidated-route-params.js.map +1 -0
  874. package/dist/checks/security/webhook-security-validation.d.ts +19 -0
  875. package/dist/checks/security/webhook-security-validation.d.ts.map +1 -0
  876. package/dist/checks/security/webhook-security-validation.js +258 -0
  877. package/dist/checks/security/webhook-security-validation.js.map +1 -0
  878. package/dist/checks/seo/missing-metadata.d.ts +26 -0
  879. package/dist/checks/seo/missing-metadata.d.ts.map +1 -0
  880. package/dist/checks/seo/missing-metadata.js +189 -0
  881. package/dist/checks/seo/missing-metadata.js.map +1 -0
  882. package/dist/checks/storage-keys-validation.d.ts +25 -0
  883. package/dist/checks/storage-keys-validation.d.ts.map +1 -0
  884. package/dist/checks/storage-keys-validation.js +312 -0
  885. package/dist/checks/storage-keys-validation.js.map +1 -0
  886. package/dist/checks/store-order-numbers.d.ts +19 -0
  887. package/dist/checks/store-order-numbers.d.ts.map +1 -0
  888. package/dist/checks/store-order-numbers.js +238 -0
  889. package/dist/checks/store-order-numbers.js.map +1 -0
  890. package/dist/checks/system/analyze-consolidation-candidates.d.ts +17 -0
  891. package/dist/checks/system/analyze-consolidation-candidates.d.ts.map +1 -0
  892. package/dist/checks/system/analyze-consolidation-candidates.js +221 -0
  893. package/dist/checks/system/analyze-consolidation-candidates.js.map +1 -0
  894. package/dist/checks/system/apply-universal-progress.d.ts +15 -0
  895. package/dist/checks/system/apply-universal-progress.d.ts.map +1 -0
  896. package/dist/checks/system/apply-universal-progress.js +292 -0
  897. package/dist/checks/system/apply-universal-progress.js.map +1 -0
  898. package/dist/checks/system/broken-preflight-detection.d.ts +30 -0
  899. package/dist/checks/system/broken-preflight-detection.d.ts.map +1 -0
  900. package/dist/checks/system/broken-preflight-detection.js +565 -0
  901. package/dist/checks/system/broken-preflight-detection.js.map +1 -0
  902. package/dist/checks/system/find-orphaned-preflights.d.ts +19 -0
  903. package/dist/checks/system/find-orphaned-preflights.d.ts.map +1 -0
  904. package/dist/checks/system/find-orphaned-preflights.js +157 -0
  905. package/dist/checks/system/find-orphaned-preflights.js.map +1 -0
  906. package/dist/checks/system/lint-preflight-consistency.d.ts +25 -0
  907. package/dist/checks/system/lint-preflight-consistency.d.ts.map +1 -0
  908. package/dist/checks/system/lint-preflight-consistency.js +374 -0
  909. package/dist/checks/system/lint-preflight-consistency.js.map +1 -0
  910. package/dist/checks/system/orphaned-scripts-detection.d.ts +24 -0
  911. package/dist/checks/system/orphaned-scripts-detection.d.ts.map +1 -0
  912. package/dist/checks/system/orphaned-scripts-detection.js +335 -0
  913. package/dist/checks/system/orphaned-scripts-detection.js.map +1 -0
  914. package/dist/checks/system/preflight-command-validation.d.ts +32 -0
  915. package/dist/checks/system/preflight-command-validation.d.ts.map +1 -0
  916. package/dist/checks/system/preflight-command-validation.js +631 -0
  917. package/dist/checks/system/preflight-command-validation.js.map +1 -0
  918. package/dist/checks/system/preflight-concurrency-support.d.ts +18 -0
  919. package/dist/checks/system/preflight-concurrency-support.d.ts.map +1 -0
  920. package/dist/checks/system/preflight-concurrency-support.js +207 -0
  921. package/dist/checks/system/preflight-concurrency-support.js.map +1 -0
  922. package/dist/checks/system/preflight-consolidation-safety.d.ts +16 -0
  923. package/dist/checks/system/preflight-consolidation-safety.d.ts.map +1 -0
  924. package/dist/checks/system/preflight-consolidation-safety.js +250 -0
  925. package/dist/checks/system/preflight-consolidation-safety.js.map +1 -0
  926. package/dist/checks/system/preflight-coverage-map.d.ts +26 -0
  927. package/dist/checks/system/preflight-coverage-map.d.ts.map +1 -0
  928. package/dist/checks/system/preflight-coverage-map.js +295 -0
  929. package/dist/checks/system/preflight-coverage-map.js.map +1 -0
  930. package/dist/checks/system/preflight-drift-detector.d.ts +28 -0
  931. package/dist/checks/system/preflight-drift-detector.d.ts.map +1 -0
  932. package/dist/checks/system/preflight-drift-detector.js +380 -0
  933. package/dist/checks/system/preflight-drift-detector.js.map +1 -0
  934. package/dist/checks/system/preflight-env-var-documentation.d.ts +25 -0
  935. package/dist/checks/system/preflight-env-var-documentation.d.ts.map +1 -0
  936. package/dist/checks/system/preflight-env-var-documentation.js +333 -0
  937. package/dist/checks/system/preflight-env-var-documentation.js.map +1 -0
  938. package/dist/checks/system/preflight-exit-code-validator.d.ts +30 -0
  939. package/dist/checks/system/preflight-exit-code-validator.d.ts.map +1 -0
  940. package/dist/checks/system/preflight-exit-code-validator.js +298 -0
  941. package/dist/checks/system/preflight-exit-code-validator.js.map +1 -0
  942. package/dist/checks/system/preflight-false-positive-tracker.d.ts +25 -0
  943. package/dist/checks/system/preflight-false-positive-tracker.d.ts.map +1 -0
  944. package/dist/checks/system/preflight-false-positive-tracker.js +262 -0
  945. package/dist/checks/system/preflight-false-positive-tracker.js.map +1 -0
  946. package/dist/checks/system/preflight-metadata-validator.d.ts +28 -0
  947. package/dist/checks/system/preflight-metadata-validator.d.ts.map +1 -0
  948. package/dist/checks/system/preflight-metadata-validator.js +220 -0
  949. package/dist/checks/system/preflight-metadata-validator.js.map +1 -0
  950. package/dist/checks/system/preflight-organization.d.ts +15 -0
  951. package/dist/checks/system/preflight-organization.d.ts.map +1 -0
  952. package/dist/checks/system/preflight-organization.js +212 -0
  953. package/dist/checks/system/preflight-organization.js.map +1 -0
  954. package/dist/checks/system/preflight-performance-optimizer.d.ts +17 -0
  955. package/dist/checks/system/preflight-performance-optimizer.d.ts.map +1 -0
  956. package/dist/checks/system/preflight-performance-optimizer.js +375 -0
  957. package/dist/checks/system/preflight-performance-optimizer.js.map +1 -0
  958. package/dist/checks/system/preflight-redundancy-detection.d.ts +28 -0
  959. package/dist/checks/system/preflight-redundancy-detection.d.ts.map +1 -0
  960. package/dist/checks/system/preflight-redundancy-detection.js +1168 -0
  961. package/dist/checks/system/preflight-redundancy-detection.js.map +1 -0
  962. package/dist/checks/system/preflight-reporting-standards.d.ts +17 -0
  963. package/dist/checks/system/preflight-reporting-standards.d.ts.map +1 -0
  964. package/dist/checks/system/preflight-reporting-standards.js +315 -0
  965. package/dist/checks/system/preflight-reporting-standards.js.map +1 -0
  966. package/dist/checks/system/preflight-runtime-health.d.ts +29 -0
  967. package/dist/checks/system/preflight-runtime-health.d.ts.map +1 -0
  968. package/dist/checks/system/preflight-runtime-health.js +346 -0
  969. package/dist/checks/system/preflight-runtime-health.js.map +1 -0
  970. package/dist/checks/system/preflight-schema-validator.d.ts +23 -0
  971. package/dist/checks/system/preflight-schema-validator.d.ts.map +1 -0
  972. package/dist/checks/system/preflight-schema-validator.js +322 -0
  973. package/dist/checks/system/preflight-schema-validator.js.map +1 -0
  974. package/dist/checks/system/preflight-test-coverage.d.ts +24 -0
  975. package/dist/checks/system/preflight-test-coverage.d.ts.map +1 -0
  976. package/dist/checks/system/preflight-test-coverage.js +242 -0
  977. package/dist/checks/system/preflight-test-coverage.js.map +1 -0
  978. package/dist/checks/system/script-path-validation.d.ts +30 -0
  979. package/dist/checks/system/script-path-validation.d.ts.map +1 -0
  980. package/dist/checks/system/script-path-validation.js +351 -0
  981. package/dist/checks/system/script-path-validation.js.map +1 -0
  982. package/dist/checks/system/stale-preflight-detection.d.ts +15 -0
  983. package/dist/checks/system/stale-preflight-detection.d.ts.map +1 -0
  984. package/dist/checks/system/stale-preflight-detection.js +200 -0
  985. package/dist/checks/system/stale-preflight-detection.js.map +1 -0
  986. package/dist/checks/system/universal-progress-reporter.d.ts +92 -0
  987. package/dist/checks/system/universal-progress-reporter.d.ts.map +1 -0
  988. package/dist/checks/system/universal-progress-reporter.js +272 -0
  989. package/dist/checks/system/universal-progress-reporter.js.map +1 -0
  990. package/dist/checks/tailwind/tailwind4-compatibility.d.ts +31 -0
  991. package/dist/checks/tailwind/tailwind4-compatibility.d.ts.map +1 -0
  992. package/dist/checks/tailwind/tailwind4-compatibility.js +490 -0
  993. package/dist/checks/tailwind/tailwind4-compatibility.js.map +1 -0
  994. package/dist/checks/tanstack/tanstack-query-compatibility.d.ts +31 -0
  995. package/dist/checks/tanstack/tanstack-query-compatibility.d.ts.map +1 -0
  996. package/dist/checks/tanstack/tanstack-query-compatibility.js +434 -0
  997. package/dist/checks/tanstack/tanstack-query-compatibility.js.map +1 -0
  998. package/dist/checks/ui/accessibility-critical.d.ts +18 -0
  999. package/dist/checks/ui/accessibility-critical.d.ts.map +1 -0
  1000. package/dist/checks/ui/accessibility-critical.js +357 -0
  1001. package/dist/checks/ui/accessibility-critical.js.map +1 -0
  1002. package/dist/checks/ui/alert-button-gap.d.ts +26 -0
  1003. package/dist/checks/ui/alert-button-gap.d.ts.map +1 -0
  1004. package/dist/checks/ui/alert-button-gap.js +215 -0
  1005. package/dist/checks/ui/alert-button-gap.js.map +1 -0
  1006. package/dist/checks/ui/breadcrumb-consistency.d.ts +18 -0
  1007. package/dist/checks/ui/breadcrumb-consistency.d.ts.map +1 -0
  1008. package/dist/checks/ui/breadcrumb-consistency.js +237 -0
  1009. package/dist/checks/ui/breadcrumb-consistency.js.map +1 -0
  1010. package/dist/checks/ui/button-group-gap.d.ts +22 -0
  1011. package/dist/checks/ui/button-group-gap.d.ts.map +1 -0
  1012. package/dist/checks/ui/button-group-gap.js +194 -0
  1013. package/dist/checks/ui/button-group-gap.js.map +1 -0
  1014. package/dist/checks/ui/button-icon-prop.d.ts +40 -0
  1015. package/dist/checks/ui/button-icon-prop.d.ts.map +1 -0
  1016. package/dist/checks/ui/button-icon-prop.js +248 -0
  1017. package/dist/checks/ui/button-icon-prop.js.map +1 -0
  1018. package/dist/checks/ui/card-section-content-spacing.d.ts +31 -0
  1019. package/dist/checks/ui/card-section-content-spacing.d.ts.map +1 -0
  1020. package/dist/checks/ui/card-section-content-spacing.js +260 -0
  1021. package/dist/checks/ui/card-section-content-spacing.js.map +1 -0
  1022. package/dist/checks/ui/color-check.d.ts +7 -0
  1023. package/dist/checks/ui/color-check.d.ts.map +1 -0
  1024. package/dist/checks/ui/color-check.js +105 -0
  1025. package/dist/checks/ui/color-check.js.map +1 -0
  1026. package/dist/checks/ui/component-library-quality.d.ts +19 -0
  1027. package/dist/checks/ui/component-library-quality.d.ts.map +1 -0
  1028. package/dist/checks/ui/component-library-quality.js +231 -0
  1029. package/dist/checks/ui/component-library-quality.js.map +1 -0
  1030. package/dist/checks/ui/component-prop-validation.d.ts +22 -0
  1031. package/dist/checks/ui/component-prop-validation.d.ts.map +1 -0
  1032. package/dist/checks/ui/component-prop-validation.js +271 -0
  1033. package/dist/checks/ui/component-prop-validation.js.map +1 -0
  1034. package/dist/checks/ui/console-log-check.d.ts +7 -0
  1035. package/dist/checks/ui/console-log-check.d.ts.map +1 -0
  1036. package/dist/checks/ui/console-log-check.js +126 -0
  1037. package/dist/checks/ui/console-log-check.js.map +1 -0
  1038. package/dist/checks/ui/css-grid-gap-check.d.ts +24 -0
  1039. package/dist/checks/ui/css-grid-gap-check.d.ts.map +1 -0
  1040. package/dist/checks/ui/css-grid-gap-check.js +314 -0
  1041. package/dist/checks/ui/css-grid-gap-check.js.map +1 -0
  1042. package/dist/checks/ui/css-token-syntax.d.ts +22 -0
  1043. package/dist/checks/ui/css-token-syntax.d.ts.map +1 -0
  1044. package/dist/checks/ui/css-token-syntax.js +386 -0
  1045. package/dist/checks/ui/css-token-syntax.js.map +1 -0
  1046. package/dist/checks/ui/dark-mode-support.d.ts +95 -0
  1047. package/dist/checks/ui/dark-mode-support.d.ts.map +1 -0
  1048. package/dist/checks/ui/dark-mode-support.js +702 -0
  1049. package/dist/checks/ui/dark-mode-support.js.map +1 -0
  1050. package/dist/checks/ui/dashboard-section-patterns.d.ts +85 -0
  1051. package/dist/checks/ui/dashboard-section-patterns.d.ts.map +1 -0
  1052. package/dist/checks/ui/dashboard-section-patterns.js +1751 -0
  1053. package/dist/checks/ui/dashboard-section-patterns.js.map +1 -0
  1054. package/dist/checks/ui/dashboard-ui.d.ts +28 -0
  1055. package/dist/checks/ui/dashboard-ui.d.ts.map +1 -0
  1056. package/dist/checks/ui/dashboard-ui.js +503 -0
  1057. package/dist/checks/ui/dashboard-ui.js.map +1 -0
  1058. package/dist/checks/ui/dead-action-detector.d.ts +24 -0
  1059. package/dist/checks/ui/dead-action-detector.d.ts.map +1 -0
  1060. package/dist/checks/ui/dead-action-detector.js +457 -0
  1061. package/dist/checks/ui/dead-action-detector.js.map +1 -0
  1062. package/dist/checks/ui/doubled-padding-check.d.ts +21 -0
  1063. package/dist/checks/ui/doubled-padding-check.d.ts.map +1 -0
  1064. package/dist/checks/ui/doubled-padding-check.js +233 -0
  1065. package/dist/checks/ui/doubled-padding-check.js.map +1 -0
  1066. package/dist/checks/ui/dropdown-positioning-check.d.ts +26 -0
  1067. package/dist/checks/ui/dropdown-positioning-check.d.ts.map +1 -0
  1068. package/dist/checks/ui/dropdown-positioning-check.js +283 -0
  1069. package/dist/checks/ui/dropdown-positioning-check.js.map +1 -0
  1070. package/dist/checks/ui/feature-page-hero-consistency.d.ts +29 -0
  1071. package/dist/checks/ui/feature-page-hero-consistency.d.ts.map +1 -0
  1072. package/dist/checks/ui/feature-page-hero-consistency.js +228 -0
  1073. package/dist/checks/ui/feature-page-hero-consistency.js.map +1 -0
  1074. package/dist/checks/ui/filter-loading-states.d.ts +19 -0
  1075. package/dist/checks/ui/filter-loading-states.d.ts.map +1 -0
  1076. package/dist/checks/ui/filter-loading-states.js +193 -0
  1077. package/dist/checks/ui/filter-loading-states.js.map +1 -0
  1078. package/dist/checks/ui/flex-icon-text-gap.d.ts +30 -0
  1079. package/dist/checks/ui/flex-icon-text-gap.d.ts.map +1 -0
  1080. package/dist/checks/ui/flex-icon-text-gap.js +371 -0
  1081. package/dist/checks/ui/flex-icon-text-gap.js.map +1 -0
  1082. package/dist/checks/ui/form-control-layout-check.d.ts +30 -0
  1083. package/dist/checks/ui/form-control-layout-check.d.ts.map +1 -0
  1084. package/dist/checks/ui/form-control-layout-check.js +287 -0
  1085. package/dist/checks/ui/form-control-layout-check.js.map +1 -0
  1086. package/dist/checks/ui/form-field-consistency.d.ts +29 -0
  1087. package/dist/checks/ui/form-field-consistency.d.ts.map +1 -0
  1088. package/dist/checks/ui/form-field-consistency.js +270 -0
  1089. package/dist/checks/ui/form-field-consistency.js.map +1 -0
  1090. package/dist/checks/ui/gap-spacing-consistency.d.ts +35 -0
  1091. package/dist/checks/ui/gap-spacing-consistency.d.ts.map +1 -0
  1092. package/dist/checks/ui/gap-spacing-consistency.js +316 -0
  1093. package/dist/checks/ui/gap-spacing-consistency.js.map +1 -0
  1094. package/dist/checks/ui/header-action-text-color.d.ts +19 -0
  1095. package/dist/checks/ui/header-action-text-color.d.ts.map +1 -0
  1096. package/dist/checks/ui/header-action-text-color.js +122 -0
  1097. package/dist/checks/ui/header-action-text-color.js.map +1 -0
  1098. package/dist/checks/ui/header-vertical-alignment.d.ts +33 -0
  1099. package/dist/checks/ui/header-vertical-alignment.d.ts.map +1 -0
  1100. package/dist/checks/ui/header-vertical-alignment.js +205 -0
  1101. package/dist/checks/ui/header-vertical-alignment.js.map +1 -0
  1102. package/dist/checks/ui/image-component-check.d.ts +7 -0
  1103. package/dist/checks/ui/image-component-check.d.ts.map +1 -0
  1104. package/dist/checks/ui/image-component-check.js +92 -0
  1105. package/dist/checks/ui/image-component-check.js.map +1 -0
  1106. package/dist/checks/ui/inline-flex-gap-check.d.ts +26 -0
  1107. package/dist/checks/ui/inline-flex-gap-check.d.ts.map +1 -0
  1108. package/dist/checks/ui/inline-flex-gap-check.js +196 -0
  1109. package/dist/checks/ui/inline-flex-gap-check.js.map +1 -0
  1110. package/dist/checks/ui/inline-to-tailwind-check.d.ts +47 -0
  1111. package/dist/checks/ui/inline-to-tailwind-check.d.ts.map +1 -0
  1112. package/dist/checks/ui/inline-to-tailwind-check.js +329 -0
  1113. package/dist/checks/ui/inline-to-tailwind-check.js.map +1 -0
  1114. package/dist/checks/ui/input-label-gap.d.ts +34 -0
  1115. package/dist/checks/ui/input-label-gap.d.ts.map +1 -0
  1116. package/dist/checks/ui/input-label-gap.js +347 -0
  1117. package/dist/checks/ui/input-label-gap.js.map +1 -0
  1118. package/dist/checks/ui/input-width-consistency.d.ts +53 -0
  1119. package/dist/checks/ui/input-width-consistency.d.ts.map +1 -0
  1120. package/dist/checks/ui/input-width-consistency.js +342 -0
  1121. package/dist/checks/ui/input-width-consistency.js.map +1 -0
  1122. package/dist/checks/ui/js-responsive-visibility.d.ts +31 -0
  1123. package/dist/checks/ui/js-responsive-visibility.d.ts.map +1 -0
  1124. package/dist/checks/ui/js-responsive-visibility.js +213 -0
  1125. package/dist/checks/ui/js-responsive-visibility.js.map +1 -0
  1126. package/dist/checks/ui/label-description-spacing.d.ts +30 -0
  1127. package/dist/checks/ui/label-description-spacing.d.ts.map +1 -0
  1128. package/dist/checks/ui/label-description-spacing.js +285 -0
  1129. package/dist/checks/ui/label-description-spacing.js.map +1 -0
  1130. package/dist/checks/ui/layout-shift-detection.d.ts +31 -0
  1131. package/dist/checks/ui/layout-shift-detection.d.ts.map +1 -0
  1132. package/dist/checks/ui/layout-shift-detection.js +398 -0
  1133. package/dist/checks/ui/layout-shift-detection.js.map +1 -0
  1134. package/dist/checks/ui/margin-in-gap-container.d.ts +25 -0
  1135. package/dist/checks/ui/margin-in-gap-container.d.ts.map +1 -0
  1136. package/dist/checks/ui/margin-in-gap-container.js +619 -0
  1137. package/dist/checks/ui/margin-in-gap-container.js.map +1 -0
  1138. package/dist/checks/ui/mega-menu-dropdown-position.d.ts +25 -0
  1139. package/dist/checks/ui/mega-menu-dropdown-position.d.ts.map +1 -0
  1140. package/dist/checks/ui/mega-menu-dropdown-position.js +230 -0
  1141. package/dist/checks/ui/mega-menu-dropdown-position.js.map +1 -0
  1142. package/dist/checks/ui/mega-menu-scrollbar-overlap.d.ts +24 -0
  1143. package/dist/checks/ui/mega-menu-scrollbar-overlap.d.ts.map +1 -0
  1144. package/dist/checks/ui/mega-menu-scrollbar-overlap.js +283 -0
  1145. package/dist/checks/ui/mega-menu-scrollbar-overlap.js.map +1 -0
  1146. package/dist/checks/ui/mega-menu-spacing-check.d.ts +21 -0
  1147. package/dist/checks/ui/mega-menu-spacing-check.d.ts.map +1 -0
  1148. package/dist/checks/ui/mega-menu-spacing-check.js +244 -0
  1149. package/dist/checks/ui/mega-menu-spacing-check.js.map +1 -0
  1150. package/dist/checks/ui/notification-feedback-check.d.ts +37 -0
  1151. package/dist/checks/ui/notification-feedback-check.d.ts.map +1 -0
  1152. package/dist/checks/ui/notification-feedback-check.js +552 -0
  1153. package/dist/checks/ui/notification-feedback-check.js.map +1 -0
  1154. package/dist/checks/ui/overflow-clipping-detection.d.ts +17 -0
  1155. package/dist/checks/ui/overflow-clipping-detection.d.ts.map +1 -0
  1156. package/dist/checks/ui/overflow-clipping-detection.js +198 -0
  1157. package/dist/checks/ui/overflow-clipping-detection.js.map +1 -0
  1158. package/dist/checks/ui/page-layout-spacing.d.ts +29 -0
  1159. package/dist/checks/ui/page-layout-spacing.d.ts.map +1 -0
  1160. package/dist/checks/ui/page-layout-spacing.js +604 -0
  1161. package/dist/checks/ui/page-layout-spacing.js.map +1 -0
  1162. package/dist/checks/ui/path-alias-check.d.ts +7 -0
  1163. package/dist/checks/ui/path-alias-check.d.ts.map +1 -0
  1164. package/dist/checks/ui/path-alias-check.js +95 -0
  1165. package/dist/checks/ui/path-alias-check.js.map +1 -0
  1166. package/dist/checks/ui/product-image-animations.d.ts +70 -0
  1167. package/dist/checks/ui/product-image-animations.d.ts.map +1 -0
  1168. package/dist/checks/ui/product-image-animations.js +332 -0
  1169. package/dist/checks/ui/product-image-animations.js.map +1 -0
  1170. package/dist/checks/ui/search-width-consistency.d.ts +53 -0
  1171. package/dist/checks/ui/search-width-consistency.d.ts.map +1 -0
  1172. package/dist/checks/ui/search-width-consistency.js +276 -0
  1173. package/dist/checks/ui/search-width-consistency.js.map +1 -0
  1174. package/dist/checks/ui/section-spacing-check.d.ts +30 -0
  1175. package/dist/checks/ui/section-spacing-check.d.ts.map +1 -0
  1176. package/dist/checks/ui/section-spacing-check.js +248 -0
  1177. package/dist/checks/ui/section-spacing-check.js.map +1 -0
  1178. package/dist/checks/ui/sibling-spacing-check.d.ts +25 -0
  1179. package/dist/checks/ui/sibling-spacing-check.d.ts.map +1 -0
  1180. package/dist/checks/ui/sibling-spacing-check.js +329 -0
  1181. package/dist/checks/ui/sibling-spacing-check.js.map +1 -0
  1182. package/dist/checks/ui/sidebar-layout-gap.d.ts +34 -0
  1183. package/dist/checks/ui/sidebar-layout-gap.d.ts.map +1 -0
  1184. package/dist/checks/ui/sidebar-layout-gap.js +200 -0
  1185. package/dist/checks/ui/sidebar-layout-gap.js.map +1 -0
  1186. package/dist/checks/ui/skeleton-size-consistency.d.ts +50 -0
  1187. package/dist/checks/ui/skeleton-size-consistency.d.ts.map +1 -0
  1188. package/dist/checks/ui/skeleton-size-consistency.js +1239 -0
  1189. package/dist/checks/ui/skeleton-size-consistency.js.map +1 -0
  1190. package/dist/checks/ui/spacing-check.d.ts +7 -0
  1191. package/dist/checks/ui/spacing-check.d.ts.map +1 -0
  1192. package/dist/checks/ui/spacing-check.js +100 -0
  1193. package/dist/checks/ui/spacing-check.js.map +1 -0
  1194. package/dist/checks/ui/styling-standards.d.ts +71 -0
  1195. package/dist/checks/ui/styling-standards.d.ts.map +1 -0
  1196. package/dist/checks/ui/styling-standards.js +567 -0
  1197. package/dist/checks/ui/styling-standards.js.map +1 -0
  1198. package/dist/checks/ui/tailwind-consistency.d.ts +26 -0
  1199. package/dist/checks/ui/tailwind-consistency.d.ts.map +1 -0
  1200. package/dist/checks/ui/tailwind-consistency.js +345 -0
  1201. package/dist/checks/ui/tailwind-consistency.js.map +1 -0
  1202. package/dist/checks/ui/tailwind-contrast-check.d.ts +44 -0
  1203. package/dist/checks/ui/tailwind-contrast-check.d.ts.map +1 -0
  1204. package/dist/checks/ui/tailwind-contrast-check.js +457 -0
  1205. package/dist/checks/ui/tailwind-contrast-check.js.map +1 -0
  1206. package/dist/checks/ui/text-button-group-gap.d.ts +29 -0
  1207. package/dist/checks/ui/text-button-group-gap.d.ts.map +1 -0
  1208. package/dist/checks/ui/text-button-group-gap.js +242 -0
  1209. package/dist/checks/ui/text-button-group-gap.js.map +1 -0
  1210. package/dist/checks/ui/typography-check.d.ts +7 -0
  1211. package/dist/checks/ui/typography-check.d.ts.map +1 -0
  1212. package/dist/checks/ui/typography-check.js +114 -0
  1213. package/dist/checks/ui/typography-check.js.map +1 -0
  1214. package/dist/checks/ui/z-index-check.d.ts +25 -0
  1215. package/dist/checks/ui/z-index-check.d.ts.map +1 -0
  1216. package/dist/checks/ui/z-index-check.js +663 -0
  1217. package/dist/checks/ui/z-index-check.js.map +1 -0
  1218. package/dist/checks/zod/zod4-compatibility.d.ts +31 -0
  1219. package/dist/checks/zod/zod4-compatibility.d.ts.map +1 -0
  1220. package/dist/checks/zod/zod4-compatibility.js +412 -0
  1221. package/dist/checks/zod/zod4-compatibility.js.map +1 -0
  1222. package/dist/core/categories.d.ts +40 -0
  1223. package/dist/core/categories.d.ts.map +1 -0
  1224. package/dist/core/categories.js +153 -0
  1225. package/dist/core/categories.js.map +1 -0
  1226. package/dist/core/config.d.ts +87 -0
  1227. package/dist/core/config.d.ts.map +1 -0
  1228. package/dist/core/config.js +176 -0
  1229. package/dist/core/config.js.map +1 -0
  1230. package/dist/core/types.d.ts +194 -0
  1231. package/dist/core/types.d.ts.map +1 -0
  1232. package/dist/core/types.js +24 -0
  1233. package/dist/core/types.js.map +1 -0
  1234. package/dist/index.d.ts +37 -0
  1235. package/dist/index.d.ts.map +1 -0
  1236. package/dist/index.js +207 -0
  1237. package/dist/index.js.map +1 -0
  1238. package/dist/runner.d.ts +33 -0
  1239. package/dist/runner.d.ts.map +1 -0
  1240. package/dist/runner.js +457 -0
  1241. package/dist/runner.js.map +1 -0
  1242. package/dist/shared/concurrency-config.d.ts +57 -0
  1243. package/dist/shared/concurrency-config.d.ts.map +1 -0
  1244. package/dist/shared/concurrency-config.js +128 -0
  1245. package/dist/shared/concurrency-config.js.map +1 -0
  1246. package/dist/shared/design-tokens-config.d.ts +140 -0
  1247. package/dist/shared/design-tokens-config.d.ts.map +1 -0
  1248. package/dist/shared/design-tokens-config.js +290 -0
  1249. package/dist/shared/design-tokens-config.js.map +1 -0
  1250. package/dist/shared/design-tokens.d.ts +771 -0
  1251. package/dist/shared/design-tokens.d.ts.map +1 -0
  1252. package/dist/shared/design-tokens.js +873 -0
  1253. package/dist/shared/design-tokens.js.map +1 -0
  1254. package/dist/shared/file-cache.d.ts +379 -0
  1255. package/dist/shared/file-cache.d.ts.map +1 -0
  1256. package/dist/shared/file-cache.js +744 -0
  1257. package/dist/shared/file-cache.js.map +1 -0
  1258. package/dist/shared/glob-patterns.d.ts +200 -0
  1259. package/dist/shared/glob-patterns.d.ts.map +1 -0
  1260. package/dist/shared/glob-patterns.js +291 -0
  1261. package/dist/shared/glob-patterns.js.map +1 -0
  1262. package/dist/shared/layout-constants.d.ts +101 -0
  1263. package/dist/shared/layout-constants.d.ts.map +1 -0
  1264. package/dist/shared/layout-constants.js +172 -0
  1265. package/dist/shared/layout-constants.js.map +1 -0
  1266. package/dist/utils/config-loader.d.ts +34 -0
  1267. package/dist/utils/config-loader.d.ts.map +1 -0
  1268. package/dist/utils/config-loader.js +169 -0
  1269. package/dist/utils/config-loader.js.map +1 -0
  1270. package/dist/utils/console-chars.d.ts +388 -0
  1271. package/dist/utils/console-chars.d.ts.map +1 -0
  1272. package/dist/utils/console-chars.js +378 -0
  1273. package/dist/utils/console-chars.js.map +1 -0
  1274. package/dist/utils/file-scanner.d.ts +73 -0
  1275. package/dist/utils/file-scanner.d.ts.map +1 -0
  1276. package/dist/utils/file-scanner.js +203 -0
  1277. package/dist/utils/file-scanner.js.map +1 -0
  1278. package/dist/utils/findings-writer.d.ts +32 -0
  1279. package/dist/utils/findings-writer.d.ts.map +1 -0
  1280. package/dist/utils/findings-writer.js +69 -0
  1281. package/dist/utils/findings-writer.js.map +1 -0
  1282. package/dist/utils/plugin-loader.d.ts +76 -0
  1283. package/dist/utils/plugin-loader.d.ts.map +1 -0
  1284. package/dist/utils/plugin-loader.js +235 -0
  1285. package/dist/utils/plugin-loader.js.map +1 -0
  1286. package/dist/utils/preflight-runner.d.ts +29 -0
  1287. package/dist/utils/preflight-runner.d.ts.map +1 -0
  1288. package/dist/utils/preflight-runner.js +131 -0
  1289. package/dist/utils/preflight-runner.js.map +1 -0
  1290. package/dist/utils/progress-reporter.d.ts +92 -0
  1291. package/dist/utils/progress-reporter.d.ts.map +1 -0
  1292. package/dist/utils/progress-reporter.js +272 -0
  1293. package/dist/utils/progress-reporter.js.map +1 -0
  1294. package/package.json +78 -0
  1295. package/templates/domain-specific/trading-card-system/tcg-seed-validation.ts +197 -0
  1296. package/templates/new-check.ts.template +205 -0
  1297. package/templates/preflight.config.ts.template +103 -0
@@ -0,0 +1,1039 @@
1
+ #!/usr/bin/env tsx
2
+ "use strict";
3
+ /**
4
+ * E2E Interaction Regression Preflight
5
+ *
6
+ * Ensures that E2E tests actually verify interactive functionality works:
7
+ * - Buttons can be clicked and produce expected outcomes
8
+ * - Forms can be submitted and validation works
9
+ * - Navigation actions complete successfully
10
+ * - State changes are verified after interactions
11
+ *
12
+ * This catches the gap where tests "visit" pages but don't verify functionality.
13
+ */
14
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ var desc = Object.getOwnPropertyDescriptor(m, k);
17
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
18
+ desc = { enumerable: true, get: function() { return m[k]; } };
19
+ }
20
+ Object.defineProperty(o, k2, desc);
21
+ }) : (function(o, m, k, k2) {
22
+ if (k2 === undefined) k2 = k;
23
+ o[k2] = m[k];
24
+ }));
25
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
26
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
27
+ }) : function(o, v) {
28
+ o["default"] = v;
29
+ });
30
+ var __importStar = (this && this.__importStar) || (function () {
31
+ var ownKeys = function(o) {
32
+ ownKeys = Object.getOwnPropertyNames || function (o) {
33
+ var ar = [];
34
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
35
+ return ar;
36
+ };
37
+ return ownKeys(o);
38
+ };
39
+ return function (mod) {
40
+ if (mod && mod.__esModule) return mod;
41
+ var result = {};
42
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
43
+ __setModuleDefault(result, mod);
44
+ return result;
45
+ };
46
+ })();
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.tags = exports.description = exports.blocking = exports.category = exports.name = exports.id = void 0;
49
+ const fs = __importStar(require("node:fs"));
50
+ const path = __importStar(require("node:path"));
51
+ const console_chars_1 = require("../../utils/console-chars");
52
+ const file_cache_1 = require("../../shared/file-cache");
53
+ // Check metadata
54
+ exports.id = "e2e/e2e-interaction-regression";
55
+ exports.name = "E2e Interaction Regression";
56
+ exports.category = "e2e";
57
+ exports.blocking = false;
58
+ exports.description = "E2E Interaction Regression Preflight";
59
+ exports.tags = ["e2e", "testing"];
60
+ // Critical user flows that MUST have interaction + outcome verification
61
+ const CRITICAL_FLOWS = [
62
+ {
63
+ name: "Checkout Submit",
64
+ route: "/checkout",
65
+ interactionPatterns: [
66
+ /\.click\s*\([^)]*(?:submit|place.?order|pay|complete|continue|proceed)/i,
67
+ /\.fill\s*\([^)]*(?:shipping|address|card|zip|city|name|email)/i,
68
+ ],
69
+ outcomePatterns: [
70
+ /toHaveURL\s*\([^)]*(?:confirm|success|thank|payment)/i,
71
+ /getByText\s*\([^)]*(?:order|confirm|success|thank)/i,
72
+ /waitForResponse/i,
73
+ /expect\.poll/i,
74
+ ],
75
+ severity: "critical",
76
+ },
77
+ {
78
+ name: "Login Flow",
79
+ route: "/login",
80
+ interactionPatterns: [
81
+ /\.fill\s*\([^)]*(?:email|password)/i,
82
+ /\.click\s*\([^)]*(?:sign.?in|login|submit)/i,
83
+ ],
84
+ outcomePatterns: [
85
+ /toHaveURL\s*\(\s*(?!.*login)/i,
86
+ /getByText\s*\([^)]*(?:dashboard|welcome|account)/i,
87
+ ],
88
+ severity: "high",
89
+ },
90
+ {
91
+ name: "Registration Flow",
92
+ route: "/register",
93
+ interactionPatterns: [
94
+ /\.fill\s*\([^)]*(?:email|password|name)/i,
95
+ /\.click\s*\([^)]*(?:create|register|sign.?up|submit)/i,
96
+ ],
97
+ outcomePatterns: [
98
+ /toHaveURL\s*\(\s*(?!.*register)/i,
99
+ /getByText\s*\([^)]*(?:welcome|verify|success|check.?email)/i,
100
+ ],
101
+ severity: "high",
102
+ },
103
+ {
104
+ name: "Listing Creation",
105
+ route: "/store/listings",
106
+ interactionPatterns: [
107
+ /setInputFiles/i,
108
+ /\.click\s*\([^)]*(?:submit|approve|create|identify|upload)/i,
109
+ ],
110
+ outcomePatterns: [
111
+ /getByText\s*\([^)]*(?:success|submitted|created|approved)/i,
112
+ /toHaveURL\s*\([^)]*listing/i,
113
+ ],
114
+ severity: "high",
115
+ },
116
+ {
117
+ name: "Add to Cart",
118
+ route: "/product",
119
+ interactionPatterns: [
120
+ /\.click\s*\([^)]*(?:add.?to.?cart|buy|purchase|cart)/i,
121
+ /addToCartButton/i,
122
+ /data-testid.*add-to-cart/i,
123
+ ],
124
+ outcomePatterns: [
125
+ /getByText\s*\([^)]*(?:added|cart|item)/i,
126
+ /toHaveURL\s*\([^)]*cart/i,
127
+ /localStorage.*cart/i,
128
+ /cartBadge/i,
129
+ /cart-badge/i,
130
+ /not\.toHaveText.*0/i,
131
+ ],
132
+ severity: "high",
133
+ },
134
+ {
135
+ name: "Contact Form Submit",
136
+ route: "/contact",
137
+ interactionPatterns: [
138
+ /\.fill\s*\([^)]*(?:name|email|message|subject)/i,
139
+ /\.click\s*\([^)]*(?:send|submit)/i,
140
+ /getByLabel.*fill/i,
141
+ ],
142
+ outcomePatterns: [
143
+ /getByText\s*\([^)]*(?:sent|success|thank)/i,
144
+ /waitForRequest\s*\([^)]*contact/i,
145
+ /waitForResponse/i,
146
+ /contactRequests/i,
147
+ /expect\.poll/i,
148
+ ],
149
+ severity: "medium",
150
+ },
151
+ {
152
+ name: "Seller Dashboard Navigation",
153
+ route: "/store",
154
+ interactionPatterns: [
155
+ /\.click\s*\([^)]*(?:listing|order|setting|dashboard|nav)/i,
156
+ /listingsNav.*click/i,
157
+ /ordersNav.*click/i,
158
+ /settingsNav.*click/i,
159
+ ],
160
+ outcomePatterns: [
161
+ /toHaveURL\s*\([^)]*store/i,
162
+ /toContainText\s*\([^)]*(?:listing|order|setting)/i,
163
+ /getByRole.*heading/i,
164
+ ],
165
+ severity: "medium",
166
+ },
167
+ {
168
+ name: "Admin Approval Flow",
169
+ route: "/admin",
170
+ interactionPatterns: [
171
+ /\.click\s*\([^)]*(?:approve|reject|review)/i,
172
+ /approveButton.*click/i,
173
+ /rejectButton.*click/i,
174
+ ],
175
+ outcomePatterns: [
176
+ /getByText\s*\([^)]*(?:approved|rejected|success)/i,
177
+ /toHaveURL/i,
178
+ /approveRequestReceived|rejectRequestReceived/i,
179
+ /expect\.poll/i,
180
+ ],
181
+ severity: "high",
182
+ },
183
+ ];
184
+ // REQUIRED critical actions - these MUST have test coverage or build fails
185
+ const REQUIRED_CRITICAL_ACTIONS = [
186
+ // Ship actions (7x in /store/orders)
187
+ {
188
+ name: "Order Ship Action",
189
+ route: "/store/orders",
190
+ actionPatterns: [/handleShip|shipOrder|markShipped|markAsShipped|ship.*order/gi],
191
+ interactionPatterns: [
192
+ /\.click\s*\([^)]*(?:ship|mark.*shipped|fulfill)/i,
193
+ /shipButton/i,
194
+ /ship-button/i,
195
+ ],
196
+ outcomePatterns: [
197
+ /getByText\s*\([^)]*(?:shipped|fulfilled|tracking)/i,
198
+ /waitForResponse/i,
199
+ /toHaveText.*shipped/i,
200
+ /toBeVisible.*shipped/i,
201
+ ],
202
+ severity: "high",
203
+ count: 7,
204
+ },
205
+ // Approve actions (11x in /admin/listings, /store/listings/new)
206
+ {
207
+ name: "Listing Approve Action",
208
+ route: "/admin/listings",
209
+ actionPatterns: [/handleApprove|onApprove|approveItem|approveListing/gi],
210
+ interactionPatterns: [
211
+ /\.click\s*\([^)]*(?:approve|accept)/i,
212
+ /approveButton/i,
213
+ /approve-button/i,
214
+ ],
215
+ outcomePatterns: [
216
+ /getByText\s*\([^)]*(?:approved|success)/i,
217
+ /waitForResponse/i,
218
+ /toHaveText.*approved/i,
219
+ /toBeVisible.*approved/i,
220
+ ],
221
+ severity: "high",
222
+ count: 11,
223
+ },
224
+ // Delete actions (6x in /admin/listings, /admin/templates)
225
+ {
226
+ name: "Admin Delete Action",
227
+ route: "/admin",
228
+ actionPatterns: [/handleDelete|onDelete|deleteItem|deleteListing|deleteTemplate/gi],
229
+ interactionPatterns: [
230
+ /\.click\s*\([^)]*(?:delete|remove|trash)/i,
231
+ /deleteButton/i,
232
+ /delete-button/i,
233
+ ],
234
+ outcomePatterns: [
235
+ /getByText\s*\([^)]*(?:deleted|removed|success)/i,
236
+ /waitForResponse/i,
237
+ /not\.toBeVisible/i,
238
+ /toBeVisible.*deleted/i,
239
+ ],
240
+ severity: "high",
241
+ count: 6,
242
+ },
243
+ // Cancel actions (2x in /store/billing)
244
+ {
245
+ name: "Subscription Cancel Action",
246
+ route: "/store/billing",
247
+ actionPatterns: [/handleCancel|cancelSubscription|cancelPlan/gi],
248
+ interactionPatterns: [
249
+ /\.click\s*\([^)]*(?:cancel|unsubscribe)/i,
250
+ /cancelButton/i,
251
+ /cancel-subscription/i,
252
+ ],
253
+ outcomePatterns: [
254
+ /getByText\s*\([^)]*(?:cancelled|canceled|success)/i,
255
+ /waitForResponse/i,
256
+ /toBeVisible.*cancel/i,
257
+ ],
258
+ severity: "high",
259
+ count: 2,
260
+ },
261
+ // Reject actions (2x in /store/listings/new)
262
+ {
263
+ name: "Listing Reject Action",
264
+ route: "/store/listings",
265
+ actionPatterns: [/handleReject|onReject|rejectItem|rejectListing/gi],
266
+ interactionPatterns: [
267
+ /\.click\s*\([^)]*(?:reject|decline)/i,
268
+ /rejectButton/i,
269
+ /reject-button/i,
270
+ ],
271
+ outcomePatterns: [
272
+ /getByText\s*\([^)]*(?:rejected|declined)/i,
273
+ /waitForResponse/i,
274
+ /toBeVisible.*rejected/i,
275
+ ],
276
+ severity: "high",
277
+ count: 2,
278
+ },
279
+ // Publish actions (2x in /admin/listings)
280
+ {
281
+ name: "Listing Publish Action",
282
+ route: "/admin/listings",
283
+ actionPatterns: [/handlePublish|publishListing|publishItem/gi],
284
+ interactionPatterns: [
285
+ /\.click\s*\([^)]*(?:publish|go.*live)/i,
286
+ /publishButton/i,
287
+ /publish-button/i,
288
+ ],
289
+ outcomePatterns: [
290
+ /getByText\s*\([^)]*(?:published|live|active)/i,
291
+ /waitForResponse/i,
292
+ /toBeVisible.*publish/i,
293
+ ],
294
+ severity: "medium",
295
+ count: 2,
296
+ },
297
+ // Footer link navigation
298
+ {
299
+ name: "Footer Navigation Links",
300
+ route: "/",
301
+ actionPatterns: [/FooterLink|footer.*href|footer.*link/gi],
302
+ interactionPatterns: [/\.click\s*\([^)]*(?:footer|link)/i, /locator\s*\([^)]*footer/i],
303
+ outcomePatterns: [/toHaveURL/i, /toBeVisible/i],
304
+ severity: "low",
305
+ count: 1,
306
+ },
307
+ ];
308
+ function getModeFromArgsOrEnv() {
309
+ const rawEnv = (process.env.PREFLIGHT_INTERACTION_MODE || "").toLowerCase();
310
+ const argv = process.argv.slice(2);
311
+ const modeArg = argv.find((a) => a.startsWith("--mode="));
312
+ const rawArg = modeArg ? modeArg.split("=")[1] : "";
313
+ const raw = (rawArg || rawEnv || "block").toLowerCase();
314
+ return raw === "warn" ? "warn" : "block";
315
+ }
316
+ function isVerbose() {
317
+ return process.argv.includes("--verbose");
318
+ }
319
+ // Patterns that indicate real user interactions
320
+ const INTERACTION_PATTERNS = [
321
+ /\.click\s*\(/g,
322
+ /\.fill\s*\(/g,
323
+ /\.type\s*\(/g,
324
+ /\.press\s*\(/g,
325
+ /\.check\s*\(/g,
326
+ /\.uncheck\s*\(/g,
327
+ /\.selectOption\s*\(/g,
328
+ /\.setInputFiles\s*\(/g,
329
+ /\.dblclick\s*\(/g,
330
+ /\.hover\s*\(/g,
331
+ /smartClick\s*\(/g,
332
+ /smartFill\s*\(/g,
333
+ ];
334
+ // Patterns that indicate outcome verification (not just visibility)
335
+ const OUTCOME_ASSERTION_PATTERNS = [
336
+ /toHaveURL\s*\(/g, // Navigation completed
337
+ /toHaveTitle\s*\(/g, // Page changed
338
+ /toHaveValue\s*\(/g, // Input state changed
339
+ /toHaveText\s*\(/g, // Content changed
340
+ /toContainText\s*\(/g, // Content appeared
341
+ /getByText\s*\([^)]+\)\.toBeVisible/g, // Specific text appeared
342
+ /getByRole\s*\([^)]+\)\.toBeVisible/g, // Element appeared after action
343
+ /waitForResponse\s*\(/g, // API call completed
344
+ /waitForRequest\s*\(/g, // Request was made
345
+ /waitForURL\s*\(/g, // Navigation happened
346
+ /expect\.poll\s*\(/g, // State polling
347
+ /toHaveCount\s*\(/g, // List changed
348
+ /toBeEnabled\s*\(/g, // State changed
349
+ /toBeDisabled\s*\(/g, // State changed
350
+ /toBeChecked\s*\(/g, // Checkbox state
351
+ /localStorage|sessionStorage/g, // Storage verification
352
+ /not\.toBeVisible\s*\(/g, // Element disappeared
353
+ /toBeHidden\s*\(/g, // Element hidden
354
+ /toHaveAttribute\s*\(/g, // Attribute changed
355
+ /toHaveClass\s*\(/g, // Class changed
356
+ /toHaveCSS\s*\(/g, // Style changed
357
+ ];
358
+ // Weak assertions that don't verify functionality
359
+ const WEAK_ASSERTION_PATTERNS = [
360
+ /locator\s*\(\s*["']body["']\s*\).*toBeVisible/g,
361
+ /toBeVisible\s*\(\s*\)\s*;?\s*$/gm, // Just visibility, no context
362
+ ];
363
+ // Critical action keywords that MUST have outcome verification
364
+ const CRITICAL_ACTION_KEYWORDS = [
365
+ {
366
+ keyword: /delete|remove|trash/i,
367
+ requiredOutcome: /not\.toBeVisible|toBeHidden|toHaveCount\s*\(\s*0|removed|deleted/i,
368
+ },
369
+ {
370
+ keyword: /submit|save|confirm/i,
371
+ requiredOutcome: /waitForResponse|toHaveURL|success|saved|submitted/i,
372
+ },
373
+ { keyword: /approve|reject/i, requiredOutcome: /waitForResponse|approved|rejected|toHaveText/i },
374
+ { keyword: /add.*cart|buy|purchase/i, requiredOutcome: /cart|added|toHaveText|localStorage/i },
375
+ {
376
+ keyword: /checkout|place.*order|pay/i,
377
+ requiredOutcome: /toHaveURL|confirmation|success|thank/i,
378
+ },
379
+ { keyword: /ship|fulfill/i, requiredOutcome: /shipped|tracking|waitForResponse/i },
380
+ { keyword: /cancel/i, requiredOutcome: /cancelled|canceled|toHaveURL|closed/i },
381
+ { keyword: /refund/i, requiredOutcome: /refunded|waitForResponse|success/i },
382
+ {
383
+ keyword: /toggle|switch/i,
384
+ requiredOutcome: /toBeChecked|not\.toBeChecked|toHaveAttribute|aria-pressed/i,
385
+ },
386
+ ];
387
+ /**
388
+ * Detailed per-click outcome analysis
389
+ * Ensures every click has a corresponding outcome verification
390
+ */
391
+ function analyzeClickOutcomes(filePath) {
392
+ const content = fs.readFileSync(filePath, "utf-8");
393
+ const lines = content.split("\n");
394
+ const issues = [];
395
+ const relPath = path.relative(process.cwd(), filePath).replace(/\\/g, "/");
396
+ for (let i = 0; i < lines.length; i++) {
397
+ const line = lines[i];
398
+ const lineNum = i + 1;
399
+ // Find click actions
400
+ const clickMatch = line.match(/\.(click|check|uncheck|selectOption)\s*\(/);
401
+ if (!clickMatch)
402
+ continue;
403
+ // Get context around the click (what's being clicked)
404
+ const clickContext = line.trim();
405
+ // Look ahead for outcome verification (within 8 lines or until test block ends)
406
+ const lookAheadLines = lines.slice(i + 1, Math.min(i + 9, lines.length));
407
+ const lookAhead = lookAheadLines.join("\n");
408
+ // Check if test block ends before any assertion
409
+ const testEndIndex = lookAhead.search(/\}\s*\)\s*;|\}\s*\);/);
410
+ const contextToCheck = testEndIndex > 0 ? lookAhead.slice(0, testEndIndex) : lookAhead;
411
+ // Check for any outcome assertion (use fresh regex without global flag)
412
+ const outcomePatterns = [
413
+ /toHaveURL\s*\(/,
414
+ /toHaveTitle\s*\(/,
415
+ /toHaveValue\s*\(/,
416
+ /toHaveText\s*\(/,
417
+ /toContainText\s*\(/,
418
+ /getByText\s*\([^)]+\)\.toBeVisible/,
419
+ /getByRole\s*\([^)]+\)\.toBeVisible/,
420
+ /waitForResponse\s*\(/,
421
+ /waitForRequest\s*\(/,
422
+ /waitForURL\s*\(/,
423
+ /expect\.poll\s*\(/,
424
+ /toHaveCount\s*\(/,
425
+ /toBeEnabled\s*\(/,
426
+ /toBeDisabled\s*\(/,
427
+ /toBeChecked\s*\(/,
428
+ /localStorage|sessionStorage/,
429
+ /not\.toBeVisible\s*\(/,
430
+ /toBeHidden\s*\(/,
431
+ /toHaveAttribute\s*\(/,
432
+ ];
433
+ const hasOutcome = outcomePatterns.some((p) => p.test(contextToCheck));
434
+ // Check for weak-only assertions
435
+ const hasOnlyWeakAssertion = !hasOutcome && /toBeVisible\s*\(\s*\)/.test(contextToCheck);
436
+ if (!hasOutcome) {
437
+ // Determine severity based on what's being clicked
438
+ let severity = "medium";
439
+ let suggestedOutcome = "await expect(element).toBeVisible(); // Add specific outcome";
440
+ for (const { keyword, requiredOutcome } of CRITICAL_ACTION_KEYWORDS) {
441
+ if (keyword.test(clickContext)) {
442
+ severity = /delete|checkout|pay|refund/i.test(clickContext) ? "critical" : "high";
443
+ const outcomeExample = requiredOutcome.source.split("|")[0].replace(/\\/g, "");
444
+ suggestedOutcome = `await expect(...).${outcomeExample}(...);`;
445
+ break;
446
+ }
447
+ }
448
+ // Skip if it's just a navigation click followed by goto
449
+ if (/\.goto\s*\(/.test(contextToCheck))
450
+ continue;
451
+ // Skip hover actions (they often don't need outcome)
452
+ if (clickMatch[1] === "hover")
453
+ continue;
454
+ issues.push({
455
+ file: relPath,
456
+ line: lineNum,
457
+ clickText: clickContext.slice(0, 80),
458
+ issue: hasOnlyWeakAssertion
459
+ ? "Click has only weak visibility assertion (no functional verification)"
460
+ : "Click without outcome verification",
461
+ severity,
462
+ suggestedOutcome,
463
+ });
464
+ }
465
+ }
466
+ return issues;
467
+ }
468
+ function analyzeTestFile(filePath) {
469
+ const content = fs.readFileSync(filePath, "utf-8");
470
+ const lines = content.split("\n");
471
+ let interactions = 0;
472
+ let outcomeAssertions = 0;
473
+ const issues = [];
474
+ // Count interactions
475
+ for (const pattern of INTERACTION_PATTERNS) {
476
+ const matches = content.match(pattern);
477
+ if (matches)
478
+ interactions += matches.length;
479
+ }
480
+ // Count outcome assertions
481
+ for (const pattern of OUTCOME_ASSERTION_PATTERNS) {
482
+ const matches = content.match(pattern);
483
+ if (matches)
484
+ outcomeAssertions += matches.length;
485
+ }
486
+ // Subtract weak assertions
487
+ for (const pattern of WEAK_ASSERTION_PATTERNS) {
488
+ const matches = content.match(pattern);
489
+ if (matches)
490
+ outcomeAssertions -= matches.length;
491
+ }
492
+ outcomeAssertions = Math.max(0, outcomeAssertions);
493
+ // Calculate score: interactions should have corresponding outcome checks
494
+ const ratio = interactions > 0 ? outcomeAssertions / interactions : 0;
495
+ const score = Math.min(100, Math.round(ratio * 100));
496
+ // Identify issues
497
+ if (interactions === 0) {
498
+ issues.push("No user interactions found (clicks, fills, etc.)");
499
+ }
500
+ if (interactions > 0 && outcomeAssertions === 0) {
501
+ issues.push("Has interactions but no outcome verification");
502
+ }
503
+ if (interactions > 5 && ratio < 0.3) {
504
+ issues.push(`Low outcome coverage: ${outcomeAssertions} outcomes for ${interactions} interactions`);
505
+ }
506
+ // Check for click-without-assertion pattern
507
+ const clickWithoutAssert = content.match(/\.click\s*\([^)]+\)\s*;\s*\n\s*\}\s*\)/g);
508
+ if (clickWithoutAssert && clickWithoutAssert.length > 0) {
509
+ issues.push("Click actions at end of test without outcome verification");
510
+ }
511
+ return {
512
+ file: filePath,
513
+ interactions,
514
+ outcomeAssertions,
515
+ score,
516
+ issues,
517
+ hasOutcomeVerification: outcomeAssertions > 0,
518
+ };
519
+ }
520
+ function checkCriticalFlowCoverage(testFiles) {
521
+ const results = [];
522
+ for (const flow of CRITICAL_FLOWS) {
523
+ const coverage = {
524
+ name: flow.name,
525
+ route: flow.route,
526
+ covered: false,
527
+ hasInteraction: false,
528
+ hasOutcome: false,
529
+ coveringTests: [],
530
+ severity: flow.severity,
531
+ };
532
+ for (const testFile of testFiles) {
533
+ const content = fs.readFileSync(testFile, "utf-8");
534
+ // Check if test covers this route
535
+ if (!content.includes(flow.route))
536
+ continue;
537
+ // Check for required interactions
538
+ const hasInteraction = flow.interactionPatterns.some((p) => p.test(content));
539
+ // Check for outcome verification
540
+ const hasOutcome = flow.outcomePatterns.some((p) => p.test(content));
541
+ if (hasInteraction || hasOutcome) {
542
+ coverage.coveringTests.push(path.relative(process.cwd(), testFile));
543
+ }
544
+ if (hasInteraction)
545
+ coverage.hasInteraction = true;
546
+ if (hasOutcome)
547
+ coverage.hasOutcome = true;
548
+ }
549
+ coverage.covered = coverage.hasInteraction && coverage.hasOutcome;
550
+ results.push(coverage);
551
+ }
552
+ return results;
553
+ }
554
+ function checkCriticalActionCoverage(testFiles) {
555
+ const results = [];
556
+ for (const action of REQUIRED_CRITICAL_ACTIONS) {
557
+ const coverage = {
558
+ name: action.name,
559
+ route: action.route,
560
+ covered: false,
561
+ hasInteraction: false,
562
+ hasOutcome: false,
563
+ coveringTests: [],
564
+ severity: action.severity,
565
+ expectedCount: action.count,
566
+ };
567
+ for (const testFile of testFiles) {
568
+ const content = fs.readFileSync(testFile, "utf-8");
569
+ // Check if test covers this route (or related routes)
570
+ const routeMatch = content.includes(action.route) ||
571
+ content.toLowerCase().includes(action.route.toLowerCase());
572
+ if (!routeMatch)
573
+ continue;
574
+ // Check for required interactions
575
+ const hasInteraction = action.interactionPatterns.some((p) => p.test(content));
576
+ // Check for outcome verification
577
+ const hasOutcome = action.outcomePatterns.some((p) => p.test(content));
578
+ if (hasInteraction || hasOutcome) {
579
+ coverage.coveringTests.push(path.relative(process.cwd(), testFile));
580
+ }
581
+ if (hasInteraction)
582
+ coverage.hasInteraction = true;
583
+ if (hasOutcome)
584
+ coverage.hasOutcome = true;
585
+ }
586
+ coverage.covered = coverage.hasInteraction && coverage.hasOutcome;
587
+ results.push(coverage);
588
+ }
589
+ return results;
590
+ }
591
+ // CACHED FILE LISTS - Scan once, use everywhere
592
+ let _cachedE2ESpecFiles = null;
593
+ async function getE2ESpecFiles() {
594
+ if (!_cachedE2ESpecFiles) {
595
+ _cachedE2ESpecFiles = await file_cache_1.fileCache.getE2ESpecFiles();
596
+ }
597
+ return _cachedE2ESpecFiles;
598
+ }
599
+ async function main() {
600
+ const mode = getModeFromArgsOrEnv();
601
+ const verbose = isVerbose();
602
+ const strictOutcomes = process.argv.includes("--strict-outcomes");
603
+ console.log(`\n${console_chars_1.emoji.target} E2E INTERACTION REGRESSION ANALYSIS`);
604
+ console.log((0, console_chars_1.createDivider)(60, "heavy"));
605
+ console.log(`Mode: ${mode} | Verbose: ${verbose} | Strict Outcomes: ${strictOutcomes}`);
606
+ console.log("Checking that tests verify functionality actually works...\n");
607
+ // Find all E2E test files
608
+ const testFiles = await getE2ESpecFiles();
609
+ // Exclude utility files
610
+ const specFiles = testFiles.filter((f) => !f.includes("/utils/") && !f.includes("setup") && !f.includes("fixture"));
611
+ console.log(`📂 Analyzing ${specFiles.length} test files...\n`);
612
+ // Analyze each test file
613
+ const analyses = [];
614
+ for (const file of specFiles) {
615
+ const analysis = analyzeTestFile(file);
616
+ analyses.push(analysis);
617
+ }
618
+ // NEW: Per-click outcome analysis
619
+ const allClickIssues = [];
620
+ if (strictOutcomes || verbose) {
621
+ for (const file of specFiles) {
622
+ const clickIssues = analyzeClickOutcomes(file);
623
+ allClickIssues.push(...clickIssues);
624
+ }
625
+ }
626
+ // Categorize results
627
+ const noInteractions = analyses.filter((a) => a.interactions === 0);
628
+ const noOutcomes = analyses.filter((a) => a.interactions > 0 && a.outcomeAssertions === 0);
629
+ const lowCoverage = analyses.filter((a) => a.score > 0 && a.score < 30 && a.interactions > 3);
630
+ const goodCoverage = analyses.filter((a) => a.score >= 50);
631
+ // Report: Tests with no interactions (just page visits)
632
+ if (noInteractions.length > 0) {
633
+ console.log(`${console_chars_1.emoji.warning} TESTS WITH NO USER INTERACTIONS`);
634
+ console.log((0, console_chars_1.createDivider)(60, "heavy"));
635
+ console.log("These tests only visit pages without clicking/filling anything:\n");
636
+ for (const a of noInteractions.slice(0, 10)) {
637
+ const relPath = path.relative(process.cwd(), a.file).replace(/\\/g, "/");
638
+ console.log(` ${console_chars_1.emoji.file} ${relPath}`);
639
+ }
640
+ if (noInteractions.length > 10) {
641
+ console.log(` ... and ${noInteractions.length - 10} more`);
642
+ }
643
+ console.log();
644
+ }
645
+ // Report: Tests with interactions but no outcome verification
646
+ if (noOutcomes.length > 0) {
647
+ console.log(`${console_chars_1.emoji.bell} TESTS WITH INTERACTIONS BUT NO OUTCOME VERIFICATION`);
648
+ console.log((0, console_chars_1.createDivider)(60, "heavy"));
649
+ console.log("These tests click/fill but don't verify the action worked:\n");
650
+ for (const a of noOutcomes.slice(0, 15)) {
651
+ const relPath = path.relative(process.cwd(), a.file).replace(/\\/g, "/");
652
+ console.log(` ${console_chars_1.emoji.error} ${relPath}`);
653
+ console.log(` ${a.interactions} interactions, 0 outcome assertions`);
654
+ if (verbose && a.issues.length > 0) {
655
+ a.issues.forEach((i) => console.log(` ${console_chars_1.chars.arrow} ${i}`));
656
+ }
657
+ }
658
+ if (noOutcomes.length > 15) {
659
+ console.log(` ... and ${noOutcomes.length - 15} more`);
660
+ }
661
+ console.log();
662
+ }
663
+ // Report: Low coverage tests
664
+ if (lowCoverage.length > 0 && verbose) {
665
+ console.log(`${console_chars_1.emoji.lightning} TESTS WITH LOW OUTCOME COVERAGE`);
666
+ console.log((0, console_chars_1.createDivider)(60, "heavy"));
667
+ for (const a of lowCoverage.slice(0, 10)) {
668
+ const relPath = path.relative(process.cwd(), a.file).replace(/\\/g, "/");
669
+ console.log(` ${console_chars_1.emoji.lightning} ${relPath} (score: ${a.score}%)`);
670
+ console.log(` ${a.interactions} interactions, ${a.outcomeAssertions} outcomes`);
671
+ }
672
+ console.log();
673
+ }
674
+ // Critical Flow Coverage
675
+ console.log(`${console_chars_1.emoji.target} CRITICAL FLOW COVERAGE`);
676
+ console.log((0, console_chars_1.createDivider)(60, "heavy"));
677
+ const flowCoverage = checkCriticalFlowCoverage(specFiles);
678
+ const uncoveredFlows = flowCoverage.filter((f) => !f.covered);
679
+ const partialFlows = flowCoverage.filter((f) => !f.covered && (f.hasInteraction || f.hasOutcome));
680
+ const coveredFlows = flowCoverage.filter((f) => f.covered);
681
+ console.log(`\n${console_chars_1.emoji.success} Fully Covered: ${coveredFlows.length}/${flowCoverage.length}`);
682
+ for (const f of coveredFlows) {
683
+ console.log(` ${console_chars_1.emoji.success} ${f.name} (${f.route})`);
684
+ if (verbose && f.coveringTests.length > 0) {
685
+ console.log(` Tests: ${f.coveringTests.slice(0, 2).join(", ")}`);
686
+ }
687
+ }
688
+ if (partialFlows.length > 0) {
689
+ console.log(`\n${console_chars_1.emoji.warning} Partial Coverage: ${partialFlows.length}`);
690
+ for (const f of partialFlows) {
691
+ const missing = [];
692
+ if (!f.hasInteraction)
693
+ missing.push("interactions");
694
+ if (!f.hasOutcome)
695
+ missing.push("outcome verification");
696
+ console.log(` ${console_chars_1.emoji.warning} ${f.name} (${f.route}) - missing: ${missing.join(", ")}`);
697
+ if (f.coveringTests.length > 0) {
698
+ console.log(` Tests: ${f.coveringTests.slice(0, 2).join(", ")}`);
699
+ }
700
+ }
701
+ }
702
+ const missingFlows = flowCoverage.filter((f) => !f.hasInteraction && !f.hasOutcome);
703
+ if (missingFlows.length > 0) {
704
+ console.log(`\n${console_chars_1.emoji.error} No Coverage: ${missingFlows.length}`);
705
+ for (const f of missingFlows) {
706
+ console.log(` ${console_chars_1.emoji.error} ${f.name} (${f.route})`);
707
+ }
708
+ }
709
+ // REQUIRED Critical Action Coverage
710
+ console.log(`\n\n${console_chars_1.emoji.bell} REQUIRED CRITICAL ACTION COVERAGE`);
711
+ console.log((0, console_chars_1.createDivider)(60, "heavy"));
712
+ console.log("These actions MUST have test coverage or build will fail:\n");
713
+ const actionCoverage = checkCriticalActionCoverage(specFiles);
714
+ const coveredActions = actionCoverage.filter((a) => a.covered);
715
+ const uncoveredActions = actionCoverage.filter((a) => !a.covered);
716
+ const highSeverityUncovered = uncoveredActions.filter((a) => a.severity === "critical" || a.severity === "high");
717
+ // Group by severity
718
+ const bySeverity = {
719
+ critical: actionCoverage.filter((a) => a.severity === "critical"),
720
+ high: actionCoverage.filter((a) => a.severity === "high"),
721
+ medium: actionCoverage.filter((a) => a.severity === "medium"),
722
+ low: actionCoverage.filter((a) => a.severity === "low"),
723
+ };
724
+ for (const [severity, actions] of Object.entries(bySeverity)) {
725
+ if (actions.length === 0)
726
+ continue;
727
+ const icon = severity === "critical"
728
+ ? "${emoji.stop}"
729
+ : severity === "high"
730
+ ? "${emoji.warning}"
731
+ : severity === "medium"
732
+ ? "${emoji.warning}"
733
+ : "${emoji.info}";
734
+ const covered = actions.filter((a) => a.covered).length;
735
+ console.log(`${icon} ${severity.toUpperCase()} (${covered}/${actions.length} covered):`);
736
+ for (const action of actions) {
737
+ const status = action.covered ? `${console_chars_1.emoji.success}` : `${console_chars_1.emoji.error}`;
738
+ const details = [];
739
+ if (!action.hasInteraction)
740
+ details.push("no interaction");
741
+ if (!action.hasOutcome)
742
+ details.push("no outcome check");
743
+ console.log(` ${status} ${action.name} (${action.route}) [${action.expectedCount}x]`);
744
+ if (!action.covered && details.length > 0) {
745
+ console.log(` Missing: ${details.join(", ")}`);
746
+ }
747
+ if (verbose && action.coveringTests.length > 0) {
748
+ console.log(` Tests: ${action.coveringTests.slice(0, 2).join(", ")}`);
749
+ }
750
+ }
751
+ console.log();
752
+ }
753
+ // Generate actionable fix suggestions
754
+ console.log(`\n${console_chars_1.emoji.wrench} SUGGESTED FIXES`);
755
+ console.log((0, console_chars_1.createDivider)(60, "heavy"));
756
+ for (const flow of partialFlows) {
757
+ console.log(`\n${console_chars_1.emoji.memo} ${flow.name} (${flow.route}):`);
758
+ if (!flow.hasInteraction) {
759
+ console.log(` Add interactions like:`);
760
+ const suggestions = getInteractionSuggestions(flow.name);
761
+ suggestions.forEach((s) => console.log(` - ${s}`));
762
+ }
763
+ if (!flow.hasOutcome) {
764
+ console.log(` Add outcome verification like:`);
765
+ const suggestions = getOutcomeSuggestions(flow.name);
766
+ suggestions.forEach((s) => console.log(` - ${s}`));
767
+ }
768
+ }
769
+ // Suggestions for uncovered critical actions
770
+ for (const action of uncoveredActions) {
771
+ console.log(`\n${console_chars_1.emoji.memo} ${action.name} (${action.route}):`);
772
+ const suggestions = getCriticalActionSuggestions(action.name);
773
+ suggestions.forEach((s) => console.log(` - ${s}`));
774
+ }
775
+ // Summary
776
+ console.log("\n" + (0, console_chars_1.createDivider)(60, "heavy"));
777
+ console.log(`${console_chars_1.emoji.chart} SUMMARY`);
778
+ console.log((0, console_chars_1.createDivider)(60, "heavy"));
779
+ console.log(`Total test files: ${specFiles.length}`);
780
+ console.log(`Tests with good coverage (≥50%): ${goodCoverage.length}`);
781
+ console.log(`Tests with no interactions: ${noInteractions.length}`);
782
+ console.log(`Tests with no outcome verification: ${noOutcomes.length}`);
783
+ console.log(`Critical flows covered: ${coveredFlows.length}/${flowCoverage.length}`);
784
+ console.log(`Required actions covered: ${coveredActions.length}/${actionCoverage.length}`);
785
+ console.log(`High severity uncovered: ${highSeverityUncovered.length}`);
786
+ // NEW: Click outcome analysis results
787
+ if (allClickIssues.length > 0) {
788
+ const criticalClicks = allClickIssues.filter((i) => i.severity === "critical");
789
+ const highClicks = allClickIssues.filter((i) => i.severity === "high");
790
+ console.log(`\n${console_chars_1.emoji.bell} PER-CLICK OUTCOME ANALYSIS`);
791
+ console.log((0, console_chars_1.createDivider)(60, "light"));
792
+ console.log(`Clicks without outcome verification: ${allClickIssues.length}`);
793
+ console.log(` ${console_chars_1.emoji.stop} Critical: ${criticalClicks.length}`);
794
+ console.log(` ${console_chars_1.emoji.warning} High: ${highClicks.length}`);
795
+ if (verbose || strictOutcomes) {
796
+ if (criticalClicks.length > 0) {
797
+ console.log(`\n${console_chars_1.emoji.stop} CRITICAL CLICKS WITHOUT OUTCOMES:`);
798
+ criticalClicks.slice(0, 15).forEach((i) => {
799
+ console.log(` ${i.file}:${i.line}`);
800
+ console.log(` ${i.clickText}`);
801
+ console.log(` Fix: ${i.suggestedOutcome}`);
802
+ });
803
+ if (criticalClicks.length > 15) {
804
+ console.log(` ... and ${criticalClicks.length - 15} more`);
805
+ }
806
+ }
807
+ if (highClicks.length > 0 && verbose) {
808
+ console.log(`\n${console_chars_1.emoji.warning} HIGH PRIORITY CLICKS WITHOUT OUTCOMES:`);
809
+ highClicks.slice(0, 10).forEach((i) => {
810
+ console.log(` ${i.file}:${i.line}`);
811
+ console.log(` ${i.clickText}`);
812
+ });
813
+ if (highClicks.length > 10) {
814
+ console.log(` ... and ${highClicks.length - 10} more`);
815
+ }
816
+ }
817
+ }
818
+ }
819
+ // Determine exit status
820
+ const errors = [];
821
+ const warnings = [];
822
+ // Critical: flows without any coverage
823
+ if (missingFlows.length > 0) {
824
+ errors.push(`${missingFlows.length} critical flow(s) have no interaction regression tests`);
825
+ }
826
+ // Critical: high severity actions without coverage (BLOCKS BUILD)
827
+ if (highSeverityUncovered.length > 0) {
828
+ errors.push(`${highSeverityUncovered.length} HIGH/CRITICAL severity action(s) have no test coverage`);
829
+ for (const action of highSeverityUncovered) {
830
+ errors.push(` ${console_chars_1.chars.arrow} ${action.name} (${action.route})`);
831
+ }
832
+ }
833
+ // NEW: Critical clicks without outcomes (in strict mode)
834
+ if (strictOutcomes && allClickIssues.length > 0) {
835
+ const criticalClicks = allClickIssues.filter((i) => i.severity === "critical");
836
+ if (criticalClicks.length > 0) {
837
+ errors.push(`${criticalClicks.length} CRITICAL click(s) have no outcome verification`);
838
+ criticalClicks.slice(0, 5).forEach((i) => {
839
+ errors.push(` ${console_chars_1.chars.arrow} ${i.file}:${i.line} - ${i.clickText.slice(0, 50)}`);
840
+ });
841
+ }
842
+ }
843
+ // Warning: tests that click but don't verify
844
+ if (noOutcomes.length > 5) {
845
+ warnings.push(`${noOutcomes.length} tests have interactions without outcome verification`);
846
+ }
847
+ // Warning: partial flow coverage
848
+ if (partialFlows.length > 0) {
849
+ warnings.push(`${partialFlows.length} critical flow(s) have partial coverage`);
850
+ }
851
+ // Warning: medium/low severity actions without coverage
852
+ const mediumLowUncovered = uncoveredActions.filter((a) => a.severity === "medium" || a.severity === "low");
853
+ if (mediumLowUncovered.length > 0) {
854
+ warnings.push(`${mediumLowUncovered.length} medium/low severity action(s) lack test coverage`);
855
+ }
856
+ // Warning: high-severity clicks without outcomes (non-strict mode)
857
+ if (!strictOutcomes && allClickIssues.length > 0) {
858
+ const highClicks = allClickIssues.filter((i) => i.severity === "high" || i.severity === "critical");
859
+ if (highClicks.length > 10) {
860
+ warnings.push(`${highClicks.length} high-severity clicks lack outcome verification (use --strict-outcomes to block)`);
861
+ }
862
+ }
863
+ if (warnings.length > 0) {
864
+ console.log(`\n${console_chars_1.emoji.warning} WARNINGS:`);
865
+ warnings.forEach((w) => console.log(` - ${w}`));
866
+ }
867
+ if (errors.length > 0) {
868
+ console.log(`\n${console_chars_1.emoji.error} ERRORS:`);
869
+ errors.forEach((e) => console.log(` - ${e}`));
870
+ if (mode === "block") {
871
+ console.log(`\n${console_chars_1.emoji.error} Interaction regression check FAILED`);
872
+ writeReport(specFiles.length, goodCoverage.length, noInteractions.length, noOutcomes.length, flowCoverage, actionCoverage);
873
+ process.exit(1);
874
+ }
875
+ console.log("\nMode=warn: not blocking build.");
876
+ }
877
+ else {
878
+ console.log(`\n${console_chars_1.emoji.success} Interaction regression check PASSED`);
879
+ }
880
+ writeReport(specFiles.length, goodCoverage.length, noInteractions.length, noOutcomes.length, flowCoverage, actionCoverage);
881
+ process.exit(0);
882
+ }
883
+ function writeReport(totalTests, goodCoverage, noInteractions, noOutcomes, flowCoverage, actionCoverage) {
884
+ const reportDir = path.join(process.cwd(), "test-results");
885
+ if (!fs.existsSync(reportDir)) {
886
+ fs.mkdirSync(reportDir, { recursive: true });
887
+ }
888
+ const report = {
889
+ timestamp: new Date().toISOString(),
890
+ summary: {
891
+ totalTests,
892
+ testsWithGoodCoverage: goodCoverage,
893
+ testsWithNoInteractions: noInteractions,
894
+ testsWithNoOutcomeVerification: noOutcomes,
895
+ criticalFlowsCovered: flowCoverage.filter((f) => f.covered).length,
896
+ criticalFlowsTotal: flowCoverage.length,
897
+ requiredActionsCovered: actionCoverage.filter((a) => a.covered).length,
898
+ requiredActionsTotal: actionCoverage.length,
899
+ highSeverityUncovered: actionCoverage.filter((a) => !a.covered && (a.severity === "critical" || a.severity === "high")).length,
900
+ },
901
+ criticalFlows: flowCoverage.map((f) => ({
902
+ name: f.name,
903
+ route: f.route,
904
+ covered: f.covered,
905
+ hasInteraction: f.hasInteraction,
906
+ hasOutcome: f.hasOutcome,
907
+ severity: f.severity,
908
+ coveringTests: f.coveringTests,
909
+ })),
910
+ requiredActions: actionCoverage.map((a) => ({
911
+ name: a.name,
912
+ route: a.route,
913
+ covered: a.covered,
914
+ hasInteraction: a.hasInteraction,
915
+ hasOutcome: a.hasOutcome,
916
+ severity: a.severity,
917
+ expectedCount: a.expectedCount,
918
+ coveringTests: a.coveringTests,
919
+ })),
920
+ };
921
+ fs.writeFileSync(path.join(reportDir, "e2e-interaction-report.json"), JSON.stringify(report, null, 2));
922
+ }
923
+ main().catch((err) => {
924
+ console.error(`${console_chars_1.emoji.error} Preflight failed:`, err);
925
+ process.exit(1);
926
+ });
927
+ // Helper functions for actionable suggestions
928
+ function getInteractionSuggestions(flowName) {
929
+ const suggestions = {
930
+ "Checkout Submit": [
931
+ 'await page.fill(\'[data-testid="shipping-name"]\', "Test User");',
932
+ "await page.click('[data-testid=\"place-order-button\"]');",
933
+ ],
934
+ "Add to Cart": [
935
+ "await page.click('[data-testid=\"add-to-cart\"]');",
936
+ "await page.click('.product-card');",
937
+ ],
938
+ "Contact Form Submit": [
939
+ 'await page.fill(\'input[name="email"]\', "test@example.com");',
940
+ "await page.click('button[type=\"submit\"]');",
941
+ ],
942
+ "Seller Dashboard Navigation": [
943
+ "await page.click('[data-testid=\"nav-listings\"]');",
944
+ "await page.click('a[href*=\"/store/orders\"]');",
945
+ ],
946
+ "Admin Approval Flow": [
947
+ "await page.click('button:has-text(\"Approve\")');",
948
+ "await page.click('button:has-text(\"Reject\")');",
949
+ ],
950
+ };
951
+ return suggestions[flowName] || ["await page.click('button[type=\"submit\"]');"];
952
+ }
953
+ function getOutcomeSuggestions(flowName) {
954
+ const suggestions = {
955
+ "Checkout Submit": [
956
+ "await expect(page).toHaveURL(/\\/confirmation|\\/success/);",
957
+ "await expect(page.getByText(/order.*confirmed|thank you/i)).toBeVisible();",
958
+ ],
959
+ "Add to Cart": [
960
+ "await expect(page.getByText(/added to cart/i)).toBeVisible();",
961
+ 'await expect(page.locator(\'[data-testid="cart-badge"]\').not.toHaveText("0");',
962
+ ],
963
+ "Contact Form Submit": [
964
+ "await expect(page.getByText(/message sent|thank you/i)).toBeVisible();",
965
+ 'await page.waitForResponse(resp => resp.url().includes("/api/contact"));',
966
+ ],
967
+ "Seller Dashboard Navigation": [
968
+ "await expect(page).toHaveURL(/\\/store\\/listings/);",
969
+ 'await expect(page.getByRole("heading")).toContainText(/listings/i);',
970
+ ],
971
+ "Admin Approval Flow": [
972
+ "await expect(page.getByText(/approved|success/i)).toBeVisible();",
973
+ 'await page.waitForResponse(resp => resp.url().includes("/api/admin"));',
974
+ ],
975
+ };
976
+ return suggestions[flowName] || ["await expect(page).toHaveURL(/success/);"];
977
+ }
978
+ function getCriticalActionSuggestions(actionName) {
979
+ const suggestions = {
980
+ "Order Ship Action": [
981
+ 'test("should mark order as shipped", async ({ page }) => {',
982
+ ' await page.goto("/store/orders");',
983
+ " await page.click('button:has-text(\"Ship\")');",
984
+ " await expect(page.getByText(/shipped|tracking/i)).toBeVisible();",
985
+ "});",
986
+ ],
987
+ "Listing Approve Action": [
988
+ 'test("should approve listing", async ({ page }) => {',
989
+ ' await page.goto("/admin/listings");',
990
+ " await page.click('button:has-text(\"Approve\")');",
991
+ ' await page.waitForResponse(r => r.url().includes("/api/admin"));',
992
+ " await expect(page.getByText(/approved/i)).toBeVisible();",
993
+ "});",
994
+ ],
995
+ "Admin Delete Action": [
996
+ 'test("should delete item", async ({ page }) => {',
997
+ ' await page.goto("/admin/listings");',
998
+ " await page.click('button:has-text(\"Delete\")');",
999
+ " await page.click('button:has-text(\"Confirm\")');",
1000
+ " await expect(page.getByText(/deleted/i)).toBeVisible();",
1001
+ "});",
1002
+ ],
1003
+ "Subscription Cancel Action": [
1004
+ 'test("should cancel subscription", async ({ page }) => {',
1005
+ ' await page.goto("/store/billing");',
1006
+ " await page.click('button:has-text(\"Cancel\")');",
1007
+ " await expect(page.getByText(/cancelled/i)).toBeVisible();",
1008
+ "});",
1009
+ ],
1010
+ "Listing Reject Action": [
1011
+ 'test("should reject listing", async ({ page }) => {',
1012
+ ' await page.goto("/store/listings/new");',
1013
+ " await page.click('button:has-text(\"Reject\")');",
1014
+ " await expect(page.getByText(/rejected/i)).toBeVisible();",
1015
+ "});",
1016
+ ],
1017
+ "Listing Publish Action": [
1018
+ 'test("should publish listing", async ({ page }) => {',
1019
+ ' await page.goto("/admin/listings");',
1020
+ " await page.click('button:has-text(\"Publish\")');",
1021
+ " await expect(page.getByText(/published|live/i)).toBeVisible();",
1022
+ "});",
1023
+ ],
1024
+ "Footer Navigation Links": [
1025
+ 'test("should navigate via footer links", async ({ page }) => {',
1026
+ ' await page.goto("/");',
1027
+ " await page.click('footer a:has-text(\"About\")');",
1028
+ " await expect(page).toHaveURL(/about/);",
1029
+ "});",
1030
+ ],
1031
+ };
1032
+ return (suggestions[actionName] || [
1033
+ 'test("should perform action", async ({ page }) => {',
1034
+ " await page.click('button');",
1035
+ " await expect(page.getByText(/success/i)).toBeVisible();",
1036
+ "});",
1037
+ ]);
1038
+ }
1039
+ //# sourceMappingURL=e2e-interaction-regression.js.map