{"version":3,"file":"vendor.aurelia-fetch-client.ccbd20684adf6766.bundle.js","mappings":"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","sources":["webpack://client-app/./node_modules/aurelia-fetch-client/dist/native-modules/aurelia-fetch-client.js"],"sourcesContent":["import { PLATFORM, DOM } from 'aurelia-pal';\n\nfunction json(body, replacer) {\r\n return JSON.stringify((body !== undefined ? body : {}), replacer);\r\n}\n\nvar retryStrategy = {\r\n fixed: 0,\r\n incremental: 1,\r\n exponential: 2,\r\n random: 3\r\n};\r\nvar defaultRetryConfig = {\r\n maxRetries: 3,\r\n interval: 1000,\r\n strategy: retryStrategy.fixed\r\n};\r\nvar RetryInterceptor = (function () {\r\n function RetryInterceptor(retryConfig) {\r\n this.retryConfig = Object.assign({}, defaultRetryConfig, retryConfig || {});\r\n if (this.retryConfig.strategy === retryStrategy.exponential &&\r\n this.retryConfig.interval <= 1000) {\r\n throw new Error('An interval less than or equal to 1 second is not allowed when using the exponential retry strategy');\r\n }\r\n }\r\n RetryInterceptor.prototype.request = function (request) {\r\n var $r = request;\r\n if (!$r.retryConfig) {\r\n $r.retryConfig = Object.assign({}, this.retryConfig);\r\n $r.retryConfig.counter = 0;\r\n }\r\n $r.retryConfig.requestClone = request.clone();\r\n return request;\r\n };\r\n RetryInterceptor.prototype.response = function (response, request) {\r\n delete request.retryConfig;\r\n return response;\r\n };\r\n RetryInterceptor.prototype.responseError = function (error, request, httpClient) {\r\n var retryConfig = request.retryConfig;\r\n var requestClone = retryConfig.requestClone;\r\n return Promise.resolve().then(function () {\r\n if (retryConfig.counter < retryConfig.maxRetries) {\r\n var result = retryConfig.doRetry ? retryConfig.doRetry(error, request) : true;\r\n return Promise.resolve(result).then(function (doRetry) {\r\n if (doRetry) {\r\n retryConfig.counter++;\r\n return new Promise(function (resolve) { return PLATFORM.global.setTimeout(resolve, calculateDelay(retryConfig) || 0); })\r\n .then(function () {\r\n var newRequest = requestClone.clone();\r\n if (typeof (retryConfig.beforeRetry) === 'function') {\r\n return retryConfig.beforeRetry(newRequest, httpClient);\r\n }\r\n return newRequest;\r\n })\r\n .then(function (newRequest) {\r\n return httpClient.fetch(Object.assign(newRequest, { retryConfig: retryConfig }));\r\n });\r\n }\r\n delete request.retryConfig;\r\n throw error;\r\n });\r\n }\r\n delete request.retryConfig;\r\n throw error;\r\n });\r\n };\r\n return RetryInterceptor;\r\n}());\r\nfunction calculateDelay(retryConfig) {\r\n var interval = retryConfig.interval, strategy = retryConfig.strategy, minRandomInterval = retryConfig.minRandomInterval, maxRandomInterval = retryConfig.maxRandomInterval, counter = retryConfig.counter;\r\n if (typeof (strategy) === 'function') {\r\n return retryConfig.strategy(counter);\r\n }\r\n switch (strategy) {\r\n case (retryStrategy.fixed):\r\n return retryStrategies[retryStrategy.fixed](interval);\r\n case (retryStrategy.incremental):\r\n return retryStrategies[retryStrategy.incremental](counter, interval);\r\n case (retryStrategy.exponential):\r\n return retryStrategies[retryStrategy.exponential](counter, interval);\r\n case (retryStrategy.random):\r\n return retryStrategies[retryStrategy.random](counter, interval, minRandomInterval, maxRandomInterval);\r\n default:\r\n throw new Error('Unrecognized retry strategy');\r\n }\r\n}\r\nvar retryStrategies = [\r\n function (interval) { return interval; },\r\n function (retryCount, interval) { return interval * retryCount; },\r\n function (retryCount, interval) { return retryCount === 1 ? interval : Math.pow(interval, retryCount) / 1000; },\r\n function (retryCount, interval, minRandomInterval, maxRandomInterval) {\r\n if (minRandomInterval === void 0) { minRandomInterval = 0; }\r\n if (maxRandomInterval === void 0) { maxRandomInterval = 60000; }\r\n return Math.random() * (maxRandomInterval - minRandomInterval) + minRandomInterval;\r\n }\r\n];\n\nvar HttpClientConfiguration = (function () {\r\n function HttpClientConfiguration() {\r\n this.baseUrl = '';\r\n this.defaults = {};\r\n this.interceptors = [];\r\n }\r\n HttpClientConfiguration.prototype.withBaseUrl = function (baseUrl) {\r\n this.baseUrl = baseUrl;\r\n return this;\r\n };\r\n HttpClientConfiguration.prototype.withDefaults = function (defaults) {\r\n this.defaults = defaults;\r\n return this;\r\n };\r\n HttpClientConfiguration.prototype.withInterceptor = function (interceptor) {\r\n this.interceptors.push(interceptor);\r\n return this;\r\n };\r\n HttpClientConfiguration.prototype.useStandardConfiguration = function () {\r\n var standardConfig = { credentials: 'same-origin' };\r\n Object.assign(this.defaults, standardConfig, this.defaults);\r\n return this.rejectErrorResponses();\r\n };\r\n HttpClientConfiguration.prototype.rejectErrorResponses = function () {\r\n return this.withInterceptor({ response: rejectOnError });\r\n };\r\n HttpClientConfiguration.prototype.withRetry = function (config) {\r\n var interceptor = new RetryInterceptor(config);\r\n return this.withInterceptor(interceptor);\r\n };\r\n return HttpClientConfiguration;\r\n}());\r\nfunction rejectOnError(response) {\r\n if (!response.ok) {\r\n throw response;\r\n }\r\n return response;\r\n}\n\nvar HttpClient = (function () {\r\n function HttpClient() {\r\n this.activeRequestCount = 0;\r\n this.isRequesting = false;\r\n this.isConfigured = false;\r\n this.baseUrl = '';\r\n this.defaults = null;\r\n this.interceptors = [];\r\n if (typeof fetch === 'undefined') {\r\n throw new Error('HttpClient requires a Fetch API implementation, but the current environment doesn\\'t support it. You may need to load a polyfill such as https://github.com/github/fetch');\r\n }\r\n }\r\n HttpClient.prototype.configure = function (config) {\r\n var normalizedConfig;\r\n if (typeof config === 'object') {\r\n normalizedConfig = { defaults: config };\r\n }\r\n else if (typeof config === 'function') {\r\n normalizedConfig = new HttpClientConfiguration();\r\n normalizedConfig.baseUrl = this.baseUrl;\r\n normalizedConfig.defaults = Object.assign({}, this.defaults);\r\n normalizedConfig.interceptors = this.interceptors;\r\n var c = config(normalizedConfig);\r\n if (HttpClientConfiguration.prototype.isPrototypeOf(c)) {\r\n normalizedConfig = c;\r\n }\r\n }\r\n else {\r\n throw new Error('invalid config');\r\n }\r\n var defaults = normalizedConfig.defaults;\r\n if (defaults && Headers.prototype.isPrototypeOf(defaults.headers)) {\r\n throw new Error('Default headers must be a plain object.');\r\n }\r\n var interceptors = normalizedConfig.interceptors;\r\n if (interceptors && interceptors.length) {\r\n if (interceptors.filter(function (x) { return RetryInterceptor.prototype.isPrototypeOf(x); }).length > 1) {\r\n throw new Error('Only one RetryInterceptor is allowed.');\r\n }\r\n var retryInterceptorIndex = interceptors.findIndex(function (x) { return RetryInterceptor.prototype.isPrototypeOf(x); });\r\n if (retryInterceptorIndex >= 0 && retryInterceptorIndex !== interceptors.length - 1) {\r\n throw new Error('The retry interceptor must be the last interceptor defined.');\r\n }\r\n }\r\n this.baseUrl = normalizedConfig.baseUrl;\r\n this.defaults = defaults;\r\n this.interceptors = normalizedConfig.interceptors || [];\r\n this.isConfigured = true;\r\n return this;\r\n };\r\n HttpClient.prototype.fetch = function (input, init) {\r\n var _this = this;\r\n trackRequestStart(this);\r\n var request = this.buildRequest(input, init);\r\n return processRequest(request, this.interceptors, this).then(function (result) {\r\n var response = null;\r\n if (Response.prototype.isPrototypeOf(result)) {\r\n response = Promise.resolve(result);\r\n }\r\n else if (Request.prototype.isPrototypeOf(result)) {\r\n request = result;\r\n response = fetch(result);\r\n }\r\n else {\r\n throw new Error(\"An invalid result was returned by the interceptor chain. Expected a Request or Response instance, but got [\" + result + \"]\");\r\n }\r\n return processResponse(response, _this.interceptors, request, _this);\r\n })\r\n .then(function (result) {\r\n if (Request.prototype.isPrototypeOf(result)) {\r\n return _this.fetch(result);\r\n }\r\n return result;\r\n })\r\n .then(function (result) {\r\n trackRequestEnd(_this);\r\n return result;\r\n }, function (error) {\r\n trackRequestEnd(_this);\r\n throw error;\r\n });\r\n };\r\n HttpClient.prototype.buildRequest = function (input, init) {\r\n var defaults = this.defaults || {};\r\n var request;\r\n var body;\r\n var requestContentType;\r\n var parsedDefaultHeaders = parseHeaderValues(defaults.headers);\r\n if (Request.prototype.isPrototypeOf(input)) {\r\n request = input;\r\n requestContentType = new Headers(request.headers).get('Content-Type');\r\n }\r\n else {\r\n if (!init) {\r\n init = {};\r\n }\r\n body = init.body;\r\n var bodyObj = body ? { body: body } : null;\r\n var requestInit = Object.assign({}, defaults, { headers: {} }, init, bodyObj);\r\n requestContentType = new Headers(requestInit.headers).get('Content-Type');\r\n request = new Request(getRequestUrl(this.baseUrl, input), requestInit);\r\n }\r\n if (!requestContentType) {\r\n if (new Headers(parsedDefaultHeaders).has('content-type')) {\r\n request.headers.set('Content-Type', new Headers(parsedDefaultHeaders).get('content-type'));\r\n }\r\n else if (body && isJSON(body)) {\r\n request.headers.set('Content-Type', 'application/json');\r\n }\r\n }\r\n setDefaultHeaders(request.headers, parsedDefaultHeaders);\r\n if (body && Blob.prototype.isPrototypeOf(body) && body.type) {\r\n request.headers.set('Content-Type', body.type);\r\n }\r\n return request;\r\n };\r\n HttpClient.prototype.get = function (input, init) {\r\n return this.fetch(input, init);\r\n };\r\n HttpClient.prototype.post = function (input, body, init) {\r\n return callFetch(this, input, body, init, 'POST');\r\n };\r\n HttpClient.prototype.put = function (input, body, init) {\r\n return callFetch(this, input, body, init, 'PUT');\r\n };\r\n HttpClient.prototype.patch = function (input, body, init) {\r\n return callFetch(this, input, body, init, 'PATCH');\r\n };\r\n HttpClient.prototype.delete = function (input, body, init) {\r\n return callFetch(this, input, body, init, 'DELETE');\r\n };\r\n return HttpClient;\r\n}());\r\nvar absoluteUrlRegexp = /^([a-z][a-z0-9+\\-.]*:)?\\/\\//i;\r\nfunction trackRequestStart(client) {\r\n client.isRequesting = !!(++client.activeRequestCount);\r\n if (client.isRequesting) {\r\n var evt_1 = DOM.createCustomEvent('aurelia-fetch-client-request-started', { bubbles: true, cancelable: true });\r\n setTimeout(function () { return DOM.dispatchEvent(evt_1); }, 1);\r\n }\r\n}\r\nfunction trackRequestEnd(client) {\r\n client.isRequesting = !!(--client.activeRequestCount);\r\n if (!client.isRequesting) {\r\n var evt_2 = DOM.createCustomEvent('aurelia-fetch-client-requests-drained', { bubbles: true, cancelable: true });\r\n setTimeout(function () { return DOM.dispatchEvent(evt_2); }, 1);\r\n }\r\n}\r\nfunction parseHeaderValues(headers) {\r\n var parsedHeaders = {};\r\n for (var name_1 in headers || {}) {\r\n if (headers.hasOwnProperty(name_1)) {\r\n parsedHeaders[name_1] = (typeof headers[name_1] === 'function') ? headers[name_1]() : headers[name_1];\r\n }\r\n }\r\n return parsedHeaders;\r\n}\r\nfunction getRequestUrl(baseUrl, url) {\r\n if (absoluteUrlRegexp.test(url)) {\r\n return url;\r\n }\r\n return (baseUrl || '') + url;\r\n}\r\nfunction setDefaultHeaders(headers, defaultHeaders) {\r\n for (var name_2 in defaultHeaders || {}) {\r\n if (defaultHeaders.hasOwnProperty(name_2) && !headers.has(name_2)) {\r\n headers.set(name_2, defaultHeaders[name_2]);\r\n }\r\n }\r\n}\r\nfunction processRequest(request, interceptors, http) {\r\n return applyInterceptors(request, interceptors, 'request', 'requestError', http);\r\n}\r\nfunction processResponse(response, interceptors, request, http) {\r\n return applyInterceptors(response, interceptors, 'response', 'responseError', request, http);\r\n}\r\nfunction applyInterceptors(input, interceptors, successName, errorName) {\r\n var interceptorArgs = [];\r\n for (var _i = 4; _i < arguments.length; _i++) {\r\n interceptorArgs[_i - 4] = arguments[_i];\r\n }\r\n return (interceptors || [])\r\n .reduce(function (chain, interceptor) {\r\n var successHandler = interceptor[successName];\r\n var errorHandler = interceptor[errorName];\r\n return chain.then(successHandler && (function (value) { return successHandler.call.apply(successHandler, [interceptor, value].concat(interceptorArgs)); }) || identity, errorHandler && (function (reason) { return errorHandler.call.apply(errorHandler, [interceptor, reason].concat(interceptorArgs)); }) || thrower);\r\n }, Promise.resolve(input));\r\n}\r\nfunction isJSON(str) {\r\n try {\r\n JSON.parse(str);\r\n }\r\n catch (err) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction identity(x) {\r\n return x;\r\n}\r\nfunction thrower(x) {\r\n throw x;\r\n}\r\nfunction callFetch(client, input, body, init, method) {\r\n if (!init) {\r\n init = {};\r\n }\r\n init.method = method;\r\n if (body) {\r\n init.body = body;\r\n }\r\n return client.fetch(input, init);\r\n}\n\nexport { json, retryStrategy, RetryInterceptor, HttpClientConfiguration, HttpClient };\n"],"names":["json","body","replacer","JSON","stringify","undefined","retryStrategy","defaultRetryConfig","maxRetries","interval","strategy","RetryInterceptor","retryConfig","this","Object","assign","Error","prototype","request","$r","counter","requestClone","clone","response","responseError","error","httpClient","Promise","resolve","then","result","doRetry","minRandomInterval","maxRandomInterval","retryStrategies","calculateDelay","newRequest","beforeRetry","fetch","retryCount","Math","pow","random","HttpClientConfiguration","baseUrl","defaults","interceptors","withBaseUrl","withDefaults","withInterceptor","interceptor","push","useStandardConfiguration","credentials","rejectErrorResponses","rejectOnError","withRetry","config","ok","HttpClient","activeRequestCount","isRequesting","isConfigured","configure","normalizedConfig","c","isPrototypeOf","Headers","headers","length","filter","x","retryInterceptorIndex","findIndex","input","init","_this","client","evt_1","bubbles","cancelable","setTimeout","trackRequestStart","buildRequest","http","applyInterceptors","processRequest","Response","Request","processResponse","trackRequestEnd","requestContentType","url","parsedDefaultHeaders","parsedHeaders","name_1","hasOwnProperty","parseHeaderValues","get","bodyObj","requestInit","absoluteUrlRegexp","test","has","set","str","parse","err","isJSON","defaultHeaders","name_2","setDefaultHeaders","Blob","type","post","callFetch","put","patch","delete","evt_2","successName","errorName","interceptorArgs","_i","arguments","reduce","chain","successHandler","errorHandler","value","call","apply","concat","identity","reason","thrower","method"],"sourceRoot":""}