qa360 2.2.20 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (507) hide show
  1. package/README.md +155 -262
  2. package/{cli/dist → dist}/commands/ai.js +1 -1
  3. package/{cli/dist → dist}/commands/coverage.js +1 -1
  4. package/{cli/dist → dist}/commands/crawl.d.ts +12 -1
  5. package/{cli/dist → dist}/commands/crawl.js +70 -9
  6. package/{cli/dist → dist}/commands/doctor.js +2 -2
  7. package/{cli/dist → dist}/commands/explain.js +2 -2
  8. package/{cli/dist → dist}/commands/flakiness.js +1 -1
  9. package/{cli/dist → dist}/commands/generate.js +1 -1
  10. package/{cli/dist → dist}/commands/history.js +1 -1
  11. package/{cli/dist → dist}/commands/monitor.js +3 -3
  12. package/{cli/dist → dist}/commands/ollama.js +1 -1
  13. package/{cli/dist → dist}/commands/pack.js +2 -2
  14. package/{cli/dist → dist}/commands/regression.js +1 -1
  15. package/{cli/dist → dist}/commands/repair.js +1 -1
  16. package/{cli/dist → dist}/commands/retry.js +1 -1
  17. package/{cli/dist → dist}/commands/run.d.ts +1 -1
  18. package/{cli/dist → dist}/commands/run.js +1 -1
  19. package/{cli/dist → dist}/commands/secrets.js +1 -1
  20. package/{cli/dist → dist}/commands/serve.js +1 -1
  21. package/{cli/dist → dist}/commands/slo.js +1 -1
  22. package/{cli/dist → dist}/commands/verify.js +1 -1
  23. package/{cli/dist → dist}/core/adapters/playwright-native-api.d.ts +2 -0
  24. package/{cli/dist → dist}/core/adapters/playwright-native-api.js +20 -1
  25. package/{cli/dist → dist}/core/adapters/playwright-ui.d.ts +21 -0
  26. package/dist/core/adapters/playwright-ui.js +2050 -0
  27. package/{cli/dist → dist}/core/ai/ollama-provider.js +15 -3
  28. package/{cli/dist → dist}/core/artifacts/ui-artifacts.js +24 -4
  29. package/dist/core/auth/backup-codes-provider.d.ts +91 -0
  30. package/dist/core/auth/backup-codes-provider.js +215 -0
  31. package/{cli/dist → dist}/core/auth/basic-auth-provider.d.ts +6 -0
  32. package/{cli/dist → dist}/core/auth/basic-auth-provider.js +24 -6
  33. package/dist/core/auth/digest-auth-provider.d.ts +116 -0
  34. package/dist/core/auth/digest-auth-provider.js +244 -0
  35. package/dist/core/auth/hcaptcha-handler.d.ts +103 -0
  36. package/dist/core/auth/hcaptcha-handler.js +288 -0
  37. package/{cli/dist → dist}/core/auth/index.d.ts +81 -4
  38. package/{cli/dist → dist}/core/auth/index.js +15 -1
  39. package/dist/core/auth/oauth-handler.d.ts +408 -0
  40. package/dist/core/auth/oauth-handler.js +636 -0
  41. package/{cli/dist → dist}/core/auth/oauth2-provider.d.ts +9 -0
  42. package/dist/core/auth/oauth2-provider.js +227 -0
  43. package/dist/core/auth/otp-provider.d.ts +93 -0
  44. package/dist/core/auth/otp-provider.js +288 -0
  45. package/dist/core/auth/recaptcha-handler.d.ts +119 -0
  46. package/dist/core/auth/recaptcha-handler.js +301 -0
  47. package/dist/core/auth/remember-me-handler.d.ts +142 -0
  48. package/dist/core/auth/remember-me-handler.js +255 -0
  49. package/dist/core/auth/saml-handler.d.ts +173 -0
  50. package/dist/core/auth/saml-handler.js +364 -0
  51. package/dist/core/auth/webauthn-handler.d.ts +182 -0
  52. package/dist/core/auth/webauthn-handler.js +310 -0
  53. package/dist/core/crawler/advanced-interactions.d.ts +342 -0
  54. package/dist/core/crawler/advanced-interactions.js +1069 -0
  55. package/dist/core/crawler/blob-url-download-handler.d.ts +145 -0
  56. package/dist/core/crawler/blob-url-download-handler.js +392 -0
  57. package/dist/core/crawler/consent-handler.d.ts +49 -0
  58. package/dist/core/crawler/consent-handler.js +258 -0
  59. package/dist/core/crawler/cookie-manager.d.ts +166 -0
  60. package/dist/core/crawler/cookie-manager.js +353 -0
  61. package/dist/core/crawler/coop-coep-handler.d.ts +136 -0
  62. package/dist/core/crawler/coop-coep-handler.js +338 -0
  63. package/dist/core/crawler/csp-handler.d.ts +151 -0
  64. package/dist/core/crawler/csp-handler.js +415 -0
  65. package/dist/core/crawler/download-handler.d.ts +155 -0
  66. package/dist/core/crawler/download-handler.js +370 -0
  67. package/dist/core/crawler/email-testing-handler.d.ts +214 -0
  68. package/dist/core/crawler/email-testing-handler.js +398 -0
  69. package/dist/core/crawler/error-tracking-handler.d.ts +177 -0
  70. package/dist/core/crawler/error-tracking-handler.js +378 -0
  71. package/dist/core/crawler/form-handler.d.ts +100 -0
  72. package/dist/core/crawler/form-handler.js +465 -0
  73. package/dist/core/crawler/framework-wait-handler.d.ts +96 -0
  74. package/dist/core/crawler/framework-wait-handler.js +464 -0
  75. package/dist/core/crawler/geolocation-handler.d.ts +112 -0
  76. package/dist/core/crawler/geolocation-handler.js +276 -0
  77. package/dist/core/crawler/index.d.ts +78 -0
  78. package/{cli/dist → dist}/core/crawler/index.js +74 -1
  79. package/dist/core/crawler/intelligent-selector-generator.d.ts +164 -0
  80. package/dist/core/crawler/intelligent-selector-generator.js +612 -0
  81. package/{cli/dist → dist}/core/crawler/journey-generator.js +44 -1
  82. package/{cli/dist → dist}/core/crawler/page-analyzer.d.ts +16 -1
  83. package/{cli/dist → dist}/core/crawler/page-analyzer.js +469 -17
  84. package/dist/core/crawler/permissions-handler.d.ts +112 -0
  85. package/dist/core/crawler/permissions-handler.js +236 -0
  86. package/dist/core/crawler/permissions-policy-handler.d.ts +113 -0
  87. package/dist/core/crawler/permissions-policy-handler.js +402 -0
  88. package/dist/core/crawler/presets.d.ts +100 -0
  89. package/dist/core/crawler/presets.js +887 -0
  90. package/dist/core/crawler/repl-debug-handler.d.ts +105 -0
  91. package/dist/core/crawler/repl-debug-handler.js +552 -0
  92. package/dist/core/crawler/reporting-api-handler.d.ts +212 -0
  93. package/dist/core/crawler/reporting-api-handler.js +344 -0
  94. package/{cli/dist → dist}/core/crawler/selector-generator.d.ts +9 -0
  95. package/{cli/dist → dist}/core/crawler/selector-generator.js +99 -23
  96. package/dist/core/crawler/site-profiler.d.ts +89 -0
  97. package/dist/core/crawler/site-profiler.js +290 -0
  98. package/dist/core/crawler/sourcemaps-handler.d.ts +144 -0
  99. package/dist/core/crawler/sourcemaps-handler.js +420 -0
  100. package/dist/core/crawler/stacked-modals-handler.d.ts +118 -0
  101. package/dist/core/crawler/stacked-modals-handler.js +429 -0
  102. package/dist/core/crawler/trusted-types-handler.d.ts +149 -0
  103. package/dist/core/crawler/trusted-types-handler.js +413 -0
  104. package/{cli/dist → dist}/core/crawler/types.d.ts +68 -2
  105. package/dist/core/crawler/wait-strategies.d.ts +108 -0
  106. package/dist/core/crawler/wait-strategies.js +399 -0
  107. package/dist/core/fixtures/factories.d.ts +180 -0
  108. package/dist/core/fixtures/factories.js +279 -0
  109. package/dist/core/fixtures/index.d.ts +6 -0
  110. package/dist/core/fixtures/index.js +6 -0
  111. package/{cli/dist → dist}/core/generation/crawler-pack-generator.d.ts +13 -3
  112. package/dist/core/generation/crawler-pack-generator.js +232 -0
  113. package/{cli/dist → dist}/core/generation/index.d.ts +2 -0
  114. package/{cli/dist → dist}/core/generation/index.js +2 -0
  115. package/{cli/dist → dist}/core/index.d.ts +2 -0
  116. package/{cli/dist → dist}/core/index.js +4 -0
  117. package/dist/core/network/index.d.ts +7 -0
  118. package/dist/core/network/index.js +7 -0
  119. package/dist/core/network/network-manager.d.ts +237 -0
  120. package/dist/core/network/network-manager.js +343 -0
  121. package/dist/core/network/network-simulator.d.ts +158 -0
  122. package/dist/core/network/network-simulator.js +261 -0
  123. package/{cli/dist → dist}/core/pack/validator.js +2 -2
  124. package/{cli/dist → dist}/core/pack-v2/migrator.d.ts +5 -0
  125. package/{cli/dist → dist}/core/pack-v2/migrator.js +81 -6
  126. package/{cli/dist → dist}/core/pack-v2/validator.js +4 -3
  127. package/{cli/dist → dist}/core/pom/base-page.js +1 -1
  128. package/{cli/dist → dist}/core/pom/loader.js +1 -1
  129. package/dist/core/reporting/index.d.ts +9 -0
  130. package/dist/core/reporting/index.js +10 -0
  131. package/dist/core/reporting/junit-reporter.d.ts +114 -0
  132. package/dist/core/reporting/junit-reporter.js +306 -0
  133. package/{cli/dist → dist}/core/runner/e2e-helpers.d.ts +1 -1
  134. package/{cli/dist → dist}/core/runner/e2e-helpers.js +2 -2
  135. package/{cli/dist → dist}/core/runner/phase3-runner.d.ts +3 -0
  136. package/{cli/dist → dist}/core/runner/phase3-runner.js +45 -14
  137. package/dist/core/sharding/test-sharding.d.ts +137 -0
  138. package/dist/core/sharding/test-sharding.js +233 -0
  139. package/dist/core/storage/cookie-manager.d.ts +160 -0
  140. package/dist/core/storage/cookie-manager.js +268 -0
  141. package/dist/core/storage/index.d.ts +7 -0
  142. package/dist/core/storage/index.js +7 -0
  143. package/dist/core/storage/storage-helpers.d.ts +138 -0
  144. package/dist/core/storage/storage-helpers.js +315 -0
  145. package/dist/core/test-helpers/index.d.ts +6 -0
  146. package/dist/core/test-helpers/index.js +6 -0
  147. package/dist/core/test-helpers/state-reset.d.ts +119 -0
  148. package/dist/core/test-helpers/state-reset.js +234 -0
  149. package/{cli/dist → dist}/core/types/pack-v1.d.ts +15 -2
  150. package/{cli/dist → dist}/core/types/pack-v2.d.ts +1 -1
  151. package/dist/core/upload/chunked-uploader.d.ts +150 -0
  152. package/dist/core/upload/chunked-uploader.js +289 -0
  153. package/dist/core/upload/index.d.ts +11 -0
  154. package/dist/core/upload/index.js +8 -0
  155. package/dist/core/upload/mime-validator.d.ts +119 -0
  156. package/dist/core/upload/mime-validator.js +373 -0
  157. package/dist/core/upload/presigned-uploader.d.ts +118 -0
  158. package/dist/core/upload/presigned-uploader.js +274 -0
  159. package/dist/core/utils/device-emulation.d.ts +194 -0
  160. package/dist/core/utils/device-emulation.js +380 -0
  161. package/dist/core/utils/index.d.ts +8 -0
  162. package/dist/core/utils/index.js +8 -0
  163. package/dist/core/utils/retry.d.ts +145 -0
  164. package/dist/core/utils/retry.js +242 -0
  165. package/dist/core/utils/smart-wait.d.ts +133 -0
  166. package/dist/core/utils/smart-wait.js +417 -0
  167. package/dist/core/visual/index.d.ts +7 -0
  168. package/dist/core/visual/index.js +7 -0
  169. package/dist/core/visual/pixel-diff.d.ts +87 -0
  170. package/dist/core/visual/pixel-diff.js +213 -0
  171. package/dist/core/visual/screenshot-helper.d.ts +130 -0
  172. package/dist/core/visual/screenshot-helper.js +223 -0
  173. package/{cli/dist → dist}/utils/config.d.ts +1 -1
  174. package/examples/README.md +160 -0
  175. package/examples/accessibility.yml +48 -0
  176. package/examples/api-basic.yml +27 -0
  177. package/examples/complete.yml +146 -0
  178. package/examples/crawler.yml +38 -0
  179. package/examples/fullstack.yml +78 -0
  180. package/examples/security.yml +58 -0
  181. package/examples/ui-advanced.yml +49 -0
  182. package/examples/ui-basic.yml +24 -0
  183. package/package.json +33 -67
  184. package/CHANGELOG.md +0 -262
  185. package/CONTRIBUTING.md +0 -273
  186. package/QUICK_START.md +0 -191
  187. package/cli/CHANGELOG.md +0 -84
  188. package/cli/LICENSE +0 -24
  189. package/cli/README.md +0 -222
  190. package/cli/dist/core/adapters/playwright-ui.js +0 -864
  191. package/cli/dist/core/auth/oauth2-provider.js +0 -114
  192. package/cli/dist/core/coverage/analyzer.d.ts +0 -101
  193. package/cli/dist/core/coverage/analyzer.js +0 -415
  194. package/cli/dist/core/coverage/collector.d.ts +0 -74
  195. package/cli/dist/core/coverage/collector.js +0 -459
  196. package/cli/dist/core/coverage/config.d.ts +0 -37
  197. package/cli/dist/core/coverage/config.js +0 -156
  198. package/cli/dist/core/coverage/index.d.ts +0 -11
  199. package/cli/dist/core/coverage/index.js +0 -15
  200. package/cli/dist/core/coverage/types.d.ts +0 -267
  201. package/cli/dist/core/coverage/types.js +0 -6
  202. package/cli/dist/core/coverage/vault.d.ts +0 -95
  203. package/cli/dist/core/coverage/vault.js +0 -405
  204. package/cli/dist/core/crawler/index.d.ts +0 -57
  205. package/cli/dist/core/fixtures/index.d.ts +0 -8
  206. package/cli/dist/core/fixtures/index.js +0 -8
  207. package/cli/dist/core/generation/crawler-pack-generator.js +0 -231
  208. package/cli/dist/core/reporting/index.d.ts +0 -6
  209. package/cli/dist/core/reporting/index.js +0 -6
  210. package/cli/dist/core/visual/index.d.ts +0 -6
  211. package/cli/dist/core/visual/index.js +0 -6
  212. package/cli/package.json +0 -76
  213. package/core/LICENSE +0 -24
  214. package/core/README.md +0 -64
  215. package/core/package.json +0 -81
  216. package/core/schemas/pack.schema.json +0 -236
  217. /package/{cli/bin → bin}/qa360.js +0 -0
  218. /package/{cli/dist → dist}/cli-minimal.d.ts +0 -0
  219. /package/{cli/dist → dist}/cli-minimal.js +0 -0
  220. /package/{cli/dist → dist}/commands/ai.d.ts +0 -0
  221. /package/{cli/dist → dist}/commands/ask.d.ts +0 -0
  222. /package/{cli/dist → dist}/commands/ask.js +0 -0
  223. /package/{cli/dist → dist}/commands/coverage.d.ts +0 -0
  224. /package/{cli/dist → dist}/commands/doctor.d.ts +0 -0
  225. /package/{cli/dist → dist}/commands/examples.d.ts +0 -0
  226. /package/{cli/dist → dist}/commands/examples.js +0 -0
  227. /package/{cli/dist → dist}/commands/explain.d.ts +0 -0
  228. /package/{cli/dist → dist}/commands/flakiness.d.ts +0 -0
  229. /package/{cli/dist → dist}/commands/generate.d.ts +0 -0
  230. /package/{cli/dist → dist}/commands/history.d.ts +0 -0
  231. /package/{cli/dist → dist}/commands/init.d.ts +0 -0
  232. /package/{cli/dist → dist}/commands/init.js +0 -0
  233. /package/{cli/dist → dist}/commands/monitor.d.ts +0 -0
  234. /package/{cli/dist → dist}/commands/ollama.d.ts +0 -0
  235. /package/{cli/dist → dist}/commands/pack.d.ts +0 -0
  236. /package/{cli/dist → dist}/commands/regression.d.ts +0 -0
  237. /package/{cli/dist → dist}/commands/repair.d.ts +0 -0
  238. /package/{cli/dist → dist}/commands/report.d.ts +0 -0
  239. /package/{cli/dist → dist}/commands/report.js +0 -0
  240. /package/{cli/dist → dist}/commands/retry.d.ts +0 -0
  241. /package/{cli/dist → dist}/commands/scan.d.ts +0 -0
  242. /package/{cli/dist → dist}/commands/scan.js +0 -0
  243. /package/{cli/dist → dist}/commands/secrets.d.ts +0 -0
  244. /package/{cli/dist → dist}/commands/serve.d.ts +0 -0
  245. /package/{cli/dist → dist}/commands/slo.d.ts +0 -0
  246. /package/{cli/dist → dist}/commands/verify.d.ts +0 -0
  247. /package/{cli/dist → dist}/core/adapters/gitleaks-secrets.d.ts +0 -0
  248. /package/{cli/dist → dist}/core/adapters/gitleaks-secrets.js +0 -0
  249. /package/{cli/dist → dist}/core/adapters/jest-adapter.d.ts +0 -0
  250. /package/{cli/dist → dist}/core/adapters/jest-adapter.js +0 -0
  251. /package/{cli/dist → dist}/core/adapters/k6-perf.d.ts +0 -0
  252. /package/{cli/dist → dist}/core/adapters/k6-perf.js +0 -0
  253. /package/{cli/dist → dist}/core/adapters/osv-deps.d.ts +0 -0
  254. /package/{cli/dist → dist}/core/adapters/osv-deps.js +0 -0
  255. /package/{cli/dist → dist}/core/adapters/playwright-native-adapter.d.ts +0 -0
  256. /package/{cli/dist → dist}/core/adapters/playwright-native-adapter.js +0 -0
  257. /package/{cli/dist → dist}/core/adapters/pytest-adapter.d.ts +0 -0
  258. /package/{cli/dist → dist}/core/adapters/pytest-adapter.js +0 -0
  259. /package/{cli/dist → dist}/core/adapters/semgrep-sast.d.ts +0 -0
  260. /package/{cli/dist → dist}/core/adapters/semgrep-sast.js +0 -0
  261. /package/{cli/dist → dist}/core/adapters/unit-test-types.d.ts +0 -0
  262. /package/{cli/dist → dist}/core/adapters/unit-test-types.js +0 -0
  263. /package/{cli/dist → dist}/core/adapters/vitest-adapter.d.ts +0 -0
  264. /package/{cli/dist → dist}/core/adapters/vitest-adapter.js +0 -0
  265. /package/{cli/dist → dist}/core/adapters/zap-dast.d.ts +0 -0
  266. /package/{cli/dist → dist}/core/adapters/zap-dast.js +0 -0
  267. /package/{cli/dist → dist}/core/ai/anthropic-provider.d.ts +0 -0
  268. /package/{cli/dist → dist}/core/ai/anthropic-provider.js +0 -0
  269. /package/{cli/dist → dist}/core/ai/deepseek-provider.d.ts +0 -0
  270. /package/{cli/dist → dist}/core/ai/deepseek-provider.js +0 -0
  271. /package/{cli/dist → dist}/core/ai/index.d.ts +0 -0
  272. /package/{cli/dist → dist}/core/ai/index.js +0 -0
  273. /package/{cli/dist → dist}/core/ai/llm-client.d.ts +0 -0
  274. /package/{cli/dist → dist}/core/ai/llm-client.js +0 -0
  275. /package/{cli/dist → dist}/core/ai/mock-provider.d.ts +0 -0
  276. /package/{cli/dist → dist}/core/ai/mock-provider.js +0 -0
  277. /package/{cli/dist → dist}/core/ai/ollama-provider.d.ts +0 -0
  278. /package/{cli/dist → dist}/core/ai/openai-provider.d.ts +0 -0
  279. /package/{cli/dist → dist}/core/ai/openai-provider.js +0 -0
  280. /package/{cli/dist → dist}/core/ai/provider-factory.d.ts +0 -0
  281. /package/{cli/dist → dist}/core/ai/provider-factory.js +0 -0
  282. /package/{cli/dist → dist}/core/artifacts/index.d.ts +0 -0
  283. /package/{cli/dist → dist}/core/artifacts/index.js +0 -0
  284. /package/{cli/dist → dist}/core/artifacts/ui-artifacts.d.ts +0 -0
  285. /package/{cli/dist → dist}/core/assertions/engine.d.ts +0 -0
  286. /package/{cli/dist → dist}/core/assertions/engine.js +0 -0
  287. /package/{cli/dist → dist}/core/assertions/index.d.ts +0 -0
  288. /package/{cli/dist → dist}/core/assertions/index.js +0 -0
  289. /package/{cli/dist → dist}/core/assertions/types.d.ts +0 -0
  290. /package/{cli/dist → dist}/core/assertions/types.js +0 -0
  291. /package/{cli/dist → dist}/core/auth/api-key-provider.d.ts +0 -0
  292. /package/{cli/dist → dist}/core/auth/api-key-provider.js +0 -0
  293. /package/{cli/dist → dist}/core/auth/aws-iam-provider.d.ts +0 -0
  294. /package/{cli/dist → dist}/core/auth/aws-iam-provider.js +0 -0
  295. /package/{cli/dist → dist}/core/auth/azure-ad-provider.d.ts +0 -0
  296. /package/{cli/dist → dist}/core/auth/azure-ad-provider.js +0 -0
  297. /package/{cli/dist → dist}/core/auth/gcp-adc-provider.d.ts +0 -0
  298. /package/{cli/dist → dist}/core/auth/gcp-adc-provider.js +0 -0
  299. /package/{cli/dist → dist}/core/auth/jwt-provider.d.ts +0 -0
  300. /package/{cli/dist → dist}/core/auth/jwt-provider.js +0 -0
  301. /package/{cli/dist → dist}/core/auth/manager.d.ts +0 -0
  302. /package/{cli/dist → dist}/core/auth/manager.js +0 -0
  303. /package/{cli/dist → dist}/core/auth/totp-provider.d.ts +0 -0
  304. /package/{cli/dist → dist}/core/auth/totp-provider.js +0 -0
  305. /package/{cli/dist → dist}/core/auth/ui-login-provider.d.ts +0 -0
  306. /package/{cli/dist → dist}/core/auth/ui-login-provider.js +0 -0
  307. /package/{cli/dist → dist}/core/cache/index.d.ts +0 -0
  308. /package/{cli/dist → dist}/core/cache/index.js +0 -0
  309. /package/{cli/dist → dist}/core/cache/lru-cache.d.ts +0 -0
  310. /package/{cli/dist → dist}/core/cache/lru-cache.js +0 -0
  311. /package/{cli/dist/core → dist}/core/coverage/analyzer.d.ts +0 -0
  312. /package/{cli/dist/core → dist}/core/coverage/analyzer.js +0 -0
  313. /package/{cli/dist/core → dist}/core/coverage/collector.d.ts +0 -0
  314. /package/{cli/dist/core → dist}/core/coverage/collector.js +0 -0
  315. /package/{cli/dist/core → dist}/core/coverage/config.d.ts +0 -0
  316. /package/{cli/dist/core → dist}/core/coverage/config.js +0 -0
  317. /package/{cli/dist/core → dist}/core/coverage/index.d.ts +0 -0
  318. /package/{cli/dist/core → dist}/core/coverage/index.js +0 -0
  319. /package/{cli/dist/core → dist}/core/coverage/types.d.ts +0 -0
  320. /package/{cli/dist/core → dist}/core/coverage/types.js +0 -0
  321. /package/{cli/dist/core → dist}/core/coverage/vault.d.ts +0 -0
  322. /package/{cli/dist/core → dist}/core/coverage/vault.js +0 -0
  323. /package/{cli/dist → dist}/core/crawler/journey-generator.d.ts +0 -0
  324. /package/{cli/dist → dist}/core/crawler/types.js +0 -0
  325. /package/{cli/dist → dist}/core/dashboard/assets.d.ts +0 -0
  326. /package/{cli/dist → dist}/core/dashboard/assets.js +0 -0
  327. /package/{cli/dist → dist}/core/dashboard/index.d.ts +0 -0
  328. /package/{cli/dist → dist}/core/dashboard/index.js +0 -0
  329. /package/{cli/dist → dist}/core/dashboard/server.d.ts +0 -0
  330. /package/{cli/dist → dist}/core/dashboard/server.js +0 -0
  331. /package/{cli/dist → dist}/core/dashboard/types.d.ts +0 -0
  332. /package/{cli/dist → dist}/core/dashboard/types.js +0 -0
  333. /package/{cli/dist → dist}/core/discoverer/index.d.ts +0 -0
  334. /package/{cli/dist → dist}/core/discoverer/index.js +0 -0
  335. /package/{cli/dist → dist}/core/fixtures/loader.d.ts +0 -0
  336. /package/{cli/dist → dist}/core/fixtures/loader.js +0 -0
  337. /package/{cli/dist → dist}/core/fixtures/resolver.d.ts +0 -0
  338. /package/{cli/dist → dist}/core/fixtures/resolver.js +0 -0
  339. /package/{cli/dist → dist}/core/fixtures/types.d.ts +0 -0
  340. /package/{cli/dist → dist}/core/fixtures/types.js +0 -0
  341. /package/{cli/dist → dist}/core/flakiness/index.d.ts +0 -0
  342. /package/{cli/dist → dist}/core/flakiness/index.js +0 -0
  343. /package/{cli/dist → dist}/core/generation/code-formatter.d.ts +0 -0
  344. /package/{cli/dist → dist}/core/generation/code-formatter.js +0 -0
  345. /package/{cli/dist → dist}/core/generation/code-generator.d.ts +0 -0
  346. /package/{cli/dist → dist}/core/generation/code-generator.js +0 -0
  347. /package/{cli/dist → dist}/core/generation/generator.d.ts +0 -0
  348. /package/{cli/dist → dist}/core/generation/generator.js +0 -0
  349. /package/{cli/dist → dist}/core/generation/pack-generator.d.ts +0 -0
  350. /package/{cli/dist → dist}/core/generation/pack-generator.js +0 -0
  351. /package/{cli/dist → dist}/core/generation/prompt-builder.d.ts +0 -0
  352. /package/{cli/dist → dist}/core/generation/prompt-builder.js +0 -0
  353. /package/{cli/dist → dist}/core/generation/source-analyzer.d.ts +0 -0
  354. /package/{cli/dist → dist}/core/generation/source-analyzer.js +0 -0
  355. /package/{cli/dist → dist}/core/generation/test-optimizer.d.ts +0 -0
  356. /package/{cli/dist → dist}/core/generation/test-optimizer.js +0 -0
  357. /package/{cli/dist → dist}/core/generation/types.d.ts +0 -0
  358. /package/{cli/dist → dist}/core/generation/types.js +0 -0
  359. /package/{cli/dist → dist}/core/hooks/compose.d.ts +0 -0
  360. /package/{cli/dist → dist}/core/hooks/compose.js +0 -0
  361. /package/{cli/dist → dist}/core/hooks/runner.d.ts +0 -0
  362. /package/{cli/dist → dist}/core/hooks/runner.js +0 -0
  363. /package/{cli/dist → dist}/core/pack/migrator.d.ts +0 -0
  364. /package/{cli/dist → dist}/core/pack/migrator.js +0 -0
  365. /package/{cli/dist → dist}/core/pack/validator.d.ts +0 -0
  366. /package/{cli/dist → dist}/core/pack-v2/index.d.ts +0 -0
  367. /package/{cli/dist → dist}/core/pack-v2/index.js +0 -0
  368. /package/{cli/dist → dist}/core/pack-v2/loader.d.ts +0 -0
  369. /package/{cli/dist → dist}/core/pack-v2/loader.js +0 -0
  370. /package/{cli/dist → dist}/core/pack-v2/validator.d.ts +0 -0
  371. /package/{cli/dist → dist}/core/parallel/index.d.ts +0 -0
  372. /package/{cli/dist → dist}/core/parallel/index.js +0 -0
  373. /package/{cli/dist → dist}/core/parallel/parallel-runner.d.ts +0 -0
  374. /package/{cli/dist → dist}/core/parallel/parallel-runner.js +0 -0
  375. /package/{cli/dist → dist}/core/pom/base-page.d.ts +0 -0
  376. /package/{cli/dist → dist}/core/pom/index.d.ts +0 -0
  377. /package/{cli/dist → dist}/core/pom/index.js +0 -0
  378. /package/{cli/dist → dist}/core/pom/loader.d.ts +0 -0
  379. /package/{cli/dist → dist}/core/pom/types.d.ts +0 -0
  380. /package/{cli/dist → dist}/core/pom/types.js +0 -0
  381. /package/{cli/dist → dist}/core/proof/bundle.d.ts +0 -0
  382. /package/{cli/dist → dist}/core/proof/bundle.js +0 -0
  383. /package/{cli/dist → dist}/core/proof/canonicalize.d.ts +0 -0
  384. /package/{cli/dist → dist}/core/proof/canonicalize.js +0 -0
  385. /package/{cli/dist → dist}/core/proof/index.d.ts +0 -0
  386. /package/{cli/dist → dist}/core/proof/index.js +0 -0
  387. /package/{cli/dist → dist}/core/proof/schema.d.ts +0 -0
  388. /package/{cli/dist → dist}/core/proof/schema.js +0 -0
  389. /package/{cli/dist → dist}/core/proof/signer.d.ts +0 -0
  390. /package/{cli/dist → dist}/core/proof/signer.js +0 -0
  391. /package/{cli/dist → dist}/core/proof/verifier.d.ts +0 -0
  392. /package/{cli/dist → dist}/core/proof/verifier.js +0 -0
  393. /package/{cli/dist → dist}/core/regression/detector.d.ts +0 -0
  394. /package/{cli/dist → dist}/core/regression/detector.js +0 -0
  395. /package/{cli/dist → dist}/core/regression/index.d.ts +0 -0
  396. /package/{cli/dist → dist}/core/regression/index.js +0 -0
  397. /package/{cli/dist → dist}/core/regression/trend-analyzer.d.ts +0 -0
  398. /package/{cli/dist → dist}/core/regression/trend-analyzer.js +0 -0
  399. /package/{cli/dist → dist}/core/regression/types.d.ts +0 -0
  400. /package/{cli/dist → dist}/core/regression/types.js +0 -0
  401. /package/{cli/dist → dist}/core/regression/vault.d.ts +0 -0
  402. /package/{cli/dist → dist}/core/regression/vault.js +0 -0
  403. /package/{cli/dist → dist}/core/repair/engine/fixer.d.ts +0 -0
  404. /package/{cli/dist → dist}/core/repair/engine/fixer.js +0 -0
  405. /package/{cli/dist → dist}/core/repair/engine/suggestion-engine.d.ts +0 -0
  406. /package/{cli/dist → dist}/core/repair/engine/suggestion-engine.js +0 -0
  407. /package/{cli/dist → dist}/core/repair/index.d.ts +0 -0
  408. /package/{cli/dist → dist}/core/repair/index.js +0 -0
  409. /package/{cli/dist → dist}/core/repair/repairer.d.ts +0 -0
  410. /package/{cli/dist → dist}/core/repair/repairer.js +0 -0
  411. /package/{cli/dist → dist}/core/repair/types.d.ts +0 -0
  412. /package/{cli/dist → dist}/core/repair/types.js +0 -0
  413. /package/{cli/dist → dist}/core/repair/utils/error-analyzer.d.ts +0 -0
  414. /package/{cli/dist → dist}/core/repair/utils/error-analyzer.js +0 -0
  415. /package/{cli/dist → dist}/core/reporting/html-reporter.d.ts +0 -0
  416. /package/{cli/dist → dist}/core/reporting/html-reporter.js +0 -0
  417. /package/{cli/dist → dist}/core/retry/flakiness-integration.d.ts +0 -0
  418. /package/{cli/dist → dist}/core/retry/flakiness-integration.js +0 -0
  419. /package/{cli/dist → dist}/core/retry/index.d.ts +0 -0
  420. /package/{cli/dist → dist}/core/retry/index.js +0 -0
  421. /package/{cli/dist → dist}/core/retry/retry-engine.d.ts +0 -0
  422. /package/{cli/dist → dist}/core/retry/retry-engine.js +0 -0
  423. /package/{cli/dist → dist}/core/retry/types.d.ts +0 -0
  424. /package/{cli/dist → dist}/core/retry/types.js +0 -0
  425. /package/{cli/dist → dist}/core/retry/vault.d.ts +0 -0
  426. /package/{cli/dist → dist}/core/retry/vault.js +0 -0
  427. /package/{cli/dist → dist}/core/schemas/pack.schema.json +0 -0
  428. /package/{cli/dist → dist}/core/secrets/crypto.d.ts +0 -0
  429. /package/{cli/dist → dist}/core/secrets/crypto.js +0 -0
  430. /package/{cli/dist → dist}/core/secrets/manager.d.ts +0 -0
  431. /package/{cli/dist → dist}/core/secrets/manager.js +0 -0
  432. /package/{cli/dist → dist}/core/security/redaction-patterns-extended.d.ts +0 -0
  433. /package/{cli/dist → dist}/core/security/redaction-patterns-extended.js +0 -0
  434. /package/{cli/dist → dist}/core/security/redactor.d.ts +0 -0
  435. /package/{cli/dist → dist}/core/security/redactor.js +0 -0
  436. /package/{cli/dist → dist}/core/self-healing/assertion-healer.d.ts +0 -0
  437. /package/{cli/dist → dist}/core/self-healing/assertion-healer.js +0 -0
  438. /package/{cli/dist → dist}/core/self-healing/engine.d.ts +0 -0
  439. /package/{cli/dist → dist}/core/self-healing/engine.js +0 -0
  440. /package/{cli/dist → dist}/core/self-healing/index.d.ts +0 -0
  441. /package/{cli/dist → dist}/core/self-healing/index.js +0 -0
  442. /package/{cli/dist → dist}/core/self-healing/selector-healer.d.ts +0 -0
  443. /package/{cli/dist → dist}/core/self-healing/selector-healer.js +0 -0
  444. /package/{cli/dist → dist}/core/self-healing/types.d.ts +0 -0
  445. /package/{cli/dist → dist}/core/self-healing/types.js +0 -0
  446. /package/{cli/dist → dist}/core/serve/diagnostics-collector.d.ts +0 -0
  447. /package/{cli/dist → dist}/core/serve/diagnostics-collector.js +0 -0
  448. /package/{cli/dist → dist}/core/serve/health-checker.d.ts +0 -0
  449. /package/{cli/dist → dist}/core/serve/health-checker.js +0 -0
  450. /package/{cli/dist → dist}/core/serve/index.d.ts +0 -0
  451. /package/{cli/dist → dist}/core/serve/index.js +0 -0
  452. /package/{cli/dist → dist}/core/serve/metrics-collector.d.ts +0 -0
  453. /package/{cli/dist → dist}/core/serve/metrics-collector.js +0 -0
  454. /package/{cli/dist → dist}/core/serve/process-manager.d.ts +0 -0
  455. /package/{cli/dist → dist}/core/serve/process-manager.js +0 -0
  456. /package/{cli/dist → dist}/core/serve/server.d.ts +0 -0
  457. /package/{cli/dist → dist}/core/serve/server.js +0 -0
  458. /package/{cli/dist → dist}/core/slo/config.d.ts +0 -0
  459. /package/{cli/dist → dist}/core/slo/config.js +0 -0
  460. /package/{cli/dist → dist}/core/slo/index.d.ts +0 -0
  461. /package/{cli/dist → dist}/core/slo/index.js +0 -0
  462. /package/{cli/dist → dist}/core/slo/sli-calculator.d.ts +0 -0
  463. /package/{cli/dist → dist}/core/slo/sli-calculator.js +0 -0
  464. /package/{cli/dist → dist}/core/slo/slo-tracker.d.ts +0 -0
  465. /package/{cli/dist → dist}/core/slo/slo-tracker.js +0 -0
  466. /package/{cli/dist → dist}/core/slo/types.d.ts +0 -0
  467. /package/{cli/dist → dist}/core/slo/types.js +0 -0
  468. /package/{cli/dist → dist}/core/slo/vault.d.ts +0 -0
  469. /package/{cli/dist → dist}/core/slo/vault.js +0 -0
  470. /package/{cli/dist → dist}/core/tui/index.d.ts +0 -0
  471. /package/{cli/dist → dist}/core/tui/index.js +0 -0
  472. /package/{cli/dist → dist}/core/tui/monitor.d.ts +0 -0
  473. /package/{cli/dist → dist}/core/tui/monitor.js +0 -0
  474. /package/{cli/dist → dist}/core/tui/renderer.d.ts +0 -0
  475. /package/{cli/dist → dist}/core/tui/renderer.js +0 -0
  476. /package/{cli/dist → dist}/core/tui/types.d.ts +0 -0
  477. /package/{cli/dist → dist}/core/tui/types.js +0 -0
  478. /package/{cli/dist → dist}/core/types/pack-v1.js +0 -0
  479. /package/{cli/dist → dist}/core/types/pack-v2.js +0 -0
  480. /package/{cli/dist → dist}/core/types/trust-score.d.ts +0 -0
  481. /package/{cli/dist → dist}/core/types/trust-score.js +0 -0
  482. /package/{cli/dist → dist}/core/vault/cas.d.ts +0 -0
  483. /package/{cli/dist → dist}/core/vault/cas.js +0 -0
  484. /package/{cli/dist → dist}/core/vault/index.d.ts +0 -0
  485. /package/{cli/dist → dist}/core/vault/index.js +0 -0
  486. /package/{cli/dist → dist}/core/visual/visual-regression.d.ts +0 -0
  487. /package/{cli/dist → dist}/core/visual/visual-regression.js +0 -0
  488. /package/{cli/dist → dist}/core/watch/index.d.ts +0 -0
  489. /package/{cli/dist → dist}/core/watch/index.js +0 -0
  490. /package/{cli/dist → dist}/core/watch/watch-mode.d.ts +0 -0
  491. /package/{cli/dist → dist}/core/watch/watch-mode.js +0 -0
  492. /package/{cli/dist → dist}/generators/index.d.ts +0 -0
  493. /package/{cli/dist → dist}/generators/index.js +0 -0
  494. /package/{cli/dist → dist}/generators/json-reporter.d.ts +0 -0
  495. /package/{cli/dist → dist}/generators/json-reporter.js +0 -0
  496. /package/{cli/dist → dist}/generators/test-generator.d.ts +0 -0
  497. /package/{cli/dist → dist}/generators/test-generator.js +0 -0
  498. /package/{cli/dist → dist}/index.d.ts +0 -0
  499. /package/{cli/dist → dist}/index.js +0 -0
  500. /package/{cli/dist → dist}/scanners/dom-scanner.d.ts +0 -0
  501. /package/{cli/dist → dist}/scanners/dom-scanner.js +0 -0
  502. /package/{cli/dist → dist}/scanners/index.d.ts +0 -0
  503. /package/{cli/dist → dist}/scanners/index.js +0 -0
  504. /package/{cli/dist → dist}/schemas/pack.schema.json +0 -0
  505. /package/{cli/dist → dist}/types/scan.d.ts +0 -0
  506. /package/{cli/dist → dist}/types/scan.js +0 -0
  507. /package/{cli/dist → dist}/utils/config.js +0 -0
