{"version":3,"sources":["webpack:///./node_modules/@aws-amplify/api/node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/@aws-amplify/api/node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/@aws-amplify/api/node_modules/axios/lib/defaults.js","webpack:///./node_modules/@aws-amplify/api/lib-esm/RestClient.js","webpack:///./node_modules/@aws-amplify/api/lib-esm/API.js","webpack:///./node_modules/@aws-amplify/api/lib-esm/index.js","webpack:///./node_modules/@aws-amplify/api/node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/@aws-amplify/api/node_modules/axios/lib/axios.js","webpack:///./node_modules/@aws-amplify/api/node_modules/axios/lib/utils.js","webpack:///./node_modules/@aws-amplify/api/node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/@aws-amplify/api/node_modules/axios/index.js","webpack:///./node_modules/@aws-amplify/api/node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/@aws-amplify/api/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/@aws-amplify/api/node_modules/axios/lib/core/settle.js","webpack:///./node_modules/@aws-amplify/api/node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/@aws-amplify/api/node_modules/axios/lib/core/createError.js","webpack:///./node_modules/@aws-amplify/api/node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/@aws-amplify/api/node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/@aws-amplify/api/node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/@aws-amplify/api/node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/@aws-amplify/api/node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/@aws-amplify/api/node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/@aws-amplify/api/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/@aws-amplify/api/node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/@aws-amplify/api/node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/@aws-amplify/api/node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/@aws-amplify/api/node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/@aws-amplify/api/node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/@aws-amplify/api/node_modules/axios/lib/core/enhanceError.js"],"names":["utils","module","exports","isStandardBrowserEnv","write","name","value","expires","path","domain","secure","cookie","push","encodeURIComponent","isNumber","Date","toGMTString","isString","document","join","read","match","RegExp","decodeURIComponent","remove","this","now","Cancel","message","prototype","toString","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","isUndefined","getDefaultAdapter","adapter","XMLHttpRequest","process","Object","call","defaults","transformRequest","data","isFormData","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isObject","JSON","stringify","transformResponse","parse","e","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","validateStatus","status","common","forEach","method","merge","__assign","assign","t","s","i","n","arguments","length","p","hasOwnProperty","apply","__awaiter","thisArg","_arguments","P","generator","adopt","resolve","Promise","reject","fulfilled","step","next","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","Symbol","iterator","v","op","TypeError","pop","__rest","indexOf","getOwnPropertySymbols","propertyIsEnumerable","logger","urlLib","RestClient","options","_region","_service","_custom_header","undefined","endpoints","_options","debug","ajax","url","init","parsed_url","params","libraryHeaders","userAgent","initParams","isAllResponse","custom_header","_a","_b","parsedUrl","_this","_c","_parseUrl","host","responseType","isReactNative","response","withCredentials","signerServiceInfo","search","format","query","queryStringParameters","keys","reduce","acc","k","_request","get","credentials","_signed","err","put","patch","post","del","head","endpoint","apiName","cloud_logic_array","Array","isArray","region","service","signerServiceInfoParams","otherParams","endpoint_region","endpoint_service","creds","secret_key","secretAccessKey","access_key","accessKeyId","session_token","sessionToken","endpointInfo","signed_params","sign","catch","error","parts","split","slice","USER_AGENT_HEADER","APIClass","_api","_pubSub","PubSub","clientIdentifier","uuid","getModuleName","configure","API","otherOptions","opt","custom","header","warn","graphql_headers","createInstance","error_1","error_2","error_3","error_4","error_5","error_6","error_7","_headerBasedAuth","defaultAuthenticationType","aws_appsync_authenticationType","apiKey","authenticationType","credentialsOK","federatedInfo","session","aws_appsync_apiKey","Error","Authorization","_ensureCredentials","getItem","token","currentSession","getAccessToken","getJwtToken","getGraphqlOperationType","operation","doc","operationType","definitions","graphql","paramQuery","variables","authMode","filter","def","kind","operationDef","_graphql","_graphqlSubscribe","additionalHeaders","appSyncGraphqlEndpoint","customGraphqlEndpoint","customEndpointRegion","_d","_e","_f","_g","_h","_j","err_1","errors","_k","_l","aws_appsync_region","aws_appsync_graphqlEndpoint","graphql_endpoint","graphql_endpoint_iam_region","concat","GraphQLError","subscribe","observer","handle","additionalheaders","subscription","newSubscriptions_1","newTopics","observable","error_8","extensions","newSubscriptions","getOwnPropertyNames","map","topic","provider","complete","unsubscribe","cred","shear","_instance","register","InterceptorManager","handlers","use","eject","id","fn","h","bind","Axios","mergeConfig","defaultConfig","context","instance","request","extend","axios","create","instanceConfig","CancelToken","isCancel","all","promises","spread","default","val","constructor","FormData","ArrayBuffer","isView","isDate","isFunction","pipe","URLSearchParams","trim","str","replace","navigator","product","window","obj","l","key","assignValue","deepMerge","a","b","ignoreDuplicateOf","parsed","line","substr","toLowerCase","originURL","msie","test","urlParsingNode","createElement","resolveURL","href","setAttribute","protocol","hash","hostname","port","pathname","charAt","location","requestURL","createError","config","normalizedName","toUpperCase","enhanceError","code","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","prop","axiosKeys","otherKeys","settle","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","requestData","requestHeaders","auth","username","password","btoa","fullPath","baseURL","open","paramsSerializer","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","responseData","responseText","statusText","onabort","onerror","ontimeout","timeoutErrorMessage","cookies","xsrfValue","setRequestHeader","onDownloadProgress","addEventListener","onUploadProgress","upload","cancelToken","promise","cancel","abort","send","executor","resolvePromise","reason","throwIfRequested","source","c","dispatchRequest","interceptors","chain","interceptor","unshift","shift","getUri","encode","serializedParams","toISOString","hashmarkIndex","args","fns","relativeURL","transformData","throwIfCancellationRequested","isAbsoluteURL","combineURLs","requestedURL","callback","arr","isAxiosError","toJSON","description","number","fileName","lineNumber","columnNumber","stack"],"mappings":"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","file":"js/chunk-vendors~cd40ac80.5d9631de.js","sourcesContent":["'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport { ConsoleLogger as Logger, Signer, Platform, Credentials, } from '@aws-amplify/core';\nimport axios from 'axios';\nvar logger = new Logger('RestClient'), urlLib = require('url');\n/**\n* HTTP Client for REST requests. Send and receive JSON data.\n* Sign request with AWS credentials if available\n* Usage:\n
\nconst restClient = new RestClient();\nrestClient.get('...')\n .then(function(data) {\n console.log(data);\n })\n .catch(err => console.log(err));\n\n*/\nvar RestClient = /** @class */ (function () {\n /**\n * @param {RestClientOptions} [options] - Instance options\n */\n function RestClient(options) {\n this._region = 'us-east-1'; // this will be updated by endpoint function\n this._service = 'execute-api'; // this can be updated by endpoint function\n this._custom_header = undefined; // this can be updated by endpoint function\n var endpoints = options.endpoints;\n this._options = options;\n logger.debug('API Options', this._options);\n }\n /**\n * Update AWS credentials\n * @param {AWSCredentials} credentials - AWS credentials\n *\n updateCredentials(credentials: AWSCredentials) {\n this.options.credentials = credentials;\n }\n*/\n /**\n * Basic HTTP request. Customizable\n * @param {string} url - Full request URL\n * @param {string} method - Request HTTP method\n * @param {json} [init] - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestClient.prototype.ajax = function (url, method, init) {\n return __awaiter(this, void 0, void 0, function () {\n var parsed_url, params, libraryHeaders, userAgent, initParams, isAllResponse, custom_header, _a, _b, search, parsedUrl;\n var _this = this;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n logger.debug(method + ' ' + url);\n parsed_url = this._parseUrl(url);\n params = {\n method: method,\n url: url,\n host: parsed_url.host,\n path: parsed_url.path,\n headers: {},\n data: null,\n responseType: 'json',\n timeout: 0,\n };\n libraryHeaders = {};\n if (Platform.isReactNative) {\n userAgent = Platform.userAgent || 'aws-amplify/0.1.x';\n libraryHeaders = {\n 'User-Agent': userAgent,\n };\n }\n initParams = Object.assign({}, init);\n isAllResponse = initParams.response;\n if (initParams.body) {\n libraryHeaders['Content-Type'] = 'application/json; charset=UTF-8';\n params.data = JSON.stringify(initParams.body);\n }\n if (initParams.responseType) {\n params.responseType = initParams.responseType;\n }\n if (initParams.withCredentials) {\n params['withCredentials'] = initParams.withCredentials;\n }\n if (initParams.timeout) {\n params.timeout = initParams.timeout;\n }\n params['signerServiceInfo'] = initParams.signerServiceInfo;\n if (!this._custom_header) return [3 /*break*/, 2];\n return [4 /*yield*/, this._custom_header()];\n case 1:\n _a = _c.sent();\n return [3 /*break*/, 3];\n case 2:\n _a = undefined;\n _c.label = 3;\n case 3:\n custom_header = _a;\n params.headers = __assign(__assign(__assign({}, libraryHeaders), custom_header), initParams.headers);\n _b = urlLib.parse(url, true, true), search = _b.search, parsedUrl = __rest(_b, [\"search\"]);\n params.url = urlLib.format(__assign(__assign({}, parsedUrl), { query: __assign(__assign({}, parsedUrl.query), (initParams.queryStringParameters || {})) }));\n // Do not sign the request if client has added 'Authorization' header,\n // which means custom authorizer.\n if (typeof params.headers['Authorization'] !== 'undefined') {\n params.headers = Object.keys(params.headers).reduce(function (acc, k) {\n if (params.headers[k]) {\n acc[k] = params.headers[k];\n }\n return acc;\n // tslint:disable-next-line:align\n }, {});\n return [2 /*return*/, this._request(params, isAllResponse)];\n }\n // Signing the request in case there credentials are available\n return [2 /*return*/, Credentials.get().then(function (credentials) { return _this._signed(__assign({}, params), credentials, isAllResponse); }, function (err) {\n logger.debug('No credentials available, the request will be unsigned');\n return _this._request(params, isAllResponse);\n })];\n }\n });\n });\n };\n /**\n * GET HTTP request\n * @param {string} url - Full request URL\n * @param {JSON} init - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestClient.prototype.get = function (url, init) {\n return this.ajax(url, 'GET', init);\n };\n /**\n * PUT HTTP request\n * @param {string} url - Full request URL\n * @param {json} init - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestClient.prototype.put = function (url, init) {\n return this.ajax(url, 'PUT', init);\n };\n /**\n * PATCH HTTP request\n * @param {string} url - Full request URL\n * @param {json} init - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestClient.prototype.patch = function (url, init) {\n return this.ajax(url, 'PATCH', init);\n };\n /**\n * POST HTTP request\n * @param {string} url - Full request URL\n * @param {json} init - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestClient.prototype.post = function (url, init) {\n return this.ajax(url, 'POST', init);\n };\n /**\n * DELETE HTTP request\n * @param {string} url - Full request URL\n * @param {json} init - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestClient.prototype.del = function (url, init) {\n return this.ajax(url, 'DELETE', init);\n };\n /**\n * HEAD HTTP request\n * @param {string} url - Full request URL\n * @param {json} init - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n RestClient.prototype.head = function (url, init) {\n return this.ajax(url, 'HEAD', init);\n };\n /**\n * Getting endpoint for API\n * @param {string} apiName - The name of the api\n * @return {string} - The endpoint of the api\n */\n RestClient.prototype.endpoint = function (apiName) {\n var _this = this;\n var cloud_logic_array = this._options.endpoints;\n var response = '';\n if (!Array.isArray(cloud_logic_array)) {\n return response;\n }\n cloud_logic_array.forEach(function (v) {\n if (v.name === apiName) {\n response = v.endpoint;\n if (typeof v.region === 'string') {\n _this._region = v.region;\n }\n else if (typeof _this._options.region === 'string') {\n _this._region = _this._options.region;\n }\n if (typeof v.service === 'string') {\n _this._service = v.service || 'execute-api';\n }\n else {\n _this._service = 'execute-api';\n }\n if (typeof v.custom_header === 'function') {\n _this._custom_header = v.custom_header;\n }\n else {\n _this._custom_header = undefined;\n }\n }\n });\n return response;\n };\n /** private methods **/\n RestClient.prototype._signed = function (params, credentials, isAllResponse) {\n var signerServiceInfoParams = params.signerServiceInfo, otherParams = __rest(params, [\"signerServiceInfo\"]);\n var endpoint_region = this._region || this._options.region;\n var endpoint_service = this._service || this._options.service;\n var creds = {\n secret_key: credentials.secretAccessKey,\n access_key: credentials.accessKeyId,\n session_token: credentials.sessionToken,\n };\n var endpointInfo = {\n region: endpoint_region,\n service: endpoint_service,\n };\n var signerServiceInfo = Object.assign(endpointInfo, signerServiceInfoParams);\n var signed_params = Signer.sign(otherParams, creds, signerServiceInfo);\n if (signed_params.data) {\n signed_params.body = signed_params.data;\n }\n logger.debug('Signed Request: ', signed_params);\n delete signed_params.headers['host'];\n return axios(signed_params)\n .then(function (response) { return (isAllResponse ? response : response.data); })\n .catch(function (error) {\n logger.debug(error);\n throw error;\n });\n };\n RestClient.prototype._request = function (params, isAllResponse) {\n if (isAllResponse === void 0) { isAllResponse = false; }\n return axios(params)\n .then(function (response) { return (isAllResponse ? response : response.data); })\n .catch(function (error) {\n logger.debug(error);\n throw error;\n });\n };\n RestClient.prototype._parseUrl = function (url) {\n var parts = url.split('/');\n return {\n host: parts[2],\n path: '/' + parts.slice(3).join('/'),\n };\n };\n return RestClient;\n}());\nexport { RestClient };\n//# sourceMappingURL=RestClient.js.map","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n/*\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with\n * the License. A copy of the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions\n * and limitations under the License.\n */\nimport { GraphQLError } from 'graphql';\nimport { print } from 'graphql/language/printer';\nimport { parse } from 'graphql/language/parser';\nimport * as Observable from 'zen-observable';\nimport { RestClient as RestClass } from './RestClient';\nimport Amplify, { ConsoleLogger as Logger, Credentials, Constants, } from '@aws-amplify/core';\nimport Auth from '@aws-amplify/auth';\nimport Cache from '@aws-amplify/cache';\nimport { INTERNAL_AWS_APPSYNC_PUBSUB_PROVIDER } from '@aws-amplify/core/lib/constants';\nimport { v4 as uuid } from 'uuid';\nvar USER_AGENT_HEADER = 'x-amz-user-agent';\nvar logger = new Logger('API');\nexport var graphqlOperation = function (query, variables) {\n if (variables === void 0) { variables = {}; }\n return ({\n query: query,\n variables: variables,\n });\n};\n/**\n * Export Cloud Logic APIs\n */\nvar APIClass = /** @class */ (function () {\n /**\n * Initialize Storage with AWS configuration\n * @param {Object} options - Configuration object for storage\n */\n function APIClass(options) {\n this._api = null;\n this._pubSub = Amplify.PubSub;\n this.clientIdentifier = uuid();\n this._options = options;\n logger.debug('API Options', this._options);\n }\n APIClass.prototype.getModuleName = function () {\n return 'API';\n };\n /**\n * Configure API part with aws configurations\n * @param {Object} config - Configuration of the API\n * @return {Object} - The current configuration\n */\n APIClass.prototype.configure = function (options) {\n var _a = options || {}, _b = _a.API, API = _b === void 0 ? {} : _b, otherOptions = __rest(_a, [\"API\"]);\n var opt = __assign(__assign({}, otherOptions), API);\n logger.debug('configure API', { opt: opt });\n if (opt['aws_project_region']) {\n if (opt['aws_cloud_logic_custom']) {\n var custom = opt['aws_cloud_logic_custom'];\n opt.endpoints =\n typeof custom === 'string' ? JSON.parse(custom) : custom;\n }\n opt = Object.assign({}, opt, {\n region: opt['aws_project_region'],\n header: {},\n });\n }\n if (!Array.isArray(opt.endpoints)) {\n opt.endpoints = [];\n }\n // Check if endpoints has custom_headers and validate if is a function\n opt.endpoints.forEach(function (endpoint) {\n if (typeof endpoint.custom_header !== 'undefined' &&\n typeof endpoint.custom_header !== 'function') {\n logger.warn('API ' + endpoint.name + ', custom_header should be a function');\n endpoint.custom_header = undefined;\n }\n });\n if (typeof opt.graphql_headers !== 'undefined' &&\n typeof opt.graphql_headers !== 'function') {\n logger.warn('graphql_headers should be a function');\n opt.graphql_headers = undefined;\n }\n this._options = Object.assign({}, this._options, opt);\n this.createInstance();\n return this._options;\n };\n /**\n * Create an instance of API for the library\n * @return - A promise of true if Success\n */\n APIClass.prototype.createInstance = function () {\n logger.debug('create API instance');\n if (this._options) {\n this._api = new RestClass(this._options);\n return true;\n }\n else {\n return Promise.reject('API not configured');\n }\n };\n /**\n * Make a GET request\n * @param {string} apiName - The api name of the request\n * @param {string} path - The path of the request\n * @param {json} [init] - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n APIClass.prototype.get = function (apiName, path, init) {\n return __awaiter(this, void 0, void 0, function () {\n var error_1, endpoint;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this._api) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.createInstance()];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n error_1 = _a.sent();\n return [2 /*return*/, Promise.reject(error_1)];\n case 4:\n endpoint = this._api.endpoint(apiName);\n if (endpoint.length === 0) {\n return [2 /*return*/, Promise.reject('API ' + apiName + ' does not exist')];\n }\n return [2 /*return*/, this._api.get(endpoint + path, init)];\n }\n });\n });\n };\n /**\n * Make a POST request\n * @param {string} apiName - The api name of the request\n * @param {string} path - The path of the request\n * @param {json} [init] - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n APIClass.prototype.post = function (apiName, path, init) {\n return __awaiter(this, void 0, void 0, function () {\n var error_2, endpoint;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this._api) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.createInstance()];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n error_2 = _a.sent();\n return [2 /*return*/, Promise.reject(error_2)];\n case 4:\n endpoint = this._api.endpoint(apiName);\n if (endpoint.length === 0) {\n return [2 /*return*/, Promise.reject('API ' + apiName + ' does not exist')];\n }\n return [2 /*return*/, this._api.post(endpoint + path, init)];\n }\n });\n });\n };\n /**\n * Make a PUT request\n * @param {string} apiName - The api name of the request\n * @param {string} path - The path of the request\n * @param {json} [init] - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n APIClass.prototype.put = function (apiName, path, init) {\n return __awaiter(this, void 0, void 0, function () {\n var error_3, endpoint;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this._api) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.createInstance()];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n error_3 = _a.sent();\n return [2 /*return*/, Promise.reject(error_3)];\n case 4:\n endpoint = this._api.endpoint(apiName);\n if (endpoint.length === 0) {\n return [2 /*return*/, Promise.reject('API ' + apiName + ' does not exist')];\n }\n return [2 /*return*/, this._api.put(endpoint + path, init)];\n }\n });\n });\n };\n /**\n * Make a PATCH request\n * @param {string} apiName - The api name of the request\n * @param {string} path - The path of the request\n * @param {json} [init] - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n APIClass.prototype.patch = function (apiName, path, init) {\n return __awaiter(this, void 0, void 0, function () {\n var error_4, endpoint;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this._api) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.createInstance()];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n error_4 = _a.sent();\n return [2 /*return*/, Promise.reject(error_4)];\n case 4:\n endpoint = this._api.endpoint(apiName);\n if (endpoint.length === 0) {\n return [2 /*return*/, Promise.reject('API ' + apiName + ' does not exist')];\n }\n return [2 /*return*/, this._api.patch(endpoint + path, init)];\n }\n });\n });\n };\n /**\n * Make a DEL request\n * @param {string} apiName - The api name of the request\n * @param {string} path - The path of the request\n * @param {json} [init] - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n APIClass.prototype.del = function (apiName, path, init) {\n return __awaiter(this, void 0, void 0, function () {\n var error_5, endpoint;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this._api) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.createInstance()];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n error_5 = _a.sent();\n return [2 /*return*/, Promise.reject(error_5)];\n case 4:\n endpoint = this._api.endpoint(apiName);\n if (endpoint.length === 0) {\n return [2 /*return*/, Promise.reject('API ' + apiName + ' does not exist')];\n }\n return [2 /*return*/, this._api.del(endpoint + path, init)];\n }\n });\n });\n };\n /**\n * Make a HEAD request\n * @param {string} apiName - The api name of the request\n * @param {string} path - The path of the request\n * @param {json} [init] - Request extra params\n * @return {Promise} - A promise that resolves to an object with response status and JSON data, if successful.\n */\n APIClass.prototype.head = function (apiName, path, init) {\n return __awaiter(this, void 0, void 0, function () {\n var error_6, endpoint;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this._api) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.createInstance()];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n error_6 = _a.sent();\n return [2 /*return*/, Promise.reject(error_6)];\n case 4:\n endpoint = this._api.endpoint(apiName);\n if (endpoint.length === 0) {\n return [2 /*return*/, Promise.reject('API ' + apiName + ' does not exist')];\n }\n return [2 /*return*/, this._api.head(endpoint + path, init)];\n }\n });\n });\n };\n /**\n * Getting endpoint for API\n * @param {string} apiName - The name of the api\n * @return {string} - The endpoint of the api\n */\n APIClass.prototype.endpoint = function (apiName) {\n return __awaiter(this, void 0, void 0, function () {\n var error_7;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!!this._api) return [3 /*break*/, 4];\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.createInstance()];\n case 2:\n _a.sent();\n return [3 /*break*/, 4];\n case 3:\n error_7 = _a.sent();\n return [2 /*return*/, Promise.reject(error_7)];\n case 4: return [2 /*return*/, this._api.endpoint(apiName)];\n }\n });\n });\n };\n APIClass.prototype._headerBasedAuth = function (defaultAuthenticationType) {\n return __awaiter(this, void 0, void 0, function () {\n var _a, aws_appsync_authenticationType, apiKey, authenticationType, headers, _b, credentialsOK, federatedInfo, session;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n _a = this._options, aws_appsync_authenticationType = _a.aws_appsync_authenticationType, apiKey = _a.aws_appsync_apiKey;\n authenticationType = defaultAuthenticationType || aws_appsync_authenticationType || 'AWS_IAM';\n headers = {};\n _b = authenticationType;\n switch (_b) {\n case 'API_KEY': return [3 /*break*/, 1];\n case 'AWS_IAM': return [3 /*break*/, 2];\n case 'OPENID_CONNECT': return [3 /*break*/, 4];\n case 'AMAZON_COGNITO_USER_POOLS': return [3 /*break*/, 6];\n }\n return [3 /*break*/, 8];\n case 1:\n if (!apiKey) {\n throw new Error('No api-key configured');\n }\n headers = {\n Authorization: null,\n 'X-Api-Key': apiKey,\n };\n return [3 /*break*/, 9];\n case 2: return [4 /*yield*/, this._ensureCredentials()];\n case 3:\n credentialsOK = _c.sent();\n if (!credentialsOK) {\n throw new Error('No credentials');\n }\n return [3 /*break*/, 9];\n case 4: return [4 /*yield*/, Cache.getItem('federatedInfo')];\n case 5:\n federatedInfo = _c.sent();\n if (!federatedInfo || !federatedInfo.token) {\n throw new Error('No federated jwt');\n }\n headers = {\n Authorization: federatedInfo.token,\n };\n return [3 /*break*/, 9];\n case 6: return [4 /*yield*/, Auth.currentSession()];\n case 7:\n session = _c.sent();\n headers = {\n Authorization: session.getAccessToken().getJwtToken(),\n };\n return [3 /*break*/, 9];\n case 8:\n headers = {\n Authorization: null,\n };\n return [3 /*break*/, 9];\n case 9: return [2 /*return*/, headers];\n }\n });\n });\n };\n /**\n * to get the operation type\n * @param operation\n */\n APIClass.prototype.getGraphqlOperationType = function (operation) {\n var doc = parse(operation);\n var operationType = doc.definitions[0].operation;\n return operationType;\n };\n /**\n * Executes a GraphQL operation\n *\n * @param {GraphQLOptions} GraphQL Options\n * @returns {Promise