@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.
- package/CHANGELOG.md +227 -0
- package/README.md +719 -91
- package/dist/checkout-documents.d.ts +105 -0
- package/dist/checkout-documents.d.ts.map +1 -0
- package/dist/checkout-documents.js +171 -0
- package/dist/checkout-documents.js.map +1 -0
- package/dist/checkout-return.d.ts +5 -5
- package/dist/checkout-return.d.ts.map +1 -1
- package/dist/checkout-return.js +3 -2
- package/dist/checkout-return.js.map +1 -1
- package/dist/client.d.ts +57 -7
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +100 -10
- package/dist/client.js.map +1 -1
- package/dist/contract-mandates.d.ts +39 -0
- package/dist/contract-mandates.d.ts.map +1 -0
- package/dist/contract-mandates.js +98 -0
- package/dist/contract-mandates.js.map +1 -0
- package/dist/contract-usage.d.ts +29 -0
- package/dist/contract-usage.d.ts.map +1 -0
- package/dist/contract-usage.js +92 -0
- package/dist/contract-usage.js.map +1 -0
- package/dist/errors.d.ts +71 -5
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +124 -13
- package/dist/errors.js.map +1 -1
- package/dist/fulfillment-attempts.d.ts +29 -0
- package/dist/fulfillment-attempts.d.ts.map +1 -0
- package/dist/fulfillment-attempts.js +71 -0
- package/dist/fulfillment-attempts.js.map +1 -0
- package/dist/fulfillment.d.ts +152 -0
- package/dist/fulfillment.d.ts.map +1 -0
- package/dist/fulfillment.js +810 -0
- package/dist/fulfillment.js.map +1 -0
- package/dist/genesispay-settlement.d.ts +4 -2
- package/dist/genesispay-settlement.d.ts.map +1 -1
- package/dist/genesispay-settlement.js +412 -15
- package/dist/genesispay-settlement.js.map +1 -1
- package/dist/index.d.ts +11 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -4
- package/dist/index.js.map +1 -1
- package/dist/invoices.d.ts +31 -0
- package/dist/invoices.d.ts.map +1 -1
- package/dist/invoices.js +61 -2
- package/dist/invoices.js.map +1 -1
- package/dist/item-tax.d.ts +25 -0
- package/dist/item-tax.d.ts.map +1 -0
- package/dist/item-tax.js +43 -0
- package/dist/item-tax.js.map +1 -0
- package/dist/mandate-gate.d.ts +6 -1
- package/dist/mandate-gate.d.ts.map +1 -1
- package/dist/mandate-gate.js +81 -7
- package/dist/mandate-gate.js.map +1 -1
- package/dist/mandates.d.ts +21 -4
- package/dist/mandates.d.ts.map +1 -1
- package/dist/mandates.js +24 -3
- package/dist/mandates.js.map +1 -1
- package/dist/networks.d.ts.map +1 -1
- package/dist/networks.js +5 -4
- package/dist/networks.js.map +1 -1
- package/dist/payment-gate.d.ts +32 -1
- package/dist/payment-gate.d.ts.map +1 -1
- package/dist/payment-gate.js +275 -11
- package/dist/payment-gate.js.map +1 -1
- package/dist/products.d.ts +40 -16
- package/dist/products.d.ts.map +1 -1
- package/dist/products.js +1078 -56
- package/dist/products.js.map +1 -1
- package/dist/strict-response.d.ts +21 -0
- package/dist/strict-response.d.ts.map +1 -0
- package/dist/strict-response.js +68 -0
- package/dist/strict-response.js.map +1 -0
- package/dist/webhooks.d.ts +77 -2
- package/dist/webhooks.d.ts.map +1 -1
- package/dist/webhooks.js +20 -0
- package/dist/webhooks.js.map +1 -1
- 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":"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"}
|
|
@@ -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.
|
|
11
|
-
* `
|
|
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
|
-
* `
|
|
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
|
|
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"}
|
package/dist/checkout-return.js
CHANGED
|
@@ -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
|
-
* `
|
|
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;
|
|
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
|
|
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
|
-
/**
|
|
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
|
-
|
|
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`
|
|
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
|
|
258
|
-
*
|
|
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;
|
package/dist/client.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|