UNPKG

@adyen/api-library

Version:

The Adyen API Library for NodeJS enables you to work with Adyen APIs.

632 lines 29.2 kB
"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 abortRequest_1 = require("./abortRequest"); const adminRequest_1 = require("./adminRequest"); const adminResponse_1 = require("./adminResponse"); const amountsReq_1 = require("./amountsReq"); const amountsResp_1 = require("./amountsResp"); const areaSize_1 = require("./areaSize"); const balanceInquiryRequest_1 = require("./balanceInquiryRequest"); const balanceInquiryResponse_1 = require("./balanceInquiryResponse"); const capturedSignature_1 = require("./capturedSignature"); const cardAcquisitionRequest_1 = require("./cardAcquisitionRequest"); const cardAcquisitionResponse_1 = require("./cardAcquisitionResponse"); const cardAcquisitionTransaction_1 = require("./cardAcquisitionTransaction"); const cardData_1 = require("./cardData"); const cardHolderPIN_1 = require("./cardHolderPIN"); const cardReaderAPDURequest_1 = require("./cardReaderAPDURequest"); const cardReaderAPDUResponse_1 = require("./cardReaderAPDUResponse"); const checkData_1 = require("./checkData"); const convertedAmount_1 = require("./convertedAmount"); const currencyConversion_1 = require("./currencyConversion"); const diagnosisRequest_1 = require("./diagnosisRequest"); const diagnosisResponse_1 = require("./diagnosisResponse"); const displayOutput_1 = require("./displayOutput"); const displayRequest_1 = require("./displayRequest"); const displayResponse_1 = require("./displayResponse"); const enableServiceRequest_1 = require("./enableServiceRequest"); const enableServiceResponse_1 = require("./enableServiceResponse"); const eventNotification_1 = require("./eventNotification"); const geographicCoordinates_1 = require("./geographicCoordinates"); const geolocation_1 = require("./geolocation"); const getTotalsRequest_1 = require("./getTotalsRequest"); const getTotalsResponse_1 = require("./getTotalsResponse"); const hostStatus_1 = require("./hostStatus"); const iCCResetData_1 = require("./iCCResetData"); const input_1 = require("./input"); const inputData_1 = require("./inputData"); const inputRequest_1 = require("./inputRequest"); const inputResponse_1 = require("./inputResponse"); const inputResult_1 = require("./inputResult"); const inputUpdate_1 = require("./inputUpdate"); const instalment_1 = require("./instalment"); const loginRequest_1 = require("./loginRequest"); const loginResponse_1 = require("./loginResponse"); const logoutRequest_1 = require("./logoutRequest"); const logoutResponse_1 = require("./logoutResponse"); const loyaltyAccount_1 = require("./loyaltyAccount"); const loyaltyAccountID_1 = require("./loyaltyAccountID"); const loyaltyAccountReq_1 = require("./loyaltyAccountReq"); const loyaltyAcquirerData_1 = require("./loyaltyAcquirerData"); const loyaltyData_1 = require("./loyaltyData"); const loyaltyResponse_1 = require("./loyaltyResponse"); const loyaltyResult_1 = require("./loyaltyResult"); const menuEntry_1 = require("./menuEntry"); const messageHeader_1 = require("./messageHeader"); const messageReference_1 = require("./messageReference"); const mobileData_1 = require("./mobileData"); const originalPOITransaction_1 = require("./originalPOITransaction"); const outputBarcode_1 = require("./outputBarcode"); const outputContent_1 = require("./outputContent"); const outputResult_1 = require("./outputResult"); const outputText_1 = require("./outputText"); const pOIData_1 = require("./pOIData"); const pOISoftware_1 = require("./pOISoftware"); const pOIStatus_1 = require("./pOIStatus"); const pOISystemData_1 = require("./pOISystemData"); const paymentAccountReq_1 = require("./paymentAccountReq"); const paymentAccountStatus_1 = require("./paymentAccountStatus"); const paymentAcquirerData_1 = require("./paymentAcquirerData"); const paymentData_1 = require("./paymentData"); const paymentInstrumentData_1 = require("./paymentInstrumentData"); const paymentReceipt_1 = require("./paymentReceipt"); const paymentRequest_1 = require("./paymentRequest"); const paymentResponse_1 = require("./paymentResponse"); const paymentResult_1 = require("./paymentResult"); const paymentToken_1 = require("./paymentToken"); const paymentTotals_1 = require("./paymentTotals"); const paymentTransaction_1 = require("./paymentTransaction"); const performedTransaction_1 = require("./performedTransaction"); const point_1 = require("./point"); const predefinedContent_1 = require("./predefinedContent"); const printOutput_1 = require("./printOutput"); const printRequest_1 = require("./printRequest"); const printResponse_1 = require("./printResponse"); const reconciliationRequest_1 = require("./reconciliationRequest"); const reconciliationResponse_1 = require("./reconciliationResponse"); const repeatedMessageResponse_1 = require("./repeatedMessageResponse"); const repeatedResponseMessageBody_1 = require("./repeatedResponseMessageBody"); const response_1 = require("./response"); const reversalRequest_1 = require("./reversalRequest"); const reversalResponse_1 = require("./reversalResponse"); const saleData_1 = require("./saleData"); const saleSoftware_1 = require("./saleSoftware"); const saleTerminalData_1 = require("./saleTerminalData"); const saleToIssuerData_1 = require("./saleToIssuerData"); const saleToPOIRequest_1 = require("./saleToPOIRequest"); const saleToPOIResponse_1 = require("./saleToPOIResponse"); const securityTrailer_1 = require("./securityTrailer"); const sensitiveCardData_1 = require("./sensitiveCardData"); const sensitiveMobileData_1 = require("./sensitiveMobileData"); const soundContent_1 = require("./soundContent"); const storedValueAccountID_1 = require("./storedValueAccountID"); const storedValueAccountStatus_1 = require("./storedValueAccountStatus"); const storedValueData_1 = require("./storedValueData"); const storedValueRequest_1 = require("./storedValueRequest"); const storedValueResponse_1 = require("./storedValueResponse"); const storedValueResult_1 = require("./storedValueResult"); const terminalAPIRequest_1 = require("./terminalAPIRequest"); const terminalAPIResponse_1 = require("./terminalAPIResponse"); const totalFilter_1 = require("./totalFilter"); const trackData_1 = require("./trackData"); const transactionConditions_1 = require("./transactionConditions"); const transactionIDType_1 = require("./transactionIDType"); const transactionStatusRequest_1 = require("./transactionStatusRequest"); const transactionStatusResponse_1 = require("./transactionStatusResponse"); const transactionTotals_1 = require("./transactionTotals"); const uTMCoordinates_1 = require("./uTMCoordinates"); /* tslint:disable:no-unused-variable */ let primitives = [ "string", "boolean", "double", "integer", "long", "float", "number", "any" ]; let enumsMap = new Set([ "AccountType", "Alignment", "CardAcquisitionTransaction.ForceEntryModeEnum", "CardData.EntryModeEnum", "CharacterHeight", "CharacterStyle", "CharacterWidth", "Device", "DocumentQualifier", "EnableServiceRequest.ServicesEnabledEnum", "ErrorCondition", "EventToNotify", "GetTotalsRequest.TotalDetailsEnum", "GlobalStatus", "IdentificationSupport", "IdentificationType", "InfoQualify", "InputCommand", "InstalmentType", "LoginRequest.CustomerOrderReqEnum", "LoyaltyAccountID.EntryModeEnum", "LoyaltyHandling", "MenuEntryTag", "MessageCategory", "MessageClass", "MessageType", "OutputFormat", "PINFormat", "PINRequestType", "PaymentInstrumentType", "PaymentResult.AuthenticationMethodEnum", "PaymentType", "PeriodUnit", "PrinterStatus", "ReconciliationType", "ResponseMode", "Result", "ReversalReason", "SaleData.CustomerOrderReqEnum", "SoundAction", "SoundFormat", "StoredValueAccountID.EntryModeEnum", "StoredValueAccountType", "StoredValueTransactionType", "TokenRequestedType", "TrackFormat", "TransactionAction", "TransactionConditions.ForceEntryModeEnum", "TransactionType", "TypeCode", ]); let typeMap = { "AbortRequest": abortRequest_1.AbortRequest, "AdminRequest": adminRequest_1.AdminRequest, "AdminResponse": adminResponse_1.AdminResponse, "AmountsReq": amountsReq_1.AmountsReq, "AmountsResp": amountsResp_1.AmountsResp, "AreaSize": areaSize_1.AreaSize, "BalanceInquiryRequest": balanceInquiryRequest_1.BalanceInquiryRequest, "BalanceInquiryResponse": balanceInquiryResponse_1.BalanceInquiryResponse, "CapturedSignature": capturedSignature_1.CapturedSignature, "CardAcquisitionRequest": cardAcquisitionRequest_1.CardAcquisitionRequest, "CardAcquisitionResponse": cardAcquisitionResponse_1.CardAcquisitionResponse, "CardAcquisitionTransaction": cardAcquisitionTransaction_1.CardAcquisitionTransaction, "CardData": cardData_1.CardData, "CardHolderPIN": cardHolderPIN_1.CardHolderPIN, "CardReaderAPDURequest": cardReaderAPDURequest_1.CardReaderAPDURequest, "CardReaderAPDUResponse": cardReaderAPDUResponse_1.CardReaderAPDUResponse, "CheckData": checkData_1.CheckData, "ConvertedAmount": convertedAmount_1.ConvertedAmount, "CurrencyConversion": currencyConversion_1.CurrencyConversion, "DiagnosisRequest": diagnosisRequest_1.DiagnosisRequest, "DiagnosisResponse": diagnosisResponse_1.DiagnosisResponse, "DisplayOutput": displayOutput_1.DisplayOutput, "DisplayRequest": displayRequest_1.DisplayRequest, "DisplayResponse": displayResponse_1.DisplayResponse, "EnableServiceRequest": enableServiceRequest_1.EnableServiceRequest, "EnableServiceResponse": enableServiceResponse_1.EnableServiceResponse, "EventNotification": eventNotification_1.EventNotification, "GeographicCoordinates": geographicCoordinates_1.GeographicCoordinates, "Geolocation": geolocation_1.Geolocation, "GetTotalsRequest": getTotalsRequest_1.GetTotalsRequest, "GetTotalsResponse": getTotalsResponse_1.GetTotalsResponse, "HostStatus": hostStatus_1.HostStatus, "ICCResetData": iCCResetData_1.ICCResetData, "Input": input_1.Input, "InputData": inputData_1.InputData, "InputRequest": inputRequest_1.InputRequest, "InputResponse": inputResponse_1.InputResponse, "InputResult": inputResult_1.InputResult, "InputUpdate": inputUpdate_1.InputUpdate, "Instalment": instalment_1.Instalment, "LoginRequest": loginRequest_1.LoginRequest, "LoginResponse": loginResponse_1.LoginResponse, "LogoutRequest": logoutRequest_1.LogoutRequest, "LogoutResponse": logoutResponse_1.LogoutResponse, "LoyaltyAccount": loyaltyAccount_1.LoyaltyAccount, "LoyaltyAccountID": loyaltyAccountID_1.LoyaltyAccountID, "LoyaltyAccountReq": loyaltyAccountReq_1.LoyaltyAccountReq, "LoyaltyAcquirerData": loyaltyAcquirerData_1.LoyaltyAcquirerData, "LoyaltyData": loyaltyData_1.LoyaltyData, "LoyaltyResponse": loyaltyResponse_1.LoyaltyResponse, "LoyaltyResult": loyaltyResult_1.LoyaltyResult, "MenuEntry": menuEntry_1.MenuEntry, "MessageHeader": messageHeader_1.MessageHeader, "MessageReference": messageReference_1.MessageReference, "MobileData": mobileData_1.MobileData, "OriginalPOITransaction": originalPOITransaction_1.OriginalPOITransaction, "OutputBarcode": outputBarcode_1.OutputBarcode, "OutputContent": outputContent_1.OutputContent, "OutputResult": outputResult_1.OutputResult, "OutputText": outputText_1.OutputText, "POIData": pOIData_1.POIData, "POISoftware": pOISoftware_1.POISoftware, "POIStatus": pOIStatus_1.POIStatus, "POISystemData": pOISystemData_1.POISystemData, "PaymentAccountReq": paymentAccountReq_1.PaymentAccountReq, "PaymentAccountStatus": paymentAccountStatus_1.PaymentAccountStatus, "PaymentAcquirerData": paymentAcquirerData_1.PaymentAcquirerData, "PaymentData": paymentData_1.PaymentData, "PaymentInstrumentData": paymentInstrumentData_1.PaymentInstrumentData, "PaymentReceipt": paymentReceipt_1.PaymentReceipt, "PaymentRequest": paymentRequest_1.PaymentRequest, "PaymentResponse": paymentResponse_1.PaymentResponse, "PaymentResult": paymentResult_1.PaymentResult, "PaymentToken": paymentToken_1.PaymentToken, "PaymentTotals": paymentTotals_1.PaymentTotals, "PaymentTransaction": paymentTransaction_1.PaymentTransaction, "PerformedTransaction": performedTransaction_1.PerformedTransaction, "Point": point_1.Point, "PredefinedContent": predefinedContent_1.PredefinedContent, "PrintOutput": printOutput_1.PrintOutput, "PrintRequest": printRequest_1.PrintRequest, "PrintResponse": printResponse_1.PrintResponse, "ReconciliationRequest": reconciliationRequest_1.ReconciliationRequest, "ReconciliationResponse": reconciliationResponse_1.ReconciliationResponse, "RepeatedMessageResponse": repeatedMessageResponse_1.RepeatedMessageResponse, "RepeatedResponseMessageBody": repeatedResponseMessageBody_1.RepeatedResponseMessageBody, "Response": response_1.Response, "ReversalRequest": reversalRequest_1.ReversalRequest, "ReversalResponse": reversalResponse_1.ReversalResponse, "SaleData": saleData_1.SaleData, "SaleSoftware": saleSoftware_1.SaleSoftware, "SaleTerminalData": saleTerminalData_1.SaleTerminalData, "SaleToIssuerData": saleToIssuerData_1.SaleToIssuerData, "SaleToPOIRequest": saleToPOIRequest_1.SaleToPOIRequest, "SaleToPOIResponse": saleToPOIResponse_1.SaleToPOIResponse, "SecurityTrailer": securityTrailer_1.SecurityTrailer, "SensitiveCardData": sensitiveCardData_1.SensitiveCardData, "SensitiveMobileData": sensitiveMobileData_1.SensitiveMobileData, "SoundContent": soundContent_1.SoundContent, "StoredValueAccountID": storedValueAccountID_1.StoredValueAccountID, "StoredValueAccountStatus": storedValueAccountStatus_1.StoredValueAccountStatus, "StoredValueData": storedValueData_1.StoredValueData, "StoredValueRequest": storedValueRequest_1.StoredValueRequest, "StoredValueResponse": storedValueResponse_1.StoredValueResponse, "StoredValueResult": storedValueResult_1.StoredValueResult, "TerminalAPIRequest": terminalAPIRequest_1.TerminalAPIRequest, "TerminalAPIResponse": terminalAPIResponse_1.TerminalAPIResponse, "TotalFilter": totalFilter_1.TotalFilter, "TrackData": trackData_1.TrackData, "TransactionConditions": transactionConditions_1.TransactionConditions, "TransactionIDType": transactionIDType_1.TransactionIDType, "TransactionStatusRequest": transactionStatusRequest_1.TransactionStatusRequest, "TransactionStatusResponse": transactionStatusResponse_1.TransactionStatusResponse, "TransactionTotals": transactionTotals_1.TransactionTotals, "UTMCoordinates": uTMCoordinates_1.UTMCoordinates, }; /** * 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 setPrefix = "Set<"; 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(setPrefix)) { let subType = type.slice(setPrefix.length, -arraySuffix.length); // Set<Type> => Type let transformedData = []; for (let item of data) { transformedData.push(ObjectSerializer.serialize(item, 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(setPrefix)) { let subType = type.slice(setPrefix.length, -arraySuffix.length); // Set<Type> => Type let transformedData = new Set(); for (let item of data) { transformedData.add(ObjectSerializer.deserialize(item, 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 normalizeMediaType(mediaType) { var _a; if (mediaType === undefined) { return undefined; } return ((_a = mediaType.split(";")[0]) !== null && _a !== void 0 ? _a : '').trim().toLowerCase(); } /** * From a list of possible media types, choose the one we can handle best. * * The order of the given media types does not have any impact on the choice * made. */ static getPreferredMediaType(mediaTypes) { /** According to OAS 3 we should default to json */ if (mediaTypes.length === 0) { return "application/json"; } const normalMediaTypes = mediaTypes.map(ObjectSerializer.normalizeMediaType); for (const predicate of supportedMimeTypePredicatesWithPriority) { for (const mediaType of normalMediaTypes) { if (mediaType != null && predicate(mediaType)) { return mediaType; } } } throw new Error("None of the given media types are supported: " + mediaTypes.join(", ")); } /** * Convert data to a string according the given media type */ static stringify(data, mediaType) { if (isTextLikeMimeType(mediaType)) { return String(data); } if (isJsonLikeMimeType(mediaType)) { return JSON.stringify(data); } throw new Error("The mediaType " + mediaType + " is not supported by ObjectSerializer.stringify."); } /** * Parse data from a string according to the given media type */ static parse(rawData, mediaType) { if (mediaType === undefined) { throw new Error("Cannot parse content. No Content-Type defined."); } if (isTextLikeMimeType(mediaType)) { return rawData; } if (isJsonLikeMimeType(mediaType)) { return JSON.parse(rawData); } throw new Error("The mediaType " + mediaType + " is not supported by ObjectSerializer.parse."); } } exports.ObjectSerializer = ObjectSerializer; //# sourceMappingURL=objectSerializer.js.map