@genesis-tech/genesispay-seller 0.13.2 → 1.5.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 (78) hide show
  1. package/CHANGELOG.md +227 -0
  2. package/README.md +719 -91
  3. package/dist/checkout-documents.d.ts +105 -0
  4. package/dist/checkout-documents.d.ts.map +1 -0
  5. package/dist/checkout-documents.js +171 -0
  6. package/dist/checkout-documents.js.map +1 -0
  7. package/dist/checkout-return.d.ts +5 -5
  8. package/dist/checkout-return.d.ts.map +1 -1
  9. package/dist/checkout-return.js +3 -2
  10. package/dist/checkout-return.js.map +1 -1
  11. package/dist/client.d.ts +57 -7
  12. package/dist/client.d.ts.map +1 -1
  13. package/dist/client.js +100 -10
  14. package/dist/client.js.map +1 -1
  15. package/dist/contract-mandates.d.ts +39 -0
  16. package/dist/contract-mandates.d.ts.map +1 -0
  17. package/dist/contract-mandates.js +98 -0
  18. package/dist/contract-mandates.js.map +1 -0
  19. package/dist/contract-usage.d.ts +29 -0
  20. package/dist/contract-usage.d.ts.map +1 -0
  21. package/dist/contract-usage.js +92 -0
  22. package/dist/contract-usage.js.map +1 -0
  23. package/dist/errors.d.ts +71 -5
  24. package/dist/errors.d.ts.map +1 -1
  25. package/dist/errors.js +124 -13
  26. package/dist/errors.js.map +1 -1
  27. package/dist/fulfillment-attempts.d.ts +29 -0
  28. package/dist/fulfillment-attempts.d.ts.map +1 -0
  29. package/dist/fulfillment-attempts.js +71 -0
  30. package/dist/fulfillment-attempts.js.map +1 -0
  31. package/dist/fulfillment.d.ts +152 -0
  32. package/dist/fulfillment.d.ts.map +1 -0
  33. package/dist/fulfillment.js +810 -0
  34. package/dist/fulfillment.js.map +1 -0
  35. package/dist/genesispay-settlement.d.ts +4 -2
  36. package/dist/genesispay-settlement.d.ts.map +1 -1
  37. package/dist/genesispay-settlement.js +412 -15
  38. package/dist/genesispay-settlement.js.map +1 -1
  39. package/dist/index.d.ts +11 -5
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +7 -4
  42. package/dist/index.js.map +1 -1
  43. package/dist/invoices.d.ts +31 -0
  44. package/dist/invoices.d.ts.map +1 -1
  45. package/dist/invoices.js +61 -2
  46. package/dist/invoices.js.map +1 -1
  47. package/dist/item-tax.d.ts +25 -0
  48. package/dist/item-tax.d.ts.map +1 -0
  49. package/dist/item-tax.js +43 -0
  50. package/dist/item-tax.js.map +1 -0
  51. package/dist/mandate-gate.d.ts +6 -1
  52. package/dist/mandate-gate.d.ts.map +1 -1
  53. package/dist/mandate-gate.js +81 -7
  54. package/dist/mandate-gate.js.map +1 -1
  55. package/dist/mandates.d.ts +21 -4
  56. package/dist/mandates.d.ts.map +1 -1
  57. package/dist/mandates.js +24 -3
  58. package/dist/mandates.js.map +1 -1
  59. package/dist/networks.d.ts.map +1 -1
  60. package/dist/networks.js +5 -4
  61. package/dist/networks.js.map +1 -1
  62. package/dist/payment-gate.d.ts +32 -1
  63. package/dist/payment-gate.d.ts.map +1 -1
  64. package/dist/payment-gate.js +275 -11
  65. package/dist/payment-gate.js.map +1 -1
  66. package/dist/products.d.ts +40 -16
  67. package/dist/products.d.ts.map +1 -1
  68. package/dist/products.js +1078 -56
  69. package/dist/products.js.map +1 -1
  70. package/dist/strict-response.d.ts +21 -0
  71. package/dist/strict-response.d.ts.map +1 -0
  72. package/dist/strict-response.js +68 -0
  73. package/dist/strict-response.js.map +1 -0
  74. package/dist/webhooks.d.ts +77 -2
  75. package/dist/webhooks.d.ts.map +1 -1
  76. package/dist/webhooks.js +20 -0
  77. package/dist/webhooks.js.map +1 -1
  78. package/package.json +3 -3
