qa360 1.1.8 → 1.2.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.
@@ -1 +1 @@
1
- {"version":3,"file":"verifier.d.ts","sourceRoot":"","sources":["../../../src/core/proof/verifier.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B;AAED;;GAEG;AACH,oBAAY,gBAAgB;IAC1B,QAAQ,IAAI;IACZ,iBAAiB,IAAI;IACrB,oBAAoB,IAAI;IACxB,uBAAuB,IAAI;IAC3B,iBAAiB,IAAI;IACrB,eAAe,IAAI;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,WAAW,EACnB,SAAS,CAAC,EAAE,UAAU,GACrB,OAAO,CAAC,kBAAkB,CAAC,CAmF7B;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAS3F;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,kBAAkB,CAAC,CAkD7B;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE,2BAAgC,EACzC,SAAS,CAAC,EAAE,UAAU,GACrB,OAAO,CAAC,kBAAkB,CAAC,CAyB7B;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,2BAAgC,EACzC,SAAS,CAAC,EAAE,UAAU,GACrB,OAAO,CAAC,kBAAkB,CAAC,CAY7B;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAmErF"}
1
+ {"version":3,"file":"verifier.d.ts","sourceRoot":"","sources":["../../../src/core/proof/verifier.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,mBAAmB,CAAC;CAC/B;AAED;;GAEG;AACH,oBAAY,gBAAgB;IAC1B,QAAQ,IAAI;IACZ,iBAAiB,IAAI;IACrB,oBAAoB,IAAI;IACxB,uBAAuB,IAAI;IAC3B,iBAAiB,IAAI;IACrB,eAAe,IAAI;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,WAAW,EACnB,SAAS,CAAC,EAAE,UAAU,GACrB,OAAO,CAAC,kBAAkB,CAAC,CAmF7B;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAS3F;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,kBAAkB,CAAC,CAkD7B;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE,2BAAgC,EACzC,SAAS,CAAC,EAAE,UAAU,GACrB,OAAO,CAAC,kBAAkB,CAAC,CAyB7B;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,2BAAgC,EACzC,SAAS,CAAC,EAAE,UAAU,GACrB,OAAO,CAAC,kBAAkB,CAAC,CAY7B;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA0ErF"}
@@ -266,6 +266,8 @@ export async function verifyPhase3Proof(filePath) {
266
266
  // Canonicalize payload (same way it was signed)
267
267
  const { canonicalize } = await import('./canonicalize.js');
268
268
  const canonical = canonicalize(payload) + '\n';
269
+ // Compute hash for details
270
+ const hash = createHash('sha256').update(canonical, 'utf-8').digest();
269
271
  // Verify signature
270
272
  const isValid = verify(canonical, signature.value, publicKey);
271
273
  if (!isValid) {
@@ -285,10 +287,14 @@ export async function verifyPhase3Proof(filePath) {
285
287
  code: VerificationCode.PROOF_OK,
286
288
  message: 'Proof verified successfully',
287
289
  details: {
290
+ signerId: 'local@qa360',
291
+ hash: `sha256-${hash.toString('hex').substring(0, 16)}...`,
288
292
  runId: proof.runId,
289
293
  trustScore: proof.execution?.trustScore,
290
294
  startedAt: proof.timestamp,
291
- artifactsTotal: proof.gates?.length || 0,
295
+ finishedAt: proof.timestamp,
296
+ artifactsTotal: 0,
297
+ artifactsVerified: 0,
292
298
  },
293
299
  };
294
300
  }
@@ -1 +1 @@
1
- {"version":3,"file":"phase3-runner.d.ts","sourceRoot":"","sources":["../../../src/core/runner/phase3-runner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAWnD,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,GAAG,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,KAAK,EAAE;QACL,SAAS,EAAE,GAAG,EAAE,CAAC;QACjB,UAAU,EAAE,GAAG,EAAE,CAAC;QAClB,SAAS,EAAE,GAAG,EAAE,CAAC;QACjB,QAAQ,EAAE,GAAG,EAAE,CAAC;KACjB,CAAC;IACF,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,IAAI,CAAe;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,OAAO,CAAC,CAAU;IAC1B,OAAO,CAAC,KAAK,CAAC,CAAgB;gBAElB,OAAO,EAAE,mBAAmB;IAcxC;;OAEG;IACG,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC;IA2IrC;;OAEG;YACW,WAAW;IAkFzB;;OAEG;YACW,eAAe;IAc7B;;OAEG;YACW,SAAS;IAavB;;OAEG;YACW,WAAW;IAKzB;;OAEG;YACW,WAAW;IAgBzB;;OAEG;YACW,WAAW;IAWzB;;OAEG;YACW,WAAW;IAezB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA+BxB;;OAEG;YACW,aAAa;IAsE3B;;OAEG;YACW,WAAW;IAmDzB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAOhB;;OAEG;IACH,OAAO,CAAC,eAAe;CAKxB"}
1
+ {"version":3,"file":"phase3-runner.d.ts","sourceRoot":"","sources":["../../../src/core/runner/phase3-runner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAWnD,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,GAAG,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,KAAK,EAAE;QACL,SAAS,EAAE,GAAG,EAAE,CAAC;QACjB,UAAU,EAAE,GAAG,EAAE,CAAC;QAClB,SAAS,EAAE,GAAG,EAAE,CAAC;QACjB,QAAQ,EAAE,GAAG,EAAE,CAAC;KACjB,CAAC;IACF,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,IAAI,CAAe;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,OAAO,CAAC,CAAU;IAC1B,OAAO,CAAC,KAAK,CAAC,CAAgB;gBAElB,OAAO,EAAE,mBAAmB;IAcxC;;OAEG;IACG,GAAG,IAAI,OAAO,CAAC,eAAe,CAAC;IA2IrC;;OAEG;YACW,WAAW;IAkFzB;;OAEG;YACW,eAAe;IAc7B;;OAEG;YACW,SAAS;IAavB;;OAEG;YACW,WAAW;IAKzB;;OAEG;YACW,WAAW;IAgBzB;;OAEG;YACW,WAAW;IAWzB;;OAEG;YACW,WAAW;IAezB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA+BxB;;OAEG;YACW,aAAa;IA4E3B;;OAEG;YACW,WAAW;IAmDzB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAOhB;;OAEG;IACH,OAAO,CAAC,eAAe;CAKxB"}
@@ -362,13 +362,19 @@ export class Phase3Runner {
362
362
  success: result.success,
363
363
  trustScore: result.summary.trustScore
364
364
  },
365
- gates: result.gates.map(g => ({
366
- gate: g.gate,
367
- adapter: g.adapter,
368
- success: g.success,
369
- duration: g.duration,
370
- error: g.error
371
- })),
365
+ gates: result.gates.map(g => {
366
+ const gateObj = {
367
+ gate: g.gate,
368
+ adapter: g.adapter,
369
+ success: g.success,
370
+ duration: g.duration
371
+ };
372
+ // Only include error if it exists (avoid undefined fields)
373
+ if (g.error !== undefined) {
374
+ gateObj.error = g.error;
375
+ }
376
+ return gateObj;
377
+ }),
372
378
  hooks: {
373
379
  beforeAll: result.hooks.beforeAll.length,
374
380
  afterAll: result.hooks.afterAll.length
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qa360",
3
- "version": "1.1.8",
3
+ "version": "1.2.1",
4
4
  "description": "QA360 Proof CLI - Quality as Cryptographic Proof",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",