package/package.json CHANGED
@@ -1,66 +1,41 @@
1
1
  {
2
2
  "name": "qa360",
3
- "version": "2.2.20",
4
- "description": "Transform software testing into verifiable, signed, and traceable proofs",
3
+ "version": "2.3.1",
4
+ "description": "QA360 Proof CLI - Quality as Cryptographic Proof",
5
5
  "type": "module",
6
- "packageManager": "pnpm@9.12.2",
7
- "engines": {
8
- "node": ">=18.20.0"
9
- },
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
10
8
  "bin": {
11
- "qa360": "./cli/bin/qa360.js"
9
+ "qa360": "bin/qa360.js"
12
10
  },
13
11
  "files": [
14
- "cli/dist",
15
- "cli/bin",
16
- "cli/README.md",
17
- "core/schemas",
18
- "core/dist/schemas",
19
- "core/README.md",
12
+ "dist",
13
+ "bin",
20
14
  "README.md",
21
- "CHANGELOG.md",
22
- "CONTRIBUTING.md",
23
15
  "LICENSE",
24
- "QUICK_START.md",
25
- "package.json"
16
+ "examples"
26
17
  ],
27
18
  "scripts": {
28
- "build": "tsc --build tsconfig.build.json",
19
+ "build": "tsc --project tsconfig.bundle.json",
29
20
  "build:pkg": "tsc",
30
- "docs": "typedoc --skipErrorChecking",
31
- "docs:serve": "typedoc --skipErrorChecking --serve",
32
- "test": "pnpm -r run test",
33
- "test:core": "cd core && pnpm test",
34
- "test:cli": "cd cli && pnpm test",
35
- "test:e2e": "vitest run --config e2e/vitest.config.ts",
36
- "test:examples": "node scripts/validate-examples.mjs",
37
- "test:all": "npm run type-check && npm run test && npm run test:examples",
38
- "lint": "eslint . --ext .ts,.js",
39
- "lint:fix": "eslint . --ext .ts,.js --fix",
40
- "type-check": "tsc --build tsconfig.build.json --force",
41
- "dev": "tsx watch cli/src/index.ts",
42
- "clean": "rm -rf dist/ */dist/ **/dist/",
43
- "clean:all": "pnpm clean && find . -name '.tmp-test-*' -type d -exec rm -rf {} + 2>/dev/null; find . -name '.qa360' -type d -exec rm -rf {} + 2>/dev/null; find . -name '*.tsbuildinfo' -delete 2>/dev/null; echo 'All artifacts cleaned'",
44
- "version:sync": "node scripts/sync-version.mjs",
45
- "prepare": "husky install",
46
- "install:mcp": "bash scripts/install-mcp.sh"
47
- },
48
- "workspaces": [
49
- "cli",
50
- "core",
51
- "packages/*"
52
- ],
53
- "pnpm": {
54
- "overrides": {
55
- "ajv": "^8.17.1"
56
- }
21
+ "build:bundle": "bash scripts/bundle-for-npm.sh",
22
+ "test": "vitest run",
23
+ "test:coverage": "vitest run --coverage",
24
+ "test:watch": "vitest",
25
+ "dev": "tsx watch src/index.ts",
26
+ "clean": "rimraf dist src/core",
27
+ "prepack": "node scripts/validate-package.js",
28
+ "prepublishOnly": "npm run build:bundle && sed -i.bak 's/\"qa360-core\": \"workspace:\\*\",//g' package.json && rm -f package.json.bak",
29
+ "postpublish": "git checkout package.json 2>/dev/null || true",
30
+ "publish:dry": "npm run build:bundle && sed -i.bak 's/\"qa360-core\": \"workspace:\\*\",//g' package.json && npm publish --dry-run; git checkout package.json",
31
+ "publish:real": "npm run build:bundle && npm publish --access public --provenance"
57
32
  },
58
33
  "dependencies": {
59
34
  "@playwright/test": "^1.49.0",
60
35
  "adm-zip": "^0.5.16",
61
36
  "ajv": "^8.17.1",
62
37
  "ajv-draft-04": "^1.0.0",
63
- "ajv-formats": "^3.0.1",
38
+ "ajv-formats": "^2.1.1",
64
39
  "chalk": "^4.1.2",
65
40
  "cli-table3": "^0.6.5",
66
41
  "commander": "^11.0.0",
@@ -69,43 +44,34 @@
69
44
  "js-yaml": "^4.1.0",
70
45
  "ollama": "^0.5.1",
71
46
  "ora": "^5.4.1",
47
+ "pngjs": "^7.0.0",
72
48
  "playwright": "^1.57.0",
49
+
73
50
  "sqlite3": "^5.1.6",
74
- "table": "^6.9.0",
75
- "tweetnacl": "^1.0.3",
76
- "qa360-core": "^2.2.6"
51
+ "tweetnacl": "^1.0.3"
77
52
  },
78
53
  "devDependencies": {
79
- "@playwright/test": "^1.56.1",
80
- "@types/js-yaml": "^4.0.9",
81
- "@types/node": "^20.0.0",
82
- "@typescript-eslint/eslint-plugin": "^6.0.0",
83
- "@typescript-eslint/parser": "^6.0.0",
54
+ "@types/adm-zip": "^0.5.7",
55
+ "@types/inquirer": "^9.0.9",
56
+ "@types/pngjs": "^6.0.5",
84
57
  "@vitest/coverage-v8": "1.6.0",
85
- "eslint": "^8.0.0",
86
- "husky": "^8.0.0",
87
58
  "tsx": "^4.0.0",
88
- "typedoc": "^0.28.15",
89
- "typescript": "^5.0.0",
90
59
  "vitest": "1.6.0"
91
60
  },
92
61
  "keywords": [
93
- "qa",
62
+ "qa360",
63
+ "cli",
94
64
  "testing",
95
- "proof",
96
- "verification",
97
- "ci-cd",
98
- "quality-assurance",
99
- "local-first",
100
- "portable"
65
+ "proof"
101
66
  ],
102
67
  "author": "QA360 Core Team",
103
68
  "license": "MIT",
104
69
  "repository": {
105
70
  "type": "git",
106
- "url": "https://github.com/xyqotech/qa360.git"
71
+ "url": "https://github.com/xyqotech/qa360.git",
72
+ "directory": "cli"
107
73
  },
108
- "homepage": "https://qa360.dev",
74
+ "homepage": "https://github.com/xyqotech/qa360",
109
75
  "bugs": {
110
76
  "url": "https://github.com/xyqotech/qa360/issues"
111
77
  }
package/CHANGELOG.md DELETED
@@ -1,262 +0,0 @@
1
- # Changelog
2
-
3
- All notable changes to QA360 will be documented in this file.
4
-
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
-
8
- ---
9
-
10
- ## ⚠️ BROKEN VERSIONS - DO NOT USE
11
-
12
- | Version | Status | Issue | Fixed In |
13
- |---------|--------|-------|----------|
14
- | **2.2.4** | 🔴 BROKEN | Published without CI check (CI was failing) | 2.2.6 |
15
- | **2.2.5** | 🔴 BROKEN | Published without bundle script - missing `cli/dist/core/` | 2.2.6 |
16
-
17
- **Use version 2.2.6 or later instead.**
18
-
19
- ---
20
-
21
- ## [2.2.6] - 2025-01-18
22
-
23
- ### Fixed
24
- - **Critical bundle fix**: Re-ran bundle script correctly before publication
25
- - `cli/dist/core/` now contains the bundled core engine
26
- - Imports correctly use `../core/index.js` instead of `qa360-core`
27
- - Package installation now works correctly
28
- - **Recovery**: This version fixes the broken 2.2.4 and 2.2.5 releases
29
-
30
- ### Added
31
- - **npm Publication Workflow section** in README with mandatory checklist
32
- - Documented fatal mistakes from 2.2.4 and 2.2.5 to prevent recurrence
33
-
34
- ---
35
-
36
- ## Versioning Convention
37
-
38
- QA360 uses **Node.js-style versioning** (Major.Minor.Patch).
39
-
40
- Example: `v1.4.8` (similar to Node.js `v18.20.5`)
41
-
42
- - **Major** (X.0.0): Breaking changes, major rewrites
43
- - **Minor** (1.X.0): New features, backward compatible
44
- - **Patch** (1.4.X): Bug fixes, minor improvements
45
-
46
- Always reference versions with the **`v`** prefix.
47
-
48
- ## [1.4.8] - 2026-01-01
49
-
50
- ### Added
51
- - **Phase 8 Complete**: TUI & Dashboard for real-time test visualization
52
- - **E2E Test Suite**: 27 automated end-to-end tests covering all major CLI commands
53
- - Tests for: init, preflight, run, verify, doctor, secrets, history
54
- - Multi-gate scenarios, error handling, performance tests
55
- - AI features with Ollama (skipped if not available)
56
- - **Beta Testing Plan**: Comprehensive user testing program documentation
57
- - 10 test scenarios including AI integration (Ollama, OpenAI, Anthropic)
58
- - Success metrics and feedback templates
59
- - **monitor command**: Run tests with terminal UI visualization
60
- - **dashboard command**: Run tests with web dashboard (Server-Sent Events)
61
-
62
- ### Changed
63
- - Updated documentation with Phase 8 completion status
64
- - README now references Beta Testing Plan
65
- - All CI green on Node 18, 20, 22
66
-
67
- ## [1.4.4] - 2025-12-30
68
-
69
- ### Fixed
70
- - **Critical dependency fix**: Moved `adm-zip` from devDependencies to dependencies
71
- - Resolves runtime error: "Cannot find package 'adm-zip'"
72
- - Affects `qa360 history` command functionality
73
- - No other changes - pure dependency fix for v1.4.3
74
-
75
- ### Technical
76
- - Package now includes all required runtime dependencies
77
- - All smoke tests passing
78
-
79
- ## [1.4.3] - 2025-12-29
80
-
81
- ### Security
82
- - **Removed sourcemap files from npm package**: Eliminated 46 `.d.ts.map` files that exposed internal code structure
83
- - **Package size reduction**: 135.3 kB → 123.6 kB (-8.6%)
84
- - **File count reduction**: 151 → 105 files (-30%)
85
- - **Added automatic validation**: `prepack` hook prevents accidental publication of sensitive files
86
- - **Anti-clone protection**: Added official package notice in README with provenance signatures
87
-
88
- ### Changed
89
- - Disabled `declarationMap` in all TypeScript configurations
90
- - Added `validate-package.js` script to enforce packaging rules
91
- - Updated CLI README with official package attribution
92
-
93
- ### Technical
94
- - Zero runtime impact (all smoke tests passing)
95
- - Reduced attack surface for code inspection
96
- - Automated safeguards against future regressions
97
- - Fixes both v1.4.1 and v1.4.2 (identical sourcemap exposure)
98
-
99
- ## [1.4.1] - 2025-12-29
100
-
101
- ### Improved
102
- - **Phase 7 (Proof) Test Coverage**: 76.42% → 95.41% (+19%)
103
- - verifier.ts: 45% → 93.68% (+48.68%)
104
- - signer.ts: 70.64% → 97.26% (+26.62%)
105
- - bundle.ts: 87.93% → 91.37% (+3.44%)
106
- - Added verifier-advanced.test.ts with 26 comprehensive tests
107
- - Enhanced signer and bundle test suites
108
-
109
- - **Phase3Runner Test Coverage**: 0% → 85.81% (+85.81%)
110
- - Replaced placeholder tests with real integration tests
111
- - Added E2E tests for complete run workflow
112
- - Real integration tests with httpbin.org for api_smoke gate
113
- - Mocked tests for ui, a11y, perf, sast, dast gates
114
- - Tests for initialization, summary calculation, weighted trust score
115
- - 25 comprehensive tests covering core orchestration logic
116
-
117
- ### Changed
118
- - Test suite expanded to 593 tests (all passing)
119
- - Total Phase 7 (proof) tests: 106
120
- - Enhanced code reliability and maintainability
121
-
122
- ### Technical
123
- - All CI checks passing (Node 18, 20, 22)
124
- - Playwright browsers installed in CI for integration tests
125
- - No breaking changes or dependency updates
126
- - Focus on internal quality improvements
127
-
128
- ## [1.4.0] - 2025-12-29
129
-
130
- ### Added
131
- - **ZIP Bundle Export**: Export complete proof bundles with `qa360 history export <run-id> --bundle proof.zip`
132
- - Includes proof.json, report.pdf, run metadata, all artifacts, and verification instructions
133
- - Portable archive for sharing with stakeholders or archival
134
- - **Garbage Collection**: Clean up old runs with `qa360 history gc`
135
- - Configurable retention policy (default: keep last 10 runs)
136
- - Smart artifact reference tracking prevents orphaning
137
- - Dry-run mode for safe preview
138
- - Respects pinned runs (never deletes)
139
- - Comprehensive test coverage for export/gc features (14 new integration tests)
140
- - Detailed documentation and workflow examples in `docs/examples/history-export-gc.md`
141
-
142
- ### Changed
143
- - Enhanced `history` command documentation in README
144
- - Test suite expanded to 282 tests (all passing)
145
-
146
- ### Technical
147
- - Package size: 134.6 KB tarball, 616.3 KB unpacked
148
- - Dependencies: Added adm-zip for ZIP archive creation
149
- - 151 files in npm package
150
- - All CI checks passing (Node 18, 20, 22)
151
-
152
- ## [1.0.1] - 2025-12-26
153
-
154
- ### Added
155
- - Connected `qa360 run` command to Phase3Runner
156
- - Connected `qa360 verify` command to Ed25519 verifier
157
- - Added `verifyPhase3Proof()` function for proof verification
158
- - Jest mock for Playwright to fix Node 18 ESM issues
159
- - Documentation for ZAP DAST adapter (real implementation)
160
-
161
- ### Fixed
162
- - ESM/Jest compatibility with inline SQL schema
163
- - Workspace dependency resolution for qa360-core
164
- - Playwright dynamic import errors in Jest
165
- - Lazy loading for test adapters to prevent Jest worker crashes
166
-
167
- ### Changed
168
- - Updated test count badge (291 → 412 tests)
169
- - Documentation reflects actual project state
170
- - ZAP DAST documented as real implementation (not mock)
171
- - Phase status updated: Phases 1-6 marked as complete
172
- - Adapter count corrected (6 → 7 adapters)
173
-
174
- ### Technical
175
- - 412 tests passing across 32 test suites
176
- - CI green on Node 18, 20, 22
177
- - Trust Score calculation with Ed25519 signatures
178
- - Phase3Runner orchestration complete
179
-
180
- ## [1.0.0] - 2024-12-25
181
-
182
- ### 🎉 First Stable Release
183
-
184
- QA360 transforms software testing into cryptographically signed, verifiable proofs.
185
-
186
- ### Added
187
-
188
- #### Core Features
189
- - **Proof System**: Ed25519 cryptographic signatures for test results
190
- - **Evidence Vault**: SQLite-based storage with content-addressable system (CAS)
191
- - **Secrets Management**: AES-256-GCM encrypted secrets storage
192
- - **Security Redactor**: PII masking for logs and outputs
193
-
194
- #### CLI Commands
195
- - `qa360 doctor` - System health check with auto-fix capabilities
196
- - `qa360 verify` - Cryptographic proof verification
197
- - `qa360 run` - Test pack execution (in development)
198
- - `qa360 serve` - Local observability server
199
- - `qa360 report` - Report generation (HTML, JSON, PDF, Markdown)
200
- - `qa360 secrets` - Encrypted secrets management
201
-
202
- #### Adapters (OOTB)
203
- - Playwright API adapter - REST/GraphQL smoke tests
204
- - Playwright UI adapter - UI testing with accessibility (axe-core)
205
- - K6 adapter - Performance/load testing
206
- - Semgrep adapter - SAST security scanning
207
- - Gitleaks adapter - Secret detection
208
- - ZAP adapter - DAST security scanning
209
- - OSV adapter - Dependency vulnerability scanning
210
-
211
- #### MCP Integration
212
- - Model Context Protocol server with 23 tools
213
- - integration
214
- - Zero-friction CLI for AI assistants
215
-
216
- ### Infrastructure
217
- - Monorepo structure with pnpm workspaces
218
- - TypeScript 5+ with strict mode
219
- - Jest testing framework (291 tests, ~55% coverage)
220
- - GitHub Actions CI (Node 18, 20, 22)
221
- - Cross-platform support (Windows, macOS, Linux)
222
-
223
- ### Security
224
- - Ed25519 digital signatures (tweetnacl)
225
- - SHA-256 content hashing
226
- - AES-256-GCM secret encryption
227
- - JSON Schema validation (AJV 2020-12)
228
-
229
- ## [0.9.0] - 2024-12-23
230
-
231
- ### Added
232
- - Initial beta release
233
- - Core proof generation engine
234
- - Basic CLI commands (doctor, verify)
235
- - Evidence vault implementation
236
- - Secrets management system
237
-
238
- ### Changed
239
- - Monorepo consolidation
240
- - MCP package unification (2 → 1)
241
- - Workspace cleanup
242
-
243
- ---
244
-
245
- ## Migration Guide
246
-
247
- ### From 0.9.x to 1.0.0
248
-
249
- No breaking changes. Simply update:
250
-
251
- ```bash
252
- npm update @qa360/cli@1.0.0
253
- ```
254
-
255
- ---
256
-
257
- ## Links
258
-
259
- - **Documentation**: https://qa360.ai
260
- - **Repository**: https://github.com/xyqotech/qa360
261
- - **Issues**: https://github.com/xyqotech/qa360/issues
262
- - **NPM**: https://www.npmjs.com/package/@qa360/cli
package/CONTRIBUTING.md DELETED
@@ -1,273 +0,0 @@
1
- # Contributing to QA360
2
-
3
- ## 🚀 IMPORTANT - AI INTEGRATION IN PROGRESS
4
-
5
- **Status**: Phases 1-3 terminées | Phase 4 en préparation
6
-
7
- QA360 est en cours de **transformation AI-native** avec Ollama (100% gratuit, local).
8
-
9
- **Progression**: Voir [`docs/OLLAMA_REFACTORING_ROADMAP.md`](./docs/OLLAMA_REFACTORING_ROADMAP.md)
10
-
11
- ---
12
-
13
- ## Mission Statement
14
-
15
- QA360 transforms software testing into **verifiable, signed, and traceable proofs**.
16
-
17
- Our goal: Make quality **executable, measurable, and legally provable** while remaining **simple, portable, and sovereign**.
18
-
19
- ## 🔄 Architecture Pivot (2025)
20
-
21
- ### Bilan des Phases Terminées
22
-
23
- | Phase | Composant | Tests | Statut |
24
- |-------|-----------|-------|--------|
25
- | **Phase 1** | Ollama Provider | 96 | ✅ Terminé |
26
- | **Phase 2** | Auth Module (9 providers) | 92 | ✅ Terminé |
27
- | **Phase 3** | Pack Validation | 210 | ✅ Terminé |
28
-
29
- **Total Phases 1-3**: 398 tests ajoutés
30
-
31
- ### Ce qui a changé
32
-
33
- | Aspect | Avant | Après |
34
- |--------|-------|-------|
35
- | **AI Provider** | Non | OllamaProvider (retry, timeout) |
36
- | **Test Discovery** | Manuel (pack.yml) | TestDiscoverer (auto-détection) |
37
- | **Authentification** | Secrets chiffrés simples | 9 providers (JWT, OAuth2, TOTP, Cloud, UI Login) |
38
- | **Pack Format** | Simple (array-based) | Complet (object-based + auth profiles) |
39
- | **Validation** | PackValidator basic | PackValidator (36 codes d'erreur) |
40
-
41
- ### Ce qui est PRÉSERVÉ (Le cœur de QA360)
42
-
43
- ✅ **Proof System** - Signatures Ed25519, vérification, canonicalisation
44
- ✅ **Evidence Vault** - SQLite + CAS, stockage immuable
45
- ✅ **Pack System** - Configuration déclarative
46
- ✅ **Security Redactor** - Protection des secrets
47
- ✅ **Adapters** - Playwright, k6, Semgrep, ZAP, Gitleaks, OSV
48
-
49
- ### Prochaines Phases
50
-
51
- | Phase | Sujet | Statut |
52
- |-------|-------|--------|
53
- | **Phase 4** | AI Test Generation | ⏳ À faire |
54
- | **Phase 5** | Integration & Polish | ⏳ À faire |
55
-
56
- ---
57
-
58
- ## Development Principles
59
-
60
- ### 📌 Versioning System
61
-
62
- **IMPORTANT**: QA360 uses **Node.js-style versioning** (Major.Minor.Patch).
63
-
64
- Example: `v1.4.5` (similar to Node.js `v18.20.5`)
65
-
66
- - **Major** (X.0.0): Breaking changes, major rewrites
67
- - **Minor** (1.X.0): New features, backward compatible
68
- - **Patch** (1.4.X): Bug fixes, minor improvements
69
-
70
- Always reference versions with the **`v`** prefix in documentation and commits.
71
-
72
- ### 🎯 Core Values
73
- - **Simplicity**: One command, one file, one proof
74
- - **Auditability**: Every action is traceable and verifiable
75
- - **Elegance**: Clean code that speaks for itself
76
- - **Portability**: Works everywhere, depends on nothing external
77
- - **AI-Native**: Utilise Ollama pour une génération intelligente
78
- - **Auth-Complete**: Gère tous les scénarios d'authentification
79
-
80
- ### 🏗️ Architecture Guidelines
81
- - **Local-first**: Ollama runs locally, no cloud dependency for AI
82
- - **BYOCI**: Bring Your Own CI/CD integration
83
- - **Monorepo**: All components in one repository
84
- - **TypeScript**: Type safety and developer experience
85
- - **AI-Enhanced**: Generation de code via Ollama (DeepSeek Coder)
86
-
87
- ---
88
-
89
- ## Development Workflow
90
-
91
- ### Branch Strategy (SIMPLIFIED)
92
-
93
- ```
94
- main ← Production releases (STABLE)
95
-
96
- develop ← Development branch (WORK HERE)
97
- ```
98
-
99
- **IMPORTANT - Workflow simplifié**:
100
- 1. Travailler **directement sur `develop`**
101
- 2. Committer et pousser sur `develop`
102
- 3. Vérifier que la **CI est verte** sur `develop`
103
- 4. Merger `develop` vers `main` **uniquement quand tout est vert**
104
- 5. Vérifier que la **CI est aussi verte** sur `main`
105
- 6. **Supprimer toutes les autres branches** (pas de `feature/*`, pas de confusion)
106
-
107
- ### Workflow complet
108
-
109
- ```bash
110
- # 1. S'assurer d'être sur develop
111
- git checkout develop
112
- git pull origin develop
113
-
114
- # 2. Travailler sur develop
115
- # ... faire les modifications ...
116
-
117
- # 3. Committer
118
- git add .
119
- git commit -m "fix(scope): description"
120
-
121
- # 4. Pusher
122
- git push origin develop
123
-
124
- # 5. Attendre que la CI soit verte sur develop
125
-
126
- # 6. Merger vers main
127
- git checkout main
128
- git pull origin main
129
- git merge develop
130
- git push origin main
131
-
132
- # 7. Vérifier que la CI est verte sur main
133
-
134
- # 8. Nettoyer les branches locales (supprimer feature/*)
135
- git branch | grep -E 'feature/' | xargs git branch -D 2>/dev/null || true
136
- ```
137
-
138
- ### ⚠️ Règles strictes
139
-
140
- **OBLIGATOIRE**:
141
- - ✅ Travailler sur `develop` uniquement
142
- - ✅ CI verte sur `develop` avant merge vers `main`
143
- - ✅ CI verte sur `main` après merge
144
- - ✅ Supprimer les branches `feature/*` locales et distantes
145
-
146
- **INTERDIT**:
147
- - ❌ Créer des branches `feature/*`
148
- - ❌ Travailler directement sur `main`
149
- - ❌ Merge vers `main` si la CI n'est pas verte
150
- - ❌ Laisser des branches orphelines
151
-
152
- ### Commit Convention
153
-
154
- Nous utilisons [Conventional Commits](https://www.conventionalcommits.org/):
155
-
156
- ```
157
- feat(ai): add Ollama provider with DeepSeek Coder support
158
- feat(auth): implement JWT manager with auto-refresh
159
- feat(cli): add generate command for AI test generation
160
- fix(core): resolve signature verification edge case
161
- refactor(adapters): inject auth manager into playwright adapter
162
- docs(auth): add authentication guide
163
- test(vault): add evidence storage integration tests
164
- chore(deps): add ollama dependency
165
- ```
166
-
167
- ### ⛔ Publication NPM - DÉACTIVÉ
168
-
169
- **ATTENTION**: Les publications NPM sont temporairement désactivées pendant la refactorisation.
170
-
171
- Le workflow `.github/workflows/release.yml` est désactivé via `if: false`.
172
-
173
- **Ne PAS**:
174
- - ❌ Créer de tag `v*` sur `main`
175
- - ❌ Publier sur npm
176
- - ❌ Incrémenter la version dans `package.json`
177
-
178
- **Oui, continuez à**:
179
- - ✅ Travailler sur `develop`
180
- - ✅ Committer et pousser régulièrement
181
- - ✅ Faire des commits conventionnels
182
-
183
- ---
184
-
185
- ## Phase-by-Phase Development
186
-
187
- **Phase actuelle**: **Phase 3 terminée, Phase 4 en préparation**
188
-
189
- | Phase | Status | Description | Tests |
190
- |-------|--------|-------------|-------|
191
- | **Phase 1** | ✅ Terminé | Ollama Provider, TestDiscoverer, PackConfig | 96 |
192
- | **Phase 2** | ✅ Terminé | Auth Module (9 providers) | 92 |
193
- | **Phase 3** | ✅ Terminé | Pack Validation, Migration, Loader | 210 |
194
- | **Phase 4** | ⏳ À faire | AI Test Generation | - |
195
- | **Phase 5** | ⏳ À faire | Integration & Polish | - |
196
-
197
- **Tests Globaux**: 1859 passing (CLI: 358, Core: 1455, MCP: 46)
198
-
199
- ---
200
-
201
- ## Code Standards
202
-
203
- ### TypeScript Configuration
204
- - Strict mode enabled
205
- - No `any` types allowed
206
- - Comprehensive error handling
207
-
208
- ### Testing Requirements
209
- - Unit tests for all core functions
210
- - Integration tests for CLI commands
211
- - End-to-end tests for complete workflows
212
-
213
- ### Documentation Standards
214
- - Every module has a README.md
215
- - Usage examples for all public APIs
216
- - Error messages are pedagogical and guiding
217
-
218
- ---
219
-
220
- ## Getting Started
221
-
222
- ### Prerequisites
223
-
224
- **Obligatoire**:
225
- - Node.js 18+
226
- - TypeScript 5+
227
- - pnpm 9+
228
-
229
- **Optionnel mais recommandé pour le développement**:
230
- - Ollama (pour IA locale) - `brew install ollama`
231
- - DeepSeek Coder model - `ollama pull deepseek-coder`
232
-
233
- ### Setup
234
- ```bash
235
- git clone <repository>
236
- cd QA360
237
- pnpm install
238
- pnpm run build
239
- pnpm test
240
- ```
241
-
242
- ### Ollama Setup (pour développement IA)
243
- ```bash
244
- # Installer Ollama
245
- brew install ollama # macOS
246
- # Ou https://ollama.com pour d'autres OS
247
-
248
- # Démarrer Ollama
249
- ollama serve
250
-
251
- # Télécharger le modèle de code
252
- ollama pull deepseek-coder
253
-
254
- # Vérifier
255
- ollama list
256
- ```
257
-
258
- ---
259
-
260
- ## Running Tests
261
-
262
- ```bash
263
- pnpm test # Tous les tests
264
- pnpm test:core # Tests core uniquement
265
- pnpm test:cli # Tests CLI uniquement
266
- pnpm lint # Code quality
267
- pnpm type-check # TypeScript validation
268
- pnpm test:all # Tout (lint + type-check + test)
269
- ```
270
-
271
- ---
272
-
273
- ## Code Standards