@genesis-tech/genesispay-seller 0.8.0 → 0.11.0
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/CHANGELOG.md +96 -38
- package/README.md +142 -40
- package/dist/client.d.ts +23 -15
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +73 -39
- package/dist/client.js.map +1 -1
- package/dist/customers.d.ts +2 -2
- package/dist/customers.d.ts.map +1 -1
- package/dist/customers.js +5 -5
- package/dist/customers.js.map +1 -1
- package/dist/entitlements.d.ts +19 -0
- package/dist/entitlements.d.ts.map +1 -0
- package/dist/entitlements.js +30 -0
- package/dist/entitlements.js.map +1 -0
- package/dist/errors.d.ts +9 -9
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +18 -18
- package/dist/errors.js.map +1 -1
- package/dist/genesispay-settlement.d.ts +30 -0
- package/dist/genesispay-settlement.d.ts.map +1 -0
- package/dist/genesispay-settlement.js +103 -0
- package/dist/genesispay-settlement.js.map +1 -0
- package/dist/index.d.ts +6 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/invoices.d.ts +2 -2
- package/dist/invoices.d.ts.map +1 -1
- package/dist/invoices.js +7 -7
- package/dist/invoices.js.map +1 -1
- package/dist/mandate-gate.d.ts +5 -5
- package/dist/mandate-gate.d.ts.map +1 -1
- package/dist/mandate-gate.js +4 -4
- package/dist/mandate-gate.js.map +1 -1
- package/dist/mandates.d.ts +4 -4
- package/dist/mandates.d.ts.map +1 -1
- package/dist/mandates.js +9 -9
- package/dist/mandates.js.map +1 -1
- package/dist/payment-gate.js +1 -1
- package/dist/payment-gate.js.map +1 -1
- package/dist/plans.d.ts +2 -2
- package/dist/plans.d.ts.map +1 -1
- package/dist/plans.js +6 -6
- package/dist/plans.js.map +1 -1
- package/dist/products.d.ts +128 -0
- package/dist/products.d.ts.map +1 -0
- package/dist/products.js +287 -0
- package/dist/products.js.map +1 -0
- package/dist/resource.d.ts +2 -2
- package/dist/resource.d.ts.map +1 -1
- package/dist/resource.js +1 -1
- package/dist/resource.js.map +1 -1
- package/dist/webhooks.d.ts +25 -25
- package/dist/webhooks.d.ts.map +1 -1
- package/dist/webhooks.js +30 -29
- package/dist/webhooks.js.map +1 -1
- package/package.json +2 -2
package/dist/webhooks.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
//
|
|
3
3
|
// The server signs every delivery in `src/features/sellers/webhooks.ts`:
|
|
4
4
|
//
|
|
5
|
-
//
|
|
5
|
+
// GENESISPAY-SIGNATURE: t=<unix-seconds>,v1=<hex>
|
|
6
6
|
// v1 = HMAC_SHA256(secret, `${t}.${rawBody}`)
|
|
7
7
|
//
|
|
8
8
|
// Deliberately implemented on WebCrypto (`globalThis.crypto.subtle`) rather
|
|
@@ -16,11 +16,12 @@
|
|
|
16
16
|
* the server grows a type this list does not have.
|
|
17
17
|
*
|
|
18
18
|
* Exported as a runtime array (not only as a type) so a handler can ask
|
|
19
|
-
* `
|
|
19
|
+
* `isKnownGenesisPayEventType(event.type)` before it decides what to do.
|
|
20
20
|
*/
|
|
21
|
-
export const
|
|
21
|
+
export const GENESISPAY_EVENT_TYPES = [
|
|
22
22
|
"payment.confirmed",
|
|
23
23
|
"link.paid",
|
|
24
|
+
"product.purchased",
|
|
24
25
|
"agent_payment.pending_approval",
|
|
25
26
|
"agent_payment.settled",
|
|
26
27
|
"mandate.active",
|
|
@@ -31,22 +32,22 @@ export const PEERPAY_EVENT_TYPES = [
|
|
|
31
32
|
"subscription.past_due",
|
|
32
33
|
];
|
|
33
34
|
/** True when `type` is an event type this SDK version knows about. */
|
|
34
|
-
export function
|
|
35
|
-
return
|
|
35
|
+
export function isKnownGenesisPayEventType(type) {
|
|
36
|
+
return GENESISPAY_EVENT_TYPES.includes(type);
|
|
36
37
|
}
|
|
37
38
|
/**
|
|
38
39
|
* Thrown for every rejection path: malformed/missing header, missing `t`/`v1`,
|
|
39
40
|
* timestamp outside the tolerance window, signature mismatch, non-JSON body.
|
|
40
41
|
* Messages never contain the secret or the expected signature.
|
|
41
42
|
*/
|
|
42
|
-
export class
|
|
43
|
+
export class GenesisPaySignatureVerificationError extends Error {
|
|
43
44
|
constructor(message) {
|
|
44
45
|
super(message);
|
|
45
|
-
this.name = "
|
|
46
|
+
this.name = "GenesisPaySignatureVerificationError";
|
|
46
47
|
}
|
|
47
48
|
}
|
|
48
49
|
const DEFAULT_TOLERANCE_SECONDS = 300;
|
|
49
|
-
const SIGNATURE_HEADER_NAME = "
|
|
50
|
+
const SIGNATURE_HEADER_NAME = "GENESISPAY-SIGNATURE";
|
|
50
51
|
const textEncoder = new TextEncoder();
|
|
51
52
|
const textDecoder = new TextDecoder("utf-8", { fatal: false });
|
|
52
53
|
/**
|
|
@@ -62,14 +63,14 @@ function parseSignatureHeader(header) {
|
|
|
62
63
|
continue;
|
|
63
64
|
const separator = part.indexOf("=");
|
|
64
65
|
if (separator <= 0) {
|
|
65
|
-
throw new
|
|
66
|
+
throw new GenesisPaySignatureVerificationError(`Malformed ${SIGNATURE_HEADER_NAME} header: expected comma-separated key=value pairs.`);
|
|
66
67
|
}
|
|
67
68
|
const key = part.slice(0, separator).trim();
|
|
68
69
|
const value = part.slice(separator + 1).trim();
|
|
69
70
|
if (key === "t") {
|
|
70
71
|
// A second `t=` would make the signed payload ambiguous.
|
|
71
72
|
if (timestampRaw !== undefined) {
|
|
72
|
-
throw new
|
|
73
|
+
throw new GenesisPaySignatureVerificationError(`Malformed ${SIGNATURE_HEADER_NAME} header: duplicate "t" value.`);
|
|
73
74
|
}
|
|
74
75
|
timestampRaw = value;
|
|
75
76
|
}
|
|
@@ -80,24 +81,24 @@ function parseSignatureHeader(header) {
|
|
|
80
81
|
// Unknown keys (future scheme versions) are ignored on purpose.
|
|
81
82
|
}
|
|
82
83
|
if (timestampRaw === undefined || timestampRaw.length === 0) {
|
|
83
|
-
throw new
|
|
84
|
+
throw new GenesisPaySignatureVerificationError(`Missing "t" in ${SIGNATURE_HEADER_NAME} header.`);
|
|
84
85
|
}
|
|
85
86
|
if (!/^\d+$/.test(timestampRaw)) {
|
|
86
|
-
throw new
|
|
87
|
+
throw new GenesisPaySignatureVerificationError(`Invalid "t" in ${SIGNATURE_HEADER_NAME} header: expected unix seconds.`);
|
|
87
88
|
}
|
|
88
89
|
const timestampSeconds = Number(timestampRaw);
|
|
89
90
|
if (!Number.isSafeInteger(timestampSeconds)) {
|
|
90
|
-
throw new
|
|
91
|
+
throw new GenesisPaySignatureVerificationError(`Invalid "t" in ${SIGNATURE_HEADER_NAME} header: expected unix seconds.`);
|
|
91
92
|
}
|
|
92
93
|
if (signatures.length === 0) {
|
|
93
|
-
throw new
|
|
94
|
+
throw new GenesisPaySignatureVerificationError(`Missing "v1" in ${SIGNATURE_HEADER_NAME} header.`);
|
|
94
95
|
}
|
|
95
96
|
return { timestampSeconds, signatures };
|
|
96
97
|
}
|
|
97
98
|
function getSubtleCrypto() {
|
|
98
99
|
const subtle = globalThis.crypto?.subtle;
|
|
99
100
|
if (!subtle) {
|
|
100
|
-
throw new
|
|
101
|
+
throw new GenesisPaySignatureVerificationError("WebCrypto (globalThis.crypto.subtle) is unavailable in this runtime; webhook verification requires it.");
|
|
101
102
|
}
|
|
102
103
|
return subtle;
|
|
103
104
|
}
|
|
@@ -145,17 +146,17 @@ function decodeRawBody(rawBody) {
|
|
|
145
146
|
* delivery is verified and returned unchanged, so a server that adds a new
|
|
146
147
|
* event type can never turn a customer's webhook route into a 400. Only the
|
|
147
148
|
* signature and the envelope (`id`, `type`, `createdAt`, object `data`) can
|
|
148
|
-
* reject a delivery. Widen to `
|
|
149
|
-
* `
|
|
149
|
+
* reject a delivery. Widen to `GenesisPayAnyEvent` and use
|
|
150
|
+
* `isKnownGenesisPayEventType()` if you want to handle that case explicitly.
|
|
150
151
|
*
|
|
151
|
-
* @throws {
|
|
152
|
+
* @throws {GenesisPaySignatureVerificationError} on any verification failure.
|
|
152
153
|
*
|
|
153
154
|
* @example
|
|
154
155
|
* ```ts
|
|
155
156
|
* const event = await constructEvent(
|
|
156
157
|
* await request.text(),
|
|
157
|
-
* request.headers.get("
|
|
158
|
-
* process.env.
|
|
158
|
+
* request.headers.get("genesispay-signature") ?? "",
|
|
159
|
+
* process.env.GENESISPAY_WEBHOOK_SECRET!,
|
|
159
160
|
* );
|
|
160
161
|
* if (event.type === "payment.confirmed") {
|
|
161
162
|
* fulfil(event.data.link.clientReferenceId, event.data.attempt.txHash);
|
|
@@ -164,14 +165,14 @@ function decodeRawBody(rawBody) {
|
|
|
164
165
|
*/
|
|
165
166
|
export async function constructEvent(rawBody, signatureHeader, secret, opts = {}) {
|
|
166
167
|
if (typeof signatureHeader !== "string" || signatureHeader.trim().length === 0) {
|
|
167
|
-
throw new
|
|
168
|
+
throw new GenesisPaySignatureVerificationError(`Missing ${SIGNATURE_HEADER_NAME} header.`);
|
|
168
169
|
}
|
|
169
170
|
if (typeof secret !== "string" || secret.length === 0) {
|
|
170
|
-
throw new
|
|
171
|
+
throw new GenesisPaySignatureVerificationError("Missing webhook signing secret.");
|
|
171
172
|
}
|
|
172
173
|
const toleranceSeconds = opts.toleranceSeconds ?? DEFAULT_TOLERANCE_SECONDS;
|
|
173
174
|
if (!Number.isFinite(toleranceSeconds) || toleranceSeconds < 0) {
|
|
174
|
-
throw new
|
|
175
|
+
throw new GenesisPaySignatureVerificationError("Invalid toleranceSeconds: expected a non-negative number.");
|
|
175
176
|
}
|
|
176
177
|
const { timestampSeconds, signatures } = parseSignatureHeader(signatureHeader);
|
|
177
178
|
const nowMs = opts.nowMs ?? Date.now();
|
|
@@ -179,7 +180,7 @@ export async function constructEvent(rawBody, signatureHeader, secret, opts = {}
|
|
|
179
180
|
const skewSeconds = Math.abs(nowSeconds - timestampSeconds);
|
|
180
181
|
if (skewSeconds > toleranceSeconds) {
|
|
181
182
|
// Rejects future timestamps too — a clock-skewed or replayed delivery.
|
|
182
|
-
throw new
|
|
183
|
+
throw new GenesisPaySignatureVerificationError(`Webhook timestamp is outside the tolerance window of ${toleranceSeconds}s (off by ${skewSeconds}s).`);
|
|
183
184
|
}
|
|
184
185
|
const body = decodeRawBody(rawBody);
|
|
185
186
|
const expected = await computeExpectedSignature(secret, `${timestampSeconds}.${body}`);
|
|
@@ -190,17 +191,17 @@ export async function constructEvent(rawBody, signatureHeader, secret, opts = {}
|
|
|
190
191
|
matched = timingSafeEqualStrings(expected, candidate.toLowerCase()) || matched;
|
|
191
192
|
}
|
|
192
193
|
if (!matched) {
|
|
193
|
-
throw new
|
|
194
|
+
throw new GenesisPaySignatureVerificationError("Webhook signature mismatch: the payload does not match the signing secret.");
|
|
194
195
|
}
|
|
195
196
|
let parsed;
|
|
196
197
|
try {
|
|
197
198
|
parsed = JSON.parse(body);
|
|
198
199
|
}
|
|
199
200
|
catch {
|
|
200
|
-
throw new
|
|
201
|
+
throw new GenesisPaySignatureVerificationError("Webhook body is not valid JSON.");
|
|
201
202
|
}
|
|
202
203
|
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
|
|
203
|
-
throw new
|
|
204
|
+
throw new GenesisPaySignatureVerificationError("Webhook body is not a JSON object.");
|
|
204
205
|
}
|
|
205
206
|
// The envelope is asserted rather than cast. `id` in particular is the
|
|
206
207
|
// documented idempotency key — it is stable across delivery retries, so an
|
|
@@ -210,13 +211,13 @@ export async function constructEvent(rawBody, signatureHeader, secret, opts = {}
|
|
|
210
211
|
const envelope = parsed;
|
|
211
212
|
for (const field of ["id", "type", "createdAt"]) {
|
|
212
213
|
if (typeof envelope[field] !== "string" || envelope[field] === "") {
|
|
213
|
-
throw new
|
|
214
|
+
throw new GenesisPaySignatureVerificationError(`Webhook body is missing a string "${field}" field.`);
|
|
214
215
|
}
|
|
215
216
|
}
|
|
216
217
|
if (typeof envelope.data !== "object" ||
|
|
217
218
|
envelope.data === null ||
|
|
218
219
|
Array.isArray(envelope.data)) {
|
|
219
|
-
throw new
|
|
220
|
+
throw new GenesisPaySignatureVerificationError('Webhook body is missing an object "data" field.');
|
|
220
221
|
}
|
|
221
222
|
return parsed;
|
|
222
223
|
}
|
package/dist/webhooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../src/webhooks.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,EAAE;AACF,yEAAyE;AACzE,EAAE;AACF,
|
|
1
|
+
{"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../src/webhooks.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@genesis-tech/genesispay-seller",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"description": "Framework-agnostic x402 payment gate for sellers, powered by GenesisPay.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "GenesisTech",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"typecheck": "tsc --noEmit"
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@genesis-tech/genesispay-protocol": "^0.
|
|
52
|
+
"@genesis-tech/genesispay-protocol": "^0.3.0",
|
|
53
53
|
"viem": "^2.48.11"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|