{"version":3,"sources":["webpack:///./node_modules/apollo-link-persisted-queries/lib/index.js"],"names":["sha256","VERSION","defaultGenerateHash","query","update","digest","defaultOptions","generateHash","disable","_a","graphQLErrors","operation","some","message","response","getContext","status","useGETForHashedQueries","definitionIsMutation","d","kind","operationIsQuery","definitions","hasOwnProperty","Object","prototype","hashesKeyString","hashesKey","Symbol","for","nextHashesChildKey","createPersistedQueryLink","options","assign","supportsPersistedQueries","hashesChildKey","getQueryHash","call","defineProperty","value","create","enumerable","hashes","forward","Error","hashError","extensions","persistedQuery","version","sha256Hash","e","observer","subscription","originalFetchOptions","retried","setFetchOptions","retry","cb","networkError","errors","disablePayload","undefined","unsubscribe","setContext","http","includeQuery","includeExtensions","fetchOptions","subscribe","handler","next","error","complete","bind","_b","method"],"mappings":"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","file":"js/npm.apollo-link-persisted-queries~4f2eeebd.93a43cb7.js","sourcesContent":["import { ApolloLink, Observable } from 'apollo-link';\nvar sha256 = require('hash.js/lib/hash/sha/256');\nimport { print } from 'graphql/language/printer';\nexport var VERSION = 1;\nexport var defaultGenerateHash = function (query) {\n return sha256()\n .update(print(query))\n .digest('hex');\n};\nexport var defaultOptions = {\n generateHash: defaultGenerateHash,\n disable: function (_a) {\n var graphQLErrors = _a.graphQLErrors, operation = _a.operation;\n if (graphQLErrors &&\n graphQLErrors.some(function (_a) {\n var message = _a.message;\n return message === 'PersistedQueryNotSupported';\n })) {\n return true;\n }\n var response = operation.getContext().response;\n if (response &&\n response.status &&\n (response.status === 400 || response.status === 500)) {\n return true;\n }\n return false;\n },\n useGETForHashedQueries: false,\n};\nfunction definitionIsMutation(d) {\n return d.kind === 'OperationDefinition' && d.operation === 'mutation';\n}\nfunction operationIsQuery(operation) {\n return !operation.query.definitions.some(definitionIsMutation);\n}\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar hashesKeyString = '__createPersistedQueryLink_hashes';\nvar hashesKey = typeof Symbol === 'function'\n ? Symbol.for(hashesKeyString)\n : hashesKeyString;\nvar nextHashesChildKey = 0;\nexport var createPersistedQueryLink = function (options) {\n if (options === void 0) { options = {}; }\n var _a = Object.assign({}, defaultOptions, options), generateHash = _a.generateHash, disable = _a.disable, useGETForHashedQueries = _a.useGETForHashedQueries;\n var supportsPersistedQueries = true;\n var hashesChildKey = 'forLink' + nextHashesChildKey++;\n function getQueryHash(query) {\n if (!query || typeof query !== \"object\") {\n return generateHash(query);\n }\n if (!hasOwnProperty.call(query, hashesKey)) {\n Object.defineProperty(query, hashesKey, {\n value: Object.create(null),\n enumerable: false,\n });\n }\n var hashes = query[hashesKey];\n return hasOwnProperty.call(hashes, hashesChildKey)\n ? hashes[hashesChildKey]\n : hashes[hashesChildKey] = generateHash(query);\n }\n return new ApolloLink(function (operation, forward) {\n if (!forward) {\n throw new Error('PersistedQueryLink cannot be the last link in the chain.');\n }\n var query = operation.query;\n var hashError;\n if (supportsPersistedQueries) {\n try {\n operation.extensions.persistedQuery = {\n version: VERSION,\n sha256Hash: getQueryHash(query),\n };\n }\n catch (e) {\n hashError = e;\n }\n }\n return new Observable(function (observer) {\n if (hashError) {\n observer.error(hashError);\n return;\n }\n var subscription;\n var retried = false;\n var originalFetchOptions;\n var setFetchOptions = false;\n var retry = function (_a, cb) {\n var response = _a.response, networkError = _a.networkError;\n if (!retried && ((response && response.errors) || networkError)) {\n retried = true;\n var disablePayload = {\n response: response,\n networkError: networkError,\n operation: operation,\n graphQLErrors: response ? response.errors : undefined,\n };\n supportsPersistedQueries = !disable(disablePayload);\n if ((response &&\n response.errors &&\n response.errors.some(function (_a) {\n var message = _a.message;\n return message === 'PersistedQueryNotFound';\n })) ||\n !supportsPersistedQueries) {\n if (subscription)\n subscription.unsubscribe();\n operation.setContext({\n http: {\n includeQuery: true,\n includeExtensions: supportsPersistedQueries,\n },\n });\n if (setFetchOptions) {\n operation.setContext({ fetchOptions: originalFetchOptions });\n }\n subscription = forward(operation).subscribe(handler);\n return;\n }\n }\n cb();\n };\n var handler = {\n next: function (response) {\n retry({ response: response }, function () { return observer.next(response); });\n },\n error: function (networkError) {\n retry({ networkError: networkError }, function () { return observer.error(networkError); });\n },\n complete: observer.complete.bind(observer),\n };\n operation.setContext({\n http: {\n includeQuery: !supportsPersistedQueries,\n includeExtensions: supportsPersistedQueries,\n },\n });\n if (useGETForHashedQueries &&\n supportsPersistedQueries &&\n operationIsQuery(operation)) {\n operation.setContext(function (_a) {\n var _b = _a.fetchOptions, fetchOptions = _b === void 0 ? {} : _b;\n originalFetchOptions = fetchOptions;\n return {\n fetchOptions: Object.assign({}, fetchOptions, { method: 'GET' }),\n };\n });\n setFetchOptions = true;\n }\n subscription = forward(operation).subscribe(handler);\n return function () {\n if (subscription)\n subscription.unsubscribe();\n };\n });\n });\n};\n//# sourceMappingURL=index.js.map"],"sourceRoot":""}