agent-passport-system 2.3.0-alpha → 2.5.0-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/README.md +22 -4
  2. package/dist/src/index.d.ts +4 -0
  3. package/dist/src/index.d.ts.map +1 -1
  4. package/dist/src/index.js +8 -0
  5. package/dist/src/index.js.map +1 -1
  6. package/dist/src/v2/accountability/__tests__/action.test.d.ts +2 -0
  7. package/dist/src/v2/accountability/__tests__/action.test.d.ts.map +1 -0
  8. package/dist/src/v2/accountability/__tests__/action.test.js +101 -0
  9. package/dist/src/v2/accountability/__tests__/action.test.js.map +1 -0
  10. package/dist/src/v2/accountability/__tests__/authority-boundary.test.d.ts +2 -0
  11. package/dist/src/v2/accountability/__tests__/authority-boundary.test.d.ts.map +1 -0
  12. package/dist/src/v2/accountability/__tests__/authority-boundary.test.js +79 -0
  13. package/dist/src/v2/accountability/__tests__/authority-boundary.test.js.map +1 -0
  14. package/dist/src/v2/accountability/__tests__/bundle.test.d.ts +2 -0
  15. package/dist/src/v2/accountability/__tests__/bundle.test.d.ts.map +1 -0
  16. package/dist/src/v2/accountability/__tests__/bundle.test.js +122 -0
  17. package/dist/src/v2/accountability/__tests__/bundle.test.js.map +1 -0
  18. package/dist/src/v2/accountability/__tests__/contestability.test.d.ts +2 -0
  19. package/dist/src/v2/accountability/__tests__/contestability.test.d.ts.map +1 -0
  20. package/dist/src/v2/accountability/__tests__/contestability.test.js +205 -0
  21. package/dist/src/v2/accountability/__tests__/contestability.test.js.map +1 -0
  22. package/dist/src/v2/accountability/__tests__/custody.test.d.ts +2 -0
  23. package/dist/src/v2/accountability/__tests__/custody.test.d.ts.map +1 -0
  24. package/dist/src/v2/accountability/__tests__/custody.test.js +155 -0
  25. package/dist/src/v2/accountability/__tests__/custody.test.js.map +1 -0
  26. package/dist/src/v2/accountability/__tests__/fixtures.test.d.ts +2 -0
  27. package/dist/src/v2/accountability/__tests__/fixtures.test.d.ts.map +1 -0
  28. package/dist/src/v2/accountability/__tests__/fixtures.test.js +48 -0
  29. package/dist/src/v2/accountability/__tests__/fixtures.test.js.map +1 -0
  30. package/dist/src/v2/accountability/construct/action.d.ts +7 -0
  31. package/dist/src/v2/accountability/construct/action.d.ts.map +1 -0
  32. package/dist/src/v2/accountability/construct/action.js +46 -0
  33. package/dist/src/v2/accountability/construct/action.js.map +1 -0
  34. package/dist/src/v2/accountability/construct/authority-boundary.d.ts +7 -0
  35. package/dist/src/v2/accountability/construct/authority-boundary.d.ts.map +1 -0
  36. package/dist/src/v2/accountability/construct/authority-boundary.js +34 -0
  37. package/dist/src/v2/accountability/construct/authority-boundary.js.map +1 -0
  38. package/dist/src/v2/accountability/construct/bundle.d.ts +19 -0
  39. package/dist/src/v2/accountability/construct/bundle.d.ts.map +1 -0
  40. package/dist/src/v2/accountability/construct/bundle.js +63 -0
  41. package/dist/src/v2/accountability/construct/bundle.js.map +1 -0
  42. package/dist/src/v2/accountability/construct/contestability.d.ts +9 -0
  43. package/dist/src/v2/accountability/construct/contestability.d.ts.map +1 -0
  44. package/dist/src/v2/accountability/construct/contestability.js +62 -0
  45. package/dist/src/v2/accountability/construct/contestability.js.map +1 -0
  46. package/dist/src/v2/accountability/construct/custody.d.ts +7 -0
  47. package/dist/src/v2/accountability/construct/custody.d.ts.map +1 -0
  48. package/dist/src/v2/accountability/construct/custody.js +41 -0
  49. package/dist/src/v2/accountability/construct/custody.js.map +1 -0
  50. package/dist/src/v2/accountability/index.d.ts +12 -0
  51. package/dist/src/v2/accountability/index.d.ts.map +1 -0
  52. package/dist/src/v2/accountability/index.js +37 -0
  53. package/dist/src/v2/accountability/index.js.map +1 -0
  54. package/dist/src/v2/accountability/types/action.d.ts +24 -0
  55. package/dist/src/v2/accountability/types/action.d.ts.map +1 -0
  56. package/dist/src/v2/accountability/types/action.js +11 -0
  57. package/dist/src/v2/accountability/types/action.js.map +1 -0
  58. package/dist/src/v2/accountability/types/authority-boundary.d.ts +16 -0
  59. package/dist/src/v2/accountability/types/authority-boundary.d.ts.map +1 -0
  60. package/dist/src/v2/accountability/types/authority-boundary.js +12 -0
  61. package/dist/src/v2/accountability/types/authority-boundary.js.map +1 -0
  62. package/dist/src/v2/accountability/types/base.d.ts +35 -0
  63. package/dist/src/v2/accountability/types/base.d.ts.map +1 -0
  64. package/dist/src/v2/accountability/types/base.js +10 -0
  65. package/dist/src/v2/accountability/types/base.js.map +1 -0
  66. package/dist/src/v2/accountability/types/bundle.d.ts +23 -0
  67. package/dist/src/v2/accountability/types/bundle.d.ts.map +1 -0
  68. package/dist/src/v2/accountability/types/bundle.js +12 -0
  69. package/dist/src/v2/accountability/types/bundle.js.map +1 -0
  70. package/dist/src/v2/accountability/types/contestability.d.ts +31 -0
  71. package/dist/src/v2/accountability/types/contestability.d.ts.map +1 -0
  72. package/dist/src/v2/accountability/types/contestability.js +18 -0
  73. package/dist/src/v2/accountability/types/contestability.js.map +1 -0
  74. package/dist/src/v2/accountability/types/custody.d.ts +18 -0
  75. package/dist/src/v2/accountability/types/custody.d.ts.map +1 -0
  76. package/dist/src/v2/accountability/types/custody.js +14 -0
  77. package/dist/src/v2/accountability/types/custody.js.map +1 -0
  78. package/dist/src/v2/accountability/types/index.d.ts +7 -0
  79. package/dist/src/v2/accountability/types/index.d.ts.map +1 -0
  80. package/dist/src/v2/accountability/types/index.js +7 -0
  81. package/dist/src/v2/accountability/types/index.js.map +1 -0
  82. package/dist/src/v2/accountability/verify/action.d.ts +8 -0
  83. package/dist/src/v2/accountability/verify/action.d.ts.map +1 -0
  84. package/dist/src/v2/accountability/verify/action.js +33 -0
  85. package/dist/src/v2/accountability/verify/action.js.map +1 -0
  86. package/dist/src/v2/accountability/verify/authority-boundary.d.ts +8 -0
  87. package/dist/src/v2/accountability/verify/authority-boundary.d.ts.map +1 -0
  88. package/dist/src/v2/accountability/verify/authority-boundary.js +26 -0
  89. package/dist/src/v2/accountability/verify/authority-boundary.js.map +1 -0
  90. package/dist/src/v2/accountability/verify/bundle.d.ts +8 -0
  91. package/dist/src/v2/accountability/verify/bundle.d.ts.map +1 -0
  92. package/dist/src/v2/accountability/verify/bundle.js +31 -0
  93. package/dist/src/v2/accountability/verify/bundle.js.map +1 -0
  94. package/dist/src/v2/accountability/verify/contestability.d.ts +8 -0
  95. package/dist/src/v2/accountability/verify/contestability.d.ts.map +1 -0
  96. package/dist/src/v2/accountability/verify/contestability.js +107 -0
  97. package/dist/src/v2/accountability/verify/contestability.js.map +1 -0
  98. package/dist/src/v2/accountability/verify/custody.d.ts +8 -0
  99. package/dist/src/v2/accountability/verify/custody.d.ts.map +1 -0
  100. package/dist/src/v2/accountability/verify/custody.js +58 -0
  101. package/dist/src/v2/accountability/verify/custody.js.map +1 -0
  102. package/dist/src/v2/index.d.ts +2 -0
  103. package/dist/src/v2/index.d.ts.map +1 -1
  104. package/dist/src/v2/index.js +4 -0
  105. package/dist/src/v2/index.js.map +1 -1
  106. package/dist/src/v2/instruction-provenance/canonicalize.d.ts +50 -0
  107. package/dist/src/v2/instruction-provenance/canonicalize.d.ts.map +1 -0
  108. package/dist/src/v2/instruction-provenance/canonicalize.js +128 -0
  109. package/dist/src/v2/instruction-provenance/canonicalize.js.map +1 -0
  110. package/dist/src/v2/instruction-provenance/envelope.d.ts +22 -0
  111. package/dist/src/v2/instruction-provenance/envelope.d.ts.map +1 -0
  112. package/dist/src/v2/instruction-provenance/envelope.js +107 -0
  113. package/dist/src/v2/instruction-provenance/envelope.js.map +1 -0
  114. package/dist/src/v2/instruction-provenance/index.d.ts +5 -0
  115. package/dist/src/v2/instruction-provenance/index.d.ts.map +1 -0
  116. package/dist/src/v2/instruction-provenance/index.js +11 -0
  117. package/dist/src/v2/instruction-provenance/index.js.map +1 -0
  118. package/dist/src/v2/instruction-provenance/types.d.ts +133 -0
  119. package/dist/src/v2/instruction-provenance/types.d.ts.map +1 -0
  120. package/dist/src/v2/instruction-provenance/types.js +11 -0
  121. package/dist/src/v2/instruction-provenance/types.js.map +1 -0
  122. package/dist/src/v2/instruction-provenance/verify.d.ts +28 -0
  123. package/dist/src/v2/instruction-provenance/verify.d.ts.map +1 -0
  124. package/dist/src/v2/instruction-provenance/verify.js +311 -0
  125. package/dist/src/v2/instruction-provenance/verify.js.map +1 -0
  126. package/package.json +3 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../../../src/v2/accountability/verify/action.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD,MAAM,MAAM,yBAAyB,GACjC,oBAAoB,GACpB,qBAAqB,GACrB,mBAAmB,CAAA;AAEvB,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,yBAAyB,CAAA;CACnC;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,yBAAyB,CAsBrF"}
