{"_id":"refresh-fetch","_rev":"19-86c4cd2826c9f688b60ab007f77ad353","name":"refresh-fetch","time":{"modified":"2024-04-02T11:21:31.107Z","created":"2017-09-03T16:26:46.028Z","0.1.0":"2017-09-03T16:26:46.028Z","0.1.1":"2017-09-03T16:39:52.615Z","0.1.2":"2017-09-03T16:42:07.517Z","0.2.0":"2017-09-10T16:48:54.916Z","0.3.0":"2017-09-10T18:56:37.719Z","0.4.0":"2017-09-10T19:52:31.149Z","0.5.0":"2017-11-05T21:21:51.483Z","0.5.1":"2018-01-16T22:51:43.144Z","0.6.0":"2019-01-27T16:13:45.746Z","0.6.1":"2019-07-29T07:58:12.165Z","0.6.2":"2019-07-31T08:53:37.449Z","0.6.3":"2020-03-14T21:55:27.751Z","0.6.4":"2020-07-22T06:52:43.737Z","0.7.0":"2020-08-04T20:37:45.180Z","0.8.0":"2021-07-04T16:54:55.351Z","0.9.0":"2024-04-02T11:21:30.932Z"},"maintainers":[{"name":"vlki","email":"vlki@vlki.cz"}],"dist-tags":{"latest":"0.9.0"},"description":"Wrapper around fetch capable of graceful authentication token refreshing.","readme":"# Refresh Fetch\n\n[![build status](https://github.com/vlki/refresh-fetch/actions/workflows/build_lint_and_test.yml/badge.svg?branch=main)](https://github.com/vlki/refresh-fetch/actions/workflows/build_lint_and_test.yml) [![npm version](https://img.shields.io/npm/v/refresh-fetch.svg?style=flat-square)](https://www.npmjs.com/package/refresh-fetch) [![npm](https://img.shields.io/npm/dt/refresh-fetch.svg)](https://www.npmjs.com/package/refresh-fetch)\n\nWrapper around [fetch](https://developer.mozilla.org/en-US/docs/Web/API/GlobalFetch) capable of graceful authentication token refreshing.\n\nFor situations when there is API which issues authentication tokens on login endpoint, API requires you to add the authentication token to all requests, those tokens must be refreshed every X minutes, and you just want to call `fetch` and be abstracted away from the refreshing.\n\nThe following ES6 functions are required:\n\n* [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise)\n* [fetch](https://developer.mozilla.org/en-US/docs/Web/API/GlobalFetch)\n\n## Install\n\nAdd to your app using package manager, eg.:\n\n```\nnpm install refresh-fetch --save\n```\n\n## Usage\n\n```js\nimport { configureRefreshFetch } from 'refresh-fetch'\n\nconst refreshFetch = configureRefreshFetch({\n  // Pass fetch function you want to wrap, it should already be adding\n  // token to the request\n  fetch,\n  // shouldRefreshToken is called when API fetch fails and it should decide\n  // whether the response error means we need to refresh token\n  shouldRefreshToken: error => false,\n  // refreshToken should call the refresh token API, save the refreshed\n  // token and return promise -- resolving it when everything goes fine,\n  // rejecting it when refreshing fails for some reason\n  refreshToken: () => Promise.resolve()\n})\n\n// Use same as the original fetch\nrefreshFetch('/api-with-authentication', { method: 'POST' })\n```\n\n## Example\n\n```js\n// api.js\nimport merge from 'lodash/merge'\nimport Cookies from 'js-cookie'\nimport { configureRefreshFetch, fetchJSON } from 'refresh-fetch'\n\nconst COOKIE_NAME = 'MYAPP'\n\nconst retrieveToken = () => Cookies.get(COOKIE_NAME)\nconst saveToken = token => Cookies.set(COOKIE_NAME, token)\nconst clearToken = () => Cookies.remove(COOKIE_NAME)\n\nconst fetchJSONWithToken = (url, options = {}) => {\n  const token = retrieveToken()\n\n  let optionsWithToken = options\n  if (token != null) {\n    optionsWithToken = merge({}, options, {\n      headers: {\n        Authorization: `Bearer ${token}`\n      }\n    })\n  }\n\n  return fetchJSON(url, optionsWithToken)\n}\n\nconst login = (email, password) => {\n  return fetchJSON('/api/auth/login', {\n    method: 'POST',\n    body: JSON.stringify({\n      email,\n      password\n    })\n  })\n    .then(response => {\n      saveToken(response.body.token)\n    })\n}\n\nconst logout = () => {\n  return fetchJSONWithToken('/api/auth/logout', {\n    method: 'POST'\n  })\n    .then(() => {\n      clearToken()\n    })\n}\n\nconst shouldRefreshToken = error =>\n  error.response.status === 401 &&\n  error.body.message === 'Token has expired'\n\nconst refreshToken = () => {\n  return fetchJSONWithToken('/api/auth/refresh-token', {\n    method: 'POST'\n  })\n    .then(response => {\n      saveToken(response.body.token)\n    })\n    .catch(error => {\n      // Clear token and continue with the Promise catch chain\n      clearToken()\n      throw error\n    })\n}\n\nconst fetch = configureRefreshFetch({\n  fetch: fetchJSONWithToken,\n  shouldRefreshToken,\n  refreshToken\n})\n\nexport {\n  fetch,\n  login,\n  logout\n}\n```\n\n```js\n// myapp.js\n\nimport { fetch, login, logout } from './api'\n\nfetch('/api/user/me')\n  .then(({ response, body }) => { /* Got the data! If token expired, it was renewed and saved. */ })\n  .catch(error => { /* Error getting data, probably not logged in */ })\n\nlogin('username', 'password')\n  .then(() => { /* Logged in, token saved to cookie */ })\n  .catch(error => { /* Error when logging in, probably wrong credentials */ })\n\nlogout()\n  .then(() => { /* Logged out, token removed from cookie */ })\n  .catch(error => { /* Error while logging out */ })\n\n```\n\n## Motivation\n\nImagine you have in your app a request to `/api/data` which needs authentication/authorization token in Authorization header like this:\n\n```js\n// retrieveToken reads the token from cookie, local storage, what have you...\nconst token = retrieveToken()\n\nfetch('/api/data', {\n  headers: {\n    Authorization: `Bearer ${token}`\n  }\n})\n```\n\nThat is all fine and dandy, but what if you have to refresh the token, because it expires every 10 minutes? You will start doing something like this:\n\n```js\n// retrieveToken reads the token from cookie, local storage, what have you...\nconst token = retrieveToken()\n\nfetch('/api/data', {\n  headers: {\n    Authorization: `Bearer ${token}`\n  }\n})\n  .then(response => {\n    response.json().then(body => {\n      if (response.status === 401 && body.message === 'Token has expired') {\n        fetch('/api/refresh-token', {\n          method: 'POST',\n          headers: {\n            Authorization: `Bearer ${token}`\n          }\n        }).then(/* retrieve the token etc. ... */)\n      }\n    })\n  })\n```\n\nAnd now you want to have the original request repeated. And also if there is request called during the refreshing, you don't want to start refreshing second time, but you just want to wait for the first refresh to complete and use the new token.\n\nSigh. That's a lot you don't want to be writing in every app.\n\nWith `refresh-fetch` you configure 3 parameters, `shouldRefreshToken`, `refreshToken` and `fetch`, and the refreshing works exactly like described. See it in action:\n\n```js\n// api.js\n\nimport merge from 'lodash/merge'\n\n// fetchJSON is bundled wrapper around fetch which simplifies working\n// with JSON API:\n//   * Automatically adds Content-Type: application/json to request headers\n//   * Parses response as JSON when Content-Type: application/json header is\n//     present in response headers\n//   * Converts non-ok responses to errors\nimport { configureRefreshFetch, fetchJSON } from 'refresh-fetch'\n\n// Provide your favorite token saving -- to cookies, local storage, ...\nconst retrieveToken = () => { /* ... */ }\nconst saveToken = token => { /* ... */ }\nconst clearToken = () => { /* ... */ }\n\n// Add token to the request headers\nconst fetchJSONWithToken = (url, options = {}) => {\n  const token = retrieveToken()\n\n  let optionsWithToken = options\n  if (token != null) {\n    optionsWithToken = merge({}, options, {\n      headers: {\n        Authorization: `Bearer ${retrieveToken()}`\n      }\n    })\n  }\n\n  return fetchJSON(url, optionsWithToken)\n}\n\n// Decide whether this error returned from API means that we want\n// to try refreshing the token. error.response contains the fetch Response\n// object, error.body contains the parsed JSON response body\nconst shouldRefreshToken = error =>\n  error.response.status === 401\n  && error.body.message === 'Token has expired'\n\n// Do the actual token refreshing and update the saved token\nconst refreshToken = () => {\n  return fetchJSONWithToken('/api/refresh-token', {\n    method: 'POST'\n  })\n    .then(response => {\n      saveToken(response.body.token)\n      return response\n    })\n    .catch(error => {\n      // If we failed by any reason in refreshing, just clear the token,\n      // it's not that big of a deal\n      clearToken()\n      throw error\n    })\n}\n\nexport const fetch = configureRefreshFetch({\n  shouldRefreshToken,\n  refreshToken,\n  fetch: fetchJSONWithToken,\n})\n\n```\n\n```js\n// myapp.js\n\nimport { fetch } from './api'\n\n// This API will be called with Bearer token in Authorization header and if it\n// returns 401 with message 'Token has expired', request to /api/refresh-token\n// will be issued and then the request to /api/data will be automatically\n// repeated with the new token\nfetch('/api/data')\n```\n\n## License\n\n[MIT](./LICENSE.md)\n","versions":{"0.2.0":{"name":"refresh-fetch","description":"Wrapper around fetch capable of graceful authentication token refreshing.","version":"0.2.0","main":"./lib/index.js","scripts":{"build":"babel src --out-dir lib","clean":"rimraf lib dist coverage","lint":"eslint src test","prepublish":"npm run clean && npm run lint && npm test && npm run build","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/vlki/refresh-fetch.git"},"files":["lib"],"keywords":["api","fetch","auth","token","refresh"],"author":{"name":"Jan Vlcek","email":"vlki@vlki.cz"},"license":"MIT","homepage":"https://github.com/vlki/refresh-fetch","dependencies":{"lodash":"^4.17.4"},"devDependencies":{"babel-cli":"^6.26.0","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-es2015":"^6.24.1","eslint":"^4.6.1","eslint-config-standard":"^10.2.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.1.1","eslint-plugin-promise":"^3.5.0","eslint-plugin-standard":"^3.0.1","jest":"^20.0.4","rimraf":"^2.6.1"},"gitHead":"8fe46593516c0549538506c623e51dac088cb46d","bugs":{"url":"https://github.com/vlki/refresh-fetch/issues"},"_id":"refresh-fetch@0.2.0","_shasum":"d40f1f6541f84a26f110ecd739a63a9c767069fa","_from":".","_npmVersion":"4.6.1","_nodeVersion":"6.11.0","_npmUser":{"name":"vlki","email":"vlki@vlki.cz"},"dist":{"shasum":"d40f1f6541f84a26f110ecd739a63a9c767069fa","tarball":"https://registry.npmjs.org/refresh-fetch/-/refresh-fetch-0.2.0.tgz","integrity":"sha512-JDCq0zpv5wdcw9DkM3Brr553p1jO5neqwtIVAl5iU75cL7IBA0WDjtjZlDG4yMwhKBdxfQH49Dc+Avhirydt0A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICLz0cbRrf2vKSCjLgrJFm64+uPFIwDr2iUNOcfSrmXvAiEA2QJKFdDz2JQxm1kcLJiYR/oRHCkH4TPZtEvrMuficy8="}]},"maintainers":[{"name":"vlki","email":"vlki@vlki.cz"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refresh-fetch-0.2.0.tgz_1505062133897_0.05315177910961211"},"directories":{}},"0.3.0":{"name":"refresh-fetch","description":"Wrapper around fetch capable of graceful authentication token refreshing.","version":"0.3.0","main":"./lib/index.js","scripts":{"build":"babel src --out-dir lib","clean":"rimraf lib dist coverage","lint":"eslint src test","prepublish":"npm run clean && npm run lint && npm test && npm run build","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/vlki/refresh-fetch.git"},"files":["lib"],"keywords":["api","fetch","auth","token","refresh"],"author":{"name":"Jan Vlcek","email":"vlki@vlki.cz"},"license":"MIT","homepage":"https://github.com/vlki/refresh-fetch","dependencies":{"lodash":"^4.17.4"},"devDependencies":{"babel-cli":"^6.26.0","babel-eslint":"^7.2.3","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-es2015":"^6.24.1","babel-preset-flow":"^6.23.0","eslint":"^4.6.1","eslint-config-standard":"^10.2.1","eslint-plugin-flowtype":"^2.35.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.1.1","eslint-plugin-promise":"^3.5.0","eslint-plugin-standard":"^3.0.1","flow-bin":"^0.54.1","jest":"^20.0.4","rimraf":"^2.6.1"},"gitHead":"31af0b2f7cc12ba931ed662b5caa79622ae92242","bugs":{"url":"https://github.com/vlki/refresh-fetch/issues"},"_id":"refresh-fetch@0.3.0","_shasum":"c778773b27a1cedceea036bf225ea524fecaae36","_from":".","_npmVersion":"4.6.1","_nodeVersion":"6.11.0","_npmUser":{"name":"vlki","email":"vlki@vlki.cz"},"dist":{"shasum":"c778773b27a1cedceea036bf225ea524fecaae36","tarball":"https://registry.npmjs.org/refresh-fetch/-/refresh-fetch-0.3.0.tgz","integrity":"sha512-spFmp2IXQOlIcaWKOFjr0wEMkX1SBJm1ELGLk05gpWNT6bVD8hbcbMv4KIocaIyEjqnSwIjfNBeyxFsG7NhCVg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDHVVjiyWAcGUUyUjPvSRtiPCguKczNqGjuOcYyU/bGIgIgb07iqG3mbl/Gjv8AIN5HGxvzDEr+m/0SfxQPdsPhloA="}]},"maintainers":[{"name":"vlki","email":"vlki@vlki.cz"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refresh-fetch-0.3.0.tgz_1505069796702_0.4905769801698625"},"directories":{}},"0.4.0":{"name":"refresh-fetch","description":"Wrapper around fetch capable of graceful authentication token refreshing.","version":"0.4.0","main":"./lib/index.js","scripts":{"build":"babel src --out-dir lib","clean":"rimraf lib dist coverage","lint":"eslint src test","prepublish":"npm run clean && npm run lint && npm test && npm run build","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/vlki/refresh-fetch.git"},"files":["lib"],"keywords":["api","fetch","auth","token","refresh"],"author":{"name":"Jan Vlcek","email":"vlki@vlki.cz"},"license":"MIT","homepage":"https://github.com/vlki/refresh-fetch","dependencies":{"lodash":"^4.17.4"},"devDependencies":{"babel-cli":"^6.26.0","babel-eslint":"^7.2.3","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-es2015":"^6.24.1","babel-preset-flow":"^6.23.0","eslint":"^4.6.1","eslint-config-standard":"^10.2.1","eslint-plugin-flowtype":"^2.35.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.1.1","eslint-plugin-promise":"^3.5.0","eslint-plugin-standard":"^3.0.1","flow-bin":"^0.54.1","jest":"^20.0.4","rimraf":"^2.6.1"},"gitHead":"b24c3da66015f3be98665c0f89b0045c2d902755","bugs":{"url":"https://github.com/vlki/refresh-fetch/issues"},"_id":"refresh-fetch@0.4.0","_shasum":"730389315fddae60db7bea75ac589bf7771d7d3b","_from":".","_npmVersion":"4.6.1","_nodeVersion":"6.11.0","_npmUser":{"name":"vlki","email":"vlki@vlki.cz"},"dist":{"shasum":"730389315fddae60db7bea75ac589bf7771d7d3b","tarball":"https://registry.npmjs.org/refresh-fetch/-/refresh-fetch-0.4.0.tgz","integrity":"sha512-uvuFv2DNEjUXf+JD0zqaddPBSmqf7BN9Rc8bQWEIkrJEqo2kavJ03Q6qMOdBD25/4bx3TKwrqqKV3eK70NbZqA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAztqovlk70MfFYqn0Hm8VoSEjNBMrVeLntoDBOgehq4AiBGEwqLmQDefarz/qCrRYs9gBieFEtFTsrSMAteSWcahw=="}]},"maintainers":[{"name":"vlki","email":"vlki@vlki.cz"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refresh-fetch-0.4.0.tgz_1505073150080_0.43244451098144054"},"directories":{}},"0.5.0":{"name":"refresh-fetch","description":"Wrapper around fetch capable of graceful authentication token refreshing.","version":"0.5.0","main":"./lib/index.js","scripts":{"build":"babel src --out-dir lib","clean":"rimraf lib dist coverage","lint":"eslint src test","prepublish":"npm run clean && npm run lint && npm test && npm run build","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/vlki/refresh-fetch.git"},"files":["lib"],"keywords":["api","fetch","auth","token","refresh"],"author":{"name":"Jan Vlcek","email":"vlki@vlki.cz"},"license":"MIT","homepage":"https://github.com/vlki/refresh-fetch","dependencies":{"lodash":"^4.17.4"},"devDependencies":{"babel-cli":"^6.26.0","babel-eslint":"^7.2.3","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-es2015":"^6.24.1","babel-preset-flow":"^6.23.0","eslint":"^4.6.1","eslint-config-standard":"^10.2.1","eslint-plugin-flowtype":"^2.35.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.1.1","eslint-plugin-promise":"^3.5.0","eslint-plugin-standard":"^3.0.1","flow-bin":"^0.54.1","jest":"^20.0.4","rimraf":"^2.6.1"},"gitHead":"64169dc27205f88e0778da299dc153938a4bd625","bugs":{"url":"https://github.com/vlki/refresh-fetch/issues"},"_id":"refresh-fetch@0.5.0","_npmVersion":"5.5.1","_nodeVersion":"8.9.0","_npmUser":{"name":"vlki","email":"vlki@vlki.cz"},"dist":{"integrity":"sha512-CEoQoS2NIUNMcfZLd+NWCcnbaGybqSyVS94/o31KOJKjtOn9KByUXOZKok/vM+6hlXMRGr0QHUU/59SSS7R+Mg==","shasum":"8769cb6d41191d3f7a39a71601841b0898905a60","tarball":"https://registry.npmjs.org/refresh-fetch/-/refresh-fetch-0.5.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA98BPk0eMMrk2QBsXVz6jeJPdX4Ttn5JJ9VIS2ftW80AiEA+XAKxQKe9NwfdKLLHKXiQ7ITsY3OQ3OBH5Uf1HN0EsY="}]},"maintainers":[{"name":"vlki","email":"vlki@vlki.cz"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refresh-fetch-0.5.0.tgz_1509916910512_0.3924136059358716"},"directories":{}},"0.5.1":{"name":"refresh-fetch","description":"Wrapper around fetch capable of graceful authentication token refreshing.","version":"0.5.1","main":"./lib/index.js","scripts":{"build":"babel src --out-dir lib","clean":"rimraf lib dist coverage","lint":"eslint src test","prepublish":"npm run clean && npm run lint && npm test && npm run build","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/vlki/refresh-fetch.git"},"files":["lib"],"keywords":["api","fetch","auth","token","refresh"],"author":{"name":"Jan Vlcek","email":"vlki@vlki.cz"},"license":"MIT","homepage":"https://github.com/vlki/refresh-fetch","dependencies":{"lodash":"^4.17.4"},"devDependencies":{"babel-cli":"^6.26.0","babel-eslint":"^7.2.3","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-es2015":"^6.24.1","babel-preset-flow":"^6.23.0","eslint":"^4.6.1","eslint-config-standard":"^10.2.1","eslint-plugin-flowtype":"^2.35.1","eslint-plugin-import":"^2.7.0","eslint-plugin-node":"^5.1.1","eslint-plugin-promise":"^3.5.0","eslint-plugin-standard":"^3.0.1","flow-bin":"^0.54.1","jest":"^20.0.4","rimraf":"^2.6.1"},"gitHead":"6403c96d99a2d7d2db445b121c319166390831c0","bugs":{"url":"https://github.com/vlki/refresh-fetch/issues"},"_id":"refresh-fetch@0.5.1","_npmVersion":"5.6.0","_nodeVersion":"9.4.0","_npmUser":{"name":"vlki","email":"vlki@vlki.cz"},"dist":{"integrity":"sha512-9SotnGRQjQKsCXbptmxGVEy7nlEVx7sX8NrhZ0tIEDR6DqTt/+/TcG2pZ9sFrQ7os/+BGhDG3DUYvwyJauXcFg==","shasum":"6a5d3858f28b0b5733b485c205cb7c37805842c4","tarball":"https://registry.npmjs.org/refresh-fetch/-/refresh-fetch-0.5.1.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDeW0haul1cIsNETKCGHs8YjvobuA3e9KdNt1X4cR/IBwIhAL81moYVUEalLeMI3nkmMoZAyEqybyM6miQnsynNdAzS"}]},"maintainers":[{"name":"vlki","email":"vlki@vlki.cz"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refresh-fetch-0.5.1.tgz_1516143102006_0.6724653770215809"},"directories":{}},"0.6.0":{"name":"refresh-fetch","description":"Wrapper around fetch capable of graceful authentication token refreshing.","version":"0.6.0","main":"./lib/index.js","scripts":{"build":"babel src --out-dir lib","clean":"rimraf lib dist coverage","lint":"eslint src test","prepublishOnly":"npm run clean && npm run lint && npm test && npm run build","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/vlki/refresh-fetch.git"},"keywords":["api","fetch","auth","token","refresh"],"author":{"name":"Jan Vlcek","email":"vlki@vlki.cz"},"license":"MIT","homepage":"https://github.com/vlki/refresh-fetch","dependencies":{"lodash":"^4.17.11"},"devDependencies":{"@babel/cli":"^7.2.3","@babel/core":"^7.2.2","@babel/plugin-proposal-object-rest-spread":"^7.3.1","@babel/preset-env":"^7.3.1","@babel/preset-flow":"^7.0.0","babel-eslint":"^10.0.1","eslint":"^5.12.1","eslint-config-standard":"^12.0.0","eslint-plugin-flowtype":"^3.2.1","eslint-plugin-import":"^2.15.0","eslint-plugin-node":"^8.0.1","eslint-plugin-promise":"^4.0.1","eslint-plugin-standard":"^4.0.0","flow-bin":"^0.91.0","jest":"^24.0.0","rimraf":"^2.6.3"},"gitHead":"8de99f2716a7a0e7c944e35163b5e4f7ed5a9f5a","bugs":{"url":"https://github.com/vlki/refresh-fetch/issues"},"_id":"refresh-fetch@0.6.0","_npmVersion":"6.5.0","_nodeVersion":"11.8.0","_npmUser":{"name":"vlki","email":"vlki@vlki.cz"},"dist":{"integrity":"sha512-UQ89AeXPKsoTFS0s7dYxWTlA0pbTB4SRq8v+PKz9Y6wy6bpM2lt8CaT1FpjrhojuDmDfnwadSRguBPbPdzcMLw==","shasum":"2687bd614b8e689ec983232d034873b39ad2dbaf","tarball":"https://registry.npmjs.org/refresh-fetch/-/refresh-fetch-0.6.0.tgz","fileCount":6,"unpackedSize":14189,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcTdi6CRA9TVsSAnZWagAAqsAP/3Fm4Dv3HV6RoyL5Qphi\nFi2KTZ1Aq05XQaRJZmSV7j0ERXL+g4O+TwpIgM1mJt52kt/dLHoC73xKd2G/\n8+KKST3/zfr1aQErcfWrSekAZ2xebRl0HW3DpbQI6WAt/qf8FQo8QAhSDMHd\ncin5V0VcTe/6xGKy7j6GsUWHXaQentzPOLWlOGilL/yv01syNubKrgoT3+QK\nUcgtVRIZHBtsiGODyaVZ0DXfcZ31Mjc/XBCsVEBGtNeA3Ya3xlhWPy12MiFA\nuf+Rp+tWexSFbm+/vnhxt0INtb6tyKkDw0UjbQd3k7l2EwIu8i4QYa3Fdphk\n3aJ/MA8+gZxieYmw06swIZN5FN2fU9XT4VnqyhHadq4K2VuIsxIugX3APDrA\npxtgjFtnNOgQ2wloEi2ItAmfQ/my/8/RGEsrByziud/tYK8BoM1/Vlecm3BY\n0mzcAHG01YJxh+gJUqHYtY+lr1JKIcdtT7+iEo8iAwFY1Yqw2cVdP+Qd21bA\nFHqsbE6Tu3sdEZGg2+sGlHABawGQ69zdlvKdC7m10RjSWlqMu4IrGlrG1HD4\n9ub3ciwGcngG48Mqw8q+QgylK0nZ1unCawE7UzWUAuRPnL3XyF4kNmX0EZer\ngB+w3AXisxooontzfvwUlqiVEYsYCAb4MEAWRNN5TFP9ySXx2wgGZmmwEPzg\nD7AA\r\n=SyHu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID04yIZiQaq/iL+ui7op91bafxPUEZT2PpMmK7QcFlloAiEA0qKiNAY7x8WcAJ+yf3RIJ1zWvPeOY6bkCDWCNpOKzkg="}]},"maintainers":[{"name":"vlki","email":"vlki@vlki.cz"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refresh-fetch_0.6.0_1548605625637_0.9678686608161065"},"_hasShrinkwrap":false},"0.6.1":{"name":"refresh-fetch","description":"Wrapper around fetch capable of graceful authentication token refreshing.","version":"0.6.1","main":"./lib/index.js","scripts":{"build":"babel src --out-dir lib","clean":"rimraf lib dist coverage","lint":"eslint src test","prepublishOnly":"npm run clean && npm run lint && npm test && npm run build","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/vlki/refresh-fetch.git"},"keywords":["api","fetch","auth","token","refresh"],"author":{"name":"Jan Vlcek","email":"vlki@vlki.cz"},"license":"MIT","homepage":"https://github.com/vlki/refresh-fetch","dependencies":{"lodash":"^4.17.15"},"devDependencies":{"@babel/cli":"^7.5.5","@babel/core":"^7.5.5","@babel/plugin-proposal-object-rest-spread":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-flow":"^7.0.0","babel-eslint":"^10.0.2","eslint":"^6.1.0","eslint-config-standard":"^13.0.1","eslint-plugin-flowtype":"^3.12.2","eslint-plugin-import":"^2.18.2","eslint-plugin-node":"^9.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-standard":"^4.0.0","flow-bin":"^0.104.0","jest":"^24.8.0","rimraf":"^2.6.3"},"gitHead":"b3892827611faaef4d7cceb8c534b2ebbb8a9f9d","bugs":{"url":"https://github.com/vlki/refresh-fetch/issues"},"_id":"refresh-fetch@0.6.1","_npmVersion":"6.5.0","_nodeVersion":"11.8.0","_npmUser":{"name":"vlki","email":"vlki@vlki.cz"},"dist":{"integrity":"sha512-vvhnWhP/rSrDn0WJ8EG0VY1Mbon7UAhfJrm5JmiwEg1GZcNVZ2q5WzwRM1ZFBXI9twd1lHahJK0tQSdGTNF3YA==","shasum":"981180bf0a021d31b0c95adbbb4301ffb92d4617","tarball":"https://registry.npmjs.org/refresh-fetch/-/refresh-fetch-0.6.1.tgz","fileCount":6,"unpackedSize":14227,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdPqcUCRA9TVsSAnZWagAAmhgP/A7pJv6DmDfddcLxkIap\nHuxAh5DDJ6J9ExTW00q4EyDoBITm974qjkzSTOxdtnWQv1mlFnIXUgre9h51\nTX8lhsob4LTtb52nyUPjGB2jnip5MYvnl2V9VX9tNAKxgz+lxUmIn5lAHLVx\nLuouZSnAC9dg3UiQdMBIP49qzyNk16Vh7zJO0tmx4OOqHRxf5bmbHIyl7wRf\nGdrZ260aH9EUM3GZ5oPKVn9rwxFY7AMuhxXRRc96n+jS/LSIQIHz6lSsjh8d\nSmUuoterrW5jqrEHwv/gbM+4uKYysZgb1szHCsm4BdynyFavHkvad3sx7/rx\nwuraeW7TP+QMJyi7p3Qz7LxlUajNtO8BNh2SQZz5AGlrrOU1ZN9jr9bcIHQT\nPULWT97wuyQFrLIePLG7h4u1x+y+/tPND69hdFHGEareVwmjDDQlTAFubHXM\n8NZ2r4wTN+8OT/edU99WKw4oKOPYADqiW/m847RGqzX++mhEoI8AdoS1AjJt\nidgGMBJmll1QJp1v4X8PXnpMc9rwLO4uJN83oG/N3SzqCxPHTchL634xm30Y\n42kWCAB1Dm9GJ0Mv/c66zQ3XAWVoFXTsW6hxlFv8VS2M1B0yLn1bPjk1Qroh\nKGSHxH3mjruFTgk+yNVZHHD5UUsIE2oxCH681G2LUfI0m/ub1aAufXIFFVbn\nhWVo\r\n=QWDJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCOFSID+QlDwJis12SmYbNU6ujff8+4DbXExbi7ByD7cAIhAJM2eNNL32jCP3uXtbgZdTFdUFGgMge7PsNhYTcIEl6p"}]},"maintainers":[{"name":"vlki","email":"vlki@vlki.cz"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refresh-fetch_0.6.1_1564387091945_0.11130531776508468"},"_hasShrinkwrap":false},"0.6.2":{"name":"refresh-fetch","description":"Wrapper around fetch capable of graceful authentication token refreshing.","version":"0.6.2","main":"./lib/index.js","scripts":{"build":"babel src --out-dir lib","clean":"rimraf lib dist coverage","lint":"eslint src test","prepublishOnly":"npm run clean && npm run lint && npm test && npm run build","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/vlki/refresh-fetch.git"},"keywords":["api","fetch","auth","token","refresh"],"author":{"name":"Jan Vlcek","email":"vlki@vlki.cz"},"license":"MIT","homepage":"https://github.com/vlki/refresh-fetch","dependencies":{"lodash":"^4.17.15"},"devDependencies":{"@babel/cli":"^7.5.5","@babel/core":"^7.5.5","@babel/plugin-proposal-object-rest-spread":"^7.5.5","@babel/preset-env":"^7.5.5","@babel/preset-flow":"^7.0.0","babel-eslint":"^10.0.2","eslint":"^6.1.0","eslint-config-standard":"^13.0.1","eslint-plugin-flowtype":"^3.12.2","eslint-plugin-import":"^2.18.2","eslint-plugin-node":"^9.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-standard":"^4.0.0","flow-bin":"^0.104.0","jest":"^24.8.0","rimraf":"^2.6.3"},"gitHead":"08caaf11fefcdd1db553d8156bb78a5347b218e2","bugs":{"url":"https://github.com/vlki/refresh-fetch/issues"},"_id":"refresh-fetch@0.6.2","_npmVersion":"6.5.0","_nodeVersion":"11.8.0","_npmUser":{"name":"vlki","email":"vlki@vlki.cz"},"dist":{"integrity":"sha512-1HET0gWgS28WIEPB4U+CrNM/hJQR6c5k+O8A4aVaar3OUZIms7u3zG51LRKfvlUSKQE1mXrCXicsGK1PJa70iQ==","shasum":"57636214524df6eb7ffea73cb438cf991890b808","tarball":"https://registry.npmjs.org/refresh-fetch/-/refresh-fetch-0.6.2.tgz","fileCount":6,"unpackedSize":14227,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdQVcRCRA9TVsSAnZWagAA8TUQAIeH5g8bzc2NP3L0oCGK\nGYKZL8tXWeb0scNl//1mmGTS+4CN5jiIG9yreX+8OcEE7ZhGbv+XpS+7cFN/\nkR4yL7Lpv1QOfHhAbEvreWy0aG6KQzP50Ccu17olzPi9oVNslzvuCmU7oqrF\nM5sH7lhvo+l7ksth/p6/MxdozyCJml2MGnvmZ+V3mCAkwlWzQY34WVxK+BOP\nsWM4DlZktltPS9BYEVCqduIpEtnEna+MgUu5nCnO4MM09PzVe+5q2ut/SxQu\nVjjOk5gxNxQx29M+6x1dik4rHhdF0Affz45jHZQwv4U9aJqI4FVOgdhDwRhp\nW3mJl11f46PyPjSYEk7+DCcwLK25ZncXOgIJnCbPgWBnVu5K0qO7ziF79VaD\nL+9pcHUW1vku6FePGaFUZMmmNO+9EyNZr2xBDt3zllrpYkKBNuu0eDFKRod1\nDIKTNcFomEi+t6VzgaxWr2S1QuvPknkxrgYXXFUXkZDrUZNKqUVGUL55YxxF\nBhBlnK5JrvqZJv57B3IMqDruMLydheBHnosM69NmfngVYrtbdSq7jQwSA3v/\ner94dXH76rW0j/n9WIpPvMgXTpLu/XDEZ7O+10WyUYq+br+44OTa009NwXhj\nmrMsW/kMPDwKTw80qGt08PJQM12bM0LhDrDqknTBZ7dbyFZoIDBMPjCHpgsq\nJXPs\r\n=s6VC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDPy4ati2+x+4Eu5IiFmJ+fb+6lo2eTNVYDvFfZLAXLdAiBfptDUBcWqXLV4J1qx1I7dRhfExZMa8DaagYNAbm4HcQ=="}]},"maintainers":[{"name":"vlki","email":"vlki@vlki.cz"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refresh-fetch_0.6.2_1564563217317_0.35429862661040024"},"_hasShrinkwrap":false},"0.6.3":{"name":"refresh-fetch","description":"Wrapper around fetch capable of graceful authentication token refreshing.","version":"0.6.3","main":"./lib/index.js","scripts":{"build":"babel src --out-dir lib","clean":"rimraf lib dist coverage","lint":"eslint src test","prepublishOnly":"npm run clean && npm run lint && npm test && npm run build","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/vlki/refresh-fetch.git"},"keywords":["api","fetch","auth","token","refresh"],"author":{"name":"Jan Vlcek","email":"vlki@vlki.cz"},"license":"MIT","homepage":"https://github.com/vlki/refresh-fetch","dependencies":{"lodash":"^4.17.15"},"devDependencies":{"@babel/cli":"^7.8.4","@babel/core":"^7.8.7","@babel/plugin-proposal-object-rest-spread":"^7.8.3","@babel/preset-env":"^7.8.7","@babel/preset-flow":"^7.8.3","babel-eslint":"^10.1.0","eslint":"^6.8.0","eslint-config-standard":"^14.1.0","eslint-plugin-flowtype":"^4.6.0","eslint-plugin-import":"^2.20.1","eslint-plugin-node":"^11.0.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-standard":"^4.0.1","flow-bin":"^0.120.1","jest":"^25.1.0","rimraf":"^3.0.2"},"gitHead":"e3251e54c2326a3193479e7e979cf28a97fbd36a","bugs":{"url":"https://github.com/vlki/refresh-fetch/issues"},"_id":"refresh-fetch@0.6.3","_npmVersion":"6.5.0","_nodeVersion":"11.8.0","_npmUser":{"name":"vlki","email":"vlki@vlki.cz"},"dist":{"integrity":"sha512-tx6zwwIi7OTqCvKWfZAtZbmVFRRxrIQ1zQfPJLL2nYMdX0/PGb1sePKHMcP2+tIhWhc280xsB9OzXhs6WF++Mg==","shasum":"0b62e3e2b7224810374356400b63ebb22602e95d","tarball":"https://registry.npmjs.org/refresh-fetch/-/refresh-fetch-0.6.3.tgz","fileCount":6,"unpackedSize":14227,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJebVLQCRA9TVsSAnZWagAAwu0QAItuEJ9Z6rknBAHKXGBz\nx0JjuwKBL89E2k635w4bxSH6PK9x2RTXdEVd3A9+RUjSubgTAWO0ETUrfRnQ\nCoxpoEs67F2LreLH6nTL+tdscNti2i/jCX0EDdkYwBZvKG0Ni495YZc8sQXC\nlcKj3hiWTOP5gdBQ7a38w0AhIje4fsGNmzelItwFt00A7TjrCLTcSU0DE/05\nGntuWO2UxdhLo9pnauAfKNlINKIEww15EIYWGmmuFpmniomNjrYP/UYTwh9P\ncD7TVJDEi20qskcoZJa4vsyQMOJ5QLBY4WvYoal/NgiNG/bzrZwiF6c5DwVG\nVIQ11AWrYU37EphulM4OacrJVXXFLpPpPLD5wYbLdkxBMJQvWYFzOv5PA9Ui\nCf4w08MC/LXuNZ9odpIfu5G3H0m3a5Smiynh++eliy6xDHTGiqU9wRXYwVrq\niwvAIFqIKYVX7wJLCX6lo62aNOBVb2VFkj75ENrrafU9KsUgAH8Zhe9y5Ht8\nRN37MEnXFn9nphXolwcI67vxWq2Zi8k6x8qqpYy1zCy+oozh8CcewtU4ga5t\nKoJrB5VrL7nQCa2K6jlUZgsi7fmofpaexci3ru/FEa6kvkT98xKVygKhU7uX\nFg0m03BdZLUACbteYYzZBBpuRsSIAyocbiyF+DgXnsTIqiyWMDiKkhuxZN+5\nUXGT\r\n=YnIi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICLYgXW+BlDEYsj7xRazS1bnaMpZjxdEy5Yah/IwdPfgAiEA/Ny+Oe8DxIU8NL1PD9WDECdH/OGjwd7loIGWZiTVfn8="}]},"maintainers":[{"name":"vlki","email":"vlki@vlki.cz"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refresh-fetch_0.6.3_1584222927628_0.6105671535785615"},"_hasShrinkwrap":false},"0.6.4":{"name":"refresh-fetch","description":"Wrapper around fetch capable of graceful authentication token refreshing.","version":"0.6.4","main":"./lib/index.js","scripts":{"build":"babel src --out-dir lib","clean":"rimraf lib dist coverage","lint":"eslint src test","prepublishOnly":"npm run clean && npm run lint && npm test && npm run build","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/vlki/refresh-fetch.git"},"keywords":["api","fetch","auth","token","refresh"],"author":{"name":"Jan Vlcek","email":"vlki@vlki.cz"},"license":"MIT","homepage":"https://github.com/vlki/refresh-fetch","dependencies":{"lodash":"^4.17.19"},"devDependencies":{"@babel/cli":"^7.10.5","@babel/core":"^7.10.5","@babel/plugin-proposal-object-rest-spread":"^7.10.4","@babel/preset-env":"^7.10.4","@babel/preset-flow":"^7.10.4","babel-eslint":"^10.1.0","eslint":"^7.5.0","eslint-config-standard":"^14.1.1","eslint-plugin-flowtype":"^5.2.0","eslint-plugin-import":"^2.22.0","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-standard":"^4.0.1","flow-bin":"^0.129.0","jest":"^26.1.0","rimraf":"^3.0.2"},"gitHead":"bc204df533a17ec03f26751594fcb6f523b6dcc2","bugs":{"url":"https://github.com/vlki/refresh-fetch/issues"},"_id":"refresh-fetch@0.6.4","_nodeVersion":"12.18.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-/zEa2CZRehqdahA2xezRN4M5jKKHJHgQWsESbefBNdbyBw1iYdyuxyEguQcTQCHjtl0CEkgEYt3sMxMhPq+Y1A==","shasum":"db9e2c10dc22a40b1fab1f416741a49e6f86cd7f","tarball":"https://registry.npmjs.org/refresh-fetch/-/refresh-fetch-0.6.4.tgz","fileCount":6,"unpackedSize":14232,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfF+I8CRA9TVsSAnZWagAATn0P/iIrP8E36ZjEetwWtPc9\nmeTJjhlkrw64BbGwGXH1EsyZOFfx173dKwNReG//XIKFae1tpL+rpLnaAZxl\nEBH2DOu2yIpHZVkZBxrAiO7L+2jvWQ1BLQMNHvZ0N0QmJ9O4W0q5Nls/MEKp\nwdYlxojKoC/4aCSXzXtyUVTbOn5D40RS97ActCOYs14gkNu4Xf2+FC45WII5\nur5E4pL2vqPRVMfN+13PD3Na5rsrLSn82YahC0hyo2M1K1C4N5bJiXtEv4s3\nalNO5GhR1qK4XBWbJjlg6XQ69uj18LHuAIqNyk7Ojk4PDvYv8sV2wI+PpigW\njbOWBxNjqzRLKp0dqlrt8+ULMVGir04+jbTG4S1mCpwMwB3Mc4P0iKEr8JYo\nXoynVqZzIqETmjtTAzjc/TeZv6C4x6fT1eqGq72oKx5AVY5zjz7OX7HqHa4J\nLp9JaBLSNvrE/aV22ZS04q1BS1pcrC5l69XiHcbwmHkMBzTILjWvrm7sGAzl\n7FqAqnrexbifGMu7agb6NIrV7sjJ2eXY73gVEHRCGTZuY57YRAudY+9DaQNn\np/UOwl8Nws+Mix3YoCdeGKKj1k8K8EUueV9268XZklI91cDJ0lkqLnrDPtni\nyWpAE6G8g5xeqtnjWILR0YE0Rm7FduW3nA9veaNVR19Lm2gOe/yJEkf+chBZ\nzY9d\r\n=P0rv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCGZMqs9lKRxi9xjk5M55d0bKey5KYT0EaiqqgdROSoiAIgEBHIQ8GGpeL/liM/iG/rro8TJIFJ00NbszCnUMPex4I="}]},"maintainers":[{"name":"vlki","email":"vlki@vlki.cz"}],"_npmUser":{"name":"vlki","email":"vlki@vlki.cz"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refresh-fetch_0.6.4_1595400763623_0.8812146331903434"},"_hasShrinkwrap":false},"0.7.0":{"name":"refresh-fetch","description":"Wrapper around fetch capable of graceful authentication token refreshing.","version":"0.7.0","main":"./lib/index.js","scripts":{"build":"babel src --out-dir lib","clean":"rimraf lib dist coverage","lint":"eslint src test","prepublishOnly":"npm run clean && npm run lint && npm test && npm run build","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/vlki/refresh-fetch.git"},"keywords":["api","fetch","auth","token","refresh"],"author":{"name":"Jan Vlcek","email":"vlki@vlki.cz"},"license":"MIT","homepage":"https://github.com/vlki/refresh-fetch","dependencies":{"lodash":"^4.17.19"},"devDependencies":{"@babel/cli":"^7.10.5","@babel/core":"^7.10.5","@babel/plugin-proposal-object-rest-spread":"^7.10.4","@babel/preset-env":"^7.10.4","@babel/preset-flow":"^7.10.4","babel-eslint":"^10.1.0","eslint":"^7.5.0","eslint-config-standard":"^14.1.1","eslint-plugin-flowtype":"^5.2.0","eslint-plugin-import":"^2.22.0","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^4.2.1","eslint-plugin-standard":"^4.0.1","flow-bin":"^0.129.0","jest":"^26.1.0","rimraf":"^3.0.2"},"gitHead":"7293a0d763a69b20a634ba559b7751b6d9563bcc","bugs":{"url":"https://github.com/vlki/refresh-fetch/issues"},"_id":"refresh-fetch@0.7.0","_nodeVersion":"12.18.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-8Zp9hXQ0+IrSntTof9WX1bNG4Sb+YtNJp/osiqZfVBE9dpvIjG3ft2qmhFY0bUotvhNJJVlkkN++WXXZ1vvIvw==","shasum":"f7522ac69ff7eda4c0389f9006e8e2a40f7cecfa","tarball":"https://registry.npmjs.org/refresh-fetch/-/refresh-fetch-0.7.0.tgz","fileCount":6,"unpackedSize":14248,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKccZCRA9TVsSAnZWagAACPkQAKPDxdc2f28bjMLwBaL/\nYYPxJ5vssEjaax3jXdREzlZg1Zhj5rwsrmI88kaRdesERBdr9cu/LLdbvN8H\nXmkrx89KumFoSAlc14ffOl5l+5Oo7RhU5A97Vj2xKhLsAGoxeKiDJjk0LzIv\nMpsec1RkqJPOHu08aPRg1Eu8LjlMngat+Um3YtoLu1v6Exr4v9z3KaPCC65W\nBUwJFqqgFKhplSWK1vr2FBehV8OoEWiM+l1aVzCsO33ICJxw1auczn5HloJg\nC9d+aCDbypOjWOwCp551l5czOMH+ez5I2GgO7CMIldSt739q3jqi1VNFwI5+\nzdJOVwldv/972/Isi+f2LwriXpRO66LIbz0sON7not13YCgUe5p1xKkFB/CT\ncVxGSsuwPbNJ2JqY2DeCYDNZ1rCw0xNwnkmqzToalLJ2BKvRfwV7SQ5kIYym\nxBP00D9/wWhZ62fV3vOkB2DXfe/FtqCWDRsYozZCaaC4GsRrcLHkML1BiuD0\nXbwoC/SNKEwwxjnukOBIv055hnTkR63al612iDnK5CFBJJd7S+8if7MC0G0K\nxOn6neiDOvsDEw5L2vVfFTCIIjvIHUxYzIDiRg75v0wf2pwJ1ltNUH05wMsn\nWgJnSCB1fCg47bfD6cmTBLQzf7piTWDbCSuk+1JBVkrOl3GSiKlV5BddD4AT\ngbqx\r\n=zTyu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG8Sy4wz1H++qDl7/iNM0bdfz4OXM3d1u5Fx/XHJbrVNAiB8NGkuvt0Vpf3M9V8x/i9zZgGptqocREHbTzqY2JYBwg=="}]},"maintainers":[{"name":"vlki","email":"vlki@vlki.cz"}],"_npmUser":{"name":"vlki","email":"vlki@vlki.cz"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refresh-fetch_0.7.0_1596573464821_0.9638735097999931"},"_hasShrinkwrap":false},"0.8.0":{"name":"refresh-fetch","description":"Wrapper around fetch capable of graceful authentication token refreshing.","version":"0.8.0","main":"./lib/index.js","scripts":{"build":"babel src --out-dir lib","clean":"rimraf lib dist coverage","lint":"eslint src test","prepublishOnly":"npm run clean && npm run lint && npm test && npm run build","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/vlki/refresh-fetch.git"},"keywords":["api","fetch","auth","token","refresh"],"author":{"name":"Jan Vlcek","email":"vlki@vlki.cz"},"license":"MIT","homepage":"https://github.com/vlki/refresh-fetch","dependencies":{"lodash":"^4.17.21"},"devDependencies":{"@babel/cli":"^7.14.5","@babel/core":"^7.14.6","@babel/plugin-proposal-object-rest-spread":"^7.14.7","@babel/preset-env":"^7.14.7","@babel/preset-flow":"^7.14.5","babel-eslint":"^10.1.0","eslint":"^7.30.0","eslint-config-standard":"^16.0.3","eslint-plugin-flowtype":"^5.8.0","eslint-plugin-import":"^2.23.4","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^5.1.0","eslint-plugin-standard":"^5.0.0","flow-bin":"^0.154.0","jest":"^27.0.6","node-fetch":"^2.6.1","rimraf":"^3.0.2"},"gitHead":"69b9d23c8bd47d19dddf3fdaab6a56f255e7233e","bugs":{"url":"https://github.com/vlki/refresh-fetch/issues"},"_id":"refresh-fetch@0.8.0","_nodeVersion":"12.18.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-4TjLYV0BWWa8TLxll6s8fzOmBQL/rpeH2D1hYF83QRKyVEQT0aanySl00qpDTMNmovhvVQr5t7efLmU2hm/f4A==","shasum":"3d7216fb5377f77d8d8f56019403745cf090743d","tarball":"https://registry.npmjs.org/refresh-fetch/-/refresh-fetch-0.8.0.tgz","fileCount":6,"unpackedSize":14471,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg4effCRA9TVsSAnZWagAAhzUP/ROQ04p31GqdH0h4GFyp\npLIWPU5RBBdBm4iVaTY5P4Rp8v/VuXuLCKgmhl+WT5BL3KIIumvgQomItk5j\nOGg2gpKuK52XzbTYtvhhl/75+jV3ci3pCtHi7CDJ1MX4JJBQHLM5fHIdRgPd\n/k9kfx7jQUP/hFtzyruG6o8UWZX8+Lc8L8aalVpn2Pj4LgNVsugIrSoeSLLJ\nNOZLpShEVurVMIi8VUl4odrznrOnsjBz3BBgKWeAQIP2GDPv09AahXizE74U\nFH9TKIfSxRKMh3ma8l+ZB2HAhox6WogZxOxN4NnnwowwrIqkhBjHgHO2uqUh\naOB3ha197fEvkjrG+l5sE2nXATOpM4acT3s7q9jAVA25aNPJ7ddArMZtfN7X\nZ5Y116Cy0BfdyfyFwMMH26npVVig/zOCPo4jNVdk35oQ5tZ4riGN5Rraaxs6\nzbldkbBRsEN5OBI+AINSwsbUDIHixFlVlUaoDEcY/GqMH1vDHAKWJaYsv54E\nTeu8SvkGTBi6HKeKNBcF549bZrOKssNtyETGk6R6BwLomTy3CRGO4KeMNPsG\nVt/HiGCO+Y37Q2epQHmVKkHfMsqMg0TfbomnDnLZ7vXXY9GToImZq3hehkNA\ntuu1JjcLUs6p0T7lnF1hm7mgVG4uZrlKfyV3ZKMTEJtkkbTGGG0L4Hempf2M\nbPCV\r\n=WZ0K\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCp4zcdj1EE0OHY3acCvNoM9mwQ4JHKJyGZ1jHGyUB91wIhAMvIruFIr/D/Gxgf7VqzI6ZYeOmdgrAVFGaC4tt2f4tD"}]},"_npmUser":{"name":"vlki","email":"vlki@vlki.cz"},"directories":{},"maintainers":[{"name":"vlki","email":"vlki@vlki.cz"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refresh-fetch_0.8.0_1625417695207_0.991264266425971"},"_hasShrinkwrap":false},"0.9.0":{"name":"refresh-fetch","description":"Wrapper around fetch capable of graceful authentication token refreshing.","version":"0.9.0","main":"./lib/index.js","scripts":{"build":"babel src --out-dir lib","clean":"rimraf lib dist coverage","lint":"eslint src test","prepublishOnly":"npm run clean && npm run lint && npm test && npm run build","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/vlki/refresh-fetch.git"},"keywords":["api","fetch","auth","token","refresh"],"author":{"name":"Jan Vlcek","email":"vlki@vlki.cz"},"license":"MIT","homepage":"https://github.com/vlki/refresh-fetch","dependencies":{"lodash":"^4.17.21"},"devDependencies":{"@babel/cli":"^7.24.1","@babel/core":"^7.24.3","@babel/eslint-parser":"^7.24.1","@babel/preset-env":"^7.24.3","@babel/preset-flow":"^7.24.1","eslint":"^8.57.0","eslint-config-standard":"^17.1.0","eslint-plugin-flowtype":"^8.0.3","eslint-plugin-import":"^2.29.1","eslint-plugin-node":"^11.1.0","eslint-plugin-promise":"^6.1.1","eslint-plugin-standard":"^5.0.0","flow-bin":"^0.232.0","jest":"^29.7.0","node-fetch":"^2.7.0","rimraf":"^5.0.5"},"_id":"refresh-fetch@0.9.0","gitHead":"e51be4eb9fa7105900a17185ec8b6e0a603f2745","bugs":{"url":"https://github.com/vlki/refresh-fetch/issues"},"_nodeVersion":"20.12.0","_npmVersion":"10.5.0","dist":{"integrity":"sha512-lyE1dICf9hgwBxzNDLONmF0Z93bDLVhiSMQc8iXgPBKaIMFzWRoNb/tSJq8L76uhcH+e+C5fRKytM8wCmlrDcQ==","shasum":"16e5ca09f4d1a4e598b03f655c37b7b707d83571","tarball":"https://registry.npmjs.org/refresh-fetch/-/refresh-fetch-0.9.0.tgz","fileCount":6,"unpackedSize":14381,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDeuz+h2mt4a0my2AZKUDSHm+jfSaOZ0OzZR84Fz866oAiBOn/9JsB2y3XXkY97Za2dowhpU1tY6u3cjWKUp+mqb6A=="}]},"_npmUser":{"name":"vlki","email":"vlki@vlki.cz"},"directories":{},"maintainers":[{"name":"vlki","email":"vlki@vlki.cz"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/refresh-fetch_0.9.0_1712056890770_0.6740401351582281"},"_hasShrinkwrap":false}},"homepage":"https://github.com/vlki/refresh-fetch","keywords":["api","fetch","auth","token","refresh"],"repository":{"type":"git","url":"git+https://github.com/vlki/refresh-fetch.git"},"author":{"name":"Jan Vlcek","email":"vlki@vlki.cz"},"bugs":{"url":"https://github.com/vlki/refresh-fetch/issues"},"license":"MIT","readmeFilename":"README.md"}