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.
- package/README.md +155 -262
- package/{cli/dist → dist}/commands/ai.js +1 -1
- package/{cli/dist → dist}/commands/coverage.js +1 -1
- package/{cli/dist → dist}/commands/crawl.d.ts +12 -1
- package/{cli/dist → dist}/commands/crawl.js +70 -9
- package/{cli/dist → dist}/commands/doctor.js +2 -2
- package/{cli/dist → dist}/commands/explain.js +2 -2
- package/{cli/dist → dist}/commands/flakiness.js +1 -1
- package/{cli/dist → dist}/commands/generate.js +1 -1
- package/{cli/dist → dist}/commands/history.js +1 -1
- package/{cli/dist → dist}/commands/monitor.js +3 -3
- package/{cli/dist → dist}/commands/ollama.js +1 -1
- package/{cli/dist → dist}/commands/pack.js +2 -2
- package/{cli/dist → dist}/commands/regression.js +1 -1
- package/{cli/dist → dist}/commands/repair.js +1 -1
- package/{cli/dist → dist}/commands/retry.js +1 -1
- package/{cli/dist → dist}/commands/run.d.ts +1 -1
- package/{cli/dist → dist}/commands/run.js +1 -1
- package/{cli/dist → dist}/commands/secrets.js +1 -1
- package/{cli/dist → dist}/commands/serve.js +1 -1
- package/{cli/dist → dist}/commands/slo.js +1 -1
- package/{cli/dist → dist}/commands/verify.js +1 -1
- package/{cli/dist → dist}/core/adapters/playwright-native-api.d.ts +2 -0
- package/{cli/dist → dist}/core/adapters/playwright-native-api.js +20 -1
- package/{cli/dist → dist}/core/adapters/playwright-ui.d.ts +21 -0
- package/dist/core/adapters/playwright-ui.js +2050 -0
- package/{cli/dist → dist}/core/ai/ollama-provider.js +15 -3
- package/{cli/dist → dist}/core/artifacts/ui-artifacts.js +24 -4
- package/dist/core/auth/backup-codes-provider.d.ts +91 -0
- package/dist/core/auth/backup-codes-provider.js +215 -0
- package/{cli/dist → dist}/core/auth/basic-auth-provider.d.ts +6 -0
- package/{cli/dist → dist}/core/auth/basic-auth-provider.js +24 -6
- package/dist/core/auth/digest-auth-provider.d.ts +116 -0
- package/dist/core/auth/digest-auth-provider.js +244 -0
- package/dist/core/auth/hcaptcha-handler.d.ts +103 -0
- package/dist/core/auth/hcaptcha-handler.js +288 -0
- package/{cli/dist → dist}/core/auth/index.d.ts +81 -4
- package/{cli/dist → dist}/core/auth/index.js +15 -1
- package/dist/core/auth/oauth-handler.d.ts +408 -0
- package/dist/core/auth/oauth-handler.js +636 -0
- package/{cli/dist → dist}/core/auth/oauth2-provider.d.ts +9 -0
- package/dist/core/auth/oauth2-provider.js +227 -0
- package/dist/core/auth/otp-provider.d.ts +93 -0
- package/dist/core/auth/otp-provider.js +288 -0
- package/dist/core/auth/recaptcha-handler.d.ts +119 -0
- package/dist/core/auth/recaptcha-handler.js +301 -0
- package/dist/core/auth/remember-me-handler.d.ts +142 -0
- package/dist/core/auth/remember-me-handler.js +255 -0
- package/dist/core/auth/saml-handler.d.ts +173 -0
- package/dist/core/auth/saml-handler.js +364 -0
- package/dist/core/auth/webauthn-handler.d.ts +182 -0
- package/dist/core/auth/webauthn-handler.js +310 -0
- package/dist/core/crawler/advanced-interactions.d.ts +342 -0
- package/dist/core/crawler/advanced-interactions.js +1069 -0
- package/dist/core/crawler/blob-url-download-handler.d.ts +145 -0
- package/dist/core/crawler/blob-url-download-handler.js +392 -0
- package/dist/core/crawler/consent-handler.d.ts +49 -0
- package/dist/core/crawler/consent-handler.js +258 -0
- package/dist/core/crawler/cookie-manager.d.ts +166 -0
- package/dist/core/crawler/cookie-manager.js +353 -0
- package/dist/core/crawler/coop-coep-handler.d.ts +136 -0
- package/dist/core/crawler/coop-coep-handler.js +338 -0
- package/dist/core/crawler/csp-handler.d.ts +151 -0
- package/dist/core/crawler/csp-handler.js +415 -0
- package/dist/core/crawler/download-handler.d.ts +155 -0
- package/dist/core/crawler/download-handler.js +370 -0
- package/dist/core/crawler/email-testing-handler.d.ts +214 -0
- package/dist/core/crawler/email-testing-handler.js +398 -0
- package/dist/core/crawler/error-tracking-handler.d.ts +177 -0
- package/dist/core/crawler/error-tracking-handler.js +378 -0
- package/dist/core/crawler/form-handler.d.ts +100 -0
- package/dist/core/crawler/form-handler.js +465 -0
- package/dist/core/crawler/framework-wait-handler.d.ts +96 -0
- package/dist/core/crawler/framework-wait-handler.js +464 -0
- package/dist/core/crawler/geolocation-handler.d.ts +112 -0
- package/dist/core/crawler/geolocation-handler.js +276 -0
- package/dist/core/crawler/index.d.ts +78 -0
- package/{cli/dist → dist}/core/crawler/index.js +74 -1
- package/dist/core/crawler/intelligent-selector-generator.d.ts +164 -0
- package/dist/core/crawler/intelligent-selector-generator.js +612 -0
- package/{cli/dist → dist}/core/crawler/journey-generator.js +44 -1
- package/{cli/dist → dist}/core/crawler/page-analyzer.d.ts +16 -1
- package/{cli/dist → dist}/core/crawler/page-analyzer.js +469 -17
- package/dist/core/crawler/permissions-handler.d.ts +112 -0
- package/dist/core/crawler/permissions-handler.js +236 -0
- package/dist/core/crawler/permissions-policy-handler.d.ts +113 -0
- package/dist/core/crawler/permissions-policy-handler.js +402 -0
- package/dist/core/crawler/presets.d.ts +100 -0
- package/dist/core/crawler/presets.js +887 -0
- package/dist/core/crawler/repl-debug-handler.d.ts +105 -0
- package/dist/core/crawler/repl-debug-handler.js +552 -0
- package/dist/core/crawler/reporting-api-handler.d.ts +212 -0
- package/dist/core/crawler/reporting-api-handler.js +344 -0
- package/{cli/dist → dist}/core/crawler/selector-generator.d.ts +9 -0
- package/{cli/dist → dist}/core/crawler/selector-generator.js +99 -23
- package/dist/core/crawler/site-profiler.d.ts +89 -0
- package/dist/core/crawler/site-profiler.js +290 -0
- package/dist/core/crawler/sourcemaps-handler.d.ts +144 -0
- package/dist/core/crawler/sourcemaps-handler.js +420 -0
- package/dist/core/crawler/stacked-modals-handler.d.ts +118 -0
- package/dist/core/crawler/stacked-modals-handler.js +429 -0
- package/dist/core/crawler/trusted-types-handler.d.ts +149 -0
- package/dist/core/crawler/trusted-types-handler.js +413 -0
- package/{cli/dist → dist}/core/crawler/types.d.ts +68 -2
- package/dist/core/crawler/wait-strategies.d.ts +108 -0
- package/dist/core/crawler/wait-strategies.js +399 -0
- package/dist/core/fixtures/factories.d.ts +180 -0
- package/dist/core/fixtures/factories.js +279 -0
- package/dist/core/fixtures/index.d.ts +6 -0
- package/dist/core/fixtures/index.js +6 -0
- package/{cli/dist → dist}/core/generation/crawler-pack-generator.d.ts +13 -3
- package/dist/core/generation/crawler-pack-generator.js +232 -0
- package/{cli/dist → dist}/core/generation/index.d.ts +2 -0
- package/{cli/dist → dist}/core/generation/index.js +2 -0
- package/{cli/dist → dist}/core/index.d.ts +2 -0
- package/{cli/dist → dist}/core/index.js +4 -0
- package/dist/core/network/index.d.ts +7 -0
- package/dist/core/network/index.js +7 -0
- package/dist/core/network/network-manager.d.ts +237 -0
- package/dist/core/network/network-manager.js +343 -0
- package/dist/core/network/network-simulator.d.ts +158 -0
- package/dist/core/network/network-simulator.js +261 -0
- package/{cli/dist → dist}/core/pack/validator.js +2 -2
- package/{cli/dist → dist}/core/pack-v2/migrator.d.ts +5 -0
- package/{cli/dist → dist}/core/pack-v2/migrator.js +81 -6
- package/{cli/dist → dist}/core/pack-v2/validator.js +4 -3
- package/{cli/dist → dist}/core/pom/base-page.js +1 -1
- package/{cli/dist → dist}/core/pom/loader.js +1 -1
- package/dist/core/reporting/index.d.ts +9 -0
- package/dist/core/reporting/index.js +10 -0
- package/dist/core/reporting/junit-reporter.d.ts +114 -0
- package/dist/core/reporting/junit-reporter.js +306 -0
- package/{cli/dist → dist}/core/runner/e2e-helpers.d.ts +1 -1
- package/{cli/dist → dist}/core/runner/e2e-helpers.js +2 -2
- package/{cli/dist → dist}/core/runner/phase3-runner.d.ts +3 -0
- package/{cli/dist → dist}/core/runner/phase3-runner.js +45 -14
- package/dist/core/sharding/test-sharding.d.ts +137 -0
- package/dist/core/sharding/test-sharding.js +233 -0
- package/dist/core/storage/cookie-manager.d.ts +160 -0
- package/dist/core/storage/cookie-manager.js +268 -0
- package/dist/core/storage/index.d.ts +7 -0
- package/dist/core/storage/index.js +7 -0
- package/dist/core/storage/storage-helpers.d.ts +138 -0
- package/dist/core/storage/storage-helpers.js +315 -0
- package/dist/core/test-helpers/index.d.ts +6 -0
- package/dist/core/test-helpers/index.js +6 -0
- package/dist/core/test-helpers/state-reset.d.ts +119 -0
- package/dist/core/test-helpers/state-reset.js +234 -0
- package/{cli/dist → dist}/core/types/pack-v1.d.ts +15 -2
- package/{cli/dist → dist}/core/types/pack-v2.d.ts +1 -1
- package/dist/core/upload/chunked-uploader.d.ts +150 -0
- package/dist/core/upload/chunked-uploader.js +289 -0
- package/dist/core/upload/index.d.ts +11 -0
- package/dist/core/upload/index.js +8 -0
- package/dist/core/upload/mime-validator.d.ts +119 -0
- package/dist/core/upload/mime-validator.js +373 -0
- package/dist/core/upload/presigned-uploader.d.ts +118 -0
- package/dist/core/upload/presigned-uploader.js +274 -0
- package/dist/core/utils/device-emulation.d.ts +194 -0
- package/dist/core/utils/device-emulation.js +380 -0
- package/dist/core/utils/index.d.ts +8 -0
- package/dist/core/utils/index.js +8 -0
- package/dist/core/utils/retry.d.ts +145 -0
- package/dist/core/utils/retry.js +242 -0
- package/dist/core/utils/smart-wait.d.ts +133 -0
- package/dist/core/utils/smart-wait.js +417 -0
- package/dist/core/visual/index.d.ts +7 -0
- package/dist/core/visual/index.js +7 -0
- package/dist/core/visual/pixel-diff.d.ts +87 -0
- package/dist/core/visual/pixel-diff.js +213 -0
- package/dist/core/visual/screenshot-helper.d.ts +130 -0
- package/dist/core/visual/screenshot-helper.js +223 -0
- package/{cli/dist → dist}/utils/config.d.ts +1 -1
- package/examples/README.md +160 -0
- package/examples/accessibility.yml +48 -0
- package/examples/api-basic.yml +27 -0
- package/examples/complete.yml +146 -0
- package/examples/crawler.yml +38 -0
- package/examples/fullstack.yml +78 -0
- package/examples/security.yml +58 -0
- package/examples/ui-advanced.yml +49 -0
- package/examples/ui-basic.yml +24 -0
- package/package.json +33 -67
- package/CHANGELOG.md +0 -262
- package/CONTRIBUTING.md +0 -273
- package/QUICK_START.md +0 -191
- package/cli/CHANGELOG.md +0 -84
- package/cli/LICENSE +0 -24
- package/cli/README.md +0 -222
- package/cli/dist/core/adapters/playwright-ui.js +0 -864
- package/cli/dist/core/auth/oauth2-provider.js +0 -114
- package/cli/dist/core/coverage/analyzer.d.ts +0 -101
- package/cli/dist/core/coverage/analyzer.js +0 -415
- package/cli/dist/core/coverage/collector.d.ts +0 -74
- package/cli/dist/core/coverage/collector.js +0 -459
- package/cli/dist/core/coverage/config.d.ts +0 -37
- package/cli/dist/core/coverage/config.js +0 -156
- package/cli/dist/core/coverage/index.d.ts +0 -11
- package/cli/dist/core/coverage/index.js +0 -15
- package/cli/dist/core/coverage/types.d.ts +0 -267
- package/cli/dist/core/coverage/types.js +0 -6
- package/cli/dist/core/coverage/vault.d.ts +0 -95
- package/cli/dist/core/coverage/vault.js +0 -405
- package/cli/dist/core/crawler/index.d.ts +0 -57
- package/cli/dist/core/fixtures/index.d.ts +0 -8
- package/cli/dist/core/fixtures/index.js +0 -8
- package/cli/dist/core/generation/crawler-pack-generator.js +0 -231
- package/cli/dist/core/reporting/index.d.ts +0 -6
- package/cli/dist/core/reporting/index.js +0 -6
- package/cli/dist/core/visual/index.d.ts +0 -6
- package/cli/dist/core/visual/index.js +0 -6
- package/cli/package.json +0 -76
- package/core/LICENSE +0 -24
- package/core/README.md +0 -64
- package/core/package.json +0 -81
- package/core/schemas/pack.schema.json +0 -236
- /package/{cli/bin → bin}/qa360.js +0 -0
- /package/{cli/dist → dist}/cli-minimal.d.ts +0 -0
- /package/{cli/dist → dist}/cli-minimal.js +0 -0
- /package/{cli/dist → dist}/commands/ai.d.ts +0 -0
- /package/{cli/dist → dist}/commands/ask.d.ts +0 -0
- /package/{cli/dist → dist}/commands/ask.js +0 -0
- /package/{cli/dist → dist}/commands/coverage.d.ts +0 -0
- /package/{cli/dist → dist}/commands/doctor.d.ts +0 -0
- /package/{cli/dist → dist}/commands/examples.d.ts +0 -0
- /package/{cli/dist → dist}/commands/examples.js +0 -0
- /package/{cli/dist → dist}/commands/explain.d.ts +0 -0
- /package/{cli/dist → dist}/commands/flakiness.d.ts +0 -0
- /package/{cli/dist → dist}/commands/generate.d.ts +0 -0
- /package/{cli/dist → dist}/commands/history.d.ts +0 -0
- /package/{cli/dist → dist}/commands/init.d.ts +0 -0
- /package/{cli/dist → dist}/commands/init.js +0 -0
- /package/{cli/dist → dist}/commands/monitor.d.ts +0 -0
- /package/{cli/dist → dist}/commands/ollama.d.ts +0 -0
- /package/{cli/dist → dist}/commands/pack.d.ts +0 -0
- /package/{cli/dist → dist}/commands/regression.d.ts +0 -0
- /package/{cli/dist → dist}/commands/repair.d.ts +0 -0
- /package/{cli/dist → dist}/commands/report.d.ts +0 -0
- /package/{cli/dist → dist}/commands/report.js +0 -0
- /package/{cli/dist → dist}/commands/retry.d.ts +0 -0
- /package/{cli/dist → dist}/commands/scan.d.ts +0 -0
- /package/{cli/dist → dist}/commands/scan.js +0 -0
- /package/{cli/dist → dist}/commands/secrets.d.ts +0 -0
- /package/{cli/dist → dist}/commands/serve.d.ts +0 -0
- /package/{cli/dist → dist}/commands/slo.d.ts +0 -0
- /package/{cli/dist → dist}/commands/verify.d.ts +0 -0
- /package/{cli/dist → dist}/core/adapters/gitleaks-secrets.d.ts +0 -0
- /package/{cli/dist → dist}/core/adapters/gitleaks-secrets.js +0 -0
- /package/{cli/dist → dist}/core/adapters/jest-adapter.d.ts +0 -0
- /package/{cli/dist → dist}/core/adapters/jest-adapter.js +0 -0
- /package/{cli/dist → dist}/core/adapters/k6-perf.d.ts +0 -0
- /package/{cli/dist → dist}/core/adapters/k6-perf.js +0 -0
- /package/{cli/dist → dist}/core/adapters/osv-deps.d.ts +0 -0
- /package/{cli/dist → dist}/core/adapters/osv-deps.js +0 -0
- /package/{cli/dist → dist}/core/adapters/playwright-native-adapter.d.ts +0 -0
- /package/{cli/dist → dist}/core/adapters/playwright-native-adapter.js +0 -0
- /package/{cli/dist → dist}/core/adapters/pytest-adapter.d.ts +0 -0
- /package/{cli/dist → dist}/core/adapters/pytest-adapter.js +0 -0
- /package/{cli/dist → dist}/core/adapters/semgrep-sast.d.ts +0 -0
- /package/{cli/dist → dist}/core/adapters/semgrep-sast.js +0 -0
- /package/{cli/dist → dist}/core/adapters/unit-test-types.d.ts +0 -0
- /package/{cli/dist → dist}/core/adapters/unit-test-types.js +0 -0
- /package/{cli/dist → dist}/core/adapters/vitest-adapter.d.ts +0 -0
- /package/{cli/dist → dist}/core/adapters/vitest-adapter.js +0 -0
- /package/{cli/dist → dist}/core/adapters/zap-dast.d.ts +0 -0
- /package/{cli/dist → dist}/core/adapters/zap-dast.js +0 -0
- /package/{cli/dist → dist}/core/ai/anthropic-provider.d.ts +0 -0
- /package/{cli/dist → dist}/core/ai/anthropic-provider.js +0 -0
- /package/{cli/dist → dist}/core/ai/deepseek-provider.d.ts +0 -0
- /package/{cli/dist → dist}/core/ai/deepseek-provider.js +0 -0
- /package/{cli/dist → dist}/core/ai/index.d.ts +0 -0
- /package/{cli/dist → dist}/core/ai/index.js +0 -0
- /package/{cli/dist → dist}/core/ai/llm-client.d.ts +0 -0
- /package/{cli/dist → dist}/core/ai/llm-client.js +0 -0
- /package/{cli/dist → dist}/core/ai/mock-provider.d.ts +0 -0
- /package/{cli/dist → dist}/core/ai/mock-provider.js +0 -0
- /package/{cli/dist → dist}/core/ai/ollama-provider.d.ts +0 -0
- /package/{cli/dist → dist}/core/ai/openai-provider.d.ts +0 -0
- /package/{cli/dist → dist}/core/ai/openai-provider.js +0 -0
- /package/{cli/dist → dist}/core/ai/provider-factory.d.ts +0 -0
- /package/{cli/dist → dist}/core/ai/provider-factory.js +0 -0
- /package/{cli/dist → dist}/core/artifacts/index.d.ts +0 -0
- /package/{cli/dist → dist}/core/artifacts/index.js +0 -0
- /package/{cli/dist → dist}/core/artifacts/ui-artifacts.d.ts +0 -0
- /package/{cli/dist → dist}/core/assertions/engine.d.ts +0 -0
- /package/{cli/dist → dist}/core/assertions/engine.js +0 -0
- /package/{cli/dist → dist}/core/assertions/index.d.ts +0 -0
- /package/{cli/dist → dist}/core/assertions/index.js +0 -0
- /package/{cli/dist → dist}/core/assertions/types.d.ts +0 -0
- /package/{cli/dist → dist}/core/assertions/types.js +0 -0
- /package/{cli/dist → dist}/core/auth/api-key-provider.d.ts +0 -0
- /package/{cli/dist → dist}/core/auth/api-key-provider.js +0 -0
- /package/{cli/dist → dist}/core/auth/aws-iam-provider.d.ts +0 -0
- /package/{cli/dist → dist}/core/auth/aws-iam-provider.js +0 -0
- /package/{cli/dist → dist}/core/auth/azure-ad-provider.d.ts +0 -0
- /package/{cli/dist → dist}/core/auth/azure-ad-provider.js +0 -0
- /package/{cli/dist → dist}/core/auth/gcp-adc-provider.d.ts +0 -0
- /package/{cli/dist → dist}/core/auth/gcp-adc-provider.js +0 -0
- /package/{cli/dist → dist}/core/auth/jwt-provider.d.ts +0 -0
- /package/{cli/dist → dist}/core/auth/jwt-provider.js +0 -0
- /package/{cli/dist → dist}/core/auth/manager.d.ts +0 -0
- /package/{cli/dist → dist}/core/auth/manager.js +0 -0
- /package/{cli/dist → dist}/core/auth/totp-provider.d.ts +0 -0
- /package/{cli/dist → dist}/core/auth/totp-provider.js +0 -0
- /package/{cli/dist → dist}/core/auth/ui-login-provider.d.ts +0 -0
- /package/{cli/dist → dist}/core/auth/ui-login-provider.js +0 -0
- /package/{cli/dist → dist}/core/cache/index.d.ts +0 -0
- /package/{cli/dist → dist}/core/cache/index.js +0 -0
- /package/{cli/dist → dist}/core/cache/lru-cache.d.ts +0 -0
- /package/{cli/dist → dist}/core/cache/lru-cache.js +0 -0
- /package/{cli/dist/core → dist}/core/coverage/analyzer.d.ts +0 -0
- /package/{cli/dist/core → dist}/core/coverage/analyzer.js +0 -0
- /package/{cli/dist/core → dist}/core/coverage/collector.d.ts +0 -0
- /package/{cli/dist/core → dist}/core/coverage/collector.js +0 -0
- /package/{cli/dist/core → dist}/core/coverage/config.d.ts +0 -0
- /package/{cli/dist/core → dist}/core/coverage/config.js +0 -0
- /package/{cli/dist/core → dist}/core/coverage/index.d.ts +0 -0
- /package/{cli/dist/core → dist}/core/coverage/index.js +0 -0
- /package/{cli/dist/core → dist}/core/coverage/types.d.ts +0 -0
- /package/{cli/dist/core → dist}/core/coverage/types.js +0 -0
- /package/{cli/dist/core → dist}/core/coverage/vault.d.ts +0 -0
- /package/{cli/dist/core → dist}/core/coverage/vault.js +0 -0
- /package/{cli/dist → dist}/core/crawler/journey-generator.d.ts +0 -0
- /package/{cli/dist → dist}/core/crawler/types.js +0 -0
- /package/{cli/dist → dist}/core/dashboard/assets.d.ts +0 -0
- /package/{cli/dist → dist}/core/dashboard/assets.js +0 -0
- /package/{cli/dist → dist}/core/dashboard/index.d.ts +0 -0
- /package/{cli/dist → dist}/core/dashboard/index.js +0 -0
- /package/{cli/dist → dist}/core/dashboard/server.d.ts +0 -0
- /package/{cli/dist → dist}/core/dashboard/server.js +0 -0
- /package/{cli/dist → dist}/core/dashboard/types.d.ts +0 -0
- /package/{cli/dist → dist}/core/dashboard/types.js +0 -0
- /package/{cli/dist → dist}/core/discoverer/index.d.ts +0 -0
- /package/{cli/dist → dist}/core/discoverer/index.js +0 -0
- /package/{cli/dist → dist}/core/fixtures/loader.d.ts +0 -0
- /package/{cli/dist → dist}/core/fixtures/loader.js +0 -0
- /package/{cli/dist → dist}/core/fixtures/resolver.d.ts +0 -0
- /package/{cli/dist → dist}/core/fixtures/resolver.js +0 -0
- /package/{cli/dist → dist}/core/fixtures/types.d.ts +0 -0
- /package/{cli/dist → dist}/core/fixtures/types.js +0 -0
- /package/{cli/dist → dist}/core/flakiness/index.d.ts +0 -0
- /package/{cli/dist → dist}/core/flakiness/index.js +0 -0
- /package/{cli/dist → dist}/core/generation/code-formatter.d.ts +0 -0
- /package/{cli/dist → dist}/core/generation/code-formatter.js +0 -0
- /package/{cli/dist → dist}/core/generation/code-generator.d.ts +0 -0
- /package/{cli/dist → dist}/core/generation/code-generator.js +0 -0
- /package/{cli/dist → dist}/core/generation/generator.d.ts +0 -0
- /package/{cli/dist → dist}/core/generation/generator.js +0 -0
- /package/{cli/dist → dist}/core/generation/pack-generator.d.ts +0 -0
- /package/{cli/dist → dist}/core/generation/pack-generator.js +0 -0
- /package/{cli/dist → dist}/core/generation/prompt-builder.d.ts +0 -0
- /package/{cli/dist → dist}/core/generation/prompt-builder.js +0 -0
- /package/{cli/dist → dist}/core/generation/source-analyzer.d.ts +0 -0
- /package/{cli/dist → dist}/core/generation/source-analyzer.js +0 -0
- /package/{cli/dist → dist}/core/generation/test-optimizer.d.ts +0 -0
- /package/{cli/dist → dist}/core/generation/test-optimizer.js +0 -0
- /package/{cli/dist → dist}/core/generation/types.d.ts +0 -0
- /package/{cli/dist → dist}/core/generation/types.js +0 -0
- /package/{cli/dist → dist}/core/hooks/compose.d.ts +0 -0
- /package/{cli/dist → dist}/core/hooks/compose.js +0 -0
- /package/{cli/dist → dist}/core/hooks/runner.d.ts +0 -0
- /package/{cli/dist → dist}/core/hooks/runner.js +0 -0
- /package/{cli/dist → dist}/core/pack/migrator.d.ts +0 -0
- /package/{cli/dist → dist}/core/pack/migrator.js +0 -0
- /package/{cli/dist → dist}/core/pack/validator.d.ts +0 -0
- /package/{cli/dist → dist}/core/pack-v2/index.d.ts +0 -0
- /package/{cli/dist → dist}/core/pack-v2/index.js +0 -0
- /package/{cli/dist → dist}/core/pack-v2/loader.d.ts +0 -0
- /package/{cli/dist → dist}/core/pack-v2/loader.js +0 -0
- /package/{cli/dist → dist}/core/pack-v2/validator.d.ts +0 -0
- /package/{cli/dist → dist}/core/parallel/index.d.ts +0 -0
- /package/{cli/dist → dist}/core/parallel/index.js +0 -0
- /package/{cli/dist → dist}/core/parallel/parallel-runner.d.ts +0 -0
- /package/{cli/dist → dist}/core/parallel/parallel-runner.js +0 -0
- /package/{cli/dist → dist}/core/pom/base-page.d.ts +0 -0
- /package/{cli/dist → dist}/core/pom/index.d.ts +0 -0
- /package/{cli/dist → dist}/core/pom/index.js +0 -0
- /package/{cli/dist → dist}/core/pom/loader.d.ts +0 -0
- /package/{cli/dist → dist}/core/pom/types.d.ts +0 -0
- /package/{cli/dist → dist}/core/pom/types.js +0 -0
- /package/{cli/dist → dist}/core/proof/bundle.d.ts +0 -0
- /package/{cli/dist → dist}/core/proof/bundle.js +0 -0
- /package/{cli/dist → dist}/core/proof/canonicalize.d.ts +0 -0
- /package/{cli/dist → dist}/core/proof/canonicalize.js +0 -0
- /package/{cli/dist → dist}/core/proof/index.d.ts +0 -0
- /package/{cli/dist → dist}/core/proof/index.js +0 -0
- /package/{cli/dist → dist}/core/proof/schema.d.ts +0 -0
- /package/{cli/dist → dist}/core/proof/schema.js +0 -0
- /package/{cli/dist → dist}/core/proof/signer.d.ts +0 -0
- /package/{cli/dist → dist}/core/proof/signer.js +0 -0
- /package/{cli/dist → dist}/core/proof/verifier.d.ts +0 -0
- /package/{cli/dist → dist}/core/proof/verifier.js +0 -0
- /package/{cli/dist → dist}/core/regression/detector.d.ts +0 -0
- /package/{cli/dist → dist}/core/regression/detector.js +0 -0
- /package/{cli/dist → dist}/core/regression/index.d.ts +0 -0
- /package/{cli/dist → dist}/core/regression/index.js +0 -0
- /package/{cli/dist → dist}/core/regression/trend-analyzer.d.ts +0 -0
- /package/{cli/dist → dist}/core/regression/trend-analyzer.js +0 -0
- /package/{cli/dist → dist}/core/regression/types.d.ts +0 -0
- /package/{cli/dist → dist}/core/regression/types.js +0 -0
- /package/{cli/dist → dist}/core/regression/vault.d.ts +0 -0
- /package/{cli/dist → dist}/core/regression/vault.js +0 -0
- /package/{cli/dist → dist}/core/repair/engine/fixer.d.ts +0 -0
- /package/{cli/dist → dist}/core/repair/engine/fixer.js +0 -0
- /package/{cli/dist → dist}/core/repair/engine/suggestion-engine.d.ts +0 -0
- /package/{cli/dist → dist}/core/repair/engine/suggestion-engine.js +0 -0
- /package/{cli/dist → dist}/core/repair/index.d.ts +0 -0
- /package/{cli/dist → dist}/core/repair/index.js +0 -0
- /package/{cli/dist → dist}/core/repair/repairer.d.ts +0 -0
- /package/{cli/dist → dist}/core/repair/repairer.js +0 -0
- /package/{cli/dist → dist}/core/repair/types.d.ts +0 -0
- /package/{cli/dist → dist}/core/repair/types.js +0 -0
- /package/{cli/dist → dist}/core/repair/utils/error-analyzer.d.ts +0 -0
- /package/{cli/dist → dist}/core/repair/utils/error-analyzer.js +0 -0
- /package/{cli/dist → dist}/core/reporting/html-reporter.d.ts +0 -0
- /package/{cli/dist → dist}/core/reporting/html-reporter.js +0 -0
- /package/{cli/dist → dist}/core/retry/flakiness-integration.d.ts +0 -0
- /package/{cli/dist → dist}/core/retry/flakiness-integration.js +0 -0
- /package/{cli/dist → dist}/core/retry/index.d.ts +0 -0
- /package/{cli/dist → dist}/core/retry/index.js +0 -0
- /package/{cli/dist → dist}/core/retry/retry-engine.d.ts +0 -0
- /package/{cli/dist → dist}/core/retry/retry-engine.js +0 -0
- /package/{cli/dist → dist}/core/retry/types.d.ts +0 -0
- /package/{cli/dist → dist}/core/retry/types.js +0 -0
- /package/{cli/dist → dist}/core/retry/vault.d.ts +0 -0
- /package/{cli/dist → dist}/core/retry/vault.js +0 -0
- /package/{cli/dist → dist}/core/schemas/pack.schema.json +0 -0
- /package/{cli/dist → dist}/core/secrets/crypto.d.ts +0 -0
- /package/{cli/dist → dist}/core/secrets/crypto.js +0 -0
- /package/{cli/dist → dist}/core/secrets/manager.d.ts +0 -0
- /package/{cli/dist → dist}/core/secrets/manager.js +0 -0
- /package/{cli/dist → dist}/core/security/redaction-patterns-extended.d.ts +0 -0
- /package/{cli/dist → dist}/core/security/redaction-patterns-extended.js +0 -0
- /package/{cli/dist → dist}/core/security/redactor.d.ts +0 -0
- /package/{cli/dist → dist}/core/security/redactor.js +0 -0
- /package/{cli/dist → dist}/core/self-healing/assertion-healer.d.ts +0 -0
- /package/{cli/dist → dist}/core/self-healing/assertion-healer.js +0 -0
- /package/{cli/dist → dist}/core/self-healing/engine.d.ts +0 -0
- /package/{cli/dist → dist}/core/self-healing/engine.js +0 -0
- /package/{cli/dist → dist}/core/self-healing/index.d.ts +0 -0
- /package/{cli/dist → dist}/core/self-healing/index.js +0 -0
- /package/{cli/dist → dist}/core/self-healing/selector-healer.d.ts +0 -0
- /package/{cli/dist → dist}/core/self-healing/selector-healer.js +0 -0
- /package/{cli/dist → dist}/core/self-healing/types.d.ts +0 -0
- /package/{cli/dist → dist}/core/self-healing/types.js +0 -0
- /package/{cli/dist → dist}/core/serve/diagnostics-collector.d.ts +0 -0
- /package/{cli/dist → dist}/core/serve/diagnostics-collector.js +0 -0
- /package/{cli/dist → dist}/core/serve/health-checker.d.ts +0 -0
- /package/{cli/dist → dist}/core/serve/health-checker.js +0 -0
- /package/{cli/dist → dist}/core/serve/index.d.ts +0 -0
- /package/{cli/dist → dist}/core/serve/index.js +0 -0
- /package/{cli/dist → dist}/core/serve/metrics-collector.d.ts +0 -0
- /package/{cli/dist → dist}/core/serve/metrics-collector.js +0 -0
- /package/{cli/dist → dist}/core/serve/process-manager.d.ts +0 -0
- /package/{cli/dist → dist}/core/serve/process-manager.js +0 -0
- /package/{cli/dist → dist}/core/serve/server.d.ts +0 -0
- /package/{cli/dist → dist}/core/serve/server.js +0 -0
- /package/{cli/dist → dist}/core/slo/config.d.ts +0 -0
- /package/{cli/dist → dist}/core/slo/config.js +0 -0
- /package/{cli/dist → dist}/core/slo/index.d.ts +0 -0
- /package/{cli/dist → dist}/core/slo/index.js +0 -0
- /package/{cli/dist → dist}/core/slo/sli-calculator.d.ts +0 -0
- /package/{cli/dist → dist}/core/slo/sli-calculator.js +0 -0
- /package/{cli/dist → dist}/core/slo/slo-tracker.d.ts +0 -0
- /package/{cli/dist → dist}/core/slo/slo-tracker.js +0 -0
- /package/{cli/dist → dist}/core/slo/types.d.ts +0 -0
- /package/{cli/dist → dist}/core/slo/types.js +0 -0
- /package/{cli/dist → dist}/core/slo/vault.d.ts +0 -0
- /package/{cli/dist → dist}/core/slo/vault.js +0 -0
- /package/{cli/dist → dist}/core/tui/index.d.ts +0 -0
- /package/{cli/dist → dist}/core/tui/index.js +0 -0
- /package/{cli/dist → dist}/core/tui/monitor.d.ts +0 -0
- /package/{cli/dist → dist}/core/tui/monitor.js +0 -0
- /package/{cli/dist → dist}/core/tui/renderer.d.ts +0 -0
- /package/{cli/dist → dist}/core/tui/renderer.js +0 -0
- /package/{cli/dist → dist}/core/tui/types.d.ts +0 -0
- /package/{cli/dist → dist}/core/tui/types.js +0 -0
- /package/{cli/dist → dist}/core/types/pack-v1.js +0 -0
- /package/{cli/dist → dist}/core/types/pack-v2.js +0 -0
- /package/{cli/dist → dist}/core/types/trust-score.d.ts +0 -0
- /package/{cli/dist → dist}/core/types/trust-score.js +0 -0
- /package/{cli/dist → dist}/core/vault/cas.d.ts +0 -0
- /package/{cli/dist → dist}/core/vault/cas.js +0 -0
- /package/{cli/dist → dist}/core/vault/index.d.ts +0 -0
- /package/{cli/dist → dist}/core/vault/index.js +0 -0
- /package/{cli/dist → dist}/core/visual/visual-regression.d.ts +0 -0
- /package/{cli/dist → dist}/core/visual/visual-regression.js +0 -0
- /package/{cli/dist → dist}/core/watch/index.d.ts +0 -0
- /package/{cli/dist → dist}/core/watch/index.js +0 -0
- /package/{cli/dist → dist}/core/watch/watch-mode.d.ts +0 -0
- /package/{cli/dist → dist}/core/watch/watch-mode.js +0 -0
- /package/{cli/dist → dist}/generators/index.d.ts +0 -0
- /package/{cli/dist → dist}/generators/index.js +0 -0
- /package/{cli/dist → dist}/generators/json-reporter.d.ts +0 -0
- /package/{cli/dist → dist}/generators/json-reporter.js +0 -0
- /package/{cli/dist → dist}/generators/test-generator.d.ts +0 -0
- /package/{cli/dist → dist}/generators/test-generator.js +0 -0
- /package/{cli/dist → dist}/index.d.ts +0 -0
- /package/{cli/dist → dist}/index.js +0 -0
- /package/{cli/dist → dist}/scanners/dom-scanner.d.ts +0 -0
- /package/{cli/dist → dist}/scanners/dom-scanner.js +0 -0
- /package/{cli/dist → dist}/scanners/index.d.ts +0 -0
- /package/{cli/dist → dist}/scanners/index.js +0 -0
- /package/{cli/dist → dist}/schemas/pack.schema.json +0 -0
- /package/{cli/dist → dist}/types/scan.d.ts +0 -0
- /package/{cli/dist → dist}/types/scan.js +0 -0
- /package/{cli/dist → dist}/utils/config.js +0 -0
package/QUICK_START.md
DELETED
|
@@ -1,191 +0,0 @@
|
|
|
1
|
-
# 🚀 QA360 - Guide de Démarrage Simple
|
|
2
|
-
|
|
3
|
-
Transformez vos tests en preuves vérifiables en 5 minutes.
|
|
4
|
-
|
|
5
|
-
> **🚀 Beta Testing (15 Jan - 26 Fév 2025)** - Rejoignez le programme ! [Voir le plan beta](./docs/BETA_TESTING.md)
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## ⚡ Installation (2 minutes)
|
|
10
|
-
|
|
11
|
-
### Windows
|
|
12
|
-
|
|
13
|
-
1. Ouvrez **PowerShell** en administrateur
|
|
14
|
-
2. Installez QA360 :
|
|
15
|
-
|
|
16
|
-
```powershell
|
|
17
|
-
npm install -g xyqotech/qa360#develop
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
### Mac / Linux
|
|
21
|
-
|
|
22
|
-
1. Ouvrez le **Terminal**
|
|
23
|
-
2. Installez QA360 :
|
|
24
|
-
|
|
25
|
-
```bash
|
|
26
|
-
npm install -g xyqotech/qa360#develop
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
### Vérifier l'installation
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
qa360 --version
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
Vous devriez voir : `v1.4.5` ou plus.
|
|
36
|
-
|
|
37
|
-
> **Problème ?** Lancez `qa360 doctor --fix` pour un diagnostic automatique
|
|
38
|
-
|
|
39
|
-
---
|
|
40
|
-
|
|
41
|
-
## 🧪 Votre Premier Test (3 minutes)
|
|
42
|
-
|
|
43
|
-
### Étape 1 : Créer un dossier
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
mkdir mon-test
|
|
47
|
-
cd mon-test
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
### Étape 2 : Créer votre fichier de test
|
|
51
|
-
|
|
52
|
-
Créez un fichier `test.yml` :
|
|
53
|
-
|
|
54
|
-
```yaml
|
|
55
|
-
name: "Mon Premier Test"
|
|
56
|
-
description: "Test simple d'API"
|
|
57
|
-
|
|
58
|
-
gates:
|
|
59
|
-
- api_health
|
|
60
|
-
|
|
61
|
-
targets:
|
|
62
|
-
api:
|
|
63
|
-
baseUrl: "https://httpbin.org"
|
|
64
|
-
smoke:
|
|
65
|
-
- "GET /status/200 -> 200"
|
|
66
|
-
- "GET /get -> 200"
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
### Étape 3 : Lancer le test
|
|
70
|
-
|
|
71
|
-
```bash
|
|
72
|
-
qa360 run test.yml
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
### Résultat attendu
|
|
76
|
-
|
|
77
|
-
```
|
|
78
|
-
✅ API Health : PASSED (2/2)
|
|
79
|
-
✅ Preuve générée : .qa360/runs/xxxxx-proof.json
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
---
|
|
83
|
-
|
|
84
|
-
## 🎓 Ce que vous venez de faire
|
|
85
|
-
|
|
86
|
-
1. **Tester une API** - Vous avez vérifié que httpbin.org fonctionne
|
|
87
|
-
2. **Générer une preuve** - QA360 a signé cryptographiquement les résultats
|
|
88
|
-
3. **Sauvegarder l'historique** - Les résultats sont stockés localement
|
|
89
|
-
|
|
90
|
-
---
|
|
91
|
-
|
|
92
|
-
## 🔐 Vérifier la Preuve
|
|
93
|
-
|
|
94
|
-
```bash
|
|
95
|
-
qa360 verify .qa360/runs/<dernier>-proof.json
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
Résultat :
|
|
99
|
-
|
|
100
|
-
```
|
|
101
|
-
✅ Preuve VALIDE
|
|
102
|
-
✅ Signature : Ed25519
|
|
103
|
-
✅ Date : 2025-01-03
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
---
|
|
107
|
-
|
|
108
|
-
## 📋 Commandes Utiles
|
|
109
|
-
|
|
110
|
-
| Commande | Ce que ça fait |
|
|
111
|
-
|----------|---------------|
|
|
112
|
-
| `qa360 run <fichier.yml>` | Lance les tests |
|
|
113
|
-
| `qa360 verify <preuve.json>` | Vérifie une preuve |
|
|
114
|
-
| `qa360 history list` | Voir les tests passés |
|
|
115
|
-
| `qa360 doctor` | Diagnostic système |
|
|
116
|
-
| `qa360 examples list` | Voir les exemples |
|
|
117
|
-
| `qa360 init --beginner` | Créer un test facilement |
|
|
118
|
-
|
|
119
|
-
---
|
|
120
|
-
|
|
121
|
-
## 📁 Exemples Disponibles
|
|
122
|
-
|
|
123
|
-
```bash
|
|
124
|
-
# Voir tous les exemples
|
|
125
|
-
qa360 examples list
|
|
126
|
-
|
|
127
|
-
# Copier un exemple
|
|
128
|
-
qa360 examples copy api-basic
|
|
129
|
-
qa360 examples copy fullstack
|
|
130
|
-
qa360 examples copy perf-test
|
|
131
|
-
|
|
132
|
-
# Lancer un exemple
|
|
133
|
-
qa360 run api-basic/qa360.yml
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
---
|
|
137
|
-
|
|
138
|
-
## 🎯 Prochaines Étapes
|
|
139
|
-
|
|
140
|
-
1. **Tester votre propre API** : Modifiez `baseUrl` dans le fichier `test.yml`
|
|
141
|
-
2. **Explorer les exemples** : `qa360 examples list`
|
|
142
|
-
3. **Créer des tests complexes** : Consultez le [Guide Utilisateur](./docs/USER_GUIDE.md)
|
|
143
|
-
|
|
144
|
-
---
|
|
145
|
-
|
|
146
|
-
## 🐛 Un Problème ?
|
|
147
|
-
|
|
148
|
-
### Erreur : `command not found: qa360`
|
|
149
|
-
|
|
150
|
-
```bash
|
|
151
|
-
# Vérifiez que npm est dans le PATH
|
|
152
|
-
npm config get prefix
|
|
153
|
-
|
|
154
|
-
# Si besoin, ajoutez à votre PATH :
|
|
155
|
-
# Windows : $env:Path += ";C:\Users\<votre-user>\AppData\Roaming\npm"
|
|
156
|
-
# Mac/Linux : export PATH="$PATH:$(npm config get prefix)/bin"
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
### Erreur : `EACCES` (permission refusée)
|
|
160
|
-
|
|
161
|
-
```bash
|
|
162
|
-
# Mac/Linux : utilisez sudo
|
|
163
|
-
sudo npm install -g xyqotech/qa360#develop
|
|
164
|
-
|
|
165
|
-
# Ou corrigez les permissions npm
|
|
166
|
-
mkdir ~/.npm-global
|
|
167
|
-
npm config set prefix '~/.npm-global'
|
|
168
|
-
export PATH=~/.npm-global/bin:$PATH
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
### Autre erreur
|
|
172
|
-
|
|
173
|
-
```bash
|
|
174
|
-
qa360 doctor --fix > diagnostic.txt
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
Envoyez `diagnostic.txt` sur :
|
|
178
|
-
- Discord : https://discord.gg/qa360
|
|
179
|
-
- GitHub : https://github.com/xyqotech/qa360/issues
|
|
180
|
-
|
|
181
|
-
---
|
|
182
|
-
|
|
183
|
-
## 📚 En Savoir Plus
|
|
184
|
-
|
|
185
|
-
- [Programme Beta Test](./docs/BETA_TESTING.md) - Participez au beta !
|
|
186
|
-
- [Guide Utilisateur Complet](./docs/USER_GUIDE.md) - Toutes les fonctionnalités
|
|
187
|
-
- [Documentation Technique](./docs/ARCHITECTURE.md) - Comment ça marche
|
|
188
|
-
|
|
189
|
-
---
|
|
190
|
-
|
|
191
|
-
**C'est tout !** Vous savez utiliser QA360 en 5 minutes 🚀
|
package/cli/CHANGELOG.md
DELETED
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to QA360 Proof CLI 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
|
-
## [1.1.0] - 2025-10-26
|
|
9
|
-
|
|
10
|
-
### Added
|
|
11
|
-
- **AJV 2020-12 Support**: Full JSON Schema Draft 2020-12 validation (RFC-compliant)
|
|
12
|
-
- **CI Matrix**: 9-job validation matrix (3 OS × 3 Node versions)
|
|
13
|
-
- **Comprehensive Tests**: 11 unit tests + 3 smoke tests
|
|
14
|
-
- **Cross-platform Build**: Automated build script with OS detection
|
|
15
|
-
- **Dependency Lock**: Frozen AJV versions (anti-regression)
|
|
16
|
-
- **CI Badges**: Status badges in README
|
|
17
|
-
|
|
18
|
-
### Changed
|
|
19
|
-
- **Schema Validation**: Migrated from draft-07 to draft-2020-12
|
|
20
|
-
- **Build System**: Idempotent cross-platform build script
|
|
21
|
-
- **prepublishOnly**: Added doctor --strict validation before publish
|
|
22
|
-
|
|
23
|
-
### Fixed
|
|
24
|
-
- **ESM Imports**: Fixed AJV 2020 import for Node.js ESM compatibility
|
|
25
|
-
- **Schema Path**: Corrected import paths in test files
|
|
26
|
-
|
|
27
|
-
### Security
|
|
28
|
-
- **Provenance**: Added npm provenance for supply chain security
|
|
29
|
-
- **Dependency Freeze**: Locked ajv@8.17.1, ajv-formats@2.1.1, ajv-draft-04@1.0.0
|
|
30
|
-
|
|
31
|
-
## [1.1.0-rc] - 2025-10-25
|
|
32
|
-
|
|
33
|
-
### Added
|
|
34
|
-
- **Initial Release Candidate**: First public release
|
|
35
|
-
- **Commands**: `doctor`, `verify`
|
|
36
|
-
- **Flags**: `--json`, `--strict`, `--verbose`
|
|
37
|
-
- **Documentation**: Complete guides and examples
|
|
38
|
-
|
|
39
|
-
### Features
|
|
40
|
-
- 🔒 **Local-first**: 100% offline, no network dependencies
|
|
41
|
-
- 🔐 **Cryptographic trust**: Ed25519 signatures, SHA-256 hashing
|
|
42
|
-
- 🌍 **Cross-OS**: Windows, macOS, Linux validated
|
|
43
|
-
- ⚡ **Zero friction**: Auto-generates keys
|
|
44
|
-
-
|
|
45
|
-
|
|
46
|
-
## [Unreleased]
|
|
47
|
-
|
|
48
|
-
### Planned
|
|
49
|
-
- RFC 3161 TSA timestamp support (Phase 6)
|
|
50
|
-
- W3C DID / Sigstore identity (Phase 6)
|
|
51
|
-
- Revocation mechanism (Phase 6)
|
|
52
|
-
- Compliance metadata (Phase 6)
|
|
53
|
-
|
|
54
|
-
---
|
|
55
|
-
|
|
56
|
-
## Version History
|
|
57
|
-
|
|
58
|
-
- **1.1.0** (2025-10-26): Stable release with AJV 2020-12 + CI lockdown
|
|
59
|
-
- **1.1.0-rc** (2025-10-25): Release candidate
|
|
60
|
-
- **0.9.0-core** (2025-10-24): Internal development version
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
## Quick Validation
|
|
65
|
-
|
|
66
|
-
```bash
|
|
67
|
-
# Install
|
|
68
|
-
npm i -g @qa360/cli@1.1.0
|
|
69
|
-
|
|
70
|
-
# Verify version
|
|
71
|
-
qa360 --version
|
|
72
|
-
|
|
73
|
-
# System check
|
|
74
|
-
qa360 doctor --strict
|
|
75
|
-
|
|
76
|
-
# Verify proof
|
|
77
|
-
qa360 verify examples/proofs/httpbin-proof.json --json
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
**Expected**: All commands succeed, proof validates correctly.
|
|
81
|
-
|
|
82
|
-
---
|
|
83
|
-
|
|
84
|
-
For detailed changes, see [GitHub Releases](https://github.com/qa360/qa360/releases).
|
package/cli/LICENSE
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
Business Source License 1.1
|
|
2
|
-
|
|
3
|
-
Licensor: XyqoTech
|
|
4
|
-
Licensed Work: QA360 Cloud Preview
|
|
5
|
-
Change Date: 2027-10-01
|
|
6
|
-
Change License: MIT
|
|
7
|
-
|
|
8
|
-
Terms
|
|
9
|
-
|
|
10
|
-
The Licensor hereby grants you the right to copy, modify, create derivative works, redistribute, and make non-production use of the Licensed Work. The Licensor may make an Additional Use Grant, above, permitting limited production use.
|
|
11
|
-
|
|
12
|
-
Effective on the Change Date, or the fourth anniversary of the first publicly available distribution of a specific version of the Licensed Work under this License, whichever comes first, the Licensor hereby grants you rights under the terms of the Change License, and the rights granted in the paragraph above terminate.
|
|
13
|
-
|
|
14
|
-
If your use of the Licensed Work does not comply with the requirements currently in effect as described in this License, you must purchase a commercial license from the Licensor, its affiliated entities, or authorized resellers, or you must refrain from using the Licensed Work.
|
|
15
|
-
|
|
16
|
-
All copies of the original and modified Licensed Work, and derivative works of the Licensed Work, are subject to this License. This License applies separately for each version of the Licensed Work and the Change Date may vary for each version of the Licensed Work released by Licensor.
|
|
17
|
-
|
|
18
|
-
You must conspicuously display this License on each original or modified copy of the Licensed Work. If you receive the Licensed Work in original or modified form from a third party, the terms and conditions set forth in this License apply to your use of that work.
|
|
19
|
-
|
|
20
|
-
Any use of the Licensed Work in violation of this License will automatically terminate your rights under this License for the current and all other versions of the Licensed Work.
|
|
21
|
-
|
|
22
|
-
This License does not grant you any right in any trademark or logo of Licensor or its affiliates (provided that you may use a trademark or logo of Licensor as expressly required by this License).
|
|
23
|
-
|
|
24
|
-
TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON AN "AS IS" BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND TITLE.
|
package/cli/README.md
DELETED
|
@@ -1,222 +0,0 @@
|
|
|
1
|
-
# qa360
|
|
2
|
-
|
|
3
|
-
**QA360 Proof CLI** - Quality as Cryptographic Proof
|
|
4
|
-
|
|
5
|
-
[](https://www.npmjs.com/package/qa360)
|
|
6
|
-
[](https://github.com/xyqotech/qa360/blob/main/LICENSE)
|
|
7
|
-
[](https://github.com/xyqotech/qa360)
|
|
8
|
-
[](https://github.com/xyqotech/qa360)
|
|
9
|
-
|
|
10
|
-
> **Official package** published by [xyqotech](https://github.com/xyqotech) with npm provenance signatures
|
|
11
|
-
|
|
12
|
-
## Installation
|
|
13
|
-
|
|
14
|
-
### Option 1: Global installation (recommended for regular use)
|
|
15
|
-
|
|
16
|
-
```bash
|
|
17
|
-
# macOS: use sudo if you get EACCES permission errors
|
|
18
|
-
sudo npm install -g qa360
|
|
19
|
-
|
|
20
|
-
# Or configure npm prefix (one-time setup)
|
|
21
|
-
mkdir -p ~/.npm-global
|
|
22
|
-
npm config set prefix '~/.npm-global'
|
|
23
|
-
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.zshrc
|
|
24
|
-
source ~/.zshrc
|
|
25
|
-
npm install -g qa360
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
### Option 2: Direct usage with npx (no installation needed)
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
# Run directly without installing
|
|
32
|
-
npx qa360@latest run test.yml
|
|
33
|
-
npx qa360@latest verify proof.json
|
|
34
|
-
npx qa360@latest doctor
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
**Note**: On first run, Playwright browsers will be automatically downloaded (~100MB). This happens only once.
|
|
38
|
-
|
|
39
|
-
## Quick Start
|
|
40
|
-
|
|
41
|
-
### 1. Generate a test pack
|
|
42
|
-
|
|
43
|
-
```bash
|
|
44
|
-
# Option 1: Interactive mode (recommended for first-time users)
|
|
45
|
-
qa360 init
|
|
46
|
-
|
|
47
|
-
# Option 2: Use a template directly
|
|
48
|
-
qa360 init --template api-basic --yes
|
|
49
|
-
|
|
50
|
-
# Option 3: Copy an example
|
|
51
|
-
qa360 examples copy api-basic
|
|
52
|
-
qa360 examples list # See all available examples
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
### 2. Run tests
|
|
56
|
-
|
|
57
|
-
```bash
|
|
58
|
-
qa360 run
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
### 3. Verify proof
|
|
62
|
-
|
|
63
|
-
```bash
|
|
64
|
-
qa360 verify .qa360/runs/
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
## Usage
|
|
68
|
-
|
|
69
|
-
```bash
|
|
70
|
-
# Generate test pack (interactive)
|
|
71
|
-
qa360 init
|
|
72
|
-
|
|
73
|
-
# Generate with template
|
|
74
|
-
qa360 init --template api-basic
|
|
75
|
-
qa360 init --template fullstack
|
|
76
|
-
qa360 init --template security
|
|
77
|
-
qa360 init --template complete
|
|
78
|
-
|
|
79
|
-
# Examples commands
|
|
80
|
-
qa360 examples list # List all examples
|
|
81
|
-
qa360 examples copy api-basic # Copy example to qa360.yml
|
|
82
|
-
qa360 examples show fullstack # Preview example content
|
|
83
|
-
|
|
84
|
-
# System health check
|
|
85
|
-
qa360 doctor
|
|
86
|
-
|
|
87
|
-
# Run test pack
|
|
88
|
-
qa360 run # Auto-detects qa360.yml
|
|
89
|
-
qa360 run custom-pack.yml # Use specific file
|
|
90
|
-
|
|
91
|
-
# Verify proof bundle
|
|
92
|
-
qa360 verify .qa360/runs/
|
|
93
|
-
qa360 verify proof.json
|
|
94
|
-
|
|
95
|
-
# View run history
|
|
96
|
-
qa360 history list
|
|
97
|
-
qa360 history show <run-id>
|
|
98
|
-
|
|
99
|
-
# Export proof bundle
|
|
100
|
-
qa360 history export <run-id> --bundle proof-bundle.zip
|
|
101
|
-
|
|
102
|
-
# Clean up old runs (garbage collection)
|
|
103
|
-
qa360 history gc # Default: keep last 10 runs
|
|
104
|
-
qa360 history gc --keep-last 20 # Keep last 20 runs
|
|
105
|
-
qa360 history gc --dry-run # Preview what would be deleted
|
|
106
|
-
|
|
107
|
-
# Pin/unpin runs (pinned runs are never deleted by gc)
|
|
108
|
-
qa360 history pin <run-id>
|
|
109
|
-
qa360 history unpin <run-id>
|
|
110
|
-
|
|
111
|
-
# With JSON output (CI-friendly)
|
|
112
|
-
qa360 doctor --json
|
|
113
|
-
qa360 verify proof.json --json
|
|
114
|
-
qa360 history list --json
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
## Available Templates
|
|
118
|
-
|
|
119
|
-
| Template | Description | Gates |
|
|
120
|
-
|----------|-------------|-------|
|
|
121
|
-
| **api-basic** | Simple API smoke tests | api_smoke |
|
|
122
|
-
| **ui-basic** | Basic UI/E2E tests | ui |
|
|
123
|
-
| **fullstack** | API + UI + Performance | api_smoke, ui, perf |
|
|
124
|
-
| **security** | Security testing suite | sast, dast, secrets, deps |
|
|
125
|
-
| **accessibility** | Accessibility testing | ui, a11y |
|
|
126
|
-
| **complete** | All quality gates | All (8 gates) |
|
|
127
|
-
|
|
128
|
-
## Example Files
|
|
129
|
-
|
|
130
|
-
Pre-made examples are included in the package:
|
|
131
|
-
|
|
132
|
-
```bash
|
|
133
|
-
# List examples
|
|
134
|
-
ls examples/
|
|
135
|
-
|
|
136
|
-
# Copy an example
|
|
137
|
-
cp examples/api-basic.yml qa360.yml
|
|
138
|
-
|
|
139
|
-
# Run example directly
|
|
140
|
-
qa360 run examples/api-basic.yml
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
## Commands
|
|
144
|
-
|
|
145
|
-
| Command | Description |
|
|
146
|
-
|---------|-------------|
|
|
147
|
-
| `init` | Generate test pack interactively |
|
|
148
|
-
| `examples` | Manage example templates (list, copy, show) |
|
|
149
|
-
| `run` | Execute test pack |
|
|
150
|
-
| `verify` | Verify cryptographic proof bundles |
|
|
151
|
-
| `doctor` | Check system health, auto-fix issues |
|
|
152
|
-
| `history` | View run history and results |
|
|
153
|
-
| `report` | Generate reports |
|
|
154
|
-
| `secrets` | Manage encrypted secrets |
|
|
155
|
-
| `pack` | Pack validation and linting |
|
|
156
|
-
|
|
157
|
-
### History Commands
|
|
158
|
-
|
|
159
|
-
The `history` command provides comprehensive management of test run history stored in the Evidence Vault:
|
|
160
|
-
|
|
161
|
-
| Subcommand | Description | Example |
|
|
162
|
-
|------------|-------------|---------|
|
|
163
|
-
| `list` | List recent test runs | `qa360 history list --limit 20` |
|
|
164
|
-
| `show <run-id>` | Show detailed run information | `qa360 history show abc123` |
|
|
165
|
-
| `diff <id1> <id2>` | Compare two test runs | `qa360 history diff abc123 def456` |
|
|
166
|
-
| `trend` | Show trust score trends | `qa360 history trend --window 30` |
|
|
167
|
-
| `export <run-id>` | Export run as ZIP bundle | `qa360 history export abc123 --bundle proof.zip` |
|
|
168
|
-
| `gc` | Garbage collect old runs | `qa360 history gc --keep-last 10` |
|
|
169
|
-
| `pin <run-id>` | Pin run (protect from gc) | `qa360 history pin abc123` |
|
|
170
|
-
| `unpin <run-id>` | Unpin run | `qa360 history unpin abc123` |
|
|
171
|
-
|
|
172
|
-
#### Export Bundle Contents
|
|
173
|
-
|
|
174
|
-
When exporting a run with `qa360 history export <run-id> --bundle proof.zip`, the ZIP contains:
|
|
175
|
-
|
|
176
|
-
- `proof.json` - Cryptographically signed proof document
|
|
177
|
-
- `report.pdf` - Human-readable PDF report (if generated)
|
|
178
|
-
- `run.json` - Complete run details (gates, findings, artifacts)
|
|
179
|
-
- `artifacts/` - All test artifacts (screenshots, logs, etc.)
|
|
180
|
-
- `VERIFICATION.json` - Verification instructions and metadata
|
|
181
|
-
|
|
182
|
-
#### Garbage Collection
|
|
183
|
-
|
|
184
|
-
The `gc` command removes old test runs and orphaned artifacts to free disk space:
|
|
185
|
-
|
|
186
|
-
```bash
|
|
187
|
-
# Preview what would be deleted (dry-run)
|
|
188
|
-
qa360 history gc --dry-run
|
|
189
|
-
|
|
190
|
-
# Keep last 20 runs, delete older ones
|
|
191
|
-
qa360 history gc --keep-last 20
|
|
192
|
-
|
|
193
|
-
# Default behavior (keeps last 10 unpinned runs)
|
|
194
|
-
qa360 history gc
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
**Important**: Pinned runs are NEVER deleted by garbage collection. Use `qa360 history pin <run-id>` to protect important runs.
|
|
198
|
-
|
|
199
|
-
## Exit Codes
|
|
200
|
-
|
|
201
|
-
| Code | Meaning |
|
|
202
|
-
|------|---------|
|
|
203
|
-
| 0 | Success |
|
|
204
|
-
| 1 | Verification failed |
|
|
205
|
-
| 2 | File not found |
|
|
206
|
-
| 3 | Invalid schema |
|
|
207
|
-
| 4 | Missing key |
|
|
208
|
-
| 5 | Internal error |
|
|
209
|
-
|
|
210
|
-
## Requirements
|
|
211
|
-
|
|
212
|
-
- Node.js >= 18.0.0
|
|
213
|
-
- npm or pnpm
|
|
214
|
-
|
|
215
|
-
## Documentation
|
|
216
|
-
|
|
217
|
-
- [Quick Start](https://github.com/xyqotech/qa360/blob/main/docs/quickstart-5min.md)
|
|
218
|
-
- [Full Documentation](https://github.com/xyqotech/qa360/blob/main/docs/README.md)
|
|
219
|
-
|
|
220
|
-
## License
|
|
221
|
-
|
|
222
|
-
MIT
|