@peac/adapter-x402 0.11.1 → 0.11.3
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 +19 -0
- package/dist/carrier.d.ts.map +1 -1
- package/dist/carrier.js +23 -0
- package/dist/carrier.js.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -95,6 +95,25 @@ Select the matching accept entry. Throws `X402Error` on failure.
|
|
|
95
95
|
|
|
96
96
|
Map an x402 payment flow to a PEAC interaction record.
|
|
97
97
|
|
|
98
|
+
## x402 Version Support
|
|
99
|
+
|
|
100
|
+
This adapter supports x402 **Offer/Receipt extension version 1** (default).
|
|
101
|
+
|
|
102
|
+
| Component | Versions | Details |
|
|
103
|
+
| ----------------------- | ------------ | --------------------------------------------------------- |
|
|
104
|
+
| Offer/Receipt extension | v1 (default) | Configurable via `supportedVersions` option |
|
|
105
|
+
| HTTP header dialect | v1 + v2 | Auto-detected by `@peac/rails-x402` via `detectDialect()` |
|
|
106
|
+
|
|
107
|
+
The version is configurable per call:
|
|
108
|
+
|
|
109
|
+
```typescript
|
|
110
|
+
const result = verifyOffer(offer, accepts, acceptIndex, {
|
|
111
|
+
supportedVersions: ['1', '2'],
|
|
112
|
+
});
|
|
113
|
+
```
|
|
114
|
+
|
|
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.
|
|
116
|
+
|
|
98
117
|
## Error handling
|
|
99
118
|
|
|
100
119
|
All verification functions return structured results with error arrays.
|
package/dist/carrier.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/carrier.js
CHANGED
|
@@ -43,6 +43,16 @@ function extractJwsFromHeaders(headers) {
|
|
|
43
43
|
const value = headers[key];
|
|
44
44
|
return value && value.length > 0 ? value : null;
|
|
45
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Extract receipt URL from PEAC-Receipt-URL header (DD-135).
|
|
48
|
+
*/
|
|
49
|
+
function extractReceiptUrlFromHeaders(headers) {
|
|
50
|
+
const key = Object.keys(headers).find((k) => k.toLowerCase() === kernel_1.PEAC_RECEIPT_URL_HEADER.toLowerCase());
|
|
51
|
+
if (!key)
|
|
52
|
+
return null;
|
|
53
|
+
const value = headers[key];
|
|
54
|
+
return value && value.length > 0 ? value : null;
|
|
55
|
+
}
|
|
46
56
|
// ---------------------------------------------------------------------------
|
|
47
57
|
// Extract from Offer Response (HTTP 402)
|
|
48
58
|
// ---------------------------------------------------------------------------
|
|
@@ -59,6 +69,11 @@ function fromOfferResponse(headers, _body) {
|
|
|
59
69
|
receipt_ref: 'sha256:0000000000000000000000000000000000000000000000000000000000000000',
|
|
60
70
|
receipt_jws: jws,
|
|
61
71
|
};
|
|
72
|
+
// Extract receipt_url locator hint (DD-135)
|
|
73
|
+
const receiptUrl = extractReceiptUrlFromHeaders(headers);
|
|
74
|
+
if (receiptUrl) {
|
|
75
|
+
carrier.receipt_url = receiptUrl;
|
|
76
|
+
}
|
|
62
77
|
return {
|
|
63
78
|
receipts: [carrier],
|
|
64
79
|
meta: {
|
|
@@ -81,6 +96,11 @@ async function fromOfferResponseAsync(headers, _body) {
|
|
|
81
96
|
receipt_ref: ref,
|
|
82
97
|
receipt_jws: jws,
|
|
83
98
|
};
|
|
99
|
+
// Extract receipt_url locator hint (DD-135)
|
|
100
|
+
const receiptUrl = extractReceiptUrlFromHeaders(headers);
|
|
101
|
+
if (receiptUrl) {
|
|
102
|
+
carrier.receipt_url = receiptUrl;
|
|
103
|
+
}
|
|
84
104
|
return {
|
|
85
105
|
receipts: [carrier],
|
|
86
106
|
meta: defaultX402Meta(),
|
|
@@ -135,6 +155,9 @@ class X402CarrierAdapter {
|
|
|
135
155
|
output.headers = {};
|
|
136
156
|
}
|
|
137
157
|
output.headers[kernel_1.PEAC_RECEIPT_HEADER] = carrier.receipt_jws;
|
|
158
|
+
if (carrier.receipt_url) {
|
|
159
|
+
output.headers[kernel_1.PEAC_RECEIPT_URL_HEADER] = carrier.receipt_url;
|
|
160
|
+
}
|
|
138
161
|
return output;
|
|
139
162
|
}
|
|
140
163
|
validateConstraints(carrier, meta) {
|
package/dist/carrier.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"carrier.js","sourceRoot":"","sources":["../src/carrier.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;
|
|
1
|
+
{"version":3,"file":"carrier.js","sourceRoot":"","sources":["../src/carrier.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@peac/adapter-x402",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.3",
|
|
4
4
|
"description": "x402 offer/receipt verification, term-matching, and PEAC record mapping",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
"access": "public"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@peac/adapter-core": "0.11.
|
|
23
|
-
"@peac/
|
|
24
|
-
"@peac/
|
|
22
|
+
"@peac/adapter-core": "0.11.3",
|
|
23
|
+
"@peac/schema": "0.11.3",
|
|
24
|
+
"@peac/kernel": "0.11.3"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/node": "^22.19.11",
|