{"version":3,"sources":["webpack:///./node_modules/function-bind/index.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/TextMessageFormat.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/HandshakeProtocol.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/NodeHttpClient.js","webpack:///./src/components/Dashboard/ChatList.vue?9a67","webpack:///./node_modules/core-js/modules/es.string.trim.js","webpack:///./src/components/Dashboard/BlocoMeuAnuncio.vue?ac1a","webpack:///src/components/Dashboard/BlocoMeuAnuncio.vue","webpack:///./src/components/Dashboard/BlocoMeuAnuncio.vue?1ff1","webpack:///./src/components/Dashboard/BlocoMeuAnuncio.vue","webpack:///./node_modules/payment/lib/index.js","webpack:///./node_modules/card/lib/card.js","webpack:///./node_modules/core-js/internals/whitespaces.js","webpack:///./node_modules/core-js/internals/string-trim.js","webpack:///./src/views/Dashboard/CheckoutPlano.vue?a4e6","webpack:///./node_modules/qj/lib/index.js","webpack:///./src/helpers/smoothScroll.js","webpack:///./node_modules/function-bind/implementation.js","webpack:///./src/core/planoAnuncio.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/ILogger.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/Loggers.js","webpack:///./node_modules/core-js/modules/es.array.find.js","webpack:///./node_modules/node.extend/index.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/HttpClient.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/node.extend/lib/extend.js","webpack:///./node_modules/has/src/index.js","webpack:///./src/components/Dashboard/ChatMessages.vue?3add","webpack:///./node_modules/is/index.js","webpack:///./node_modules/buffer/index.js","webpack:///./src/views/Dashboard/CheckoutPlano.vue?036d","webpack:///./src/helpers/formatacaoMoeda.js","webpack:///./src/helpers/validacaoExpiracaoCartaoCredito.js","webpack:///src/views/Dashboard/CheckoutPlano.vue","webpack:///./src/views/Dashboard/CheckoutPlano.vue?550a","webpack:///./src/views/Dashboard/CheckoutPlano.vue","webpack:///./node_modules/@aspnet/signalr/dist/esm/Errors.js","webpack:///./node_modules/core-js/internals/string-trim-forced.js","webpack:///./node_modules/core-js/modules/es.array.index-of.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/Utils.js","webpack:///./src/core/statusAnuncio.js","webpack:///./src/components/Dashboard/ChatMessages.vue?ef43","webpack:///./src/views/Dashboard/Anuncios/Chat.vue?7086","webpack:///./node_modules/@aspnet/signalr/dist/esm/IHubProtocol.js","webpack:///./src/components/Dashboard/ChatList.vue?1080","webpack:///src/components/Dashboard/ChatList.vue","webpack:///./src/components/Dashboard/ChatList.vue?b9db","webpack:///./src/components/Dashboard/ChatList.vue","webpack:///./src/components/Dashboard/ChatMessages.vue?3542","webpack:///./node_modules/@aspnet/signalr/dist/esm/XhrHttpClient.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/DefaultHttpClient.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/HubConnection.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/ITransport.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/AbortController.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/LongPollingTransport.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/ServerSentEventsTransport.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/WebSocketTransport.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/HttpConnection.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/JsonHubProtocol.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/HubConnectionBuilder.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/index.js","webpack:///src/components/Dashboard/ChatMessages.vue","webpack:///./src/components/Dashboard/ChatMessages.vue?5142","webpack:///./src/components/Dashboard/ChatMessages.vue","webpack:///src/views/Dashboard/Anuncios/Chat.vue","webpack:///./src/views/Dashboard/Anuncios/Chat.vue?97af","webpack:///./src/views/Dashboard/Anuncios/Chat.vue","webpack:///./src/components/Dashboard/BlocoMeuAnuncio.vue?e354","webpack:///./src/helpers/helper.js","webpack:///./node_modules/isarray/index.js"],"names":["implementation","module","exports","Function","prototype","bind","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","Uint8Array","Array","code","i","len","length","charCodeAt","getLens","b64","Error","validLen","indexOf","placeHoldersLen","lens","_byteLength","tmp","arr","curByte","tripletToBase64","num","encodeChunk","uint8","start","end","output","push","join","extraBytes","parts","maxChunkLength","len2","TextMessageFormat","write","RecordSeparator","parse","input","messages","split","pop","RecordSeparatorCode","String","fromCharCode","HandshakeProtocol","writeHandshakeRequest","handshakeRequest","JSON","stringify","parseHandshakeResponse","data","responseMessage","messageData","remainingData","Buffer","binaryData","separatorIndex","responseLength","apply","slice","buffer","textData","substring","response","type","requestModule","__extends","extendStatics","Object","setPrototypeOf","__proto__","d","b","p","hasOwnProperty","__","this","constructor","create","__assign","assign","t","s","n","arguments","call","XMLHttpRequest","requireFunc","NodeHttpClient","_super","logger","_this","cookieJar","jar","request","defaults","send","httpRequest","Promise","resolve","reject","requestBody","content","from","currentRequest","url","body","encoding","responseType","headers","method","timeout","error","abortSignal","onabort","log","Warning","statusCode","statusMessage","abort","getCookieString","$","$trim","trim","forcedStringTrimMethod","target","proto","forced","render","_vm","_h","$createElement","_c","_self","staticClass","attrs","dados","fotos","style","backgroundImage","backgroundColor","staticStyle","_v","_s","_f","dataExpiracaoPlano","_e","marca","modelo","ano","valorVenda","esconderOpcoes","scopedSlots","_u","key","fn","proxy","status","statusAnuncio","STATUS_ANUNCIO_ATIVO","destaque","on","onClickDestacarAnuncio","STATUS_ANUNCIO_NAO_FINALIZADO","onClickDesativarAnuncio","STATUS_ANUNCIO_DESATIVADO","onClickAtivarAnuncio","onClickExcluirAnuncio","staticRenderFns","props","methods","onClickVerAnuncio","$emit","component","Payment","QJ","cardFromNumber","cardFromType","cards","defaultFormat","formatBackCardNumber","formatBackExpiry","formatCardNumber","formatExpiry","formatForwardExpiry","formatForwardSlash","formatMonthExpiry","hasTextSelected","luhnCheck","reFormatCardNumber","restrictCVC","restrictCardNumber","restrictCombinedExpiry","restrictExpiry","restrictMonthExpiry","restrictNumeric","restrictYearExpiry","setCardType","item","l","pattern","format","cvcLength","luhn","card","foundCard","j","match","replace","digit","digits","odd","sum","reverse","parseInt","ref","selectionStart","selectionEnd","document","selection","createRange","text","e","setTimeout","value","val","fns","trigger","maxLength","re","upperLength","upperLengths","which","test","filter","x","preventDefault","meta","slash","metaKey","ctrlKey","Math","min","allTypes","cardType","hasClass","results","removeClass","addClass","toggleClass","cardExpiryVal","month","prefix","year","Date","getFullYear","toString","validateCardNumber","validateCardExpiry","currentTime","expiry","ref1","setMonth","getMonth","validateCardCVC","cvc","groups","global","exec","shift","el","formatCardCVC","formatCardExpiry","formatCardExpiryMultiple","getCardArray","setCardArray","cardArray","addToCardArray","cardObject","removeFromCardArray","splice","Card","extend","me","bindVal","opts","toInitialize","maskCardNumber","options","form","$el","container","$container","isDOMElement","getAttribute","initializedDataAttr","setAttribute","attachHandlers","handleInitialPlaceholders","console","cardTemplate","template","tpl","str","cardTypes","formatting","formSelectors","numberInput","expiryInput","cvcInput","nameInput","cardSelectors","cardContainer","numberDisplay","expiryDisplay","cvcDisplay","nameDisplay","validDate","monthYear","placeholders","number","name","masks","cardNumber","classes","valid","invalid","debug","$cardContainer","baseWidth","obj","selector","ua","append","find","$numberInput","$cvcInput","$expiryInput","width","clientWidth","window","getComputedStyle","transform","navigator","userAgent","toLowerCase","$card","expiryFilters","numberInputFilters","validToggler","$numberDisplay","fill","filters","handle","$expiryDisplay","$cvcDisplay","$nameInput","$nameDisplay","args","unshift","handlers","validatorName","isValid","objVal","$in","$out","result","toggleValidClass","out","mask","numbers","forEach","idx","flipCard","unflipCard","joiner","o","outDefaults","textContent","elem","k","len1","outEl","outVal","requireObjectCoercible","whitespaces","whitespace","ltrim","RegExp","rtrim","createMethod","TYPE","$this","string","rreturn","querySelectorAll","nodeName","ret","eventObject","returnValue","normalizeEvent","original","srcElement","originalEvent","detail","charCode","keyCode","element","eventName","callback","multEventName","originalCallback","addEventListener","attachEvent","className","classList","add","contains","cls","remove","bool","toAppend","insertAdjacentHTML","NodeList","ev","CustomEvent","createEvent","initCustomEvent","initEvent","dispatchEvent","smoothScrollYToElement","elm","duration","offsetY","elementY","pageYOffset","getBoundingClientRect","top","smoothScrollYToPosition","undefined","startingY","diff","requestAnimationFrame","step","timestamp","time","percent","scrollTo","smoothScrollContainerToBottom","containerElm","scrollTop","scrollHeight","ERROR_MESSAGE","toStr","funcType","that","TypeError","bound","binder","concat","boundLength","max","boundArgs","Empty","itensDescricaoPlano","descricao","itens","LogLevel","NullLogger","_logLevel","_message","instance","$find","addToUnscopables","arrayMethodUsesToLength","FIND","SKIPS_HOLES","USES_TO_LENGTH","callbackfn","HttpResponse","statusText","HttpClient","get","post","delete","read","offset","isLE","mLen","nBytes","m","eLen","eMax","eBias","nBits","NaN","Infinity","pow","c","rt","abs","isNaN","floor","LN2","is","has","defineProperty","gOPD","getOwnPropertyDescriptor","setProperty","enumerable","configurable","writable","getProperty","src","copy","copyIsArray","clone","deep","hash","array","version","symbolValueOf","bigIntValueOf","objProto","owns","Symbol","valueOf","BigInt","isActualNaN","NON_HOST_TYPES","base64Regex","hexRegex","a","defined","empty","equal","other","getTime","hosted","host","nil","undef","isStandardArguments","isOldArguments","arraylike","object","callee","isArray","isFinite","Boolean","Number","date","HTMLElement","nodeType","isAlert","alert","infinite","decimal","divisibleBy","isDividendInfinite","isDivisorInfinite","isNonZeroNumber","integer","maximum","others","minimum","nan","even","ge","gt","le","lt","within","finish","isAnyInfinite","primitive","setInterval","regexp","base64","hex","symbol","bigint","ieee754","typedArraySupport","foo","subarray","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","RangeError","arg","encodingOrOffset","allocUnsafe","ArrayBuffer","fromArrayBuffer","fromString","fromObject","assertSize","size","alloc","checked","isEncoding","actual","fromArrayLike","byteOffset","isBuffer","isnan","SlowBuffer","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","buf","readUInt16BE","foundIndex","found","hexWrite","remaining","strLen","parsed","substr","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","res","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","decodeCodePointsArray","INSPECT_MAX_BYTES","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","compare","y","list","pos","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","includes","toJSON","_arr","MAX_ARGUMENTS_LENGTH","codePoints","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","set","INVALID_BASE64_RE","base64clean","stringtrim","units","leadSurrogate","byteArray","hi","lo","dst","_m","directives","rawName","loadingGeral","expression","planoAnuncio","nome","_l","planoAnuncioCore","index","valorAnterior","formatacaoMoeda","valorTotal","descontoPorcentagem","descontoValor","cupomAplicado","domProps","$event","composing","cupom","loadingCupom","onClickAplicarCupom","anuncio","loadingFinalizar","onClickRealizarPagamento","naoPrecisaDePagamento","handleSubmit","errors","class","$set","formatarMoeda","texto","valor","parseFloat","formatado","toLocaleString","currency","validacaoExpiracaoCartaoCredito","mes","vMes","vAno","mExpireDate","moment","isAfter","components","BlocoMeuAnuncio","computed","obterValidadeCartao","mesCartao","anoCartao","validadeCartao","partes","inicializarIugu","setAccountID","config","setTestMode","gerarHashIuguAsync","cc","CreditCard","valido","createPaymentToken","id","initCard","HttpError","errorMessage","_newTarget","trueProto","TimeoutError","AbortError","fails","non","METHOD_NAME","$indexOf","arrayMethodIsStrict","nativeIndexOf","NEGATIVE_ZERO","STRICT_METHOD","ACCESSORS","1","searchElement","__awaiter","thisArg","_arguments","P","generator","fulfilled","next","rejected","done","then","__generator","f","g","_","label","sent","trys","ops","verb","iterator","v","op","Arg","isRequired","isIn","values","getDataDetail","includeContent","isArrayBuffer","formatArrayBuffer","view","pad","sendMessage","transportName","httpClient","accessTokenFactory","logMessageContent","_a","token","_b","Trace","createLogger","ConsoleLogger","Information","Subject","observers","_i","observer","err","complete","subscribe","SubjectSubscription","subject","dispose","cancelCallback","catch","minimumLogLevel","logLevel","message","Critical","toISOString","warn","info","STATUS_ANUNCIO_EXPIRADO","getDescricaoStatus","plural","MessageType","loadingChat","chats","chatSelecionado","ativo","proprietario","onClickChat","onClickVoltar","excluirChat","chat","Id","idSelectedItem","anuncioFoto","anuncioTitulo","nomeCliente","nomeProprietario","msg","mensagemPropria","dataHora","inputHandler","mensagem","loadingEnviar","onClickEnviarMsg","XhrHttpClient","aborted","xhr","open","withCredentials","setRequestHeader","keys","header","onload","responseText","onerror","ontimeout","DefaultHttpClient","HubConnectionState","DEFAULT_TIMEOUT_IN_MS","DEFAULT_PING_INTERVAL_IN_MS","HttpTransportType","TransferFormat","HubConnection","connection","protocol","serverTimeoutInMilliseconds","keepAliveIntervalInMilliseconds","handshakeProtocol","onreceive","processIncomingData","onclose","connectionClosed","callbacks","closedCallbacks","receivedHandshakeResponse","connectionState","Disconnected","cachedPingMessage","writeMessage","Ping","handshakePromise","Debug","handshakeResolver","handshakeRejecter","transferFormat","cleanupTimeout","resetTimeoutPeriod","resetKeepAliveInterval","Connected","stop","cleanupPingTimer","stream","methodName","promiseQueue","invocationDescriptor","createStreamInvocation","cancelInvocation","createCancelInvocation","invocationId","cancelMessage","invocationEvent","Completion","createInvocation","invoke","newMethod","off","removeIdx","processHandshakeResponse","parseMessages","messages_1","Invocation","invokeClientMethod","StreamItem","Close","pingServerHandle","features","inherentKeepAlive","timeoutHandle","serverTimeout","invocationMessage","clearTimeout","nonblocking","StreamInvocation","CancelInvocation","AbortController","isAborted","LongPollingTransport","pollAbort","running","connect","pollOptions","pollUrl","Binary","signal","getAccessToken","updateHeaderToken","now","closeError","receiving","poll","e_1","pollAborted","raiseOnClose","deleteOptions","logMessage","ServerSentEventsTransport","eventSourceConstructor","encodeURIComponent","opened","Text","eventSource","cookies","Cookie","onmessage","close","onopen","WebSocketTransport","webSocketConstructor","webSocket","binaryType","_event","event","ErrorEvent","readyState","OPEN","wasClean","reason","MAX_REDIRECTS","WebSocketModule","EventSourceModule","HttpConnection","baseUrl","resolveUrl","isNode","WebSocket","EventSource","startPromise","startInternal","transport","stopError","negotiateResponse","redirects","_loop_1","this_1","state_1","e_2","skipNegotiation","WebSockets","constructTransport","accessToken_1","getNegotiationResponse","ProtocolVersion","accessToken","createTransport","stopConnection","changeState","negotiateUrl","e_3","resolveNegotiateUrl","createConnectUrl","connectionId","requestedTransport","requestedTransferFormat","connectUrl","transports","transports_1","endpoint","ex_1","isITransport","availableTransports","resolveTransport","ServerSentEvents","LongPolling","transferFormats","map","transportMatches","to","aTag","createElement","href","actualTransport","JSON_HUB_PROTOCOL_NAME","JsonHubProtocol","hubMessages","parsedMessage","isInvocationMessage","isStreamItemMessage","isCompletionMessage","assertNotEmptyString","HubConnectionBuilder","configureLogging","logging","isLogger","withUrl","transportTypeOrOptions","httpConnectionOptions","withHubProtocol","build","chatHubConnection","mensagens","loadingMensagens","watch","immediate","handler","onChangeChat","enviarMensagem","$refs","campoMsg","focus","onReceiveMessage","adicionarMensagemNaListaSeNaoExistir","msgExistente","mensagensScrollToBottom","$nextTick","containerMensagens","anim","smoothScroll","shiftKey","ChatList","ChatMessages","idAnuncio","bikeAnuncio","created","bikeAnuncioEncoded","$route","query","bike","atob","decodeURIComponent","popularChat","isMobile","innerWidth","getOptions","itensObj","getOption","waitPromise","milliseconds","getOnlyNumbers","parseNomeCompleto","nomeCompleto","primeiroNome","restante","espacoIdx"],"mappings":"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","file":"js/chat.c7920d52.js","sourcesContent":["'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n// Not exported from index\r\n/** @private */\r\nvar TextMessageFormat = /** @class */ (function () {\r\n function TextMessageFormat() {\r\n }\r\n TextMessageFormat.write = function (output) {\r\n return \"\" + output + TextMessageFormat.RecordSeparator;\r\n };\r\n TextMessageFormat.parse = function (input) {\r\n if (input[input.length - 1] !== TextMessageFormat.RecordSeparator) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n var messages = input.split(TextMessageFormat.RecordSeparator);\r\n messages.pop();\r\n return messages;\r\n };\r\n TextMessageFormat.RecordSeparatorCode = 0x1e;\r\n TextMessageFormat.RecordSeparator = String.fromCharCode(TextMessageFormat.RecordSeparatorCode);\r\n return TextMessageFormat;\r\n}());\r\nexport { TextMessageFormat };\r\n//# sourceMappingURL=TextMessageFormat.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n/** @private */\r\nvar HandshakeProtocol = /** @class */ (function () {\r\n function HandshakeProtocol() {\r\n }\r\n // Handshake request is always JSON\r\n HandshakeProtocol.prototype.writeHandshakeRequest = function (handshakeRequest) {\r\n return TextMessageFormat.write(JSON.stringify(handshakeRequest));\r\n };\r\n HandshakeProtocol.prototype.parseHandshakeResponse = function (data) {\r\n var responseMessage;\r\n var messageData;\r\n var remainingData;\r\n if (isArrayBuffer(data) || (typeof Buffer !== \"undefined\" && data instanceof Buffer)) {\r\n // Format is binary but still need to read JSON text from handshake response\r\n var binaryData = new Uint8Array(data);\r\n var separatorIndex = binaryData.indexOf(TextMessageFormat.RecordSeparatorCode);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n var responseLength = separatorIndex + 1;\r\n messageData = String.fromCharCode.apply(null, binaryData.slice(0, responseLength));\r\n remainingData = (binaryData.byteLength > responseLength) ? binaryData.slice(responseLength).buffer : null;\r\n }\r\n else {\r\n var textData = data;\r\n var separatorIndex = textData.indexOf(TextMessageFormat.RecordSeparator);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n var responseLength = separatorIndex + 1;\r\n messageData = textData.substring(0, responseLength);\r\n remainingData = (textData.length > responseLength) ? textData.substring(responseLength) : null;\r\n }\r\n // At this point we should have just the single handshake message\r\n var messages = TextMessageFormat.parse(messageData);\r\n var response = JSON.parse(messages[0]);\r\n if (response.type) {\r\n throw new Error(\"Expected a handshake response from the server.\");\r\n }\r\n responseMessage = response;\r\n // multiple messages could have arrived with handshake\r\n // return additional data to be parsed as usual, or null if all parsed\r\n return [remainingData, responseMessage];\r\n };\r\n return HandshakeProtocol;\r\n}());\r\nexport { HandshakeProtocol };\r\n//# sourceMappingURL=HandshakeProtocol.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n};\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpResponse } from \"./HttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\nvar requestModule;\r\nif (typeof XMLHttpRequest === \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n var requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n requestModule = requireFunc(\"request\");\r\n}\r\nvar NodeHttpClient = /** @class */ (function (_super) {\r\n __extends(NodeHttpClient, _super);\r\n function NodeHttpClient(logger) {\r\n var _this = _super.call(this) || this;\r\n if (typeof requestModule === \"undefined\") {\r\n throw new Error(\"The 'request' module could not be loaded.\");\r\n }\r\n _this.logger = logger;\r\n _this.cookieJar = requestModule.jar();\r\n _this.request = requestModule.defaults({ jar: _this.cookieJar });\r\n return _this;\r\n }\r\n NodeHttpClient.prototype.send = function (httpRequest) {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n var requestBody;\r\n if (isArrayBuffer(httpRequest.content)) {\r\n requestBody = Buffer.from(httpRequest.content);\r\n }\r\n else {\r\n requestBody = httpRequest.content || \"\";\r\n }\r\n var currentRequest = _this.request(httpRequest.url, {\r\n body: requestBody,\r\n // If binary is expected 'null' should be used, otherwise for text 'utf8'\r\n encoding: httpRequest.responseType === \"arraybuffer\" ? null : \"utf8\",\r\n headers: __assign({ \r\n // Tell auth middleware to 401 instead of redirecting\r\n \"X-Requested-With\": \"XMLHttpRequest\" }, httpRequest.headers),\r\n method: httpRequest.method,\r\n timeout: httpRequest.timeout,\r\n }, function (error, response, body) {\r\n if (httpRequest.abortSignal) {\r\n httpRequest.abortSignal.onabort = null;\r\n }\r\n if (error) {\r\n if (error.code === \"ETIMEDOUT\") {\r\n _this.logger.log(LogLevel.Warning, \"Timeout from HTTP request.\");\r\n reject(new TimeoutError());\r\n }\r\n _this.logger.log(LogLevel.Warning, \"Error from HTTP request. \" + error);\r\n reject(error);\r\n return;\r\n }\r\n if (response.statusCode >= 200 && response.statusCode < 300) {\r\n resolve(new HttpResponse(response.statusCode, response.statusMessage || \"\", body));\r\n }\r\n else {\r\n reject(new HttpError(response.statusMessage || \"\", response.statusCode || 0));\r\n }\r\n });\r\n if (httpRequest.abortSignal) {\r\n httpRequest.abortSignal.onabort = function () {\r\n currentRequest.abort();\r\n reject(new AbortError());\r\n };\r\n }\r\n });\r\n };\r\n NodeHttpClient.prototype.getCookieString = function (url) {\r\n return this.cookieJar.getCookieString(url);\r\n };\r\n return NodeHttpClient;\r\n}(HttpClient));\r\nexport { NodeHttpClient };\r\n//# sourceMappingURL=NodeHttpClient.js.map","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChatList.vue?vue&type=style&index=0&id=81f8da84&lang=less&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChatList.vue?vue&type=style&index=0&id=81f8da84&lang=less&scoped=true&\"","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.github.io/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.dados)?_c('div',{staticClass:\"anuncio text-center shadow\"},[_c('div',{staticClass:\"row no-gutters mb-auto\"},[_c('div',{staticClass:\"col-7\"},[_c('router-link',{attrs:{\"to\":(\"/dashboard/anuncio/\" + (_vm.dados.id))}},[(_vm.dados.fotos && _vm.dados.fotos.length > 0)?_c('div',{staticClass:\"img-anuncio\",style:({backgroundImage: 'url('+_vm.dados.fotos[0]+')', backgroundColor: 'white'})}):_c('div',{staticClass:\"img-anuncio sem-imagem\"})])],1),_c('div',{staticClass:\"col-5 d-flex flex-column \"},[_c('div',{staticClass:\"flex-grow-1 d-flex align-items-center justify-content-center p-2\"},[_c('div',[(_vm.dados.destaque)?_c('span',{staticClass:\"badge badge-pill badge-warning anuncio-destaque\"},[_c('div',{staticStyle:{\"font-size\":\"12px\",\"margin-bottom\":\"4px\"}},[_vm._v(\"Anúncio destaque\")]),(_vm.dados.dataExpiracaoPlano)?_c('span',[_vm._v(\"até \"+_vm._s(_vm._f(\"formatLocalDate\")(_vm.dados.dataExpiracaoPlano)))]):_vm._e()]):_vm._e(),_c('div',{staticClass:\"marca\"},[_vm._v(_vm._s(_vm.dados.marca))]),_c('div',{staticClass:\"modelo\"},[_vm._v(_vm._s(_vm.dados.modelo)+\" \"+_vm._s(_vm.dados.ano))]),_c('div',{staticClass:\"preco fonte-numero\"},[_vm._v(_vm._s(_vm._f(\"formatMoney\")(_vm.dados.valorVenda)))])])]),(!_vm.esconderOpcoes)?_c('b-dropdown',{staticClass:\"border-top\",attrs:{\"variant\":\"none\",\"size\":\"sm\",\"right\":\"\"},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('span',{staticClass:\"font-weight-bold text-success\"},[_vm._v(\"Opções\")])]},proxy:true}],null,false,2196820364)},[(_vm.dados.status == _vm.statusAnuncio.STATUS_ANUNCIO_ATIVO && !_vm.dados.destaque)?_c('b-dropdown-item',{on:{\"click\":_vm.onClickDestacarAnuncio}},[_c('span',{staticClass:\"texto-destaque\"},[_vm._v(\"Destacar este anúncio\")])]):_vm._e(),(_vm.dados.status == _vm.statusAnuncio.STATUS_ANUNCIO_ATIVO && !_vm.dados.destaque)?_c('b-dropdown-divider'):_vm._e(),(_vm.dados.status == _vm.statusAnuncio.STATUS_ANUNCIO_NAO_FINALIZADO)?_c('b-dropdown-item',{attrs:{\"to\":(\"/dashboard/anuncio/\" + (_vm.dados.id))}},[_vm._v(\"Completar anúncio\")]):_vm._e(),(_vm.dados.status != _vm.statusAnuncio.STATUS_ANUNCIO_NAO_FINALIZADO)?_c('b-dropdown-item',{attrs:{\"to\":(\"/dashboard/anuncio/\" + (_vm.dados.id))}},[_vm._v(\"Editar anúncio\")]):_vm._e(),(_vm.dados.status == _vm.statusAnuncio.STATUS_ANUNCIO_ATIVO)?_c('b-dropdown-item',{attrs:{\"to\":(\"/anuncio/\" + (_vm.dados.id)),\"target\":\"_blank\"}},[_vm._v(\"Ver anúncio na loja\")]):_vm._e(),(_vm.dados.status == _vm.statusAnuncio.STATUS_ANUNCIO_ATIVO)?_c('b-dropdown-item',{on:{\"click\":_vm.onClickDesativarAnuncio}},[_vm._v(\"Desativar anúncio\")]):_vm._e(),(_vm.dados.status == _vm.statusAnuncio.STATUS_ANUNCIO_DESATIVADO)?_c('b-dropdown-item',{on:{\"click\":_vm.onClickAtivarAnuncio}},[_vm._v(\"Ativar anúncio\")]):_vm._e(),_c('b-dropdown-divider'),_c('b-dropdown-item',{on:{\"click\":_vm.onClickExcluirAnuncio}},[_c('span',{staticClass:\"text-danger\"},[_vm._v(\"Excluir anúncio\")])])],1):_vm._e()],1)])]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BlocoMeuAnuncio.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BlocoMeuAnuncio.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./BlocoMeuAnuncio.vue?vue&type=template&id=2eb23568&scoped=true&\"\nimport script from \"./BlocoMeuAnuncio.vue?vue&type=script&lang=js&\"\nexport * from \"./BlocoMeuAnuncio.vue?vue&type=script&lang=js&\"\nimport style0 from \"./BlocoMeuAnuncio.vue?vue&type=style&index=0&id=2eb23568&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2eb23568\",\n null\n \n)\n\nexport default component.exports","// Generated by CoffeeScript 1.10.0\n(function() {\n var Payment, QJ, cardFromNumber, cardFromType, cards, defaultFormat, formatBackCardNumber, formatBackExpiry, formatCardNumber, formatExpiry, formatForwardExpiry, formatForwardSlash, formatMonthExpiry, hasTextSelected, luhnCheck, reFormatCardNumber, restrictCVC, restrictCardNumber, restrictCombinedExpiry, restrictExpiry, restrictMonthExpiry, restrictNumeric, restrictYearExpiry, setCardType,\n indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };\n\n QJ = require('qj');\n\n defaultFormat = /(\\d{1,4})/g;\n\n cards = [\n {\n type: 'amex',\n pattern: /^3[47]/,\n format: /(\\d{1,4})(\\d{1,6})?(\\d{1,5})?/,\n length: [15],\n cvcLength: [4],\n luhn: true\n }, {\n type: 'dankort',\n pattern: /^5019/,\n format: defaultFormat,\n length: [16],\n cvcLength: [3],\n luhn: true\n }, {\n type: 'dinersclub',\n pattern: /^(36|38|30[0-5])/,\n format: /(\\d{1,4})(\\d{1,6})?(\\d{1,4})?/,\n length: [14],\n cvcLength: [3],\n luhn: true\n }, {\n type: 'discover',\n pattern: /^(6011|65|64[4-9]|622)/,\n format: defaultFormat,\n length: [16],\n cvcLength: [3],\n luhn: true\n }, {\n type: 'elo',\n pattern: /^401178|^401179|^431274|^438935|^451416|^457393|^457631|^457632|^504175|^627780|^636297|^636369|^636368|^(506699|5067[0-6]\\d|50677[0-8])|^(50900\\d|5090[1-9]\\d|509[1-9]\\d{2})|^65003[1-3]|^(65003[5-9]|65004\\d|65005[0-1])|^(65040[5-9]|6504[1-3]\\d)|^(65048[5-9]|65049\\d|6505[0-2]\\d|65053[0-8])|^(65054[1-9]|6505[5-8]\\d|65059[0-8])|^(65070\\d|65071[0-8])|^65072[0-7]|^(65090[1-9]|65091\\d|650920)|^(65165[2-9]|6516[6-7]\\d)|^(65500\\d|65501\\d)|^(65502[1-9]|6550[3-4]\\d|65505[0-8])|^(65092[1-9]|65097[0-8])/,\n format: defaultFormat,\n length: [16],\n cvcLength: [3],\n luhn: true\n }, {\n type: 'hipercard',\n pattern: /^(384100|384140|384160|606282|637095|637568|60(?!11))/,\n format: defaultFormat,\n length: [14, 15, 16, 17, 18, 19],\n cvcLength: [3],\n luhn: true\n }, {\n type: 'jcb',\n pattern: /^(308[8-9]|309[0-3]|3094[0]{4}|309[6-9]|310[0-2]|311[2-9]|3120|315[8-9]|333[7-9]|334[0-9]|352[8-9]|35[3-8][0-9])/,\n format: defaultFormat,\n length: [16, 19],\n cvcLength: [3],\n luhn: true\n }, {\n type: 'laser',\n pattern: /^(6706|6771|6709)/,\n format: defaultFormat,\n length: [16, 17, 18, 19],\n cvcLength: [3],\n luhn: true\n }, {\n type: 'maestro',\n pattern: /^(5018|5020|5038|5078|5[6-9]|6304|6703|6708|6759|676[1-3])/,\n format: defaultFormat,\n length: [12, 13, 14, 15, 16, 17, 18, 19],\n cvcLength: [3],\n luhn: true\n }, {\n type: 'mastercard',\n pattern: /^(5[1-5]|677189)|^(222[1-9]|2[3-6]\\d{2}|27[0-1]\\d|2720)/,\n format: defaultFormat,\n length: [16],\n cvcLength: [3],\n luhn: true\n }, {\n type: 'mir',\n pattern: /^220[0-4][0-9][0-9]\\d{10}$/,\n format: defaultFormat,\n length: [16],\n cvcLength: [3],\n luhn: true\n }, {\n type: 'troy',\n pattern: /^9792/,\n format: defaultFormat,\n length: [16],\n cvcLength: [3],\n luhn: true\n }, {\n type: 'unionpay',\n pattern: /^62/,\n format: defaultFormat,\n length: [16, 17, 18, 19],\n cvcLength: [3],\n luhn: false\n }, {\n type: 'visaelectron',\n pattern: /^4(026|17500|405|508|844|91[37])/,\n format: defaultFormat,\n length: [16],\n cvcLength: [3],\n luhn: true\n }, {\n type: 'visa',\n pattern: /^4/,\n format: defaultFormat,\n length: [13, 16, 19],\n cvcLength: [3],\n luhn: true\n }\n ];\n\n cardFromNumber = function(num) {\n var card, foundCard, j, len, match;\n num = (num + '').replace(/\\D/g, '');\n foundCard = void 0;\n for (j = 0, len = cards.length; j < len; j++) {\n card = cards[j];\n if (match = num.match(card.pattern)) {\n if (!foundCard || match[0].length > foundCard[1][0].length) {\n foundCard = [card, match];\n }\n }\n }\n return foundCard && foundCard[0];\n };\n\n cardFromType = function(type) {\n var card, j, len;\n for (j = 0, len = cards.length; j < len; j++) {\n card = cards[j];\n if (card.type === type) {\n return card;\n }\n }\n };\n\n luhnCheck = function(num) {\n var digit, digits, j, len, odd, sum;\n odd = true;\n sum = 0;\n digits = (num + '').split('').reverse();\n for (j = 0, len = digits.length; j < len; j++) {\n digit = digits[j];\n digit = parseInt(digit, 10);\n if ((odd = !odd)) {\n digit *= 2;\n }\n if (digit > 9) {\n digit -= 9;\n }\n sum += digit;\n }\n return sum % 10 === 0;\n };\n\n hasTextSelected = function(target) {\n var e, error, ref;\n try {\n if ((target.selectionStart != null) && target.selectionStart !== target.selectionEnd) {\n return true;\n }\n if ((typeof document !== \"undefined\" && document !== null ? (ref = document.selection) != null ? ref.createRange : void 0 : void 0) != null) {\n if (document.selection.createRange().text) {\n return true;\n }\n }\n } catch (error) {\n e = error;\n }\n return false;\n };\n\n reFormatCardNumber = function(e) {\n return setTimeout((function(_this) {\n return function() {\n var target, value;\n target = e.target;\n value = QJ.val(target);\n value = Payment.fns.formatCardNumber(value);\n QJ.val(target, value);\n return QJ.trigger(target, 'change');\n };\n })(this));\n };\n\n formatCardNumber = function(maxLength) {\n return function(e) {\n var card, digit, i, j, len, length, re, target, upperLength, upperLengths, value;\n digit = String.fromCharCode(e.which);\n if (!/^\\d+$/.test(digit)) {\n return;\n }\n target = e.target;\n value = QJ.val(target);\n card = cardFromNumber(value + digit);\n length = (value.replace(/\\D/g, '') + digit).length;\n upperLengths = [16];\n if (card) {\n upperLengths = card.length;\n }\n if (maxLength) {\n upperLengths = upperLengths.filter(function(x) {\n return x <= maxLength;\n });\n }\n for (i = j = 0, len = upperLengths.length; j < len; i = ++j) {\n upperLength = upperLengths[i];\n if (length >= upperLength && upperLengths[i + 1]) {\n continue;\n }\n if (length >= upperLength) {\n return;\n }\n }\n if (hasTextSelected(target)) {\n return;\n }\n if (card && card.type === 'amex') {\n re = /^(\\d{4}|\\d{4}\\s\\d{6})$/;\n } else {\n re = /(?:^|\\s)(\\d{4})$/;\n }\n if (re.test(value)) {\n e.preventDefault();\n QJ.val(target, value + ' ' + digit);\n return QJ.trigger(target, 'change');\n }\n };\n };\n\n formatBackCardNumber = function(e) {\n var target, value;\n target = e.target;\n value = QJ.val(target);\n if (e.meta) {\n return;\n }\n if (e.which !== 8) {\n return;\n }\n if (hasTextSelected(target)) {\n return;\n }\n if (/\\d\\s$/.test(value)) {\n e.preventDefault();\n QJ.val(target, value.replace(/\\d\\s$/, ''));\n return QJ.trigger(target, 'change');\n } else if (/\\s\\d?$/.test(value)) {\n e.preventDefault();\n QJ.val(target, value.replace(/\\s\\d?$/, ''));\n return QJ.trigger(target, 'change');\n }\n };\n\n formatExpiry = function(e) {\n var digit, target, val;\n digit = String.fromCharCode(e.which);\n if (!/^\\d+$/.test(digit)) {\n return;\n }\n target = e.target;\n val = QJ.val(target) + digit;\n if (/^\\d$/.test(val) && (val !== '0' && val !== '1')) {\n e.preventDefault();\n QJ.val(target, \"0\" + val + \" / \");\n return QJ.trigger(target, 'change');\n } else if (/^\\d\\d$/.test(val)) {\n e.preventDefault();\n QJ.val(target, val + \" / \");\n return QJ.trigger(target, 'change');\n }\n };\n\n formatMonthExpiry = function(e) {\n var digit, target, val;\n digit = String.fromCharCode(e.which);\n if (!/^\\d+$/.test(digit)) {\n return;\n }\n target = e.target;\n val = QJ.val(target) + digit;\n if (/^\\d$/.test(val) && (val !== '0' && val !== '1')) {\n e.preventDefault();\n QJ.val(target, \"0\" + val);\n return QJ.trigger(target, 'change');\n } else if (/^\\d\\d$/.test(val)) {\n e.preventDefault();\n QJ.val(target, \"\" + val);\n return QJ.trigger(target, 'change');\n }\n };\n\n formatForwardExpiry = function(e) {\n var digit, target, val;\n digit = String.fromCharCode(e.which);\n if (!/^\\d+$/.test(digit)) {\n return;\n }\n target = e.target;\n val = QJ.val(target);\n if (/^\\d\\d$/.test(val)) {\n QJ.val(target, val + \" / \");\n return QJ.trigger(target, 'change');\n }\n };\n\n formatForwardSlash = function(e) {\n var slash, target, val;\n slash = String.fromCharCode(e.which);\n if (slash !== '/') {\n return;\n }\n target = e.target;\n val = QJ.val(target);\n if (/^\\d$/.test(val) && val !== '0') {\n QJ.val(target, \"0\" + val + \" / \");\n return QJ.trigger(target, 'change');\n }\n };\n\n formatBackExpiry = function(e) {\n var target, value;\n if (e.metaKey) {\n return;\n }\n target = e.target;\n value = QJ.val(target);\n if (e.which !== 8) {\n return;\n }\n if (hasTextSelected(target)) {\n return;\n }\n if (/\\d(\\s|\\/)+$/.test(value)) {\n e.preventDefault();\n QJ.val(target, value.replace(/\\d(\\s|\\/)*$/, ''));\n return QJ.trigger(target, 'change');\n } else if (/\\s\\/\\s?\\d?$/.test(value)) {\n e.preventDefault();\n QJ.val(target, value.replace(/\\s\\/\\s?\\d?$/, ''));\n return QJ.trigger(target, 'change');\n }\n };\n\n restrictNumeric = function(e) {\n var input;\n if (e.metaKey || e.ctrlKey) {\n return true;\n }\n if (e.which === 32) {\n return e.preventDefault();\n }\n if (e.which === 0) {\n return true;\n }\n if (e.which < 33) {\n return true;\n }\n input = String.fromCharCode(e.which);\n if (!/[\\d\\s]/.test(input)) {\n return e.preventDefault();\n }\n };\n\n restrictCardNumber = function(maxLength) {\n return function(e) {\n var card, digit, length, target, value;\n target = e.target;\n digit = String.fromCharCode(e.which);\n if (!/^\\d+$/.test(digit)) {\n return;\n }\n if (hasTextSelected(target)) {\n return;\n }\n value = (QJ.val(target) + digit).replace(/\\D/g, '');\n card = cardFromNumber(value);\n length = 16;\n if (card) {\n length = card.length[card.length.length - 1];\n }\n if (maxLength) {\n length = Math.min(length, maxLength);\n }\n if (!(value.length <= length)) {\n return e.preventDefault();\n }\n };\n };\n\n restrictExpiry = function(e, length) {\n var digit, target, value;\n target = e.target;\n digit = String.fromCharCode(e.which);\n if (!/^\\d+$/.test(digit)) {\n return;\n }\n if (hasTextSelected(target)) {\n return;\n }\n value = QJ.val(target) + digit;\n value = value.replace(/\\D/g, '');\n if (value.length > length) {\n return e.preventDefault();\n }\n };\n\n restrictCombinedExpiry = function(e) {\n return restrictExpiry(e, 6);\n };\n\n restrictMonthExpiry = function(e) {\n return restrictExpiry(e, 2);\n };\n\n restrictYearExpiry = function(e) {\n return restrictExpiry(e, 4);\n };\n\n restrictCVC = function(e) {\n var digit, target, val;\n target = e.target;\n digit = String.fromCharCode(e.which);\n if (!/^\\d+$/.test(digit)) {\n return;\n }\n if (hasTextSelected(target)) {\n return;\n }\n val = QJ.val(target) + digit;\n if (!(val.length <= 4)) {\n return e.preventDefault();\n }\n };\n\n setCardType = function(e) {\n var allTypes, card, cardType, target, val;\n target = e.target;\n val = QJ.val(target);\n cardType = Payment.fns.cardType(val) || 'unknown';\n if (!QJ.hasClass(target, cardType)) {\n allTypes = (function() {\n var j, len, results;\n results = [];\n for (j = 0, len = cards.length; j < len; j++) {\n card = cards[j];\n results.push(card.type);\n }\n return results;\n })();\n QJ.removeClass(target, 'unknown');\n QJ.removeClass(target, allTypes.join(' '));\n QJ.addClass(target, cardType);\n QJ.toggleClass(target, 'identified', cardType !== 'unknown');\n return QJ.trigger(target, 'payment.cardType', cardType);\n }\n };\n\n Payment = (function() {\n function Payment() {}\n\n Payment.fns = {\n cardExpiryVal: function(value) {\n var month, prefix, ref, year;\n value = value.replace(/\\s/g, '');\n ref = value.split('/', 2), month = ref[0], year = ref[1];\n if ((year != null ? year.length : void 0) === 2 && /^\\d+$/.test(year)) {\n prefix = (new Date).getFullYear();\n prefix = prefix.toString().slice(0, 2);\n year = prefix + year;\n }\n month = parseInt(month, 10);\n year = parseInt(year, 10);\n return {\n month: month,\n year: year\n };\n },\n validateCardNumber: function(num) {\n var card, ref;\n num = (num + '').replace(/\\s+|-/g, '');\n if (!/^\\d+$/.test(num)) {\n return false;\n }\n card = cardFromNumber(num);\n if (!card) {\n return false;\n }\n return (ref = num.length, indexOf.call(card.length, ref) >= 0) && (card.luhn === false || luhnCheck(num));\n },\n validateCardExpiry: function(month, year) {\n var currentTime, expiry, prefix, ref, ref1;\n if (typeof month === 'object' && 'month' in month) {\n ref = month, month = ref.month, year = ref.year;\n } else if (typeof month === 'string' && indexOf.call(month, '/') >= 0) {\n ref1 = Payment.fns.cardExpiryVal(month), month = ref1.month, year = ref1.year;\n }\n if (!(month && year)) {\n return false;\n }\n month = QJ.trim(month);\n year = QJ.trim(year);\n if (!/^\\d+$/.test(month)) {\n return false;\n }\n if (!/^\\d+$/.test(year)) {\n return false;\n }\n month = parseInt(month, 10);\n if (!(month && month <= 12)) {\n return false;\n }\n if (year.length === 2) {\n prefix = (new Date).getFullYear();\n prefix = prefix.toString().slice(0, 2);\n year = prefix + year;\n }\n expiry = new Date(year, month);\n currentTime = new Date;\n expiry.setMonth(expiry.getMonth() - 1);\n expiry.setMonth(expiry.getMonth() + 1, 1);\n return expiry > currentTime;\n },\n validateCardCVC: function(cvc, type) {\n var ref, ref1;\n cvc = QJ.trim(cvc);\n if (!/^\\d+$/.test(cvc)) {\n return false;\n }\n if (type && cardFromType(type)) {\n return ref = cvc.length, indexOf.call((ref1 = cardFromType(type)) != null ? ref1.cvcLength : void 0, ref) >= 0;\n } else {\n return cvc.length >= 3 && cvc.length <= 4;\n }\n },\n cardType: function(num) {\n var ref;\n if (!num) {\n return null;\n }\n return ((ref = cardFromNumber(num)) != null ? ref.type : void 0) || null;\n },\n formatCardNumber: function(num) {\n var card, groups, ref, upperLength;\n card = cardFromNumber(num);\n if (!card) {\n return num;\n }\n upperLength = card.length[card.length.length - 1];\n num = num.replace(/\\D/g, '');\n num = num.slice(0, upperLength);\n if (card.format.global) {\n return (ref = num.match(card.format)) != null ? ref.join(' ') : void 0;\n } else {\n groups = card.format.exec(num);\n if (groups == null) {\n return;\n }\n groups.shift();\n groups = groups.filter(function(n) {\n return n;\n });\n return groups.join(' ');\n }\n }\n };\n\n Payment.restrictNumeric = function(el) {\n return QJ.on(el, 'keypress', restrictNumeric);\n };\n\n Payment.cardExpiryVal = function(el) {\n return Payment.fns.cardExpiryVal(QJ.val(el));\n };\n\n Payment.formatCardCVC = function(el) {\n Payment.restrictNumeric(el);\n QJ.on(el, 'keypress', restrictCVC);\n return el;\n };\n\n Payment.formatCardExpiry = function(el) {\n var month, year;\n Payment.restrictNumeric(el);\n if (el.length && el.length === 2) {\n month = el[0], year = el[1];\n this.formatCardExpiryMultiple(month, year);\n } else {\n QJ.on(el, 'keypress', restrictCombinedExpiry);\n QJ.on(el, 'keypress', formatExpiry);\n QJ.on(el, 'keypress', formatForwardSlash);\n QJ.on(el, 'keypress', formatForwardExpiry);\n QJ.on(el, 'keydown', formatBackExpiry);\n }\n return el;\n };\n\n Payment.formatCardExpiryMultiple = function(month, year) {\n QJ.on(month, 'keypress', restrictMonthExpiry);\n QJ.on(month, 'keypress', formatMonthExpiry);\n return QJ.on(year, 'keypress', restrictYearExpiry);\n };\n\n Payment.formatCardNumber = function(el, maxLength) {\n Payment.restrictNumeric(el);\n QJ.on(el, 'keypress', restrictCardNumber(maxLength));\n QJ.on(el, 'keypress', formatCardNumber(maxLength));\n QJ.on(el, 'keydown', formatBackCardNumber);\n QJ.on(el, 'keyup blur', setCardType);\n QJ.on(el, 'paste', reFormatCardNumber);\n QJ.on(el, 'input', reFormatCardNumber);\n return el;\n };\n\n Payment.getCardArray = function() {\n return cards;\n };\n\n Payment.setCardArray = function(cardArray) {\n cards = cardArray;\n return true;\n };\n\n Payment.addToCardArray = function(cardObject) {\n return cards.push(cardObject);\n };\n\n Payment.removeFromCardArray = function(type) {\n var key, value;\n for (key in cards) {\n value = cards[key];\n if (value.type === type) {\n cards.splice(key, 1);\n }\n }\n return true;\n };\n\n return Payment;\n\n })();\n\n module.exports = Payment;\n\n global.Payment = Payment;\n\n}).call(this);\n","// Generated by CoffeeScript 1.10.0\n(function() {\n var Card, QJ, extend, payment,\n bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };\n\n require('./card.css');\n\n QJ = require('qj');\n\n payment = require('payment');\n\n extend = require('node.extend');\n\n Card = (function() {\n var bindVal;\n\n Card.prototype.initializedDataAttr = \"data-jp-card-initialized\";\n\n Card.prototype.cardTemplate = '' + '
' + '
' + '
' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '
' + '
' + '
{{cvc}}
' + '
{{number}}
' + '
{{name}}
' + '
{{expiry}}
' + '
' + '
' + '
' + '
' + '
{{cvc}}
' + '
' + '
' + '
' + '
';\n\n Card.prototype.template = function(tpl, data) {\n return tpl.replace(/\\{\\{(.*?)\\}\\}/g, function(match, key, str) {\n return data[key];\n });\n };\n\n Card.prototype.cardTypes = ['jp-card-amex', 'jp-card-dankort', 'jp-card-dinersclub', 'jp-card-discover', 'jp-card-unionpay', 'jp-card-jcb', 'jp-card-laser', 'jp-card-maestro', 'jp-card-mastercard', 'jp-card-troy', 'jp-card-unionpay', 'jp-card-visa', 'jp-card-visaelectron', 'jp-card-elo', 'jp-card-hipercard'];\n\n Card.prototype.defaults = {\n formatting: true,\n formSelectors: {\n numberInput: 'input[name=\"number\"]',\n expiryInput: 'input[name=\"expiry\"]',\n cvcInput: 'input[name=\"cvc\"]',\n nameInput: 'input[name=\"name\"]'\n },\n cardSelectors: {\n cardContainer: '.jp-card-container',\n card: '.jp-card',\n numberDisplay: '.jp-card-number',\n expiryDisplay: '.jp-card-expiry',\n cvcDisplay: '.jp-card-cvc',\n nameDisplay: '.jp-card-name'\n },\n messages: {\n validDate: 'valid\\nthru',\n monthYear: 'month/year'\n },\n placeholders: {\n number: '•••• •••• •••• ••••',\n cvc: '•••',\n expiry: '••/••',\n name: 'Full Name'\n },\n masks: {\n cardNumber: false\n },\n classes: {\n valid: 'jp-card-valid',\n invalid: 'jp-card-invalid'\n },\n debug: false\n };\n\n function Card(opts) {\n this.maskCardNumber = bind(this.maskCardNumber, this);\n var toInitialize;\n this.options = extend(true, this.defaults, opts);\n if (!this.options.form) {\n console.log(\"Please provide a form\");\n return;\n }\n this.$el = QJ(this.options.form);\n if (!this.options.container) {\n console.log(\"Please provide a container\");\n return;\n }\n this.$container = QJ(this.options.container);\n toInitialize = QJ.isDOMElement(this.$container) ? this.$container : this.$container[0];\n if (toInitialize.getAttribute(this.initializedDataAttr)) {\n return;\n }\n toInitialize.setAttribute(this.initializedDataAttr, true);\n this.render();\n this.attachHandlers();\n this.handleInitialPlaceholders();\n }\n\n Card.prototype.render = function() {\n var $cardContainer, baseWidth, name, obj, ref, ref1, selector, ua;\n QJ.append(this.$container, this.template(this.cardTemplate, extend({}, this.options.messages, this.options.placeholders)));\n ref = this.options.cardSelectors;\n for (name in ref) {\n selector = ref[name];\n this[\"$\" + name] = QJ.find(this.$container, selector);\n }\n ref1 = this.options.formSelectors;\n for (name in ref1) {\n selector = ref1[name];\n selector = this.options[name] ? this.options[name] : selector;\n obj = QJ.find(this.$el, selector);\n if (!obj.length && this.options.debug) {\n console.error(\"Card can't find a \" + name + \" in your form.\");\n }\n this[\"$\" + name] = obj;\n }\n if (this.options.formatting) {\n Payment.formatCardNumber(this.$numberInput);\n Payment.formatCardCVC(this.$cvcInput);\n Payment.formatCardExpiry(this.$expiryInput);\n }\n if (this.options.width) {\n $cardContainer = QJ(this.options.cardSelectors.cardContainer)[0];\n baseWidth = parseInt($cardContainer.clientWidth || window.getComputedStyle($cardContainer).width);\n $cardContainer.style.transform = \"scale(\" + (this.options.width / baseWidth) + \")\";\n }\n if (typeof navigator !== \"undefined\" && navigator !== null ? navigator.userAgent : void 0) {\n ua = navigator.userAgent.toLowerCase();\n if (ua.indexOf('safari') !== -1 && ua.indexOf('chrome') === -1) {\n QJ.addClass(this.$card, 'jp-card-safari');\n }\n }\n if (/MSIE 10\\./i.test(navigator.userAgent)) {\n QJ.addClass(this.$card, 'jp-card-ie-10');\n }\n if (/rv:11.0/i.test(navigator.userAgent)) {\n return QJ.addClass(this.$card, 'jp-card-ie-11');\n }\n };\n\n Card.prototype.attachHandlers = function() {\n var expiryFilters, numberInputFilters;\n numberInputFilters = [this.validToggler('cardNumber')];\n if (this.options.masks.cardNumber) {\n numberInputFilters.push(this.maskCardNumber);\n }\n bindVal(this.$numberInput, this.$numberDisplay, {\n fill: false,\n filters: numberInputFilters\n });\n QJ.on(this.$numberInput, 'payment.cardType', this.handle('setCardType'));\n expiryFilters = [\n function(val) {\n return val.replace(/(\\s+)/g, '');\n }\n ];\n expiryFilters.push(this.validToggler('cardExpiry'));\n bindVal(this.$expiryInput, this.$expiryDisplay, {\n join: function(text) {\n if (text[0].length === 2 || text[1]) {\n return \"/\";\n } else {\n return \"\";\n }\n },\n filters: expiryFilters\n });\n bindVal(this.$cvcInput, this.$cvcDisplay, {\n filters: this.validToggler('cardCVC')\n });\n QJ.on(this.$cvcInput, 'focus', this.handle('flipCard'));\n QJ.on(this.$cvcInput, 'blur', this.handle('unflipCard'));\n return bindVal(this.$nameInput, this.$nameDisplay, {\n fill: false,\n filters: this.validToggler('cardHolderName'),\n join: ' '\n });\n };\n\n Card.prototype.handleInitialPlaceholders = function() {\n var el, name, ref, results, selector;\n ref = this.options.formSelectors;\n results = [];\n for (name in ref) {\n selector = ref[name];\n el = this[\"$\" + name];\n if (QJ.val(el)) {\n QJ.trigger(el, 'paste');\n results.push(setTimeout(function() {\n return QJ.trigger(el, 'keyup');\n }));\n } else {\n results.push(void 0);\n }\n }\n return results;\n };\n\n Card.prototype.handle = function(fn) {\n return (function(_this) {\n return function(e) {\n var args;\n args = Array.prototype.slice.call(arguments);\n args.unshift(e.target);\n return _this.handlers[fn].apply(_this, args);\n };\n })(this);\n };\n\n Card.prototype.validToggler = function(validatorName) {\n var isValid;\n if (validatorName === \"cardExpiry\") {\n isValid = function(val) {\n var objVal;\n objVal = Payment.fns.cardExpiryVal(val);\n return Payment.fns.validateCardExpiry(objVal.month, objVal.year);\n };\n } else if (validatorName === \"cardCVC\") {\n isValid = (function(_this) {\n return function(val) {\n return Payment.fns.validateCardCVC(val, _this.cardType);\n };\n })(this);\n } else if (validatorName === \"cardNumber\") {\n isValid = function(val) {\n return Payment.fns.validateCardNumber(val);\n };\n } else if (validatorName === \"cardHolderName\") {\n isValid = function(val) {\n return val !== \"\";\n };\n }\n return (function(_this) {\n return function(val, $in, $out) {\n var result;\n result = isValid(val);\n _this.toggleValidClass($in, result);\n _this.toggleValidClass($out, result);\n return val;\n };\n })(this);\n };\n\n Card.prototype.toggleValidClass = function(el, test) {\n QJ.toggleClass(el, this.options.classes.valid, test);\n return QJ.toggleClass(el, this.options.classes.invalid, !test);\n };\n\n Card.prototype.maskCardNumber = function(val, el, out) {\n var mask, numbers;\n mask = this.options.masks.cardNumber;\n numbers = val.split(' ');\n if (numbers.length >= 3) {\n numbers.forEach(function(item, idx) {\n if (idx !== numbers.length - 1) {\n return numbers[idx] = numbers[idx].replace(/\\d/g, mask);\n }\n });\n return numbers.join(' ');\n } else {\n return val.replace(/\\d/g, mask);\n }\n };\n\n Card.prototype.handlers = {\n setCardType: function($el, e) {\n var cardType;\n cardType = e.data;\n if (!QJ.hasClass(this.$card, cardType)) {\n QJ.removeClass(this.$card, 'jp-card-unknown');\n QJ.removeClass(this.$card, this.cardTypes.join(' '));\n QJ.addClass(this.$card, \"jp-card-\" + cardType);\n QJ.toggleClass(this.$card, 'jp-card-identified', cardType !== 'unknown');\n return this.cardType = cardType;\n }\n },\n flipCard: function() {\n return QJ.addClass(this.$card, 'jp-card-flipped');\n },\n unflipCard: function() {\n return QJ.removeClass(this.$card, 'jp-card-flipped');\n }\n };\n\n bindVal = function(el, out, opts) {\n var joiner, o, outDefaults;\n if (opts == null) {\n opts = {};\n }\n opts.fill = opts.fill || false;\n opts.filters = opts.filters || [];\n if (!(opts.filters instanceof Array)) {\n opts.filters = [opts.filters];\n }\n opts.join = opts.join || \"\";\n if (!(typeof opts.join === \"function\")) {\n joiner = opts.join;\n opts.join = function() {\n return joiner;\n };\n }\n outDefaults = (function() {\n var j, len, results;\n results = [];\n for (j = 0, len = out.length; j < len; j++) {\n o = out[j];\n results.push(o.textContent);\n }\n return results;\n })();\n QJ.on(el, 'focus', function() {\n return QJ.addClass(out, 'jp-card-focused');\n });\n QJ.on(el, 'blur', function() {\n return QJ.removeClass(out, 'jp-card-focused');\n });\n QJ.on(el, 'keyup change paste', function(e) {\n var elem, filter, i, j, join, k, len, len1, outEl, outVal, ref, results, val;\n val = (function() {\n var j, len, results;\n results = [];\n for (j = 0, len = el.length; j < len; j++) {\n elem = el[j];\n results.push(QJ.val(elem));\n }\n return results;\n })();\n join = opts.join(val);\n val = val.join(join);\n if (val === join) {\n val = \"\";\n }\n ref = opts.filters;\n for (j = 0, len = ref.length; j < len; j++) {\n filter = ref[j];\n val = filter(val, el, out);\n }\n results = [];\n for (i = k = 0, len1 = out.length; k < len1; i = ++k) {\n outEl = out[i];\n if (opts.fill) {\n outVal = val + outDefaults[i].substring(val.length);\n } else {\n outVal = val || outDefaults[i];\n }\n results.push(outEl.textContent = outVal);\n }\n return results;\n });\n return el;\n };\n\n return Card;\n\n })();\n\n module.exports = Card;\n\n global.Card = Card;\n\n}).call(this);\n","// a string of all valid unicode whitespaces\n// eslint-disable-next-line max-len\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.github.io/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckoutPlano.vue?vue&type=style&index=0&id=729a6a64&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckoutPlano.vue?vue&type=style&index=0&id=729a6a64&scoped=true&lang=css&\"","// Generated by CoffeeScript 1.10.0\n(function() {\n var QJ, rreturn, rtrim;\n\n QJ = function(selector) {\n if (QJ.isDOMElement(selector)) {\n return selector;\n }\n return document.querySelectorAll(selector);\n };\n\n QJ.isDOMElement = function(el) {\n return el && (el.nodeName != null);\n };\n\n rtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\n\n QJ.trim = function(text) {\n if (text === null) {\n return \"\";\n } else {\n return (text + \"\").replace(rtrim, \"\");\n }\n };\n\n rreturn = /\\r/g;\n\n QJ.val = function(el, val) {\n var ret;\n if (arguments.length > 1) {\n return el.value = val;\n } else {\n ret = el.value;\n if (typeof ret === \"string\") {\n return ret.replace(rreturn, \"\");\n } else {\n if (ret === null) {\n return \"\";\n } else {\n return ret;\n }\n }\n }\n };\n\n QJ.preventDefault = function(eventObject) {\n if (typeof eventObject.preventDefault === \"function\") {\n eventObject.preventDefault();\n return;\n }\n eventObject.returnValue = false;\n return false;\n };\n\n QJ.normalizeEvent = function(e) {\n var original;\n original = e;\n e = {\n which: original.which != null ? original.which : void 0,\n target: original.target || original.srcElement,\n preventDefault: function() {\n return QJ.preventDefault(original);\n },\n originalEvent: original,\n data: original.data || original.detail\n };\n if (e.which == null) {\n e.which = original.charCode != null ? original.charCode : original.keyCode;\n }\n return e;\n };\n\n QJ.on = function(element, eventName, callback) {\n var el, i, j, len, len1, multEventName, originalCallback, ref;\n if (element.length) {\n for (i = 0, len = element.length; i < len; i++) {\n el = element[i];\n QJ.on(el, eventName, callback);\n }\n return;\n }\n if (eventName.match(\" \")) {\n ref = eventName.split(\" \");\n for (j = 0, len1 = ref.length; j < len1; j++) {\n multEventName = ref[j];\n QJ.on(element, multEventName, callback);\n }\n return;\n }\n originalCallback = callback;\n callback = function(e) {\n e = QJ.normalizeEvent(e);\n return originalCallback(e);\n };\n if (element.addEventListener) {\n return element.addEventListener(eventName, callback, false);\n }\n if (element.attachEvent) {\n eventName = \"on\" + eventName;\n return element.attachEvent(eventName, callback);\n }\n element['on' + eventName] = callback;\n };\n\n QJ.addClass = function(el, className) {\n var e;\n if (el.length) {\n return (function() {\n var i, len, results;\n results = [];\n for (i = 0, len = el.length; i < len; i++) {\n e = el[i];\n results.push(QJ.addClass(e, className));\n }\n return results;\n })();\n }\n if (el.classList) {\n return el.classList.add(className);\n } else {\n return el.className += ' ' + className;\n }\n };\n\n QJ.hasClass = function(el, className) {\n var e, hasClass, i, len;\n if (el.length) {\n hasClass = true;\n for (i = 0, len = el.length; i < len; i++) {\n e = el[i];\n hasClass = hasClass && QJ.hasClass(e, className);\n }\n return hasClass;\n }\n if (el.classList) {\n return el.classList.contains(className);\n } else {\n return new RegExp('(^| )' + className + '( |$)', 'gi').test(el.className);\n }\n };\n\n QJ.removeClass = function(el, className) {\n var cls, e, i, len, ref, results;\n if (el.length) {\n return (function() {\n var i, len, results;\n results = [];\n for (i = 0, len = el.length; i < len; i++) {\n e = el[i];\n results.push(QJ.removeClass(e, className));\n }\n return results;\n })();\n }\n if (el.classList) {\n ref = className.split(' ');\n results = [];\n for (i = 0, len = ref.length; i < len; i++) {\n cls = ref[i];\n results.push(el.classList.remove(cls));\n }\n return results;\n } else {\n return el.className = el.className.replace(new RegExp('(^|\\\\b)' + className.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\n }\n };\n\n QJ.toggleClass = function(el, className, bool) {\n var e;\n if (el.length) {\n return (function() {\n var i, len, results;\n results = [];\n for (i = 0, len = el.length; i < len; i++) {\n e = el[i];\n results.push(QJ.toggleClass(e, className, bool));\n }\n return results;\n })();\n }\n if (bool) {\n if (!QJ.hasClass(el, className)) {\n return QJ.addClass(el, className);\n }\n } else {\n return QJ.removeClass(el, className);\n }\n };\n\n QJ.append = function(el, toAppend) {\n var e;\n if (el.length) {\n return (function() {\n var i, len, results;\n results = [];\n for (i = 0, len = el.length; i < len; i++) {\n e = el[i];\n results.push(QJ.append(e, toAppend));\n }\n return results;\n })();\n }\n return el.insertAdjacentHTML('beforeend', toAppend);\n };\n\n QJ.find = function(el, selector) {\n if (el instanceof NodeList || el instanceof Array) {\n el = el[0];\n }\n return el.querySelectorAll(selector);\n };\n\n QJ.trigger = function(el, name, data) {\n var e, error, ev;\n try {\n ev = new CustomEvent(name, {\n detail: data\n });\n } catch (error) {\n e = error;\n ev = document.createEvent('CustomEvent');\n if (ev.initCustomEvent) {\n ev.initCustomEvent(name, true, true, data);\n } else {\n ev.initEvent(name, true, true, data);\n }\n }\n return el.dispatchEvent(ev);\n };\n\n module.exports = QJ;\n\n}).call(this);\n","export default {\r\n\r\n smoothScrollYToElement: function(elm, duration, offsetY) {\r\n var elementY = window.pageYOffset + elm.getBoundingClientRect().top + (offsetY || 0);\r\n this.smoothScrollYToPosition(elementY, duration, offsetY);\r\n },\r\n\r\n smoothScrollYToPosition: function(elementY, duration) {\r\n if (duration === undefined) {\r\n duration = 700;\r\n }\r\n var startingY = window.pageYOffset;\r\n var diff = elementY - startingY;\r\n var start;\r\n\r\n // Bootstrap our animation - it will get called right before next frame shall be rendered.\r\n window.requestAnimationFrame(function step(timestamp) {\r\n if (!start) start = timestamp;\r\n // Elapsed milliseconds since start of scrolling.\r\n var time = timestamp - start;\r\n // Get percent of completion in range [0, 1].\r\n var percent = Math.min(time / duration, 1);\r\n\r\n window.scrollTo(0, startingY + diff * percent);\r\n\r\n // Proceed with animation as long as we wanted it to.\r\n if (time < duration) {\r\n window.requestAnimationFrame(step);\r\n }\r\n })\r\n },\r\n\r\n smoothScrollContainerToBottom: function(containerElm, duration) {\r\n if (duration === undefined) {\r\n duration = 700;\r\n }\r\n var startingY = containerElm.scrollTop;\r\n var diff = containerElm.scrollHeight - startingY;\r\n var start;\r\n\r\n // Bootstrap our animation - it will get called right before next frame shall be rendered.\r\n window.requestAnimationFrame(function step(timestamp) {\r\n if (!start) start = timestamp;\r\n // Elapsed milliseconds since start of scrolling.\r\n var time = timestamp - start;\r\n // Get percent of completion in range [0, 1].\r\n var percent = Math.min(time / duration, 1);\r\n\r\n containerElm.scrollTo(0, startingY + diff * percent);\r\n\r\n // Proceed with animation as long as we wanted it to.\r\n if (time < duration) {\r\n window.requestAnimationFrame(step);\r\n }\r\n })\r\n }\r\n\r\n}","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","export default {\r\nitensDescricaoPlano(descricao) {\r\n if (!descricao) {\r\n return [];\r\n }\r\n\r\n var itens = descricao.trim().split(\";\");\r\n\r\n itens = itens.filter(item => item.trim());\r\n return itens;\r\n }\r\n}","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n// These values are designed to match the ASP.NET Log Levels since that's the pattern we're emulating here.\r\n/** Indicates the severity of a log message.\r\n *\r\n * Log Levels are ordered in increasing severity. So `Debug` is more severe than `Trace`, etc.\r\n */\r\nexport var LogLevel;\r\n(function (LogLevel) {\r\n /** Log level for very low severity diagnostic messages. */\r\n LogLevel[LogLevel[\"Trace\"] = 0] = \"Trace\";\r\n /** Log level for low severity diagnostic messages. */\r\n LogLevel[LogLevel[\"Debug\"] = 1] = \"Debug\";\r\n /** Log level for informational diagnostic messages. */\r\n LogLevel[LogLevel[\"Information\"] = 2] = \"Information\";\r\n /** Log level for diagnostic messages that indicate a non-fatal problem. */\r\n LogLevel[LogLevel[\"Warning\"] = 3] = \"Warning\";\r\n /** Log level for diagnostic messages that indicate a failure in the current operation. */\r\n LogLevel[LogLevel[\"Error\"] = 4] = \"Error\";\r\n /** Log level for diagnostic messages that indicate a failure that will terminate the entire application. */\r\n LogLevel[LogLevel[\"Critical\"] = 5] = \"Critical\";\r\n /** The highest possible log level. Used when configuring logging to indicate that no log messages should be emitted. */\r\n LogLevel[LogLevel[\"None\"] = 6] = \"None\";\r\n})(LogLevel || (LogLevel = {}));\r\n//# sourceMappingURL=ILogger.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n/** A logger that does nothing when log messages are sent to it. */\r\nvar NullLogger = /** @class */ (function () {\r\n function NullLogger() {\r\n }\r\n /** @inheritDoc */\r\n // tslint:disable-next-line\r\n NullLogger.prototype.log = function (_logLevel, _message) {\r\n };\r\n /** The singleton instance of the {@link @aspnet/signalr.NullLogger}. */\r\n NullLogger.instance = new NullLogger();\r\n return NullLogger;\r\n}());\r\nexport { NullLogger };\r\n//# sourceMappingURL=Loggers.js.map","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\nvar USES_TO_LENGTH = arrayMethodUsesToLength(FIND);\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES || !USES_TO_LENGTH }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","'use strict';\n\nmodule.exports = require('./lib/extend');\n","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n};\r\n/** Represents an HTTP response. */\r\nvar HttpResponse = /** @class */ (function () {\r\n function HttpResponse(statusCode, statusText, content) {\r\n this.statusCode = statusCode;\r\n this.statusText = statusText;\r\n this.content = content;\r\n }\r\n return HttpResponse;\r\n}());\r\nexport { HttpResponse };\r\n/** Abstraction over an HTTP client.\r\n *\r\n * This class provides an abstraction over an HTTP client so that a different implementation can be provided on different platforms.\r\n */\r\nvar HttpClient = /** @class */ (function () {\r\n function HttpClient() {\r\n }\r\n HttpClient.prototype.get = function (url, options) {\r\n return this.send(__assign({}, options, { method: \"GET\", url: url }));\r\n };\r\n HttpClient.prototype.post = function (url, options) {\r\n return this.send(__assign({}, options, { method: \"POST\", url: url }));\r\n };\r\n HttpClient.prototype.delete = function (url, options) {\r\n return this.send(__assign({}, options, { method: \"DELETE\", url: url }));\r\n };\r\n /** Gets all cookies that apply to the specified URL.\r\n *\r\n * @param url The URL that the cookies are valid for.\r\n * @returns {string} A string containing all the key-value cookie pairs for the specified URL.\r\n */\r\n // @ts-ignore\r\n HttpClient.prototype.getCookieString = function (url) {\r\n return \"\";\r\n };\r\n return HttpClient;\r\n}());\r\nexport { HttpClient };\r\n//# sourceMappingURL=HttpClient.js.map","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","'use strict';\n\n/*!\n * node.extend\n * Copyright 2011, John Resig\n * Dual licensed under the MIT or GPL Version 2 licenses.\n * http://jquery.org/license\n *\n * @fileoverview\n * Port of jQuery.extend that actually works on node.js\n */\nvar is = require('is');\nvar has = require('has');\n\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setP(target, name, value) {\n if (defineProperty && name === '__proto__') {\n defineProperty(target, name, {\n enumerable: true,\n configurable: true,\n value: value,\n writable: true\n });\n } else {\n target[name] = value;\n }\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getP(obj, name) {\n if (name === '__proto__') {\n if (!has(obj, name)) {\n return void 0;\n } else if (gOPD) {\n // In early versions of node, obj['__proto__'] is buggy when obj has\n // __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n return gOPD(obj, name).value;\n }\n }\n\n return obj[name];\n};\n\n// eslint-disable-next-line func-style\nfunction extend() {\n var target = arguments[0] || {};\n var i = 1;\n var length = arguments.length;\n var deep = false;\n var options, name, src, copy, copyIsArray, clone;\n\n // Handle a deep copy situation\n if (typeof target === 'boolean') {\n deep = target;\n target = arguments[1] || {};\n // skip the boolean and the target\n i = 2;\n }\n\n // Handle case when target is a string or something (possible in deep copy)\n if (typeof target !== 'object' && !is.fn(target)) {\n target = {};\n }\n\n for (; i < length; i++) {\n // Only deal with non-null/undefined values\n options = arguments[i];\n if (options != null) {\n if (typeof options === 'string') {\n options = options.split('');\n }\n // Extend the base object\n for (name in options) {\n src = getProperty(target, name);\n copy = getProperty(options, name);\n\n // Prevent never-ending loop\n if (target === copy) {\n continue;\n }\n\n // Recurse if we're merging plain objects or arrays\n if (deep && copy && (is.hash(copy) || (copyIsArray = is.array(copy)))) {\n if (copyIsArray) {\n copyIsArray = false;\n clone = src && is.array(src) ? src : [];\n } else {\n clone = src && is.hash(src) ? src : {};\n }\n\n // Never move original objects, clone them\n setProperty(target, name, extend(deep, clone, copy));\n\n // Don't bring in undefined values\n } else if (typeof copy !== 'undefined') {\n setProperty(target, name, copy);\n }\n }\n }\n }\n\n // Return the modified object\n return target;\n}\n\n/**\n * @public\n */\nextend.version = '1.1.7';\n\n/**\n * Exports module.\n */\nmodule.exports = extend;\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChatMessages.vue?vue&type=style&index=0&lang=less&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChatMessages.vue?vue&type=style&index=0&lang=less&\"","/* globals window, HTMLElement */\n\n'use strict';\n\n/**!\n * is\n * the definitive JavaScript type testing library\n *\n * @copyright 2013-2014 Enrico Marino / Jordan Harband\n * @license MIT\n */\n\nvar objProto = Object.prototype;\nvar owns = objProto.hasOwnProperty;\nvar toStr = objProto.toString;\nvar symbolValueOf;\nif (typeof Symbol === 'function') {\n symbolValueOf = Symbol.prototype.valueOf;\n}\nvar bigIntValueOf;\nif (typeof BigInt === 'function') {\n bigIntValueOf = BigInt.prototype.valueOf;\n}\nvar isActualNaN = function (value) {\n return value !== value;\n};\nvar NON_HOST_TYPES = {\n 'boolean': 1,\n number: 1,\n string: 1,\n undefined: 1\n};\n\nvar base64Regex = /^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$/;\nvar hexRegex = /^[A-Fa-f0-9]+$/;\n\n/**\n * Expose `is`\n */\n\nvar is = {};\n\n/**\n * Test general.\n */\n\n/**\n * is.type\n * Test if `value` is a type of `type`.\n *\n * @param {*} value value to test\n * @param {String} type type\n * @return {Boolean} true if `value` is a type of `type`, false otherwise\n * @api public\n */\n\nis.a = is.type = function (value, type) {\n return typeof value === type;\n};\n\n/**\n * is.defined\n * Test if `value` is defined.\n *\n * @param {*} value value to test\n * @return {Boolean} true if 'value' is defined, false otherwise\n * @api public\n */\n\nis.defined = function (value) {\n return typeof value !== 'undefined';\n};\n\n/**\n * is.empty\n * Test if `value` is empty.\n *\n * @param {*} value value to test\n * @return {Boolean} true if `value` is empty, false otherwise\n * @api public\n */\n\nis.empty = function (value) {\n var type = toStr.call(value);\n var key;\n\n if (type === '[object Array]' || type === '[object Arguments]' || type === '[object String]') {\n return value.length === 0;\n }\n\n if (type === '[object Object]') {\n for (key in value) {\n if (owns.call(value, key)) {\n return false;\n }\n }\n return true;\n }\n\n return !value;\n};\n\n/**\n * is.equal\n * Test if `value` is equal to `other`.\n *\n * @param {*} value value to test\n * @param {*} other value to compare with\n * @return {Boolean} true if `value` is equal to `other`, false otherwise\n */\n\nis.equal = function equal(value, other) {\n if (value === other) {\n return true;\n }\n\n var type = toStr.call(value);\n var key;\n\n if (type !== toStr.call(other)) {\n return false;\n }\n\n if (type === '[object Object]') {\n for (key in value) {\n if (!is.equal(value[key], other[key]) || !(key in other)) {\n return false;\n }\n }\n for (key in other) {\n if (!is.equal(value[key], other[key]) || !(key in value)) {\n return false;\n }\n }\n return true;\n }\n\n if (type === '[object Array]') {\n key = value.length;\n if (key !== other.length) {\n return false;\n }\n while (key--) {\n if (!is.equal(value[key], other[key])) {\n return false;\n }\n }\n return true;\n }\n\n if (type === '[object Function]') {\n return value.prototype === other.prototype;\n }\n\n if (type === '[object Date]') {\n return value.getTime() === other.getTime();\n }\n\n return false;\n};\n\n/**\n * is.hosted\n * Test if `value` is hosted by `host`.\n *\n * @param {*} value to test\n * @param {*} host host to test with\n * @return {Boolean} true if `value` is hosted by `host`, false otherwise\n * @api public\n */\n\nis.hosted = function (value, host) {\n var type = typeof host[value];\n return type === 'object' ? !!host[value] : !NON_HOST_TYPES[type];\n};\n\n/**\n * is.instance\n * Test if `value` is an instance of `constructor`.\n *\n * @param {*} value value to test\n * @return {Boolean} true if `value` is an instance of `constructor`\n * @api public\n */\n\nis.instance = is['instanceof'] = function (value, constructor) {\n return value instanceof constructor;\n};\n\n/**\n * is.nil / is.null\n * Test if `value` is null.\n *\n * @param {*} value value to test\n * @return {Boolean} true if `value` is null, false otherwise\n * @api public\n */\n\nis.nil = is['null'] = function (value) {\n return value === null;\n};\n\n/**\n * is.undef / is.undefined\n * Test if `value` is undefined.\n *\n * @param {*} value value to test\n * @return {Boolean} true if `value` is undefined, false otherwise\n * @api public\n */\n\nis.undef = is.undefined = function (value) {\n return typeof value === 'undefined';\n};\n\n/**\n * Test arguments.\n */\n\n/**\n * is.args\n * Test if `value` is an arguments object.\n *\n * @param {*} value value to test\n * @return {Boolean} true if `value` is an arguments object, false otherwise\n * @api public\n */\n\nis.args = is.arguments = function (value) {\n var isStandardArguments = toStr.call(value) === '[object Arguments]';\n var isOldArguments = !is.array(value) && is.arraylike(value) && is.object(value) && is.fn(value.callee);\n return isStandardArguments || isOldArguments;\n};\n\n/**\n * Test array.\n */\n\n/**\n * is.array\n * Test if 'value' is an array.\n *\n * @param {*} value value to test\n * @return {Boolean} true if `value` is an array, false otherwise\n * @api public\n */\n\nis.array = Array.isArray || function (value) {\n return toStr.call(value) === '[object Array]';\n};\n\n/**\n * is.arguments.empty\n * Test if `value` is an empty arguments object.\n *\n * @param {*} value value to test\n * @return {Boolean} true if `value` is an empty arguments object, false otherwise\n * @api public\n */\nis.args.empty = function (value) {\n return is.args(value) && value.length === 0;\n};\n\n/**\n * is.array.empty\n * Test if `value` is an empty array.\n *\n * @param {*} value value to test\n * @return {Boolean} true if `value` is an empty array, false otherwise\n * @api public\n */\nis.array.empty = function (value) {\n return is.array(value) && value.length === 0;\n};\n\n/**\n * is.arraylike\n * Test if `value` is an arraylike object.\n *\n * @param {*} value value to test\n * @return {Boolean} true if `value` is an arguments object, false otherwise\n * @api public\n */\n\nis.arraylike = function (value) {\n return !!value && !is.bool(value)\n && owns.call(value, 'length')\n && isFinite(value.length)\n && is.number(value.length)\n && value.length >= 0;\n};\n\n/**\n * Test boolean.\n */\n\n/**\n * is.bool\n * Test if `value` is a boolean.\n *\n * @param {*} value value to test\n * @return {Boolean} true if `value` is a boolean, false otherwise\n * @api public\n */\n\nis.bool = is['boolean'] = function (value) {\n return toStr.call(value) === '[object Boolean]';\n};\n\n/**\n * is.false\n * Test if `value` is false.\n *\n * @param {*} value value to test\n * @return {Boolean} true if `value` is false, false otherwise\n * @api public\n */\n\nis['false'] = function (value) {\n return is.bool(value) && Boolean(Number(value)) === false;\n};\n\n/**\n * is.true\n * Test if `value` is true.\n *\n * @param {*} value value to test\n * @return {Boolean} true if `value` is true, false otherwise\n * @api public\n */\n\nis['true'] = function (value) {\n return is.bool(value) && Boolean(Number(value)) === true;\n};\n\n/**\n * Test date.\n */\n\n/**\n * is.date\n * Test if `value` is a date.\n *\n * @param {*} value value to test\n * @return {Boolean} true if `value` is a date, false otherwise\n * @api public\n */\n\nis.date = function (value) {\n return toStr.call(value) === '[object Date]';\n};\n\n/**\n * is.date.valid\n * Test if `value` is a valid date.\n *\n * @param {*} value value to test\n * @returns {Boolean} true if `value` is a valid date, false otherwise\n */\nis.date.valid = function (value) {\n return is.date(value) && !isNaN(Number(value));\n};\n\n/**\n * Test element.\n */\n\n/**\n * is.element\n * Test if `value` is an html element.\n *\n * @param {*} value value to test\n * @return {Boolean} true if `value` is an HTML Element, false otherwise\n * @api public\n */\n\nis.element = function (value) {\n return value !== undefined\n && typeof HTMLElement !== 'undefined'\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Test error.\n */\n\n/**\n * is.error\n * Test if `value` is an error object.\n *\n * @param {*} value value to test\n * @return {Boolean} true if `value` is an error object, false otherwise\n * @api public\n */\n\nis.error = function (value) {\n return toStr.call(value) === '[object Error]';\n};\n\n/**\n * Test function.\n */\n\n/**\n * is.fn / is.function (deprecated)\n * Test if `value` is a function.\n *\n * @param {*} value value to test\n * @return {Boolean} true if `value` is a function, false otherwise\n * @api public\n */\n\nis.fn = is['function'] = function (value) {\n var isAlert = typeof window !== 'undefined' && value === window.alert;\n if (isAlert) {\n return true;\n }\n var str = toStr.call(value);\n return str === '[object Function]' || str === '[object GeneratorFunction]' || str === '[object AsyncFunction]';\n};\n\n/**\n * Test number.\n */\n\n/**\n * is.number\n * Test if `value` is a number.\n *\n * @param {*} value value to test\n * @return {Boolean} true if `value` is a number, false otherwise\n * @api public\n */\n\nis.number = function (value) {\n return toStr.call(value) === '[object Number]';\n};\n\n/**\n * is.infinite\n * Test if `value` is positive or negative infinity.\n *\n * @param {*} value value to test\n * @return {Boolean} true if `value` is positive or negative Infinity, false otherwise\n * @api public\n */\nis.infinite = function (value) {\n return value === Infinity || value === -Infinity;\n};\n\n/**\n * is.decimal\n * Test if `value` is a decimal number.\n *\n * @param {*} value value to test\n * @return {Boolean} true if `value` is a decimal number, false otherwise\n * @api public\n */\n\nis.decimal = function (value) {\n return is.number(value) && !isActualNaN(value) && !is.infinite(value) && value % 1 !== 0;\n};\n\n/**\n * is.divisibleBy\n * Test if `value` is divisible by `n`.\n *\n * @param {Number} value value to test\n * @param {Number} n dividend\n * @return {Boolean} true if `value` is divisible by `n`, false otherwise\n * @api public\n */\n\nis.divisibleBy = function (value, n) {\n var isDividendInfinite = is.infinite(value);\n var isDivisorInfinite = is.infinite(n);\n var isNonZeroNumber = is.number(value) && !isActualNaN(value) && is.number(n) && !isActualNaN(n) && n !== 0;\n return isDividendInfinite || isDivisorInfinite || (isNonZeroNumber && value % n === 0);\n};\n\n/**\n * is.integer\n * Test if `value` is an integer.\n *\n * @param value to test\n * @return {Boolean} true if `value` is an integer, false otherwise\n * @api public\n */\n\nis.integer = is['int'] = function (value) {\n return is.number(value) && !isActualNaN(value) && value % 1 === 0;\n};\n\n/**\n * is.maximum\n * Test if `value` is greater than 'others' values.\n *\n * @param {Number} value value to test\n * @param {Array} others values to compare with\n * @return {Boolean} true if `value` is greater than `others` values\n * @api public\n */\n\nis.maximum = function (value, others) {\n if (isActualNaN(value)) {\n throw new TypeError('NaN is not a valid value');\n } else if (!is.arraylike(others)) {\n throw new TypeError('second argument must be array-like');\n }\n var len = others.length;\n\n while (--len >= 0) {\n if (value < others[len]) {\n return false;\n }\n }\n\n return true;\n};\n\n/**\n * is.minimum\n * Test if `value` is less than `others` values.\n *\n * @param {Number} value value to test\n * @param {Array} others values to compare with\n * @return {Boolean} true if `value` is less than `others` values\n * @api public\n */\n\nis.minimum = function (value, others) {\n if (isActualNaN(value)) {\n throw new TypeError('NaN is not a valid value');\n } else if (!is.arraylike(others)) {\n throw new TypeError('second argument must be array-like');\n }\n var len = others.length;\n\n while (--len >= 0) {\n if (value > others[len]) {\n return false;\n }\n }\n\n return true;\n};\n\n/**\n * is.nan\n * Test if `value` is not a number.\n *\n * @param {*} value value to test\n * @return {Boolean} true if `value` is not a number, false otherwise\n * @api public\n */\n\nis.nan = function (value) {\n return !is.number(value) || value !== value;\n};\n\n/**\n * is.even\n * Test if `value` is an even number.\n *\n * @param {Number} value value to test\n * @return {Boolean} true if `value` is an even number, false otherwise\n * @api public\n */\n\nis.even = function (value) {\n return is.infinite(value) || (is.number(value) && value === value && value % 2 === 0);\n};\n\n/**\n * is.odd\n * Test if `value` is an odd number.\n *\n * @param {Number} value value to test\n * @return {Boolean} true if `value` is an odd number, false otherwise\n * @api public\n */\n\nis.odd = function (value) {\n return is.infinite(value) || (is.number(value) && value === value && value % 2 !== 0);\n};\n\n/**\n * is.ge\n * Test if `value` is greater than or equal to `other`.\n *\n * @param {Number} value value to test\n * @param {Number} other value to compare with\n * @return {Boolean}\n * @api public\n */\n\nis.ge = function (value, other) {\n if (isActualNaN(value) || isActualNaN(other)) {\n throw new TypeError('NaN is not a valid value');\n }\n return !is.infinite(value) && !is.infinite(other) && value >= other;\n};\n\n/**\n * is.gt\n * Test if `value` is greater than `other`.\n *\n * @param {Number} value value to test\n * @param {Number} other value to compare with\n * @return {Boolean}\n * @api public\n */\n\nis.gt = function (value, other) {\n if (isActualNaN(value) || isActualNaN(other)) {\n throw new TypeError('NaN is not a valid value');\n }\n return !is.infinite(value) && !is.infinite(other) && value > other;\n};\n\n/**\n * is.le\n * Test if `value` is less than or equal to `other`.\n *\n * @param {Number} value value to test\n * @param {Number} other value to compare with\n * @return {Boolean} if 'value' is less than or equal to 'other'\n * @api public\n */\n\nis.le = function (value, other) {\n if (isActualNaN(value) || isActualNaN(other)) {\n throw new TypeError('NaN is not a valid value');\n }\n return !is.infinite(value) && !is.infinite(other) && value <= other;\n};\n\n/**\n * is.lt\n * Test if `value` is less than `other`.\n *\n * @param {Number} value value to test\n * @param {Number} other value to compare with\n * @return {Boolean} if `value` is less than `other`\n * @api public\n */\n\nis.lt = function (value, other) {\n if (isActualNaN(value) || isActualNaN(other)) {\n throw new TypeError('NaN is not a valid value');\n }\n return !is.infinite(value) && !is.infinite(other) && value < other;\n};\n\n/**\n * is.within\n * Test if `value` is within `start` and `finish`.\n *\n * @param {Number} value value to test\n * @param {Number} start lower bound\n * @param {Number} finish upper bound\n * @return {Boolean} true if 'value' is is within 'start' and 'finish'\n * @api public\n */\nis.within = function (value, start, finish) {\n if (isActualNaN(value) || isActualNaN(start) || isActualNaN(finish)) {\n throw new TypeError('NaN is not a valid value');\n } else if (!is.number(value) || !is.number(start) || !is.number(finish)) {\n throw new TypeError('all arguments must be numbers');\n }\n var isAnyInfinite = is.infinite(value) || is.infinite(start) || is.infinite(finish);\n return isAnyInfinite || (value >= start && value <= finish);\n};\n\n/**\n * Test object.\n */\n\n/**\n * is.object\n * Test if `value` is an object.\n *\n * @param {*} value value to test\n * @return {Boolean} true if `value` is an object, false otherwise\n * @api public\n */\nis.object = function (value) {\n return toStr.call(value) === '[object Object]';\n};\n\n/**\n * is.primitive\n * Test if `value` is a primitive.\n *\n * @param {*} value value to test\n * @return {Boolean} true if `value` is a primitive, false otherwise\n * @api public\n */\nis.primitive = function isPrimitive(value) {\n if (!value) {\n return true;\n }\n if (typeof value === 'object' || is.object(value) || is.fn(value) || is.array(value)) {\n return false;\n }\n return true;\n};\n\n/**\n * is.hash\n * Test if `value` is a hash - a plain object literal.\n *\n * @param {*} value value to test\n * @return {Boolean} true if `value` is a hash, false otherwise\n * @api public\n */\n\nis.hash = function (value) {\n return is.object(value) && value.constructor === Object && !value.nodeType && !value.setInterval;\n};\n\n/**\n * Test regexp.\n */\n\n/**\n * is.regexp\n * Test if `value` is a regular expression.\n *\n * @param {*} value value to test\n * @return {Boolean} true if `value` is a regexp, false otherwise\n * @api public\n */\n\nis.regexp = function (value) {\n return toStr.call(value) === '[object RegExp]';\n};\n\n/**\n * Test string.\n */\n\n/**\n * is.string\n * Test if `value` is a string.\n *\n * @param {*} value value to test\n * @return {Boolean} true if 'value' is a string, false otherwise\n * @api public\n */\n\nis.string = function (value) {\n return toStr.call(value) === '[object String]';\n};\n\n/**\n * Test base64 string.\n */\n\n/**\n * is.base64\n * Test if `value` is a valid base64 encoded string.\n *\n * @param {*} value value to test\n * @return {Boolean} true if 'value' is a base64 encoded string, false otherwise\n * @api public\n */\n\nis.base64 = function (value) {\n return is.string(value) && (!value.length || base64Regex.test(value));\n};\n\n/**\n * Test base64 string.\n */\n\n/**\n * is.hex\n * Test if `value` is a valid hex encoded string.\n *\n * @param {*} value value to test\n * @return {Boolean} true if 'value' is a hex encoded string, false otherwise\n * @api public\n */\n\nis.hex = function (value) {\n return is.string(value) && (!value.length || hexRegex.test(value));\n};\n\n/**\n * is.symbol\n * Test if `value` is an ES6 Symbol\n *\n * @param {*} value value to test\n * @return {Boolean} true if `value` is a Symbol, false otherise\n * @api public\n */\n\nis.symbol = function (value) {\n return typeof Symbol === 'function' && toStr.call(value) === '[object Symbol]' && typeof symbolValueOf.call(value) === 'symbol';\n};\n\n/**\n * is.bigint\n * Test if `value` is an ES-proposed BigInt\n *\n * @param {*} value value to test\n * @return {Boolean} true if `value` is a BigInt, false otherise\n * @api public\n */\n\nis.bigint = function (value) {\n // eslint-disable-next-line valid-typeof\n return typeof BigInt === 'function' && toStr.call(value) === '[object BigInt]' && typeof bigIntValueOf.call(value) === 'bigint';\n};\n\nmodule.exports = is;\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container text-left\"},[_vm._m(0),(_vm.loadingGeral)?_c('div',{staticClass:\"p-3\"},[_vm._v(\"Carregando...\")]):_vm._e(),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.loadingGeral),expression:\"!loadingGeral\"}],staticClass:\"row\"},[_c('div',{staticClass:\"col-lg-4 mb-5 order-lg-2\"},[_c('h5',{staticClass:\"text-muted\"},[_vm._v(\"Plano escolhido:\")]),_c('div',{staticClass:\"card shadow plano-escolhido border-0\"},[_c('div',{staticClass:\"card-body\"},[_c('h6',[_vm._v(_vm._s(_vm.planoAnuncio.nome))]),_c('small',{staticClass:\"text-muted\"},_vm._l((_vm.planoAnuncioCore.itensDescricaoPlano(\n _vm.planoAnuncio.descricao\n )),function(item,index){return _c('div',{key:'p' + index},[_vm._v(\" \"+_vm._s(item)+\" \")])}),0)]),_c('div',{staticClass:\"card-footer\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-4\"},[_vm._v(\"Total\")]),_c('div',{staticClass:\"col-8 text-right\"},[(!isNaN(_vm.valorAnterior) && _vm.valorAnterior > 0)?_c('small',{staticClass:\"text-muted\"},[_vm._v(\" De: \"),_c('del',[_vm._v(_vm._s(_vm.formatacaoMoeda(_vm.valorAnterior)))])]):_vm._e(),_c('div',[_c('strong',[(!isNaN(_vm.valorAnterior) && _vm.valorAnterior > 0)?_c('span',[_vm._v(\"Por:\")]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.formatacaoMoeda(_vm.valorTotal))+\" \")])]),(_vm.descontoPorcentagem)?_c('div',{staticClass:\"text-success\"},[_vm._v(\" \"+_vm._s(_vm.descontoPorcentagem)+\"% de desconto \")]):_vm._e(),(_vm.descontoValor)?_c('div',{staticClass:\"text-success\"},[_vm._v(\" \"+_vm._s(_vm.formatacaoMoeda(_vm.descontoValor))+\" de desconto \")]):_vm._e()])]),(!_vm.cupomAplicado && _vm.valorTotal > 0)?_c('div',{staticClass:\"input-group mt-3\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.cupom),expression:\"cupom\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"placeholder\":\"Cupom de desconto\"},domProps:{\"value\":(_vm.cupom)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.cupom=$event.target.value}}}),_c('div',{staticClass:\"input-group-append\"},[_c('button',{staticClass:\"btn btn-light-gray\",attrs:{\"disabled\":_vm.loadingCupom},on:{\"click\":function($event){$event.preventDefault();return _vm.onClickAplicarCupom($event)}}},[_vm._v(\" Aplicar \")])])]):_vm._e(),(_vm.loadingCupom)?_c('div',[_c('small',[_vm._v(\"Validando o cupom...\")])]):_vm._e()])]),_c('h5',{staticClass:\"text-muted mt-4\"},[_vm._v(\"Para o anúncio:\")]),_c('BlocoMeuAnuncio',{staticStyle:{\"height\":\"auto\"},attrs:{\"dados\":_vm.anuncio,\"esconderOpcoes\":true}})],1),_c('div',{staticClass:\"col-lg-8 mb-5 order-lg-1\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.naoPrecisaDePagamento),expression:\"naoPrecisaDePagamento\"}]},[_c('div',{staticClass:\"mb-3 py-3\"},[_vm._v(\"Que ótimo! Você não precisará pagar nada.\")]),_c('hr'),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"offset-md-4 col-md-8 text-right\"},[_c('button',{staticClass:\"btn btn-success btn-block\",attrs:{\"disabled\":_vm.loadingFinalizar},on:{\"click\":function($event){$event.preventDefault();return _vm.onClickRealizarPagamento()}}},[(_vm.loadingFinalizar)?_c('span',[_vm._v(\"Por favor aguarde...\")]):_vm._e(),(!_vm.loadingFinalizar)?_c('span',[_vm._v(\"Confirmar compra\")]):_vm._e()])])])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.naoPrecisaDePagamento),expression:\"!naoPrecisaDePagamento\"}]},[_c('ValidationObserver',{scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var invalid = ref.invalid;\n var handleSubmit = ref.handleSubmit;\nreturn [_c('form',{attrs:{\"id\":\"formStep3\"},on:{\"submit\":function($event){$event.preventDefault();return handleSubmit()}}},[_c('div',{staticClass:\"alert alert-info\"},[_vm._v(\" ATENÇÂO: O pagamento deve ser feito exclusivamente com \"),_c('b',[_vm._v(\"cartão de crédito\")]),_vm._v(\". \")]),_c('div',{staticClass:\"card-wrapper\"}),_c('div',{staticClass:\"row mt-4\"},[_c('div',{staticClass:\"col-md-6 mb-3\"},[_c('label',{attrs:{\"for\":\"firstName\"}},[_vm._v(\"Número do cartão\")]),_c('ValidationProvider',{attrs:{\"name\":\"número do cartão\",\"rules\":\"required\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var errors = ref.errors;\n var classes = ref.classes;\nreturn [_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.dados.numCartao),expression:\"dados.numCartao\"}],staticClass:\"form-control\",class:classes,attrs:{\"type\":\"tel\",\"name\":\"cardNumber\"},domProps:{\"value\":(_vm.dados.numCartao)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.dados, \"numCartao\", $event.target.value)}}}),_c('span',{staticClass:\"invalid-feedback\"},[_vm._v(_vm._s(errors[0]))])]}}],null,true)})],1),_c('div',{staticClass:\"col-md-3 mb-3\"},[_c('label',{attrs:{\"for\":\"lastName\"}},[_vm._v(\"Validade\")]),_c('ValidationProvider',{attrs:{\"name\":\"validade\",\"rules\":\"required|min:5\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var errors = ref.errors;\n var classes = ref.classes;\nreturn [_c('input',{directives:[{name:\"mask\",rawName:\"v-mask\",value:('##/##'),expression:\"'##/##'\"},{name:\"model\",rawName:\"v-model\",value:(_vm.dados.validadeCartao),expression:\"dados.validadeCartao\"}],staticClass:\"form-control\",class:classes,attrs:{\"type\":\"tel\",\"name\":\"cardExpiry\",\"placeholder\":\"mm/aa\"},domProps:{\"value\":(_vm.dados.validadeCartao)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.dados, \"validadeCartao\", $event.target.value)}}}),_c('span',{staticClass:\"invalid-feedback\"},[_vm._v(_vm._s(errors[0]))])]}}],null,true)})],1),_c('div',{staticClass:\"col-md-3 mb-3\"},[_c('label',{attrs:{\"for\":\"lastName\"}},[_vm._v(\"CVC\")]),_c('ValidationProvider',{attrs:{\"name\":\"cvc\",\"rules\":\"required|min:2\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var errors = ref.errors;\n var classes = ref.classes;\nreturn [_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.dados.cvcCartao),expression:\"dados.cvcCartao\"}],staticClass:\"form-control\",class:classes,attrs:{\"type\":\"tel\",\"name\":\"cardCvc\"},domProps:{\"value\":(_vm.dados.cvcCartao)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.dados, \"cvcCartao\", $event.target.value)}}}),_c('span',{staticClass:\"invalid-feedback\"},[_vm._v(_vm._s(errors[0]))])]}}],null,true)})],1)]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-6 mb-3\"},[_c('label',{attrs:{\"for\":\"firstName\"}},[_vm._v(\"Nome impresso no cartão\")]),_c('ValidationProvider',{attrs:{\"name\":\"nome\",\"rules\":\"required|min:10\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\n var errors = ref.errors;\n var classes = ref.classes;\nreturn [_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.dados.nomeCartao),expression:\"dados.nomeCartao\"}],staticClass:\"form-control\",class:classes,attrs:{\"type\":\"text\",\"name\":\"cardName\"},domProps:{\"value\":(_vm.dados.nomeCartao)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.dados, \"nomeCartao\", $event.target.value)}}}),_c('span',{staticClass:\"invalid-feedback\"},[_vm._v(_vm._s(errors[0]))])]}}],null,true)})],1),_c('div',{staticClass:\"col-md-6 text-right\"},[_c('img',{staticClass:\"mt-2\",attrs:{\"src\":\"/img/ssl-site-seguro.png\",\"width\":\"120\"}})])])]),_c('hr'),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"offset-md-4 col-md-8 text-right\"},[_c('button',{staticClass:\"btn btn-success btn-block\",attrs:{\"disabled\":_vm.loadingFinalizar || invalid},on:{\"click\":function($event){$event.preventDefault();return _vm.onClickRealizarPagamento()}}},[(_vm.loadingFinalizar)?_c('span',[_vm._v(\"Por favor aguarde...\")]):_vm._e(),(!_vm.loadingFinalizar)?_c('span',[_vm._v(\"Realizar pagamento\")]):_vm._e()])])])]}}])})],1)])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"py-3\"},[_c('h2',[_vm._v(\"Adquirir plano de anúncio\")])])}]\n\nexport { render, staticRenderFns }","function formatarMoeda(texto) {\r\n var valor = parseFloat(texto) || 0;\r\n var formatado = (valor).toLocaleString('pt-br', { style: 'currency', currency: 'BRL' });\r\n return formatado;\r\n}\r\n\r\nexport default formatarMoeda;","import moment from 'moment';\r\n\r\nfunction validacaoExpiracaoCartaoCredito(mes, ano) {\r\n\r\n if (!mes || !ano) { return false; }\r\n\r\n var vMes = mes.trim();\r\n var vAno = ano.trim();\r\n if (vAno.length == 2) {\r\n vAno = \"20\" + vAno;\r\n }\r\n\r\n if (vMes.length == 1) {\r\n vMes = \"0\" + vMes;\r\n }\r\n\r\n var mExpireDate = moment(`${vAno}-${vMes}-01`);\r\n\r\n if (moment().isAfter(mExpireDate)) {\r\n //Cartão vencido\r\n return false;\r\n }\r\n\r\n return true;\r\n}\r\n\r\nexport default validacaoExpiracaoCartaoCredito;","\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckoutPlano.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CheckoutPlano.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./CheckoutPlano.vue?vue&type=template&id=729a6a64&scoped=true&\"\nimport script from \"./CheckoutPlano.vue?vue&type=script&lang=js&\"\nexport * from \"./CheckoutPlano.vue?vue&type=script&lang=js&\"\nimport style0 from \"./CheckoutPlano.vue?vue&type=style&index=0&id=729a6a64&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"729a6a64\",\n null\n \n)\n\nexport default component.exports","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/** Error thrown when an HTTP request fails. */\r\nvar HttpError = /** @class */ (function (_super) {\r\n __extends(HttpError, _super);\r\n /** Constructs a new instance of {@link @aspnet/signalr.HttpError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n * @param {number} statusCode The HTTP status code represented by this error.\r\n */\r\n function HttpError(errorMessage, statusCode) {\r\n var _newTarget = this.constructor;\r\n var _this = this;\r\n var trueProto = _newTarget.prototype;\r\n _this = _super.call(this, errorMessage) || this;\r\n _this.statusCode = statusCode;\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n _this.__proto__ = trueProto;\r\n return _this;\r\n }\r\n return HttpError;\r\n}(Error));\r\nexport { HttpError };\r\n/** Error thrown when a timeout elapses. */\r\nvar TimeoutError = /** @class */ (function (_super) {\r\n __extends(TimeoutError, _super);\r\n /** Constructs a new instance of {@link @aspnet/signalr.TimeoutError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n function TimeoutError(errorMessage) {\r\n var _newTarget = this.constructor;\r\n if (errorMessage === void 0) { errorMessage = \"A timeout occurred.\"; }\r\n var _this = this;\r\n var trueProto = _newTarget.prototype;\r\n _this = _super.call(this, errorMessage) || this;\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n _this.__proto__ = trueProto;\r\n return _this;\r\n }\r\n return TimeoutError;\r\n}(Error));\r\nexport { TimeoutError };\r\n/** Error thrown when an action is aborted. */\r\nvar AbortError = /** @class */ (function (_super) {\r\n __extends(AbortError, _super);\r\n /** Constructs a new instance of {@link AbortError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n function AbortError(errorMessage) {\r\n var _newTarget = this.constructor;\r\n if (errorMessage === void 0) { errorMessage = \"An abort occurred.\"; }\r\n var _this = this;\r\n var trueProto = _newTarget.prototype;\r\n _this = _super.call(this, errorMessage) || this;\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n _this.__proto__ = trueProto;\r\n return _this;\r\n }\r\n return AbortError;\r\n}(Error));\r\nexport { AbortError };\r\n//# sourceMappingURL=Errors.js.map","var fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]() || non[METHOD_NAME]() != non || whitespaces[METHOD_NAME].name !== METHOD_NAME;\n });\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $indexOf = require('../internals/array-includes').indexOf;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\n\nvar nativeIndexOf = [].indexOf;\n\nvar NEGATIVE_ZERO = !!nativeIndexOf && 1 / [1].indexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('indexOf');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', { ACCESSORS: true, 1: 0 });\n\n// `Array.prototype.indexOf` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n$({ target: 'Array', proto: true, forced: NEGATIVE_ZERO || !STRICT_METHOD || !USES_TO_LENGTH }, {\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? nativeIndexOf.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { NullLogger } from \"./Loggers\";\r\n/** @private */\r\nvar Arg = /** @class */ (function () {\r\n function Arg() {\r\n }\r\n Arg.isRequired = function (val, name) {\r\n if (val === null || val === undefined) {\r\n throw new Error(\"The '\" + name + \"' argument is required.\");\r\n }\r\n };\r\n Arg.isIn = function (val, values, name) {\r\n // TypeScript enums have keys for **both** the name and the value of each enum member on the type itself.\r\n if (!(val in values)) {\r\n throw new Error(\"Unknown \" + name + \" value: \" + val + \".\");\r\n }\r\n };\r\n return Arg;\r\n}());\r\nexport { Arg };\r\n/** @private */\r\nexport function getDataDetail(data, includeContent) {\r\n var detail = \"\";\r\n if (isArrayBuffer(data)) {\r\n detail = \"Binary data of length \" + data.byteLength;\r\n if (includeContent) {\r\n detail += \". Content: '\" + formatArrayBuffer(data) + \"'\";\r\n }\r\n }\r\n else if (typeof data === \"string\") {\r\n detail = \"String data of length \" + data.length;\r\n if (includeContent) {\r\n detail += \". Content: '\" + data + \"'\";\r\n }\r\n }\r\n return detail;\r\n}\r\n/** @private */\r\nexport function formatArrayBuffer(data) {\r\n var view = new Uint8Array(data);\r\n // Uint8Array.map only supports returning another Uint8Array?\r\n var str = \"\";\r\n view.forEach(function (num) {\r\n var pad = num < 16 ? \"0\" : \"\";\r\n str += \"0x\" + pad + num.toString(16) + \" \";\r\n });\r\n // Trim of trailing space.\r\n return str.substr(0, str.length - 1);\r\n}\r\n// Also in signalr-protocol-msgpack/Utils.ts\r\n/** @private */\r\nexport function isArrayBuffer(val) {\r\n return val && typeof ArrayBuffer !== \"undefined\" &&\r\n (val instanceof ArrayBuffer ||\r\n // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof\r\n (val.constructor && val.constructor.name === \"ArrayBuffer\"));\r\n}\r\n/** @private */\r\nexport function sendMessage(logger, transportName, httpClient, url, accessTokenFactory, content, logMessageContent) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _a, headers, token, responseType, response;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n if (!accessTokenFactory) return [3 /*break*/, 2];\r\n return [4 /*yield*/, accessTokenFactory()];\r\n case 1:\r\n token = _b.sent();\r\n if (token) {\r\n headers = (_a = {},\r\n _a[\"Authorization\"] = \"Bearer \" + token,\r\n _a);\r\n }\r\n _b.label = 2;\r\n case 2:\r\n logger.log(LogLevel.Trace, \"(\" + transportName + \" transport) sending data. \" + getDataDetail(content, logMessageContent) + \".\");\r\n responseType = isArrayBuffer(content) ? \"arraybuffer\" : \"text\";\r\n return [4 /*yield*/, httpClient.post(url, {\r\n content: content,\r\n headers: headers,\r\n responseType: responseType,\r\n })];\r\n case 3:\r\n response = _b.sent();\r\n logger.log(LogLevel.Trace, \"(\" + transportName + \" transport) request complete. Response status: \" + response.statusCode + \".\");\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n}\r\n/** @private */\r\nexport function createLogger(logger) {\r\n if (logger === undefined) {\r\n return new ConsoleLogger(LogLevel.Information);\r\n }\r\n if (logger === null) {\r\n return NullLogger.instance;\r\n }\r\n if (logger.log) {\r\n return logger;\r\n }\r\n return new ConsoleLogger(logger);\r\n}\r\n/** @private */\r\nvar Subject = /** @class */ (function () {\r\n function Subject() {\r\n this.observers = [];\r\n }\r\n Subject.prototype.next = function (item) {\r\n for (var _i = 0, _a = this.observers; _i < _a.length; _i++) {\r\n var observer = _a[_i];\r\n observer.next(item);\r\n }\r\n };\r\n Subject.prototype.error = function (err) {\r\n for (var _i = 0, _a = this.observers; _i < _a.length; _i++) {\r\n var observer = _a[_i];\r\n if (observer.error) {\r\n observer.error(err);\r\n }\r\n }\r\n };\r\n Subject.prototype.complete = function () {\r\n for (var _i = 0, _a = this.observers; _i < _a.length; _i++) {\r\n var observer = _a[_i];\r\n if (observer.complete) {\r\n observer.complete();\r\n }\r\n }\r\n };\r\n Subject.prototype.subscribe = function (observer) {\r\n this.observers.push(observer);\r\n return new SubjectSubscription(this, observer);\r\n };\r\n return Subject;\r\n}());\r\nexport { Subject };\r\n/** @private */\r\nvar SubjectSubscription = /** @class */ (function () {\r\n function SubjectSubscription(subject, observer) {\r\n this.subject = subject;\r\n this.observer = observer;\r\n }\r\n SubjectSubscription.prototype.dispose = function () {\r\n var index = this.subject.observers.indexOf(this.observer);\r\n if (index > -1) {\r\n this.subject.observers.splice(index, 1);\r\n }\r\n if (this.subject.observers.length === 0 && this.subject.cancelCallback) {\r\n this.subject.cancelCallback().catch(function (_) { });\r\n }\r\n };\r\n return SubjectSubscription;\r\n}());\r\nexport { SubjectSubscription };\r\n/** @private */\r\nvar ConsoleLogger = /** @class */ (function () {\r\n function ConsoleLogger(minimumLogLevel) {\r\n this.minimumLogLevel = minimumLogLevel;\r\n }\r\n ConsoleLogger.prototype.log = function (logLevel, message) {\r\n if (logLevel >= this.minimumLogLevel) {\r\n switch (logLevel) {\r\n case LogLevel.Critical:\r\n case LogLevel.Error:\r\n console.error(\"[\" + new Date().toISOString() + \"] \" + LogLevel[logLevel] + \": \" + message);\r\n break;\r\n case LogLevel.Warning:\r\n console.warn(\"[\" + new Date().toISOString() + \"] \" + LogLevel[logLevel] + \": \" + message);\r\n break;\r\n case LogLevel.Information:\r\n console.info(\"[\" + new Date().toISOString() + \"] \" + LogLevel[logLevel] + \": \" + message);\r\n break;\r\n default:\r\n // console.debug only goes to attached debuggers in Node, so we use console.log for Trace and Debug\r\n console.log(\"[\" + new Date().toISOString() + \"] \" + LogLevel[logLevel] + \": \" + message);\r\n break;\r\n }\r\n }\r\n };\r\n return ConsoleLogger;\r\n}());\r\nexport { ConsoleLogger };\r\n//# sourceMappingURL=Utils.js.map","export default {\r\n\r\n STATUS_ANUNCIO_ATIVO: 1,\r\n STATUS_ANUNCIO_DESATIVADO: 2,\r\n STATUS_ANUNCIO_NAO_FINALIZADO: 3,\r\n STATUS_ANUNCIO_EXPIRADO: 4,\r\n\r\n getDescricaoStatus(status, plural) {\r\n\r\n if (status == this.STATUS_ANUNCIO_ATIVO) {\r\n return plural ? \"Ativos\" : \"Ativo\";\r\n\r\n } else if (status == this.STATUS_ANUNCIO_DESATIVADO) {\r\n return plural ? \"Desativados\" : \"Desativado\";\r\n\r\n } else if (status == this.STATUS_ANUNCIO_NAO_FINALIZADO) {\r\n return plural ? \"Não finalizados\" : \"Não finalizado\";\r\n\r\n } else if (status == this.STATUS_ANUNCIO_EXPIRADO) {\r\n return plural ? \"Expirados\" : \"Expirado\";\r\n } else {\r\n return plural ? \"Não definidos\" : \"Não definido\";\r\n }\r\n }\r\n}","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChatMessages.vue?vue&type=style&index=1&id=6f512058&lang=less&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChatMessages.vue?vue&type=style&index=1&id=6f512058&lang=less&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"container text-left h-100\"},[(_vm.loadingChat)?_c('div',{staticClass:\"p-5\"},[_vm._v(\"Carregando...\")]):_vm._e(),(!_vm.loadingChat && _vm.chats && _vm.chats.length == 0)?_c('div',{staticClass:\"text-center mt-5\"},[_c('img',{staticClass:\"img-fluid mb-3\",attrs:{\"src\":\"/img/IconeChat.png\",\"width\":\"300\"}}),_c('h5',[_vm._v(\"Você ainda não possui conversas de negociação.\")]),_c('p',[_vm._v(\"Explore os anúncios da loja e entre em contato com alguém para inciar uma negociação.\")]),_c('router-link',{staticClass:\"btn btn-primary\",attrs:{\"to\":\"/\"}},[_c('i',{staticClass:\"fas fa-search mr-3\"}),_vm._v(\" Explorar Anúncios \")])],1):_vm._e(),(!_vm.loadingChat && _vm.chats && _vm.chats.length > 0)?_c('div',{staticClass:\"row small-gutters chat-container h-100\"},[_c('div',{staticClass:\"col-md-5 col-xl-4\",class:_vm.chatSelecionado ? 'd-none d-md-block' : ''},[(_vm.chatSelecionado && _vm.chatSelecionado.ativo==1)?_c('h2',{staticClass:\"pt-3\"},[_vm._v(\"Minhas negociações\")]):(_vm.chatSelecionado && !_vm.chatSelecionado.proprietario && _vm.chatSelecionado.ativo==2 )?_c('h2',{staticClass:\"pt-3\"},[_vm._v(\"Minhas negociações\")]):(_vm.chatSelecionado && _vm.chatSelecionado.proprietario && _vm.chatSelecionado.ativo==3)?_c('h2',{staticClass:\"pt-3\"},[_vm._v(\"Minhas negociações\")]):_vm._e(),_c('ChatList',{attrs:{\"items\":_vm.chats,\"idSelectedItem\":_vm.chatSelecionado && _vm.chatSelecionado.id},on:{\"click-chat\":_vm.onClickChat}})],1),_c('div',{staticClass:\"col-md-7 col-xl-8 my-md-5\",class:!_vm.chatSelecionado ? 'd-none d-md-block' : ''},[(_vm.chatSelecionado)?_c('ChatMessages',{attrs:{\"chat\":_vm.chatSelecionado},on:{\"voltar\":_vm.onClickVoltar,\"onExcluirChat\":_vm.excluirChat}}):_c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"d-flex align-items-center justify-content-center text-center\"},[_c('div',[_c('img',{staticClass:\"img-fluid mb-3\",attrs:{\"src\":\"/img/IconeChat.png\"}}),_c('h5',[_vm._v(\"Selecione um chat no menu lateral.\")])])])])])],1)]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n/** Defines the type of a Hub Message. */\r\nexport var MessageType;\r\n(function (MessageType) {\r\n /** Indicates the message is an Invocation message and implements the {@link @aspnet/signalr.InvocationMessage} interface. */\r\n MessageType[MessageType[\"Invocation\"] = 1] = \"Invocation\";\r\n /** Indicates the message is a StreamItem message and implements the {@link @aspnet/signalr.StreamItemMessage} interface. */\r\n MessageType[MessageType[\"StreamItem\"] = 2] = \"StreamItem\";\r\n /** Indicates the message is a Completion message and implements the {@link @aspnet/signalr.CompletionMessage} interface. */\r\n MessageType[MessageType[\"Completion\"] = 3] = \"Completion\";\r\n /** Indicates the message is a Stream Invocation message and implements the {@link @aspnet/signalr.StreamInvocationMessage} interface. */\r\n MessageType[MessageType[\"StreamInvocation\"] = 4] = \"StreamInvocation\";\r\n /** Indicates the message is a Cancel Invocation message and implements the {@link @aspnet/signalr.CancelInvocationMessage} interface. */\r\n MessageType[MessageType[\"CancelInvocation\"] = 5] = \"CancelInvocation\";\r\n /** Indicates the message is a Ping message and implements the {@link @aspnet/signalr.PingMessage} interface. */\r\n MessageType[MessageType[\"Ping\"] = 6] = \"Ping\";\r\n /** Indicates the message is a Close message and implements the {@link @aspnet/signalr.CloseMessage} interface. */\r\n MessageType[MessageType[\"Close\"] = 7] = \"Close\";\r\n})(MessageType || (MessageType = {}));\r\n//# sourceMappingURL=IHubProtocol.js.map","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"list-group\"},[_vm._l((_vm.items),function(chat){return [_c('button',{key:chat.Id,staticClass:\"list-group-item list-group-item-action\",class:{'active': _vm.idSelectedItem == chat.id },attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.onClickChat(chat)}}},[_c('div',{staticClass:\"media align-items-center\"},[_c('div',{staticClass:\"chat-list-img rounded-circle shadow-sm mr-3\",style:({backgroundImage: 'url('+( chat.anuncioFoto || '/img/empty_img_circle.png')+')'})}),_c('div',{staticClass:\"media-body\"},[_c('b',[_vm._v(_vm._s(chat.anuncioTitulo))]),(chat.proprietario)?_c('div',[_vm._v(_vm._s(chat.nomeCliente))]):_c('div',[_vm._v(_vm._s(chat.nomeProprietario))])])])])]})],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChatList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChatList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ChatList.vue?vue&type=template&id=81f8da84&scoped=true&\"\nimport script from \"./ChatList.vue?vue&type=script&lang=js&\"\nexport * from \"./ChatList.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ChatList.vue?vue&type=style&index=0&id=81f8da84&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"81f8da84\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card h-100 p-2\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-9\"},[_c('div',{staticClass:\"media align-items-center\"},[_c('button',{staticClass:\"btn d-block d-md-none pr-0 pl-1\",on:{\"click\":_vm.onClickVoltar}},[_c('i',{staticClass:\"fa fa-arrow-left\"})]),_c('div',{staticClass:\"chat-top-img rounded-circle shadow-sm ml-2 mr-3\",style:({backgroundImage: 'url('+( _vm.chat.anuncioFoto || '/img/empty_img_circle.png')+')'})}),_c('div',{staticClass:\"media-body\"},[_c('div',{staticClass:\"font-weight-bold chat-titulo\"},[_vm._v(_vm._s(_vm.chat.anuncioTitulo))]),(_vm.chat.proprietario)?_c('small',[_vm._v(\" Comprador: \"+_vm._s(_vm.chat.nomeCliente)+\" \")]):_c('small',[_vm._v(\" Anunciante: \"+_vm._s(_vm.chat.nomeProprietario)+\" \")])])])]),_c('div',{staticClass:\"col-md-3 text-right\"},[_c('b-dropdown',{staticClass:\"chat-opcoes\",attrs:{\"variant\":\"none\",\"size\":\"sm\",\"right\":\"\",\"text\":\"Opções\"}},[_c('b-dropdown-item',{attrs:{\"to\":(\"/anuncio/\" + (_vm.chat.idAnuncio)),\"target\":\"_blank\"}},[_vm._v(\"Ver anúncio na loja\")]),_c('b-dropdown-item',{on:{\"click\":function($event){$event.preventDefault();return _vm.excluirChat(_vm.chat)}}},[_vm._v(\"Excluir esta conversa\")])],1)],1)]),_c('div',{staticClass:\"container-mensagens border-top\"},[(_vm.loadingMensagens)?_c('div',{staticClass:\"p-5 text-center\"},[_vm._v(\"Carregando...\")]):_vm._l((_vm.mensagens),function(msg){return _c('div',{key:msg.id,class:_vm.mensagemPropria(msg) ? 'outgoing-msg': 'incomming-msg'},[_c('div',[_vm._v(_vm._s(msg.texto))]),_c('div',{staticClass:\"data\"},[_vm._v(_vm._s(_vm._f(\"formatLocalDateTime\")(msg.dataHora)))])])})],2),_c('div',{staticClass:\"container-fluid\"},[_c('div',{staticClass:\"row small-gutters border-top pt-2\"},[_c('div',{staticClass:\"col\"},[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.mensagem),expression:\"mensagem\"}],ref:\"campoMsg\",staticClass:\"form-control border-0\",attrs:{\"rows\":\"2\",\"placeholder\":\"Escreva uma mensagem...\"},domProps:{\"value\":(_vm.mensagem)},on:{\"keydown\":_vm.inputHandler,\"input\":function($event){if($event.target.composing){ return; }_vm.mensagem=$event.target.value}}})]),_c('div',[_c('button',{staticClass:\"btn btn-primary rounded-lg btn-sm btn-enviar\",attrs:{\"disabled\":_vm.loadingEnviar},on:{\"click\":_vm.onClickEnviarMsg}},[(_vm.loadingEnviar)?_c('i',{staticClass:\"fas fa-sync fa-spin\"}):_c('i',{staticClass:\"fas fa-paper-plane\"}),(!_vm.loadingEnviar)?_c('div',[_vm._v(\"Enviar\")]):_vm._e()])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpResponse } from \"./HttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nvar XhrHttpClient = /** @class */ (function (_super) {\r\n __extends(XhrHttpClient, _super);\r\n function XhrHttpClient(logger) {\r\n var _this = _super.call(this) || this;\r\n _this.logger = logger;\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n XhrHttpClient.prototype.send = function (request) {\r\n var _this = this;\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n return new Promise(function (resolve, reject) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open(request.method, request.url, true);\r\n xhr.withCredentials = true;\r\n xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n xhr.setRequestHeader(\"Content-Type\", \"text/plain;charset=UTF-8\");\r\n var headers = request.headers;\r\n if (headers) {\r\n Object.keys(headers)\r\n .forEach(function (header) {\r\n xhr.setRequestHeader(header, headers[header]);\r\n });\r\n }\r\n if (request.responseType) {\r\n xhr.responseType = request.responseType;\r\n }\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = function () {\r\n xhr.abort();\r\n reject(new AbortError());\r\n };\r\n }\r\n if (request.timeout) {\r\n xhr.timeout = request.timeout;\r\n }\r\n xhr.onload = function () {\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n resolve(new HttpResponse(xhr.status, xhr.statusText, xhr.response || xhr.responseText));\r\n }\r\n else {\r\n reject(new HttpError(xhr.statusText, xhr.status));\r\n }\r\n };\r\n xhr.onerror = function () {\r\n _this.logger.log(LogLevel.Warning, \"Error from HTTP request. \" + xhr.status + \": \" + xhr.statusText + \".\");\r\n reject(new HttpError(xhr.statusText, xhr.status));\r\n };\r\n xhr.ontimeout = function () {\r\n _this.logger.log(LogLevel.Warning, \"Timeout from HTTP request.\");\r\n reject(new TimeoutError());\r\n };\r\n xhr.send(request.content || \"\");\r\n });\r\n };\r\n return XhrHttpClient;\r\n}(HttpClient));\r\nexport { XhrHttpClient };\r\n//# sourceMappingURL=XhrHttpClient.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { AbortError } from \"./Errors\";\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { NodeHttpClient } from \"./NodeHttpClient\";\r\nimport { XhrHttpClient } from \"./XhrHttpClient\";\r\n/** Default implementation of {@link @aspnet/signalr.HttpClient}. */\r\nvar DefaultHttpClient = /** @class */ (function (_super) {\r\n __extends(DefaultHttpClient, _super);\r\n /** Creates a new instance of the {@link @aspnet/signalr.DefaultHttpClient}, using the provided {@link @aspnet/signalr.ILogger} to log messages. */\r\n function DefaultHttpClient(logger) {\r\n var _this = _super.call(this) || this;\r\n if (typeof XMLHttpRequest !== \"undefined\") {\r\n _this.httpClient = new XhrHttpClient(logger);\r\n }\r\n else {\r\n _this.httpClient = new NodeHttpClient(logger);\r\n }\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n DefaultHttpClient.prototype.send = function (request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n return this.httpClient.send(request);\r\n };\r\n DefaultHttpClient.prototype.getCookieString = function (url) {\r\n return this.httpClient.getCookieString(url);\r\n };\r\n return DefaultHttpClient;\r\n}(HttpClient));\r\nexport { DefaultHttpClient };\r\n//# sourceMappingURL=DefaultHttpClient.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nimport { HandshakeProtocol } from \"./HandshakeProtocol\";\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { Arg, Subject } from \"./Utils\";\r\nvar DEFAULT_TIMEOUT_IN_MS = 30 * 1000;\r\nvar DEFAULT_PING_INTERVAL_IN_MS = 15 * 1000;\r\n/** Describes the current state of the {@link HubConnection} to the server. */\r\nexport var HubConnectionState;\r\n(function (HubConnectionState) {\r\n /** The hub connection is disconnected. */\r\n HubConnectionState[HubConnectionState[\"Disconnected\"] = 0] = \"Disconnected\";\r\n /** The hub connection is connected. */\r\n HubConnectionState[HubConnectionState[\"Connected\"] = 1] = \"Connected\";\r\n})(HubConnectionState || (HubConnectionState = {}));\r\n/** Represents a connection to a SignalR Hub. */\r\nvar HubConnection = /** @class */ (function () {\r\n function HubConnection(connection, logger, protocol) {\r\n var _this = this;\r\n Arg.isRequired(connection, \"connection\");\r\n Arg.isRequired(logger, \"logger\");\r\n Arg.isRequired(protocol, \"protocol\");\r\n this.serverTimeoutInMilliseconds = DEFAULT_TIMEOUT_IN_MS;\r\n this.keepAliveIntervalInMilliseconds = DEFAULT_PING_INTERVAL_IN_MS;\r\n this.logger = logger;\r\n this.protocol = protocol;\r\n this.connection = connection;\r\n this.handshakeProtocol = new HandshakeProtocol();\r\n this.connection.onreceive = function (data) { return _this.processIncomingData(data); };\r\n this.connection.onclose = function (error) { return _this.connectionClosed(error); };\r\n this.callbacks = {};\r\n this.methods = {};\r\n this.closedCallbacks = [];\r\n this.id = 0;\r\n this.receivedHandshakeResponse = false;\r\n this.connectionState = HubConnectionState.Disconnected;\r\n this.cachedPingMessage = this.protocol.writeMessage({ type: MessageType.Ping });\r\n }\r\n /** @internal */\r\n // Using a public static factory method means we can have a private constructor and an _internal_\r\n // create method that can be used by HubConnectionBuilder. An \"internal\" constructor would just\r\n // be stripped away and the '.d.ts' file would have no constructor, which is interpreted as a\r\n // public parameter-less constructor.\r\n HubConnection.create = function (connection, logger, protocol) {\r\n return new HubConnection(connection, logger, protocol);\r\n };\r\n Object.defineProperty(HubConnection.prototype, \"state\", {\r\n /** Indicates the state of the {@link HubConnection} to the server. */\r\n get: function () {\r\n return this.connectionState;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /** Starts the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully established, or rejects with an error.\r\n */\r\n HubConnection.prototype.start = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var handshakeRequest, handshakePromise;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n handshakeRequest = {\r\n protocol: this.protocol.name,\r\n version: this.protocol.version,\r\n };\r\n this.logger.log(LogLevel.Debug, \"Starting HubConnection.\");\r\n this.receivedHandshakeResponse = false;\r\n handshakePromise = new Promise(function (resolve, reject) {\r\n _this.handshakeResolver = resolve;\r\n _this.handshakeRejecter = reject;\r\n });\r\n return [4 /*yield*/, this.connection.start(this.protocol.transferFormat)];\r\n case 1:\r\n _a.sent();\r\n this.logger.log(LogLevel.Debug, \"Sending handshake request.\");\r\n return [4 /*yield*/, this.sendMessage(this.handshakeProtocol.writeHandshakeRequest(handshakeRequest))];\r\n case 2:\r\n _a.sent();\r\n this.logger.log(LogLevel.Information, \"Using HubProtocol '\" + this.protocol.name + \"'.\");\r\n // defensively cleanup timeout in case we receive a message from the server before we finish start\r\n this.cleanupTimeout();\r\n this.resetTimeoutPeriod();\r\n this.resetKeepAliveInterval();\r\n // Wait for the handshake to complete before marking connection as connected\r\n return [4 /*yield*/, handshakePromise];\r\n case 3:\r\n // Wait for the handshake to complete before marking connection as connected\r\n _a.sent();\r\n this.connectionState = HubConnectionState.Connected;\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /** Stops the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully terminated, or rejects with an error.\r\n */\r\n HubConnection.prototype.stop = function () {\r\n this.logger.log(LogLevel.Debug, \"Stopping HubConnection.\");\r\n this.cleanupTimeout();\r\n this.cleanupPingTimer();\r\n return this.connection.stop();\r\n };\r\n /** Invokes a streaming hub method on the server using the specified name and arguments.\r\n *\r\n * @typeparam T The type of the items returned by the server.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {IStreamResult} An object that yields results from the server as they are received.\r\n */\r\n HubConnection.prototype.stream = function (methodName) {\r\n var _this = this;\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n var invocationDescriptor = this.createStreamInvocation(methodName, args);\r\n var promiseQueue;\r\n var subject = new Subject();\r\n subject.cancelCallback = function () {\r\n var cancelInvocation = _this.createCancelInvocation(invocationDescriptor.invocationId);\r\n var cancelMessage = _this.protocol.writeMessage(cancelInvocation);\r\n delete _this.callbacks[invocationDescriptor.invocationId];\r\n return promiseQueue.then(function () {\r\n return _this.sendMessage(cancelMessage);\r\n });\r\n };\r\n this.callbacks[invocationDescriptor.invocationId] = function (invocationEvent, error) {\r\n if (error) {\r\n subject.error(error);\r\n return;\r\n }\r\n else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n subject.error(new Error(invocationEvent.error));\r\n }\r\n else {\r\n subject.complete();\r\n }\r\n }\r\n else {\r\n subject.next((invocationEvent.item));\r\n }\r\n }\r\n };\r\n var message = this.protocol.writeMessage(invocationDescriptor);\r\n promiseQueue = this.sendMessage(message)\r\n .catch(function (e) {\r\n subject.error(e);\r\n delete _this.callbacks[invocationDescriptor.invocationId];\r\n });\r\n return subject;\r\n };\r\n HubConnection.prototype.sendMessage = function (message) {\r\n this.resetKeepAliveInterval();\r\n return this.connection.send(message);\r\n };\r\n /** Invokes a hub method on the server using the specified name and arguments. Does not wait for a response from the receiver.\r\n *\r\n * The Promise returned by this method resolves when the client has sent the invocation to the server. The server may still\r\n * be processing the invocation.\r\n *\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves when the invocation has been successfully sent, or rejects with an error.\r\n */\r\n HubConnection.prototype.send = function (methodName) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n var invocationDescriptor = this.createInvocation(methodName, args, true);\r\n var message = this.protocol.writeMessage(invocationDescriptor);\r\n return this.sendMessage(message);\r\n };\r\n /** Invokes a hub method on the server using the specified name and arguments.\r\n *\r\n * The Promise returned by this method resolves when the server indicates it has finished invoking the method. When the promise\r\n * resolves, the server has finished invoking the method. If the server method returns a result, it is produced as the result of\r\n * resolving the Promise.\r\n *\r\n * @typeparam T The expected return type.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves with the result of the server method (if any), or rejects with an error.\r\n */\r\n HubConnection.prototype.invoke = function (methodName) {\r\n var _this = this;\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n var invocationDescriptor = this.createInvocation(methodName, args, false);\r\n var p = new Promise(function (resolve, reject) {\r\n // invocationId will always have a value for a non-blocking invocation\r\n _this.callbacks[invocationDescriptor.invocationId] = function (invocationEvent, error) {\r\n if (error) {\r\n reject(error);\r\n return;\r\n }\r\n else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n reject(new Error(invocationEvent.error));\r\n }\r\n else {\r\n resolve(invocationEvent.result);\r\n }\r\n }\r\n else {\r\n reject(new Error(\"Unexpected message type: \" + invocationEvent.type));\r\n }\r\n }\r\n };\r\n var message = _this.protocol.writeMessage(invocationDescriptor);\r\n _this.sendMessage(message)\r\n .catch(function (e) {\r\n reject(e);\r\n // invocationId will always have a value for a non-blocking invocation\r\n delete _this.callbacks[invocationDescriptor.invocationId];\r\n });\r\n });\r\n return p;\r\n };\r\n /** Registers a handler that will be invoked when the hub method with the specified method name is invoked.\r\n *\r\n * @param {string} methodName The name of the hub method to define.\r\n * @param {Function} newMethod The handler that will be raised when the hub method is invoked.\r\n */\r\n HubConnection.prototype.on = function (methodName, newMethod) {\r\n if (!methodName || !newMethod) {\r\n return;\r\n }\r\n methodName = methodName.toLowerCase();\r\n if (!this.methods[methodName]) {\r\n this.methods[methodName] = [];\r\n }\r\n // Preventing adding the same handler multiple times.\r\n if (this.methods[methodName].indexOf(newMethod) !== -1) {\r\n return;\r\n }\r\n this.methods[methodName].push(newMethod);\r\n };\r\n HubConnection.prototype.off = function (methodName, method) {\r\n if (!methodName) {\r\n return;\r\n }\r\n methodName = methodName.toLowerCase();\r\n var handlers = this.methods[methodName];\r\n if (!handlers) {\r\n return;\r\n }\r\n if (method) {\r\n var removeIdx = handlers.indexOf(method);\r\n if (removeIdx !== -1) {\r\n handlers.splice(removeIdx, 1);\r\n if (handlers.length === 0) {\r\n delete this.methods[methodName];\r\n }\r\n }\r\n }\r\n else {\r\n delete this.methods[methodName];\r\n }\r\n };\r\n /** Registers a handler that will be invoked when the connection is closed.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection is closed. Optionally receives a single argument containing the error that caused the connection to close (if any).\r\n */\r\n HubConnection.prototype.onclose = function (callback) {\r\n if (callback) {\r\n this.closedCallbacks.push(callback);\r\n }\r\n };\r\n HubConnection.prototype.processIncomingData = function (data) {\r\n this.cleanupTimeout();\r\n if (!this.receivedHandshakeResponse) {\r\n data = this.processHandshakeResponse(data);\r\n this.receivedHandshakeResponse = true;\r\n }\r\n // Data may have all been read when processing handshake response\r\n if (data) {\r\n // Parse the messages\r\n var messages = this.protocol.parseMessages(data, this.logger);\r\n for (var _i = 0, messages_1 = messages; _i < messages_1.length; _i++) {\r\n var message = messages_1[_i];\r\n switch (message.type) {\r\n case MessageType.Invocation:\r\n this.invokeClientMethod(message);\r\n break;\r\n case MessageType.StreamItem:\r\n case MessageType.Completion:\r\n var callback = this.callbacks[message.invocationId];\r\n if (callback != null) {\r\n if (message.type === MessageType.Completion) {\r\n delete this.callbacks[message.invocationId];\r\n }\r\n callback(message);\r\n }\r\n break;\r\n case MessageType.Ping:\r\n // Don't care about pings\r\n break;\r\n case MessageType.Close:\r\n this.logger.log(LogLevel.Information, \"Close message received from server.\");\r\n // We don't want to wait on the stop itself.\r\n // tslint:disable-next-line:no-floating-promises\r\n this.connection.stop(message.error ? new Error(\"Server returned an error on close: \" + message.error) : undefined);\r\n break;\r\n default:\r\n this.logger.log(LogLevel.Warning, \"Invalid message type: \" + message.type + \".\");\r\n break;\r\n }\r\n }\r\n }\r\n this.resetTimeoutPeriod();\r\n };\r\n HubConnection.prototype.processHandshakeResponse = function (data) {\r\n var _a;\r\n var responseMessage;\r\n var remainingData;\r\n try {\r\n _a = this.handshakeProtocol.parseHandshakeResponse(data), remainingData = _a[0], responseMessage = _a[1];\r\n }\r\n catch (e) {\r\n var message = \"Error parsing handshake response: \" + e;\r\n this.logger.log(LogLevel.Error, message);\r\n var error = new Error(message);\r\n // We don't want to wait on the stop itself.\r\n // tslint:disable-next-line:no-floating-promises\r\n this.connection.stop(error);\r\n this.handshakeRejecter(error);\r\n throw error;\r\n }\r\n if (responseMessage.error) {\r\n var message = \"Server returned handshake error: \" + responseMessage.error;\r\n this.logger.log(LogLevel.Error, message);\r\n this.handshakeRejecter(message);\r\n // We don't want to wait on the stop itself.\r\n // tslint:disable-next-line:no-floating-promises\r\n this.connection.stop(new Error(message));\r\n throw new Error(message);\r\n }\r\n else {\r\n this.logger.log(LogLevel.Debug, \"Server handshake complete.\");\r\n }\r\n this.handshakeResolver();\r\n return remainingData;\r\n };\r\n HubConnection.prototype.resetKeepAliveInterval = function () {\r\n var _this = this;\r\n this.cleanupPingTimer();\r\n this.pingServerHandle = setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {\r\n var _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n if (!(this.connectionState === HubConnectionState.Connected)) return [3 /*break*/, 4];\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.sendMessage(this.cachedPingMessage)];\r\n case 2:\r\n _b.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n _a = _b.sent();\r\n // We don't care about the error. It should be seen elsewhere in the client.\r\n // The connection is probably in a bad or closed state now, cleanup the timer so it stops triggering\r\n this.cleanupPingTimer();\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n }); }, this.keepAliveIntervalInMilliseconds);\r\n };\r\n HubConnection.prototype.resetTimeoutPeriod = function () {\r\n var _this = this;\r\n if (!this.connection.features || !this.connection.features.inherentKeepAlive) {\r\n // Set the timeout timer\r\n this.timeoutHandle = setTimeout(function () { return _this.serverTimeout(); }, this.serverTimeoutInMilliseconds);\r\n }\r\n };\r\n HubConnection.prototype.serverTimeout = function () {\r\n // The server hasn't talked to us in a while. It doesn't like us anymore ... :(\r\n // Terminate the connection, but we don't need to wait on the promise.\r\n // tslint:disable-next-line:no-floating-promises\r\n this.connection.stop(new Error(\"Server timeout elapsed without receiving a message from the server.\"));\r\n };\r\n HubConnection.prototype.invokeClientMethod = function (invocationMessage) {\r\n var _this = this;\r\n var methods = this.methods[invocationMessage.target.toLowerCase()];\r\n if (methods) {\r\n methods.forEach(function (m) { return m.apply(_this, invocationMessage.arguments); });\r\n if (invocationMessage.invocationId) {\r\n // This is not supported in v1. So we return an error to avoid blocking the server waiting for the response.\r\n var message = \"Server requested a response, which is not supported in this version of the client.\";\r\n this.logger.log(LogLevel.Error, message);\r\n // We don't need to wait on this Promise.\r\n // tslint:disable-next-line:no-floating-promises\r\n this.connection.stop(new Error(message));\r\n }\r\n }\r\n else {\r\n this.logger.log(LogLevel.Warning, \"No client method with the name '\" + invocationMessage.target + \"' found.\");\r\n }\r\n };\r\n HubConnection.prototype.connectionClosed = function (error) {\r\n var _this = this;\r\n var callbacks = this.callbacks;\r\n this.callbacks = {};\r\n this.connectionState = HubConnectionState.Disconnected;\r\n // if handshake is in progress start will be waiting for the handshake promise, so we complete it\r\n // if it has already completed this should just noop\r\n if (this.handshakeRejecter) {\r\n this.handshakeRejecter(error);\r\n }\r\n Object.keys(callbacks)\r\n .forEach(function (key) {\r\n var callback = callbacks[key];\r\n callback(null, error ? error : new Error(\"Invocation canceled due to connection being closed.\"));\r\n });\r\n this.cleanupTimeout();\r\n this.cleanupPingTimer();\r\n this.closedCallbacks.forEach(function (c) { return c.apply(_this, [error]); });\r\n };\r\n HubConnection.prototype.cleanupPingTimer = function () {\r\n if (this.pingServerHandle) {\r\n clearTimeout(this.pingServerHandle);\r\n }\r\n };\r\n HubConnection.prototype.cleanupTimeout = function () {\r\n if (this.timeoutHandle) {\r\n clearTimeout(this.timeoutHandle);\r\n }\r\n };\r\n HubConnection.prototype.createInvocation = function (methodName, args, nonblocking) {\r\n if (nonblocking) {\r\n return {\r\n arguments: args,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n else {\r\n var id = this.id;\r\n this.id++;\r\n return {\r\n arguments: args,\r\n invocationId: id.toString(),\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n };\r\n HubConnection.prototype.createStreamInvocation = function (methodName, args) {\r\n var id = this.id;\r\n this.id++;\r\n return {\r\n arguments: args,\r\n invocationId: id.toString(),\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n };\r\n HubConnection.prototype.createCancelInvocation = function (id) {\r\n return {\r\n invocationId: id,\r\n type: MessageType.CancelInvocation,\r\n };\r\n };\r\n return HubConnection;\r\n}());\r\nexport { HubConnection };\r\n//# sourceMappingURL=HubConnection.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n// This will be treated as a bit flag in the future, so we keep it using power-of-two values.\r\n/** Specifies a specific HTTP transport type. */\r\nexport var HttpTransportType;\r\n(function (HttpTransportType) {\r\n /** Specifies no transport preference. */\r\n HttpTransportType[HttpTransportType[\"None\"] = 0] = \"None\";\r\n /** Specifies the WebSockets transport. */\r\n HttpTransportType[HttpTransportType[\"WebSockets\"] = 1] = \"WebSockets\";\r\n /** Specifies the Server-Sent Events transport. */\r\n HttpTransportType[HttpTransportType[\"ServerSentEvents\"] = 2] = \"ServerSentEvents\";\r\n /** Specifies the Long Polling transport. */\r\n HttpTransportType[HttpTransportType[\"LongPolling\"] = 4] = \"LongPolling\";\r\n})(HttpTransportType || (HttpTransportType = {}));\r\n/** Specifies the transfer format for a connection. */\r\nexport var TransferFormat;\r\n(function (TransferFormat) {\r\n /** Specifies that only text data will be transmitted over the connection. */\r\n TransferFormat[TransferFormat[\"Text\"] = 1] = \"Text\";\r\n /** Specifies that binary data will be transmitted over the connection. */\r\n TransferFormat[TransferFormat[\"Binary\"] = 2] = \"Binary\";\r\n})(TransferFormat || (TransferFormat = {}));\r\n//# sourceMappingURL=ITransport.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n// Rough polyfill of https://developer.mozilla.org/en-US/docs/Web/API/AbortController\r\n// We don't actually ever use the API being polyfilled, we always use the polyfill because\r\n// it's a very new API right now.\r\n// Not exported from index.\r\n/** @private */\r\nvar AbortController = /** @class */ (function () {\r\n function AbortController() {\r\n this.isAborted = false;\r\n this.onabort = null;\r\n }\r\n AbortController.prototype.abort = function () {\r\n if (!this.isAborted) {\r\n this.isAborted = true;\r\n if (this.onabort) {\r\n this.onabort();\r\n }\r\n }\r\n };\r\n Object.defineProperty(AbortController.prototype, \"signal\", {\r\n get: function () {\r\n return this;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AbortController.prototype, \"aborted\", {\r\n get: function () {\r\n return this.isAborted;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return AbortController;\r\n}());\r\nexport { AbortController };\r\n//# sourceMappingURL=AbortController.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nimport { AbortController } from \"./AbortController\";\r\nimport { HttpError, TimeoutError } from \"./Errors\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, sendMessage } from \"./Utils\";\r\n// Not exported from 'index', this type is internal.\r\n/** @private */\r\nvar LongPollingTransport = /** @class */ (function () {\r\n function LongPollingTransport(httpClient, accessTokenFactory, logger, logMessageContent) {\r\n this.httpClient = httpClient;\r\n this.accessTokenFactory = accessTokenFactory;\r\n this.logger = logger;\r\n this.pollAbort = new AbortController();\r\n this.logMessageContent = logMessageContent;\r\n this.running = false;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n Object.defineProperty(LongPollingTransport.prototype, \"pollAborted\", {\r\n // This is an internal type, not exported from 'index' so this is really just internal.\r\n get: function () {\r\n return this.pollAbort.aborted;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n LongPollingTransport.prototype.connect = function (url, transferFormat) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var pollOptions, token, pollUrl, response;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this.url = url;\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Connecting.\");\r\n // Allow binary format on Node and Browsers that support binary content (indicated by the presence of responseType property)\r\n if (transferFormat === TransferFormat.Binary &&\r\n (typeof XMLHttpRequest !== \"undefined\" && typeof new XMLHttpRequest().responseType !== \"string\")) {\r\n throw new Error(\"Binary protocols over XmlHttpRequest not implementing advanced features are not supported.\");\r\n }\r\n pollOptions = {\r\n abortSignal: this.pollAbort.signal,\r\n headers: {},\r\n timeout: 100000,\r\n };\r\n if (transferFormat === TransferFormat.Binary) {\r\n pollOptions.responseType = \"arraybuffer\";\r\n }\r\n return [4 /*yield*/, this.getAccessToken()];\r\n case 1:\r\n token = _a.sent();\r\n this.updateHeaderToken(pollOptions, token);\r\n pollUrl = url + \"&_=\" + Date.now();\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) polling: \" + pollUrl + \".\");\r\n return [4 /*yield*/, this.httpClient.get(pollUrl, pollOptions)];\r\n case 2:\r\n response = _a.sent();\r\n if (response.statusCode !== 200) {\r\n this.logger.log(LogLevel.Error, \"(LongPolling transport) Unexpected response code: \" + response.statusCode + \".\");\r\n // Mark running as false so that the poll immediately ends and runs the close logic\r\n this.closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this.running = false;\r\n }\r\n else {\r\n this.running = true;\r\n }\r\n this.receiving = this.poll(this.url, pollOptions);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n LongPollingTransport.prototype.getAccessToken = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!this.accessTokenFactory) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.accessTokenFactory()];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2: return [2 /*return*/, null];\r\n }\r\n });\r\n });\r\n };\r\n LongPollingTransport.prototype.updateHeaderToken = function (request, token) {\r\n if (!request.headers) {\r\n request.headers = {};\r\n }\r\n if (token) {\r\n // tslint:disable-next-line:no-string-literal\r\n request.headers[\"Authorization\"] = \"Bearer \" + token;\r\n return;\r\n }\r\n // tslint:disable-next-line:no-string-literal\r\n if (request.headers[\"Authorization\"]) {\r\n // tslint:disable-next-line:no-string-literal\r\n delete request.headers[\"Authorization\"];\r\n }\r\n };\r\n LongPollingTransport.prototype.poll = function (url, pollOptions) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var token, pollUrl, response, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, , 8, 9]);\r\n _a.label = 1;\r\n case 1:\r\n if (!this.running) return [3 /*break*/, 7];\r\n return [4 /*yield*/, this.getAccessToken()];\r\n case 2:\r\n token = _a.sent();\r\n this.updateHeaderToken(pollOptions, token);\r\n _a.label = 3;\r\n case 3:\r\n _a.trys.push([3, 5, , 6]);\r\n pollUrl = url + \"&_=\" + Date.now();\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) polling: \" + pollUrl + \".\");\r\n return [4 /*yield*/, this.httpClient.get(pollUrl, pollOptions)];\r\n case 4:\r\n response = _a.sent();\r\n if (response.statusCode === 204) {\r\n this.logger.log(LogLevel.Information, \"(LongPolling transport) Poll terminated by server.\");\r\n this.running = false;\r\n }\r\n else if (response.statusCode !== 200) {\r\n this.logger.log(LogLevel.Error, \"(LongPolling transport) Unexpected response code: \" + response.statusCode + \".\");\r\n // Unexpected status code\r\n this.closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this.running = false;\r\n }\r\n else {\r\n // Process the response\r\n if (response.content) {\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) data received. \" + getDataDetail(response.content, this.logMessageContent) + \".\");\r\n if (this.onreceive) {\r\n this.onreceive(response.content);\r\n }\r\n }\r\n else {\r\n // This is another way timeout manifest.\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n }\r\n return [3 /*break*/, 6];\r\n case 5:\r\n e_1 = _a.sent();\r\n if (!this.running) {\r\n // Log but disregard errors that occur after stopping\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Poll errored after shutdown: \" + e_1.message);\r\n }\r\n else {\r\n if (e_1 instanceof TimeoutError) {\r\n // Ignore timeouts and reissue the poll.\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n else {\r\n // Close the connection with the error as the result.\r\n this.closeError = e_1;\r\n this.running = false;\r\n }\r\n }\r\n return [3 /*break*/, 6];\r\n case 6: return [3 /*break*/, 1];\r\n case 7: return [3 /*break*/, 9];\r\n case 8:\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Polling complete.\");\r\n // We will reach here with pollAborted==false when the server returned a response causing the transport to stop.\r\n // If pollAborted==true then client initiated the stop and the stop method will raise the close event after DELETE is sent.\r\n if (!this.pollAborted) {\r\n this.raiseOnClose();\r\n }\r\n return [7 /*endfinally*/];\r\n case 9: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n LongPollingTransport.prototype.send = function (data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n if (!this.running) {\r\n return [2 /*return*/, Promise.reject(new Error(\"Cannot send until the transport is connected\"))];\r\n }\r\n return [2 /*return*/, sendMessage(this.logger, \"LongPolling\", this.httpClient, this.url, this.accessTokenFactory, data, this.logMessageContent)];\r\n });\r\n });\r\n };\r\n LongPollingTransport.prototype.stop = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var deleteOptions, token;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Stopping polling.\");\r\n // Tell receiving loop to stop, abort any current request, and then wait for it to finish\r\n this.running = false;\r\n this.pollAbort.abort();\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, , 5, 6]);\r\n return [4 /*yield*/, this.receiving];\r\n case 2:\r\n _a.sent();\r\n // Send DELETE to clean up long polling on the server\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) sending DELETE request to \" + this.url + \".\");\r\n deleteOptions = {\r\n headers: {},\r\n };\r\n return [4 /*yield*/, this.getAccessToken()];\r\n case 3:\r\n token = _a.sent();\r\n this.updateHeaderToken(deleteOptions, token);\r\n return [4 /*yield*/, this.httpClient.delete(this.url, deleteOptions)];\r\n case 4:\r\n _a.sent();\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) DELETE request sent.\");\r\n return [3 /*break*/, 6];\r\n case 5:\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Stop finished.\");\r\n // Raise close event here instead of in polling\r\n // It needs to happen after the DELETE request is sent\r\n this.raiseOnClose();\r\n return [7 /*endfinally*/];\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n LongPollingTransport.prototype.raiseOnClose = function () {\r\n if (this.onclose) {\r\n var logMessage = \"(LongPolling transport) Firing onclose event.\";\r\n if (this.closeError) {\r\n logMessage += \" Error: \" + this.closeError;\r\n }\r\n this.logger.log(LogLevel.Trace, logMessage);\r\n this.onclose(this.closeError);\r\n }\r\n };\r\n return LongPollingTransport;\r\n}());\r\nexport { LongPollingTransport };\r\n//# sourceMappingURL=LongPollingTransport.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, sendMessage } from \"./Utils\";\r\n/** @private */\r\nvar ServerSentEventsTransport = /** @class */ (function () {\r\n function ServerSentEventsTransport(httpClient, accessTokenFactory, logger, logMessageContent, eventSourceConstructor) {\r\n this.httpClient = httpClient;\r\n this.accessTokenFactory = accessTokenFactory;\r\n this.logger = logger;\r\n this.logMessageContent = logMessageContent;\r\n this.eventSourceConstructor = eventSourceConstructor;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n ServerSentEventsTransport.prototype.connect = function (url, transferFormat) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var token;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this.logger.log(LogLevel.Trace, \"(SSE transport) Connecting.\");\r\n // set url before accessTokenFactory because this.url is only for send and we set the auth header instead of the query string for send\r\n this.url = url;\r\n if (!this.accessTokenFactory) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.accessTokenFactory()];\r\n case 1:\r\n token = _a.sent();\r\n if (token) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + (\"access_token=\" + encodeURIComponent(token));\r\n }\r\n _a.label = 2;\r\n case 2: return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var opened = false;\r\n if (transferFormat !== TransferFormat.Text) {\r\n reject(new Error(\"The Server-Sent Events transport only supports the 'Text' transfer format\"));\r\n return;\r\n }\r\n var eventSource;\r\n if (typeof window !== \"undefined\") {\r\n eventSource = new _this.eventSourceConstructor(url, { withCredentials: true });\r\n }\r\n else {\r\n // Non-browser passes cookies via the dictionary\r\n var cookies = _this.httpClient.getCookieString(url);\r\n eventSource = new _this.eventSourceConstructor(url, { withCredentials: true, headers: { Cookie: cookies } });\r\n }\r\n try {\r\n eventSource.onmessage = function (e) {\r\n if (_this.onreceive) {\r\n try {\r\n _this.logger.log(LogLevel.Trace, \"(SSE transport) data received. \" + getDataDetail(e.data, _this.logMessageContent) + \".\");\r\n _this.onreceive(e.data);\r\n }\r\n catch (error) {\r\n _this.close(error);\r\n return;\r\n }\r\n }\r\n };\r\n eventSource.onerror = function (e) {\r\n var error = new Error(e.data || \"Error occurred\");\r\n if (opened) {\r\n _this.close(error);\r\n }\r\n else {\r\n reject(error);\r\n }\r\n };\r\n eventSource.onopen = function () {\r\n _this.logger.log(LogLevel.Information, \"SSE connected to \" + _this.url);\r\n _this.eventSource = eventSource;\r\n opened = true;\r\n resolve();\r\n };\r\n }\r\n catch (e) {\r\n reject(e);\r\n return;\r\n }\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n ServerSentEventsTransport.prototype.send = function (data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n if (!this.eventSource) {\r\n return [2 /*return*/, Promise.reject(new Error(\"Cannot send until the transport is connected\"))];\r\n }\r\n return [2 /*return*/, sendMessage(this.logger, \"SSE\", this.httpClient, this.url, this.accessTokenFactory, data, this.logMessageContent)];\r\n });\r\n });\r\n };\r\n ServerSentEventsTransport.prototype.stop = function () {\r\n this.close();\r\n return Promise.resolve();\r\n };\r\n ServerSentEventsTransport.prototype.close = function (e) {\r\n if (this.eventSource) {\r\n this.eventSource.close();\r\n this.eventSource = undefined;\r\n if (this.onclose) {\r\n this.onclose(e);\r\n }\r\n }\r\n };\r\n return ServerSentEventsTransport;\r\n}());\r\nexport { ServerSentEventsTransport };\r\n//# sourceMappingURL=ServerSentEventsTransport.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail } from \"./Utils\";\r\n/** @private */\r\nvar WebSocketTransport = /** @class */ (function () {\r\n function WebSocketTransport(httpClient, accessTokenFactory, logger, logMessageContent, webSocketConstructor) {\r\n this.logger = logger;\r\n this.accessTokenFactory = accessTokenFactory;\r\n this.logMessageContent = logMessageContent;\r\n this.webSocketConstructor = webSocketConstructor;\r\n this.httpClient = httpClient;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n WebSocketTransport.prototype.connect = function (url, transferFormat) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var token;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this.logger.log(LogLevel.Trace, \"(WebSockets transport) Connecting.\");\r\n if (!this.accessTokenFactory) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.accessTokenFactory()];\r\n case 1:\r\n token = _a.sent();\r\n if (token) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + (\"access_token=\" + encodeURIComponent(token));\r\n }\r\n _a.label = 2;\r\n case 2: return [2 /*return*/, new Promise(function (resolve, reject) {\r\n url = url.replace(/^http/, \"ws\");\r\n var webSocket;\r\n var cookies = _this.httpClient.getCookieString(url);\r\n if (typeof window === \"undefined\" && cookies) {\r\n // Only pass cookies when in non-browser environments\r\n webSocket = new _this.webSocketConstructor(url, undefined, {\r\n headers: {\r\n Cookie: \"\" + cookies,\r\n },\r\n });\r\n }\r\n if (!webSocket) {\r\n // Chrome is not happy with passing 'undefined' as protocol\r\n webSocket = new _this.webSocketConstructor(url);\r\n }\r\n if (transferFormat === TransferFormat.Binary) {\r\n webSocket.binaryType = \"arraybuffer\";\r\n }\r\n // tslint:disable-next-line:variable-name\r\n webSocket.onopen = function (_event) {\r\n _this.logger.log(LogLevel.Information, \"WebSocket connected to \" + url + \".\");\r\n _this.webSocket = webSocket;\r\n resolve();\r\n };\r\n webSocket.onerror = function (event) {\r\n var error = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n }\r\n reject(error);\r\n };\r\n webSocket.onmessage = function (message) {\r\n _this.logger.log(LogLevel.Trace, \"(WebSockets transport) data received. \" + getDataDetail(message.data, _this.logMessageContent) + \".\");\r\n if (_this.onreceive) {\r\n _this.onreceive(message.data);\r\n }\r\n };\r\n webSocket.onclose = function (event) { return _this.close(event); };\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n WebSocketTransport.prototype.send = function (data) {\r\n if (this.webSocket && this.webSocket.readyState === this.webSocketConstructor.OPEN) {\r\n this.logger.log(LogLevel.Trace, \"(WebSockets transport) sending data. \" + getDataDetail(data, this.logMessageContent) + \".\");\r\n this.webSocket.send(data);\r\n return Promise.resolve();\r\n }\r\n return Promise.reject(\"WebSocket is not in the OPEN state\");\r\n };\r\n WebSocketTransport.prototype.stop = function () {\r\n if (this.webSocket) {\r\n // Clear websocket handlers because we are considering the socket closed now\r\n this.webSocket.onclose = function () { };\r\n this.webSocket.onmessage = function () { };\r\n this.webSocket.onerror = function () { };\r\n this.webSocket.close();\r\n this.webSocket = undefined;\r\n // Manually invoke onclose callback inline so we know the HttpConnection was closed properly before returning\r\n // This also solves an issue where websocket.onclose could take 18+ seconds to trigger during network disconnects\r\n this.close(undefined);\r\n }\r\n return Promise.resolve();\r\n };\r\n WebSocketTransport.prototype.close = function (event) {\r\n // webSocket will be null if the transport did not start successfully\r\n this.logger.log(LogLevel.Trace, \"(WebSockets transport) socket closed.\");\r\n if (this.onclose) {\r\n if (event && (event.wasClean === false || event.code !== 1000)) {\r\n this.onclose(new Error(\"WebSocket closed with status code: \" + event.code + \" (\" + event.reason + \").\"));\r\n }\r\n else {\r\n this.onclose();\r\n }\r\n }\r\n };\r\n return WebSocketTransport;\r\n}());\r\nexport { WebSocketTransport };\r\n//# sourceMappingURL=WebSocketTransport.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nimport { DefaultHttpClient } from \"./DefaultHttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { HttpTransportType, TransferFormat } from \"./ITransport\";\r\nimport { LongPollingTransport } from \"./LongPollingTransport\";\r\nimport { ServerSentEventsTransport } from \"./ServerSentEventsTransport\";\r\nimport { Arg, createLogger } from \"./Utils\";\r\nimport { WebSocketTransport } from \"./WebSocketTransport\";\r\nvar MAX_REDIRECTS = 100;\r\nvar WebSocketModule = null;\r\nvar EventSourceModule = null;\r\nif (typeof window === \"undefined\" && typeof require !== \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n var requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n WebSocketModule = requireFunc(\"ws\");\r\n EventSourceModule = requireFunc(\"eventsource\");\r\n}\r\n/** @private */\r\nvar HttpConnection = /** @class */ (function () {\r\n function HttpConnection(url, options) {\r\n if (options === void 0) { options = {}; }\r\n this.features = {};\r\n Arg.isRequired(url, \"url\");\r\n this.logger = createLogger(options.logger);\r\n this.baseUrl = this.resolveUrl(url);\r\n options = options || {};\r\n options.logMessageContent = options.logMessageContent || false;\r\n var isNode = typeof window === \"undefined\";\r\n if (!isNode && typeof WebSocket !== \"undefined\" && !options.WebSocket) {\r\n options.WebSocket = WebSocket;\r\n }\r\n else if (isNode && !options.WebSocket) {\r\n if (WebSocketModule) {\r\n options.WebSocket = WebSocketModule;\r\n }\r\n }\r\n if (!isNode && typeof EventSource !== \"undefined\" && !options.EventSource) {\r\n options.EventSource = EventSource;\r\n }\r\n else if (isNode && !options.EventSource) {\r\n if (typeof EventSourceModule !== \"undefined\") {\r\n options.EventSource = EventSourceModule;\r\n }\r\n }\r\n this.httpClient = options.httpClient || new DefaultHttpClient(this.logger);\r\n this.connectionState = 2 /* Disconnected */;\r\n this.options = options;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n HttpConnection.prototype.start = function (transferFormat) {\r\n transferFormat = transferFormat || TransferFormat.Binary;\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this.logger.log(LogLevel.Debug, \"Starting connection with transfer format '\" + TransferFormat[transferFormat] + \"'.\");\r\n if (this.connectionState !== 2 /* Disconnected */) {\r\n return Promise.reject(new Error(\"Cannot start a connection that is not in the 'Disconnected' state.\"));\r\n }\r\n this.connectionState = 0 /* Connecting */;\r\n this.startPromise = this.startInternal(transferFormat);\r\n return this.startPromise;\r\n };\r\n HttpConnection.prototype.send = function (data) {\r\n if (this.connectionState !== 1 /* Connected */) {\r\n throw new Error(\"Cannot send data if the connection is not in the 'Connected' State.\");\r\n }\r\n // Transport will not be null if state is connected\r\n return this.transport.send(data);\r\n };\r\n HttpConnection.prototype.stop = function (error) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.connectionState = 2 /* Disconnected */;\r\n // Set error as soon as possible otherwise there is a race between\r\n // the transport closing and providing an error and the error from a close message\r\n // We would prefer the close message error.\r\n this.stopError = error;\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.startPromise];\r\n case 2:\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_1 = _a.sent();\r\n return [3 /*break*/, 4];\r\n case 4:\r\n if (!this.transport) return [3 /*break*/, 6];\r\n return [4 /*yield*/, this.transport.stop()];\r\n case 5:\r\n _a.sent();\r\n this.transport = undefined;\r\n _a.label = 6;\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n HttpConnection.prototype.startInternal = function (transferFormat) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var url, negotiateResponse, redirects, _loop_1, this_1, state_1, e_2;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n url = this.baseUrl;\r\n this.accessTokenFactory = this.options.accessTokenFactory;\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 12, , 13]);\r\n if (!this.options.skipNegotiation) return [3 /*break*/, 5];\r\n if (!(this.options.transport === HttpTransportType.WebSockets)) return [3 /*break*/, 3];\r\n // No need to add a connection ID in this case\r\n this.transport = this.constructTransport(HttpTransportType.WebSockets);\r\n // We should just call connect directly in this case.\r\n // No fallback or negotiate in this case.\r\n return [4 /*yield*/, this.transport.connect(url, transferFormat)];\r\n case 2:\r\n // We should just call connect directly in this case.\r\n // No fallback or negotiate in this case.\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3: throw Error(\"Negotiation can only be skipped when using the WebSocket transport directly.\");\r\n case 4: return [3 /*break*/, 11];\r\n case 5:\r\n negotiateResponse = null;\r\n redirects = 0;\r\n _loop_1 = function () {\r\n var accessToken_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this_1.getNegotiationResponse(url)];\r\n case 1:\r\n negotiateResponse = _a.sent();\r\n // the user tries to stop the connection when it is being started\r\n if (this_1.connectionState === 2 /* Disconnected */) {\r\n return [2 /*return*/, { value: void 0 }];\r\n }\r\n if (negotiateResponse.error) {\r\n throw Error(negotiateResponse.error);\r\n }\r\n if (negotiateResponse.ProtocolVersion) {\r\n throw Error(\"Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.\");\r\n }\r\n if (negotiateResponse.url) {\r\n url = negotiateResponse.url;\r\n }\r\n if (negotiateResponse.accessToken) {\r\n accessToken_1 = negotiateResponse.accessToken;\r\n this_1.accessTokenFactory = function () { return accessToken_1; };\r\n }\r\n redirects++;\r\n return [2 /*return*/];\r\n }\r\n });\r\n };\r\n this_1 = this;\r\n _a.label = 6;\r\n case 6: return [5 /*yield**/, _loop_1()];\r\n case 7:\r\n state_1 = _a.sent();\r\n if (typeof state_1 === \"object\")\r\n return [2 /*return*/, state_1.value];\r\n _a.label = 8;\r\n case 8:\r\n if (negotiateResponse.url && redirects < MAX_REDIRECTS) return [3 /*break*/, 6];\r\n _a.label = 9;\r\n case 9:\r\n if (redirects === MAX_REDIRECTS && negotiateResponse.url) {\r\n throw Error(\"Negotiate redirection limit exceeded.\");\r\n }\r\n return [4 /*yield*/, this.createTransport(url, this.options.transport, negotiateResponse, transferFormat)];\r\n case 10:\r\n _a.sent();\r\n _a.label = 11;\r\n case 11:\r\n if (this.transport instanceof LongPollingTransport) {\r\n this.features.inherentKeepAlive = true;\r\n }\r\n this.transport.onreceive = this.onreceive;\r\n this.transport.onclose = function (e) { return _this.stopConnection(e); };\r\n // only change the state if we were connecting to not overwrite\r\n // the state if the connection is already marked as Disconnected\r\n this.changeState(0 /* Connecting */, 1 /* Connected */);\r\n return [3 /*break*/, 13];\r\n case 12:\r\n e_2 = _a.sent();\r\n this.logger.log(LogLevel.Error, \"Failed to start the connection: \" + e_2);\r\n this.connectionState = 2 /* Disconnected */;\r\n this.transport = undefined;\r\n throw e_2;\r\n case 13: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n HttpConnection.prototype.getNegotiationResponse = function (url) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _a, headers, token, negotiateUrl, response, e_3;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n if (!this.accessTokenFactory) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.accessTokenFactory()];\r\n case 1:\r\n token = _b.sent();\r\n if (token) {\r\n headers = (_a = {},\r\n _a[\"Authorization\"] = \"Bearer \" + token,\r\n _a);\r\n }\r\n _b.label = 2;\r\n case 2:\r\n negotiateUrl = this.resolveNegotiateUrl(url);\r\n this.logger.log(LogLevel.Debug, \"Sending negotiation request: \" + negotiateUrl + \".\");\r\n _b.label = 3;\r\n case 3:\r\n _b.trys.push([3, 5, , 6]);\r\n return [4 /*yield*/, this.httpClient.post(negotiateUrl, {\r\n content: \"\",\r\n headers: headers,\r\n })];\r\n case 4:\r\n response = _b.sent();\r\n if (response.statusCode !== 200) {\r\n throw Error(\"Unexpected status code returned from negotiate \" + response.statusCode);\r\n }\r\n return [2 /*return*/, JSON.parse(response.content)];\r\n case 5:\r\n e_3 = _b.sent();\r\n this.logger.log(LogLevel.Error, \"Failed to complete negotiation with the server: \" + e_3);\r\n throw e_3;\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n HttpConnection.prototype.createConnectUrl = function (url, connectionId) {\r\n if (!connectionId) {\r\n return url;\r\n }\r\n return url + (url.indexOf(\"?\") === -1 ? \"?\" : \"&\") + (\"id=\" + connectionId);\r\n };\r\n HttpConnection.prototype.createTransport = function (url, requestedTransport, negotiateResponse, requestedTransferFormat) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var connectUrl, transports, _i, transports_1, endpoint, transport, ex_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n connectUrl = this.createConnectUrl(url, negotiateResponse.connectionId);\r\n if (!this.isITransport(requestedTransport)) return [3 /*break*/, 2];\r\n this.logger.log(LogLevel.Debug, \"Connection was provided an instance of ITransport, using that directly.\");\r\n this.transport = requestedTransport;\r\n return [4 /*yield*/, this.transport.connect(connectUrl, requestedTransferFormat)];\r\n case 1:\r\n _a.sent();\r\n // only change the state if we were connecting to not overwrite\r\n // the state if the connection is already marked as Disconnected\r\n this.changeState(0 /* Connecting */, 1 /* Connected */);\r\n return [2 /*return*/];\r\n case 2:\r\n transports = negotiateResponse.availableTransports || [];\r\n _i = 0, transports_1 = transports;\r\n _a.label = 3;\r\n case 3:\r\n if (!(_i < transports_1.length)) return [3 /*break*/, 9];\r\n endpoint = transports_1[_i];\r\n this.connectionState = 0 /* Connecting */;\r\n transport = this.resolveTransport(endpoint, requestedTransport, requestedTransferFormat);\r\n if (!(typeof transport === \"number\")) return [3 /*break*/, 8];\r\n this.transport = this.constructTransport(transport);\r\n if (!!negotiateResponse.connectionId) return [3 /*break*/, 5];\r\n return [4 /*yield*/, this.getNegotiationResponse(url)];\r\n case 4:\r\n negotiateResponse = _a.sent();\r\n connectUrl = this.createConnectUrl(url, negotiateResponse.connectionId);\r\n _a.label = 5;\r\n case 5:\r\n _a.trys.push([5, 7, , 8]);\r\n return [4 /*yield*/, this.transport.connect(connectUrl, requestedTransferFormat)];\r\n case 6:\r\n _a.sent();\r\n this.changeState(0 /* Connecting */, 1 /* Connected */);\r\n return [2 /*return*/];\r\n case 7:\r\n ex_1 = _a.sent();\r\n this.logger.log(LogLevel.Error, \"Failed to start the transport '\" + HttpTransportType[transport] + \"': \" + ex_1);\r\n this.connectionState = 2 /* Disconnected */;\r\n negotiateResponse.connectionId = undefined;\r\n return [3 /*break*/, 8];\r\n case 8:\r\n _i++;\r\n return [3 /*break*/, 3];\r\n case 9: throw new Error(\"Unable to initialize any of the available transports.\");\r\n }\r\n });\r\n });\r\n };\r\n HttpConnection.prototype.constructTransport = function (transport) {\r\n switch (transport) {\r\n case HttpTransportType.WebSockets:\r\n if (!this.options.WebSocket) {\r\n throw new Error(\"'WebSocket' is not supported in your environment.\");\r\n }\r\n return new WebSocketTransport(this.httpClient, this.accessTokenFactory, this.logger, this.options.logMessageContent || false, this.options.WebSocket);\r\n case HttpTransportType.ServerSentEvents:\r\n if (!this.options.EventSource) {\r\n throw new Error(\"'EventSource' is not supported in your environment.\");\r\n }\r\n return new ServerSentEventsTransport(this.httpClient, this.accessTokenFactory, this.logger, this.options.logMessageContent || false, this.options.EventSource);\r\n case HttpTransportType.LongPolling:\r\n return new LongPollingTransport(this.httpClient, this.accessTokenFactory, this.logger, this.options.logMessageContent || false);\r\n default:\r\n throw new Error(\"Unknown transport: \" + transport + \".\");\r\n }\r\n };\r\n HttpConnection.prototype.resolveTransport = function (endpoint, requestedTransport, requestedTransferFormat) {\r\n var transport = HttpTransportType[endpoint.transport];\r\n if (transport === null || transport === undefined) {\r\n this.logger.log(LogLevel.Debug, \"Skipping transport '\" + endpoint.transport + \"' because it is not supported by this client.\");\r\n }\r\n else {\r\n var transferFormats = endpoint.transferFormats.map(function (s) { return TransferFormat[s]; });\r\n if (transportMatches(requestedTransport, transport)) {\r\n if (transferFormats.indexOf(requestedTransferFormat) >= 0) {\r\n if ((transport === HttpTransportType.WebSockets && !this.options.WebSocket) ||\r\n (transport === HttpTransportType.ServerSentEvents && !this.options.EventSource)) {\r\n this.logger.log(LogLevel.Debug, \"Skipping transport '\" + HttpTransportType[transport] + \"' because it is not supported in your environment.'\");\r\n }\r\n else {\r\n this.logger.log(LogLevel.Debug, \"Selecting transport '\" + HttpTransportType[transport] + \"'.\");\r\n return transport;\r\n }\r\n }\r\n else {\r\n this.logger.log(LogLevel.Debug, \"Skipping transport '\" + HttpTransportType[transport] + \"' because it does not support the requested transfer format '\" + TransferFormat[requestedTransferFormat] + \"'.\");\r\n }\r\n }\r\n else {\r\n this.logger.log(LogLevel.Debug, \"Skipping transport '\" + HttpTransportType[transport] + \"' because it was disabled by the client.\");\r\n }\r\n }\r\n return null;\r\n };\r\n HttpConnection.prototype.isITransport = function (transport) {\r\n return transport && typeof (transport) === \"object\" && \"connect\" in transport;\r\n };\r\n HttpConnection.prototype.changeState = function (from, to) {\r\n if (this.connectionState === from) {\r\n this.connectionState = to;\r\n return true;\r\n }\r\n return false;\r\n };\r\n HttpConnection.prototype.stopConnection = function (error) {\r\n this.transport = undefined;\r\n // If we have a stopError, it takes precedence over the error from the transport\r\n error = this.stopError || error;\r\n if (error) {\r\n this.logger.log(LogLevel.Error, \"Connection disconnected with error '\" + error + \"'.\");\r\n }\r\n else {\r\n this.logger.log(LogLevel.Information, \"Connection disconnected.\");\r\n }\r\n this.connectionState = 2 /* Disconnected */;\r\n if (this.onclose) {\r\n this.onclose(error);\r\n }\r\n };\r\n HttpConnection.prototype.resolveUrl = function (url) {\r\n // startsWith is not supported in IE\r\n if (url.lastIndexOf(\"https://\", 0) === 0 || url.lastIndexOf(\"http://\", 0) === 0) {\r\n return url;\r\n }\r\n if (typeof window === \"undefined\" || !window || !window.document) {\r\n throw new Error(\"Cannot resolve '\" + url + \"'.\");\r\n }\r\n // Setting the url to the href propery of an anchor tag handles normalization\r\n // for us. There are 3 main cases.\r\n // 1. Relative path normalization e.g \"b\" -> \"http://localhost:5000/a/b\"\r\n // 2. Absolute path normalization e.g \"/a/b\" -> \"http://localhost:5000/a/b\"\r\n // 3. Networkpath reference normalization e.g \"//localhost:5000/a/b\" -> \"http://localhost:5000/a/b\"\r\n var aTag = window.document.createElement(\"a\");\r\n aTag.href = url;\r\n this.logger.log(LogLevel.Information, \"Normalizing '\" + url + \"' to '\" + aTag.href + \"'.\");\r\n return aTag.href;\r\n };\r\n HttpConnection.prototype.resolveNegotiateUrl = function (url) {\r\n var index = url.indexOf(\"?\");\r\n var negotiateUrl = url.substring(0, index === -1 ? url.length : index);\r\n if (negotiateUrl[negotiateUrl.length - 1] !== \"/\") {\r\n negotiateUrl += \"/\";\r\n }\r\n negotiateUrl += \"negotiate\";\r\n negotiateUrl += index === -1 ? \"\" : url.substring(index);\r\n return negotiateUrl;\r\n };\r\n return HttpConnection;\r\n}());\r\nexport { HttpConnection };\r\nfunction transportMatches(requestedTransport, actualTransport) {\r\n return !requestedTransport || ((actualTransport & requestedTransport) !== 0);\r\n}\r\n//# sourceMappingURL=HttpConnection.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nvar JSON_HUB_PROTOCOL_NAME = \"json\";\r\n/** Implements the JSON Hub Protocol. */\r\nvar JsonHubProtocol = /** @class */ (function () {\r\n function JsonHubProtocol() {\r\n /** @inheritDoc */\r\n this.name = JSON_HUB_PROTOCOL_NAME;\r\n /** @inheritDoc */\r\n this.version = 1;\r\n /** @inheritDoc */\r\n this.transferFormat = TransferFormat.Text;\r\n }\r\n /** Creates an array of {@link @aspnet/signalr.HubMessage} objects from the specified serialized representation.\r\n *\r\n * @param {string} input A string containing the serialized representation.\r\n * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.\r\n */\r\n JsonHubProtocol.prototype.parseMessages = function (input, logger) {\r\n // The interface does allow \"ArrayBuffer\" to be passed in, but this implementation does not. So let's throw a useful error.\r\n if (typeof input !== \"string\") {\r\n throw new Error(\"Invalid input for JSON hub protocol. Expected a string.\");\r\n }\r\n if (!input) {\r\n return [];\r\n }\r\n if (logger === null) {\r\n logger = NullLogger.instance;\r\n }\r\n // Parse the messages\r\n var messages = TextMessageFormat.parse(input);\r\n var hubMessages = [];\r\n for (var _i = 0, messages_1 = messages; _i < messages_1.length; _i++) {\r\n var message = messages_1[_i];\r\n var parsedMessage = JSON.parse(message);\r\n if (typeof parsedMessage.type !== \"number\") {\r\n throw new Error(\"Invalid payload.\");\r\n }\r\n switch (parsedMessage.type) {\r\n case MessageType.Invocation:\r\n this.isInvocationMessage(parsedMessage);\r\n break;\r\n case MessageType.StreamItem:\r\n this.isStreamItemMessage(parsedMessage);\r\n break;\r\n case MessageType.Completion:\r\n this.isCompletionMessage(parsedMessage);\r\n break;\r\n case MessageType.Ping:\r\n // Single value, no need to validate\r\n break;\r\n case MessageType.Close:\r\n // All optional values, no need to validate\r\n break;\r\n default:\r\n // Future protocol changes can add message types, old clients can ignore them\r\n logger.log(LogLevel.Information, \"Unknown message type '\" + parsedMessage.type + \"' ignored.\");\r\n continue;\r\n }\r\n hubMessages.push(parsedMessage);\r\n }\r\n return hubMessages;\r\n };\r\n /** Writes the specified {@link @aspnet/signalr.HubMessage} to a string and returns it.\r\n *\r\n * @param {HubMessage} message The message to write.\r\n * @returns {string} A string containing the serialized representation of the message.\r\n */\r\n JsonHubProtocol.prototype.writeMessage = function (message) {\r\n return TextMessageFormat.write(JSON.stringify(message));\r\n };\r\n JsonHubProtocol.prototype.isInvocationMessage = function (message) {\r\n this.assertNotEmptyString(message.target, \"Invalid payload for Invocation message.\");\r\n if (message.invocationId !== undefined) {\r\n this.assertNotEmptyString(message.invocationId, \"Invalid payload for Invocation message.\");\r\n }\r\n };\r\n JsonHubProtocol.prototype.isStreamItemMessage = function (message) {\r\n this.assertNotEmptyString(message.invocationId, \"Invalid payload for StreamItem message.\");\r\n if (message.item === undefined) {\r\n throw new Error(\"Invalid payload for StreamItem message.\");\r\n }\r\n };\r\n JsonHubProtocol.prototype.isCompletionMessage = function (message) {\r\n if (message.result && message.error) {\r\n throw new Error(\"Invalid payload for Completion message.\");\r\n }\r\n if (!message.result && message.error) {\r\n this.assertNotEmptyString(message.error, \"Invalid payload for Completion message.\");\r\n }\r\n this.assertNotEmptyString(message.invocationId, \"Invalid payload for Completion message.\");\r\n };\r\n JsonHubProtocol.prototype.assertNotEmptyString = function (value, errorMessage) {\r\n if (typeof value !== \"string\" || value === \"\") {\r\n throw new Error(errorMessage);\r\n }\r\n };\r\n return JsonHubProtocol;\r\n}());\r\nexport { JsonHubProtocol };\r\n//# sourceMappingURL=JsonHubProtocol.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nimport { HttpConnection } from \"./HttpConnection\";\r\nimport { HubConnection } from \"./HubConnection\";\r\nimport { JsonHubProtocol } from \"./JsonHubProtocol\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { Arg, ConsoleLogger } from \"./Utils\";\r\n/** A builder for configuring {@link @aspnet/signalr.HubConnection} instances. */\r\nvar HubConnectionBuilder = /** @class */ (function () {\r\n function HubConnectionBuilder() {\r\n }\r\n HubConnectionBuilder.prototype.configureLogging = function (logging) {\r\n Arg.isRequired(logging, \"logging\");\r\n if (isLogger(logging)) {\r\n this.logger = logging;\r\n }\r\n else {\r\n this.logger = new ConsoleLogger(logging);\r\n }\r\n return this;\r\n };\r\n HubConnectionBuilder.prototype.withUrl = function (url, transportTypeOrOptions) {\r\n Arg.isRequired(url, \"url\");\r\n this.url = url;\r\n // Flow-typing knows where it's at. Since HttpTransportType is a number and IHttpConnectionOptions is guaranteed\r\n // to be an object, we know (as does TypeScript) this comparison is all we need to figure out which overload was called.\r\n if (typeof transportTypeOrOptions === \"object\") {\r\n this.httpConnectionOptions = transportTypeOrOptions;\r\n }\r\n else {\r\n this.httpConnectionOptions = {\r\n transport: transportTypeOrOptions,\r\n };\r\n }\r\n return this;\r\n };\r\n /** Configures the {@link @aspnet/signalr.HubConnection} to use the specified Hub Protocol.\r\n *\r\n * @param {IHubProtocol} protocol The {@link @aspnet/signalr.IHubProtocol} implementation to use.\r\n */\r\n HubConnectionBuilder.prototype.withHubProtocol = function (protocol) {\r\n Arg.isRequired(protocol, \"protocol\");\r\n this.protocol = protocol;\r\n return this;\r\n };\r\n /** Creates a {@link @aspnet/signalr.HubConnection} from the configuration options specified in this builder.\r\n *\r\n * @returns {HubConnection} The configured {@link @aspnet/signalr.HubConnection}.\r\n */\r\n HubConnectionBuilder.prototype.build = function () {\r\n // If httpConnectionOptions has a logger, use it. Otherwise, override it with the one\r\n // provided to configureLogger\r\n var httpConnectionOptions = this.httpConnectionOptions || {};\r\n // If it's 'null', the user **explicitly** asked for null, don't mess with it.\r\n if (httpConnectionOptions.logger === undefined) {\r\n // If our logger is undefined or null, that's OK, the HttpConnection constructor will handle it.\r\n httpConnectionOptions.logger = this.logger;\r\n }\r\n // Now create the connection\r\n if (!this.url) {\r\n throw new Error(\"The 'HubConnectionBuilder.withUrl' method must be called before building the connection.\");\r\n }\r\n var connection = new HttpConnection(this.url, httpConnectionOptions);\r\n return HubConnection.create(connection, this.logger || NullLogger.instance, this.protocol || new JsonHubProtocol());\r\n };\r\n return HubConnectionBuilder;\r\n}());\r\nexport { HubConnectionBuilder };\r\nfunction isLogger(logger) {\r\n return logger.log !== undefined;\r\n}\r\n//# sourceMappingURL=HubConnectionBuilder.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n// Version token that will be replaced by the prepack command\r\n/** The version of the SignalR client. */\r\nexport var VERSION = \"1.1.4\";\r\nexport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nexport { HttpClient, HttpResponse } from \"./HttpClient\";\r\nexport { DefaultHttpClient } from \"./DefaultHttpClient\";\r\nexport { HubConnection, HubConnectionState } from \"./HubConnection\";\r\nexport { HubConnectionBuilder } from \"./HubConnectionBuilder\";\r\nexport { MessageType } from \"./IHubProtocol\";\r\nexport { LogLevel } from \"./ILogger\";\r\nexport { HttpTransportType, TransferFormat } from \"./ITransport\";\r\nexport { NullLogger } from \"./Loggers\";\r\nexport { JsonHubProtocol } from \"./JsonHubProtocol\";\r\n//# sourceMappingURL=index.js.map","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChatMessages.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ChatMessages.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ChatMessages.vue?vue&type=template&id=6f512058&scoped=true&\"\nimport script from \"./ChatMessages.vue?vue&type=script&lang=js&\"\nexport * from \"./ChatMessages.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ChatMessages.vue?vue&type=style&index=0&lang=less&\"\nimport style1 from \"./ChatMessages.vue?vue&type=style&index=1&id=6f512058&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6f512058\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chat.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Chat.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Chat.vue?vue&type=template&id=24855757&\"\nimport script from \"./Chat.vue?vue&type=script&lang=js&\"\nexport * from \"./Chat.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BlocoMeuAnuncio.vue?vue&type=style&index=0&id=2eb23568&lang=less&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BlocoMeuAnuncio.vue?vue&type=style&index=0&id=2eb23568&lang=less&scoped=true&\"","export default {\r\n\r\n getOptions(itensObj) {\r\n if (!itensObj) { return []; }\r\n\r\n var options = [];\r\n for (var key in itensObj) {\r\n options.push({ text: itensObj[key], value: key });\r\n }\r\n\r\n return options;\r\n },\r\n getOption(itensObj, value) {\r\n if (!itensObj) { return []; }\r\n\r\n for (var key in itensObj) {\r\n\r\n if (key == value) {\r\n return { text: itensObj[key], value: key };\r\n }\r\n }\r\n return undefined;\r\n },\r\n waitPromise(milliseconds) {\r\n return new Promise((resolve) => {\r\n setTimeout(() => {\r\n resolve();\r\n }, milliseconds);\r\n });\r\n },\r\n getOnlyNumbers(text) {\r\n if (!text) { return undefined; }\r\n return text.replace(/\\D/g, \"\");\r\n },\r\n\r\n parseNomeCompleto(nomeCompleto) {\r\n\r\n var primeiroNome = \"\";\r\n var restante = \"\";\r\n\r\n if (nomeCompleto) {\r\n var espacoIdx = nomeCompleto.indexOf(\" \");\r\n\r\n if (espacoIdx >= 0) {\r\n primeiroNome = nomeCompleto.substr(0, espacoIdx);\r\n restante = nomeCompleto.substr(espacoIdx + 1);\r\n } else {\r\n primeiroNome = nomeCompleto;\r\n }\r\n }\r\n\r\n return {\r\n primeiroNome: primeiroNome,\r\n restante: restante\r\n };\r\n },\r\n}","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n"],"sourceRoot":""}