@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.
Files changed (57) hide show
  1. package/CHANGELOG.md +96 -38
  2. package/README.md +142 -40
  3. package/dist/client.d.ts +23 -15
  4. package/dist/client.d.ts.map +1 -1
  5. package/dist/client.js +73 -39
  6. package/dist/client.js.map +1 -1
  7. package/dist/customers.d.ts +2 -2
  8. package/dist/customers.d.ts.map +1 -1
  9. package/dist/customers.js +5 -5
  10. package/dist/customers.js.map +1 -1
  11. package/dist/entitlements.d.ts +19 -0
  12. package/dist/entitlements.d.ts.map +1 -0
  13. package/dist/entitlements.js +30 -0
  14. package/dist/entitlements.js.map +1 -0
  15. package/dist/errors.d.ts +9 -9
  16. package/dist/errors.d.ts.map +1 -1
  17. package/dist/errors.js +18 -18
  18. package/dist/errors.js.map +1 -1
  19. package/dist/genesispay-settlement.d.ts +30 -0
  20. package/dist/genesispay-settlement.d.ts.map +1 -0
  21. package/dist/genesispay-settlement.js +103 -0
  22. package/dist/genesispay-settlement.js.map +1 -0
  23. package/dist/index.d.ts +6 -4
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +4 -4
  26. package/dist/index.js.map +1 -1
  27. package/dist/invoices.d.ts +2 -2
  28. package/dist/invoices.d.ts.map +1 -1
  29. package/dist/invoices.js +7 -7
  30. package/dist/invoices.js.map +1 -1
  31. package/dist/mandate-gate.d.ts +5 -5
  32. package/dist/mandate-gate.d.ts.map +1 -1
  33. package/dist/mandate-gate.js +4 -4
  34. package/dist/mandate-gate.js.map +1 -1
  35. package/dist/mandates.d.ts +4 -4
  36. package/dist/mandates.d.ts.map +1 -1
  37. package/dist/mandates.js +9 -9
  38. package/dist/mandates.js.map +1 -1
  39. package/dist/payment-gate.js +1 -1
  40. package/dist/payment-gate.js.map +1 -1
  41. package/dist/plans.d.ts +2 -2
  42. package/dist/plans.d.ts.map +1 -1
  43. package/dist/plans.js +6 -6
  44. package/dist/plans.js.map +1 -1
  45. package/dist/products.d.ts +128 -0
  46. package/dist/products.d.ts.map +1 -0
  47. package/dist/products.js +287 -0
  48. package/dist/products.js.map +1 -0
  49. package/dist/resource.d.ts +2 -2
  50. package/dist/resource.d.ts.map +1 -1
  51. package/dist/resource.js +1 -1
  52. package/dist/resource.js.map +1 -1
  53. package/dist/webhooks.d.ts +25 -25
  54. package/dist/webhooks.d.ts.map +1 -1
  55. package/dist/webhooks.js +30 -29
  56. package/dist/webhooks.js.map +1 -1
  57. package/package.json +2 -2
@@ -0,0 +1,30 @@
1
+ import { GenesisPayConfigError } from "./errors.js";
2
+ import { asRecord, optionalString, requiredString } from "./resource.js";
3
+ export function createEntitlementsResource(request) {
4
+ return {
5
+ async verify(entitlementId) {
6
+ const id = entitlementId?.trim();
7
+ if (!id?.startsWith("ent_"))
8
+ throw new GenesisPayConfigError("entitlements.verify requires an ent_… id.");
9
+ const body = await request({
10
+ path: `/api/v1/entitlements/verify?entitlement=${encodeURIComponent(id)}`,
11
+ operation: "GET /api/v1/entitlements/verify",
12
+ action: `verify entitlement "${id}"`,
13
+ notFoundMessage: "The entitlement does not exist or does not belong to this seller.",
14
+ });
15
+ const root = asRecord(body);
16
+ const raw = asRecord(root?.entitlement);
17
+ if (!raw)
18
+ throw new GenesisPayConfigError("GenesisPay entitlement verification returned no entitlement.");
19
+ return {
20
+ valid: root?.valid === true,
21
+ entitlement: {
22
+ publicId: requiredString(raw.publicId), productId: requiredString(raw.productId), sku: optionalString(raw.sku),
23
+ paymentAttemptId: requiredString(raw.paymentAttemptId), simulated: raw.simulated === true,
24
+ expiresAt: requiredString(raw.expiresAt), redemptionCount: typeof raw.redemptionCount === "number" ? raw.redemptionCount : 0,
25
+ },
26
+ };
27
+ },
28
+ };
29
+ }
30
+ //# sourceMappingURL=entitlements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entitlements.js","sourceRoot":"","sources":["../src/entitlements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAA0B,MAAM,eAAe,CAAC;AAoBjG,MAAM,UAAU,0BAA0B,CAAC,OAA0B;IACnE,OAAO;QACL,KAAK,CAAC,MAAM,CAAC,aAAa;YACxB,MAAM,EAAE,GAAG,aAAa,EAAE,IAAI,EAAE,CAAC;YACjC,IAAI,CAAC,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC;gBAAE,MAAM,IAAI,qBAAqB,CAAC,2CAA2C,CAAC,CAAC;YAC1G,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC;gBACzB,IAAI,EAAE,2CAA2C,kBAAkB,CAAC,EAAE,CAAC,EAAE;gBACzE,SAAS,EAAE,iCAAiC;gBAC5C,MAAM,EAAE,uBAAuB,EAAE,GAAG;gBACpC,eAAe,EAAE,mEAAmE;aACrF,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAAC,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YACrE,IAAI,CAAC,GAAG;gBAAE,MAAM,IAAI,qBAAqB,CAAC,8DAA8D,CAAC,CAAC;YAC1G,OAAO;gBACL,KAAK,EAAE,IAAI,EAAE,KAAK,KAAK,IAAI;gBAC3B,WAAW,EAAE;oBACX,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC;oBAC9G,gBAAgB,EAAE,cAAc,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,KAAK,IAAI;oBACzF,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,eAAe,EAAE,OAAO,GAAG,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;iBAC7H;aACF,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
package/dist/errors.d.ts CHANGED
@@ -1,22 +1,22 @@
1
1
  /** Missing/invalid key, unresolvable prod URL, or unreachable backend. */
