@adyen/api-library
Version:
The Adyen API Library for NodeJS enables you to work with Adyen APIs.
937 lines • 52.1 kB
JavaScript
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ObjectSerializer = void 0;
__exportStar(require("./models"), exports);
const accountInfo_1 = require("./accountInfo");
const acctInfo_1 = require("./acctInfo");
const achDetails_1 = require("./achDetails");
const additionalData3DSecure_1 = require("./additionalData3DSecure");
const additionalDataAirline_1 = require("./additionalDataAirline");
const additionalDataCarRental_1 = require("./additionalDataCarRental");
const additionalDataCommon_1 = require("./additionalDataCommon");
const additionalDataLevel23_1 = require("./additionalDataLevel23");
const additionalDataLodging_1 = require("./additionalDataLodging");
const additionalDataOpenInvoice_1 = require("./additionalDataOpenInvoice");
const additionalDataOpi_1 = require("./additionalDataOpi");
const additionalDataRatepay_1 = require("./additionalDataRatepay");
const additionalDataRetry_1 = require("./additionalDataRetry");
const additionalDataRisk_1 = require("./additionalDataRisk");
const additionalDataRiskStandalone_1 = require("./additionalDataRiskStandalone");
const additionalDataSubMerchant_1 = require("./additionalDataSubMerchant");
const additionalDataTemporaryServices_1 = require("./additionalDataTemporaryServices");
const additionalDataWallets_1 = require("./additionalDataWallets");
const address_1 = require("./address");
const affirmDetails_1 = require("./affirmDetails");
const afterpayDetails_1 = require("./afterpayDetails");
const agency_1 = require("./agency");
const airline_1 = require("./airline");
const amazonPayDetails_1 = require("./amazonPayDetails");
const amount_1 = require("./amount");
const amounts_1 = require("./amounts");
const ancvDetails_1 = require("./ancvDetails");
const androidPayDetails_1 = require("./androidPayDetails");
const applePayDetails_1 = require("./applePayDetails");
const applePayDonations_1 = require("./applePayDonations");
const applePaySessionRequest_1 = require("./applePaySessionRequest");
const applePaySessionResponse_1 = require("./applePaySessionResponse");
const applicationInfo_1 = require("./applicationInfo");
const authenticationData_1 = require("./authenticationData");
const bacsDirectDebitDetails_1 = require("./bacsDirectDebitDetails");
const balanceCheckRequest_1 = require("./balanceCheckRequest");
const balanceCheckResponse_1 = require("./balanceCheckResponse");
const billDeskDetails_1 = require("./billDeskDetails");
const billingAddress_1 = require("./billingAddress");
const blikDetails_1 = require("./blikDetails");
const browserInfo_1 = require("./browserInfo");
const cancelOrderRequest_1 = require("./cancelOrderRequest");
const cancelOrderResponse_1 = require("./cancelOrderResponse");
const cardBrandDetails_1 = require("./cardBrandDetails");
const cardDetails_1 = require("./cardDetails");
const cardDetailsRequest_1 = require("./cardDetailsRequest");
const cardDetailsResponse_1 = require("./cardDetailsResponse");
const cardDonations_1 = require("./cardDonations");
const cashAppDetails_1 = require("./cashAppDetails");
const cellulantDetails_1 = require("./cellulantDetails");
const checkoutAwaitAction_1 = require("./checkoutAwaitAction");
const checkoutBankAccount_1 = require("./checkoutBankAccount");
const checkoutBankTransferAction_1 = require("./checkoutBankTransferAction");
const checkoutDelegatedAuthenticationAction_1 = require("./checkoutDelegatedAuthenticationAction");
const checkoutNativeRedirectAction_1 = require("./checkoutNativeRedirectAction");
const checkoutOrderResponse_1 = require("./checkoutOrderResponse");
const checkoutQrCodeAction_1 = require("./checkoutQrCodeAction");
const checkoutRedirectAction_1 = require("./checkoutRedirectAction");
const checkoutSDKAction_1 = require("./checkoutSDKAction");
const checkoutSessionInstallmentOption_1 = require("./checkoutSessionInstallmentOption");
const checkoutSessionThreeDS2RequestData_1 = require("./checkoutSessionThreeDS2RequestData");
const checkoutThreeDS2Action_1 = require("./checkoutThreeDS2Action");
const checkoutVoucherAction_1 = require("./checkoutVoucherAction");
const commonField_1 = require("./commonField");
const company_1 = require("./company");
const createCheckoutSessionRequest_1 = require("./createCheckoutSessionRequest");
const createCheckoutSessionResponse_1 = require("./createCheckoutSessionResponse");
const createOrderRequest_1 = require("./createOrderRequest");
const createOrderResponse_1 = require("./createOrderResponse");
const defaultErrorResponseEntity_1 = require("./defaultErrorResponseEntity");
const deliveryAddress_1 = require("./deliveryAddress");
const deliveryMethod_1 = require("./deliveryMethod");
const detailsRequestAuthenticationData_1 = require("./detailsRequestAuthenticationData");
const deviceRenderOptions_1 = require("./deviceRenderOptions");
const dokuDetails_1 = require("./dokuDetails");
const donation_1 = require("./donation");
const donationCampaign_1 = require("./donationCampaign");
const donationCampaignsRequest_1 = require("./donationCampaignsRequest");
const donationCampaignsResponse_1 = require("./donationCampaignsResponse");
const donationPaymentRequest_1 = require("./donationPaymentRequest");
const donationPaymentRequestPaymentMethod_1 = require("./donationPaymentRequestPaymentMethod");
const donationPaymentResponse_1 = require("./donationPaymentResponse");
const dragonpayDetails_1 = require("./dragonpayDetails");
const eBankingFinlandDetails_1 = require("./eBankingFinlandDetails");
const econtextVoucherDetails_1 = require("./econtextVoucherDetails");
const eftDetails_1 = require("./eftDetails");
const encryptedOrderData_1 = require("./encryptedOrderData");
const enhancedSchemeData_1 = require("./enhancedSchemeData");
const externalPlatform_1 = require("./externalPlatform");
const fastlaneDetails_1 = require("./fastlaneDetails");
const forexQuote_1 = require("./forexQuote");
const fraudCheckResult_1 = require("./fraudCheckResult");
const fraudResult_1 = require("./fraudResult");
const fundOrigin_1 = require("./fundOrigin");
const fundRecipient_1 = require("./fundRecipient");
const genericIssuerPaymentMethodDetails_1 = require("./genericIssuerPaymentMethodDetails");
const googlePayDetails_1 = require("./googlePayDetails");
const googlePayDonations_1 = require("./googlePayDonations");
const idealDetails_1 = require("./idealDetails");
const idealDonations_1 = require("./idealDonations");
const inputDetail_1 = require("./inputDetail");
const installmentOption_1 = require("./installmentOption");
const installments_1 = require("./installments");
const invalidField_1 = require("./invalidField");
const item_1 = require("./item");
const klarnaDetails_1 = require("./klarnaDetails");
const leg_1 = require("./leg");
const lineItem_1 = require("./lineItem");
const listStoredPaymentMethodsResponse_1 = require("./listStoredPaymentMethodsResponse");
const mandate_1 = require("./mandate");
const masterpassDetails_1 = require("./masterpassDetails");
const mbwayDetails_1 = require("./mbwayDetails");
const merchantDevice_1 = require("./merchantDevice");
const merchantRiskIndicator_1 = require("./merchantRiskIndicator");
const mobilePayDetails_1 = require("./mobilePayDetails");
const molPayDetails_1 = require("./molPayDetails");
const name_1 = require("./name");
const openInvoiceDetails_1 = require("./openInvoiceDetails");
const passenger_1 = require("./passenger");
const payByBankAISDirectDebitDetails_1 = require("./payByBankAISDirectDebitDetails");
const payByBankDetails_1 = require("./payByBankDetails");
const payPalDetails_1 = require("./payPalDetails");
const payPayDetails_1 = require("./payPayDetails");
const payToDetails_1 = require("./payToDetails");
const payToPaymentMethod_1 = require("./payToPaymentMethod");
const payUUpiDetails_1 = require("./payUUpiDetails");
const payWithGoogleDetails_1 = require("./payWithGoogleDetails");
const payWithGoogleDonations_1 = require("./payWithGoogleDonations");
const payment_1 = require("./payment");
const paymentAmountUpdateRequest_1 = require("./paymentAmountUpdateRequest");
const paymentAmountUpdateResponse_1 = require("./paymentAmountUpdateResponse");
const paymentCancelRequest_1 = require("./paymentCancelRequest");
const paymentCancelResponse_1 = require("./paymentCancelResponse");
const paymentCaptureRequest_1 = require("./paymentCaptureRequest");
const paymentCaptureResponse_1 = require("./paymentCaptureResponse");
const paymentCompletionDetails_1 = require("./paymentCompletionDetails");
const paymentDetails_1 = require("./paymentDetails");
const paymentDetailsRequest_1 = require("./paymentDetailsRequest");
const paymentDetailsResponse_1 = require("./paymentDetailsResponse");
const paymentLinkRequest_1 = require("./paymentLinkRequest");
const paymentLinkResponse_1 = require("./paymentLinkResponse");
const paymentMethod_1 = require("./paymentMethod");
const paymentMethodGroup_1 = require("./paymentMethodGroup");
const paymentMethodIssuer_1 = require("./paymentMethodIssuer");
const paymentMethodToStore_1 = require("./paymentMethodToStore");
const paymentMethodUPIApps_1 = require("./paymentMethodUPIApps");
const paymentMethodsRequest_1 = require("./paymentMethodsRequest");
const paymentMethodsResponse_1 = require("./paymentMethodsResponse");
const paymentRefundRequest_1 = require("./paymentRefundRequest");
const paymentRefundResponse_1 = require("./paymentRefundResponse");
const paymentRequest_1 = require("./paymentRequest");
const paymentRequestPaymentMethod_1 = require("./paymentRequestPaymentMethod");
const paymentResponse_1 = require("./paymentResponse");
const paymentResponseAction_1 = require("./paymentResponseAction");
const paymentReversalRequest_1 = require("./paymentReversalRequest");
const paymentReversalResponse_1 = require("./paymentReversalResponse");
const paypalUpdateOrderRequest_1 = require("./paypalUpdateOrderRequest");
const paypalUpdateOrderResponse_1 = require("./paypalUpdateOrderResponse");
const phone_1 = require("./phone");
const pixDetails_1 = require("./pixDetails");
const pixRecurring_1 = require("./pixRecurring");
const platformChargebackLogic_1 = require("./platformChargebackLogic");
const pseDetails_1 = require("./pseDetails");
const rakutenPayDetails_1 = require("./rakutenPayDetails");
const ratepayDetails_1 = require("./ratepayDetails");
const recurring_1 = require("./recurring");
const responseAdditionalData3DSecure_1 = require("./responseAdditionalData3DSecure");
const responseAdditionalDataBillingAddress_1 = require("./responseAdditionalDataBillingAddress");
const responseAdditionalDataCard_1 = require("./responseAdditionalDataCard");
const responseAdditionalDataCommon_1 = require("./responseAdditionalDataCommon");
const responseAdditionalDataDomesticError_1 = require("./responseAdditionalDataDomesticError");
const responseAdditionalDataInstallments_1 = require("./responseAdditionalDataInstallments");
const responseAdditionalDataNetworkTokens_1 = require("./responseAdditionalDataNetworkTokens");
const responseAdditionalDataOpi_1 = require("./responseAdditionalDataOpi");
const responseAdditionalDataSepa_1 = require("./responseAdditionalDataSepa");
const responseAdditionalDataSwish_1 = require("./responseAdditionalDataSwish");
const responsePaymentMethod_1 = require("./responsePaymentMethod");
const result_1 = require("./result");
const riskData_1 = require("./riskData");
const rivertyDetails_1 = require("./rivertyDetails");
const sDKEphemPubKey_1 = require("./sDKEphemPubKey");
const samsungPayDetails_1 = require("./samsungPayDetails");
const sepaDirectDebitDetails_1 = require("./sepaDirectDebitDetails");
const serviceError_1 = require("./serviceError");
const sessionResultResponse_1 = require("./sessionResultResponse");
const shopperIdPaymentMethod_1 = require("./shopperIdPaymentMethod");
const shopperInteractionDevice_1 = require("./shopperInteractionDevice");
const shopperName_1 = require("./shopperName");
const split_1 = require("./split");
const splitAmount_1 = require("./splitAmount");
const standalonePaymentCancelRequest_1 = require("./standalonePaymentCancelRequest");
const standalonePaymentCancelResponse_1 = require("./standalonePaymentCancelResponse");
const storedPaymentMethod_1 = require("./storedPaymentMethod");
const storedPaymentMethodDetails_1 = require("./storedPaymentMethodDetails");
const storedPaymentMethodRequest_1 = require("./storedPaymentMethodRequest");
const storedPaymentMethodResource_1 = require("./storedPaymentMethodResource");
const subInputDetail_1 = require("./subInputDetail");
const subMerchant_1 = require("./subMerchant");
const subMerchantInfo_1 = require("./subMerchantInfo");
const surcharge_1 = require("./surcharge");
const taxTotal_1 = require("./taxTotal");
const threeDS2RequestData_1 = require("./threeDS2RequestData");
const threeDS2RequestFields_1 = require("./threeDS2RequestFields");
const threeDS2ResponseData_1 = require("./threeDS2ResponseData");
const threeDS2Result_1 = require("./threeDS2Result");
const threeDSRequestData_1 = require("./threeDSRequestData");
const threeDSRequestorAuthenticationInfo_1 = require("./threeDSRequestorAuthenticationInfo");
const threeDSRequestorPriorAuthenticationInfo_1 = require("./threeDSRequestorPriorAuthenticationInfo");
const threeDSecureData_1 = require("./threeDSecureData");
const ticket_1 = require("./ticket");
const travelAgency_1 = require("./travelAgency");
const twintDetails_1 = require("./twintDetails");
const uPIPaymentMethod_1 = require("./uPIPaymentMethod");
const updatePaymentLinkRequest_1 = require("./updatePaymentLinkRequest");
const upiCollectDetails_1 = require("./upiCollectDetails");
const upiIntentDetails_1 = require("./upiIntentDetails");
const upiQrDetails_1 = require("./upiQrDetails");
const utilityRequest_1 = require("./utilityRequest");
const utilityResponse_1 = require("./utilityResponse");
const validateShopperIdRequest_1 = require("./validateShopperIdRequest");
const validateShopperIdResponse_1 = require("./validateShopperIdResponse");
const vippsDetails_1 = require("./vippsDetails");
const visaCheckoutDetails_1 = require("./visaCheckoutDetails");
const weChatPayDetails_1 = require("./weChatPayDetails");
const weChatPayMiniProgramDetails_1 = require("./weChatPayMiniProgramDetails");
const zipDetails_1 = require("./zipDetails");
/* tslint:disable:no-unused-variable */
let primitives = [
"string",
"boolean",
"double",
"integer",
"long",
"float",
"number",
"any"
];
let enumsMap = new Set([
"AccountInfo.AccountAgeIndicatorEnum",
"AccountInfo.AccountChangeIndicatorEnum",
"AccountInfo.AccountTypeEnum",
"AccountInfo.DeliveryAddressUsageIndicatorEnum",
"AccountInfo.PasswordChangeIndicatorEnum",
"AccountInfo.PaymentAccountIndicatorEnum",
"AcctInfo.ChAccAgeIndEnum",
"AcctInfo.ChAccChangeIndEnum",
"AcctInfo.ChAccPwChangeIndEnum",
"AcctInfo.PaymentAccIndEnum",
"AcctInfo.ShipAddressUsageIndEnum",
"AcctInfo.ShipNameIndicatorEnum",
"AcctInfo.SuspiciousAccActivityEnum",
"AchDetails.AccountHolderTypeEnum",
"AchDetails.BankAccountTypeEnum",
"AchDetails.TypeEnum",
"AdditionalData3DSecure.ChallengeWindowSizeEnum",
"AdditionalDataCommon.IndustryUsageEnum",
"AffirmDetails.TypeEnum",
"AfterpayDetails.TypeEnum",
"AmazonPayDetails.TypeEnum",
"AncvDetails.TypeEnum",
"AndroidPayDetails.TypeEnum",
"ApplePayDetails.FundingSourceEnum",
"ApplePayDetails.TypeEnum",
"ApplePayDonations.FundingSourceEnum",
"ApplePayDonations.TypeEnum",
"AuthenticationData.AttemptAuthenticationEnum",
"BacsDirectDebitDetails.TypeEnum",
"BalanceCheckRequest.RecurringProcessingModelEnum",
"BalanceCheckRequest.ShopperInteractionEnum",
"BalanceCheckResponse.ResultCodeEnum",
"BillDeskDetails.TypeEnum",
"BlikDetails.TypeEnum",
"CancelOrderResponse.ResultCodeEnum",
"CardDetails.FundingSourceEnum",
"CardDetails.TypeEnum",
"CardDonations.FundingSourceEnum",
"CardDonations.TypeEnum",
"CashAppDetails.TypeEnum",
"CellulantDetails.TypeEnum",
"CheckoutAwaitAction.TypeEnum",
"CheckoutBankAccount.AccountTypeEnum",
"CheckoutBankTransferAction.TypeEnum",
"CheckoutDelegatedAuthenticationAction.TypeEnum",
"CheckoutNativeRedirectAction.TypeEnum",
"CheckoutQrCodeAction.TypeEnum",
"CheckoutRedirectAction.TypeEnum",
"CheckoutSDKAction.TypeEnum",
"CheckoutSessionInstallmentOption.PlansEnum",
"CheckoutSessionThreeDS2RequestData.ThreeDSRequestorChallengeIndEnum",
"CheckoutThreeDS2Action.TypeEnum",
"CheckoutVoucherAction.TypeEnum",
"CreateCheckoutSessionRequest.ChannelEnum",
"CreateCheckoutSessionRequest.ModeEnum",
"CreateCheckoutSessionRequest.RecurringProcessingModelEnum",
"CreateCheckoutSessionRequest.ShopperInteractionEnum",
"CreateCheckoutSessionRequest.StoreFiltrationModeEnum",
"CreateCheckoutSessionRequest.StorePaymentMethodModeEnum",
"CreateCheckoutSessionResponse.ChannelEnum",
"CreateCheckoutSessionResponse.ModeEnum",
"CreateCheckoutSessionResponse.RecurringProcessingModelEnum",
"CreateCheckoutSessionResponse.ShopperInteractionEnum",
"CreateCheckoutSessionResponse.StoreFiltrationModeEnum",
"CreateCheckoutSessionResponse.StorePaymentMethodModeEnum",
"CreateOrderResponse.ResultCodeEnum",
"DeliveryMethod.TypeEnum",
"DeviceRenderOptions.SdkInterfaceEnum",
"DeviceRenderOptions.SdkUiTypeEnum",
"DokuDetails.TypeEnum",
"DonationPaymentRequest.ChannelEnum",
"DonationPaymentRequest.RecurringProcessingModelEnum",
"DonationPaymentRequest.ShopperInteractionEnum",
"DonationPaymentRequestPaymentMethod.FundingSourceEnum",
"DonationPaymentRequestPaymentMethod.TypeEnum",
"DonationPaymentResponse.StatusEnum",
"DragonpayDetails.TypeEnum",
"EBankingFinlandDetails.TypeEnum",
"EcontextVoucherDetails.TypeEnum",
"EftDetails.TypeEnum",
"FastlaneDetails.TypeEnum",
"FundRecipient.WalletPurposeEnum",
"GenericIssuerPaymentMethodDetails.TypeEnum",
"GooglePayDetails.FundingSourceEnum",
"GooglePayDetails.TypeEnum",
"GooglePayDonations.FundingSourceEnum",
"GooglePayDonations.TypeEnum",
"IdealDetails.TypeEnum",
"IdealDonations.TypeEnum",
"InstallmentOption.PlansEnum",
"Installments.PlanEnum",
"KlarnaDetails.TypeEnum",
"Mandate.AmountRuleEnum",
"Mandate.BillingAttemptsRuleEnum",
"Mandate.FrequencyEnum",
"MasterpassDetails.FundingSourceEnum",
"MasterpassDetails.TypeEnum",
"MbwayDetails.TypeEnum",
"MerchantRiskIndicator.DeliveryAddressIndicatorEnum",
"MerchantRiskIndicator.DeliveryTimeframeEnum",
"MobilePayDetails.TypeEnum",
"MolPayDetails.TypeEnum",
"OpenInvoiceDetails.TypeEnum",
"PayByBankAISDirectDebitDetails.TypeEnum",
"PayByBankDetails.TypeEnum",
"PayPalDetails.SubtypeEnum",
"PayPalDetails.TypeEnum",
"PayPayDetails.TypeEnum",
"PayToDetails.TypeEnum",
"PayUUpiDetails.TypeEnum",
"PayWithGoogleDetails.FundingSourceEnum",
"PayWithGoogleDetails.TypeEnum",
"PayWithGoogleDonations.FundingSourceEnum",
"PayWithGoogleDonations.TypeEnum",
"Payment.ResultCodeEnum",
"PaymentAmountUpdateRequest.IndustryUsageEnum",
"PaymentAmountUpdateResponse.IndustryUsageEnum",
"PaymentAmountUpdateResponse.StatusEnum",
"PaymentCancelResponse.StatusEnum",
"PaymentCaptureResponse.StatusEnum",
"PaymentDetails.TypeEnum",
"PaymentDetailsResponse.ResultCodeEnum",
"PaymentLinkRequest.RecurringProcessingModelEnum",
"PaymentLinkRequest.RequiredShopperFieldsEnum",
"PaymentLinkRequest.StorePaymentMethodModeEnum",
"PaymentLinkResponse.RecurringProcessingModelEnum",
"PaymentLinkResponse.RequiredShopperFieldsEnum",
"PaymentLinkResponse.StatusEnum",
"PaymentLinkResponse.StorePaymentMethodModeEnum",
"PaymentMethod.FundingSourceEnum",
"PaymentMethodsRequest.ChannelEnum",
"PaymentMethodsRequest.StoreFiltrationModeEnum",
"PaymentRefundRequest.MerchantRefundReasonEnum",
"PaymentRefundResponse.MerchantRefundReasonEnum",
"PaymentRefundResponse.StatusEnum",
"PaymentRequest.ChannelEnum",
"PaymentRequest.EntityTypeEnum",
"PaymentRequest.IndustryUsageEnum",
"PaymentRequest.RecurringProcessingModelEnum",
"PaymentRequest.ShopperInteractionEnum",
"PaymentRequestPaymentMethod.AccountHolderTypeEnum",
"PaymentRequestPaymentMethod.BankAccountTypeEnum",
"PaymentRequestPaymentMethod.TypeEnum",
"PaymentRequestPaymentMethod.FundingSourceEnum",
"PaymentResponse.ResultCodeEnum",
"PaymentResponseAction.TypeEnum",
"PaymentReversalResponse.StatusEnum",
"PaypalUpdateOrderResponse.StatusEnum",
"PixDetails.TypeEnum",
"PixRecurring.FrequencyEnum",
"PlatformChargebackLogic.BehaviorEnum",
"PseDetails.TypeEnum",
"RakutenPayDetails.TypeEnum",
"RatepayDetails.TypeEnum",
"Recurring.ContractEnum",
"Recurring.TokenServiceEnum",
"ResponseAdditionalDataCard.CardProductIdEnum",
"ResponseAdditionalDataCommon.FraudResultTypeEnum",
"ResponseAdditionalDataCommon.FraudRiskLevelEnum",
"ResponseAdditionalDataCommon.RecurringProcessingModelEnum",
"ResponseAdditionalDataCommon.TokenizationStoreOperationTypeEnum",
result_1.Result.Valid,
result_1.Result.Invalid,
result_1.Result.Unknown,
"RivertyDetails.TypeEnum",
"SamsungPayDetails.FundingSourceEnum",
"SamsungPayDetails.TypeEnum",
"SepaDirectDebitDetails.TypeEnum",
"SessionResultResponse.StatusEnum",
"Split.TypeEnum",
"StandalonePaymentCancelResponse.StatusEnum",
"StoredPaymentMethodDetails.TypeEnum",
"StoredPaymentMethodRequest.RecurringProcessingModelEnum",
"ThreeDS2RequestData.AcctTypeEnum",
"ThreeDS2RequestData.AddrMatchEnum",
"ThreeDS2RequestData.ChallengeIndicatorEnum",
"ThreeDS2RequestData.ThreeDSRequestorChallengeIndEnum",
"ThreeDS2RequestData.TransTypeEnum",
"ThreeDS2RequestData.TransactionTypeEnum",
"ThreeDS2RequestFields.AcctTypeEnum",
"ThreeDS2RequestFields.AddrMatchEnum",
"ThreeDS2RequestFields.ChallengeIndicatorEnum",
"ThreeDS2RequestFields.ThreeDSRequestorChallengeIndEnum",
"ThreeDS2RequestFields.TransTypeEnum",
"ThreeDS2RequestFields.TransactionTypeEnum",
"ThreeDS2Result.ChallengeCancelEnum",
"ThreeDS2Result.ExemptionIndicatorEnum",
"ThreeDS2Result.ThreeDSRequestorChallengeIndEnum",
"ThreeDSRequestData.ChallengeWindowSizeEnum",
"ThreeDSRequestData.DataOnlyEnum",
"ThreeDSRequestData.NativeThreeDSEnum",
"ThreeDSRequestData.ThreeDSVersionEnum",
"ThreeDSRequestorAuthenticationInfo.ThreeDSReqAuthMethodEnum",
"ThreeDSRequestorPriorAuthenticationInfo.ThreeDSReqPriorAuthMethodEnum",
"ThreeDSecureData.AuthenticationResponseEnum",
"ThreeDSecureData.ChallengeCancelEnum",
"ThreeDSecureData.DirectoryResponseEnum",
"TwintDetails.TypeEnum",
"UpdatePaymentLinkRequest.StatusEnum",
"UpiCollectDetails.TypeEnum",
"UpiIntentDetails.TypeEnum",
"UpiQrDetails.TypeEnum",
"VippsDetails.TypeEnum",
"VisaCheckoutDetails.FundingSourceEnum",
"VisaCheckoutDetails.TypeEnum",
"WeChatPayDetails.TypeEnum",
"WeChatPayMiniProgramDetails.TypeEnum",
"ZipDetails.TypeEnum",
]);
let typeMap = {
"AccountInfo": accountInfo_1.AccountInfo,
"AcctInfo": acctInfo_1.AcctInfo,
"AchDetails": achDetails_1.AchDetails,
"AdditionalData3DSecure": additionalData3DSecure_1.AdditionalData3DSecure,
"AdditionalDataAirline": additionalDataAirline_1.AdditionalDataAirline,
"AdditionalDataCarRental": additionalDataCarRental_1.AdditionalDataCarRental,
"AdditionalDataCommon": additionalDataCommon_1.AdditionalDataCommon,
"AdditionalDataLevel23": additionalDataLevel23_1.AdditionalDataLevel23,
"AdditionalDataLodging": additionalDataLodging_1.AdditionalDataLodging,
"AdditionalDataOpenInvoice": additionalDataOpenInvoice_1.AdditionalDataOpenInvoice,
"AdditionalDataOpi": additionalDataOpi_1.AdditionalDataOpi,
"AdditionalDataRatepay": additionalDataRatepay_1.AdditionalDataRatepay,
"AdditionalDataRetry": additionalDataRetry_1.AdditionalDataRetry,
"AdditionalDataRisk": additionalDataRisk_1.AdditionalDataRisk,
"AdditionalDataRiskStandalone": additionalDataRiskStandalone_1.AdditionalDataRiskStandalone,
"AdditionalDataSubMerchant": additionalDataSubMerchant_1.AdditionalDataSubMerchant,
"AdditionalDataTemporaryServices": additionalDataTemporaryServices_1.AdditionalDataTemporaryServices,
"AdditionalDataWallets": additionalDataWallets_1.AdditionalDataWallets,
"Address": address_1.Address,
"AffirmDetails": affirmDetails_1.AffirmDetails,
"AfterpayDetails": afterpayDetails_1.AfterpayDetails,
"Agency": agency_1.Agency,
"Airline": airline_1.Airline,
"AmazonPayDetails": amazonPayDetails_1.AmazonPayDetails,
"Amount": amount_1.Amount,
"Amounts": amounts_1.Amounts,
"AncvDetails": ancvDetails_1.AncvDetails,
"AndroidPayDetails": androidPayDetails_1.AndroidPayDetails,
"ApplePayDetails": applePayDetails_1.ApplePayDetails,
"ApplePayDonations": applePayDonations_1.ApplePayDonations,
"ApplePaySessionRequest": applePaySessionRequest_1.ApplePaySessionRequest,
"ApplePaySessionResponse": applePaySessionResponse_1.ApplePaySessionResponse,
"ApplicationInfo": applicationInfo_1.ApplicationInfo,
"AuthenticationData": authenticationData_1.AuthenticationData,
"BacsDirectDebitDetails": bacsDirectDebitDetails_1.BacsDirectDebitDetails,
"BalanceCheckRequest": balanceCheckRequest_1.BalanceCheckRequest,
"BalanceCheckResponse": balanceCheckResponse_1.BalanceCheckResponse,
"BillDeskDetails": billDeskDetails_1.BillDeskDetails,
"BillingAddress": billingAddress_1.BillingAddress,
"BlikDetails": blikDetails_1.BlikDetails,
"BrowserInfo": browserInfo_1.BrowserInfo,
"CancelOrderRequest": cancelOrderRequest_1.CancelOrderRequest,
"CancelOrderResponse": cancelOrderResponse_1.CancelOrderResponse,
"CardBrandDetails": cardBrandDetails_1.CardBrandDetails,
"CardDetails": cardDetails_1.CardDetails,
"CardDetailsRequest": cardDetailsRequest_1.CardDetailsRequest,
"CardDetailsResponse": cardDetailsResponse_1.CardDetailsResponse,
"CardDonations": cardDonations_1.CardDonations,
"CashAppDetails": cashAppDetails_1.CashAppDetails,
"CellulantDetails": cellulantDetails_1.CellulantDetails,
"CheckoutAwaitAction": checkoutAwaitAction_1.CheckoutAwaitAction,
"CheckoutBankAccount": checkoutBankAccount_1.CheckoutBankAccount,
"CheckoutBankTransferAction": checkoutBankTransferAction_1.CheckoutBankTransferAction,
"CheckoutDelegatedAuthenticationAction": checkoutDelegatedAuthenticationAction_1.CheckoutDelegatedAuthenticationAction,
"CheckoutNativeRedirectAction": checkoutNativeRedirectAction_1.CheckoutNativeRedirectAction,
"CheckoutOrderResponse": checkoutOrderResponse_1.CheckoutOrderResponse,
"CheckoutQrCodeAction": checkoutQrCodeAction_1.CheckoutQrCodeAction,
"CheckoutRedirectAction": checkoutRedirectAction_1.CheckoutRedirectAction,
"CheckoutSDKAction": checkoutSDKAction_1.CheckoutSDKAction,
"CheckoutSessionInstallmentOption": checkoutSessionInstallmentOption_1.CheckoutSessionInstallmentOption,
"CheckoutSessionThreeDS2RequestData": checkoutSessionThreeDS2RequestData_1.CheckoutSessionThreeDS2RequestData,
"CheckoutThreeDS2Action": checkoutThreeDS2Action_1.CheckoutThreeDS2Action,
"CheckoutVoucherAction": checkoutVoucherAction_1.CheckoutVoucherAction,
"CommonField": commonField_1.CommonField,
"Company": company_1.Company,
"CreateCheckoutSessionRequest": createCheckoutSessionRequest_1.CreateCheckoutSessionRequest,
"CreateCheckoutSessionResponse": createCheckoutSessionResponse_1.CreateCheckoutSessionResponse,
"CreateOrderRequest": createOrderRequest_1.CreateOrderRequest,
"CreateOrderResponse": createOrderResponse_1.CreateOrderResponse,
"DefaultErrorResponseEntity": defaultErrorResponseEntity_1.DefaultErrorResponseEntity,
"DeliveryAddress": deliveryAddress_1.DeliveryAddress,
"DeliveryMethod": deliveryMethod_1.DeliveryMethod,
"DetailsRequestAuthenticationData": detailsRequestAuthenticationData_1.DetailsRequestAuthenticationData,
"DeviceRenderOptions": deviceRenderOptions_1.DeviceRenderOptions,
"DokuDetails": dokuDetails_1.DokuDetails,
"Donation": donation_1.Donation,
"DonationCampaign": donationCampaign_1.DonationCampaign,
"DonationCampaignsRequest": donationCampaignsRequest_1.DonationCampaignsRequest,
"DonationCampaignsResponse": donationCampaignsResponse_1.DonationCampaignsResponse,
"DonationPaymentRequest": donationPaymentRequest_1.DonationPaymentRequest,
"DonationPaymentRequestPaymentMethod": donationPaymentRequestPaymentMethod_1.DonationPaymentRequestPaymentMethodClass,
"DonationPaymentResponse": donationPaymentResponse_1.DonationPaymentResponse,
"DragonpayDetails": dragonpayDetails_1.DragonpayDetails,
"EBankingFinlandDetails": eBankingFinlandDetails_1.EBankingFinlandDetails,
"EcontextVoucherDetails": econtextVoucherDetails_1.EcontextVoucherDetails,
"EftDetails": eftDetails_1.EftDetails,
"EncryptedOrderData": encryptedOrderData_1.EncryptedOrderData,
"EnhancedSchemeData": enhancedSchemeData_1.EnhancedSchemeData,
"ExternalPlatform": externalPlatform_1.ExternalPlatform,
"FastlaneDetails": fastlaneDetails_1.FastlaneDetails,
"ForexQuote": forexQuote_1.ForexQuote,
"FraudCheckResult": fraudCheckResult_1.FraudCheckResult,
"FraudResult": fraudResult_1.FraudResult,
"FundOrigin": fundOrigin_1.FundOrigin,
"FundRecipient": fundRecipient_1.FundRecipient,
"GenericIssuerPaymentMethodDetails": genericIssuerPaymentMethodDetails_1.GenericIssuerPaymentMethodDetails,
"GooglePayDetails": googlePayDetails_1.GooglePayDetails,
"GooglePayDonations": googlePayDonations_1.GooglePayDonations,
"IdealDetails": idealDetails_1.IdealDetails,
"IdealDonations": idealDonations_1.IdealDonations,
"InputDetail": inputDetail_1.InputDetail,
"InstallmentOption": installmentOption_1.InstallmentOption,
"Installments": installments_1.Installments,
"InvalidField": invalidField_1.InvalidField,
"Item": item_1.Item,
"KlarnaDetails": klarnaDetails_1.KlarnaDetails,
"Leg": leg_1.Leg,
"LineItem": lineItem_1.LineItem,
"ListStoredPaymentMethodsResponse": listStoredPaymentMethodsResponse_1.ListStoredPaymentMethodsResponse,
"Mandate": mandate_1.Mandate,
"MasterpassDetails": masterpassDetails_1.MasterpassDetails,
"MbwayDetails": mbwayDetails_1.MbwayDetails,
"MerchantDevice": merchantDevice_1.MerchantDevice,
"MerchantRiskIndicator": merchantRiskIndicator_1.MerchantRiskIndicator,
"MobilePayDetails": mobilePayDetails_1.MobilePayDetails,
"MolPayDetails": molPayDetails_1.MolPayDetails,
"Name": name_1.Name,
"OpenInvoiceDetails": openInvoiceDetails_1.OpenInvoiceDetails,
"Passenger": passenger_1.Passenger,
"PayByBankAISDirectDebitDetails": payByBankAISDirectDebitDetails_1.PayByBankAISDirectDebitDetails,
"PayByBankDetails": payByBankDetails_1.PayByBankDetails,
"PayPalDetails": payPalDetails_1.PayPalDetails,
"PayPayDetails": payPayDetails_1.PayPayDetails,
"PayToDetails": payToDetails_1.PayToDetails,
"PayToPaymentMethod": payToPaymentMethod_1.PayToPaymentMethod,
"PayUUpiDetails": payUUpiDetails_1.PayUUpiDetails,
"PayWithGoogleDetails": payWithGoogleDetails_1.PayWithGoogleDetails,
"PayWithGoogleDonations": payWithGoogleDonations_1.PayWithGoogleDonations,
"Payment": payment_1.Payment,
"PaymentAmountUpdateRequest": paymentAmountUpdateRequest_1.PaymentAmountUpdateRequest,
"PaymentAmountUpdateResponse": paymentAmountUpdateResponse_1.PaymentAmountUpdateResponse,
"PaymentCancelRequest": paymentCancelRequest_1.PaymentCancelRequest,
"PaymentCancelResponse": paymentCancelResponse_1.PaymentCancelResponse,
"PaymentCaptureRequest": paymentCaptureRequest_1.PaymentCaptureRequest,
"PaymentCaptureResponse": paymentCaptureResponse_1.PaymentCaptureResponse,
"PaymentCompletionDetails": paymentCompletionDetails_1.PaymentCompletionDetails,
"PaymentDetails": paymentDetails_1.PaymentDetails,
"PaymentDetailsRequest": paymentDetailsRequest_1.PaymentDetailsRequest,
"PaymentDetailsResponse": paymentDetailsResponse_1.PaymentDetailsResponse,
"PaymentLinkRequest": paymentLinkRequest_1.PaymentLinkRequest,
"PaymentLinkResponse": paymentLinkResponse_1.PaymentLinkResponse,
"PaymentMethod": paymentMethod_1.PaymentMethod,
"PaymentMethodGroup": paymentMethodGroup_1.PaymentMethodGroup,
"PaymentMethodIssuer": paymentMethodIssuer_1.PaymentMethodIssuer,
"PaymentMethodToStore": paymentMethodToStore_1.PaymentMethodToStore,
"PaymentMethodUPIApps": paymentMethodUPIApps_1.PaymentMethodUPIApps,
"PaymentMethodsRequest": paymentMethodsRequest_1.PaymentMethodsRequest,
"PaymentMethodsResponse": paymentMethodsResponse_1.PaymentMethodsResponse,
"PaymentRefundRequest": paymentRefundRequest_1.PaymentRefundRequest,
"PaymentRefundResponse": paymentRefundResponse_1.PaymentRefundResponse,
"PaymentRequest": paymentRequest_1.PaymentRequest,
"PaymentRequestPaymentMethod": paymentRequestPaymentMethod_1.PaymentRequestPaymentMethodClass,
"PaymentResponse": paymentResponse_1.PaymentResponse,
"PaymentResponseAction": paymentResponseAction_1.PaymentResponseActionClass,
"PaymentReversalRequest": paymentReversalRequest_1.PaymentReversalRequest,
"PaymentReversalResponse": paymentReversalResponse_1.PaymentReversalResponse,
"PaypalUpdateOrderRequest": paypalUpdateOrderRequest_1.PaypalUpdateOrderRequest,
"PaypalUpdateOrderResponse": paypalUpdateOrderResponse_1.PaypalUpdateOrderResponse,
"Phone": phone_1.Phone,
"PixDetails": pixDetails_1.PixDetails,
"PixRecurring": pixRecurring_1.PixRecurring,
"PlatformChargebackLogic": platformChargebackLogic_1.PlatformChargebackLogic,
"PseDetails": pseDetails_1.PseDetails,
"RakutenPayDetails": rakutenPayDetails_1.RakutenPayDetails,
"RatepayDetails": ratepayDetails_1.RatepayDetails,
"Recurring": recurring_1.Recurring,
"ResponseAdditionalData3DSecure": responseAdditionalData3DSecure_1.ResponseAdditionalData3DSecure,
"ResponseAdditionalDataBillingAddress": responseAdditionalDataBillingAddress_1.ResponseAdditionalDataBillingAddress,
"ResponseAdditionalDataCard": responseAdditionalDataCard_1.ResponseAdditionalDataCard,
"ResponseAdditionalDataCommon": responseAdditionalDataCommon_1.ResponseAdditionalDataCommon,
"ResponseAdditionalDataDomesticError": responseAdditionalDataDomesticError_1.ResponseAdditionalDataDomesticError,
"ResponseAdditionalDataInstallments": responseAdditionalDataInstallments_1.ResponseAdditionalDataInstallments,
"ResponseAdditionalDataNetworkTokens": responseAdditionalDataNetworkTokens_1.ResponseAdditionalDataNetworkTokens,
"ResponseAdditionalDataOpi": responseAdditionalDataOpi_1.ResponseAdditionalDataOpi,
"ResponseAdditionalDataSepa": responseAdditionalDataSepa_1.ResponseAdditionalDataSepa,
"ResponseAdditionalDataSwish": responseAdditionalDataSwish_1.ResponseAdditionalDataSwish,
"ResponsePaymentMethod": responsePaymentMethod_1.ResponsePaymentMethod,
"RiskData": riskData_1.RiskData,
"RivertyDetails": rivertyDetails_1.RivertyDetails,
"SDKEphemPubKey": sDKEphemPubKey_1.SDKEphemPubKey,
"SamsungPayDetails": samsungPayDetails_1.SamsungPayDetails,
"SepaDirectDebitDetails": sepaDirectDebitDetails_1.SepaDirectDebitDetails,
"ServiceError": serviceError_1.ServiceError,
"SessionResultResponse": sessionResultResponse_1.SessionResultResponse,
"ShopperIdPaymentMethod": shopperIdPaymentMethod_1.ShopperIdPaymentMethod,
"ShopperInteractionDevice": shopperInteractionDevice_1.ShopperInteractionDevice,
"ShopperName": shopperName_1.ShopperName,
"Split": split_1.Split,
"SplitAmount": splitAmount_1.SplitAmount,
"StandalonePaymentCancelRequest": standalonePaymentCancelRequest_1.StandalonePaymentCancelRequest,
"StandalonePaymentCancelResponse": standalonePaymentCancelResponse_1.StandalonePaymentCancelResponse,
"StoredPaymentMethod": storedPaymentMethod_1.StoredPaymentMethod,
"StoredPaymentMethodDetails": storedPaymentMethodDetails_1.StoredPaymentMethodDetails,
"StoredPaymentMethodRequest": storedPaymentMethodRequest_1.StoredPaymentMethodRequest,
"StoredPaymentMethodResource": storedPaymentMethodResource_1.StoredPaymentMethodResource,
"SubInputDetail": subInputDetail_1.SubInputDetail,
"SubMerchant": subMerchant_1.SubMerchant,
"SubMerchantInfo": subMerchantInfo_1.SubMerchantInfo,
"Surcharge": surcharge_1.Surcharge,
"TaxTotal": taxTotal_1.TaxTotal,
"ThreeDS2RequestData": threeDS2RequestData_1.ThreeDS2RequestData,
"ThreeDS2RequestFields": threeDS2RequestFields_1.ThreeDS2RequestFields,
"ThreeDS2ResponseData": threeDS2ResponseData_1.ThreeDS2ResponseData,
"ThreeDS2Result": threeDS2Result_1.ThreeDS2Result,
"ThreeDSRequestData": threeDSRequestData_1.ThreeDSRequestData,
"ThreeDSRequestorAuthenticationInfo": threeDSRequestorAuthenticationInfo_1.ThreeDSRequestorAuthenticationInfo,
"ThreeDSRequestorPriorAuthenticationInfo": threeDSRequestorPriorAuthenticationInfo_1.ThreeDSRequestorPriorAuthenticationInfo,
"ThreeDSecureData": threeDSecureData_1.ThreeDSecureData,
"Ticket": ticket_1.Ticket,
"TravelAgency": travelAgency_1.TravelAgency,
"TwintDetails": twintDetails_1.TwintDetails,
"UPIPaymentMethod": uPIPaymentMethod_1.UPIPaymentMethod,
"UpdatePaymentLinkRequest": updatePaymentLinkRequest_1.UpdatePaymentLinkRequest,
"UpiCollectDetails": upiCollectDetails_1.UpiCollectDetails,
"UpiIntentDetails": upiIntentDetails_1.UpiIntentDetails,
"UpiQrDetails": upiQrDetails_1.UpiQrDetails,
"UtilityRequest": utilityRequest_1.UtilityRequest,
"UtilityResponse": utilityResponse_1.UtilityResponse,
"ValidateShopperIdRequest": validateShopperIdRequest_1.ValidateShopperIdRequest,
"ValidateShopperIdResponse": validateShopperIdResponse_1.ValidateShopperIdResponse,
"VippsDetails": vippsDetails_1.VippsDetails,
"VisaCheckoutDetails": visaCheckoutDetails_1.VisaCheckoutDetails,
"WeChatPayDetails": weChatPayDetails_1.WeChatPayDetails,
"WeChatPayMiniProgramDetails": weChatPayMiniProgramDetails_1.WeChatPayMiniProgramDetails,
"ZipDetails": zipDetails_1.ZipDetails,
};
/**
* Every mime-type consists of a type, subtype, and optional parameters.
* The subtype can be composite, including information about the content format.
* For example: `application/json-patch+json`, `application/merge-patch+json`.
*
* This helper transforms a string mime-type into an internal representation.
* This simplifies the implementation of predicates that in turn define common rules for parsing or stringifying
* the payload.
*/
const parseMimeType = (mimeType) => {
const [type = '', subtype = ''] = mimeType.split('/');
return {
type,
subtype,
subtypeTokens: subtype.split('+'),
};
};
// This factory creates a predicate function that checks a string mime-type against defined rules.
const mimeTypePredicateFactory = (predicate) => (mimeType) => predicate(parseMimeType(mimeType));
// Use this factory when you need to define a simple predicate based only on type and, if applicable, subtype.
const mimeTypeSimplePredicateFactory = (type, subtype) => mimeTypePredicateFactory((descriptor) => {
if (descriptor.type !== type)
return false;
if (subtype != null && descriptor.subtype !== subtype)
return false;
return true;
});
// Creating a set of named predicates that will help us determine how to handle different mime-types
const isTextLikeMimeType = mimeTypeSimplePredicateFactory('text');
const isJsonMimeType = mimeTypeSimplePredicateFactory('application', 'json');
const isJsonLikeMimeType = mimeTypePredicateFactory((descriptor) => descriptor.type === 'application' && descriptor.subtypeTokens.some((item) => item === 'json'));
const isOctetStreamMimeType = mimeTypeSimplePredicateFactory('application', 'octet-stream');
const isFormUrlencodedMimeType = mimeTypeSimplePredicateFactory('application', 'x-www-form-urlencoded');
// Defining a list of mime-types in the order of prioritization for handling.
const supportedMimeTypePredicatesWithPriority = [
isJsonMimeType,
isJsonLikeMimeType,
isTextLikeMimeType,
isOctetStreamMimeType,
isFormUrlencodedMimeType,
];
const nullableSuffix = " | null";
const optionalSuffix = " | undefined";
const arrayPrefix = "Array<";
const arraySuffix = ">";
const mapPrefix = "{ [key: string]: ";
const mapSuffix = "; }";
class ObjectSerializer {
static findCorrectType(data, expectedType) {
if (data == undefined) {
return expectedType;
}
else if (primitives.indexOf(expectedType.toLowerCase()) !== -1) {
return expectedType;
}
else if (expectedType === "Date") {
return expectedType;
}
else {
if (enumsMap.has(expectedType)) {
return expectedType;
}
if (!typeMap[expectedType]) {
return expectedType; // w/e we don't know the type
}
// Check the discriminator
let discriminatorProperty = typeMap[expectedType].discriminator;
if (discriminatorProperty == null) {
return expectedType; // the type does not have a discriminator. use it.
}
else {
if (data[discriminatorProperty]) {
var discriminatorType = data[discriminatorProperty];
let mapping = typeMap[expectedType].mapping;
if (mapping != undefined && mapping[discriminatorType]) {
return mapping[discriminatorType]; // use the type given in the discriminator
}
else if (typeMap[discriminatorType]) {
return discriminatorType;
}
else {
return expectedType; // discriminator did not map to a type
}
}
else {
return expectedType; // discriminator was not present (or an empty string)
}
}
}
}
/**
* Serializes a value into a plain JSON-compatible object based on its type.
*
* Supports primitives, arrays, maps, dates, enums, and classes defined in `typeMap`.
* Falls back to raw data if type is unknown or lacks `getAttributeTypeMap()`.
*
* @param data - The value to serialize.
* @param type - The expected type name as a string.
* @param format - Format hint (e.g. "date" or "date-time"). Default is an empty string.
* @returns A JSON-compatible representation of `data`.
*/
static serialize(data, type, format = "") {
if (data == undefined) {
return data;
}
else if (primitives.indexOf(type.toLowerCase()) !== -1) {
return data;
}
else if (type.endsWith(nullableSuffix)) {
let subType = type.slice(0, -nullableSuffix.length); // Type | null => Type
return ObjectSerializer.serialize(data, subType, format);
}
else if (type.endsWith(optionalSuffix)) {
let subType = type.slice(0, -optionalSuffix.length); // Type | undefined => Type
return ObjectSerializer.serialize(data, subType, format);
}
else if (type.startsWith(arrayPrefix)) {
let subType = type.slice(arrayPrefix.length, -arraySuffix.length); // Array<Type> => Type
let transformedData = [];
for (let date of data) {
transformedData.push(ObjectSerializer.serialize(date, subType, format));
}
return transformedData;
}
else if (type.startsWith(mapPrefix)) {
let subType = type.slice(mapPrefix.length, -mapSuffix.length); // { [key: string]: Type; } => Type
let transformedData = {};
for (let key in data) {
transformedData[key] = ObjectSerializer.serialize(data[key], subType, format);
}
return transformedData;
}
else if (type === "Date") {
if (format == "date") {
let month = data.getMonth() + 1;
month = month < 10 ? "0" + month.toString() : month.toString();
let day = data.getDate();
day = day < 10 ? "0" + day.toString() : day.toString();
return data.getFullYear() + "-" + month + "-" + day;
}
else {
return data.toISOString();
}
}
else {
if (enumsMap.has(type)) {
return data;
}
if (!typeMap[type]) { // in case we dont know the type
return data;
}
// Get the actual type of this object
type = this.findCorrectType(data, type);
const clazz = typeMap[type];
// Safe check for getAttributeTypeMap
if (typeof clazz.getAttributeTypeMap !== "function") {
return { ...data }; // fallback: shallow copy
}
// get the map for the correct type.
let attributeTypes = typeMap[type].getAttributeTypeMap();
let instance = {};
for (let attributeType of attributeTypes) {
instance[attributeType.baseName] = ObjectSerializer.serialize(data[attributeType.name], attributeType.type, attributeType.format);
}
return instance;
}
}
/**
* Deserializes a plain JSON-compatible object into a typed instance.
*
* Handles primitives, arrays, maps, dates, enums, and known classes from `typeMap`.
* Uses discriminators when available to resolve polymorphic types.
* Falls back to raw data if the type is unknown or lacks `getAttributeTypeMap()`.
*
* @param data - The raw input to deserialize.
* @param type - The expected type name as a string.
* @param format - Format hint (e.g. "date" or "date-time"). Default is an empty string.
* @returns A deserialized instance or value of `data`.
*/
static deserialize(data, type, format = "") {
// polymorphism may change the actual type.
type = ObjectSerializer.findCorrectType(data, type);
if (data == undefined) {
return data;
}
else if (primitives.indexOf(type.toLowerCase()) !== -1) {
return data;
}
else if (type.endsWith(nullableSuffix)) {
let subType = type.slice(0, -nullableSuffix.length); // Type | null => Type
return ObjectSerializer.deserialize(data, subType, format);
}
else if (type.endsWith(optionalSuffix)) {
let subType = type.slice(0, -optionalSuffix.length); // Type | undefined => Type
return ObjectSerializer.deserialize(data, subType, format);
}
else if (type.startsWith(arrayPrefix)) {
let subType = type.slice(arrayPrefix.length, -arraySuffix.length); // Array<Type> => Type
let transformedData = [];
for (let date of data) {
transformedData.push(ObjectSerializer.deserialize(date, subType, format));
}
return transformedData;
}
else if (type.startsWith(mapPrefix)) {
let subType = type.slice(mapPrefix.length, -mapSuffix.length); // { [key: string]: Type; } => Type
let transformedData = {};
for (let key in data) {
transformedData[key] = ObjectSerializer.deserialize(data[key], subType, format);
}
return transformedData;
}
else if (type === "Date") {
return new Date(data);
}
else {
if (enumsMap.has(type)) { // is Enum
return data;
}
if (!typeMap[type]) { // dont know the type
return data;
}
let instance = new typeMap[type]();
// Safe check for getAttributeTypeMap
if (typeof typeMap[type].getAttributeTypeMap !== "function") {
Object.assign(instance, data); // fallback: shallow copy
return instance;
}
let attributeTypes = typeMap[type].getAttributeTypeMap();
for (let attributeType of attributeTypes) {
let value = ObjectSerializer.deserialize(data[attributeType.baseName], attributeType.type, attributeType.format);
if (value !== undefined) {
instance[attributeType.name] = value;
}
}
return instance;
}
}
/**
* Normalize media type
*
* We currently do not handle any media types attributes, i.e. anything
* after a semicolon. All content is assumed to be UTF-8 compatible.
*/
static normalizeMedi