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/package.json
CHANGED
|
@@ -1,66 +1,41 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "qa360",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "2.3.1",
|
|
4
|
+
"description": "QA360 Proof CLI - Quality as Cryptographic Proof",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
"node": ">=18.20.0"
|
|
9
|
-
},
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
10
8
|
"bin": {
|
|
11
|
-
"qa360": "
|
|
9
|
+
"qa360": "bin/qa360.js"
|
|
12
10
|
},
|
|
13
11
|
"files": [
|
|
14
|
-
"
|
|
15
|
-
"
|
|
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
|
-
"
|
|
25
|
-
"package.json"
|
|
16
|
+
"examples"
|
|
26
17
|
],
|
|
27
18
|
"scripts": {
|
|
28
|
-
"build": "tsc --
|
|
19
|
+
"build": "tsc --project tsconfig.bundle.json",
|
|
29
20
|
"build:pkg": "tsc",
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"test": "
|
|
33
|
-
"test:
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
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": "^
|
|
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
|
-
"
|
|
75
|
-
"tweetnacl": "^1.0.3",
|
|
76
|
-
"qa360-core": "^2.2.6"
|
|
51
|
+
"tweetnacl": "^1.0.3"
|
|
77
52
|
},
|
|
78
53
|
"devDependencies": {
|
|
79
|
-
"@
|
|
80
|
-
"@types/
|
|
81
|
-
"@types/
|
|
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
|
-
"
|
|
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
|
|
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
|