@@ -0,0 +1,33 @@
1
+ // Copyright 2024-2026 Tymofii Pidlisnyi. Apache-2.0 license. See LICENSE.
2
+ // ══════════════════════════════════════════════════════════════════
3
+ // ActionReceipt — verification
4
+ // ══════════════════════════════════════════════════════════════════
5
+ // Three failure modes:
6
+ // INVALID_CLAIM_TYPE — receipt is not aps:action:v1
7
+ // RECEIPT_ID_MISMATCH — receipt_id does not equal sha256(JCS(empty-id form))
8
+ // SIGNATURE_INVALID — Ed25519 signature does not verify under signer_did
9
+ // ══════════════════════════════════════════════════════════════════
10
+ import { createHash } from 'node:crypto';
11
+ import { canonicalizeJCS } from '../../../core/canonical-jcs.js';
12
+ import { verify } from '../../../crypto/keys.js';
13
+ export function verifyActionReceipt(receipt) {
14
+ if (receipt.claim_type !== 'aps:action:v1') {
15
+ return { valid: false, reason: 'INVALID_CLAIM_TYPE' };
16
+ }
17
+ // Re-derive receipt_id over the empty-id, empty-signature form.
18
+ const draftForId = { ...receipt, receipt_id: '', signature: '' };
19
+ const expectedReceiptId = createHash('sha256')
20
+ .update(canonicalizeJCS(draftForId), 'utf8')
21
+ .digest('hex');
22
+ if (receipt.receipt_id !== expectedReceiptId) {
23
+ return { valid: false, reason: 'RECEIPT_ID_MISMATCH' };
24
+ }
25
+ // Verify signature over the populated-id, empty-signature form.
26
+ const draftForSig = { ...receipt, signature: '' };
27
+ const ok = verify(canonicalizeJCS(draftForSig), receipt.signature, receipt.signer_did);
28
+ if (!ok) {
29
+ return { valid: false, reason: 'SIGNATURE_INVALID' };
30
+ }
31
+ return { valid: true };
32
+ }
33
+ //# sourceMappingURL=action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.js","sourceRoot":"","sources":["../../../../../src/v2/accountability/verify/action.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,qEAAqE;AACrE,+BAA+B;AAC/B,qEAAqE;AACrE,uBAAuB;AACvB,uDAAuD;AACvD,+EAA+E;AAC/E,6EAA6E;AAC7E,qEAAqE;AAErE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAahD,MAAM,UAAU,mBAAmB,CAAC,OAAsB;IACxD,IAAI,OAAO,CAAC,UAAU,KAAK,eAAe,EAAE,CAAC;QAC3C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAA;IACvD,CAAC;IAED,gEAAgE;IAChE,MAAM,UAAU,GAAkB,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;IAC/E,MAAM,iBAAiB,GAAG,UAAU,CAAC,QAAQ,CAAC;SAC3C,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;SAC3C,MAAM,CAAC,KAAK,CAAC,CAAA;IAChB,IAAI,OAAO,CAAC,UAAU,KAAK,iBAAiB,EAAE,CAAC;QAC7C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAA;IACxD,CAAC;IAED,gEAAgE;IAChE,MAAM,WAAW,GAAkB,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;IAChE,MAAM,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IACtF,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAA;IACtD,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;AACxB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { AuthorityBoundaryReceipt } from '../types/authority-boundary.js';
2
+ export type AuthorityBoundaryReceiptVerifyReason = 'INVALID_CLAIM_TYPE' | 'RECEIPT_ID_MISMATCH' | 'SIGNATURE_INVALID';
3
+ export interface AuthorityBoundaryReceiptVerifyResult {
4
+ valid: boolean;
5
+ reason?: AuthorityBoundaryReceiptVerifyReason;
6
+ }
7
+ export declare function verifyAuthorityBoundaryReceipt(receipt: AuthorityBoundaryReceipt): AuthorityBoundaryReceiptVerifyResult;
8
+ //# sourceMappingURL=authority-boundary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authority-boundary.d.ts","sourceRoot":"","sources":["../../../../../src/v2/accountability/verify/authority-boundary.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAA;AAE9E,MAAM,MAAM,oCAAoC,GAC5C,oBAAoB,GACpB,qBAAqB,GACrB,mBAAmB,CAAA;AAEvB,MAAM,WAAW,oCAAoC;IACnD,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,oCAAoC,CAAA;CAC9C;AAED,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,wBAAwB,GAChC,oCAAoC,CAoBtC"}
@@ -0,0 +1,26 @@
1
+ // Copyright 2024-2026 Tymofii Pidlisnyi. Apache-2.0 license. See LICENSE.
2
+ // ══════════════════════════════════════════════════════════════════
3
+ // AuthorityBoundaryReceipt — verification
4
+ // ══════════════════════════════════════════════════════════════════
5
+ import { createHash } from 'node:crypto';
6
+ import { canonicalizeJCS } from '../../../core/canonical-jcs.js';
7
+ import { verify } from '../../../crypto/keys.js';
8
+ export function verifyAuthorityBoundaryReceipt(receipt) {
9
+ if (receipt.claim_type !== 'aps:authority_boundary:v1') {
10
+ return { valid: false, reason: 'INVALID_CLAIM_TYPE' };
11
+ }
12
+ const draftForId = { ...receipt, receipt_id: '', signature: '' };
13
+ const expectedReceiptId = createHash('sha256')
14
+ .update(canonicalizeJCS(draftForId), 'utf8')
15
+ .digest('hex');
16
+ if (receipt.receipt_id !== expectedReceiptId) {
17
+ return { valid: false, reason: 'RECEIPT_ID_MISMATCH' };
18
+ }
19
+ const draftForSig = { ...receipt, signature: '' };
20
+ const ok = verify(canonicalizeJCS(draftForSig), receipt.signature, receipt.signer_did);
21
+ if (!ok) {
22
+ return { valid: false, reason: 'SIGNATURE_INVALID' };
23
+ }
24
+ return { valid: true };
25
+ }
26
+ //# sourceMappingURL=authority-boundary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authority-boundary.js","sourceRoot":"","sources":["../../../../../src/v2/accountability/verify/authority-boundary.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,qEAAqE;AACrE,0CAA0C;AAC1C,qEAAqE;AAErE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAahD,MAAM,UAAU,8BAA8B,CAC5C,OAAiC;IAEjC,IAAI,OAAO,CAAC,UAAU,KAAK,2BAA2B,EAAE,CAAC;QACvD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAA;IACvD,CAAC;IAED,MAAM,UAAU,GAA6B,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;IAC1F,MAAM,iBAAiB,GAAG,UAAU,CAAC,QAAQ,CAAC;SAC3C,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;SAC3C,MAAM,CAAC,KAAK,CAAC,CAAA;IAChB,IAAI,OAAO,CAAC,UAAU,KAAK,iBAAiB,EAAE,CAAC;QAC7C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAA;IACxD,CAAC;IAED,MAAM,WAAW,GAA6B,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;IAC3E,MAAM,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IACtF,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAA;IACtD,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;AACxB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { APSBundle } from '../types/bundle.js';
2
+ export type APSBundleVerifyReason = 'INVALID_CLAIM_TYPE' | 'INVALID_MERKLE_ROOT' | 'INVALID_RECEIPT_COUNT' | 'RECEIPT_ID_MISMATCH' | 'SIGNATURE_INVALID';
3
+ export interface APSBundleVerifyResult {
4
+ valid: boolean;
5
+ reason?: APSBundleVerifyReason;
6
+ }
7
+ export declare function verifyAPSBundle(bundle: APSBundle): APSBundleVerifyResult;
8
+ //# sourceMappingURL=bundle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../../../../src/v2/accountability/verify/bundle.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAEnD,MAAM,MAAM,qBAAqB,GAC7B,oBAAoB,GACpB,qBAAqB,GACrB,uBAAuB,GACvB,qBAAqB,GACrB,mBAAmB,CAAA;AAEvB,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,qBAAqB,CAAA;CAC/B;AAMD,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,qBAAqB,CAsBxE"}
@@ -0,0 +1,31 @@
1
+ // Copyright 2024-2026 Tymofii Pidlisnyi. Apache-2.0 license. See LICENSE.
2
+ // ══════════════════════════════════════════════════════════════════
3
+ // APSBundle — verification
4
+ // ══════════════════════════════════════════════════════════════════
5
+ import { createHash } from 'node:crypto';
6
+ import { canonicalizeJCS } from '../../../core/canonical-jcs.js';
7
+ import { verify as edVerifyHex } from '../../../crypto/keys.js';
8
+ function sha256Hex(input) {
9
+ return createHash('sha256').update(input, 'utf-8').digest('hex');
10
+ }
11
+ export function verifyAPSBundle(bundle) {
12
+ if (bundle.claim_type !== 'aps:bundle:v1') {
13
+ return { valid: false, reason: 'INVALID_CLAIM_TYPE' };
14
+ }
15
+ if (typeof bundle.merkle_root !== 'string' || bundle.merkle_root.length !== 64) {
16
+ return { valid: false, reason: 'INVALID_MERKLE_ROOT' };
17
+ }
18
+ if (!Number.isInteger(bundle.receipt_count) || bundle.receipt_count < 0) {
19
+ return { valid: false, reason: 'INVALID_RECEIPT_COUNT' };
20
+ }
21
+ const idCheck = sha256Hex(canonicalizeJCS({ ...bundle, receipt_id: '', signature: undefined }));
22
+ if (idCheck !== bundle.receipt_id) {
23
+ return { valid: false, reason: 'RECEIPT_ID_MISMATCH' };
24
+ }
25
+ const sigPayload = canonicalizeJCS({ ...bundle, signature: undefined });
26
+ if (!edVerifyHex(sigPayload, bundle.signature, bundle.signer_did)) {
27
+ return { valid: false, reason: 'SIGNATURE_INVALID' };
28
+ }
29
+ return { valid: true };
30
+ }
31
+ //# sourceMappingURL=bundle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../../../../src/v2/accountability/verify/bundle.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,qEAAqE;AACrE,2BAA2B;AAC3B,qEAAqE;AAErE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAe/D,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;AAClE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,IAAI,MAAM,CAAC,UAAU,KAAK,eAAe,EAAE,CAAC;QAC1C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAA;IACvD,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAC/E,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAA;IACxD,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;QACxE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,EAAE,CAAA;IAC1D,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,eAAe,CAAC,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;IAC/F,IAAI,OAAO,KAAK,MAAM,CAAC,UAAU,EAAE,CAAC;QAClC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAA;IACxD,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAA;IACvE,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAClE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAA;IACtD,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;AACxB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ContestabilityReceipt } from '../types/contestability.js';
2
+ export type ContestabilityReceiptVerifyReason = 'INVALID_CLAIM_TYPE' | 'MISSING_CONTESTANT_IDENTITY' | 'INVALID_STANDING_BASIS' | 'INVALID_REMEDY' | 'INVALID_CONTEST_STATUS' | 'RECEIPT_ID_MISMATCH' | 'SIGNATURE_INVALID' | 'CONTROLLER_SIGNATURE_INVALID';
3
+ export interface ContestabilityReceiptVerifyResult {
4
+ valid: boolean;
5
+ reason?: ContestabilityReceiptVerifyReason;
6
+ }
7
+ export declare function verifyContestabilityReceipt(receipt: ContestabilityReceipt): ContestabilityReceiptVerifyResult;
8
+ //# sourceMappingURL=contestability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contestability.d.ts","sourceRoot":"","sources":["../../../../../src/v2/accountability/verify/contestability.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EACV,qBAAqB,EAKtB,MAAM,4BAA4B,CAAA;AAEnC,MAAM,MAAM,iCAAiC,GACzC,oBAAoB,GACpB,6BAA6B,GAC7B,wBAAwB,GACxB,gBAAgB,GAChB,wBAAwB,GACxB,qBAAqB,GACrB,mBAAmB,GACnB,8BAA8B,CAAA;AAElC,MAAM,WAAW,iCAAiC;IAChD,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,iCAAiC,CAAA;CAC3C;AAsCD,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,qBAAqB,GAC7B,iCAAiC,CAsEnC"}
@@ -0,0 +1,107 @@
1
+ // Copyright 2024-2026 Tymofii Pidlisnyi. Apache-2.0 license. See LICENSE.
2
+ // ══════════════════════════════════════════════════════════════════
3
+ // ContestabilityReceipt — verification
4
+ // ══════════════════════════════════════════════════════════════════
5
+ // Failure modes:
6
+ // INVALID_CLAIM_TYPE — claim_type is not 'aps:contestability:v1'
7
+ // MISSING_CONTESTANT_IDENTITY — contestant has neither did nor pseudonym_hash
8
+ // INVALID_STANDING_BASIS — outside the closed taxonomy
9
+ // INVALID_REMEDY — outside the closed taxonomy
10
+ // INVALID_CONTEST_STATUS — outside the closed taxonomy (response only)
11
+ // RECEIPT_ID_MISMATCH — receipt_id does not equal sha256(JCS(filing form))
12
+ // SIGNATURE_INVALID — outer (contestant) signature does not verify
13
+ // CONTROLLER_SIGNATURE_INVALID — response_signature does not verify
14
+ // ══════════════════════════════════════════════════════════════════
15
+ import { createHash } from 'node:crypto';
16
+ import { canonicalizeJCS } from '../../../core/canonical-jcs.js';
17
+ import { verify } from '../../../crypto/keys.js';
18
+ const VALID_STANDING = [
19
+ 'data_subject',
20
+ 'third_party',
21
+ 'regulator',
22
+ 'court',
23
+ 'internal_audit',
24
+ 'insurer',
25
+ 'principal',
26
+ ];
27
+ const VALID_REMEDY = [
28
+ 'rollback',
29
+ 'review',
30
+ 'explanation',
31
+ 'compensation',
32
+ 'erasure',
33
+ 'modification',
34
+ ];
35
+ const VALID_STATUS = [
36
+ 'filed',
37
+ 'under_review',
38
+ 'upheld',
39
+ 'rejected',
40
+ 'remedied',
41
+ 'expired',
42
+ 'abandoned',
43
+ ];
44
+ /** Strip controller_response to recover the receipt as the contestant
45
+ * originally signed it. */
46
+ function withoutControllerResponse(receipt) {
47
+ const { controller_response: _ignored, ...rest } = receipt;
48
+ return rest;
49
+ }
50
+ export function verifyContestabilityReceipt(receipt) {
51
+ if (receipt.claim_type !== 'aps:contestability:v1') {
52
+ return { valid: false, reason: 'INVALID_CLAIM_TYPE' };
53
+ }
54
+ const hasDid = receipt.contestant.did !== undefined && receipt.contestant.did !== '';
55
+ const hasPseudo = receipt.contestant.pseudonym_hash !== undefined &&
56
+ receipt.contestant.pseudonym_hash !== '';
57
+ if (!hasDid && !hasPseudo) {
58
+ return { valid: false, reason: 'MISSING_CONTESTANT_IDENTITY' };
59
+ }
60
+ if (!VALID_STANDING.includes(receipt.contestant.standing_basis)) {
61
+ return { valid: false, reason: 'INVALID_STANDING_BASIS' };
62
+ }
63
+ if (!VALID_REMEDY.includes(receipt.requested_remedy)) {
64
+ return { valid: false, reason: 'INVALID_REMEDY' };
65
+ }
66
+ if (receipt.controller_response !== undefined &&
67
+ !VALID_STATUS.includes(receipt.controller_response.status)) {
68
+ return { valid: false, reason: 'INVALID_CONTEST_STATUS' };
69
+ }
70
+ // Re-derive receipt_id over the filing form: empty receipt_id, empty
71
+ // signature, no controller_response.
72
+ const filingDraft = withoutControllerResponse({
73
+ ...receipt,
74
+ receipt_id: '',
75
+ signature: '',
76
+ });
77
+ const expectedReceiptId = createHash('sha256')
78
+ .update(canonicalizeJCS(filingDraft), 'utf8')
79
+ .digest('hex');
80
+ if (receipt.receipt_id !== expectedReceiptId) {
81
+ return { valid: false, reason: 'RECEIPT_ID_MISMATCH' };
82
+ }
83
+ // Verify outer (contestant) signature over the filing form with
84
+ // populated receipt_id and empty signature.
85
+ const sigDraft = withoutControllerResponse({ ...receipt, signature: '' });
86
+ const outerOk = verify(canonicalizeJCS(sigDraft), receipt.signature, receipt.signer_did);
87
+ if (!outerOk) {
88
+ return { valid: false, reason: 'SIGNATURE_INVALID' };
89
+ }
90
+ // Verify controller response signature, if present.
91
+ if (receipt.controller_response !== undefined) {
92
+ const respDraft = {
93
+ ...receipt.controller_response,
94
+ response_signature: '',
95
+ };
96
+ const fullDraft = {
97
+ ...receipt,
98
+ controller_response: respDraft,
99
+ };
100
+ const respOk = verify(canonicalizeJCS(fullDraft), receipt.controller_response.response_signature, receipt.controller_response.responder_did);
101
+ if (!respOk) {
102
+ return { valid: false, reason: 'CONTROLLER_SIGNATURE_INVALID' };
103
+ }
104
+ }
105
+ return { valid: true };
106
+ }
107
+ //# sourceMappingURL=contestability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contestability.js","sourceRoot":"","sources":["../../../../../src/v2/accountability/verify/contestability.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { CustodyReceipt } from '../types/custody.js';
2
+ export type CustodyReceiptVerifyReason = 'INVALID_CLAIM_TYPE' | 'INVALID_EVENT_TYPE' | 'INVALID_PURPOSE' | 'RECEIPT_ID_MISMATCH' | 'SIGNATURE_INVALID';
3
+ export interface CustodyReceiptVerifyResult {
4
+ valid: boolean;
5
+ reason?: CustodyReceiptVerifyReason;
6
+ }
7
+ export declare function verifyCustodyReceipt(receipt: CustodyReceipt): CustodyReceiptVerifyResult;
8
+ //# sourceMappingURL=custody.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custody.d.ts","sourceRoot":"","sources":["../../../../../src/v2/accountability/verify/custody.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,qBAAqB,CAAA;AAE5B,MAAM,MAAM,0BAA0B,GAClC,oBAAoB,GACpB,oBAAoB,GACpB,iBAAiB,GACjB,qBAAqB,GACrB,mBAAmB,CAAA;AAEvB,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,0BAA0B,CAAA;CACpC;AAuBD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,0BAA0B,CA0BxF"}
@@ -0,0 +1,58 @@
1
+ // Copyright 2024-2026 Tymofii Pidlisnyi. Apache-2.0 license. See LICENSE.
2
+ // ══════════════════════════════════════════════════════════════════
3
+ // CustodyReceipt — verification
4
+ // ══════════════════════════════════════════════════════════════════
5
+ // Five failure modes:
6
+ // INVALID_CLAIM_TYPE — claim_type is not 'aps:custody:v1'
7
+ // INVALID_EVENT_TYPE — event_type is outside the closed taxonomy
8
+ // INVALID_PURPOSE — purpose is outside the closed taxonomy
9
+ // RECEIPT_ID_MISMATCH — receipt_id does not equal sha256(JCS(empty-id form))
10
+ // SIGNATURE_INVALID — Ed25519 signature does not verify under signer_did
11
+ // ══════════════════════════════════════════════════════════════════
12
+ import { createHash } from 'node:crypto';
13
+ import { canonicalizeJCS } from '../../../core/canonical-jcs.js';
14
+ import { verify } from '../../../crypto/keys.js';
15
+ const VALID_EVENT_TYPES = [
16
+ 'created',
17
+ 'sealed',
18
+ 'transferred',
19
+ 'disclosed',
20
+ 'redacted',
21
+ 'erased',
22
+ 'expired',
23
+ 'verified',
24
+ ];
25
+ const VALID_PURPOSES = [
26
+ 'internal_audit',
27
+ 'regulator_disclosure',
28
+ 'subject_access',
29
+ 'litigation_discovery',
30
+ 'vendor_handoff',
31
+ 'archival',
32
+ 'incident_response',
33
+ ];
34
+ export function verifyCustodyReceipt(receipt) {
35
+ if (receipt.claim_type !== 'aps:custody:v1') {
36
+ return { valid: false, reason: 'INVALID_CLAIM_TYPE' };
37
+ }
38
+ if (!VALID_EVENT_TYPES.includes(receipt.event_type)) {
39
+ return { valid: false, reason: 'INVALID_EVENT_TYPE' };
40
+ }
41
+ if (!VALID_PURPOSES.includes(receipt.purpose)) {
42
+ return { valid: false, reason: 'INVALID_PURPOSE' };
43
+ }
44
+ const draftForId = { ...receipt, receipt_id: '', signature: '' };
45
+ const expectedReceiptId = createHash('sha256')
46
+ .update(canonicalizeJCS(draftForId), 'utf8')
47
+ .digest('hex');
48
+ if (receipt.receipt_id !== expectedReceiptId) {
49
+ return { valid: false, reason: 'RECEIPT_ID_MISMATCH' };
50
+ }
51
+ const draftForSig = { ...receipt, signature: '' };
52
+ const ok = verify(canonicalizeJCS(draftForSig), receipt.signature, receipt.signer_did);
53
+ if (!ok) {
54
+ return { valid: false, reason: 'SIGNATURE_INVALID' };
55
+ }
56
+ return { valid: true };
57
+ }
58
+ //# sourceMappingURL=custody.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custody.js","sourceRoot":"","sources":["../../../../../src/v2/accountability/verify/custody.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,qEAAqE;AACrE,gCAAgC;AAChC,qEAAqE;AACrE,sBAAsB;AACtB,8DAA8D;AAC9D,qEAAqE;AACrE,kEAAkE;AAClE,gFAAgF;AAChF,8EAA8E;AAC9E,qEAAqE;AAErE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAmBhD,MAAM,iBAAiB,GAAgC;IACrD,SAAS;IACT,QAAQ;IACR,aAAa;IACb,WAAW;IACX,UAAU;IACV,QAAQ;IACR,SAAS;IACT,UAAU;CACX,CAAA;AAED,MAAM,cAAc,GAA8B;IAChD,gBAAgB;IAChB,sBAAsB;IACtB,gBAAgB;IAChB,sBAAsB;IACtB,gBAAgB;IAChB,UAAU;IACV,mBAAmB;CACpB,CAAA;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAuB;IAC1D,IAAI,OAAO,CAAC,UAAU,KAAK,gBAAgB,EAAE,CAAC;QAC5C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAA;IACvD,CAAC;IACD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACpD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAA;IACvD,CAAC;IACD,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAA;IACpD,CAAC;IAED,MAAM,UAAU,GAAmB,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;IAChF,MAAM,iBAAiB,GAAG,UAAU,CAAC,QAAQ,CAAC;SAC3C,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;SAC3C,MAAM,CAAC,KAAK,CAAC,CAAA;IAChB,IAAI,OAAO,CAAC,UAAU,KAAK,iBAAiB,EAAE,CAAC;QAC7C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAA;IACxD,CAAC;IAED,MAAM,WAAW,GAAmB,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;IACjE,MAAM,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;IACtF,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAA;IACtD,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;AACxB,CAAC"}
@@ -41,4 +41,6 @@ export { aggregateAttributionPrimitives, buildContributorMerklePath, buildContri
41
41
  export type { AggregateOptions as AttributionSettlementAggregateOptions, ContributorQueryAxisBody as AttributionContributorQueryAxisBody, ContributorQueryResponse as AttributionContributorQueryResponse, SettlementAxisIndex as AttributionSettlementAxisIndex, SettlementContributor as AttributionSettlementContributor, SettlementPeriod as AttributionSettlementPeriod, SettlementRecord as AttributionSettlementRecord, SettlementResidualBucket as AttributionSettlementResidualBucket, SettlementVerifyReason as AttributionSettlementVerifyReason, SettlementVerifyResult as AttributionSettlementVerifyResult, VerifySettlementOptions as AttributionVerifySettlementOptions, } from './attribution-settlement/index.js';
42
42
  export { ATTRIBUTION_AXIS_TAGS, DEFAULT_MIN_WEIGHT, aggregateComputeAxis, aggregateDataAxis, aggregateProtocolAxis, assertCanonicalTimestamp, buildMerkleFrame, canonicalTimestamp as attributionCanonicalTimestamp, canonicalHashHex as attributionCanonicalHashHex, checkProjectionConsistency, computeAttributionActionRef, constructAttributionPrimitive, envelopeBytes, hashAxisLeaf, hashNode, normalizeAxes, orderGovernanceAxis, projectAllAxes, projectAttribution, projectionPath, projectionDataAsC, projectionDataAsD, projectionDataAsG, projectionDataAsP, reconstructRoot, resignAttributionPrimitive, sortComputeAxis, sortDataAxis, sortProtocolAxis, toWeightString, verifyAttributionPrimitive, verifyAttributionProjection, } from './attribution-primitive/index.js';
43
43
  export type { AggregateOptions, AggregationResult, AttributionAction, AttributionAxes, AttributionAxisTag, AttributionConsistencyResult, AttributionEnvelope, AttributionPrimitive, AttributionProjection, AttributionVerifyResult, ComputeAxisEntry, ComputeAxisItem, ConstructAttributionParams, DataAxisEntry, DataAxisItem, GovernanceAxisEntry, MerkleFrame, ProtocolAxisEntry, ProtocolAxisItem, ResidualBucket, } from './attribution-primitive/index.js';
44
+ export { createActionReceipt, createAuthorityBoundaryReceipt, createCustodyReceipt, createContestabilityReceipt, attachControllerResponse, createAPSBundle, computeMerkleRoot, verifyActionReceipt, verifyAuthorityBoundaryReceipt, verifyCustodyReceipt, verifyContestabilityReceipt, verifyAPSBundle, } from './accountability/index.js';
45
+ export type { AccountabilityReceiptBase, CaptureMode, Completeness, ScopeOfClaim, ActionReceipt, SideEffectClass, AuthorityBoundaryReceipt, BoundaryResult, CustodyReceipt, CustodyEventType, CustodyPurpose, ContestabilityReceipt, StandingBasis, RequestedRemedy, ContestStatus, APSBundle, BundledReceiptRef, } from './accountability/index.js';
44
46
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/v2/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/v2/index.ts"],"names":[],"mappings":"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"}
@@ -74,4 +74,8 @@ export { aggregateAttributionPrimitives, buildContributorMerklePath, buildContri
74
74
  // attribution-consent (that module's AttributionReceipt is a citation-
75
75
  // consent primitive; this one is the per-action cross-axis primitive).
76
76
  export { ATTRIBUTION_AXIS_TAGS, DEFAULT_MIN_WEIGHT, aggregateComputeAxis, aggregateDataAxis, aggregateProtocolAxis, assertCanonicalTimestamp, buildMerkleFrame, canonicalTimestamp as attributionCanonicalTimestamp, canonicalHashHex as attributionCanonicalHashHex, checkProjectionConsistency, computeAttributionActionRef, constructAttributionPrimitive, envelopeBytes, hashAxisLeaf, hashNode, normalizeAxes, orderGovernanceAxis, projectAllAxes, projectAttribution, projectionPath, projectionDataAsC, projectionDataAsD, projectionDataAsG, projectionDataAsP, reconstructRoot, resignAttributionPrimitive, sortComputeAxis, sortDataAxis, sortProtocolAxis, toWeightString, verifyAttributionPrimitive, verifyAttributionProjection, } from './attribution-primitive/index.js';
77
+ // ══════════════════════════════════════
78
+ // Accountability MVP (Wave 1)
79
+ // ══════════════════════════════════════
80
+ export { createActionReceipt, createAuthorityBoundaryReceipt, createCustodyReceipt, createContestabilityReceipt, attachControllerResponse, createAPSBundle, computeMerkleRoot, verifyActionReceipt, verifyAuthorityBoundaryReceipt, verifyCustodyReceipt, verifyContestabilityReceipt, verifyAPSBundle, } from './accountability/index.js';
77
81
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/v2/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/v2/index.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E;;;GAGG;AAuBH,8DAA8D;AAC9D,OAAO,EACL,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAC5C,mBAAmB,EAAE,qBAAqB,EAAE,sBAAsB,EAClE,gBAAgB,EAAE,gBAAgB,EAClC,wBAAwB,EAAE,uBAAuB,EACjD,oBAAoB,EACpB,0BAA0B,EAAE,uBAAuB,EACnD,kBAAkB,GACnB,MAAM,aAAa,CAAA;AAEpB,2BAA2B;AAC3B,OAAO,EACL,kBAAkB,EAAE,qBAAqB,EAAE,iBAAiB,EAC5D,kBAAkB,EAAE,oBAAoB,EACxC,eAAe,EAAE,mBAAmB,EAAE,qBAAqB,EAC3D,wBAAwB,EAAE,wBAAwB,EAClD,oBAAoB,EAAE,sBAAsB,EAC5C,gBAAgB,EAAE,gBAAgB,GACnC,MAAM,oBAAoB,CAAA;AAG3B,0BAA0B;AAC1B,OAAO,EACL,qBAAqB,EAAE,oBAAoB,EAAE,sBAAsB,EACnE,kBAAkB,EAAE,qBAAqB,EACzC,wBAAwB,EAAE,2BAA2B,EACrD,qBAAqB,EAAE,yBAAyB,EAChD,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AAExB,sEAAsE;AACtE,kEAAkE;AAClE,yEAAyE;AACzE,OAAO,EACL,+BAA+B,GAChC,MAAM,iBAAiB,CAAA;AAExB,wBAAwB;AACxB,OAAO,EACL,wBAAwB,EAAE,mBAAmB,EAC7C,oBAAoB,EAAE,iBAAiB,EACvC,YAAY,EAAE,0BAA0B,EACxC,eAAe,EAAE,sBAAsB,EACvC,mBAAmB,EAAE,sBAAsB,GAC5C,MAAM,mBAAmB,CAAA;AAG1B,qEAAqE;AACrE,sEAAsE;AACtE,gEAAgE;AAChE,OAAO,EACL,6BAA6B,GAC9B,MAAM,mBAAmB,CAAA;AAE1B,4DAA4D;AAC5D,wEAAwE;AACxE,iBAAiB;AACjB,OAAO,EACL,eAAe,EAAE,0BAA0B,GAC5C,MAAM,qBAAqB,CAAA;AAG5B,+DAA+D;AAC/D,8DAA8D;AAC9D,iCAAiC;AACjC,OAAO,EACL,eAAe,EAAE,oBAAoB,GACtC,MAAM,qBAAqB,CAAA;AAE5B,kDAAkD;AAClD,OAAO,EACL,aAAa,EAAE,eAAe,EAAE,iBAAiB,EACjD,gBAAgB,EAAE,aAAa,EAAE,UAAU,EAC3C,6BAA6B,GAC9B,MAAM,0BAA0B,CAAA;AAGjC,oEAAoE;AACpE,OAAO,EACL,iBAAiB,EAAE,WAAW,EAAE,sBAAsB,EACtD,cAAc,EAAE,wBAAwB,GACzC,MAAM,qBAAqB,CAAA;AAG5B,sEAAsE;AACtE,qEAAqE;AACrE,iCAAiC;AACjC,OAAO,EACL,2BAA2B,GAC5B,MAAM,uBAAuB,CAAA;AAG9B,oCAAoC;AACpC,OAAO,EACL,aAAa,EAAE,aAAa,EAAE,oBAAoB,EAClD,sBAAsB,EAAE,aAAa,EACrC,kBAAkB,EAAE,UAAU,EAAE,wBAAwB,GACzD,MAAM,sBAAsB,CAAA;AAG7B,oEAAoE;AACpE,OAAO,EACL,kBAAkB,EAAE,cAAc,EAClC,cAAc,EAAE,sBAAsB,GACvC,MAAM,2BAA2B,CAAA;AAOlC,+DAA+D;AAC/D,OAAO,EACL,uBAAuB,EAAE,wBAAwB,EAAE,uBAAuB,EAC1E,uBAAuB,EAAE,mBAAmB,EAAE,2BAA2B,EACzE,iBAAiB,EAAE,8BAA8B,GAClD,MAAM,uBAAuB,CAAA;AAO9B,uDAAuD;AACvD,OAAO,EACL,UAAU,EAAE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,GAC/D,MAAM,2BAA2B,CAAA;AAKlC,uEAAuE;AACvE,wEAAwE;AACxE,yEAAyE;AACzE,6EAA6E;AAC7E,yEAAyE;AACzE,sBAAsB;AACtB,OAAO,EACL,gBAAgB,EAAE,uBAAuB,EACzC,eAAe,IAAI,wBAAwB,EAC3C,0BAA0B,EAAE,sBAAsB,EAAE,wBAAwB,EAC5E,eAAe,IAAI,mCAAmC,EACtD,yBAAyB,EACzB,qBAAqB,EAAE,cAAc,GACtC,MAAM,kCAAkC,CAAA;AAczC,wEAAwE;AACxE,qEAAqE;AACrE,OAAO,EACL,cAAc,EAAE,uBAAuB,EAAE,gBAAgB,GAC1D,MAAM,oCAAoC,CAAA;AAM3C,mEAAmE;AACnE,4CAA4C;AAC5C,OAAO,EACL,wBAAwB,EAAE,sBAAsB,EAChD,wBAAwB,EAAE,sBAAsB,EAAE,WAAW,GAC9D,MAAM,gCAAgC,CAAA;AAMvC,6EAA6E;AAC7E,gFAAgF;AAChF,OAAO,EACL,iBAAiB,EAAE,SAAS,EAAE,qBAAqB,EACnD,mBAAmB,EAAE,iBAAiB,EAAE,uBAAuB,EAC/D,gBAAgB,EAAE,cAAc,EAAE,uBAAuB,EACzD,eAAe,GAChB,MAAM,kCAAkC,CAAA;AAOzC,uEAAuE;AACvE,sEAAsE;AACtE,wEAAwE;AACxE,+EAA+E;AAC/E,OAAO,EACL,iBAAiB,EACjB,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,qBAAqB,GACtB,MAAM,gCAAgC,CAAA;AAWvC,uEAAuE;AACvE,iEAAiE;AACjE,wEAAwE;AACxE,wDAAwD;AACxD,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,EAC1B,6BAA6B,EAC7B,eAAe,IAAI,yBAAyB,EAC5C,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,8BAA8B,EAC9B,gBAAgB,IAAI,0BAA0B,EAC9C,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,mCAAmC,CAAA;AAmB1C,uEAAuE;AACvE,8DAA8D;AAC9D,uEAAuE;AACvE,uEAAuE;AACvE,OAAO,EACL,qBAAqB,EAAE,kBAAkB,EACzC,oBAAoB,EAAE,iBAAiB,EAAE,qBAAqB,EAC9D,wBAAwB,EAAE,gBAAgB,EAC1C,kBAAkB,IAAI,6BAA6B,EACnD,gBAAgB,IAAI,2BAA2B,EAC/C,0BAA0B,EAAE,2BAA2B,EACvD,6BAA6B,EAAE,aAAa,EAC5C,YAAY,EAAE,QAAQ,EACtB,aAAa,EAAE,mBAAmB,EAClC,cAAc,EAAE,kBAAkB,EAAE,cAAc,EAClD,iBAAiB,EAAE,iBAAiB,EACpC,iBAAiB,EAAE,iBAAiB,EACpC,eAAe,EAAE,0BAA0B,EAC3C,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAC/C,cAAc,EACd,0BAA0B,EAAE,2BAA2B,GACxD,MAAM,kCAAkC,CAAA;AAezC,yCAAyC;AACzC,8BAA8B;AAC9B,yCAAyC;AACzC,OAAO,EACL,mBAAmB,EACnB,8BAA8B,EAC9B,oBAAoB,EACpB,2BAA2B,EAC3B,wBAAwB,EACxB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,8BAA8B,EAC9B,oBAAoB,EACpB,2BAA2B,EAC3B,eAAe,GAChB,MAAM,2BAA2B,CAAA"}
@@ -0,0 +1,50 @@
1
+ import type { FilesystemMode, InstructionFile, InstructionProvenanceReceipt } from './types.js';
2
+ /** Typed error for path-canonicalization rejections (spec §5.1). */
3
+ export declare class IPRPathError extends Error {
4
+ readonly code: string;
5
+ constructor(code: string, message: string);
6
+ }
7
+ export interface CanonicalizePathOptions {
8
+ /** Absolute POSIX path to the working root. The input path must resolve
9
+ * inside this root. */
10
+ workingRoot: string;
11
+ /** Filesystem case mode for the working root. Affects normalization. */
12
+ filesystemMode: FilesystemMode;
13
+ }
14
+ /**
15
+ * Canonicalize a raw path per spec §5.1. Returns a relative POSIX path.
16
+ *
17
+ * Steps (must match the spec algorithm exactly for cross-language parity):
18
+ * 1. Reject empty path.
19
+ * 2. Reject percent-encoded paths (paths are POSIX, not URIs).
20
+ * 3. Compute absolute form of `raw` relative to `workingRoot` (without
21
+ * filesystem access — pure string math).
22
+ * 4. Reject if the absolute form does not start with `workingRoot`.
23
+ * 5. Strip the working-root prefix to get a relative form.
24
+ * 6. Reject leading `./`.
25
+ * 7. Reject any `..` segment.
26
+ * 8. Reject trailing slash.
27
+ * 9. Normalize Unicode to NFC.
28
+ * 10. Apply case mode (lowercase if case-insensitive).
29
+ * 11. Replace OS-specific separators with `/`.
30
+ */
31
+ export declare function canonicalizePath(raw: string, options: CanonicalizePathOptions): string;
32
+ /** sha256 hex of a UTF-8 string. */
33
+ export declare function sha256Hex(input: string | Uint8Array): string;
34
+ /**
35
+ * Compute `context_root` per spec §4.1: sha256 of the JCS canonicalization
36
+ * of the `instruction_files` array. Must be byte-identical across languages.
37
+ */
38
+ export declare function computeContextRoot(files: InstructionFile[]): string;
39
+ /**
40
+ * Canonical sort order for `instruction_files`: lexicographic by `path`
41
+ * (canonical bytes). Spec §6.3 step 8.
42
+ */
43
+ export declare function sortInstructionFiles(files: InstructionFile[]): InstructionFile[];
44
+ /**
45
+ * Strip `signature` and `receipt_id` from the envelope and return the JCS
46
+ * canonical bytes used for both `receipt_id` derivation and Ed25519 signing.
47
+ * Spec §5.2.
48
+ */
49
+ export declare function canonicalizeEnvelope(envelope: Omit<InstructionProvenanceReceipt, 'signature' | 'receipt_id'>): string;
50
+ //# sourceMappingURL=canonicalize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonicalize.d.ts","sourceRoot":"","sources":["../../../../src/v2/instruction-provenance/canonicalize.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,4BAA4B,EAAE,MAAM,YAAY,CAAA;AAE/F,oEAAoE;AACpE,qBAAa,YAAa,SAAQ,KAAK;aACT,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI1D;AAED,MAAM,WAAW,uBAAuB;IACtC;4BACwB;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,wEAAwE;IACxE,cAAc,EAAE,cAAc,CAAA;CAC/B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,GAAG,MAAM,CAkDtF;AAQD,oCAAoC;AACpC,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAE5D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,MAAM,CAGnE;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE,CAEhF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,IAAI,CAAC,4BAA4B,EAAE,WAAW,GAAG,YAAY,CAAC,GACvE,MAAM,CAWR"}
@@ -0,0 +1,128 @@
1
+ // Copyright 2024-2026 Tymofii Pidlisnyi. Apache-2.0 license. See LICENSE.
2
+ // ══════════════════════════════════════════════════════════════════
3
+ // IPR — path canonicalization (§5.1) + envelope canonicalization (§5.2)
4
+ // ══════════════════════════════════════════════════════════════════
5
+ // Pure functions, no I/O. Cross-language byte-parity contract: every
6
+ // `canonicalizePath` result must match the future Python port byte-for-byte
7
+ // against the same fixture inputs. JCS canonicalization for envelopes
8
+ // reuses the existing src/core/canonical-jcs.ts implementation (RFC 8785).
9
+ // ══════════════════════════════════════════════════════════════════
10
+ import { createHash } from 'node:crypto';
11
+ import { canonicalizeJCS } from '../../core/canonical-jcs.js';
12
+ /** Typed error for path-canonicalization rejections (spec §5.1). */
13
+ export class IPRPathError extends Error {
14
+ code;
15
+ constructor(code, message) {
16
+ super(`${code}: ${message}`);
17
+ this.code = code;
18
+ this.name = 'IPRPathError';
19
+ }
20
+ }
21
+ /**
22
+ * Canonicalize a raw path per spec §5.1. Returns a relative POSIX path.
23
+ *
24
+ * Steps (must match the spec algorithm exactly for cross-language parity):
25
+ * 1. Reject empty path.
26
+ * 2. Reject percent-encoded paths (paths are POSIX, not URIs).
27
+ * 3. Compute absolute form of `raw` relative to `workingRoot` (without
28
+ * filesystem access — pure string math).
29
+ * 4. Reject if the absolute form does not start with `workingRoot`.
30
+ * 5. Strip the working-root prefix to get a relative form.
31
+ * 6. Reject leading `./`.
32
+ * 7. Reject any `..` segment.
33
+ * 8. Reject trailing slash.
34
+ * 9. Normalize Unicode to NFC.
35
+ * 10. Apply case mode (lowercase if case-insensitive).
36
+ * 11. Replace OS-specific separators with `/`.
37
+ */
38
+ export function canonicalizePath(raw, options) {
39
+ if (raw.length === 0)
40
+ throw new IPRPathError('EMPTY', 'path is empty');
41
+ if (raw.includes('%')) {
42
+ throw new IPRPathError('PERCENT_ENCODING', 'paths are POSIX, not URIs; percent-encoding rejected');
43
+ }
44
+ const root = stripTrailingSlash(options.workingRoot);
45
+ if (!root.startsWith('/')) {
46
+ throw new IPRPathError('WORKING_ROOT_NOT_ABSOLUTE', `working_root must be absolute POSIX: ${root}`);
47
+ }
48
+ // Compute absolute form. Treat raw as relative-to-root if not already absolute.
49
+ let abs;
50
+ if (raw.startsWith('/')) {
51
+ abs = raw;
52
+ }
53
+ else {
54
+ const cleaned = raw.startsWith('./') ? raw.slice(2) : raw;
55
+ abs = `${root}/${cleaned}`;
56
+ }
57
+ // Reject ".." anywhere (segment-level check).
58
+ for (const seg of abs.split('/')) {
59
+ if (seg === '..')
60
+ throw new IPRPathError('TRAVERSAL', 'parent traversal `..` not permitted');
61
+ }
62
+ // Reject if absolute form is not under root.
63
+ const rootWithSlash = `${root}/`;
64
+ if (abs !== root && !abs.startsWith(rootWithSlash)) {
65
+ throw new IPRPathError('OUTSIDE_ROOT', `path resolves outside working_root: ${abs}`);
66
+ }
67
+ let rel = abs === root ? '' : abs.slice(rootWithSlash.length);
68
+ if (rel.length === 0) {
69
+ throw new IPRPathError('EMPTY', 'path canonicalizes to empty (working_root itself, not a file)');
70
+ }
71
+ if (rel.endsWith('/')) {
72
+ throw new IPRPathError('TRAILING_SLASH', `trailing slash not permitted: ${rel}`);
73
+ }
74
+ if (rel.startsWith('./')) {
75
+ throw new IPRPathError('LEADING_DOT_SLASH', `leading "./" not permitted in canonical form: ${rel}`);
76
+ }
77
+ rel = rel.normalize('NFC');
78
+ if (options.filesystemMode === 'case-insensitive')
79
+ rel = rel.toLowerCase();
80
+ // Replace any backslashes (OS separators on non-POSIX platforms emitting
81
+ // path strings via Node's path.join). Spec mandates POSIX `/`.
82
+ rel = rel.replace(/\\/g, '/');
83
+ return rel;
84
+ }
85
+ /** Strip trailing slash from a path while preserving the root `/`. */
86
+ function stripTrailingSlash(p) {
87
+ if (p.length > 1 && p.endsWith('/'))
88
+ return p.slice(0, -1);
89
+ return p;
90
+ }
91
+ /** sha256 hex of a UTF-8 string. */
92
+ export function sha256Hex(input) {
93
+ return createHash('sha256').update(input).digest('hex');
94
+ }
95
+ /**
96
+ * Compute `context_root` per spec §4.1: sha256 of the JCS canonicalization
97
+ * of the `instruction_files` array. Must be byte-identical across languages.
98
+ */
99
+ export function computeContextRoot(files) {
100
+ const sorted = sortInstructionFiles(files);
101
+ return sha256Hex(canonicalizeJCS(sorted));
102
+ }
103
+ /**
104
+ * Canonical sort order for `instruction_files`: lexicographic by `path`
105
+ * (canonical bytes). Spec §6.3 step 8.
106
+ */
107
+ export function sortInstructionFiles(files) {
108
+ return [...files].sort((a, b) => (a.path < b.path ? -1 : a.path > b.path ? 1 : 0));
109
+ }
110
+ /**
111
+ * Strip `signature` and `receipt_id` from the envelope and return the JCS
112
+ * canonical bytes used for both `receipt_id` derivation and Ed25519 signing.
113
+ * Spec §5.2.
114
+ */
115
+ export function canonicalizeEnvelope(envelope) {
116
+ // Defensive shallow clone that strips signature/receipt_id even when the
117
+ // caller passes a fully-formed envelope at runtime (TS narrows on Omit at
118
+ // compile time, but JS objects can carry extras).
119
+ const clone = {};
120
+ const src = envelope;
121
+ for (const k of Object.keys(src)) {
122
+ if (k === 'signature' || k === 'receipt_id')
123
+ continue;
124
+ clone[k] = src[k];
125
+ }
126
+ return canonicalizeJCS(clone);
127
+ }
128
+ //# sourceMappingURL=canonicalize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonicalize.js","sourceRoot":"","sources":["../../../../src/v2/instruction-provenance/canonicalize.ts"],"names":[],"mappings":"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"}