@@ -0,0 +1,105 @@
1
+ import { type ExternalOrderTax, type ItemTax } from "./item-tax.js";
2
+ import { type GenesisPayRequest } from "./resource.js";
3
+ export type CheckoutDocumentKind = "invoice" | "enhanced_receipt";
4
+ /** The commercial snapshot frozen before the buyer signs the hosted checkout. */
5
+ export type CheckoutDocumentSnapshot = {
6
+ version: number;
7
+ seller: {
8
+ userId: string;
9
+ legalName: string;
10
+ email: string | null;
11
+ addressLine1: string | null;
12
+ addressLine2: string | null;
13
+ city: string | null;
14
+ postalCode: string | null;
15
+ countryCode: string | null;
16
+ taxId: string | null;
17
+ profileVersion?: number;
18
+ taxRegistration?: CheckoutTaxRegistration;
19
+ };
20
+ buyer: {
21
+ legalName: string;
22
+ companyName: string | null;
23
+ addressLine1: string;
24
+ addressLine2: string | null;
25
+ city: string;
26
+ region: string | null;
27
+ postalCode: string;
28
+ countryCode: string;
29
+ taxId: string | null;
30
+ email: string;
31
+ };
32
+ lineItem: {
33
+ description: string;
34
+ };
35
+ lines?: Array<{
36
+ description: string;
37
+ quantity: number;
38
+ unitAmountMinor: string;
39
+ subtotalMinor: string;
40
+ discountMinor: string;
41
+ taxMinor: string;
42
+ totalMinor: string;
43
+ taxConfig: ItemTax;
44
+ } | {
45
+ description: string;
46
+ quantity: number;
47
+ kind: "item" | "shipping" | "fee" | "tax";
48
+ amountMinor: string;
49
+ }>;
50
+ invoice: {
51
+ prefix: string;
52
+ pricesIncludeTax: true;
53
+ };
54
+ tax: {
55
+ source: "seller_configured" | "external_platform" | null;
56
+ status: "receipt_required" | "calculated";
57
+ reason: string | null;
58
+ taxRateBps: number | null;
59
+ zeroTaxNote: string | null;
60
+ rounding: "half_up_asset_minor_unit" | "external_exact" | null;
61
+ settingsUpdatedAt: string | null;
62
+ itemConfig?: ItemTax;
63
+ externalAssertion?: ExternalOrderTax;
64
+ };
65
+ };
66
+ export type CheckoutTaxRegistration = {
67
+ status: "not_registered";
68
+ reason: string;
69
+ } | {
70
+ status: "registered";
71
+ registrations: Array<{
72
+ type: "vat" | "gst" | "tax_id" | "business_number";
73
+ countryCode: string;
74
+ value: string;
75
+ }>;
76
+ };
77
+ /** A formal invoice or enhanced receipt issued for a hosted human checkout. */
78
+ export type CheckoutDocument = {
79
+ id: string;
80
+ publicId: string;
81
+ kind: CheckoutDocumentKind;
82
+ /** Present only when the seller's tax configuration supported a formal invoice. */
83
+ invoiceNumber: string | null;
84
+ asset: "USDC" | "EURC";
85
+ chainId: number;
86
+ subtotalMinor: string;
87
+ discountMinor: string;
88
+ taxMinor: string;
89
+ totalMinor: string;
90
+ txHash: string | null;
91
+ confirmedAt: string;
92
+ issuedAt: string;
93
+ retainUntil: string;
94
+ recipientEmail: string;
95
+ snapshot: CheckoutDocumentSnapshot;
96
+ };
97
+ export interface CheckoutDocumentsResource {
98
+ /** Lists the latest 100 immutable documents from hosted human checkout. */
99
+ list(): Promise<CheckoutDocument[]>;
100
+ /** Retrieves one seller-owned document by its public `doc_…` id. */
101
+ get(publicId: string): Promise<CheckoutDocument>;
102
+ }
103
+ export declare function createCheckoutDocumentsResource(request: GenesisPayRequest): CheckoutDocumentsResource;
104
+ export declare function toCheckoutDocument(raw: Record<string, unknown>): CheckoutDocument;
105
+ //# sourceMappingURL=checkout-documents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkout-documents.d.ts","sourceRoot":"","sources":["../src/checkout-documents.ts"],"names":[],"mappings":"AAOA,OAAO,EAAqC,KAAK,gBAAgB,EAAE,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AACvG,OAAO,EAOL,KAAK,iBAAiB,EACvB,MAAM,eAAe,CAAC;AAEvB,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,kBAAkB,CAAC;AAElE,iFAAiF;AACjF,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,eAAe,CAAC,EAAE,uBAAuB,CAAC;KAC3C,CAAC;IACF,KAAK,EAAE;QACL,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,QAAQ,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,KAAK,CAAC,EAAE,KAAK,CACT;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAC/D,aAAa,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAA;KAAE,GAC1G;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,KAAK,GAAG,KAAK,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAC5G,CAAC;IACF,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,gBAAgB,EAAE,IAAI,CAAC;KACxB,CAAC;IACF,GAAG,EAAE;QACH,MAAM,EAAE,mBAAmB,GAAG,mBAAmB,GAAG,IAAI,CAAC;QACzD,MAAM,EAAE,kBAAkB,GAAG,YAAY,CAAC;QAC1C,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,QAAQ,EAAE,0BAA0B,GAAG,gBAAgB,GAAG,IAAI,CAAC;QAC/D,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;KACtC,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAC/B;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,aAAa,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,iBAAiB,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC;AAE/I,+EAA+E;AAC/E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,mFAAmF;IACnF,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,wBAAwB,CAAC;CACpC,CAAC;AAEF,MAAM,WAAW,yBAAyB;IACxC,2EAA2E;IAC3E,IAAI,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACpC,oEAAoE;IACpE,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAClD;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,iBAAiB,GACzB,yBAAyB,CAmC3B;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,gBAAgB,CAmBjF"}
@@ -0,0 +1,171 @@
1
+ // `genesispay.checkoutDocuments.*` — documents created after hosted human checkout.
2
+ //
3
+ // These are intentionally read-only. They are not the seller-authored invoice
4
+ // lifecycle (`genesispay.invoices.*`): a hosted checkout document is produced
5
+ // only after a confirmed, non-simulated payment and is immutable thereafter.
6
+ import { GenesisPayConfigError } from "./errors.js";
7
+ import { parseItemTax, parsePaymentLinkTax } from "./item-tax.js";
8
+ import { asRecord, oneOf, optionalString, requiredString, toAmountString, toCount, } from "./resource.js";
9
+ export function createCheckoutDocumentsResource(request) {
10
+ return {
11
+ list: async () => {
12
+ const body = await request({
13
+ path: "/api/v1/checkout-documents",
14
+ operation: "GET /api/v1/checkout-documents",
15
+ action: "list hosted checkout documents",
16
+ });
17
+ const rows = asRecord(body)?.documents;
18
+ if (!Array.isArray(rows)) {
19
+ throw new GenesisPayConfigError(`GenesisPay GET /api/v1/checkout-documents returned no documents array: ${JSON.stringify(body)}`);
20
+ }
21
+ return rows
22
+ .map(asRecord)
23
+ .filter((row) => Boolean(row?.publicId))
24
+ .map(toCheckoutDocument);
25
+ },
26
+ get: async (publicId) => {
27
+ const body = await request({
28
+ path: `/api/v1/checkout-documents/${encodeURIComponent(publicId)}`,
29
+ operation: "GET /api/v1/checkout-documents/:publicId",
30
+ notFoundMessage: `Checkout document ${publicId} was not found.`,
31
+ action: "retrieve a hosted checkout document",
32
+ });
33
+ const row = asRecord(asRecord(body)?.document);
34
+ if (!row) {
35
+ throw new GenesisPayConfigError(`GenesisPay GET /api/v1/checkout-documents/:publicId returned no document: ${JSON.stringify(body)}`);
36
+ }
37
+ return toCheckoutDocument(row);
38
+ },
39
+ };
40
+ }
41
+ export function toCheckoutDocument(raw) {
42
+ return {
43
+ id: requiredString(raw.id),
44
+ publicId: requiredString(raw.publicId),
45
+ kind: oneOf(raw.kind, ["invoice", "enhanced_receipt"], "enhanced_receipt"),
46
+ invoiceNumber: optionalString(raw.invoiceNumber),
47
+ asset: oneOf(raw.asset, ["USDC", "EURC"], "USDC"),
48
+ chainId: toCount(raw.chainId),
49
+ subtotalMinor: toAmountString(raw.subtotalMinor),
50
+ discountMinor: toAmountString(raw.discountMinor),
51
+ taxMinor: toAmountString(raw.taxMinor),
52
+ totalMinor: toAmountString(raw.totalMinor),
53
+ txHash: optionalString(raw.txHash),
54
+ confirmedAt: requiredString(raw.confirmedAt),
55
+ issuedAt: requiredString(raw.issuedAt),
56
+ retainUntil: requiredString(raw.retainUntil),
57
+ recipientEmail: requiredString(raw.recipientEmail),
58
+ snapshot: toCheckoutDocumentSnapshot(asRecord(raw.snapshot) ?? {}),
59
+ };
60
+ }
61
+ function toCheckoutDocumentSnapshot(raw) {
62
+ const seller = asRecord(raw.seller) ?? {};
63
+ const buyer = asRecord(raw.buyer) ?? {};
64
+ const lineItem = asRecord(raw.lineItem) ?? {};
65
+ const invoice = asRecord(raw.invoice) ?? {};
66
+ const tax = asRecord(raw.tax) ?? {};
67
+ const v2 = raw.version === 2;
68
+ return {
69
+ version: toCount(raw.version),
70
+ seller: {
71
+ userId: requiredString(seller.userId),
72
+ legalName: requiredString(seller.legalName),
73
+ email: optionalString(seller.email),
74
+ addressLine1: optionalString(seller.addressLine1),
75
+ addressLine2: optionalString(seller.addressLine2),
76
+ city: optionalString(seller.city),
77
+ postalCode: optionalString(seller.postalCode),
78
+ countryCode: optionalString(seller.countryCode),
79
+ taxId: optionalString(seller.taxId),
80
+ ...(v2 ? { profileVersion: toCount(seller.profileVersion), taxRegistration: parseCheckoutTaxRegistration(seller.taxRegistration) } : {}),
81
+ },
82
+ buyer: {
83
+ legalName: requiredString(buyer.legalName),
84
+ companyName: optionalString(buyer.companyName),
85
+ addressLine1: requiredString(buyer.addressLine1),
86
+ addressLine2: optionalString(buyer.addressLine2),
87
+ city: requiredString(buyer.city),
88
+ region: optionalString(buyer.region),
89
+ postalCode: requiredString(buyer.postalCode),
90
+ countryCode: requiredString(buyer.countryCode),
91
+ taxId: optionalString(buyer.taxId),
92
+ email: requiredString(buyer.email),
93
+ },
94
+ lineItem: {
95
+ description: requiredString(lineItem.description),
96
+ },
97
+ ...(v2 ? { lines: parseCheckoutLines(raw.lines) } : {}),
98
+ invoice: {
99
+ prefix: requiredString(invoice.prefix),
100
+ pricesIncludeTax: true,
101
+ },
102
+ tax: {
103
+ source: nullableOneOf(tax.source, ["seller_configured", "external_platform"]),
104
+ status: oneOf(tax.status, ["receipt_required", "calculated"], "receipt_required"),
105
+ reason: optionalString(tax.reason),
106
+ taxRateBps: optionalFiniteNumber(tax.taxRateBps),
107
+ zeroTaxNote: optionalString(tax.zeroTaxNote),
108
+ rounding: nullableOneOf(tax.rounding, ["half_up_asset_minor_unit", "external_exact"]),
109
+ settingsUpdatedAt: optionalString(tax.settingsUpdatedAt),
110
+ ...(v2 && tax.source === "external_platform"
111
+ ? { externalAssertion: requiredExternalTax(tax.externalAssertion) }
112
+ : v2 ? { itemConfig: requiredItemTax(tax.itemConfig) } : {}),
113
+ },
114
+ };
115
+ }
116
+ function requiredItemTax(raw) {
117
+ const tax = parseItemTax(raw);
118
+ if (!tax)
119
+ throw new GenesisPayConfigError("A v2 document requires explicit item tax.");
120
+ return tax;
121
+ }
122
+ function requiredExternalTax(raw) {
123
+ const tax = parsePaymentLinkTax(raw);
124
+ if (!tax || tax.version !== 2)
125
+ throw new GenesisPayConfigError("An external-tax document requires its exact order assertion.");
126
+ return tax;
127
+ }
128
+ function parseCheckoutLines(raw) {
129
+ if (!Array.isArray(raw) || raw.length === 0)
130
+ throw new GenesisPayConfigError("A v2 document requires line totals.");
131
+ return raw.map((value) => {
132
+ const line = asRecord(value) ?? {};
133
+ if (["item", "shipping", "fee", "tax"].includes(String(line.kind))) {
134
+ return {
135
+ description: requiredString(line.description),
136
+ quantity: toCount(line.quantity),
137
+ kind: line.kind,
138
+ amountMinor: toAmountString(line.amountMinor),
139
+ };
140
+ }
141
+ return { description: requiredString(line.description), quantity: toCount(line.quantity),
142
+ unitAmountMinor: toAmountString(line.unitAmountMinor), subtotalMinor: toAmountString(line.subtotalMinor),
143
+ discountMinor: toAmountString(line.discountMinor), taxMinor: toAmountString(line.taxMinor),
144
+ totalMinor: toAmountString(line.totalMinor), taxConfig: requiredItemTax(line.taxConfig) };
145
+ });
146
+ }
147
+ function parseCheckoutTaxRegistration(value) {
148
+ const tax = asRecord(value);
149
+ if (tax?.status === "not_registered" && typeof tax.reason === "string")
150
+ return { status: "not_registered", reason: tax.reason };
151
+ if (tax?.status !== "registered" || !Array.isArray(tax.registrations) || !tax.registrations.length)
152
+ throw new GenesisPayConfigError("A v2 document requires the issuer tax declaration.");
153
+ return { status: "registered", registrations: tax.registrations.map((value) => {
154
+ const entry = asRecord(value);
155
+ if (!entry || !["vat", "gst", "tax_id", "business_number"].includes(String(entry.type)) || typeof entry.countryCode !== "string" || typeof entry.value !== "string")
156
+ throw new GenesisPayConfigError("Invalid issuer tax declaration.");
157
+ return { type: entry.type, countryCode: entry.countryCode, value: entry.value };
158
+ }) };
159
+ }
160
+ function nullableOneOf(value, allowed) {
161
+ return typeof value === "string" && allowed.includes(value)
162
+ ? value
163
+ : null;
164
+ }
165
+ function optionalFiniteNumber(value) {
166
+ if (value === null || value === undefined || value === "")
167
+ return null;
168
+ const parsed = typeof value === "number" ? value : Number(value);
169
+ return Number.isFinite(parsed) ? parsed : null;
170
+ }
171
+ //# sourceMappingURL=checkout-documents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkout-documents.js","sourceRoot":"","sources":["../src/checkout-documents.ts"],"names":[],"mappings":"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"}
@@ -7,9 +7,8 @@ export declare const CHECKOUT_RETURN_STATUS_PARAM = "genesispay_status";
7
7
  * read back by {@link parseCheckoutReturnHint}.
