UNPKG

@openweb3-io/waas

Version:

WaaS API client and WaaS verification library

380 lines 17.6 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (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" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ObjectSerializer = void 0; __exportStar(require("../models/Address"), exports); __exportStar(require("../models/AddressValidityItem"), exports); __exportStar(require("../models/Chain"), exports); __exportStar(require("../models/CreateAddressRequest"), exports); __exportStar(require("../models/CreateEndpoint"), exports); __exportStar(require("../models/CreateTokenRequest"), exports); __exportStar(require("../models/CreateTransferRequest"), exports); __exportStar(require("../models/CreateTransferRequestDestination"), exports); __exportStar(require("../models/CreateTransferRequestSource"), exports); __exportStar(require("../models/CreateTransferResponse"), exports); __exportStar(require("../models/CreateWalletRequest"), exports); __exportStar(require("../models/CursorPageAddress"), exports); __exportStar(require("../models/CursorPageChain"), exports); __exportStar(require("../models/CursorPageEndpoint"), exports); __exportStar(require("../models/CursorPageEventType"), exports); __exportStar(require("../models/CursorPageToken"), exports); __exportStar(require("../models/CursorPageTransaction"), exports); __exportStar(require("../models/CursorPageWallet"), exports); __exportStar(require("../models/Endpoint"), exports); __exportStar(require("../models/EstimateFeeRequest"), exports); __exportStar(require("../models/EstimateFeeResponse"), exports); __exportStar(require("../models/EventType"), exports); __exportStar(require("../models/Fee"), exports); __exportStar(require("../models/ModelError"), exports); __exportStar(require("../models/SignMessageRequest"), exports); __exportStar(require("../models/SignMessageRequestSource"), exports); __exportStar(require("../models/SignMessageResponse"), exports); __exportStar(require("../models/SweepAddressRequest"), exports); __exportStar(require("../models/SweepAddressResponse"), exports); __exportStar(require("../models/Token"), exports); __exportStar(require("../models/Transaction"), exports); __exportStar(require("../models/TransactionEndpoint"), exports); __exportStar(require("../models/TransferDestinationAddress"), exports); __exportStar(require("../models/TransferSourceAsset"), exports); __exportStar(require("../models/TransferSourceWeb3"), exports); __exportStar(require("../models/UpdateEndpoint"), exports); __exportStar(require("../models/UpdateTokenRequest"), exports); __exportStar(require("../models/UpdateWalletRequest"), exports); __exportStar(require("../models/ValidateAddressesReply"), exports); __exportStar(require("../models/Wallet"), exports); const Address_1 = require("../models/Address"); const AddressValidityItem_1 = require("../models/AddressValidityItem"); const Chain_1 = require("../models/Chain"); const CreateAddressRequest_1 = require("../models/CreateAddressRequest"); const CreateEndpoint_1 = require("../models/CreateEndpoint"); const CreateTokenRequest_1 = require("../models/CreateTokenRequest"); const CreateTransferRequest_1 = require("../models/CreateTransferRequest"); const CreateTransferRequestDestination_1 = require("../models/CreateTransferRequestDestination"); const CreateTransferRequestSource_1 = require("../models/CreateTransferRequestSource"); const CreateTransferResponse_1 = require("../models/CreateTransferResponse"); const CreateWalletRequest_1 = require("../models/CreateWalletRequest"); const CursorPageAddress_1 = require("../models/CursorPageAddress"); const CursorPageChain_1 = require("../models/CursorPageChain"); const CursorPageEndpoint_1 = require("../models/CursorPageEndpoint"); const CursorPageEventType_1 = require("../models/CursorPageEventType"); const CursorPageToken_1 = require("../models/CursorPageToken"); const CursorPageTransaction_1 = require("../models/CursorPageTransaction"); const CursorPageWallet_1 = require("../models/CursorPageWallet"); const Endpoint_1 = require("../models/Endpoint"); const EstimateFeeRequest_1 = require("../models/EstimateFeeRequest"); const EstimateFeeResponse_1 = require("../models/EstimateFeeResponse"); const EventType_1 = require("../models/EventType"); const Fee_1 = require("../models/Fee"); const ModelError_1 = require("../models/ModelError"); const SignMessageRequest_1 = require("../models/SignMessageRequest"); const SignMessageRequestSource_1 = require("../models/SignMessageRequestSource"); const SignMessageResponse_1 = require("../models/SignMessageResponse"); const SweepAddressRequest_1 = require("../models/SweepAddressRequest"); const SweepAddressResponse_1 = require("../models/SweepAddressResponse"); const Token_1 = require("../models/Token"); const Transaction_1 = require("../models/Transaction"); const TransactionEndpoint_1 = require("../models/TransactionEndpoint"); const TransferDestinationAddress_1 = require("../models/TransferDestinationAddress"); const TransferSourceAsset_1 = require("../models/TransferSourceAsset"); const TransferSourceWeb3_1 = require("../models/TransferSourceWeb3"); const UpdateEndpoint_1 = require("../models/UpdateEndpoint"); const UpdateTokenRequest_1 = require("../models/UpdateTokenRequest"); const UpdateWalletRequest_1 = require("../models/UpdateWalletRequest"); const ValidateAddressesReply_1 = require("../models/ValidateAddressesReply"); const Wallet_1 = require("../models/Wallet"); let primitives = [ "string", "boolean", "double", "integer", "long", "float", "number", "any" ]; let enumsMap = new Set([ "CreateAddressRequestTypeEnum", ]); let typeMap = { "Address": Address_1.Address, "AddressValidityItem": AddressValidityItem_1.AddressValidityItem, "Chain": Chain_1.Chain, "CreateAddressRequest": CreateAddressRequest_1.CreateAddressRequest, "CreateEndpoint": CreateEndpoint_1.CreateEndpoint, "CreateTokenRequest": CreateTokenRequest_1.CreateTokenRequest, "CreateTransferRequest": CreateTransferRequest_1.CreateTransferRequest, "CreateTransferRequestDestination": CreateTransferRequestDestination_1.CreateTransferRequestDestinationClass, "CreateTransferRequestSource": CreateTransferRequestSource_1.CreateTransferRequestSourceClass, "CreateTransferResponse": CreateTransferResponse_1.CreateTransferResponse, "CreateWalletRequest": CreateWalletRequest_1.CreateWalletRequest, "CursorPageAddress": CursorPageAddress_1.CursorPageAddress, "CursorPageChain": CursorPageChain_1.CursorPageChain, "CursorPageEndpoint": CursorPageEndpoint_1.CursorPageEndpoint, "CursorPageEventType": CursorPageEventType_1.CursorPageEventType, "CursorPageToken": CursorPageToken_1.CursorPageToken, "CursorPageTransaction": CursorPageTransaction_1.CursorPageTransaction, "CursorPageWallet": CursorPageWallet_1.CursorPageWallet, "Endpoint": Endpoint_1.Endpoint, "EstimateFeeRequest": EstimateFeeRequest_1.EstimateFeeRequest, "EstimateFeeResponse": EstimateFeeResponse_1.EstimateFeeResponse, "EventType": EventType_1.EventType, "Fee": Fee_1.Fee, "ModelError": ModelError_1.ModelError, "SignMessageRequest": SignMessageRequest_1.SignMessageRequest, "SignMessageRequestSource": SignMessageRequestSource_1.SignMessageRequestSourceClass, "SignMessageResponse": SignMessageResponse_1.SignMessageResponse, "SweepAddressRequest": SweepAddressRequest_1.SweepAddressRequest, "SweepAddressResponse": SweepAddressResponse_1.SweepAddressResponse, "Token": Token_1.Token, "Transaction": Transaction_1.Transaction, "TransactionEndpoint": TransactionEndpoint_1.TransactionEndpoint, "TransferDestinationAddress": TransferDestinationAddress_1.TransferDestinationAddress, "TransferSourceAsset": TransferSourceAsset_1.TransferSourceAsset, "TransferSourceWeb3": TransferSourceWeb3_1.TransferSourceWeb3, "UpdateEndpoint": UpdateEndpoint_1.UpdateEndpoint, "UpdateTokenRequest": UpdateTokenRequest_1.UpdateTokenRequest, "UpdateWalletRequest": UpdateWalletRequest_1.UpdateWalletRequest, "ValidateAddressesReply": ValidateAddressesReply_1.ValidateAddressesReply, "Wallet": Wallet_1.Wallet, }; const parseMimeType = (mimeType) => { const [type, subtype] = mimeType.split('/'); return { type, subtype, subtypeTokens: subtype.split('+'), }; }; const mimeTypePredicateFactory = (predicate) => (mimeType) => predicate(parseMimeType(mimeType)); const mimeTypeSimplePredicateFactory = (type, subtype) => mimeTypePredicateFactory((descriptor) => { if (descriptor.type !== type) return false; if (subtype != null && descriptor.subtype !== subtype) return false; return true; }); 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'); 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; } let discriminatorProperty = typeMap[expectedType].discriminator; if (discriminatorProperty == null) { return expectedType; } else { if (data[discriminatorProperty]) { var discriminatorType = data[discriminatorProperty]; let mapping = typeMap[expectedType].mapping; if (mapping != undefined && mapping[discriminatorType]) { return mapping[discriminatorType]; } else if (typeMap[discriminatorType]) { return discriminatorType; } else { return expectedType; } } else { return expectedType; } } } } 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); return ObjectSerializer.serialize(data, subType, format); } else if (type.endsWith(optionalSuffix)) { let subType = type.slice(0, -optionalSuffix.length); return ObjectSerializer.serialize(data, subType, format); } else if (type.startsWith(arrayPrefix)) { let subType = type.slice(arrayPrefix.length, -arraySuffix.length); 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); 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]) { return data; } type = this.findCorrectType(data, 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; } } static deserialize(data, type, format) { 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); return ObjectSerializer.deserialize(data, subType, format); } else if (type.endsWith(optionalSuffix)) { let subType = type.slice(0, -optionalSuffix.length); return ObjectSerializer.deserialize(data, subType, format); } else if (type.startsWith(arrayPrefix)) { let subType = type.slice(arrayPrefix.length, -arraySuffix.length); 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); 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)) { return data; } if (!typeMap[type]) { return data; } let instance = new typeMap[type](); 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; } } static normalizeMediaType(mediaType) { if (mediaType === undefined) { return undefined; } return mediaType.split(";")[0].trim().toLowerCase(); } static getPreferredMediaType(mediaTypes) { if (mediaTypes.length === 0) { return "application/json"; } const normalMediaTypes = mediaTypes.map(this.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(", ")); } 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."); } 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