@peac/adapter-x402 0.12.0 → 0.12.2

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 CHANGED
@@ -1,14 +1,19 @@
1
1
  # @peac/adapter-x402
2
2
 
3
- x402 offer/receipt verification, term-matching, and PEAC record mapping.
3
+ Verification, term-matching, and evidence mapping for the x402
4
+ Offer/Receipt extension (compatible with upstream coinbase/x402).
4
5
 
5
6
  ## Overview
6
7
 
7
- This package verifies x402 extension objects (offers and receipts) and maps
8
+ This package verifies x402 extension artifacts (offers and receipts) and maps
8
9
  them into canonical PEAC interaction records. It implements term-matching
9
10
  verification where `acceptIndex` is treated as an untrusted hint and the
10
11
  binding comes from matching signed payload fields against accept terms.
11
12
 
13
+ Compatible with upstream x402 Offer/Receipt extension wire shapes. Defaults
14
+ match upstream behavior; stricter verification is available via opt-in
15
+ configuration.
16
+
12
17
  ## Install
13
18
 
14
19
  ```bash
@@ -22,7 +27,7 @@ pnpm add @peac/adapter-x402
22
27
  ```typescript
23
28
  import { verifyOffer } from '@peac/adapter-x402';
24
29
 
25
- const result = verifyOffer(signedOffer, acceptEntries, acceptIndex);
30
+ const result = verifyOffer(signedOffer, acceptEntries);
26
31
 