8
8
  *
9
9
  * **This is a UI hint, not proof of payment.** The values are unsigned and a
10
- * payer can open that URL without paying. Gate fulfilment on a verified
11
- * `payment.confirmed` webhook or on `checkout.retrieve(publicId).paid` — never
12
- * on these fields.
10
+ * payer can open that URL without paying. Use the seller-authenticated strict
11
+ * `fulfillment.verify` authority path before fulfilment — never these fields.
13
12
  */
14
13
  export type CheckoutReturnHint = {
15
14
  /** The checkout link's `publicId` — the value in `genesispay_link_id`. */
@@ -26,8 +25,9 @@ export type CheckoutReturnHint = {
26
25
  *
27
26
  * Performs **no verification**: it does not check that the link exists, that it
28
27
  * was paid, or that the parameters came from GenesisPay. Call
29
- * `checkout.retrieve(hint.linkId)` (authenticated with your seller key) before
30
- * acting on it.
28
+ * `fulfillment.verify({ locator: { linkId: hint.linkId }, expected })`
29
+ * (authenticated with your seller key) before acting on it. A link locator is
30
+ * suitable only for a single-use link; reusable links require an attempt ID.
31
31
  */
32
32
  export declare function parseCheckoutReturnHint(url: string | URL): CheckoutReturnHint | null;
33
33
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"checkout-return.d.ts","sourceRoot":"","sources":["../src/checkout-return.ts"],"names":[],"mappings":"AAYA,+EAA+E;AAC/E,eAAO,MAAM,6BAA6B,uBAAuB,CAAC;AAElE,oEAAoE;AACpE,eAAO,MAAM,4BAA4B,sBAAsB,CAAC;AAQhE;;;;;;;;GAQG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,kBAAkB,GAAG,IAAI,CAgBpF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAa1D"}
1
+ {"version":3,"file":"checkout-return.d.ts","sourceRoot":"","sources":["../src/checkout-return.ts"],"names":[],"mappings":"AAYA,+EAA+E;AAC/E,eAAO,MAAM,6BAA6B,uBAAuB,CAAC;AAElE,oEAAoE;AACpE,eAAO,MAAM,4BAA4B,sBAAsB,CAAC;AAQhE;;;;;;;GAOG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,kBAAkB,GAAG,IAAI,CAgBpF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAa1D"}
@@ -26,8 +26,9 @@ const LOCAL_REDIRECT_HOSTNAMES = new Set(["localhost", "127.0.0.1"]);
26
26
  *
27
27
  * Performs **no verification**: it does not check that the link exists, that it
28
28
  * was paid, or that the parameters came from GenesisPay. Call
29
- * `checkout.retrieve(hint.linkId)` (authenticated with your seller key) before
30
- * acting on it.
29
+ * `fulfillment.verify({ locator: { linkId: hint.linkId }, expected })`
30
+ * (authenticated with your seller key) before acting on it. A link locator is
31
+ * suitable only for a single-use link; reusable links require an attempt ID.
31
32
  */
32
33
  export function parseCheckoutReturnHint(url) {
33
34
  let parsed;
@@ -1 +1 @@
1
- {"version":3,"file":"checkout-return.js","sourceRoot":"","sources":["../src/checkout-return.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,0DAA0D;AAC1D,EAAE;AACF,8EAA8E;AAC9E,+EAA+E;AAC/E,8EAA8E;AAC9E,gFAAgF;AAChF,EAAE;AACF,+EAA+E;AAC/E,6EAA6E;AAC7E,+DAA+D;AAE/D,+EAA+E;AAC/E,MAAM,CAAC,MAAM,6BAA6B,GAAG,oBAAoB,CAAC;AAElE,oEAAoE;AACpE,MAAM,CAAC,MAAM,4BAA4B,GAAG,mBAAmB,CAAC;AAEhE,kFAAkF;AAClF,MAAM,WAAW,GAAG,MAAM,CAAC;AAE3B,uEAAuE;AACvE,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;AAkBrE;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,uBAAuB,CAAC,GAAiB;IACvD,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAErE,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AACzC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACtF,CAAC"}
1
+ {"version":3,"file":"checkout-return.js","sourceRoot":"","sources":["../src/checkout-return.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,0DAA0D;AAC1D,EAAE;AACF,8EAA8E;AAC9E,+EAA+E;AAC/E,8EAA8E;AAC9E,gFAAgF;AAChF,EAAE;AACF,+EAA+E;AAC/E,6EAA6E;AAC7E,+DAA+D;AAE/D,+EAA+E;AAC/E,MAAM,CAAC,MAAM,6BAA6B,GAAG,oBAAoB,CAAC;AAElE,oEAAoE;AACpE,MAAM,CAAC,MAAM,4BAA4B,GAAG,mBAAmB,CAAC;AAEhE,kFAAkF;AAClF,MAAM,WAAW,GAAG,MAAM,CAAC;AAE3B,uEAAuE;AACvE,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC;AAiBrE;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,uBAAuB,CAAC,GAAiB;IACvD,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAErE,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AACzC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,wBAAwB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACtF,CAAC"}
package/dist/client.d.ts CHANGED
@@ -1,14 +1,17 @@
1
1
  import type { MandatesResource } from "./mandates.js";
2
2
  import type { CustomersResource } from "./customers.js";
3
3
  import type { InvoicesResource } from "./invoices.js";
4
+ import { type ItemTaxUpdate, type PaymentLinkTax } from "./item-tax.js";
5
+ import type { CheckoutDocumentsResource } from "./checkout-documents.js";
4
6
  import type { VerifySettlement } from "./payment-gate.js";
5
7
  import type { PlansResource } from "./plans.js";
6
8
  import type { ProductsResource } from "./products.js";
7
9
  import type { EntitlementsResource } from "./entitlements.js";
8
10
  import type { PaymentGateNetwork } from "./networks.js";
9
11
  import type { ConstructEventOptions, GenesisPayEvent } from "./webhooks.js";
12
+ import { type FulfillmentResource } from "./fulfillment.js";
10
13
  /**
11
- * The legacy `GenesisPay` client — a Stripe-like entry point that owns the seller key and
14
+ * The `GenesisPay` client — a Stripe-like entry point that owns the seller key and
12
15
  * resolves everything else (payout wallet, network, base URL) from it. The key
13
16
  * prefix decides the mode: `gp_sk_test_…` / legacy `gp_sk_…` → test,
14
17
  * `gp_sk_live_…` → live. See docs/archive/SELLER_SDK_DX_SPEC.md.
@@ -23,7 +26,10 @@ export type GenesisPayClientOptions = {
23
26
  fetchFn?: typeof fetch;
24
27
  /** Seller-config cache TTL. Default 5 min. */
25
28
  configTtlMs?: number;
26
- /** Optional local pin on the resolved payout wallet; recommended for live keys. */
29
+ /**
30
+ * Optional local payout pin, including checkout retrieval and strict fulfillment
31
+ * verification. Historical reconciliation must use the original destination's pin.
32
+ */
27
33
  expectedPayTo?: string;
28
34
  };
29
35
  export type SellerConfig = {
@@ -66,10 +72,28 @@ export type CheckoutAmountInput = {
66
72
  */
67
73
  amountUsdc: string;
68
74
  };
75
+ export type CheckoutLineItemInput = {
76
+ /** Buyer-facing item or adjustment label. */
77
+ name: string;
78
+ /** Variant or other concise buyer-facing detail. */
79
+ description?: string;
80
+ quantity: number;
81
+ /** Required for externally calculated WooCommerce order tax. */
82
+ kind?: "item" | "shipping" | "fee" | "tax";
83
+ /** Exact total for this line in the checkout asset, as a decimal string. */
84
+ amount: string;
85
+ sku?: string;
86
+ imageUrl?: string;
87
+ };
69
88
  export type CheckoutCreateInput = CheckoutAmountInput & {
89
+ /** Omitted means unconfigured; human checkout requires explicit item tax. */
90
+ taxConfig?: PaymentLinkTax;
70
91
  title: string;
71
92
  description?: string;
72
- linkType?: "single" | "reusable";
93
+ /** Immutable hosted-checkout summary; line totals must add up to `amount`. */
94
+ lineItems?: CheckoutLineItemInput[];
95
+ /** Payment requests are single-use. Use products for repeat purchases. */
96
+ linkType?: "single";
73
97
  destinationWallet?: string;
74
98
  /**
75
99
  * Hosted checkout links settle in USDC during the beta. Omit this field in
@@ -86,7 +110,12 @@ export type CheckoutCreateInput = CheckoutAmountInput & {
86
110
  /** Where the payer returns when they cancel (https). */
87
111
  cancelUrl?: string;
88
112
  };
113
+ export type IdempotentCreationOptions = {
114
+ /** Seller-account-scoped retry identity; 1–255 characters without surrounding whitespace. */
115
+ idempotencyKey: string;
116
+ };
89
117
  export type CheckoutLink = {
118
+ taxConfig: PaymentLinkTax | null;
90
119
  publicId: string;
91
120
  payUrl: string;
92
121
  /** Decimal amount in `asset`, as the server normalized it (e.g. `"5.00"`). */
@@ -131,7 +160,9 @@ export type CheckoutAttempt = {
131
160
  * `false` for a real settlement, including on testnet and in provider
132
161
  * sandboxes: this is the fabricated-payment axis, not the environment axis.
133
162
  *
134
- * Defaults to `false` against a backend that does not report it.
163
+ * Defaults to `false` only on this legacy display/polling view when an older
164
+ * backend omits it. This value is never fulfillment evidence; use
165
+ * `fulfillment.verify()` for versioned real-payment authority.
135
166
  */
136
167
  simulated: boolean;
137
168
  };
@@ -186,7 +217,8 @@ export declare class GenesisPay {
186
217
  readonly mode: GenesisPayKeyMode;
187
218
  readonly baseUrl: string;
188
219
  readonly checkout: {
189
- create(input: CheckoutCreateInput): Promise<CheckoutLink>;
220
+ create(input: CheckoutCreateInput, options: IdempotentCreationOptions): Promise<CheckoutLink>;
221
+ updateTax(publicId: string, input: ItemTaxUpdate): Promise<CheckoutLink>;
190
222
  retrieve(publicId: string): Promise<CheckoutSession>;
191
223
  /**
192
224
  * Test mode only: records a confirmed payment on one of your links without
@@ -210,6 +242,10 @@ export declare class GenesisPay {
210
242
  readonly customers: CustomersResource;
211
243
  /** Draft, finalize, deliver, and collect one-off invoices. */
212
244
  readonly invoices: InvoicesResource;
245
+ /** Immutable documents generated after hosted human checkout completes. */
246
+ readonly checkoutDocuments: CheckoutDocumentsResource;
247
+ /** Strict seller-scoped payment authority. Tolerant checkout views are display-only. */
248
+ readonly fulfillment: FulfillmentResource;
213
249
  /**
214
250
  * Payment mandates: bounded, revocable spending approvals a payer signs once.
215
251
  *
@@ -242,6 +278,7 @@ export declare class GenesisPay {
242
278
  constructor(options: GenesisPayClientOptions);
243
279
  /** Raw on purpose: product-gate negotiation must preserve 402 protocol headers. */
244
280
  private performProductGateRequest;
281
+ private performStrictSellerRequest;
245
282
  /**
246
283
  * Resolve (and cache) the seller config from the key. Single-flight so a
247
284
  * cold-start burst shares one request; failures are never cached (the memo is
@@ -254,8 +291,8 @@ export declare class GenesisPay {
254
291
  private fetchSeller;
255
292
  private assertSafe;
256
293
  /**
257
- * Applies the `expectedPayTo` pin to a destination the server just froze onto
258
- * a newly created object.
294
+ * Applies the `expectedPayTo` pin to a frozen or explicitly expected destination
295
+ * on creation and authenticated retrieval alike (MR-102/MR-202).
259
296
  *
260
297
  * Checking it in `assertSafe` alone was not enough: that only covers the
261
298
  * `/api/v1/seller` config lookup, while a checkout link and a subscription
@@ -271,6 +308,19 @@ export declare class GenesisPay {
271
308
  * map — it is always a config/connectivity problem.
272
309
  */
273
310
  private performRequest;
311
+ /**
312
+ * Creates a payable checkout link — and refuses to hand one back unless the
313
+ * backend that created it answered in this SDK's API version.
314
+ *
315
+ * The version header alone is a request, not a negotiation: a backend that
316
+ * predates the strict surface (or one that was rolled back) ignores it, mints
317
+ * a legacy link, and returns a perfectly ordinary 201. That link is payable
318
+ * and its attempt carries no authority provenance, so strict fulfillment can
319
+ * never verify it — the payer's money would be stranded in an unfulfillable
320
+ * purchase. So the raw response is read here rather than through the tolerant
321
+ * shared seam, and the version + request ID are checked before the link
322
+ * becomes a payUrl anyone can hand to a payer.
323
+ */
274
324
  private createCheckout;
275
325
  /**
276
326
  * Fetch the current state of a checkout link. `paid` is the field to poll on;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,KAAK,EAAe,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAaxD,OAAO,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAG5E;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;AAEhD,MAAM,MAAM,uBAAuB,GAAG;IACpC,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;IACf,qGAAqG;IACrG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE;QACP,WAAW,EAAE,kBAAkB,CAAC;QAChC,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAC3B;IACE;;;;;;;;OAQG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACD;IACE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEN,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,GAAG;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,kEAAkE;IAClE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACxC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,iFAAiF;AACjF,MAAM,MAAM,qBAAqB,GAC7B,SAAS,GACT,WAAW,GACX,WAAW,GACX,QAAQ,GACR,SAAS,CAAC;AAEd;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,qBAAqB,CAAC;IAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;;;;;;;;;;OAUG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG;IAC3C,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,QAAQ,GAAG,UAAU,CAAC;IAChC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IACvC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,IAAI,EAAE,OAAO,CAAC;IACd,qBAAqB,EAAE,MAAM,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,KAAK,WAAW,CAAC,IAAI,SAAS,OAAO,EAAE,IAAI,CACzC,OAAO,EAAE,OAAO,EAChB,GAAG,IAAI,EAAE,IAAI,KACV,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAElC,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,IAAI,SAAS,OAAO,EAAE,EACzB,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,EAC1B,IAAI,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;KAAE,GAC7C,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1D,oFAAoF;IACpF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAKD,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,KAAK,yBAAyB,GAC/B,MAAM,aAAa,CAAC;AAwUrB,qBAAa,UAAU;IACrB,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE;QACjB,MAAM,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;QAC1D,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;QACrD;;;;;;;;;WASG;QACH,eAAe,CACb,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,sBAAsB,GAC5B,OAAO,CAAC,eAAe,CAAC,CAAC;KAC7B,CAAC;IACF,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,oFAAoF;IACpF,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,uDAAuD;IACvD,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC;IAC5C,sDAAsD;IACtD,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE;QACjB,cAAc,CACZ,OAAO,EAAE,MAAM,GAAG,UAAU,EAC5B,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,qBAAqB,GAC3B,OAAO,CAAC,eAAe,CAAC,CAAC;KAC7B,CAAC;IAEF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAS;IAExC,OAAO,CAAC,KAAK,CAAC,CAA8C;IAC5D,OAAO,CAAC,QAAQ,CAAC,CAAwB;IAEzC;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgE;gBAE5E,OAAO,EAAE,uBAAuB;IAoD5C,mFAAmF;YACrE,yBAAyB;IAgBvC;;;;OAIG;IACG,cAAc,CAAC,IAAI,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAkB9E,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,aAAa;YAwDzB,WAAW;IAwBzB,OAAO,CAAC,UAAU;IA0ClB;;;;;;;;;OASG;IACH,OAAO,CAAC,uBAAuB;IAkB/B;;;;;OAKG;YACW,cAAc;YAmCd,cAAc;IAwC5B;;;OAGG;YACW,gBAAgB;IAwB9B,kEAAkE;YACpD,uBAAuB;CAkDtC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAqC,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAC3G,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,OAAO,KAAK,EAAe,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAaxD,OAAO,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAE5E,OAAO,EAIL,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAC;AAG1B;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,CAAC;AAEhD,MAAM,MAAM,uBAAuB,GAAG;IACpC,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;IACf,qGAAqG;IACrG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE;QACP,WAAW,EAAE,kBAAkB,CAAC;QAChC,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAC3B;IACE;;;;;;;;OAQG;IACH,MAAM,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACD;IACE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEN,MAAM,MAAM,qBAAqB,GAAG;IAClC,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,KAAK,GAAG,KAAK,CAAC;IAC3C,4EAA4E;IAC5E,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,GAAG;IACtD,6EAA6E;IAC7E,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACpC,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,kEAAkE;IAClE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,6FAA6F;IAC7F,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,SAAS,EAAE,cAAc,GAAG,IAAI,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACxC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,iFAAiF;AACjF,MAAM,MAAM,qBAAqB,GAC7B,SAAS,GACT,WAAW,GACX,WAAW,GACX,QAAQ,GACR,SAAS,CAAC;AAEd;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,qBAAqB,CAAC;IAC9B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B;;;;;;;;;;;;OAYG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG;IAC3C,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,QAAQ,GAAG,UAAU,CAAC;IAChC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IACvC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,IAAI,EAAE,OAAO,CAAC;IACd,qBAAqB,EAAE,MAAM,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,KAAK,WAAW,CAAC,IAAI,SAAS,OAAO,EAAE,IAAI,CACzC,OAAO,EAAE,OAAO,EAChB,GAAG,IAAI,EAAE,IAAI,KACV,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAElC,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,IAAI,SAAS,OAAO,EAAE,EACzB,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,EAC1B,IAAI,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;KAAE,GAC7C,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1D,oFAAoF;IACpF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAKD,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,uBAAuB,EACvB,wBAAwB,EACxB,yBAAyB,EACzB,KAAK,yBAAyB,GAC/B,MAAM,aAAa,CAAC;AA6VrB,qBAAa,UAAU;IACrB,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE;QACjB,MAAM,CAAC,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;QAC9F,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;QACzE,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;QACrD;;;;;;;;;WASG;QACH,eAAe,CACb,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,sBAAsB,GAC5B,OAAO,CAAC,eAAe,CAAC,CAAC;KAC7B,CAAC;IACF,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,oFAAoF;IACpF,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,uDAAuD;IACvD,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC;IAC5C,sDAAsD;IACtD,QAAQ,CAAC,SAAS,EAAE,iBAAiB,CAAC;IACtC,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,2EAA2E;IAC3E,QAAQ,CAAC,iBAAiB,EAAE,yBAAyB,CAAC;IACtD,wFAAwF;IACxF,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC;IAC1C;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE;QACjB,cAAc,CACZ,OAAO,EAAE,MAAM,GAAG,UAAU,EAC5B,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,qBAAqB,GAC3B,OAAO,CAAC,eAAe,CAAC,CAAC;KAC7B,CAAC;IAEF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAS;IAExC,OAAO,CAAC,KAAK,CAAC,CAA8C;IAC5D,OAAO,CAAC,QAAQ,CAAC,CAAwB;IAEzC;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgE;gBAE5E,OAAO,EAAE,uBAAuB;IAqE5C,mFAAmF;YACrE,yBAAyB;YAiBzB,0BAA0B;IA2BxC;;;;OAIG;IACG,cAAc,CAAC,IAAI,CAAC,EAAE;QAAE,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAkB9E,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,aAAa;YAwDzB,WAAW;IAwBzB,OAAO,CAAC,UAAU;IA0ClB;;;;;;;;;OASG;IACH,OAAO,CAAC,uBAAuB;IAkB/B;;;;;OAKG;YACW,cAAc;IAmC5B;;;;;;;;;;;;OAYG;YACW,cAAc;IAgE5B;;;OAGG;YACW,gBAAgB;IA0B9B,kEAAkE;YACpD,uBAAuB;CAkDtC"}