@peac/adapter-x402 0.12.4 → 0.12.6
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 +44 -108
- package/dist/carrier.d.ts +7 -0
- package/dist/carrier.d.ts.map +1 -1
- package/dist/carrier.js +7 -0
- package/dist/carrier.js.map +1 -1
- package/dist/index.d.ts +10 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -1
- package/dist/index.js.map +1 -1
- package/dist/map.d.ts +32 -0
- package/dist/map.d.ts.map +1 -1
- package/dist/map.js +81 -0
- package/dist/map.js.map +1 -1
- package/dist/normalize-v2.d.ts +102 -0
- package/dist/normalize-v2.d.ts.map +1 -0
- package/dist/normalize-v2.js +88 -0
- package/dist/normalize-v2.js.map +1 -0
- package/dist/raw-v2.d.ts +156 -0
- package/dist/raw-v2.d.ts.map +1 -0
- package/dist/raw-v2.js +40 -0
- package/dist/raw-v2.js.map +1 -0
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/verify.d.ts +56 -1
- package/dist/verify.d.ts.map +1 -1
- package/dist/verify.js +207 -0
- package/dist/verify.js.map +1 -1
- package/dist/version.d.ts +67 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +97 -0
- package/dist/version.js.map +1 -0
- package/package.json +23 -7
package/README.md
CHANGED
|
@@ -1,26 +1,18 @@
|
|
|
1
1
|
# @peac/adapter-x402
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
Offer/Receipt extension (compatible with upstream coinbase/x402).
|
|
3
|
+
x402 offer verification, receipt extraction, and PEAC interaction record mapping for the x402 Offer/Receipt extension.
|
|
5
4
|
|
|
6
|
-
##
|
|
7
|
-
|
|
8
|
-
This package verifies x402 extension artifacts (offers and receipts) and maps
|
|
9
|
-
them into canonical PEAC interaction records. It implements term-matching
|
|
10
|
-
verification where `acceptIndex` is treated as an untrusted hint and the
|
|
11
|
-
binding comes from matching signed payload fields against accept terms.
|
|
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
|
-
|
|
17
|
-
## Install
|
|
5
|
+
## Installation
|
|
18
6
|
|
|
19
7
|
```bash
|
|
20
8
|
pnpm add @peac/adapter-x402
|
|
21
9
|
```
|
|
22
10
|
|
|
23
|
-
##
|
|
11
|
+
## What It Does
|
|
12
|
+
|
|
13
|
+
`@peac/adapter-x402` is a Layer 4 adapter that verifies x402 offer and receipt artifacts, extracts receipt data from HTTP response headers, and maps the results into canonical PEAC interaction records. It implements a verification-first architecture with layered checks: wire validation, term-matching, offer-receipt consistency, and opt-in cryptographic verification. The adapter reads both PEAC-Receipt and upstream x402 response headers (v1 and v2) with priority-based fallback.
|
|
14
|
+
|
|
15
|
+
## How Do I Use It?
|
|
24
16
|
|
|
25
17
|
### Verify an offer against accept terms
|
|
26
18
|
|
|
@@ -37,119 +29,63 @@ if (result.valid) {
|
|
|
37
29
|
}
|
|
38
30
|
```
|
|
39
31
|
|
|
40
|
-
###
|
|
32
|
+
### Extract receipt artifacts from HTTP response headers
|
|
41
33
|
|
|
42
34
|
```typescript
|
|
43
|
-
import {
|
|
35
|
+
import { extractReceiptArtifactFromHeaders } from '@peac/adapter-x402';
|
|
44
36
|
|
|
45
|
-
//
|
|
46
|
-
|
|
37
|
+
// Dual-header read: checks PEAC-Receipt, then PAYMENT-RESPONSE (v2),
|
|
38
|
+
// then X-PAYMENT-RESPONSE (v1)
|
|
39
|
+
const artifact = extractReceiptArtifactFromHeaders(responseHeaders);
|
|
47
40
|
|
|
48
|
-
|
|
49
|
-
|
|
41
|
+
if (artifact) {
|
|
42
|
+
console.log('Source:', artifact.source); // 'peac' | 'x402_v2' | 'x402_v1'
|
|
43
|
+
console.log('Is PEAC receipt:', artifact.isPeacReceipt);
|
|
44
|
+
console.log('Raw artifact:', artifact.rawArtifact);
|
|
45
|
+
}
|
|
50
46
|
```
|
|
51
47
|
|
|
52
|
-
###
|
|
48
|
+
### Build evidence carriers from x402 responses
|
|
53
49
|
|
|
54
50
|
```typescript
|
|
55
|
-
import {
|
|
51
|
+
import { fromOfferResponse, X402CarrierAdapter } from '@peac/adapter-x402';
|
|
56
52
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
//
|
|
63
|
-
|
|
53
|
+
// Extract from an x402 402 response (offer)
|
|
54
|
+
const extraction = fromOfferResponse(response);
|
|
55
|
+
console.log('Carriers:', extraction.receipts);
|
|
56
|
+
console.log('Transport:', extraction.meta.transport);
|
|
57
|
+
|
|
58
|
+
// Or use the CarrierAdapter interface
|
|
59
|
+
const adapter = new X402CarrierAdapter();
|
|
64
60
|
```
|
|
65
61
|
|
|
66
|
-
###
|
|
62
|
+
### Map an x402 payment flow to a PEAC record
|
|
67
63
|
|
|
68
64
|
```typescript
|
|
69
|
-
import {
|
|
70
|
-
|
|
71
|
-
// Extract offers from upstream 402 response body
|
|
72
|
-
const info = extractExtensionInfo(responseBody);
|
|
73
|
-
// info.offers: RawSignedOffer[]
|
|
74
|
-
// info.receipt?: RawSignedReceipt
|
|
65
|
+
import { toPeacRecord } from '@peac/adapter-x402';
|
|
75
66
|
|
|
76
|
-
|
|
77
|
-
|
|
67
|
+
const record = toPeacRecord(challenge, settlementResponse);
|
|
68
|
+
// record.proofs.x402.offer -- raw offer preserved for audit
|
|
69
|
+
// record.proofs.x402.receipt -- raw receipt preserved for audit
|
|
70
|
+
// record.evidence.resourceUrl -- from signed offer payload
|
|
71
|
+
// record.evidence.payer -- from signed receipt payload
|
|
78
72
|
```
|
|
79
73
|
|
|
80
|
-
##
|
|
81
|
-
|
|
82
|
-
In the x402 Offer/Receipt extension, `acceptIndex` is an unsigned per-offer
|
|
83
|
-
field outside the signed payload. Verifiers MUST NOT rely on it as a binding
|
|
84
|
-
mechanism.
|
|
85
|
-
|
|
86
|
-
This package treats `acceptIndex` as advisory:
|
|
87
|
-
|
|
88
|
-
- If present: bounds-check, then term-match `accepts[acceptIndex]` against
|
|
89
|
-
the signed payload. Reject on mismatch.
|
|
90
|
-
- If absent: scan all `accepts[]` entries for a unique match. If ambiguous
|
|
91
|
-
(multiple matches), reject.
|
|
92
|
-
- If tampered: does not affect security because the binding comes from
|
|
93
|
-
comparing signed payload fields, not the unsigned index.
|
|
94
|
-
|
|
95
|
-
## API
|
|
96
|
-
|
|
97
|
-
### `verifyOffer(offer, accepts, config?)`
|
|
98
|
-
|
|
99
|
-
Verify a signed offer against accept terms. Checks structure, expiry,
|
|
100
|
-
version, signature format, and term-matching.
|
|
101
|
-
|
|
102
|
-
### `verifyReceipt(receipt, config?)`
|
|
103
|
-
|
|
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).
|
|
111
|
-
|
|
112
|
-
### `matchAcceptTerms(payload, accept, addressComparator?)`
|
|
113
|
-
|
|
114
|
-
Compare offer payload fields against a single accept entry. Returns an
|
|
115
|
-
array of mismatched field names (empty means match).
|
|
116
|
-
|
|
117
|
-
### `selectAccept(payload, accepts, acceptIndex?, addressComparator?)`
|
|
118
|
-
|
|
119
|
-
Select the matching accept entry. Throws `X402Error` on failure.
|
|
120
|
-
|
|
121
|
-
### `toPeacRecord(challenge, settlementResponse, options?)`
|
|
122
|
-
|
|
123
|
-
Map an x402 payment flow to a PEAC interaction record.
|
|
124
|
-
|
|
125
|
-
## x402 Version Support
|
|
126
|
-
|
|
127
|
-
This adapter supports x402 **Offer/Receipt extension version 1** (default).
|
|
128
|
-
|
|
129
|
-
| Component | Versions | Details |
|
|
130
|
-
| ----------------------- | ------------ | --------------------------------------------------------- |
|
|
131
|
-
| Offer/Receipt extension | v1 (default) | Configurable via `supportedVersions` option |
|
|
132
|
-
| HTTP header dialect | v1 + v2 | Auto-detected by `@peac/rails-x402` via `detectDialect()` |
|
|
133
|
-
|
|
134
|
-
The version is configurable per call:
|
|
135
|
-
|
|
136
|
-
```typescript
|
|
137
|
-
const result = verifyOffer(offer, accepts, {
|
|
138
|
-
supportedVersions: [1, 2],
|
|
139
|
-
});
|
|
140
|
-
```
|
|
74
|
+
## Integrates With
|
|
141
75
|
|
|
142
|
-
|
|
76
|
+
- `@peac/adapter-core` (Layer 4): Shared Result types and validators
|
|
77
|
+
- `@peac/kernel` (Layer 0): Wire constants and evidence carrier types
|
|
78
|
+
- `@peac/schema` (Layer 1): Receipt ref computation and carrier validation
|
|
79
|
+
- `@peac/crypto` (Layer 2): JWS parsing utilities
|
|
143
80
|
|
|
144
|
-
##
|
|
81
|
+
## For Agent Developers
|
|
145
82
|
|
|
146
|
-
|
|
147
|
-
The `selectAccept` and `toPeacRecord` functions throw `X402Error` with:
|
|
83
|
+
If you are building an AI agent that makes paid API calls via x402:
|
|
148
84
|
|
|
149
|
-
- `
|
|
150
|
-
- `
|
|
151
|
-
- `
|
|
152
|
-
-
|
|
85
|
+
- Use `extractReceiptArtifactFromHeaders()` to capture receipt evidence from HTTP responses
|
|
86
|
+
- Use `verifyOffer()` and `verifyReceipt()` to validate x402 artifacts before accepting them
|
|
87
|
+
- Use `toPeacRecord()` to map verified x402 flows into signed PEAC interaction records
|
|
88
|
+
- See the [llms.txt](https://github.com/peacprotocol/peac/blob/main/llms.txt) for a concise protocol overview
|
|
153
89
|
|
|
154
90
|
## License
|
|
155
91
|
|
package/dist/carrier.d.ts
CHANGED
|
@@ -39,6 +39,13 @@ export type ReceiptArtifactFormat = 'jws' | 'json' | 'unknown';
|
|
|
39
39
|
/** Result of extracting a receipt artifact from headers */
|
|
40
40
|
export interface ReceiptArtifactResult {
|
|
41
41
|
source: ReceiptArtifactSource;
|
|
42
|
+
/**
|
|
43
|
+
* Detected x402 wire version (1 or 2) based on transport evidence.
|
|
44
|
+
* For 'x402_v2' source: always 2. For 'x402_v1': always 1.
|
|
45
|
+
* For 'peac' source: inferred from adjacent x402 headers if present,
|
|
46
|
+
* otherwise undefined (version-neutral).
|
|
47
|
+
*/
|
|
48
|
+
wireVersion: 1 | 2 | undefined;
|
|
42
49
|
headerName: string;
|
|
43
50
|
rawArtifact: string;
|
|
44
51
|
parsedForm?: unknown;
|
package/dist/carrier.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"carrier.d.ts","sourceRoot":"","sources":["../src/carrier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;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;AAgBX,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,+CAA+C;AAC/C,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AAEnE,wDAAwD;AACxD,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,SAAS,CAAC;AAExD,6CAA6C;AAC7C,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;AAE/D,2DAA2D;AAC3D,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,qBAAqB,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,mBAAmB,CAAC;IAClC;;;;;OAKG;IACH,cAAc,EAAE,qBAAqB,CAAC;IACtC;;;;OAIG;IACH,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,wBAAwB;AACxB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,IAAI,EAAE,WAAW,CAAC;IAClB;;;;;;;;;OASG;IACH,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;CAC1C;AAED,8BAA8B;AAC9B,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC/D,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAyBD;;;;;;;;;;GAUG;AACH,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,aAAa,GACrB,qBAAqB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"carrier.d.ts","sourceRoot":"","sources":["../src/carrier.ts"],"names":[],"mappings":"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"}
|
package/dist/carrier.js
CHANGED
|
@@ -82,6 +82,11 @@ function extractReceiptArtifactFromHeaders(headers) {
|
|
|
82
82
|
if (peacValue) {
|
|
83
83
|
return {
|
|
84
84
|
source: 'peac',
|
|
85
|
+
wireVersion: findHeader(headers, X402_V2_RECEIPT_HEADER)
|
|
86
|
+
? 2
|
|
87
|
+
: findHeader(headers, X402_V1_RECEIPT_HEADER)
|
|
88
|
+
? 1
|
|
89
|
+
: undefined,
|
|
85
90
|
headerName: kernel_1.PEAC_RECEIPT_HEADER,
|
|
86
91
|
rawArtifact: peacValue,
|
|
87
92
|
artifactKind: 'receipt',
|
|
@@ -96,6 +101,7 @@ function extractReceiptArtifactFromHeaders(headers) {
|
|
|
96
101
|
if (v2Value) {
|
|
97
102
|
return {
|
|
98
103
|
source: 'x402_v2',
|
|
104
|
+
wireVersion: 2,
|
|
99
105
|
headerName: X402_V2_RECEIPT_HEADER,
|
|
100
106
|
rawArtifact: v2Value,
|
|
101
107
|
parsedForm: tryParseJson(v2Value),
|
|
@@ -110,6 +116,7 @@ function extractReceiptArtifactFromHeaders(headers) {
|
|
|
110
116
|
if (v1Value) {
|
|
111
117
|
return {
|
|
112
118
|
source: 'x402_v1',
|
|
119
|
+
wireVersion: 1,
|
|
113
120
|
headerName: X402_V1_RECEIPT_HEADER,
|
|
114
121
|
rawArtifact: v1Value,
|
|
115
122
|
parsedForm: tryParseJson(v1Value),
|
package/dist/carrier.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"carrier.js","sourceRoot":"","sources":["../src/carrier.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;GAkBG;;;
|
|
1
|
+
{"version":3,"file":"carrier.js","sourceRoot":"","sources":["../src/carrier.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -14,15 +14,23 @@
|
|
|
14
14
|
*/
|
|
15
15
|
export type { RawOfferPayload, RawReceiptPayload, RawJWSSignedOffer, RawEIP712SignedOffer, RawSignedOffer, RawJWSSignedReceipt, RawEIP712SignedReceipt, RawSignedReceipt, RawX402ExtensionInfo, ParsedCompactJWS, } from './raw.js';
|
|
16
16
|
export { OFFER_RECEIPT, MAX_COMPACT_JWS_BYTES, X402_RECEIPT_HEADERS, parseCompactJWS, extractOfferPayload, extractReceiptPayload, extractExtensionInfo, extractReceiptFromHeaders, } from './raw.js';
|
|
17
|
+
export type { RawV2Resource, RawV2PaymentRequiredAccept, RawV2PaymentRequired, RawV2PaymentAuthorization, RawV2PaymentProofBody, RawV2PaymentPayload, RawV2SettlementResponseSuccess, RawV2SettlementResponseFailure, RawV2SettlementResponse, } from './raw-v2.js';
|
|
18
|
+
export { X402_V2_HEADERS } from './raw-v2.js';
|
|
19
|
+
export type { X402WireVersion, X402WireVersionDetection } from './version.js';
|
|
20
|
+
export { detectX402Version, detectX402VersionFromSource } from './version.js';
|
|
17
21
|
export type { NormalizedOfferPayload, NormalizedReceiptPayload } from './normalize.js';
|
|
18
22
|
export { normalizeOfferPayload, normalizeReceiptPayload } from './normalize.js';
|
|
23
|
+
export type { NormalizedV2Offer, NormalizedV2Receipt } from './normalize-v2.js';
|
|
24
|
+
export { normalizeV2Offer, normalizeV2Offers, normalizeV2Receipt } from './normalize-v2.js';
|
|
19
25
|
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
26
|
export { X402_OFFER_RECEIPT_PROFILE, MAX_ACCEPT_ENTRIES, MAX_TOTAL_ACCEPTS_BYTES, MAX_AMOUNT_LENGTH, defaultAddressComparator, } from './types.js';
|
|
21
27
|
export type { Result, AdapterError, AdapterErrorCode, JsonObject } from './types.js';
|
|
22
28
|
export { X402Error } from './errors.js';
|
|
23
29
|
export type { X402ErrorCode } from './errors.js';
|
|
24
|
-
export { verifyOffer, verifyReceipt, verifyOfferWire, verifyReceiptWire, verifyOfferReceiptConsistency, matchAcceptTerms, selectAccept, } from './verify.js';
|
|
25
|
-
export {
|
|
30
|
+
export { verifyOffer, verifyReceipt, verifyOfferV2, verifyReceiptV2, verifyOfferUnified, verifyReceiptUnified, verifyOfferWire, verifyReceiptWire, verifyOfferReceiptConsistency, matchAcceptTerms, selectAccept, } from './verify.js';
|
|
31
|
+
export type { V2OfferVerification, V2ReceiptVerification } from './verify.js';
|
|
32
|
+
export { toPeacRecord, toPeacRecordV2, toPeacCarrier } from './map.js';
|
|
33
|
+
export type { ToPeacRecordV2Options } from './map.js';
|
|
26
34
|
export type { X402HeaderMap, X402ResponseLike, X402ExtractResult, X402ExtractAsyncResult, ReceiptArtifactSource, ReceiptArtifactKind, ReceiptArtifactFormat, ReceiptArtifactResult, } from './carrier.js';
|
|
27
35
|
export { X402_CARRIER_LIMITS, extractReceiptArtifactFromHeaders, fromOfferResponse, fromOfferResponseAsync, fromSettlementResponse, fromSettlementResponseAsync, X402CarrierAdapter, } from './carrier.js';
|
|
28
36
|
export type { ChallengeType } from './challenge.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* @packageDocumentation
|
|
15
15
|
*/
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.mapX402ToChallengeType = exports.X402CarrierAdapter = exports.fromSettlementResponseAsync = exports.fromSettlementResponse = exports.fromOfferResponseAsync = exports.fromOfferResponse = exports.extractReceiptArtifactFromHeaders = 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;
|
|
17
|
+
exports.mapX402ToChallengeType = exports.X402CarrierAdapter = exports.fromSettlementResponseAsync = exports.fromSettlementResponse = exports.fromOfferResponseAsync = exports.fromOfferResponse = exports.extractReceiptArtifactFromHeaders = exports.X402_CARRIER_LIMITS = exports.toPeacCarrier = exports.toPeacRecordV2 = exports.toPeacRecord = exports.selectAccept = exports.matchAcceptTerms = exports.verifyOfferReceiptConsistency = exports.verifyReceiptWire = exports.verifyOfferWire = exports.verifyReceiptUnified = exports.verifyOfferUnified = exports.verifyReceiptV2 = exports.verifyOfferV2 = 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.normalizeV2Receipt = exports.normalizeV2Offers = exports.normalizeV2Offer = exports.normalizeReceiptPayload = exports.normalizeOfferPayload = exports.detectX402VersionFromSource = exports.detectX402Version = exports.X402_V2_HEADERS = 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
18
|
var raw_js_1 = require("./raw.js");
|
|
19
19
|
Object.defineProperty(exports, "OFFER_RECEIPT", { enumerable: true, get: function () { return raw_js_1.OFFER_RECEIPT; } });
|
|
20
20
|
Object.defineProperty(exports, "MAX_COMPACT_JWS_BYTES", { enumerable: true, get: function () { return raw_js_1.MAX_COMPACT_JWS_BYTES; } });
|
|
@@ -24,9 +24,18 @@ Object.defineProperty(exports, "extractOfferPayload", { enumerable: true, get: f
|
|
|
24
24
|
Object.defineProperty(exports, "extractReceiptPayload", { enumerable: true, get: function () { return raw_js_1.extractReceiptPayload; } });
|
|
25
25
|
Object.defineProperty(exports, "extractExtensionInfo", { enumerable: true, get: function () { return raw_js_1.extractExtensionInfo; } });
|
|
26
26
|
Object.defineProperty(exports, "extractReceiptFromHeaders", { enumerable: true, get: function () { return raw_js_1.extractReceiptFromHeaders; } });
|
|
27
|
+
var raw_v2_js_1 = require("./raw-v2.js");
|
|
28
|
+
Object.defineProperty(exports, "X402_V2_HEADERS", { enumerable: true, get: function () { return raw_v2_js_1.X402_V2_HEADERS; } });
|
|
29
|
+
var version_js_1 = require("./version.js");
|
|
30
|
+
Object.defineProperty(exports, "detectX402Version", { enumerable: true, get: function () { return version_js_1.detectX402Version; } });
|
|
31
|
+
Object.defineProperty(exports, "detectX402VersionFromSource", { enumerable: true, get: function () { return version_js_1.detectX402VersionFromSource; } });
|
|
27
32
|
var normalize_js_1 = require("./normalize.js");
|
|
28
33
|
Object.defineProperty(exports, "normalizeOfferPayload", { enumerable: true, get: function () { return normalize_js_1.normalizeOfferPayload; } });
|
|
29
34
|
Object.defineProperty(exports, "normalizeReceiptPayload", { enumerable: true, get: function () { return normalize_js_1.normalizeReceiptPayload; } });
|
|
35
|
+
var normalize_v2_js_1 = require("./normalize-v2.js");
|
|
36
|
+
Object.defineProperty(exports, "normalizeV2Offer", { enumerable: true, get: function () { return normalize_v2_js_1.normalizeV2Offer; } });
|
|
37
|
+
Object.defineProperty(exports, "normalizeV2Offers", { enumerable: true, get: function () { return normalize_v2_js_1.normalizeV2Offers; } });
|
|
38
|
+
Object.defineProperty(exports, "normalizeV2Receipt", { enumerable: true, get: function () { return normalize_v2_js_1.normalizeV2Receipt; } });
|
|
30
39
|
// Constants and functions from types
|
|
31
40
|
var types_js_1 = require("./types.js");
|
|
32
41
|
Object.defineProperty(exports, "X402_OFFER_RECEIPT_PROFILE", { enumerable: true, get: function () { return types_js_1.X402_OFFER_RECEIPT_PROFILE; } });
|
|
@@ -41,6 +50,10 @@ Object.defineProperty(exports, "X402Error", { enumerable: true, get: function ()
|
|
|
41
50
|
var verify_js_1 = require("./verify.js");
|
|
42
51
|
Object.defineProperty(exports, "verifyOffer", { enumerable: true, get: function () { return verify_js_1.verifyOffer; } });
|
|
43
52
|
Object.defineProperty(exports, "verifyReceipt", { enumerable: true, get: function () { return verify_js_1.verifyReceipt; } });
|
|
53
|
+
Object.defineProperty(exports, "verifyOfferV2", { enumerable: true, get: function () { return verify_js_1.verifyOfferV2; } });
|
|
54
|
+
Object.defineProperty(exports, "verifyReceiptV2", { enumerable: true, get: function () { return verify_js_1.verifyReceiptV2; } });
|
|
55
|
+
Object.defineProperty(exports, "verifyOfferUnified", { enumerable: true, get: function () { return verify_js_1.verifyOfferUnified; } });
|
|
56
|
+
Object.defineProperty(exports, "verifyReceiptUnified", { enumerable: true, get: function () { return verify_js_1.verifyReceiptUnified; } });
|
|
44
57
|
Object.defineProperty(exports, "verifyOfferWire", { enumerable: true, get: function () { return verify_js_1.verifyOfferWire; } });
|
|
45
58
|
Object.defineProperty(exports, "verifyReceiptWire", { enumerable: true, get: function () { return verify_js_1.verifyReceiptWire; } });
|
|
46
59
|
Object.defineProperty(exports, "verifyOfferReceiptConsistency", { enumerable: true, get: function () { return verify_js_1.verifyOfferReceiptConsistency; } });
|
|
@@ -49,6 +62,7 @@ Object.defineProperty(exports, "selectAccept", { enumerable: true, get: function
|
|
|
49
62
|
// Mapping
|
|
50
63
|
var map_js_1 = require("./map.js");
|
|
51
64
|
Object.defineProperty(exports, "toPeacRecord", { enumerable: true, get: function () { return map_js_1.toPeacRecord; } });
|
|
65
|
+
Object.defineProperty(exports, "toPeacRecordV2", { enumerable: true, get: function () { return map_js_1.toPeacRecordV2; } });
|
|
52
66
|
Object.defineProperty(exports, "toPeacCarrier", { enumerable: true, get: function () { return map_js_1.toPeacCarrier; } });
|
|
53
67
|
var carrier_js_1 = require("./carrier.js");
|
|
54
68
|
Object.defineProperty(exports, "X402_CARRIER_LIMITS", { enumerable: true, get: function () { return carrier_js_1.X402_CARRIER_LIMITS; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AAgB3B,yCAA8C;AAArC,4GAAA,eAAe,OAAA;AAIxB,2CAA8E;AAArE,+GAAA,iBAAiB,OAAA;AAAE,yHAAA,2BAA2B,OAAA;AAKvD,+CAAgF;AAAvE,qHAAA,qBAAqB,OAAA;AAAE,uHAAA,uBAAuB,OAAA;AAIvD,qDAA4F;AAAnF,mHAAA,gBAAgB,OAAA;AAAE,oHAAA,iBAAiB,OAAA;AAAE,qHAAA,kBAAkB,OAAA;AA+BhE,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,yCAYqB;AAXnB,wGAAA,WAAW,OAAA;AACX,0GAAA,aAAa,OAAA;AACb,0GAAA,aAAa,OAAA;AACb,4GAAA,eAAe,OAAA;AACf,+GAAA,kBAAkB,OAAA;AAClB,iHAAA,oBAAoB,OAAA;AACpB,4GAAA,eAAe,OAAA;AACf,8GAAA,iBAAiB,OAAA;AACjB,0HAAA,6BAA6B,OAAA;AAC7B,6GAAA,gBAAgB,OAAA;AAChB,yGAAA,YAAY,OAAA;AAId,UAAU;AACV,mCAAuE;AAA9D,sGAAA,YAAY,OAAA;AAAE,wGAAA,cAAc,OAAA;AAAE,uGAAA,aAAa,OAAA;AAepD,2CAQsB;AAPpB,iHAAA,mBAAmB,OAAA;AACnB,+HAAA,iCAAiC,OAAA;AACjC,+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
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
* Raw upstream artifacts are preserved as-is in proofs.
|
|
9
9
|
*/
|
|
10
10
|
import type { PeacEvidenceCarrier } from '@peac/kernel';
|
|
11
|
+
import type { RawSignedOffer, RawSignedReceipt } from './raw.js';
|
|
12
|
+
import type { NormalizedV2Offer, NormalizedV2Receipt } from './normalize-v2.js';
|
|
11
13
|
import type { X402OfferReceiptChallenge, X402SettlementResponse, X402PeacRecord, OfferVerification, ConsistencyVerification, CryptoResult, AuthorizationResult } from './types.js';
|
|
12
14
|
/**
|
|
13
15
|
* Options for record mapping
|
|
@@ -60,6 +62,36 @@ export interface ToPeacRecordOptions {
|
|
|
60
62
|
* @throws X402Error if inputs are structurally invalid
|
|
61
63
|
*/
|
|
62
64
|
export declare function toPeacRecord(paymentRequired: X402OfferReceiptChallenge, settlementResponse: X402SettlementResponse, options?: ToPeacRecordOptions): X402PeacRecord;
|
|
65
|
+
/**
|
|
66
|
+
* Options for V2 record mapping
|
|
67
|
+
*/
|
|
68
|
+
export interface ToPeacRecordV2Options {
|
|
69
|
+
/** Offer verification result */
|
|
70
|
+
offerVerification?: OfferVerification;
|
|
71
|
+
/** Consistency verification result */
|
|
72
|
+
consistencyVerification?: ConsistencyVerification;
|
|
73
|
+
/** Whether cryptographic verification was performed */
|
|
74
|
+
cryptoVerified?: boolean;
|
|
75
|
+
/** Crypto verification result */
|
|
76
|
+
cryptoResult?: CryptoResult;
|
|
77
|
+
/** Signer authorization result */
|
|
78
|
+
authorizationResult?: AuthorizationResult;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Map V2 x402 payment flow to a PEAC interaction record.
|
|
82
|
+
*
|
|
83
|
+
* V2 uses per-accept-entry offers with different semantics:
|
|
84
|
+
* maxTimeoutSeconds (duration) instead of validUntil (epoch),
|
|
85
|
+
* resource metadata, and scheme-specific extra data.
|
|
86
|
+
*
|
|
87
|
+
* @param offer - Normalized V2 offer (single accept entry)
|
|
88
|
+
* @param receipt - Normalized V2 receipt (caller supplies resourceUrl and issuedAt)
|
|
89
|
+
* @param rawOffer - Raw upstream offer artifact (preserved in proofs)
|
|
90
|
+
* @param rawReceipt - Raw upstream receipt artifact (preserved in proofs)
|
|
91
|
+
* @param options - Optional verification results for hints
|
|
92
|
+
* @returns Canonical PEAC interaction record
|
|
93
|
+
*/
|
|
94
|
+
export declare function toPeacRecordV2(offer: NormalizedV2Offer, receipt: NormalizedV2Receipt, rawOffer: RawSignedOffer, rawReceipt: RawSignedReceipt, options?: ToPeacRecordV2Options): X402PeacRecord;
|
|
63
95
|
/**
|
|
64
96
|
* Convert an x402 PEAC record to a PeacEvidenceCarrier.
|
|
65
97
|
*
|
package/dist/map.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;AAIxD,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAGjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAChF,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;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,gCAAgC;IAChC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,sCAAsC;IACtC,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;IAClD,uDAAuD;IACvD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iCAAiC;IACjC,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,kCAAkC;IAClC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,gBAAgB,EAC5B,OAAO,CAAC,EAAE,qBAAqB,GAC9B,cAAc,CAsEhB;AAMD;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAMpF"}
|
package/dist/map.js
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
*/
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.toPeacRecord = toPeacRecord;
|
|
13
|
+
exports.toPeacRecordV2 = toPeacRecordV2;
|
|
13
14
|
exports.toPeacCarrier = toPeacCarrier;
|
|
14
15
|
const schema_1 = require("@peac/schema");
|
|
15
16
|
const errors_js_1 = require("./errors.js");
|
|
@@ -131,6 +132,86 @@ function toPeacRecord(paymentRequired, settlementResponse, options) {
|
|
|
131
132
|
createdAt: new Date().toISOString(),
|
|
132
133
|
};
|
|
133
134
|
}
|
|
135
|
+
/**
|
|
136
|
+
* Map V2 x402 payment flow to a PEAC interaction record.
|
|
137
|
+
*
|
|
138
|
+
* V2 uses per-accept-entry offers with different semantics:
|
|
139
|
+
* maxTimeoutSeconds (duration) instead of validUntil (epoch),
|
|
140
|
+
* resource metadata, and scheme-specific extra data.
|
|
141
|
+
*
|
|
142
|
+
* @param offer - Normalized V2 offer (single accept entry)
|
|
143
|
+
* @param receipt - Normalized V2 receipt (caller supplies resourceUrl and issuedAt)
|
|
144
|
+
* @param rawOffer - Raw upstream offer artifact (preserved in proofs)
|
|
145
|
+
* @param rawReceipt - Raw upstream receipt artifact (preserved in proofs)
|
|
146
|
+
* @param options - Optional verification results for hints
|
|
147
|
+
* @returns Canonical PEAC interaction record
|
|
148
|
+
*/
|
|
149
|
+
function toPeacRecordV2(offer, receipt, rawOffer, rawReceipt, options) {
|
|
150
|
+
const hints = {};
|
|
151
|
+
if (receipt.resourceUrl) {
|
|
152
|
+
hints.resourceUrl = receipt.resourceUrl;
|
|
153
|
+
}
|
|
154
|
+
// Build verification status
|
|
155
|
+
const offerVerification = options?.offerVerification;
|
|
156
|
+
const cryptoResult = options?.cryptoResult;
|
|
157
|
+
const authResult = options?.authorizationResult;
|
|
158
|
+
const verification = {
|
|
159
|
+
structural: true,
|
|
160
|
+
cryptographic: {
|
|
161
|
+
verified: options?.cryptoVerified ?? false,
|
|
162
|
+
...(!(options?.cryptoVerified ?? false) && { reason: 'not_checked' }),
|
|
163
|
+
format: rawOffer.format,
|
|
164
|
+
...(cryptoResult?.signer && { signer: cryptoResult.signer }),
|
|
165
|
+
},
|
|
166
|
+
termMatching: {
|
|
167
|
+
matched: offerVerification?.valid ?? false,
|
|
168
|
+
method: offerVerification?.usedHint ? 'hint' : 'scan',
|
|
169
|
+
...(offerVerification?.matchedIndex !== undefined && {
|
|
170
|
+
matchedIndex: offerVerification.matchedIndex,
|
|
171
|
+
}),
|
|
172
|
+
...(!offerVerification && { reason: 'not_verified' }),
|
|
173
|
+
},
|
|
174
|
+
...(options?.consistencyVerification && {
|
|
175
|
+
consistency: {
|
|
176
|
+
checked: true,
|
|
177
|
+
valid: options.consistencyVerification.valid,
|
|
178
|
+
},
|
|
179
|
+
}),
|
|
180
|
+
...(authResult && {
|
|
181
|
+
signerAuthorization: {
|
|
182
|
+
checked: true,
|
|
183
|
+
authorized: authResult.authorized,
|
|
184
|
+
...(authResult.method && { method: authResult.method }),
|
|
185
|
+
},
|
|
186
|
+
}),
|
|
187
|
+
};
|
|
188
|
+
hints.verification = verification;
|
|
189
|
+
return {
|
|
190
|
+
version: types_js_1.X402_OFFER_RECEIPT_PROFILE,
|
|
191
|
+
proofs: {
|
|
192
|
+
x402: {
|
|
193
|
+
offer: rawOffer,
|
|
194
|
+
receipt: rawReceipt,
|
|
195
|
+
},
|
|
196
|
+
},
|
|
197
|
+
evidence: {
|
|
198
|
+
resourceUrl: offer.resource.url,
|
|
199
|
+
network: offer.network,
|
|
200
|
+
payee: offer.payTo,
|
|
201
|
+
asset: offer.asset,
|
|
202
|
+
amount: offer.amount,
|
|
203
|
+
offerVersion: offer.version,
|
|
204
|
+
maxTimeoutSeconds: offer.maxTimeoutSeconds,
|
|
205
|
+
scheme: offer.scheme,
|
|
206
|
+
...(receipt.payer && { payer: receipt.payer }),
|
|
207
|
+
...(receipt.issuedAt && { issuedAt: receipt.issuedAt }),
|
|
208
|
+
...(receipt.transaction && { transaction: receipt.transaction }),
|
|
209
|
+
receiptVersion: receipt.version,
|
|
210
|
+
},
|
|
211
|
+
hints,
|
|
212
|
+
createdAt: new Date().toISOString(),
|
|
213
|
+
};
|
|
214
|
+
}
|
|
134
215
|
// ---------------------------------------------------------------------------
|
|
135
216
|
// Evidence Carrier mapping
|
|
136
217
|
// ---------------------------------------------------------------------------
|
package/dist/map.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"map.js","sourceRoot":"","sources":["../src/map.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;
|
|
1
|
+
{"version":3,"file":"map.js","sourceRoot":"","sources":["../src/map.ts"],"names":[],"mappings":"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"}
|