@fun-xyz/fiat-contract 0.22.2 → 0.24.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/README.md +83 -44
- package/dist/chunk-5UEPWL7B.mjs +11 -0
- package/dist/{chunk-5GRPYE2U.mjs → chunk-CRNKRIKR.mjs} +1 -1
- package/dist/{chunk-DTHUNDA7.mjs → chunk-IPOPANXS.mjs} +2 -2
- package/dist/chunk-T5JAYOWY.mjs +9 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +241 -64
- package/dist/index.mjs +238 -65
- package/dist/providers/moonpay.d.ts +107 -109
- package/dist/providers/moonpay.js +1 -1
- package/dist/providers/moonpay.mjs +1 -1
- package/dist/providers/moonpay.schemas.d.ts +22 -5
- package/dist/routing.d.ts +168 -0
- package/dist/routing.js +31 -0
- package/dist/routing.mjs +7 -0
- package/dist/schemas.d.ts +9 -1
- package/dist/table.js +1 -1
- package/dist/table.mjs +1 -1
- package/dist/terms.d.ts +2 -2
- package/dist/terms.mjs +1 -1
- package/dist/types.d.ts +16 -1
- package/package.json +11 -1
- package/routing.d.ts +1 -0
- package/routing.js +2 -0
- package/dist/chunk-3HCZ6JBJ.mjs +0 -9
package/dist/index.js
CHANGED
|
@@ -42,7 +42,14 @@ __export(index_exports, {
|
|
|
42
42
|
FiatAmountSchema: () => FiatAmountSchema,
|
|
43
43
|
FiatCurrencyCode: () => FiatCurrencyCode,
|
|
44
44
|
FiatEndpointSchema: () => FiatEndpointSchema,
|
|
45
|
+
FiatGeoSchema: () => FiatGeoSchema,
|
|
46
|
+
FiatNextRequestSchema: () => FiatNextRequestSchema,
|
|
45
47
|
FiatProviderSchema: () => FiatProviderSchema,
|
|
48
|
+
FiatRoutingQuoteErrorBodySchema: () => FiatRoutingQuoteErrorBodySchema,
|
|
49
|
+
FiatRoutingQuoteRequestSchema: () => FiatRoutingQuoteRequestSchema,
|
|
50
|
+
FiatRoutingTableErrorBodySchema: () => FiatRoutingTableErrorBodySchema,
|
|
51
|
+
FiatRoutingTableQuerySchema: () => FiatRoutingTableQuerySchema,
|
|
52
|
+
FiatRoutingTableResponseSchema: () => FiatRoutingTableResponseSchema,
|
|
46
53
|
FiatStepResponseSchema: () => FiatStepResponseSchema,
|
|
47
54
|
FiatTermsErrorBodySchema: () => FiatTermsErrorBodySchema,
|
|
48
55
|
FiatTermsRequestSchema: () => FiatTermsRequestSchema,
|
|
@@ -67,14 +74,28 @@ __export(index_exports, {
|
|
|
67
74
|
KycSdkResultReportSchema: () => KycSdkResultReportSchema,
|
|
68
75
|
MOONPAY_ENDPOINTS: () => MOONPAY_ENDPOINTS,
|
|
69
76
|
MoonPayCheckoutSchema: () => MoonPayCheckoutSchema,
|
|
77
|
+
MoonPayConnectPromptSchema: () => MoonPayConnectPromptSchema,
|
|
78
|
+
MoonPayConnectRequestSchema: () => MoonPayConnectRequestSchema,
|
|
79
|
+
MoonPayConsentPromptSchema: () => MoonPayConsentPromptSchema,
|
|
80
|
+
MoonPayConsentRequestSchema: () => MoonPayConsentRequestSchema,
|
|
81
|
+
MoonPayDoneSchema: () => MoonPayDoneSchema,
|
|
70
82
|
MoonPayErrorBodySchema: () => MoonPayErrorBodySchema,
|
|
71
83
|
MoonPayFaultSchema: () => MoonPayFaultSchema,
|
|
72
|
-
|
|
73
|
-
|
|
84
|
+
MoonPayKycPromptSchema: () => MoonPayKycPromptSchema,
|
|
85
|
+
MoonPayKycRequestSchema: () => MoonPayKycRequestSchema,
|
|
86
|
+
MoonPayNextRequestSchema: () => MoonPayNextRequestSchema,
|
|
87
|
+
MoonPayObserveRequestSchema: () => MoonPayObserveRequestSchema,
|
|
88
|
+
MoonPayOrderPromptSchema: () => MoonPayOrderPromptSchema,
|
|
89
|
+
MoonPayOrderRequestSchema: () => MoonPayOrderRequestSchema,
|
|
74
90
|
MoonPayOrderResponseSchema: () => MoonPayOrderResponseSchema,
|
|
91
|
+
MoonPayPromptSchema: () => MoonPayPromptSchema,
|
|
75
92
|
MoonPayQuoteInputSchema: () => MoonPayQuoteInputSchema,
|
|
93
|
+
MoonPayRequestContextSchema: () => MoonPayRequestContextSchema,
|
|
94
|
+
MoonPayRequestSchema: () => MoonPayRequestSchema,
|
|
95
|
+
MoonPayResponseSchemaFor: () => MoonPayResponseSchemaFor,
|
|
76
96
|
MoonPaySdkCredentialsSchema: () => MoonPaySdkCredentialsSchema,
|
|
77
97
|
MoonPayStepResponseSchema: () => MoonPayStepResponseSchema,
|
|
98
|
+
MoonPayWaitPromptSchema: () => MoonPayWaitPromptSchema,
|
|
78
99
|
OrderAwaitingConfirmationStateSchema: () => OrderAwaitingConfirmationStateSchema,
|
|
79
100
|
OrderCreatedStateSchema: () => OrderCreatedStateSchema,
|
|
80
101
|
OrderRefSchema: () => OrderRefSchema,
|
|
@@ -94,6 +115,7 @@ __export(index_exports, {
|
|
|
94
115
|
QuoteLimitsSchema: () => QuoteLimitsSchema,
|
|
95
116
|
QuoteSchema: () => QuoteSchema,
|
|
96
117
|
QuoteStateSchema: () => QuoteStateSchema,
|
|
118
|
+
ROUTING_ENDPOINTS: () => ROUTING_ENDPOINTS,
|
|
97
119
|
RecoverySchema: () => RecoverySchema,
|
|
98
120
|
RefundSchema: () => RefundSchema,
|
|
99
121
|
ReportSpecSchema: () => ReportSpecSchema,
|
|
@@ -975,6 +997,8 @@ var $providerBoundFlowState = import_zod.z.union([
|
|
|
975
997
|
var $flowState = import_zod.z.union([$providerBoundFlowState, $blockedState]);
|
|
976
998
|
var FlowStateSchema = $flowState;
|
|
977
999
|
var $nonBlank = import_zod.z.string().refine((value) => value.trim().length > 0, "must not be blank");
|
|
1000
|
+
var $isoInstant = import_zod.z.string().datetime({ offset: true });
|
|
1001
|
+
var $errorBodyFields = { errorMsg: import_zod.z.string(), reqId: import_zod.z.string().optional() };
|
|
978
1002
|
var $termsStage = import_zod.z.enum(["CHECKOUT", "KYC"]);
|
|
979
1003
|
var $termsDocument = obj({
|
|
980
1004
|
id: $nonBlank,
|
|
@@ -990,7 +1014,7 @@ var $termsAcceptance = obj({
|
|
|
990
1014
|
documentId: $nonBlank,
|
|
991
1015
|
version: $nonBlank,
|
|
992
1016
|
contentDigest: $nonBlank,
|
|
993
|
-
acceptedAt:
|
|
1017
|
+
acceptedAt: $isoInstant
|
|
994
1018
|
});
|
|
995
1019
|
var TermsDocumentAcceptanceSchema = $termsAcceptance;
|
|
996
1020
|
var $termsRequest = obj({
|
|
@@ -1002,12 +1026,121 @@ var $termsResponse = obj({ recorded: import_zod.z.array($nonBlank) });
|
|
|
1002
1026
|
var FiatTermsResponseSchema = $termsResponse;
|
|
1003
1027
|
var $termsErrorBody = obj({
|
|
1004
1028
|
errorCode: $nonBlank,
|
|
1005
|
-
|
|
1006
|
-
reqId: import_zod.z.string().optional(),
|
|
1029
|
+
...$errorBodyFields,
|
|
1007
1030
|
reason: import_zod.z.enum(["STALE_TERMS", "INVALID_REQUEST", "RATE_LIMITED", "PROVIDER_UNAVAILABLE"]),
|
|
1008
1031
|
recovery: import_zod.z.enum(["RETRY", "REQUOTE", "NONE"])
|
|
1009
1032
|
});
|
|
1010
1033
|
var FiatTermsErrorBodySchema = $termsErrorBody;
|
|
1034
|
+
var $decimalAmount = import_zod.z.string().regex(/^(?:0|[1-9]\d*)(?:\.\d+)?$/, "must be a decimal string");
|
|
1035
|
+
var compareDecimals = (left, right) => {
|
|
1036
|
+
const [leftWhole = "", leftFraction = ""] = left.split(".");
|
|
1037
|
+
const [rightWhole = "", rightFraction = ""] = right.split(".");
|
|
1038
|
+
if (leftWhole.length !== rightWhole.length) return leftWhole.length - rightWhole.length;
|
|
1039
|
+
const width = Math.max(leftFraction.length, rightFraction.length);
|
|
1040
|
+
const leftDigits = leftWhole + leftFraction.padEnd(width, "0");
|
|
1041
|
+
const rightDigits = rightWhole + rightFraction.padEnd(width, "0");
|
|
1042
|
+
return leftDigits < rightDigits ? -1 : leftDigits > rightDigits ? 1 : 0;
|
|
1043
|
+
};
|
|
1044
|
+
var $countryCode = import_zod.z.enum(Object.keys(CountryCode));
|
|
1045
|
+
var $routingProvider = $provider.extract(["TRANSAK", "BANXA", "MOONPAY", "STRIPE", "COINBASE"]);
|
|
1046
|
+
var $optionalGeoField = import_zod.z.union([$nonBlank, import_zod.z.literal("")]).optional();
|
|
1047
|
+
var US_REGION_REQUIRED = "a US buyer needs a US state code as region";
|
|
1048
|
+
var hasUsRegion = (country, region) => country !== "US" || UsStateCodeSchema.safeParse(region).success;
|
|
1049
|
+
var $routingTableQuery = obj({
|
|
1050
|
+
fiatCurrencyCode: import_zod.z.enum(FIAT_CURRENCY_CODES).optional(),
|
|
1051
|
+
cryptoCurrencyCode: $nonBlank,
|
|
1052
|
+
chainId: $nonBlank,
|
|
1053
|
+
country: $countryCode,
|
|
1054
|
+
region: $optionalGeoField,
|
|
1055
|
+
methods: import_zod.z.string().refine(
|
|
1056
|
+
(methods) => methods.split(",").every((method) => PAYMENT_METHOD_CATEGORIES.includes(method.trim())),
|
|
1057
|
+
"must be comma-separated payment method categories"
|
|
1058
|
+
)
|
|
1059
|
+
}).refine((query) => hasUsRegion(query.country, query.region), { message: US_REGION_REQUIRED, path: ["region"] });
|
|
1060
|
+
var FiatRoutingTableQuerySchema = $routingTableQuery;
|
|
1061
|
+
var $routingTableProvider = obj({
|
|
1062
|
+
provider: $routingProvider,
|
|
1063
|
+
next: import_zod.z.enum(["READY", "AUTH", "DECLARATIVE_KYC", "DOCUMENTARY_KYC", "PENDING_REVIEW"]),
|
|
1064
|
+
visibility: import_zod.z.enum(["COMPLETE", "PARTIAL", "AUTH_GATED"])
|
|
1065
|
+
});
|
|
1066
|
+
var $routingTableInterval = obj({
|
|
1067
|
+
min: $decimalAmount,
|
|
1068
|
+
max: $decimalAmount,
|
|
1069
|
+
providers: import_zod.z.array($routingTableProvider).min(1).refine((providers) => hasUniqueIds(providers.map((entry) => entry.provider)), "each provider is listed once")
|
|
1070
|
+
}).refine((interval) => compareDecimals(interval.min, interval.max) <= 0, { message: "min must not exceed max", path: ["max"] });
|
|
1071
|
+
var $routingTableMethod = obj({
|
|
1072
|
+
method: import_zod.z.enum(PAYMENT_METHOD_CATEGORIES),
|
|
1073
|
+
unavailableReason: import_zod.z.enum(["USER_LIMIT", "KYC_REJECTED", "PROVIDER_OUTAGE", "NOT_SERVED"]).optional(),
|
|
1074
|
+
intervals: import_zod.z.array($routingTableInterval).superRefine((intervals, context) => {
|
|
1075
|
+
intervals.forEach((interval, index) => {
|
|
1076
|
+
const previous = intervals[index - 1];
|
|
1077
|
+
if (previous !== void 0 && compareDecimals(interval.min, previous.max) <= 0) {
|
|
1078
|
+
context.addIssue({ code: "custom", path: [index, "min"], message: "intervals are sorted and do not overlap" });
|
|
1079
|
+
}
|
|
1080
|
+
});
|
|
1081
|
+
})
|
|
1082
|
+
}).refine((method) => method.unavailableReason === void 0 || method.intervals.length === 0, {
|
|
1083
|
+
message: "unavailableReason only with no interval",
|
|
1084
|
+
path: ["unavailableReason"]
|
|
1085
|
+
});
|
|
1086
|
+
var $routingTableResponse = obj({
|
|
1087
|
+
expiresAt: $isoInstant,
|
|
1088
|
+
methods: import_zod.z.array($routingTableMethod).refine((methods) => hasUniqueIds(methods.map((entry) => entry.method)), "each method is listed once")
|
|
1089
|
+
});
|
|
1090
|
+
var FiatRoutingTableResponseSchema = $routingTableResponse;
|
|
1091
|
+
var $routingQuoteRequest = obj({
|
|
1092
|
+
provider: $routingProvider,
|
|
1093
|
+
fiatCurrency: import_zod.z.enum(FIAT_CURRENCY_CODES),
|
|
1094
|
+
fiatAmount: $decimalAmount.refine((amount) => Number(amount) > 0, "must be positive"),
|
|
1095
|
+
cryptoCurrencyCode: $nonBlank,
|
|
1096
|
+
chainId: $nonBlank,
|
|
1097
|
+
paymentMethodId: import_zod.z.enum(PAYMENT_METHOD_CATEGORIES),
|
|
1098
|
+
geo: obj({ alpha2: $countryCode, region: $optionalGeoField, ip: $optionalGeoField, city: import_zod.z.string().optional() }).refine(
|
|
1099
|
+
(geo) => hasUsRegion(geo.alpha2, geo.region),
|
|
1100
|
+
{ message: US_REGION_REQUIRED, path: ["region"] }
|
|
1101
|
+
),
|
|
1102
|
+
prepareSessionAuth: import_zod.z.boolean().optional()
|
|
1103
|
+
});
|
|
1104
|
+
var FiatRoutingQuoteRequestSchema = $routingQuoteRequest;
|
|
1105
|
+
var $routingServiceableRange = obj({ min: $money, max: $money, userMax: $money.nullable().optional() });
|
|
1106
|
+
var $noRouteFields = {
|
|
1107
|
+
...$errorBodyFields,
|
|
1108
|
+
errorCode: import_zod.z.literal("FiatNoRouteError"),
|
|
1109
|
+
serviceableRanges: import_zod.z.array($routingServiceableRange),
|
|
1110
|
+
retryable: import_zod.z.boolean()
|
|
1111
|
+
};
|
|
1112
|
+
var $routingNoRouteErrorBody = import_zod.z.union([
|
|
1113
|
+
obj({ ...$noRouteFields, reason: import_zod.z.enum(["NO_CANDIDATE", "PROVIDER_DECLINED", "PROVIDER_OUTAGE", "KYC_REJECTED"]) }),
|
|
1114
|
+
obj({ ...$noRouteFields, reason: import_zod.z.literal("USER_LIMIT"), code: import_zod.z.literal("LIMITS_EXCEEDED"), recovery: import_zod.z.literal("REQUOTE") })
|
|
1115
|
+
]);
|
|
1116
|
+
var $amountErrorFields = { ...$errorBodyFields, fiatCurrencyCode: import_zod.z.enum(FIAT_CURRENCY_CODES) };
|
|
1117
|
+
var $routingAmountErrorBody = import_zod.z.union([
|
|
1118
|
+
obj({ ...$amountErrorFields, errorCode: import_zod.z.literal("FiatAmountBelowMinimumError"), minFiatAmount: $decimalAmount }),
|
|
1119
|
+
obj({ ...$amountErrorFields, errorCode: import_zod.z.literal("FiatAmountAboveMaximumError"), maxFiatAmount: $decimalAmount })
|
|
1120
|
+
]);
|
|
1121
|
+
var $routingRateLimitedErrorBody = obj({
|
|
1122
|
+
...$errorBodyFields,
|
|
1123
|
+
errorCode: import_zod.z.literal("TooManyRequestsError"),
|
|
1124
|
+
retryAfterSeconds: import_zod.z.number().int().positive().optional()
|
|
1125
|
+
});
|
|
1126
|
+
var ROUTING_ERROR_CODES = [
|
|
1127
|
+
"FiatNoRouteError",
|
|
1128
|
+
"FiatAmountBelowMinimumError",
|
|
1129
|
+
"FiatAmountAboveMaximumError",
|
|
1130
|
+
"TooManyRequestsError"
|
|
1131
|
+
];
|
|
1132
|
+
var $routingFaultErrorBody = obj({
|
|
1133
|
+
...$errorBodyFields,
|
|
1134
|
+
errorCode: $nonBlank.refine((code) => !ROUTING_ERROR_CODES.includes(code), "this errorCode carries its own fields")
|
|
1135
|
+
});
|
|
1136
|
+
var $routingTableErrorBody = import_zod.z.union([$routingRateLimitedErrorBody, $routingFaultErrorBody]);
|
|
1137
|
+
var FiatRoutingTableErrorBodySchema = $routingTableErrorBody;
|
|
1138
|
+
var $routingQuoteErrorBody = import_zod.z.union([$routingNoRouteErrorBody, $routingAmountErrorBody, $routingFaultErrorBody]);
|
|
1139
|
+
var FiatRoutingQuoteErrorBodySchema = $routingQuoteErrorBody;
|
|
1140
|
+
var $fiatGeo = obj({ alpha2: import_zod.z.string().regex(/^[A-Z]{2}$/), region: $nonBlank.optional(), ip: $nonBlank.optional() });
|
|
1141
|
+
var FiatGeoSchema = $fiatGeo;
|
|
1142
|
+
var $nextRequest = import_zod.z.object({ provider: $provider, action: $nonBlank, geo: $fiatGeo }).catchall(import_zod.z.unknown());
|
|
1143
|
+
var FiatNextRequestSchema = $nextRequest;
|
|
1011
1144
|
var $providerBoundStepResponse = obj({
|
|
1012
1145
|
state: $providerBoundFlowState,
|
|
1013
1146
|
provider: $provider,
|
|
@@ -1067,7 +1200,7 @@ var $stepResponse = import_zod.z.union([$providerBoundStepResponse, $blockedStep
|
|
|
1067
1200
|
var FiatStepResponseSchema = $stepResponse;
|
|
1068
1201
|
|
|
1069
1202
|
// package.json
|
|
1070
|
-
var version = "0.
|
|
1203
|
+
var version = "0.24.0";
|
|
1071
1204
|
|
|
1072
1205
|
// src/table.ts
|
|
1073
1206
|
var TABLE_VERSION = version;
|
|
@@ -2670,9 +2803,16 @@ var FUN_KYC_CONSENT_DOCUMENTS = {
|
|
|
2670
2803
|
};
|
|
2671
2804
|
var PUBLISHED_TERMS_DOCUMENTS = [MOONPAY_TERMS, ...Object.values(FUN_KYC_CONSENT_DOCUMENTS)];
|
|
2672
2805
|
|
|
2806
|
+
// src/routing.ts
|
|
2807
|
+
var ROUTING_ENDPOINTS = {
|
|
2808
|
+
table: "GET /fiat/routing/table",
|
|
2809
|
+
/** Temporary: `POST /fiat/next` replaces it for each provider that moves there. */
|
|
2810
|
+
quote: "POST /fiat/routing/quote"
|
|
2811
|
+
};
|
|
2812
|
+
|
|
2673
2813
|
// src/providers/moonpay.ts
|
|
2674
2814
|
var MOONPAY_ENDPOINTS = {
|
|
2675
|
-
|
|
2815
|
+
next: "POST /fiat/next"
|
|
2676
2816
|
};
|
|
2677
2817
|
|
|
2678
2818
|
// src/providers/moonpay.schemas.ts
|
|
@@ -2681,33 +2821,17 @@ var FIAT_CURRENCY_CODES2 = Object.keys(FIAT_CURRENCY_NAMES);
|
|
|
2681
2821
|
var obj2 = (shape) => import_zod2.z.object(shape).strict();
|
|
2682
2822
|
var $nonEmpty = import_zod2.z.string().refine((value) => value.trim().length > 0, "must not be blank");
|
|
2683
2823
|
var hasUniqueIds2 = (ids) => new Set(ids).size === ids.length;
|
|
2684
|
-
var $geo = obj2({ alpha2: import_zod2.z.string().regex(/^[A-Z]{2}$/), region: $nonEmpty.optional(), ip: $nonEmpty.optional() });
|
|
2685
2824
|
var $checkout = obj2({
|
|
2686
2825
|
amount: FiatAmountSchema,
|
|
2687
2826
|
destination: obj2({ asset: $nonEmpty, network: $nonEmpty }),
|
|
2688
|
-
paymentMethod: import_zod2.z.literal("apple_pay")
|
|
2689
|
-
geo: $geo
|
|
2827
|
+
paymentMethod: import_zod2.z.literal("apple_pay")
|
|
2690
2828
|
});
|
|
2691
2829
|
var MoonPayCheckoutSchema = $checkout;
|
|
2692
2830
|
var $credentials = obj2({ customerId: $nonEmpty, accessToken: $nonEmpty });
|
|
2693
2831
|
var MoonPaySdkCredentialsSchema = $credentials;
|
|
2694
|
-
var $
|
|
2695
|
-
|
|
2696
|
-
|
|
2697
|
-
kind: import_zod2.z.literal("kyc"),
|
|
2698
|
-
checkout: $checkout,
|
|
2699
|
-
credentials: $credentials,
|
|
2700
|
-
values: import_zod2.z.record(KycFieldIdSchema, import_zod2.z.string()).refine((values) => Object.keys(values).length > 0, "values must not be empty")
|
|
2701
|
-
}),
|
|
2702
|
-
obj2({
|
|
2703
|
-
kind: import_zod2.z.literal("order"),
|
|
2704
|
-
orderId: $nonEmpty,
|
|
2705
|
-
transactionId: $nonEmpty.optional(),
|
|
2706
|
-
quotedAmount: FiatAmountSchema,
|
|
2707
|
-
geo: $geo.optional()
|
|
2708
|
-
})
|
|
2709
|
-
]);
|
|
2710
|
-
var MoonPayIntentRequestSchema = $intentRequest;
|
|
2832
|
+
var $context = { checkout: $checkout, credentials: $credentials.optional() };
|
|
2833
|
+
var $requestContext = obj2($context);
|
|
2834
|
+
var MoonPayRequestContextSchema = $requestContext;
|
|
2711
2835
|
var $quoteInput = obj2({
|
|
2712
2836
|
source: obj2({ asset: obj2({ code: import_zod2.z.enum(FIAT_CURRENCY_CODES2) }), amount: $nonEmpty }),
|
|
2713
2837
|
destination: obj2({ asset: obj2({ code: $nonEmpty }) }),
|
|
@@ -2716,50 +2840,103 @@ var $quoteInput = obj2({
|
|
|
2716
2840
|
feeBehavior: import_zod2.z.literal("inclusive")
|
|
2717
2841
|
});
|
|
2718
2842
|
var MoonPayQuoteInputSchema = $quoteInput;
|
|
2719
|
-
var $
|
|
2720
|
-
var $
|
|
2843
|
+
var $observeFields = { action: import_zod2.z.literal("observe") };
|
|
2844
|
+
var $consentFields = {
|
|
2845
|
+
action: import_zod2.z.literal("consent"),
|
|
2846
|
+
acceptances: import_zod2.z.array(TermsDocumentAcceptanceSchema).min(1).refine((acceptances) => hasUniqueIds2(acceptances.map((acceptance) => acceptance.documentId)), "each document is accepted once")
|
|
2847
|
+
};
|
|
2848
|
+
var $connectFields = { action: import_zod2.z.literal("connect"), customerId: $nonEmpty, accessToken: $nonEmpty };
|
|
2849
|
+
var $kycFields = {
|
|
2850
|
+
action: import_zod2.z.literal("kyc"),
|
|
2851
|
+
credentials: $credentials,
|
|
2852
|
+
values: import_zod2.z.record(KycFieldIdSchema, import_zod2.z.string()).refine((values) => Object.keys(values).length > 0, "values must not be empty")
|
|
2853
|
+
};
|
|
2854
|
+
var $orderFields = { action: import_zod2.z.literal("order"), orderId: $nonEmpty, quotedAmount: FiatAmountSchema, transactionId: $nonEmpty.optional() };
|
|
2855
|
+
var $observeRequest = obj2({ ...$context, ...$observeFields });
|
|
2856
|
+
var $consentRequest = obj2({ ...$context, ...$consentFields });
|
|
2857
|
+
var $connectRequest = obj2({ ...$context, ...$connectFields });
|
|
2858
|
+
var $kycRequest = obj2({ ...$context, ...$kycFields });
|
|
2859
|
+
var $orderRequest = obj2({ ...$context, ...$orderFields });
|
|
2860
|
+
var MoonPayObserveRequestSchema = $observeRequest;
|
|
2861
|
+
var MoonPayConsentRequestSchema = $consentRequest;
|
|
2862
|
+
var MoonPayConnectRequestSchema = $connectRequest;
|
|
2863
|
+
var MoonPayKycRequestSchema = $kycRequest;
|
|
2864
|
+
var MoonPayOrderRequestSchema = $orderRequest;
|
|
2865
|
+
var $request = import_zod2.z.discriminatedUnion("action", [$observeRequest, $consentRequest, $connectRequest, $kycRequest, $orderRequest]);
|
|
2866
|
+
var MoonPayRequestSchema = $request;
|
|
2867
|
+
var $envelope = { provider: import_zod2.z.literal("MOONPAY"), geo: FiatGeoSchema, ...$context };
|
|
2868
|
+
var $nextRequest2 = import_zod2.z.discriminatedUnion("action", [
|
|
2869
|
+
obj2({ ...$envelope, ...$observeFields }),
|
|
2870
|
+
obj2({ ...$envelope, ...$consentFields }),
|
|
2871
|
+
obj2({ ...$envelope, ...$connectFields }),
|
|
2872
|
+
obj2({ ...$envelope, ...$kycFields }),
|
|
2873
|
+
obj2({ ...$envelope, ...$orderFields })
|
|
2874
|
+
]);
|
|
2875
|
+
var MoonPayNextRequestSchema = $nextRequest2;
|
|
2721
2876
|
var FIELD_OF_CODE = { PHONE_IN_USE: "PHONE_NUMBER", TAX_ID_IN_USE: "TAX_IDENTIFIER" };
|
|
2722
2877
|
var $fieldError = obj2({ fieldId: $nonEmpty, message: $nonEmpty, code: import_zod2.z.enum(["PHONE_IN_USE", "TAX_ID_IN_USE"]).optional() });
|
|
2723
|
-
var $
|
|
2724
|
-
var $
|
|
2725
|
-
|
|
2726
|
-
|
|
2727
|
-
|
|
2728
|
-
|
|
2729
|
-
|
|
2730
|
-
|
|
2731
|
-
|
|
2732
|
-
var $
|
|
2733
|
-
|
|
2734
|
-
|
|
2735
|
-
|
|
2736
|
-
}
|
|
2737
|
-
if (response.documents.some((document) => document.stage !== response.stage)) {
|
|
2738
|
-
context.addIssue({ code: "custom", path: ["documents"], message: "every document must be at the response stage" });
|
|
2739
|
-
}
|
|
2878
|
+
var $consentShape = obj2({ next: import_zod2.z.literal("consent"), documents: import_zod2.z.array(TermsDocumentSchema).min(1) });
|
|
2879
|
+
var $connectPrompt = obj2({
|
|
2880
|
+
next: import_zod2.z.literal("connect"),
|
|
2881
|
+
sessionToken: $nonEmpty,
|
|
2882
|
+
quoteInput: $quoteInput,
|
|
2883
|
+
resetConnection: import_zod2.z.literal(true).optional()
|
|
2884
|
+
});
|
|
2885
|
+
var $kycShape = obj2({ next: import_zod2.z.literal("kyc"), fields: import_zod2.z.array(FormFieldSchema).min(1), fieldErrors: import_zod2.z.array($fieldError).min(1).optional() });
|
|
2886
|
+
var $waitPrompt = obj2({ next: import_zod2.z.literal("wait"), retryAfterMs: import_zod2.z.number().int().positive().max(6e4) });
|
|
2887
|
+
var $orderPrompt = obj2({ next: import_zod2.z.literal("order"), orderId: $nonEmpty, quoteInput: $quoteInput });
|
|
2888
|
+
var checkConsent = (prompt, context) => {
|
|
2889
|
+
if (!hasUniqueIds2(prompt.documents.map((document) => document.id))) {
|
|
2890
|
+
context.addIssue({ code: "custom", path: ["documents"], message: "document ids must be unique" });
|
|
2740
2891
|
}
|
|
2741
|
-
|
|
2742
|
-
|
|
2743
|
-
|
|
2744
|
-
|
|
2745
|
-
}
|
|
2746
|
-
|
|
2747
|
-
|
|
2748
|
-
}
|
|
2749
|
-
if (response.fieldErrors?.some((error) => error.code && FIELD_OF_CODE[error.code] !== error.fieldId)) {
|
|
2750
|
-
context.addIssue({ code: "custom", path: ["fieldErrors"], message: "a field error code must match its field" });
|
|
2751
|
-
}
|
|
2892
|
+
};
|
|
2893
|
+
var checkKyc = (prompt, context) => {
|
|
2894
|
+
const fieldIds = prompt.fields.map((field) => field.id);
|
|
2895
|
+
if (!hasUniqueIds2(fieldIds)) {
|
|
2896
|
+
context.addIssue({ code: "custom", path: ["fields"], message: "field ids must be unique" });
|
|
2897
|
+
}
|
|
2898
|
+
if (prompt.fieldErrors?.some((error) => !fieldIds.includes(error.fieldId))) {
|
|
2899
|
+
context.addIssue({ code: "custom", path: ["fieldErrors"], message: "a field error must name a field in this prompt" });
|
|
2752
2900
|
}
|
|
2901
|
+
if (prompt.fieldErrors?.some((error) => error.code && FIELD_OF_CODE[error.code] !== error.fieldId)) {
|
|
2902
|
+
context.addIssue({ code: "custom", path: ["fieldErrors"], message: "a field error code must match its field" });
|
|
2903
|
+
}
|
|
2904
|
+
};
|
|
2905
|
+
var MoonPayConsentPromptSchema = $consentShape.superRefine(checkConsent);
|
|
2906
|
+
var MoonPayConnectPromptSchema = $connectPrompt;
|
|
2907
|
+
var MoonPayKycPromptSchema = $kycShape.superRefine(checkKyc);
|
|
2908
|
+
var MoonPayWaitPromptSchema = $waitPrompt;
|
|
2909
|
+
var MoonPayOrderPromptSchema = $orderPrompt;
|
|
2910
|
+
var checkPrompt = (response, context) => {
|
|
2911
|
+
if (response.next === "consent") checkConsent(response, context);
|
|
2912
|
+
if (response.next === "kyc") checkKyc(response, context);
|
|
2913
|
+
};
|
|
2914
|
+
var $promptOptions = [$consentShape, $connectPrompt, $kycShape, $waitPrompt, $orderPrompt];
|
|
2915
|
+
var $prompt = import_zod2.z.discriminatedUnion("next", [...$promptOptions]).superRefine(checkPrompt);
|
|
2916
|
+
var MoonPayPromptSchema = $prompt;
|
|
2917
|
+
var $done = obj2({ next: import_zod2.z.literal("done"), order: FiatStepResponseSchema });
|
|
2918
|
+
var MoonPayDoneSchema = $done;
|
|
2919
|
+
var $stepRefused = obj2({
|
|
2920
|
+
next: import_zod2.z.literal("refused"),
|
|
2921
|
+
reason: import_zod2.z.enum(["NOT_ELIGIBLE", "DOCUMENTS_REQUIRED", "FINAL_REJECTION", "CUSTOMER_MISMATCH"]),
|
|
2922
|
+
recovery: import_zod2.z.enum(["REQUOTE", "NONE"])
|
|
2923
|
+
});
|
|
2924
|
+
var $orderRefused = obj2({
|
|
2925
|
+
next: import_zod2.z.literal("refused"),
|
|
2926
|
+
reason: import_zod2.z.enum(["CUSTOMER_MISMATCH", "WALLET_MISMATCH", "UNRECORDABLE"]),
|
|
2927
|
+
recovery: import_zod2.z.literal("NONE")
|
|
2753
2928
|
});
|
|
2929
|
+
var $stepResponse2 = import_zod2.z.discriminatedUnion("next", [...$promptOptions, $stepRefused]).superRefine(checkPrompt);
|
|
2754
2930
|
var MoonPayStepResponseSchema = $stepResponse2;
|
|
2755
|
-
var $orderResponse = import_zod2.z.discriminatedUnion("
|
|
2756
|
-
obj2({ status: import_zod2.z.literal("DONE"), order: FiatStepResponseSchema }),
|
|
2757
|
-
$pending,
|
|
2758
|
-
obj2({ status: import_zod2.z.literal("REFUSED"), reason: $orderRefusal, recovery: import_zod2.z.literal("NONE") })
|
|
2759
|
-
]);
|
|
2931
|
+
var $orderResponse = import_zod2.z.discriminatedUnion("next", [$done, $orderPrompt, $orderRefused]);
|
|
2760
2932
|
var MoonPayOrderResponseSchema = $orderResponse;
|
|
2761
|
-
var
|
|
2762
|
-
|
|
2933
|
+
var MoonPayResponseSchemaFor = {
|
|
2934
|
+
observe: MoonPayStepResponseSchema,
|
|
2935
|
+
consent: MoonPayStepResponseSchema,
|
|
2936
|
+
connect: MoonPayStepResponseSchema,
|
|
2937
|
+
kyc: MoonPayStepResponseSchema,
|
|
2938
|
+
order: MoonPayOrderResponseSchema
|
|
2939
|
+
};
|
|
2763
2940
|
var $faultFields = {
|
|
2764
2941
|
reason: import_zod2.z.enum(["SESSION_BUDGET_SPENT", "RATE_LIMITED", "PROVIDER_UNAVAILABLE", "INVALID_REQUEST"]),
|
|
2765
2942
|
recovery: import_zod2.z.enum(["RETRY", "REQUOTE", "NONE"])
|