qa360 2.2.18 → 2.2.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,84 @@
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 ADDED
@@ -0,0 +1,24 @@
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.
@@ -0,0 +1,76 @@
1
+ {
2
+ "name": "qa360",
3
+ "version": "2.2.15",
4
+ "description": "QA360 Proof CLI - Quality as Cryptographic Proof",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "bin": {
9
+ "qa360": "bin/qa360.js"
10
+ },
11
+ "files": [
12
+ "dist",
13
+ "bin",
14
+ "README.md",
15
+ "LICENSE",
16
+ "examples"
17
+ ],
18
+ "scripts": {
19
+ "build": "tsc --project tsconfig.bundle.json",
20
+ "build:pkg": "tsc",
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"
32
+ },
33
+ "dependencies": {
34
+ "@playwright/test": "^1.49.0",
35
+ "adm-zip": "^0.5.16",
36
+ "ajv": "^8.17.1",
37
+ "ajv-draft-04": "^1.0.0",
38
+ "ajv-formats": "^2.1.1",
39
+ "chalk": "^4.1.2",
40
+ "cli-table3": "^0.6.5",
41
+ "commander": "^11.0.0",
42
+ "glob": "^10.4.5",
43
+ "inquirer": "^8.2.7",
44
+ "js-yaml": "^4.1.0",
45
+ "ollama": "^0.5.1",
46
+ "ora": "^5.4.1",
47
+ "playwright": "^1.57.0",
48
+ "qa360-core": "workspace:*",
49
+ "sqlite3": "^5.1.6",
50
+ "tweetnacl": "^1.0.3"
51
+ },
52
+ "devDependencies": {
53
+ "@types/adm-zip": "^0.5.7",
54
+ "@types/inquirer": "^9.0.9",
55
+ "@vitest/coverage-v8": "1.6.0",
56
+ "tsx": "^4.0.0",
57
+ "vitest": "1.6.0"
58
+ },
59
+ "keywords": [
60
+ "qa360",
61
+ "cli",
62
+ "testing",
63
+ "proof"
64
+ ],
65
+ "author": "QA360 Core Team",
66
+ "license": "MIT",
67
+ "repository": {
68
+ "type": "git",
69
+ "url": "https://github.com/xyqotech/qa360.git",
70
+ "directory": "cli"
71
+ },
72
+ "homepage": "https://github.com/xyqotech/qa360",
73
+ "bugs": {
74
+ "url": "https://github.com/xyqotech/qa360/issues"
75
+ }
76
+ }
package/core/LICENSE ADDED
@@ -0,0 +1,24 @@
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.
@@ -0,0 +1,81 @@
1
+ {
2
+ "name": "qa360-core",
3
+ "version": "2.2.6",
4
+ "description": "QA360 Core Engine - Proof generation, signatures, and evidence vault",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ },
13
+ "./proof": {
14
+ "types": "./dist/proof/index.d.ts",
15
+ "import": "./dist/proof/index.js"
16
+ },
17
+ "./pack/validator": {
18
+ "types": "./dist/pack/validator.d.ts",
19
+ "import": "./dist/pack/validator.js"
20
+ },
21
+ "./pack/migrator": {
22
+ "types": "./dist/pack/migrator.d.ts",
23
+ "import": "./dist/pack/migrator.js"
24
+ },
25
+ "./types/pack-v1": {
26
+ "types": "./dist/types/pack-v1.d.ts",
27
+ "import": "./dist/types/pack-v1.js"
28
+ }
29
+ },
30
+ "files": [
31
+ "dist",
32
+ "README.md",
33
+ "LICENSE"
34
+ ],
35
+ "scripts": {
36
+ "build": "tsc -b",
37
+ "build:pkg": "tsc",
38
+ "test": "vitest run",
39
+ "test:coverage": "vitest run --coverage",
40
+ "test:watch": "vitest",
41
+ "test:schema": "node src/proof/__tests__/schema-validation-manual.mjs",
42
+ "clean": "rimraf dist"
43
+ },
44
+ "dependencies": {
45
+ "ajv": "^8.17.1",
46
+ "ajv-draft-04": "^1.0.0",
47
+ "ajv-formats": "^2.1.1",
48
+ "chalk": "^4.1.2",
49
+ "glob": "^10.4.5",
50
+ "js-yaml": "^4.1.0",
51
+ "ollama": "^0.5.1",
52
+ "sqlite3": "^5.1.6",
53
+ "tweetnacl": "^1.0.3"
54
+ },
55
+ "devDependencies": {
56
+ "@types/js-yaml": "^4.0.9",
57
+ "@types/node": "^20.0.0",
58
+ "@vitest/coverage-v8": "1.6.0",
59
+ "msw": "1",
60
+ "playwright": "^1.57.0",
61
+ "vitest": "1.6.0"
62
+ },
63
+ "keywords": [
64
+ "qa360",
65
+ "core",
66
+ "proof",
67
+ "signature",
68
+ "vault"
69
+ ],
70
+ "author": "QA360 Core Team",
71
+ "license": "MIT",
72
+ "repository": {
73
+ "type": "git",
74
+ "url": "https://github.com/xyqotech/qa360.git",
75
+ "directory": "core"
76
+ },
77
+ "homepage": "https://github.com/xyqotech/qa360",
78
+ "bugs": {
79
+ "url": "https://github.com/xyqotech/qa360/issues"
80
+ }
81
+ }
package/package.json CHANGED
@@ -1,8 +1,9 @@
1
1
  {
2
2
  "name": "qa360",
3
- "version": "2.2.18",
3
+ "version": "2.2.20",
4
4
  "description": "Transform software testing into verifiable, signed, and traceable proofs",
5
5
  "type": "module",
6
+ "packageManager": "pnpm@9.12.2",
6
7
  "engines": {
7
8
  "node": ">=18.20.0"
8
9
  },
@@ -23,11 +24,37 @@
23
24
  "QUICK_START.md",
24
25
  "package.json"
25
26
  ],