2
- export declare class PeerPayConfigError extends Error {
2
+ export declare class GenesisPayConfigError extends Error {
3
3
  constructor(message: string);
4
4
  }
5
5
  /**
6
6
  * The requested resource does not exist (HTTP 404). Kept separate from
7
- * `PeerPayConfigError` on purpose: polling `checkout.retrieve()` for an unknown
7
+ * `GenesisPayConfigError` on purpose: polling `checkout.retrieve()` for an unknown
8
8
  * publicId is an ordinary application case and must stay distinguishable from
9
9
  * "the key is broken / the backend is unreachable".
10
10
  */
11
- export declare class PeerPayNotFoundError extends Error {
11
+ export declare class GenesisPayNotFoundError extends Error {
12
12
  constructor(message: string);
13
13
  }
14
14
  /** Asset-integrity, mode↔network, or expectedPayTo-pin mismatch — a money-safety stop. */
15
- export declare class PeerPayNetworkSafetyError extends Error {
15
+ export declare class GenesisPayNetworkSafetyError extends Error {
16
16
  constructor(message: string);
17
17
  }
18
18
  /** One rejected field, as the API reports it. `path` is dot-joined ("metadata.orderId"). */
19
- export type PeerPayValidationIssue = {
19
+ export type GenesisPayValidationIssue = {
20
20
  path: string;
21
21
  message: string;
22
22
  };
@@ -28,9 +28,9 @@ export type PeerPayValidationIssue = {
28
28
  * metadata keys and a malformed wallet must not look the same to a caller that
29
29
  * wants to surface the offending field back to its own user.
30
30
  */
31
- export declare class PeerPayValidationError extends Error {
32
- readonly issues: PeerPayValidationIssue[];
33
- constructor(message: string, issues?: PeerPayValidationIssue[]);
31
+ export declare class GenesisPayValidationError extends Error {
32
+ readonly issues: GenesisPayValidationIssue[];
33
+ constructor(message: string, issues?: GenesisPayValidationIssue[]);
34
34
  }
35
35
  /**
36
36
  * The API key exceeded its rate limit (HTTP 429).
@@ -40,7 +40,7 @@ export declare class PeerPayValidationError extends Error {
40
40
  * a caller sleeping on a made-up number is worse than one that backs off with
41
41
  * its own policy.
42
42
  */
43
- export declare class PeerPayRateLimitError extends Error {
43
+ export declare class GenesisPayRateLimitError extends Error {
44
44
  readonly retryAfterSeconds: number | null;
45
45
  constructor(message: string, retryAfterSeconds: number | null);
46
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AASA,0EAA0E;AAC1E,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;GAKG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,OAAO,EAAE,MAAM;CAI5B;AAED,0FAA0F;AAC1F,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,OAAO,EAAE,MAAM;CAI5B;AAED,4FAA4F;AAC5F,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;;;GAOG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,QAAQ,CAAC,MAAM,EAAE,sBAAsB,EAAE,CAAC;gBAE9B,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,sBAAsB,EAAO;CAKnE;AAED;;;;;;;GAOG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;gBAE9B,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,IAAI;CAK9D;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,8EAA8E;IAC9E,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAUF;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,KAAK,CAAC,CA4ChB"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AASA,0EAA0E;AAC1E,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;GAKG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;gBACpC,OAAO,EAAE,MAAM;CAI5B;AAED,0FAA0F;AAC1F,qBAAa,4BAA6B,SAAQ,KAAK;gBACzC,OAAO,EAAE,MAAM;CAI5B;AAED,4FAA4F;AAC5F,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;;;GAOG;AACH,qBAAa,yBAA0B,SAAQ,KAAK;IAClD,QAAQ,CAAC,MAAM,EAAE,yBAAyB,EAAE,CAAC;gBAEjC,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,yBAAyB,EAAO;CAKtE;AAED;;;;;;;GAOG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;gBAE9B,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,IAAI;CAK9D;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,8EAA8E;IAC9E,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAUF;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,KAAK,CAAC,CA4ChB"}
package/dist/errors.js CHANGED
@@ -3,33 +3,33 @@
3
3
  // One rule, one place: `throwForErrorResponse` is the single mapper from a
4
4
  // non-OK `Response` to an error class, so every method (checkout today, plans
5
5
  // and mandates tomorrow) fails the same way. A method that hand-rolls its own
6
- // `throw new PeerPayConfigError(...)` for a non-OK status is a bug — 422 and
6
+ // `throw new GenesisPayConfigError(...)` for a non-OK status is a bug — 422 and
7
7
  // 429 carry information (which field is wrong, how long to wait) that a generic
8
8
  // config error throws away.
9
9
  /** Missing/invalid key, unresolvable prod URL, or unreachable backend. */
10
- export class PeerPayConfigError extends Error {
10
+ export class GenesisPayConfigError extends Error {
11
11
  constructor(message) {
12
12
  super(message);
13
- this.name = "PeerPayConfigError";
13
+ this.name = "GenesisPayConfigError";
14
14
  }
15
15
  }
16
16
  /**
17
17
  * The requested resource does not exist (HTTP 404). Kept separate from
18
- * `PeerPayConfigError` on purpose: polling `checkout.retrieve()` for an unknown
18
+ * `GenesisPayConfigError` on purpose: polling `checkout.retrieve()` for an unknown
19
19
  * publicId is an ordinary application case and must stay distinguishable from
20
20
  * "the key is broken / the backend is unreachable".
21
21
  */
22
- export class PeerPayNotFoundError extends Error {
22
+ export class GenesisPayNotFoundError extends Error {
23
23
  constructor(message) {
24
24
  super(message);
25
- this.name = "PeerPayNotFoundError";
25
+ this.name = "GenesisPayNotFoundError";
26
26
  }
27
27
  }
28
28
  /** Asset-integrity, mode↔network, or expectedPayTo-pin mismatch — a money-safety stop. */
29
- export class PeerPayNetworkSafetyError extends Error {
29
+ export class GenesisPayNetworkSafetyError extends Error {
30
30
  constructor(message) {
31
31
  super(message);
32
- this.name = "PeerPayNetworkSafetyError";
32
+ this.name = "GenesisPayNetworkSafetyError";
33
33
  }
34
34
  }
35
35
  /**
@@ -40,11 +40,11 @@ export class PeerPayNetworkSafetyError extends Error {
40
40
  * metadata keys and a malformed wallet must not look the same to a caller that
41
41
  * wants to surface the offending field back to its own user.
42
42
  */
43
- export class PeerPayValidationError extends Error {
43
+ export class GenesisPayValidationError extends Error {
44
44
  issues;
45
45
  constructor(message, issues = []) {
46
46
  super(message);
47
- this.name = "PeerPayValidationError";
47
+ this.name = "GenesisPayValidationError";
48
48
  this.issues = issues;
49
49
  }
50
50
  }
@@ -56,11 +56,11 @@ export class PeerPayValidationError extends Error {
56
56
  * a caller sleeping on a made-up number is worse than one that backs off with
57
57
  * its own policy.
58
58
  */
59
- export class PeerPayRateLimitError extends Error {
59
+ export class GenesisPayRateLimitError extends Error {
60
60
  retryAfterSeconds;
61
61
  constructor(message, retryAfterSeconds) {
62
62
  super(message);
63
- this.name = "PeerPayRateLimitError";
63
+ this.name = "GenesisPayRateLimitError";
64
64
  this.retryAfterSeconds = retryAfterSeconds;
65
65
  }
66
66
  }
@@ -77,27 +77,27 @@ export async function throwForErrorResponse(response, options) {
77
77
  const suffix = detail ? `: ${detail}` : "";
78
78
  const hint = options.hint ? ` ${options.hint}` : "";
79
79
  if (response.status === 404) {
80
- throw new PeerPayNotFoundError(options.notFoundMessage ??
80
+ throw new GenesisPayNotFoundError(options.notFoundMessage ??
81
81
  `GenesisPay ${options.operation} returned 404 (not found)${suffix}${hint}`);
82
82
  }
83
83
  // 422 is a rejected *body*; 400 with `issues[]` is a rejected *query string*
84
84
  // (`GET /api/v1/mandates` answers that way). Both mean "your input was wrong,
85
- // here are the fields", so both become PeerPayValidationError — a caller that
85
+ // here are the fields", so both become GenesisPayValidationError — a caller that
86
86
  // wants to show the offending parameter must not have to branch on status.
87
87
  //
88
88
  // The `issues.length` gate is what keeps this narrow: a 400 without structured
89
89
  // detail ("Request body must be JSON.", "startingAfter is not a mandate of this
90
- // account.") stays a PeerPayConfigError exactly as before, so nothing that was
90
+ // account.") stays a GenesisPayConfigError exactly as before, so nothing that was
91
91
  // a config error yesterday changes class today.
92
92
  if (response.status === 422 || (response.status === 400 && body.issues.length > 0)) {
93
- throw new PeerPayValidationError(`GenesisPay ${options.operation} rejected the input (${response.status})${suffix}`, body.issues);
93
+ throw new GenesisPayValidationError(`GenesisPay ${options.operation} rejected the input (${response.status})${suffix}`, body.issues);
94
94
  }
95
95
  if (response.status === 429) {
96
96
  const retryAfterSeconds = parseRetryAfterSeconds(response.headers?.get("retry-after") ?? null);
97
97
  const wait = retryAfterSeconds === null ? "" : ` Retry after ${retryAfterSeconds}s.`;
98
- throw new PeerPayRateLimitError(`GenesisPay ${options.operation} was rate limited (429)${suffix}${wait}`, retryAfterSeconds);
98
+ throw new GenesisPayRateLimitError(`GenesisPay ${options.operation} was rate limited (429)${suffix}${wait}`, retryAfterSeconds);
99
99
  }
100
- throw new PeerPayConfigError(`GenesisPay ${options.operation} failed: ${response.status}${suffix}${hint}`.trim());
100
+ throw new GenesisPayConfigError(`GenesisPay ${options.operation} failed: ${response.status}${suffix}${hint}`.trim());
101
101
  }
102
102
  async function readErrorBody(response) {
103
103
  const text = (await response.text().catch(() => "")).trim();
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { VerifySettlement } from "./payment-gate.js";
2
+ /**
3
+ * Default GenesisPay app base URL — the public "development" facilitator. Used
4
+ * when `facilitatorBaseUrl` is omitted so integrators don't have to configure a
5
+ * URL in dev. Set `facilitatorBaseUrl` explicitly for production.
6
+ *
7
+ * The custom domain rather than the Railway-generated hostname: the generated
8
+ * form encodes the service name and breaks when the service is renamed.
9
+ */
10
+ export declare const DEFAULT_FACILITATOR_BASE_URL = "https://dev.genesispay.finance";
11
+ export type GenesisPaySettlementOptions = {
12
+ /**
13
+ * Base URL of the GenesisPay app, e.g. "https://genesispay.example". Defaults to
14
+ * the public development facilitator (DEFAULT_FACILITATOR_BASE_URL) when
15
+ * omitted; set it explicitly in production.
16
+ */
17
+ facilitatorBaseUrl?: string;
18
+ /** GenesisPay seller API key ("gp_sk_..."). */
19
+ apiKey: string;
20
+ /** Override for testing; defaults to global fetch. */
21
+ fetchFn?: typeof fetch;
22
+ };
23
+ /**
24
+ * Built-in settlement hook that forwards the PAYMENT-SIGNATURE payload to the
25
+ * GenesisPay facilitator (`POST /api/v1/facilitator/settle`). GenesisPay broadcasts
26
+ * the EIP-3009 authorization on-chain (or verifies a payer-provided txHash)
27
+ * and verifies the USDC transfer before reporting success.
28
+ */
29
+ export declare function genesisPaySettlement(options: GenesisPaySettlementOptions): VerifySettlement;
30
+ //# sourceMappingURL=genesispay-settlement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genesispay-settlement.d.ts","sourceRoot":"","sources":["../src/genesispay-settlement.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAGV,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;GAOG;AACH,eAAO,MAAM,4BAA4B,mCAAmC,CAAC;AAE7E,MAAM,MAAM,2BAA2B,GAAG;IACxC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,2BAA2B,GACnC,gBAAgB,CA6DlB"}
@@ -0,0 +1,103 @@
1
+ import { parseSettlementResponsePayload } from "@genesis-tech/genesispay-protocol";
2
+ /**
3
+ * Default GenesisPay app base URL — the public "development" facilitator. Used
4
+ * when `facilitatorBaseUrl` is omitted so integrators don't have to configure a
5
+ * URL in dev. Set `facilitatorBaseUrl` explicitly for production.
6
+ *
7
+ * The custom domain rather than the Railway-generated hostname: the generated
8
+ * form encodes the service name and breaks when the service is renamed.
9
+ */
10
+ export const DEFAULT_FACILITATOR_BASE_URL = "https://dev.genesispay.finance";
11
+ /**
12
+ * Built-in settlement hook that forwards the PAYMENT-SIGNATURE payload to the
13
+ * GenesisPay facilitator (`POST /api/v1/facilitator/settle`). GenesisPay broadcasts
14
+ * the EIP-3009 authorization on-chain (or verifies a payer-provided txHash)
15
+ * and verifies the USDC transfer before reporting success.
16
+ */
17
+ export function genesisPaySettlement(options) {
18
+ const settleUrl = buildSettleUrl(options.facilitatorBaseUrl?.trim() || DEFAULT_FACILITATOR_BASE_URL);
19
+ const apiKey = options.apiKey?.trim();
20
+ if (!apiKey) {
21
+ throw new Error("genesisPaySettlement requires a GenesisPay seller API key (gp_sk_...).");
22
+ }
23
+ const fetchFn = options.fetchFn ?? fetch;
24
+ return async (context) => {
25
+ const { requirement } = context;
26
+ let response;
27
+ try {
28
+ response = await fetchFn(settleUrl, {
29
+ method: "POST",
30
+ headers: {
31
+ "Content-Type": "application/json",
32
+ Authorization: `Bearer ${apiKey}`,
33
+ },
34
+ body: JSON.stringify({
35
+ paymentSignature: context.paymentSignatureHeader,
36
+ requirement: {
37
+ resource: requirement.resource,
38
+ network: requirement.network,
39
+ chainId: requirement.chainId,
40
+ assetAddress: requirement.assetAddress,
41
+ amountUsdcMinor: requirement.maxAmountRequired,
42
+ payTo: requirement.payTo,
43
+ description: requirement.description || undefined,
44
+ },
45
+ }),
46
+ });
47
+ }
48
+ catch (error) {
49
+ return {
50
+ ok: false,
51
+ errorReason: `Failed to reach the GenesisPay facilitator: ${describeError(error)}`,
52
+ };
53
+ }
54
+ const body = await readJsonBody(response);
55
+ const settlement = tryParseSettlement(body);
56
+ if (response.ok && settlement?.success) {
57
+ return { ok: true, settlement };
58
+ }
59
+ return {
60
+ ok: false,
61
+ errorReason: settlement?.errorReason ??
62
+ readErrorMessage(body) ??
63
+ `GenesisPay facilitator settlement failed with status ${response.status}.`,
64
+ ...(settlement ? { settlement } : {}),
65
+ };
66
+ };
67
+ }
68
+ function buildSettleUrl(facilitatorBaseUrl) {
69
+ const trimmed = facilitatorBaseUrl?.trim().replace(/\/+$/, "");
70
+ if (!trimmed || !/^https?:\/\//.test(trimmed)) {
71
+ throw new Error(`Invalid facilitatorBaseUrl "${String(facilitatorBaseUrl)}": expected an http(s) URL like "https://genesispay.example".`);
72
+ }
73
+ return `${trimmed}/api/v1/facilitator/settle`;
74
+ }
75
+ async function readJsonBody(response) {
76
+ try {
77
+ return await response.json();
78
+ }
79
+ catch {
80
+ return undefined;
81
+ }
82
+ }
83
+ function tryParseSettlement(body) {
84
+ try {
85
+ return parseSettlementResponsePayload(body);
86
+ }
87
+ catch {
88
+ return undefined;
89
+ }
90
+ }
91
+ function readErrorMessage(body) {
92
+ if (typeof body === "object" &&
93
+ body !== null &&
94
+ "error" in body &&
95
+ typeof body.error === "string") {
96
+ return body.error;
97
+ }
98
+ return undefined;
99
+ }
100
+ function describeError(error) {
101
+ return error instanceof Error ? error.message : "unknown error";
102
+ }
103
+ //# sourceMappingURL=genesispay-settlement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"genesispay-settlement.js","sourceRoot":"","sources":["../src/genesispay-settlement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AASnF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,gCAAgC,CAAC;AAe7E;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAoC;IAEpC,MAAM,SAAS,GAAG,cAAc,CAC9B,OAAO,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,4BAA4B,CACnE,CAAC;IACF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;IAEtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK,CAAC;IAEzC,OAAO,KAAK,EAAE,OAA0B,EAAmC,EAAE;QAC3E,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;QAEhC,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE;gBAClC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,aAAa,EAAE,UAAU,MAAM,EAAE;iBAClC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,gBAAgB,EAAE,OAAO,CAAC,sBAAsB;oBAChD,WAAW,EAAE;wBACX,QAAQ,EAAE,WAAW,CAAC,QAAQ;wBAC9B,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,YAAY,EAAE,WAAW,CAAC,YAAY;wBACtC,eAAe,EAAE,WAAW,CAAC,iBAAiB;wBAC9C,KAAK,EAAE,WAAW,CAAC,KAAK;wBACxB,WAAW,EAAE,WAAW,CAAC,WAAW,IAAI,SAAS;qBAClD;iBACF,CAAC;aACH,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,WAAW,EAAE,+CAA+C,aAAa,CAAC,KAAK,CAAC,EAAE;aACnF,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAE5C,IAAI,QAAQ,CAAC,EAAE,IAAI,UAAU,EAAE,OAAO,EAAE,CAAC;YACvC,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAClC,CAAC;QAED,OAAO;YACL,EAAE,EAAE,KAAK;YACT,WAAW,EACT,UAAU,EAAE,WAAW;gBACvB,gBAAgB,CAAC,IAAI,CAAC;gBACtB,wDAAwD,QAAQ,CAAC,MAAM,GAAG;YAC5E,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,kBAA0B;IAChD,MAAM,OAAO,GAAG,kBAAkB,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAE/D,IAAI,CAAC,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CACb,+BAA+B,MAAM,CAAC,kBAAkB,CAAC,+DAA+D,CACzH,CAAC;IACJ,CAAC;IAED,OAAO,GAAG,OAAO,4BAA4B,CAAC;AAChD,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,QAAkB;IAC5C,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAa;IACvC,IAAI,CAAC;QACH,OAAO,8BAA8B,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAa;IACrC,IACE,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACb,OAAO,IAAI,IAAI;QACf,OAAQ,IAA2B,CAAC,KAAK,KAAK,QAAQ,EACtD,CAAC;QACD,OAAQ,IAA0B,CAAC,KAAK,CAAC;IAC3C,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;AAClE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,12 +1,14 @@
1
- export { PeerPay, type PeerPayKeyMode, type PeerPayClientOptions, type SellerConfig, type CheckoutAmountInput, type CheckoutCreateInput, type CheckoutLink, type CheckoutSession, type CheckoutAttempt, type CheckoutAttemptStatus, type SimulatePaymentOptions, type GateConfig, type ResolvingGate, } from "./client.js";
1
+ export { GenesisPay, type GenesisPayKeyMode, type GenesisPayClientOptions, type SellerConfig, type CheckoutAmountInput, type CheckoutCreateInput, type CheckoutLink, type CheckoutSession, type CheckoutAttempt, type CheckoutAttemptStatus, type SimulatePaymentOptions, type GateConfig, type ResolvingGate, } from "./client.js";
2
2
  export { type SubscriptionPlan, type SubscriptionPlanStatus, type PlanCreateInput, type PlansResource, } from "./plans.js";
3
+ export { type Product, type ProductCreateInput, type ProductPaymentLink, type ProductDelivery, type ProductGate, type ProductGatePurchase, type ProductsResource, } from "./products.js";
4
+ export { type EntitlementsResource, type VerifiedEntitlement } from "./entitlements.js";
3
5
  export { type Customer, type CustomerCreateInput, type CustomerUpdateInput, type CustomersResource, } from "./customers.js";
4
6
  export { type Invoice, type InvoiceStatus, type InvoiceLineInput, type InvoiceDraftInput, type InvoiceEmailDelivery, type InvoicesResource, } from "./invoices.js";
5
7
  export { type Mandate, type MandateKind, type MandateStatus, type MandateCreateInput, type MandateCreateResult, type MandateCharge, type MandateChargeInput, type MandateChargeStatus, type MandateListOptions, type MandateListPage, type PermitTypedData, type MandatesResource, } from "./mandates.js";
6
- export { PeerPayConfigError, PeerPayNetworkSafetyError, PeerPayNotFoundError, PeerPayValidationError, PeerPayRateLimitError, type PeerPayValidationIssue, } from "./errors.js";
7
- export { constructEvent, isKnownPeerPayEventType, PEERPAY_EVENT_TYPES, PeerPaySignatureVerificationError, type PeerPayEvent, type PeerPayAnyEvent, type PeerPayUnknownEvent, type PeerPayEventType, type PeerPayPaymentEvent, type PeerPayMandateEvent, type PeerPayAgentPaymentEvent, type PeerPayPaymentEventData, type PeerPayMandateEventData, type ConstructEventOptions, } from "./webhooks.js";
8
+ export { GenesisPayConfigError, GenesisPayNetworkSafetyError, GenesisPayNotFoundError, GenesisPayValidationError, GenesisPayRateLimitError, type GenesisPayValidationIssue, } from "./errors.js";
9
+ export { constructEvent, isKnownGenesisPayEventType, GENESISPAY_EVENT_TYPES, GenesisPaySignatureVerificationError, type GenesisPayEvent, type GenesisPayAnyEvent, type GenesisPayUnknownEvent, type GenesisPayEventType, type GenesisPayPaymentEvent, type GenesisPayMandateEvent, type GenesisPayAgentPaymentEvent, type GenesisPayPaymentEventData, type GenesisPayMandateEventData, type ConstructEventOptions, } from "./webhooks.js";
8
10
  export { createPaymentGate, type PaymentGate, type PaymentGateConfig, type SettlementContext, type SettlementVerification, type VerifySettlement, type WrapOptions, } from "./payment-gate.js";
9
- export { peerPaySettlement, DEFAULT_FACILITATOR_BASE_URL, type PeerPaySettlementOptions, } from "./peerpay-settlement.js";
11
+ export { genesisPaySettlement, DEFAULT_FACILITATOR_BASE_URL, type GenesisPaySettlementOptions, } from "./genesispay-settlement.js";
10
12
  export { resolvePaymentGateNetwork, type PaymentGateNetwork, type PaymentGateNetworkConfig, } from "./networks.js";
11
13
  export { parseUsdcAmountToMinorUnits } from "./usdc-amount.js";
12
14
  export { createMandateGate, MANDATE_HEADER, type MandateChargeOutcome, type MandateGate, type MandateGateOptions, } from "./mandate-gate.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,OAAO,EACP,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,UAAU,EACf,KAAK,aAAa,GACnB,MAAM,aAAa,CAAC;AAMrB,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,GACvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAC;AAKvB,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,KAAK,sBAAsB,GAC5B,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,mBAAmB,EACnB,iCAAiC,EACjC,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,GAC3B,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,iBAAiB,EACjB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,WAAW,GACjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,iBAAiB,EACjB,4BAA4B,EAC5B,KAAK,wBAAwB,GAC9B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,yBAAyB,EACzB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,GAC9B,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,KAAK,oBAAoB,EACzB,KAAK,WAAW,EAChB,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,UAAU,EACV,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,UAAU,EACf,KAAK,aAAa,GACnB,MAAM,aAAa,CAAC;AAMrB,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACpB,KAAK,aAAa,GACnB,MAAM,YAAY,CAAC;AAIpB,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,KAAK,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExF,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,GACvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,gBAAgB,GACtB,MAAM,eAAe,CAAC;AAKvB,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,EACxB,KAAK,yBAAyB,GAC/B,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,cAAc,EACd,0BAA0B,EAC1B,sBAAsB,EACtB,oCAAoC,EACpC,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,2BAA2B,EAChC,KAAK,0BAA0B,EAC/B,KAAK,0BAA0B,EAC/B,KAAK,qBAAqB,GAC3B,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,iBAAiB,EACjB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,WAAW,GACjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,KAAK,2BAA2B,GACjC,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,yBAAyB,EACzB,KAAK,kBAAkB,EACvB,KAAK,wBAAwB,GAC9B,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,KAAK,oBAAoB,EACzB,KAAK,WAAW,EAChB,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  // @genesis-tech/genesispay-seller — framework-agnostic x402 payment gate.
2
- export { PeerPay, } from "./client.js";
2
+ export { GenesisPay, } from "./client.js";
3
3
  // Every SDK method throws from this set: 404 → NotFound, 422 (and 400 when the
4
4
  // body carries structured `issues`) → Validation, 429 → RateLimit (with
5
5
  // `retryAfterSeconds`), anything else → Config.
6
- export { PeerPayConfigError, PeerPayNetworkSafetyError, PeerPayNotFoundError, PeerPayValidationError, PeerPayRateLimitError, } from "./errors.js";
7
- export { constructEvent, isKnownPeerPayEventType, PEERPAY_EVENT_TYPES, PeerPaySignatureVerificationError, } from "./webhooks.js";
6
+ export { GenesisPayConfigError, GenesisPayNetworkSafetyError, GenesisPayNotFoundError, GenesisPayValidationError, GenesisPayRateLimitError, } from "./errors.js";
7
+ export { constructEvent, isKnownGenesisPayEventType, GENESISPAY_EVENT_TYPES, GenesisPaySignatureVerificationError, } from "./webhooks.js";
8
8
  export { createPaymentGate, } from "./payment-gate.js";
9
- export { peerPaySettlement, DEFAULT_FACILITATOR_BASE_URL, } from "./peerpay-settlement.js";
9
+ export { genesisPaySettlement, DEFAULT_FACILITATOR_BASE_URL, } from "./genesispay-settlement.js";
10
10
  export { resolvePaymentGateNetwork, } from "./networks.js";
11
11
  export { parseUsdcAmountToMinorUnits } from "./usdc-amount.js";
12
12
  export { createMandateGate, MANDATE_HEADER, } from "./mandate-gate.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAE1E,OAAO,EACL,OAAO,GAaR,MAAM,aAAa,CAAC;AA4CrB,+EAA+E;AAC/E,wEAAwE;AACxE,gDAAgD;AAChD,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,GAEtB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,mBAAmB,EACnB,iCAAiC,GAWlC,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,iBAAiB,GAOlB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,iBAAiB,EACjB,4BAA4B,GAE7B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,yBAAyB,GAG1B,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,EACL,iBAAiB,EACjB,cAAc,GAIf,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAE1E,OAAO,EACL,UAAU,GAaX,MAAM,aAAa,CAAC;AA0DrB,+EAA+E;AAC/E,wEAAwE;AACxE,gDAAgD;AAChD,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,uBAAuB,EACvB,yBAAyB,EACzB,wBAAwB,GAEzB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,cAAc,EACd,0BAA0B,EAC1B,sBAAsB,EACtB,oCAAoC,GAWrC,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,iBAAiB,GAOlB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,oBAAoB,EACpB,4BAA4B,GAE7B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,yBAAyB,GAG1B,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,EACL,iBAAiB,EACjB,cAAc,GAIf,MAAM,mBAAmB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { type Customer } from "./customers.js";
2
- import { type PeerPayRequest } from "./resource.js";
2
+ import { type GenesisPayRequest } from "./resource.js";
3
3
  export type InvoiceStatus = "draft" | "open" | "past_due" | "paid" | "void" | "uncollectible";
4
4
  export type InvoiceLineInput = {
5
5
  description: string;
@@ -75,6 +75,6 @@ export interface InvoicesResource {
75
75
  void(publicId: string): Promise<Invoice>;
76
76
  markUncollectible(publicId: string): Promise<Invoice>;
77
77
  }
78
- export declare function createInvoicesResource(request: PeerPayRequest): InvoicesResource;
78
+ export declare function createInvoicesResource(request: GenesisPayRequest): InvoicesResource;
79
79
  export declare function toInvoice(raw: Record<string, unknown>): Invoice;
80
80
  //# sourceMappingURL=invoices.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"invoices.d.ts","sourceRoot":"","sources":["../src/invoices.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invoices.d.ts","sourceRoot":"","sources":["../src/invoices.ts"],"names":[],"mappings":"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"}
package/dist/invoices.js CHANGED
@@ -1,5 +1,5 @@
1
- // `peerpay.invoices.*` — one-off invoice lifecycle over `/api/v1/invoices`.
2
- import { PeerPayConfigError } from "./errors.js";
1
+ // `genesispay.invoices.*` — one-off invoice lifecycle over `/api/v1/invoices`.
2
+ import { GenesisPayConfigError } from "./errors.js";
3
3
  import { toCustomer } from "./customers.js";
4
4
  import { asRecord, oneOf, optionalString, requiredString, toAmountString, toCount, } from "./resource.js";
5
5
  export function createInvoicesResource(request) {
@@ -13,7 +13,7 @@ export function createInvoicesResource(request) {
13
13
  });
14
14
  const rows = asRecord(body)?.invoices;
15
15
  if (!Array.isArray(rows)) {
16
- throw new PeerPayConfigError(`GenesisPay GET /api/v1/invoices returned no invoices array: ${JSON.stringify(body)}`);
16
+ throw new GenesisPayConfigError(`GenesisPay GET /api/v1/invoices returned no invoices array: ${JSON.stringify(body)}`);
17
17
  }
18
18
  return rows
19
19
  .map(asRecord)
@@ -35,7 +35,7 @@ export function createInvoicesResource(request) {
35
35
  const id = requirePublicId(publicId, "invoices.send");
36
36
  const idempotencyKey = options?.idempotencyKey?.trim();
37
37
  if (!idempotencyKey) {
38
- throw new PeerPayConfigError("invoices.send requires a non-empty idempotencyKey.");
38
+ throw new GenesisPayConfigError("invoices.send requires a non-empty idempotencyKey.");
39
39
  }
40
40
  const path = `/api/v1/invoices/${encodeURIComponent(id)}/send`;
41
41
  const response = await request({
@@ -47,7 +47,7 @@ export function createInvoicesResource(request) {
47
47
  });
48
48
  const delivery = asRecord(asRecord(response)?.delivery);
49
49
  if (!delivery?.id) {
50
- throw new PeerPayConfigError(`GenesisPay POST ${path} returned no delivery: ${JSON.stringify(response)}`);
50
+ throw new GenesisPayConfigError(`GenesisPay POST ${path} returned no delivery: ${JSON.stringify(response)}`);
51
51
  }
52
52
  return {
53
53
  id: requiredString(delivery.id),
@@ -72,14 +72,14 @@ async function invoiceRequest(request, method, path, body, action) {
72
72
  });
73
73
  const raw = asRecord(asRecord(response)?.invoice);
74
74
  if (!raw?.publicId) {
75
- throw new PeerPayConfigError(`GenesisPay ${method} ${path} returned no invoice: ${JSON.stringify(response)}`);
75
+ throw new GenesisPayConfigError(`GenesisPay ${method} ${path} returned no invoice: ${JSON.stringify(response)}`);
76
76
  }
77
77
  return toInvoice(raw);
78
78
  }
79
79
  function requirePublicId(publicId, method) {
80
80
  const id = publicId?.trim();
81
81
  if (!id) {
82
- throw new PeerPayConfigError(`${method}(publicId) requires the publicId returned by invoices.create().`);
82
+ throw new GenesisPayConfigError(`${method}(publicId) requires the publicId returned by invoices.create().`);
83
83
  }
84
84
  return id;
85
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"invoices.js","sourceRoot":"","sources":["../src/invoices.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invoices.js","sourceRoot":"","sources":["../src/invoices.ts"],"names":[],"mappings":"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"}
@@ -2,20 +2,20 @@
2
2
  * Mandate gate — the signature-free metered path for humans and subscriptions.
3
3
  *
4
4
  * Instead of demanding a fresh signed payment per request (the x402 gate), the
5
- * caller presents a standing payment mandate id via the `PEERPAY-MANDATE`
5
+ * caller presents a standing payment mandate id via the `GENESISPAY-MANDATE`
6
6
  * header. The gate debits the mandate through GenesisPay
7
7
  * (`POST /api/v1/mandates/:id/charge`) — a non-custodial on-chain pull from
8
8
  * the payer's wallet directly to yours — and only runs your handler once the
9
9
  * charge settled. Combine with `createPaymentGate` to accept both per-call
10
10
  * x402 payments and mandate-metered calls on one endpoint.
11
11
  */
12
- export declare const MANDATE_HEADER = "PEERPAY-MANDATE";
12
+ export declare const MANDATE_HEADER = "GENESISPAY-MANDATE";
13
13
  export type MandateGateOptions = {
14
14
  /** Decimal charge per request, e.g. "0.08". */
15
15
  amount: string;
16
- /** Base URL of the GenesisPay app (your PEERPAY_BASE_URL). */
16
+ /** Base URL of the GenesisPay app (your GENESISPAY_BASE_URL). */
17
17
  baseUrl: string;
18
- /** GenesisPay seller API key ("pp_sk_..."). */
18
+ /** GenesisPay seller API key ("gp_sk_..."). */
19
19
  apiKey: string;
20
20
  /** Description attached to each charge (shows up in activity/usage). */
21
21
  description?: string;
@@ -39,7 +39,7 @@ export type MandateGate = {
39
39
  /** Charges the mandate once. Exposed for custom flows. */
40
40
  charge: (mandateId: string, resourceUrl?: string) => Promise<MandateChargeOutcome>;
41
41
  /**
42
- * Wraps a fetch-style handler: requests carrying a valid `PEERPAY-MANDATE`
42
+ * Wraps a fetch-style handler: requests carrying a valid `GENESISPAY-MANDATE`
43
43
  * header are charged and passed through; requests without one get a 402
44
44
  * JSON body explaining how to attach a mandate.
45
45
  */
@@ -1 +1 @@
1
- {"version":3,"file":"mandate-gate.d.ts","sourceRoot":"","sources":["../src/mandate-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,cAAc,oBAAoB,CAAC;AAEhD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAC5B;IACE,EAAE,EAAE,IAAI,CAAC;IACT,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7D,GACD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhE,MAAM,MAAM,WAAW,GAAG;IACxB,0DAA0D;IAC1D,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACnF;;;;OAIG;IACH,IAAI,EAAE,CACJ,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,KACxD,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC9C,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CAsH1E"}
1
+ {"version":3,"file":"mandate-gate.d.ts","sourceRoot":"","sources":["../src/mandate-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,cAAc,uBAAuB,CAAC;AAEnD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAC5B;IACE,EAAE,EAAE,IAAI,CAAC;IACT,MAAM,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7D,GACD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhE,MAAM,MAAM,WAAW,GAAG;IACxB,0DAA0D;IAC1D,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,oBAAoB,CAAC,CAAC;IACnF;;;;OAIG;IACH,IAAI,EAAE,CACJ,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,KACxD,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CAC9C,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,WAAW,CAsH1E"}