27
32
  if (result.valid) {
28
33
  console.log('Matched accept entry:', result.matchedAccept);
@@ -37,8 +42,8 @@ if (result.valid) {
37
42
  ```typescript
38
43
  import { selectAccept } from '@peac/adapter-x402';
39
44
 
40
- // With hint (bounds-check + term-match)
41
- const match = selectAccept(offerPayload, accepts, acceptIndex);
45
+ // With hint (bounds-check + term-match via offer.acceptIndex)
46
+ const match = selectAccept(offerPayload, accepts, offer.acceptIndex);
42
47
 
43
48
  // Without hint (scan for unique match)
44
49
  const match = selectAccept(offerPayload, accepts);
@@ -49,16 +54,32 @@ const match = selectAccept(offerPayload, accepts);
49
54
  ```typescript
50
55
  import { toPeacRecord } from '@peac/adapter-x402';
51
56
 
52
- const record = toPeacRecord(paymentRequired, settlementResponse);
53
- // record.proofs.x402.offer -- raw offer preserved for audit
54
- // record.proofs.x402.receipt -- raw receipt preserved for audit
55
- // record.evidence.txHash -- from signed receipt payload
56
- // record.hints.acceptIndex -- { value: 0, untrusted: true }
57
+ const record = toPeacRecord(challenge, settlementResponse);
58
+ // record.proofs.x402.offer -- raw offer preserved for audit
59
+ // record.proofs.x402.receipt -- raw receipt preserved for audit
60
+ // record.evidence.resourceUrl -- from signed offer payload
61
+ // record.evidence.payer -- from signed receipt payload
62
+ // record.evidence.transaction -- optional, from receipt (privacy-minimal)
63
+ // record.hints.acceptIndex -- { value: 0, untrusted: true }
64
+ ```
65
+
66
+ ### Extract from upstream wire format
67
+
68
+ ```typescript
69
+ import { extractExtensionInfo, extractReceiptFromHeaders } from '@peac/adapter-x402';
70
+
71
+ // Extract offers from upstream 402 response body
72
+ const info = extractExtensionInfo(responseBody);
73
+ // info.offers: RawSignedOffer[]
74
+ // info.receipt?: RawSignedReceipt
75
+
76
+ // Extract receipt from settlement response headers
77
+ const receipt = extractReceiptFromHeaders(responseHeaders);
57
78
  ```
58
79
 
59
80
  ## acceptIndex: hint-only semantics
60
81
 
61
- In the x402 Offer/Receipt extension, `acceptIndex` is an unsigned envelope
82
+ In the x402 Offer/Receipt extension, `acceptIndex` is an unsigned per-offer
62
83
  field outside the signed payload. Verifiers MUST NOT rely on it as a binding
63
84
  mechanism.
64
85
 
@@ -73,25 +94,31 @@ This package treats `acceptIndex` as advisory:
73
94
 
74
95
  ## API
75
96
 
76
- ### `verifyOffer(offer, accepts, acceptIndex?, config?)`
97
+ ### `verifyOffer(offer, accepts, config?)`
77
98
 
78
99
  Verify a signed offer against accept terms. Checks structure, expiry,
79
100
  version, signature format, and term-matching.
80
101
 
81
102
  ### `verifyReceipt(receipt, config?)`
82
103
 
83
- Verify a signed receipt's structure and version.
104
+ Verify a signed receipt's required fields, version, payer format, and
105
+ issuedAt recency.
106
+
107
+ ### `verifyOfferReceiptConsistency(offerPayload, receiptPayload, config?, options?)`
108
+
109
+ Verify consistency between an offer and a receipt (resourceUrl, network,
110
+ issuedAt freshness, optional payer candidate matching).
84
111
 
85
- ### `matchAcceptTerms(payload, accept)`
112
+ ### `matchAcceptTerms(payload, accept, addressComparator?)`
86
113
 
87
114
  Compare offer payload fields against a single accept entry. Returns an
88
115
  array of mismatched field names (empty means match).
89
116
 
90
- ### `selectAccept(payload, accepts, acceptIndex?)`
117
+ ### `selectAccept(payload, accepts, acceptIndex?, addressComparator?)`
91
118
 
92
119
  Select the matching accept entry. Throws `X402Error` on failure.
93
120
 
94
- ### `toPeacRecord(paymentRequired, settlementResponse)`
121
+ ### `toPeacRecord(challenge, settlementResponse, options?)`
95
122
 
96
123
  Map an x402 payment flow to a PEAC interaction record.
97
124
 
@@ -107,12 +134,12 @@ This adapter supports x402 **Offer/Receipt extension version 1** (default).
107
134
  The version is configurable per call:
108
135
 
109
136
  ```typescript
110
- const result = verifyOffer(offer, accepts, acceptIndex, {
111
- supportedVersions: ['1', '2'],
137
+ const result = verifyOffer(offer, accepts, {
138
+ supportedVersions: [1, 2],
112
139
  });
113
140
  ```
114
141
 
115
- The adapter defines its own x402 types (no external x402 npm dependencies). If x402 v2 introduces new required payload fields, update the adapter types and add conformance vectors.
142
+ The adapter defines its own x402 types (no external x402 npm dependencies).
116
143
 
117
144
  ## Error handling
118
145
 
package/dist/carrier.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * x402 carrier adapter for Evidence Carrier Contract (DD-124).
2
+ * x402 carrier adapter for Evidence Carrier Contract.
3
3
  *
4
4
  * v0.11.1: header-only transport via PEAC-Receipt (compact JWS).
5
5
  * Extracts from x402 HTTP 402 (offer) and HTTP 200 (settlement) responses.
@@ -7,7 +7,7 @@
7
7
  * Reference mode is not supported; receipt_jws is required.
8
8
  */
9
9
  import type { PeacEvidenceCarrier, CarrierMeta, CarrierValidationResult, CarrierAdapter } from '@peac/kernel';
10
- /** x402 carrier size limits (DD-127) */
10
+ /** x402 carrier size limits */
11
11
  export declare const X402_CARRIER_LIMITS: {
12
12
  readonly embed: 65536;
13
13
  readonly headers: 8192;
@@ -35,7 +35,7 @@ export interface X402ExtractAsyncResult extends X402ExtractResult {
35
35
  */
36
36
  export declare function fromOfferResponse(headers: X402HeaderMap, _body?: Record<string, unknown>): X402ExtractResult | null;
37
37
  /**
38
- * Extract carrier from x402 offer response (async, DD-129).
38
+ * Extract carrier from x402 offer response (async).
39
39
  *
40
40
  * Computes receipt_ref from the JWS.
41
41
  */
@@ -47,7 +47,7 @@ export declare function fromOfferResponseAsync(headers: X402HeaderMap, _body?: R
47
47
  */
48
48
  export declare function fromSettlementResponse(headers: X402HeaderMap, _body?: Record<string, unknown>): X402ExtractResult | null;
49
49
  /**
50
- * Extract carrier from x402 settlement response (async, DD-129).
50
+ * Extract carrier from x402 settlement response (async).
51
51
  */
52
52
  export declare function fromSettlementResponseAsync(headers: X402HeaderMap, _body?: Record<string, unknown>): Promise<X402ExtractAsyncResult | null>;
53
53
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"carrier.d.ts","sourceRoot":"","sources":["../src/carrier.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,WAAW,EACX,uBAAuB,EACvB,cAAc,EACf,MAAM,cAAc,CAAC;AAYtB,wCAAwC;AACxC,eAAO,MAAM,mBAAmB;;;CAGtB,CAAC;AAMX,wBAAwB;AACxB,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEnD,4DAA4D;AAC5D,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,wBAAwB;AACxB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,8BAA8B;AAC9B,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC/D,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AA0CD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,aAAa,EACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,iBAAiB,GAAG,IAAI,CAuB1B;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,aAAa,EACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAqBxC;AAMD;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,aAAa,EACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,iBAAiB,GAAG,IAAI,CAE1B;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,aAAa,EACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAExC;AAMD;;;;;GAKG;AACH,qBAAa,kBAAmB,YAAW,cAAc,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC3F,OAAO,CAAC,KAAK,EAAE,gBAAgB,GAAG;QAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC;QAAC,IAAI,EAAE,WAAW,CAAA;KAAE,GAAG,IAAI;IAK/F,MAAM,CACJ,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,IAAI,CAAC,EAAE,WAAW,GACjB,gBAAgB;IA4BnB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,WAAW,GAAG,uBAAuB;CAG9F"}
1
+ {"version":3,"file":"carrier.d.ts","sourceRoot":"","sources":["../src/carrier.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,WAAW,EACX,uBAAuB,EACvB,cAAc,EACf,MAAM,cAAc,CAAC;AAYtB,+BAA+B;AAC/B,eAAO,MAAM,mBAAmB;;;CAGtB,CAAC;AAMX,wBAAwB;AACxB,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEnD,4DAA4D;AAC5D,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,wBAAwB;AACxB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,8BAA8B;AAC9B,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC/D,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AA0CD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,aAAa,EACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,iBAAiB,GAAG,IAAI,CAuB1B;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,aAAa,EACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAqBxC;AAMD;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,aAAa,EACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,iBAAiB,GAAG,IAAI,CAE1B;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,aAAa,EACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAExC;AAMD;;;;;GAKG;AACH,qBAAa,kBAAmB,YAAW,cAAc,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC3F,OAAO,CAAC,KAAK,EAAE,gBAAgB,GAAG;QAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC;QAAC,IAAI,EAAE,WAAW,CAAA;KAAE,GAAG,IAAI;IAK/F,MAAM,CACJ,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,IAAI,CAAC,EAAE,WAAW,GACjB,gBAAgB;IA4BnB,mBAAmB,CAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,WAAW,GAAG,uBAAuB;CAG9F"}
package/dist/carrier.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
- * x402 carrier adapter for Evidence Carrier Contract (DD-124).
3
+ * x402 carrier adapter for Evidence Carrier Contract.
4
4
  *
5
5
  * v0.11.1: header-only transport via PEAC-Receipt (compact JWS).
6
6
  * Extracts from x402 HTTP 402 (offer) and HTTP 200 (settlement) responses.
@@ -18,7 +18,7 @@ const schema_1 = require("@peac/schema");
18
18
  // ---------------------------------------------------------------------------
19
19
  // Constants
20
20
  // ---------------------------------------------------------------------------
21
- /** x402 carrier size limits (DD-127) */
21
+ /** x402 carrier size limits */
22
22
  exports.X402_CARRIER_LIMITS = {
23
23
  embed: schema_1.CARRIER_TRANSPORT_LIMITS.x402_embed,
24
24
  headers: schema_1.CARRIER_TRANSPORT_LIMITS.x402_headers,
@@ -44,7 +44,7 @@ function extractJwsFromHeaders(headers) {
44
44
  return value && value.length > 0 ? value : null;
45
45
  }
46
46
  /**
47
- * Extract receipt URL from PEAC-Receipt-URL header (DD-135).
47
+ * Extract receipt URL from PEAC-Receipt-URL header.
48
48
  */
49
49
  function extractReceiptUrlFromHeaders(headers) {
50
50
  const key = Object.keys(headers).find((k) => k.toLowerCase() === kernel_1.PEAC_RECEIPT_URL_HEADER.toLowerCase());
@@ -69,7 +69,7 @@ function fromOfferResponse(headers, _body) {
69
69
  receipt_ref: 'sha256:0000000000000000000000000000000000000000000000000000000000000000',
70
70
  receipt_jws: jws,
71
71
  };
72
- // Extract receipt_url locator hint (DD-135)
72
+ // Extract receipt_url locator hint
73
73
  const receiptUrl = extractReceiptUrlFromHeaders(headers);
74
74
  if (receiptUrl) {
75
75
  carrier.receipt_url = receiptUrl;
@@ -83,7 +83,7 @@ function fromOfferResponse(headers, _body) {
83
83
  };
84
84
  }
85
85
  /**
86
- * Extract carrier from x402 offer response (async, DD-129).
86
+ * Extract carrier from x402 offer response (async).
87
87
  *
88
88
  * Computes receipt_ref from the JWS.
89
89
  */
@@ -96,7 +96,7 @@ async function fromOfferResponseAsync(headers, _body) {
96
96
  receipt_ref: ref,
97
97
  receipt_jws: jws,
98
98
  };
99
- // Extract receipt_url locator hint (DD-135)
99
+ // Extract receipt_url locator hint
100
100
  const receiptUrl = extractReceiptUrlFromHeaders(headers);
101
101
  if (receiptUrl) {
102
102
  carrier.receipt_url = receiptUrl;
@@ -119,7 +119,7 @@ function fromSettlementResponse(headers, _body) {
119
119
  return fromOfferResponse(headers, _body);
120
120
  }
121
121
  /**
122
- * Extract carrier from x402 settlement response (async, DD-129).
122
+ * Extract carrier from x402 settlement response (async).
123
123
  */
124
124
  async function fromSettlementResponseAsync(headers, _body) {
125
125
  return fromOfferResponseAsync(headers, _body);
@@ -1 +1 @@
1
- {"version":3,"file":"carrier.js","sourceRoot":"","sources":["../src/carrier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"carrier.js","sourceRoot":"","sources":["../src/carrier.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -15,7 +15,7 @@
15
15
  * - amount_*: Amount validation errors
16
16
  * - network_*: Network validation errors
17
17
  */
18
- export type X402ErrorCode = 'offer_invalid_format' | 'offer_expired' | 'offer_version_unsupported' | 'offer_signature_invalid' | 'receipt_invalid_format' | 'receipt_signature_invalid' | 'receipt_version_unsupported' | 'accept_index_out_of_range' | 'accept_no_match' | 'accept_ambiguous' | 'accept_term_mismatch' | 'accept_too_many_entries' | 'payload_missing_field' | 'payload_tampered' | 'amount_invalid' | 'network_invalid';
18
+ export type X402ErrorCode = 'offer_invalid_format' | 'offer_expired' | 'offer_version_unsupported' | 'offer_signature_invalid' | 'offer_no_expiry' | 'receipt_invalid_format' | 'receipt_signature_invalid' | 'receipt_version_unsupported' | 'receipt_resource_mismatch' | 'receipt_network_mismatch' | 'receipt_issuedAt_stale' | 'receipt_payer_invalid' | 'receipt_payer_not_in_candidates' | 'accept_index_out_of_range' | 'accept_no_match' | 'accept_ambiguous' | 'accept_term_mismatch' | 'accept_too_many_entries' | 'payload_missing_field' | 'payload_tampered' | 'amount_invalid' | 'network_invalid' | 'jws_too_large' | 'jws_malformed' | 'jws_padded_base64url' | 'jws_payload_not_object';
19
19
  /**
20
20
  * Custom error class for x402 adapter operations
21
21
  *
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,MAAM,aAAa,GACrB,sBAAsB,GACtB,eAAe,GACf,2BAA2B,GAC3B,yBAAyB,GACzB,wBAAwB,GACxB,2BAA2B,GAC3B,6BAA6B,GAC7B,2BAA2B,GAC3B,iBAAiB,GACjB,kBAAkB,GAClB,sBAAsB,GACtB,yBAAyB,GACzB,uBAAuB,GACvB,kBAAkB,GAClB,gBAAgB,GAChB,iBAAiB,CAAC;AAwBtB;;;;;GAKG;AACH,qBAAa,SAAU,SAAQ,KAAK;IAClC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAGzC,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE;IAUjE,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAUlC"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,MAAM,aAAa,GACrB,sBAAsB,GACtB,eAAe,GACf,2BAA2B,GAC3B,yBAAyB,GACzB,iBAAiB,GACjB,wBAAwB,GACxB,2BAA2B,GAC3B,6BAA6B,GAC7B,2BAA2B,GAC3B,0BAA0B,GAC1B,wBAAwB,GACxB,uBAAuB,GACvB,iCAAiC,GACjC,2BAA2B,GAC3B,iBAAiB,GACjB,kBAAkB,GAClB,sBAAsB,GACtB,yBAAyB,GACzB,uBAAuB,GACvB,kBAAkB,GAClB,gBAAgB,GAChB,iBAAiB,GACjB,eAAe,GACf,eAAe,GACf,sBAAsB,GACtB,wBAAwB,CAAC;AAkC7B;;;;;GAKG;AACH,qBAAa,SAAU,SAAQ,KAAK;IAClC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAGzC,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE;IAUjE,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAUlC"}
package/dist/errors.js CHANGED
@@ -15,9 +15,15 @@ const ERROR_HTTP_STATUS = {
15
15
  offer_expired: 400,
16
16
  offer_version_unsupported: 400,
17
17
  offer_signature_invalid: 401,
18
+ offer_no_expiry: 400,
18
19
  receipt_invalid_format: 400,
19
20
  receipt_signature_invalid: 401,
20
21
  receipt_version_unsupported: 400,
22
+ receipt_resource_mismatch: 400,
23
+ receipt_network_mismatch: 400,
24
+ receipt_issuedAt_stale: 400,
25
+ receipt_payer_invalid: 400,
26
+ receipt_payer_not_in_candidates: 400,
21
27
  accept_index_out_of_range: 400,
22
28
  accept_no_match: 400,
23
29
  accept_ambiguous: 400,
@@ -27,6 +33,10 @@ const ERROR_HTTP_STATUS = {
27
33
  payload_tampered: 401,
28
34
  amount_invalid: 400,
29
35
  network_invalid: 400,
36
+ jws_too_large: 400,
37
+ jws_malformed: 400,
38
+ jws_padded_base64url: 400,
39
+ jws_payload_not_object: 400,
30
40
  };
31
41
  /**
32
42
  * Custom error class for x402 adapter operations
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AA+BH;;GAEG;AACH,MAAM,iBAAiB,GAAkC;IACvD,oBAAoB,EAAE,GAAG;IACzB,aAAa,EAAE,GAAG;IAClB,yBAAyB,EAAE,GAAG;IAC9B,uBAAuB,EAAE,GAAG;IAC5B,sBAAsB,EAAE,GAAG;IAC3B,yBAAyB,EAAE,GAAG;IAC9B,2BAA2B,EAAE,GAAG;IAChC,yBAAyB,EAAE,GAAG;IAC9B,eAAe,EAAE,GAAG;IACpB,gBAAgB,EAAE,GAAG;IACrB,oBAAoB,EAAE,GAAG;IACzB,uBAAuB,EAAE,GAAG;IAC5B,qBAAqB,EAAE,GAAG;IAC1B,gBAAgB,EAAE,GAAG;IACrB,cAAc,EAAE,GAAG;IACnB,eAAe,EAAE,GAAG;CACrB,CAAC;AAEF;;;;;GAKG;AACH,MAAa,SAAU,SAAQ,KAAK;IACzB,IAAI,CAAgB;IACpB,UAAU,CAAS;IACnB,KAAK,CAAU;IACf,OAAO,CAA2B;IAE3C,YACE,IAAmB,EACnB,OAAe,EACf,OAA+D;QAE/D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;QACjD,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC;IAClC,CAAC;IAED,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;YACtD,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;SAC7D,CAAC;IACJ,CAAC;CACF;AA7BD,8BA6BC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAyCH;;GAEG;AACH,MAAM,iBAAiB,GAAkC;IACvD,oBAAoB,EAAE,GAAG;IACzB,aAAa,EAAE,GAAG;IAClB,yBAAyB,EAAE,GAAG;IAC9B,uBAAuB,EAAE,GAAG;IAC5B,eAAe,EAAE,GAAG;IACpB,sBAAsB,EAAE,GAAG;IAC3B,yBAAyB,EAAE,GAAG;IAC9B,2BAA2B,EAAE,GAAG;IAChC,yBAAyB,EAAE,GAAG;IAC9B,wBAAwB,EAAE,GAAG;IAC7B,sBAAsB,EAAE,GAAG;IAC3B,qBAAqB,EAAE,GAAG;IAC1B,+BAA+B,EAAE,GAAG;IACpC,yBAAyB,EAAE,GAAG;IAC9B,eAAe,EAAE,GAAG;IACpB,gBAAgB,EAAE,GAAG;IACrB,oBAAoB,EAAE,GAAG;IACzB,uBAAuB,EAAE,GAAG;IAC5B,qBAAqB,EAAE,GAAG;IAC1B,gBAAgB,EAAE,GAAG;IACrB,cAAc,EAAE,GAAG;IACnB,eAAe,EAAE,GAAG;IACpB,aAAa,EAAE,GAAG;IAClB,aAAa,EAAE,GAAG;IAClB,oBAAoB,EAAE,GAAG;IACzB,sBAAsB,EAAE,GAAG;CAC5B,CAAC;AAEF;;;;;GAKG;AACH,MAAa,SAAU,SAAQ,KAAK;IACzB,IAAI,CAAgB;IACpB,UAAU,CAAS;IACnB,KAAK,CAAU;IACf,OAAO,CAA2B;IAE3C,YACE,IAAmB,EACnB,OAAe,EACf,OAA+D;QAE/D,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;QACjD,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC;IAClC,CAAC;IAED,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;YACtD,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;SAC7D,CAAC;IACJ,CAAC;CACF;AA7BD,8BA6BC"}
package/dist/index.d.ts CHANGED
@@ -1,36 +1,27 @@
1
1
  /**
2
2
  * @peac/adapter-x402
3
3
  *
4
- * x402 Offer/Receipt extension verification, term-matching, and PEAC record mapping.
4
+ * Verification, term-matching, and evidence mapping for the
5
+ * x402 Offer/Receipt extension (compatible with upstream coinbase/x402).
5
6
  *
6
- * NOTE: This adapter targets the x402 Offer/Receipt EXTENSION,
7
- * NOT the baseline x402 header flow. The profile identifier reflects this:
8
- * `peac-x402-offer-receipt/0.1` (extension) vs `peac-x402/0.1` (baseline, reserved).
9
- *
10
- * Key capabilities:
11
- * - Structural validation of x402 offers and receipts
12
- * - Term-matching: verify signed payload against accept entries
13
- * - Accept selection with acceptIndex as untrusted hint
14
- * - Mapping to canonical PEAC interaction records
15
- * - DoS protection: limits on accepts array size
16
- * - Amount/network validation: CAIP-2 format, integer strings
17
- *
18
- * IMPORTANT: This package does NOT perform cryptographic signature verification
19
- * (EIP-712 recovery, JWS validation). That is the caller's responsibility.
20
- * `valid: true` does NOT imply cryptographic signature validity unless
21
- * a CryptoVerifier is supplied and `verification.cryptographic.verified` is true.
22
- *
23
- * The focus is on term-matching and record mapping -- the verification
24
- * layer that makes unsigned acceptIndex irrelevant for security.
7
+ * Architecture:
8
+ * - Layer A (raw.ts): Exact upstream wire types and extraction
9
+ * - Layer B (normalize.ts): Semantic normalization (EIP-712 placeholders)
10
+ * - Layer C (map.ts): PEAC evidence mapping
11
+ * - Verification (verify.ts): Layered verification API
25
12
  *
26
13
  * @packageDocumentation
27
14
  */
28
- export type { SignatureFormat, OfferPayload, SignedOffer, ReceiptPayload, SignedReceipt, AcceptEntry, X402PaymentRequired, X402SettlementResponse, OfferVerification, ReceiptVerification, VerificationError, VerificationStatus, X402PeacRecord, X402AdapterConfig, MismatchPolicy, } from './types.js';
29
- export { X402_OFFER_RECEIPT_PROFILE, MAX_ACCEPT_ENTRIES, MAX_TOTAL_ACCEPTS_BYTES, MAX_AMOUNT_LENGTH, } from './types.js';
15
+ export type { RawOfferPayload, RawReceiptPayload, RawJWSSignedOffer, RawEIP712SignedOffer, RawSignedOffer, RawJWSSignedReceipt, RawEIP712SignedReceipt, RawSignedReceipt, RawX402ExtensionInfo, ParsedCompactJWS, } from './raw.js';
16
+ export { OFFER_RECEIPT, MAX_COMPACT_JWS_BYTES, X402_RECEIPT_HEADERS, parseCompactJWS, extractOfferPayload, extractReceiptPayload, extractExtensionInfo, extractReceiptFromHeaders, } from './raw.js';
17
+ export type { NormalizedOfferPayload, NormalizedReceiptPayload } from './normalize.js';
18
+ export { normalizeOfferPayload, normalizeReceiptPayload } from './normalize.js';
19
+ export type { SignatureFormat, OfferPayload, SignedOffer, ReceiptPayload, SignedReceipt, AcceptEntry, X402OfferReceiptChallenge, X402SettlementResponse, WireVerification, OfferVerification, ReceiptVerification, ConsistencyVerification, ConsistencyOptions, VerificationError, VerificationStatus, X402PeacRecord, X402AdapterConfig, MismatchPolicy, AddressComparator, CryptoResult, CryptoVerifier, EIP712Domain, SignerAuthorizer, AuthorizationContext, AuthorizationResult, } from './types.js';
20
+ export { X402_OFFER_RECEIPT_PROFILE, MAX_ACCEPT_ENTRIES, MAX_TOTAL_ACCEPTS_BYTES, MAX_AMOUNT_LENGTH, defaultAddressComparator, } from './types.js';
30
21
  export type { Result, AdapterError, AdapterErrorCode, JsonObject } from './types.js';
31
22
  export { X402Error } from './errors.js';
32
23
  export type { X402ErrorCode } from './errors.js';
33
- export { verifyOffer, verifyReceipt, matchAcceptTerms, selectAccept } from './verify.js';
24
+ export { verifyOffer, verifyReceipt, verifyOfferWire, verifyReceiptWire, verifyOfferReceiptConsistency, matchAcceptTerms, selectAccept, } from './verify.js';
34
25
  export { toPeacRecord, toPeacCarrier } from './map.js';
35
26
  export type { X402HeaderMap, X402ResponseLike, X402ExtractResult, X402ExtractAsyncResult, } from './carrier.js';
36
27
  export { X402_CARRIER_LIMITS, fromOfferResponse, fromOfferResponseAsync, fromSettlementResponse, fromSettlementResponseAsync, X402CarrierAdapter, } from './carrier.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,YAAY,EACV,eAAe,EACf,YAAY,EACZ,WAAW,EACX,cAAc,EACd,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,cAAc,GACf,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,0BAA0B,EAC1B,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGrF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGzF,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGvD,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,2BAA2B,EAC3B,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAGtB,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,UAAU,CAAC;AAGlB,YAAY,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAEvF,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAGhF,YAAY,EACV,eAAe,EACf,YAAY,EACZ,WAAW,EACX,cAAc,EACd,aAAa,EACb,WAAW,EACX,yBAAyB,EACzB,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,0BAA0B,EAC1B,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGrF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,EACL,WAAW,EACX,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,6BAA6B,EAC7B,gBAAgB,EAChB,YAAY,GACb,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGvD,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,2BAA2B,EAC3B,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAGtB,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -2,38 +2,38 @@
2
2
  /**
3
3
  * @peac/adapter-x402
4
4
  *
5
- * x402 Offer/Receipt extension verification, term-matching, and PEAC record mapping.
5
+ * Verification, term-matching, and evidence mapping for the
6
+ * x402 Offer/Receipt extension (compatible with upstream coinbase/x402).
6
7
  *
7
- * NOTE: This adapter targets the x402 Offer/Receipt EXTENSION,
8
- * NOT the baseline x402 header flow. The profile identifier reflects this:
9
- * `peac-x402-offer-receipt/0.1` (extension) vs `peac-x402/0.1` (baseline, reserved).
10
- *
11
- * Key capabilities:
12
- * - Structural validation of x402 offers and receipts
13
- * - Term-matching: verify signed payload against accept entries
14
- * - Accept selection with acceptIndex as untrusted hint
15
- * - Mapping to canonical PEAC interaction records
16
- * - DoS protection: limits on accepts array size
17
- * - Amount/network validation: CAIP-2 format, integer strings
18
- *
19
- * IMPORTANT: This package does NOT perform cryptographic signature verification
20
- * (EIP-712 recovery, JWS validation). That is the caller's responsibility.
21
- * `valid: true` does NOT imply cryptographic signature validity unless
22
- * a CryptoVerifier is supplied and `verification.cryptographic.verified` is true.
23
- *
24
- * The focus is on term-matching and record mapping -- the verification
25
- * layer that makes unsigned acceptIndex irrelevant for security.
8
+ * Architecture:
9
+ * - Layer A (raw.ts): Exact upstream wire types and extraction
10
+ * - Layer B (normalize.ts): Semantic normalization (EIP-712 placeholders)
11
+ * - Layer C (map.ts): PEAC evidence mapping
12
+ * - Verification (verify.ts): Layered verification API
26
13
  *
27
14
  * @packageDocumentation
28
15
  */
29
16
  Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.mapX402ToChallengeType = exports.X402CarrierAdapter = exports.fromSettlementResponseAsync = exports.fromSettlementResponse = exports.fromOfferResponseAsync = exports.fromOfferResponse = exports.X402_CARRIER_LIMITS = exports.toPeacCarrier = exports.toPeacRecord = exports.selectAccept = exports.matchAcceptTerms = exports.verifyReceipt = exports.verifyOffer = exports.X402Error = exports.MAX_AMOUNT_LENGTH = exports.MAX_TOTAL_ACCEPTS_BYTES = exports.MAX_ACCEPT_ENTRIES = exports.X402_OFFER_RECEIPT_PROFILE = void 0;
31
- // Constants
17
+ exports.mapX402ToChallengeType = exports.X402CarrierAdapter = exports.fromSettlementResponseAsync = exports.fromSettlementResponse = exports.fromOfferResponseAsync = exports.fromOfferResponse = exports.X402_CARRIER_LIMITS = exports.toPeacCarrier = exports.toPeacRecord = exports.selectAccept = exports.matchAcceptTerms = exports.verifyOfferReceiptConsistency = exports.verifyReceiptWire = exports.verifyOfferWire = exports.verifyReceipt = exports.verifyOffer = exports.X402Error = exports.defaultAddressComparator = exports.MAX_AMOUNT_LENGTH = exports.MAX_TOTAL_ACCEPTS_BYTES = exports.MAX_ACCEPT_ENTRIES = exports.X402_OFFER_RECEIPT_PROFILE = exports.normalizeReceiptPayload = exports.normalizeOfferPayload = exports.extractReceiptFromHeaders = exports.extractExtensionInfo = exports.extractReceiptPayload = exports.extractOfferPayload = exports.parseCompactJWS = exports.X402_RECEIPT_HEADERS = exports.MAX_COMPACT_JWS_BYTES = exports.OFFER_RECEIPT = void 0;
18
+ var raw_js_1 = require("./raw.js");
19
+ Object.defineProperty(exports, "OFFER_RECEIPT", { enumerable: true, get: function () { return raw_js_1.OFFER_RECEIPT; } });
20
+ Object.defineProperty(exports, "MAX_COMPACT_JWS_BYTES", { enumerable: true, get: function () { return raw_js_1.MAX_COMPACT_JWS_BYTES; } });
21
+ Object.defineProperty(exports, "X402_RECEIPT_HEADERS", { enumerable: true, get: function () { return raw_js_1.X402_RECEIPT_HEADERS; } });
22
+ Object.defineProperty(exports, "parseCompactJWS", { enumerable: true, get: function () { return raw_js_1.parseCompactJWS; } });
23
+ Object.defineProperty(exports, "extractOfferPayload", { enumerable: true, get: function () { return raw_js_1.extractOfferPayload; } });
24
+ Object.defineProperty(exports, "extractReceiptPayload", { enumerable: true, get: function () { return raw_js_1.extractReceiptPayload; } });
25
+ Object.defineProperty(exports, "extractExtensionInfo", { enumerable: true, get: function () { return raw_js_1.extractExtensionInfo; } });
26
+ Object.defineProperty(exports, "extractReceiptFromHeaders", { enumerable: true, get: function () { return raw_js_1.extractReceiptFromHeaders; } });
27
+ var normalize_js_1 = require("./normalize.js");
28
+ Object.defineProperty(exports, "normalizeOfferPayload", { enumerable: true, get: function () { return normalize_js_1.normalizeOfferPayload; } });
29
+ Object.defineProperty(exports, "normalizeReceiptPayload", { enumerable: true, get: function () { return normalize_js_1.normalizeReceiptPayload; } });
30
+ // Constants and functions from types
32
31
  var types_js_1 = require("./types.js");
33
32
  Object.defineProperty(exports, "X402_OFFER_RECEIPT_PROFILE", { enumerable: true, get: function () { return types_js_1.X402_OFFER_RECEIPT_PROFILE; } });
34
33
  Object.defineProperty(exports, "MAX_ACCEPT_ENTRIES", { enumerable: true, get: function () { return types_js_1.MAX_ACCEPT_ENTRIES; } });
35
34
  Object.defineProperty(exports, "MAX_TOTAL_ACCEPTS_BYTES", { enumerable: true, get: function () { return types_js_1.MAX_TOTAL_ACCEPTS_BYTES; } });
36
35
  Object.defineProperty(exports, "MAX_AMOUNT_LENGTH", { enumerable: true, get: function () { return types_js_1.MAX_AMOUNT_LENGTH; } });
36
+ Object.defineProperty(exports, "defaultAddressComparator", { enumerable: true, get: function () { return types_js_1.defaultAddressComparator; } });
37
37
  // Errors
38
38
  var errors_js_1 = require("./errors.js");
39
39
  Object.defineProperty(exports, "X402Error", { enumerable: true, get: function () { return errors_js_1.X402Error; } });
@@ -41,6 +41,9 @@ Object.defineProperty(exports, "X402Error", { enumerable: true, get: function ()
41
41
  var verify_js_1 = require("./verify.js");
42
42
  Object.defineProperty(exports, "verifyOffer", { enumerable: true, get: function () { return verify_js_1.verifyOffer; } });
43
43
  Object.defineProperty(exports, "verifyReceipt", { enumerable: true, get: function () { return verify_js_1.verifyReceipt; } });
44
+ Object.defineProperty(exports, "verifyOfferWire", { enumerable: true, get: function () { return verify_js_1.verifyOfferWire; } });
45
+ Object.defineProperty(exports, "verifyReceiptWire", { enumerable: true, get: function () { return verify_js_1.verifyReceiptWire; } });
46
+ Object.defineProperty(exports, "verifyOfferReceiptConsistency", { enumerable: true, get: function () { return verify_js_1.verifyOfferReceiptConsistency; } });
44
47
  Object.defineProperty(exports, "matchAcceptTerms", { enumerable: true, get: function () { return verify_js_1.matchAcceptTerms; } });
45
48
  Object.defineProperty(exports, "selectAccept", { enumerable: true, get: function () { return verify_js_1.selectAccept; } });
46
49
  // Mapping
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;;;AAqBH,YAAY;AACZ,uCAKoB;AAJlB,sHAAA,0BAA0B,OAAA;AAC1B,8GAAA,kBAAkB,OAAA;AAClB,mHAAA,uBAAuB,OAAA;AACvB,6GAAA,iBAAiB,OAAA;AAMnB,SAAS;AACT,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAGlB,eAAe;AACf,yCAAyF;AAAhF,wGAAA,WAAW,OAAA;AAAE,0GAAA,aAAa,OAAA;AAAE,6GAAA,gBAAgB,OAAA;AAAE,yGAAA,YAAY,OAAA;AAEnE,UAAU;AACV,mCAAuD;AAA9C,sGAAA,YAAY,OAAA;AAAE,uGAAA,aAAa,OAAA;AAUpC,2CAOsB;AANpB,iHAAA,mBAAmB,OAAA;AACnB,+GAAA,iBAAiB,OAAA;AACjB,oHAAA,sBAAsB,OAAA;AACtB,oHAAA,sBAAsB,OAAA;AACtB,yHAAA,2BAA2B,OAAA;AAC3B,gHAAA,kBAAkB,OAAA;AAKpB,+CAAwD;AAA/C,sHAAA,sBAAsB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;AAgBH,mCASkB;AARhB,uGAAA,aAAa,OAAA;AACb,+GAAA,qBAAqB,OAAA;AACrB,8GAAA,oBAAoB,OAAA;AACpB,yGAAA,eAAe,OAAA;AACf,6GAAA,mBAAmB,OAAA;AACnB,+GAAA,qBAAqB,OAAA;AACrB,8GAAA,oBAAoB,OAAA;AACpB,mHAAA,yBAAyB,OAAA;AAM3B,+CAAgF;AAAvE,qHAAA,qBAAqB,OAAA;AAAE,uHAAA,uBAAuB,OAAA;AA+BvD,qCAAqC;AACrC,uCAMoB;AALlB,sHAAA,0BAA0B,OAAA;AAC1B,8GAAA,kBAAkB,OAAA;AAClB,mHAAA,uBAAuB,OAAA;AACvB,6GAAA,iBAAiB,OAAA;AACjB,oHAAA,wBAAwB,OAAA;AAM1B,SAAS;AACT,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAGlB,eAAe;AACf,yCAQqB;AAPnB,wGAAA,WAAW,OAAA;AACX,0GAAA,aAAa,OAAA;AACb,4GAAA,eAAe,OAAA;AACf,8GAAA,iBAAiB,OAAA;AACjB,0HAAA,6BAA6B,OAAA;AAC7B,6GAAA,gBAAgB,OAAA;AAChB,yGAAA,YAAY,OAAA;AAGd,UAAU;AACV,mCAAuD;AAA9C,sGAAA,YAAY,OAAA;AAAE,uGAAA,aAAa,OAAA;AAUpC,2CAOsB;AANpB,iHAAA,mBAAmB,OAAA;AACnB,+GAAA,iBAAiB,OAAA;AACjB,oHAAA,sBAAsB,OAAA;AACtB,oHAAA,sBAAsB,OAAA;AACtB,yHAAA,2BAA2B,OAAA;AAC3B,gHAAA,kBAAkB,OAAA;AAKpB,+CAAwD;AAA/C,sHAAA,sBAAsB,OAAA"}
package/dist/map.d.ts CHANGED
@@ -1,41 +1,48 @@
1
1
  /**
2
- * x402 to PEAC record mapping
2
+ * x402 to PEAC record mapping (Layer C)
3
3
  *
4
- * Maps x402 PaymentRequired + SettlementResponse into a canonical
4
+ * Maps x402 offer/receipt extension data into a canonical
5
5
  * PEAC interaction record (X402PeacRecord).
6
6
  *
7
- * NOTE: This mapper produces records for the x402 Offer/Receipt EXTENSION,
8
- * NOT the baseline x402 header flow. The profile identifier reflects this.
9
- *
10
- * The record preserves:
11
- * - Raw proofs (offer + receipt) for audit/dispute
12
- * - Normalized evidence fields from signed payloads
13
- * - Unsigned hints (acceptIndex) explicitly marked as untrusted
14
- * - Verification status metadata (structural, cryptographic, termMatching)
7
+ * Uses normalized payloads (Layer B output) for evidence fields.
8
+ * Raw upstream artifacts are preserved as-is in proofs.
15
9
  */
16
10
  import type { PeacEvidenceCarrier } from '@peac/kernel';
17
- import type { X402PaymentRequired, X402SettlementResponse, X402PeacRecord, OfferVerification } from './types.js';
11
+ import type { X402OfferReceiptChallenge, X402SettlementResponse, X402PeacRecord, OfferVerification, ConsistencyVerification, CryptoResult, AuthorizationResult } from './types.js';
18
12
  /**
19
13
  * Options for record mapping
20
14
  */
21
15
  export interface ToPeacRecordOptions {
22
16
  /**
23
17
  * Offer verification result (to populate verification hints)
24
- *
25
- * The termMatching field in OfferVerification is used to derive
26
- * hints.acceptIndex.mismatchDetected automatically. This makes
27
- * mismatch detection first-class without requiring external options.
28
18
  */
29
19
  offerVerification?: OfferVerification;
20
+ /**
21
+ * Consistency verification result
22
+ */
23
+ consistencyVerification?: ConsistencyVerification;
30
24
  /**
31
25
  * Whether cryptographic signature verification was performed
32
26
  * Default: false (adapter does NOT perform crypto verification)
33
27
  */
34
28
  cryptoVerified?: boolean;
35
29
  /**
36
- * Signer identity (if crypto verification was performed)
30
+ * Crypto verification result (if crypto verification was performed)
31
+ */
32
+ cryptoResult?: CryptoResult;
33
+ /**
34
+ * Signer authorization result (if authorization was performed)
35
+ */
36
+ authorizationResult?: AuthorizationResult;
37
+ /**
38
+ * Index of the offer within the offers array to use for mapping
39
+ * Default: 0 (first offer)
40
+ */
41
+ offerIndex?: number;
42
+ /**
43
+ * Maximum compact JWS byte length for payload extraction
37
44
  */
38
- cryptoSigner?: string;
45
+ maxCompactJwsBytes?: number;
39
46
  }
40
47
  /**
41
48
  * Map x402 payment flow to a PEAC interaction record
@@ -43,21 +50,20 @@ export interface ToPeacRecordOptions {
43
50
  * Takes a PaymentRequired (offer side) and SettlementResponse (receipt side)
44
51
  * and produces a canonical PEAC record with normalized evidence.
45
52
  *
46
- * IMPORTANT: The resulting record does NOT indicate cryptographic signature
47
- * validity unless you explicitly pass `cryptoVerified: true` in options.
48
- * See `hints.verification.cryptographic` in the output.
53
+ * Uses Layer B (normalized) payloads for evidence; stores exact raw
54
+ * artifacts in proofs (proof preservation discipline).
49
55
  *
50
- * @param paymentRequired - The 402 response with offer and accepts
56
+ * @param paymentRequired - The 402 response with offers and accepts
51
57
  * @param settlementResponse - The settlement response with receipt
52
58
  * @param options - Optional mapping options
53
59
  * @returns Canonical PEAC interaction record
54
60
  * @throws X402Error if inputs are structurally invalid
55
61
  */
56
- export declare function toPeacRecord(paymentRequired: X402PaymentRequired, settlementResponse: X402SettlementResponse, options?: ToPeacRecordOptions): X402PeacRecord;
62
+ export declare function toPeacRecord(paymentRequired: X402OfferReceiptChallenge, settlementResponse: X402SettlementResponse, options?: ToPeacRecordOptions): X402PeacRecord;
57
63
  /**
58
64
  * Convert an x402 PEAC record to a PeacEvidenceCarrier.
59
65
  *
60
- * Uses the shared `computeReceiptRef()` from `@peac/schema` (correction item 4)
66
+ * Uses the shared `computeReceiptRef()` from `@peac/schema`
61
67
  * to produce a canonical, content-addressed receipt_ref from the JWS.
62
68
  *
63
69
  * @param receiptJws - Compact JWS of the PEAC receipt
package/dist/map.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../src/map.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAIxD,OAAO,KAAK,EACV,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EAEd,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAGpB;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAC1B,eAAe,EAAE,mBAAmB,EACpC,kBAAkB,EAAE,sBAAsB,EAC1C,OAAO,CAAC,EAAE,mBAAmB,GAC5B,cAAc,CAyFhB;AAMD;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAMpF"}
1
+ {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../src/map.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAOxD,OAAO,KAAK,EACV,yBAAyB,EACzB,sBAAsB,EACtB,cAAc,EAEd,iBAAiB,EACjB,uBAAuB,EACvB,YAAY,EACZ,mBAAmB,EACpB,MAAM,YAAY,CAAC;AAGpB;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC;;OAEG;IACH,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;IAClD;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;OAEG;IACH,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAC1B,eAAe,EAAE,yBAAyB,EAC1C,kBAAkB,EAAE,sBAAsB,EAC1C,OAAO,CAAC,EAAE,mBAAmB,GAC5B,cAAc,CA2HhB;AAMD;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAMpF"}