27
+ "scripts": {
28
+ "build": "tsc --build tsconfig.build.json",
29
+ "build:pkg": "tsc",
30
+ "docs": "typedoc --skipErrorChecking",
31
+ "docs:serve": "typedoc --skipErrorChecking --serve",
32
+ "test": "pnpm -r run test",
33
+ "test:core": "cd core && pnpm test",
34
+ "test:cli": "cd cli && pnpm test",
35
+ "test:e2e": "vitest run --config e2e/vitest.config.ts",
36
+ "test:examples": "node scripts/validate-examples.mjs",
37
+ "test:all": "npm run type-check && npm run test && npm run test:examples",
38
+ "lint": "eslint . --ext .ts,.js",
39
+ "lint:fix": "eslint . --ext .ts,.js --fix",
40
+ "type-check": "tsc --build tsconfig.build.json --force",
41
+ "dev": "tsx watch cli/src/index.ts",
42
+ "clean": "rm -rf dist/ */dist/ **/dist/",
43
+ "clean:all": "pnpm clean && find . -name '.tmp-test-*' -type d -exec rm -rf {} + 2>/dev/null; find . -name '.qa360' -type d -exec rm -rf {} + 2>/dev/null; find . -name '*.tsbuildinfo' -delete 2>/dev/null; echo 'All artifacts cleaned'",
44
+ "version:sync": "node scripts/sync-version.mjs",
45
+ "prepare": "husky install",
46
+ "install:mcp": "bash scripts/install-mcp.sh"
47
+ },
26
48
  "workspaces": [
27
49
  "cli",
28
50
  "core",
29
51
  "packages/*"
30
52
  ],
53
+ "pnpm": {
54
+ "overrides": {
55
+ "ajv": "^8.17.1"
56
+ }
57
+ },
31
58
  "dependencies": {
32
59
  "@playwright/test": "^1.49.0",
33
60
  "adm-zip": "^0.5.16",
@@ -46,7 +73,7 @@
46
73
  "sqlite3": "^5.1.6",
47
74
  "table": "^6.9.0",
48
75
  "tweetnacl": "^1.0.3",
49
- "qa360-core": "^2.2.4"
76
+ "qa360-core": "^2.2.6"
50
77
  },
51
78
  "devDependencies": {
52
79
  "@playwright/test": "^1.56.1",
@@ -81,25 +108,5 @@
81
108
  "homepage": "https://qa360.dev",
82
109
  "bugs": {
83
110
  "url": "https://github.com/xyqotech/qa360/issues"
84
- },
85
- "scripts": {
86
- "build": "tsc --build tsconfig.build.json",
87
- "build:pkg": "tsc",
88
- "docs": "typedoc --skipErrorChecking",
89
- "docs:serve": "typedoc --skipErrorChecking --serve",
90
- "test": "pnpm -r run test",
91
- "test:core": "cd core && pnpm test",
92
- "test:cli": "cd cli && pnpm test",
93
- "test:e2e": "vitest run --config e2e/vitest.config.ts",
94
- "test:examples": "node scripts/validate-examples.mjs",
95
- "test:all": "npm run type-check && npm run test && npm run test:examples",
96
- "lint": "eslint . --ext .ts,.js",
97
- "lint:fix": "eslint . --ext .ts,.js --fix",
98
- "type-check": "tsc --build tsconfig.build.json --force",
99
- "dev": "tsx watch cli/src/index.ts",
100
- "clean": "rm -rf dist/ */dist/ **/dist/",
101
- "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'",
102
- "version:sync": "node scripts/sync-version.mjs",
103
- "install:mcp": "bash scripts/install-mcp.sh"
104
111
  }
105
- }
112
+ }