{"_id":"redux-token-api-middleware","_rev":"46-13e2c5d99c801c789846539b1d839ced","name":"redux-token-api-middleware","description":"Redux middleware for calling APIs with token-based auth","dist-tags":{"latest":"0.12.1","alpha":"0.10.4-alpha"},"versions":{"0.1.0":{"name":"redux-token-api-middleware","version":"0.1.0","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive ./test"},"babel":{"presets":["es2015"]},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"edwardjstone@yahoo.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"redux":"^3.3.1","isomorphic-fetch":"^2.2.1","jsonwebtoken":"^5.7.0","moment":"^2.12.0","moment-timezone":"^0.5.2"},"devDependencies":{"babel-cli":"^6.6.5","babel-eslint":"^5.0.0","babel-loader":"^6.2.4","babel-preset-es2015":"^6.6.0","babel-preset-react":"^6.5.0","babel-preset-stage-0":"^6.5.0","chai":"^3.5.0","clean-webpack-plugin":"^0.1.8","eslint":"~2.2.0","html-webpack-plugin":"^2.14.0","json-loader":"^0.5.4","lodash":"^4.6.1","mocha":"^2.4.5","react":"^0.14.7","react-dom":"^0.14.7","react-redux":"^4.4.1","rimraf":"^2.5.2","watch":"^0.17.1","webpack":"^1.12.14"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"19af95aef117d552d5aa94227b573531d5dffc4b","_id":"redux-token-api-middleware@0.1.0","_shasum":"aff2228ef9b67dfc8c1e6a9ff697963d824babaa","_from":".","_npmVersion":"3.6.0","_nodeVersion":"4.2.1","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"shasum":"aff2228ef9b67dfc8c1e6a9ff697963d824babaa","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.1.0.tgz","integrity":"sha512-9T0tcOSkUitLTrEt/JQPWMdhMqK7ZJA6UltcwpLbz8W2D5ZyC6mzd0z6PXSklcSWXpoMu3FhQLbETXtFibc3pw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGAXDIQncsjehCEcQN8RCEnXESOpuLPvh8OuDQpbChHcAiAIGus38zqCTl2EP8IEh97HPIPJlev664Fu75DstZz6eQ=="}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/redux-token-api-middleware-0.1.0.tgz_1459221258639_0.564690614817664"},"directories":{}},"0.1.1":{"name":"redux-token-api-middleware","version":"0.1.1","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive ./test"},"babel":{"presets":["es2015"]},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"edwardjstone@yahoo.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"redux":"^3.3.1","isomorphic-fetch":"^2.2.1","jsonwebtoken":"^5.7.0","moment":"^2.12.0","moment-timezone":"^0.5.2"},"devDependencies":{"babel-cli":"^6.6.5","babel-eslint":"^5.0.0","babel-loader":"^6.2.4","babel-preset-es2015":"^6.6.0","babel-preset-react":"^6.5.0","babel-preset-stage-0":"^6.5.0","chai":"^3.5.0","clean-webpack-plugin":"^0.1.8","eslint":"~2.2.0","html-webpack-plugin":"^2.14.0","json-loader":"^0.5.4","lodash":"^4.6.1","mocha":"^2.4.5","react":"^0.14.7","react-dom":"^0.14.7","react-redux":"^4.4.1","rimraf":"^2.5.2","watch":"^0.17.1","webpack":"^1.12.14"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"4fc1141df502cb89e903ee5be138641d758f1257","_id":"redux-token-api-middleware@0.1.1","_shasum":"b606eb75a769d7ca7b850530ddf7a33e305e0133","_from":".","_npmVersion":"3.6.0","_nodeVersion":"4.2.1","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"shasum":"b606eb75a769d7ca7b850530ddf7a33e305e0133","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.1.1.tgz","integrity":"sha512-AKeFidbC1II/4oDD77RDi80Kh7FPjjFJ4LuzptSmJI2E7C0nC4r9guUVdUQxZ8aafvO6AZP7fbTomEzIUW4ulQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCWuWTtdnSZqrFc8A/d2PqaXvx8d2uuJkkaodEtnJQzuAIgNxb3ofpBlib5KFFrD+y9PUZjuyNcF8QZtk7UJ2qKVDU="}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/redux-token-api-middleware-0.1.1.tgz_1459221578639_0.896417398005724"},"directories":{}},"0.1.2":{"name":"redux-token-api-middleware","version":"0.1.2","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive ./test"},"babel":{"presets":["es2015"]},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"edwardjstone@yahoo.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"redux":"^3.3.1","isomorphic-fetch":"^2.2.1","jsonwebtoken":"^5.7.0","moment":"^2.12.0","moment-timezone":"^0.5.2"},"devDependencies":{"babel-cli":"^6.6.5","babel-eslint":"^5.0.0","babel-loader":"^6.2.4","babel-preset-es2015":"^6.6.0","babel-preset-react":"^6.5.0","babel-preset-stage-0":"^6.5.0","chai":"^3.5.0","clean-webpack-plugin":"^0.1.8","eslint":"~2.2.0","html-webpack-plugin":"^2.14.0","json-loader":"^0.5.4","lodash":"^4.6.1","mocha":"^2.4.5","react":"^0.14.7","react-dom":"^0.14.7","react-redux":"^4.4.1","rimraf":"^2.5.2","watch":"^0.17.1","webpack":"^1.12.14"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"0e94c17eabd3e9aff4b9aa385f8284bc0353c14a","_id":"redux-token-api-middleware@0.1.2","_shasum":"50230775ea8d1c46fca65c67921f6188153f74ac","_from":".","_npmVersion":"3.6.0","_nodeVersion":"4.2.1","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"shasum":"50230775ea8d1c46fca65c67921f6188153f74ac","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.1.2.tgz","integrity":"sha512-Ww7IylQMxQa5BXopeQJfx65AEWeXwOcyuyeWrI/6xt3NJEYcRsxmcDFQLSy2wyUTtpX1mdbzVoHz4W9UUxpj5Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBHNM3r6iqVUbBc68vIt1WUDmX9CqOFywUSBO7hUGs24AiEArJp8uOMG+YWyVpkhpXxlZypr0JYFQ9qplBNyapziIKg="}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/redux-token-api-middleware-0.1.2.tgz_1459360916032_0.517558220308274"},"directories":{}},"0.2.0":{"name":"redux-token-api-middleware","version":"0.2.0","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive ./test"},"babel":{"presets":["es2015"]},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"edwardjstone@yahoo.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"redux":"^3.3.1","isomorphic-fetch":"^2.2.1","jsonwebtoken":"^5.7.0","moment":"^2.12.0","moment-timezone":"^0.5.2"},"devDependencies":{"babel-cli":"^6.6.5","babel-eslint":"^5.0.0","babel-loader":"^6.2.4","babel-preset-es2015":"^6.6.0","babel-preset-react":"^6.5.0","babel-preset-stage-0":"^6.5.0","chai":"^3.5.0","clean-webpack-plugin":"^0.1.8","eslint":"~2.2.0","html-webpack-plugin":"^2.14.0","json-loader":"^0.5.4","lodash":"^4.6.1","mocha":"^2.4.5","react":"^0.14.7","react-dom":"^0.14.7","react-redux":"^4.4.1","rimraf":"^2.5.2","watch":"^0.17.1","webpack":"^1.12.14"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"b628c6259dacf6077cd3041614f9e24d0b566a8a","_id":"redux-token-api-middleware@0.2.0","_shasum":"74465fef04fe044094108cb304e9056a4db75c33","_from":".","_npmVersion":"3.9.5","_nodeVersion":"4.2.1","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"shasum":"74465fef04fe044094108cb304e9056a4db75c33","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.2.0.tgz","integrity":"sha512-o/DObWXqQ0mPDw0ybvsZxE0nrsFGofA/boJe8i6bftr4N9lhHPaaoNyW/PZmUkLxZMO5hjnCQiq4Tkrnh+tf9Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICsNDdlY+KPpjipeGILVqSL710uM3nOvaWhOUTJiLKo+AiBJIYPNh85CqXX2k4LoONpn9SQvSHfiNQyWEZMNJkWvTg=="}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/redux-token-api-middleware-0.2.0.tgz_1473441337645_0.8717135323677212"},"directories":{}},"0.3.0":{"name":"redux-token-api-middleware","version":"0.3.0","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive ./test"},"babel":{"presets":["es2015"]},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"edwardjstone@yahoo.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"redux":"^3.3.1","isomorphic-fetch":"^2.2.1","jsonwebtoken":"^5.7.0","moment":"^2.12.0","moment-timezone":"^0.5.2"},"devDependencies":{"babel-cli":"^6.6.5","babel-eslint":"^5.0.0","babel-loader":"^6.2.4","babel-preset-es2015":"^6.6.0","babel-preset-react":"^6.5.0","babel-preset-stage-0":"^6.5.0","chai":"^3.5.0","clean-webpack-plugin":"^0.1.8","eslint":"~2.2.0","html-webpack-plugin":"^2.14.0","json-loader":"^0.5.4","lodash":"^4.6.1","mocha":"^2.4.5","react":"^0.14.7","react-dom":"^0.14.7","react-redux":"^4.4.1","rimraf":"^2.5.2","watch":"^0.17.1","webpack":"^1.12.14"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"0c5feb1014facf5802f7d68708fbe6564de3842f","_id":"redux-token-api-middleware@0.3.0","_shasum":"049d5963738cd951d2d7b06235be82de7cc09764","_from":".","_npmVersion":"3.10.8","_nodeVersion":"4.2.1","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"shasum":"049d5963738cd951d2d7b06235be82de7cc09764","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.3.0.tgz","integrity":"sha512-FwkMZJ/2U+/Dm6CJN3djfKfOTw8KBAmUvK5l3ZqpV8gd1nNnPEhNpNt+z+c/7Ndp8F7KjiQow5Px/MKBcODYmw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBE1hCW7beROXxbWb4te8NjONplwmt+sBlsfBILSvV0GAiAafLVw8lvXPsDf83akwNk7oCnOPL5VqGREr9d7MOIxKQ=="}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/redux-token-api-middleware-0.3.0.tgz_1477082436387_0.11574414744973183"},"directories":{}},"0.4.0":{"name":"redux-token-api-middleware","version":"0.4.0","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive ./test"},"babel":{"presets":["es2015"]},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"edwardjstone@yahoo.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"redux":"^3.3.1","isomorphic-fetch":"^2.2.1","jsonwebtoken":"^5.7.0","moment":"^2.12.0","moment-timezone":"^0.5.2"},"devDependencies":{"babel-cli":"^6.6.5","babel-eslint":"^5.0.0","babel-loader":"^6.2.4","babel-preset-es2015":"^6.6.0","babel-preset-react":"^6.5.0","babel-preset-stage-0":"^6.5.0","chai":"^3.5.0","clean-webpack-plugin":"^0.1.8","eslint":"~2.2.0","html-webpack-plugin":"^2.14.0","json-loader":"^0.5.4","lodash":"^4.6.1","mocha":"^2.4.5","react":"^0.14.7","react-dom":"^0.14.7","react-redux":"^4.4.1","rimraf":"^2.5.2","watch":"^0.17.1","webpack":"^1.12.14"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"d0eed0f1de4a9757d95deeecdf488afc1f04b6c8","_id":"redux-token-api-middleware@0.4.0","_shasum":"d716e24c9e82ca1c677eca7d615fcf23a27ea22d","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"shasum":"d716e24c9e82ca1c677eca7d615fcf23a27ea22d","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.4.0.tgz","integrity":"sha512-JHgMpnlvUpzbqX5I7TI8IQe0giRqx2MpSrKfeYzExICR7JSmXe3csE7FFbvAqzMe/PPQ36nvjwZ/40XAohBW5w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHb5hQQ4qzElUkZZ6BHErx3Lx//p4s628roborMZIWO2AiEA8GdjlwixffghASx+Ibd4Dr0OblOsmNGx73V6WtFhKjk="}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/redux-token-api-middleware-0.4.0.tgz_1479869297464_0.38594376388937235"},"directories":{}},"0.4.1":{"name":"redux-token-api-middleware","version":"0.4.1","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive ./test"},"babel":{"presets":["es2015"]},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"edwardjstone@yahoo.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"redux":"^3.3.1","isomorphic-fetch":"^2.2.1","jsonwebtoken":"^5.7.0","moment":"^2.12.0","moment-timezone":"^0.5.2"},"devDependencies":{"babel-cli":"^6.6.5","babel-eslint":"^5.0.0","babel-loader":"^6.2.4","babel-preset-es2015":"^6.6.0","babel-preset-react":"^6.5.0","babel-preset-stage-0":"^6.5.0","chai":"^3.5.0","clean-webpack-plugin":"^0.1.8","eslint":"~2.2.0","html-webpack-plugin":"^2.14.0","json-loader":"^0.5.4","lodash":"^4.6.1","mocha":"^2.4.5","react":"^0.14.7","react-dom":"^0.14.7","react-redux":"^4.4.1","rimraf":"^2.5.2","watch":"^0.17.1","webpack":"^1.12.14"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"4f5402cf50fa8779ce2ecb778dc2c872dacb40a0","_id":"redux-token-api-middleware@0.4.1","_shasum":"a0e73e6e8e375250bb9c98b0ed921f3ac8ff6e8f","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"shasum":"a0e73e6e8e375250bb9c98b0ed921f3ac8ff6e8f","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.4.1.tgz","integrity":"sha512-l5PUqUKMRP9R8dUn/3ZTHxEnwpverwgIWhLTp8FdSyjjrTRjDEd1DaBgFAWEU/0XPhQtDJms1/yZ6oQb+T4p4A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA/ZCGUsYHyOGEIPsjGvZ482xAEeEaNUfvcakgm11JJ6AiA6oeViYmC5Tn7rk40SVAm3KunB08KOETKk1LAEAqTGEg=="}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/redux-token-api-middleware-0.4.1.tgz_1480376841910_0.31003432837314904"},"directories":{}},"0.4.2":{"name":"redux-token-api-middleware","version":"0.4.2","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive ./test"},"babel":{"presets":["es2015"]},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"edwardjstone@yahoo.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"isomorphic-fetch":"^2.2.1","jsonwebtoken":"^5.7.0","lodash.isarraylikeobject":"^4.2.0","lodash.isfunction":"^3.0.8","lodash.isundefined":"^3.0.1","lodash.map":"^4.6.0","lodash.omitby":"^4.6.0","lodash.startswith":"^4.2.1","moment":"^2.12.0","moment-timezone":"^0.5.2","redux":"^3.3.1"},"devDependencies":{"babel-cli":"^6.6.5","babel-eslint":"^5.0.0","babel-loader":"^6.2.4","babel-preset-es2015":"^6.6.0","babel-preset-react":"^6.5.0","babel-preset-stage-0":"^6.5.0","chai":"^3.5.0","clean-webpack-plugin":"^0.1.8","eslint":"~2.2.0","html-webpack-plugin":"^2.14.0","json-loader":"^0.5.4","lodash":"^4.6.1","mocha":"^2.4.5","react":"^0.14.7","react-dom":"^0.14.7","react-redux":"^4.4.1","rimraf":"^2.5.2","watch":"^0.17.1","webpack":"^1.12.14"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"1042f202ecae1c325be4145352da8b530471e0a1","_id":"redux-token-api-middleware@0.4.2","_shasum":"321e4a195214351c25afbfe3ca5d3072d48eb390","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"shasum":"321e4a195214351c25afbfe3ca5d3072d48eb390","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.4.2.tgz","integrity":"sha512-cUzMkH6YkvG7E1M7v5FYjY1qMo1ILYaJEQfKrpnxxLtkNnDX2KyPJJSO9UX7xRg1MzIbBuRd16anHczyXdsTFg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC7cGVIJjS5gvGHP95wNDmB8nZ0kEl18tcreFD5YJpElAiAWzNtyP4VEHhdC8r/Iom88GEPiYCaZ8U+qSDb/SlvoUg=="}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/redux-token-api-middleware-0.4.2.tgz_1487013158883_0.46955575165338814"},"directories":{}},"0.5.0":{"name":"redux-token-api-middleware","version":"0.5.0","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive ./test"},"babel":{"presets":["es2015"]},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"edwardjstone@yahoo.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"isomorphic-fetch":"^2.2.1","jsonwebtoken":"^5.7.0","lodash.isarraylikeobject":"^4.2.0","lodash.isfunction":"^3.0.8","lodash.isundefined":"^3.0.1","lodash.map":"^4.6.0","lodash.omitby":"^4.6.0","lodash.startswith":"^4.2.1","moment":"^2.12.0","moment-timezone":"^0.5.2","redux":"^3.3.1"},"devDependencies":{"babel-cli":"^6.6.5","babel-eslint":"^5.0.0","babel-loader":"^6.2.4","babel-preset-es2015":"^6.6.0","babel-preset-react":"^6.5.0","babel-preset-stage-0":"^6.5.0","chai":"^3.5.0","clean-webpack-plugin":"^0.1.8","eslint":"~2.2.0","html-webpack-plugin":"^2.14.0","json-loader":"^0.5.4","lodash":"^4.6.1","mocha":"^2.4.5","react":"^0.14.7","react-dom":"^0.14.7","react-redux":"^4.4.1","rimraf":"^2.5.2","watch":"^0.17.1","webpack":"^1.12.14"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"8bf88d9f2108cd098495ce7b69d6d71d684f30ce","_id":"redux-token-api-middleware@0.5.0","_shasum":"4062b43cab515cf25a986c30bb09697935d5f240","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"shasum":"4062b43cab515cf25a986c30bb09697935d5f240","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.5.0.tgz","integrity":"sha512-gUtr+PMfN+bq9u2E6NvGET8ljzFEZMQuNH3n3C01y4OMRRt1kV9TEBYghqhQs1V81Puxlmte00mz7ahImiA5Ww==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFX23Ao7tz+/mdrjEdps/Wgv+VFl8b0ElJ2P3tJfK5DsAiAcSf6C3/MNCpsDV4xXp1YNxSHTULrLbyv5ArnnPZ0AAg=="}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/redux-token-api-middleware-0.5.0.tgz_1489528162987_0.16843864391557872"},"directories":{}},"0.6.0":{"name":"redux-token-api-middleware","version":"0.6.0","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive ./test"},"babel":{"presets":["es2015"]},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"edwardjstone@yahoo.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"isomorphic-fetch":"^2.2.1","jsonwebtoken":"^5.7.0","lodash.isarraylikeobject":"^4.2.0","lodash.isfunction":"^3.0.8","lodash.isundefined":"^3.0.1","lodash.map":"^4.6.0","lodash.omitby":"^4.6.0","lodash.startswith":"^4.2.1","moment":"^2.12.0","moment-timezone":"^0.5.2","redux":"^3.3.1"},"devDependencies":{"babel-cli":"^6.6.5","babel-eslint":"^5.0.0","babel-loader":"^6.2.4","babel-preset-es2015":"^6.6.0","babel-preset-react":"^6.5.0","babel-preset-stage-0":"^6.5.0","chai":"^3.5.0","clean-webpack-plugin":"^0.1.8","eslint":"~2.2.0","html-webpack-plugin":"^2.14.0","json-loader":"^0.5.4","lodash":"^4.6.1","mocha":"^2.4.5","react":"^0.14.7","react-dom":"^0.14.7","react-redux":"^4.4.1","rimraf":"^2.5.2","watch":"^0.17.1","webpack":"^1.12.14"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"66c56cef67f2d39714092824dba91435dfd9e971","_id":"redux-token-api-middleware@0.6.0","_shasum":"b7a8edb29442bcf3d7ff934297bda70570edd920","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"shasum":"b7a8edb29442bcf3d7ff934297bda70570edd920","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.6.0.tgz","integrity":"sha512-RXH7W9SM9kqgbHgOm/5Oj54zJfMEQz3Rn1GmVCAN6cqNkKJUHyM9jWNenO1hUwWJTf27Zu3GPesIVPV/LoxnbA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCxidmDCWLwl0ylHjra/Jr6kFtD2HgpKAGWcKlgrsyHcAIhAMS7EHX73AnS1R7SX5XnV6GoKo/bB81NR8szMYnrxGpL"}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/redux-token-api-middleware-0.6.0.tgz_1490036966866_0.8981961337849498"},"directories":{}},"0.6.1":{"name":"redux-token-api-middleware","version":"0.6.1","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive ./test"},"babel":{"presets":["es2015"]},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"edwardjstone@yahoo.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"isomorphic-fetch":"^2.2.1","jsonwebtoken":"^5.7.0","lodash.isarraylikeobject":"^4.2.0","lodash.isfunction":"^3.0.8","lodash.isundefined":"^3.0.1","lodash.map":"^4.6.0","lodash.omitby":"^4.6.0","lodash.startswith":"^4.2.1","moment":"^2.12.0","moment-timezone":"^0.5.2","redux":"^3.3.1"},"devDependencies":{"babel-cli":"^6.6.5","babel-eslint":"^5.0.0","babel-loader":"^6.2.4","babel-preset-es2015":"^6.6.0","babel-preset-react":"^6.5.0","babel-preset-stage-0":"^6.5.0","chai":"^3.5.0","clean-webpack-plugin":"^0.1.8","eslint":"~2.2.0","html-webpack-plugin":"^2.14.0","json-loader":"^0.5.4","lodash":"^4.6.1","mocha":"^2.4.5","react":"^0.14.7","react-dom":"^0.14.7","react-redux":"^4.4.1","rimraf":"^2.5.2","watch":"^0.17.1","webpack":"^1.12.14"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"ed92d56bb57266807c549f3d1cbd94e01e04c7e8","_id":"redux-token-api-middleware@0.6.1","_shasum":"8586a11e3212faaffa258a4d70d034d5dc5d882f","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"shasum":"8586a11e3212faaffa258a4d70d034d5dc5d882f","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.6.1.tgz","integrity":"sha512-8WTetx03RiRH8QJbYBVR3oohC54OXIUY6LHI1YBl7UOPCnJzck/VP+TCYbvOF2UE7dlKPEYhAWWzR6SqBKXqHw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDcFTDq/Pi68UGvE2DDbK7/5a/Cs6CJTB4Z+cTTjZt/hAIgOvmVOxizOnSy10sVTzUfsIbAAZhrWYCGOSPDfTVcTyQ="}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/redux-token-api-middleware-0.6.1.tgz_1493478921498_0.20894086780026555"},"directories":{}},"0.7.0":{"name":"redux-token-api-middleware","version":"0.7.0","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive ./test"},"babel":{"presets":["es2015"]},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"edwardjstone@yahoo.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"isomorphic-fetch":"^2.2.1","jsonwebtoken":"^5.7.0","lodash.isarraylikeobject":"^4.2.0","lodash.isfunction":"^3.0.8","lodash.isundefined":"^3.0.1","lodash.map":"^4.6.0","lodash.omitby":"^4.6.0","lodash.startswith":"^4.2.1","moment":"^2.12.0","moment-timezone":"^0.5.2","redux":"^3.3.1"},"devDependencies":{"babel-cli":"^6.6.5","babel-eslint":"^5.0.0","babel-loader":"^6.2.4","babel-preset-es2015":"^6.6.0","babel-preset-react":"^6.5.0","babel-preset-stage-0":"^6.5.0","chai":"^3.5.0","clean-webpack-plugin":"^0.1.8","eslint":"~2.2.0","html-webpack-plugin":"^2.14.0","json-loader":"^0.5.4","lodash":"^4.6.1","mocha":"^2.4.5","react":"^0.14.7","react-dom":"^0.14.7","react-redux":"^4.4.1","rimraf":"^2.5.2","watch":"^0.17.1","webpack":"^1.12.14"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"31ea3375ed02f8229738dfac9dfb858a7619e76f","_id":"redux-token-api-middleware@0.7.0","_shasum":"ef8fd7784de204f2f7054c277b87891f7271576b","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"shasum":"ef8fd7784de204f2f7054c277b87891f7271576b","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.7.0.tgz","integrity":"sha512-GPmkNNtgCCVldQG42jSOUa9D9QjwGmXJ5hD7Qrd9JnAviC7XE2LnzEF5DXNNCnGV3BIXSqCHgg3sK55dTnj8kA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDShzo7bJ134d/ACIZml2GLy3hEMCYim8LVyBNlYS0NBQIgTkfxg3vVsLhvoHuiDT/nyLI2bzg3dRTQC2J7r1q21oo="}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/redux-token-api-middleware-0.7.0.tgz_1494286676257_0.21642103954218328"},"directories":{}},"0.8.1":{"name":"redux-token-api-middleware","version":"0.8.1","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive ./test"},"babel":{"presets":["es2015"]},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"edwardjstone@yahoo.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"isomorphic-fetch":"^2.2.1","jsonwebtoken":"^5.7.0","lodash.isarraylikeobject":"^4.2.0","lodash.isfunction":"^3.0.8","lodash.isundefined":"^3.0.1","lodash.map":"^4.6.0","lodash.omitby":"^4.6.0","lodash.startswith":"^4.2.1","moment":"^2.12.0","moment-timezone":"^0.5.2","redux":"^3.3.1"},"devDependencies":{"babel-cli":"^6.6.5","babel-eslint":"^5.0.0","babel-loader":"^6.2.4","babel-preset-es2015":"^6.6.0","babel-preset-react":"^6.5.0","babel-preset-stage-0":"^6.5.0","chai":"^3.5.0","clean-webpack-plugin":"^0.1.8","eslint":"~2.2.0","html-webpack-plugin":"^2.14.0","json-loader":"^0.5.4","lodash":"^4.6.1","mocha":"^2.4.5","react":"^0.14.7","react-dom":"^0.14.7","react-redux":"^4.4.1","rimraf":"^2.5.2","watch":"^0.17.1","webpack":"^1.12.14"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"68c9d522add1ea37f50d6ed12b09bb7f38cd61d8","_id":"redux-token-api-middleware@0.8.1","_shasum":"b7a07a9f56bb44b48515205f4c8f2acc4174a036","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"shasum":"b7a07a9f56bb44b48515205f4c8f2acc4174a036","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.8.1.tgz","integrity":"sha512-dXJ8QVAX+WlBstPvIJIVBipOb+DNcK5cv6A5HAs2FMTRcEd+Tu5N5x42qmhJZY6fLiXwYdeXOjiA7JdL5Akbfw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFHXIh3qxIVRoAglp5H8+sancuYgwbgZTpnC5ABIe1lqAiEAxz1jKivJJd78oZIYYgIj+rls4Wwk+FO6gFXBZX2zQoc="}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/redux-token-api-middleware-0.8.1.tgz_1494534818882_0.3936813944019377"},"directories":{}},"0.8.2":{"name":"redux-token-api-middleware","version":"0.8.2","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive ./test"},"babel":{"presets":["es2015"]},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"edwardjstone@yahoo.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"isomorphic-fetch":"^2.2.1","jsonwebtoken":"^5.7.0","lodash.isarraylikeobject":"^4.2.0","lodash.isfunction":"^3.0.8","lodash.isundefined":"^3.0.1","lodash.map":"^4.6.0","lodash.omitby":"^4.6.0","lodash.startswith":"^4.2.1","moment":"^2.12.0","moment-timezone":"^0.5.2","redux":"^3.3.1"},"devDependencies":{"babel-cli":"^6.6.5","babel-eslint":"^5.0.0","babel-loader":"^6.2.4","babel-preset-es2015":"^6.6.0","babel-preset-react":"^6.5.0","babel-preset-stage-0":"^6.5.0","chai":"^3.5.0","clean-webpack-plugin":"^0.1.8","eslint":"~2.2.0","html-webpack-plugin":"^2.14.0","json-loader":"^0.5.4","lodash":"^4.6.1","mocha":"^2.4.5","react":"^0.14.7","react-dom":"^0.14.7","react-redux":"^4.4.1","rimraf":"^2.5.2","watch":"^0.17.1","webpack":"^1.12.14"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"e3e578e645931ba34040ce5029807afe5e2049ed","_id":"redux-token-api-middleware@0.8.2","_shasum":"4a22907697aced39e4ccd8157d590e96c6ae2a35","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"shasum":"4a22907697aced39e4ccd8157d590e96c6ae2a35","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.8.2.tgz","integrity":"sha512-xYcYymLYfG9fyuxku185heyS8A/u8WVaIbPIhHvLU0rAV7gxrs3irZuckTCgB8swFRSCxQciXiLdeqArRN8Kzg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD2I60weDUB8TvUukso3SeJXRysyNP0cD7lDRpe8+TwfQIgFFll5+9g+hx7q48JHMBXA0eSZy9sVHwJfkjMI4+yS3E="}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/redux-token-api-middleware-0.8.2.tgz_1494535396154_0.03155968291684985"},"directories":{}},"0.8.3":{"name":"redux-token-api-middleware","version":"0.8.3","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive ./test"},"babel":{"presets":["es2015"]},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"edwardjstone@yahoo.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"isomorphic-fetch":"^2.2.1","jsonwebtoken":"^5.7.0","lodash.isarraylikeobject":"^4.2.0","lodash.isfunction":"^3.0.8","lodash.isundefined":"^3.0.1","lodash.map":"^4.6.0","lodash.omitby":"^4.6.0","lodash.startswith":"^4.2.1","moment":"^2.12.0","moment-timezone":"^0.5.2","redux":"^3.3.1"},"devDependencies":{"babel-cli":"^6.6.5","babel-eslint":"^5.0.0","babel-loader":"^6.2.4","babel-preset-es2015":"^6.6.0","babel-preset-react":"^6.5.0","babel-preset-stage-0":"^6.5.0","chai":"^3.5.0","clean-webpack-plugin":"^0.1.8","eslint":"~2.2.0","html-webpack-plugin":"^2.14.0","json-loader":"^0.5.4","lodash":"^4.6.1","mocha":"^2.4.5","react":"^0.14.7","react-dom":"^0.14.7","react-redux":"^4.4.1","rimraf":"^2.5.2","watch":"^0.17.1","webpack":"^1.12.14"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"f744fc887315a10aee5f0a66075e80afbb145ba6","_id":"redux-token-api-middleware@0.8.3","_shasum":"460515dd6b72f10d52fae66821c425330a7e4b29","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"shasum":"460515dd6b72f10d52fae66821c425330a7e4b29","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.8.3.tgz","integrity":"sha512-98eUef1VaF8ci/00nfNFwIQhmi7wrJ7o2jcJrXtVOb6XwxRUpFbKjHpz1/v9s6BBVLd6cQsX0Gnw7kSo9P5ujQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHyEY6Z93JPnKpYz6KcUkp3o8eihCP/hC2YBeLgyyCxqAiEAo5m8d0ygnFrVya0XEB00RoJSTvEdHPdZ3XScHmoYgc4="}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/redux-token-api-middleware-0.8.3.tgz_1494881253837_0.8527925265952945"},"directories":{}},"0.8.4":{"name":"redux-token-api-middleware","version":"0.8.4","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive ./test"},"babel":{"presets":["es2015"]},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"edwardjstone@yahoo.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"isomorphic-fetch":"^2.2.1","jsonwebtoken":"^5.7.0","lodash.isarraylikeobject":"^4.2.0","lodash.isfunction":"^3.0.8","lodash.isundefined":"^3.0.1","lodash.map":"^4.6.0","lodash.omitby":"^4.6.0","lodash.startswith":"^4.2.1","moment":"^2.12.0","moment-timezone":"^0.5.2","redux":"^3.3.1"},"devDependencies":{"babel-cli":"^6.6.5","babel-eslint":"^5.0.0","babel-loader":"^6.2.4","babel-preset-es2015":"^6.6.0","babel-preset-react":"^6.5.0","babel-preset-stage-0":"^6.5.0","chai":"^3.5.0","clean-webpack-plugin":"^0.1.8","eslint":"~2.2.0","html-webpack-plugin":"^2.14.0","json-loader":"^0.5.4","lodash":"^4.6.1","mocha":"^2.4.5","react":"^0.14.7","react-dom":"^0.14.7","react-redux":"^4.4.1","rimraf":"^2.5.2","watch":"^0.17.1","webpack":"^1.12.14"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"7faf0f11159f6631d0be82097ee265a6a67f27bb","_id":"redux-token-api-middleware@0.8.4","_shasum":"c273c9e6fe83044c6f6dfc2a28f2c6091cfecb8a","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"shasum":"c273c9e6fe83044c6f6dfc2a28f2c6091cfecb8a","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.8.4.tgz","integrity":"sha512-RG74aiwYHE1t6vmyklUUrzLnceRcDpOMB796W1N25V5vklW+/f9DiPJEngk2rsor6+UfjSmMrmRo7DQ1iAa0tA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHQm/pFtFT73qNqrorKfogmJwrQnW3voE79L/MS3gPrEAiAwlnf18Ko8vYVJFgajlqyQRzJjRE0xhnC/bXrPB2FGiQ=="}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-token-api-middleware-0.8.4.tgz_1497011431688_0.6490699721034616"},"directories":{}},"0.8.5":{"name":"redux-token-api-middleware","version":"0.8.5","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive ./test"},"babel":{"presets":["es2015"]},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"edwardjstone@yahoo.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"cross-fetch":"^2.2.2","jwt-decode":"^2.2.0","lodash.isarraylikeobject":"^4.2.0","lodash.isfunction":"^3.0.8","lodash.isundefined":"^3.0.1","lodash.map":"^4.6.0","lodash.omitby":"^4.6.0","lodash.startswith":"^4.2.1","moment":"^2.12.0","moment-timezone":"^0.5.2","redux":"^3.3.1"},"devDependencies":{"babel-cli":"^6.6.5","babel-eslint":"^5.0.0","babel-loader":"^6.2.4","babel-preset-es2015":"^6.6.0","babel-preset-react":"^6.5.0","babel-preset-stage-0":"^6.5.0","chai":"^3.5.0","clean-webpack-plugin":"^0.1.8","eslint":"~2.2.0","html-webpack-plugin":"^2.14.0","jsonwebtoken":"^8.3.0","json-loader":"^0.5.4","lodash":"^4.6.1","mocha":"^2.4.5","react":"^0.14.7","react-dom":"^0.14.7","react-redux":"^4.4.1","rimraf":"^2.5.2","watch":"^0.17.1","webpack":"^1.12.14"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"be143f9d2406d0179a30a7f63ff504a3e6771009","_id":"redux-token-api-middleware@0.8.5","_shasum":"2229510273339d81ab5da8f0b671278f4a846748","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"shasum":"2229510273339d81ab5da8f0b671278f4a846748","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.8.5.tgz","integrity":"sha512-3TEWe/pmYvKOEWdB6g+Tsa2ZUzephv7qFlxf+d0Yw0eOp/suDfXkrGnasmCKfV5Erqa7T8h/QejLl7zeEEQ98Q==","fileCount":11,"unpackedSize":248828,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbykvKCRA9TVsSAnZWagAA9jQQAJFYaBY+aZtUeBsmEJzG\nBgDO0iQVMRDIkQR+4Z/unVGakGg+fNMVqEaj0hdveXj2eMStPEIzHU5QuEyU\nfmg0V/wuglRHjUHd0kmmHr++nAgACJeHNVNlrD7cfPUp5sw+3xowfcnaKz3a\nrPlzlndOaWLv8x4OvjkOiJ/7+4xC+HBgVwctAZBgpP5xR70iR/hP3/ww1efU\nAeoOI8ml4rtwVUBYWLc/dhTeaI+8r7Q5H5kOV3dnU+/SzcrK0ASvMAvygT9W\n8is0pEsr5ehKUnruPznc0+3gXNdLk8MbbUfSs+jVfMCf1UsBzHDFLuQ0tuWN\neAo1wBwWP9EFdYeB1UYMVJegYxpqVwsidw/Zgz3C7felcdksjn+VILZRXZbF\nC9BRlbSw7t6j/gr0K9TE6NjnzRIjnsdCQEOl6n4HwcvpL1y63ANVga2EWclw\nvx0ZKF0pFrW2a7l7lG/2uQDIVnuSo0gxznZmDzvd8vKFwK2CJTIoSaBQ5ndY\nZvG+EcjoMMTc/8e0VAkBUuV+KoUFEmcRz91TYpiDmiEXWSBuU+qFkkXLgUVe\n5THYRG/42Ocuvdrb4Y5COZBpsBoKF7OFsfdcKyVWgsArL7WwMBCtk5OcVT91\nEdHgWi+Os5rFMCee+cAXSyiNxz5IKZrh+3CbKyUiRQtetiOcrQJsyMiQzuNw\nH9s8\r\n=EIw8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIApVWnJZ38aY5LF47Okj5v7RcOZNLjze/ocF57pShRUUAiEA1ilNltAHu07vuwWVFz1FnbpN6HXlnj9HYDwFT2uC9Lg="}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-token-api-middleware_0.8.5_1539984330460_0.861971985496218"},"_hasShrinkwrap":false},"0.8.6":{"name":"redux-token-api-middleware","version":"0.8.6","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive ./test"},"babel":{"presets":["es2015"]},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"edwardjstone@yahoo.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"cross-fetch":"^2.2.2","jwt-decode":"^2.2.0","lodash.isarraylikeobject":"^4.2.0","lodash.isfunction":"^3.0.8","lodash.isundefined":"^3.0.1","lodash.map":"^4.6.0","lodash.omitby":"^4.6.0","lodash.startswith":"^4.2.1","moment":"^2.12.0","moment-timezone":"^0.5.2","redux":"^3.3.1"},"devDependencies":{"babel-cli":"^6.6.5","babel-eslint":"^5.0.0","babel-loader":"^6.2.4","babel-preset-es2015":"^6.6.0","babel-preset-react":"^6.5.0","babel-preset-stage-0":"^6.5.0","chai":"^3.5.0","clean-webpack-plugin":"^0.1.8","eslint":"~2.2.0","html-webpack-plugin":"^2.14.0","json-loader":"^0.5.4","jsonwebtoken":"^8.3.0","lodash":"^4.6.1","mocha":"^5.2.0","react":"^0.14.7","react-dom":"^0.14.7","react-redux":"^4.4.1","rimraf":"^2.5.2","watch":"^0.17.1","webpack":"^1.12.14"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"5af3b63b27b50386dfca6ee66f8b51fef5361a6e","_id":"redux-token-api-middleware@0.8.6","_shasum":"2310318925530e6d00d9803e849f96bad0b9191e","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"shasum":"2310318925530e6d00d9803e849f96bad0b9191e","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.8.6.tgz","integrity":"sha512-0HpbkBRqPzlMs5uJbScrh59bBqyk2/JWjekjvnTYrjyNgmmd+4NlXioUWH6ad8WGlSqOt8KDEJjZGGXZjkwG4A==","fileCount":11,"unpackedSize":248925,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb0hekCRA9TVsSAnZWagAAvHIP/2ZvbNL5VQea5rGkUuBf\nvRo4GrY7FsMxeNUJd7l2bjKW6NgIMvOSCOl6KOvyFFWzs4WAfDPklltgpQi8\n0amlhtcTOPUT39tWzseJExj8NGWdxcfQPrjtw+46ZOihle9CvkzHgVwiAboY\nUh1AY1/y2uVfnHDozJiChBQr0KnyM3o+kvh+UervL3NsHyidTHz8t8sUW+12\nkCl1CBWAtmKHF6IljwW5/1ZfCnZtcNWADdg0AhtRxtkWGr+9YiI2SdC+p+dW\nulj2ulpWRlipfuLoqoTIJdCAkA0z5qiEypB6bAfsfqXMY2FFQvtWInD2iZNE\nLoCMvf4oivdBN+L5ltuJU/rbmuqoIJBiU8Tfs3kDgNHexJ1tJdCKxaKqx//x\n2LZOZ7q+3p2L1eDl7h0L6JiDNI93qSbxfNdnZtTHpKRZWNvxYfHspt2GjvMu\nnH45tVbXhbK4G/ZIxb7uBi76di6cPb5UDw08HkHbvVWsZkS9j6s4WAZd3U27\nAcwAyQeUqtJcLt7r1lwMk8cmXuUJdt4LrjPCXBbnnjrdoztT1n/XvwtOlWtG\nnpUFbHaHyCV1pPVwF3w4LA3L9QUxek9Z6MbYcz4d7RhzwjIztZrgn527EaKm\nCSt0I8YRkJwn/0W0q+8OWIHY68ur49uxAxIguLFF9y5g81BMcjsncdmQO36u\niuTs\r\n=1gy9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAWX6eX+SxUCp6o9s1ccOUGRKxNbupHc/rnJTaM3u8HhAiEA9lAZ10WDVcIxC/5ftmFlzgngn6y5jCZgym+QUOlFhhE="}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-token-api-middleware_0.8.6_1540495267684_0.19164462911054092"},"_hasShrinkwrap":false},"0.8.7":{"name":"redux-token-api-middleware","version":"0.8.7","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive ./test"},"babel":{"presets":["es2015"]},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"edwardjstone@yahoo.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"cross-fetch":"^2.2.2","jwt-decode":"^2.2.0","lodash.isarraylikeobject":"^4.2.0","lodash.isfunction":"^3.0.8","lodash.isundefined":"^3.0.1","lodash.map":"^4.6.0","lodash.omitby":"^4.6.0","lodash.startswith":"^4.2.1","moment":"^2.12.0","moment-timezone":"^0.5.2","redux":"^3.3.1"},"devDependencies":{"babel-cli":"^6.6.5","babel-eslint":"^5.0.0","babel-loader":"^6.2.4","babel-preset-es2015":"^6.6.0","babel-preset-react":"^6.5.0","babel-preset-stage-0":"^6.5.0","chai":"^3.5.0","clean-webpack-plugin":"^0.1.8","eslint":"~2.2.0","html-webpack-plugin":"^2.14.0","json-loader":"^0.5.4","jsonwebtoken":"^8.3.0","lodash":"^4.6.1","mocha":"^5.2.0","react":"^0.14.7","react-dom":"^0.14.7","react-redux":"^4.4.1","rimraf":"^2.5.2","watch":"^0.17.1","webpack":"^1.12.14"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"caf65027ad23f8f11465d56edb9899be55b3f8ff","_id":"redux-token-api-middleware@0.8.7","_shasum":"c62b0956dc8e5c5f872df1053e969333f0ded0d6","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"shasum":"c62b0956dc8e5c5f872df1053e969333f0ded0d6","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.8.7.tgz","integrity":"sha512-zVF2DENwXFG9ci7JVUbX0DyBvA5UEgggxNtdT0cO6pkjPO7y4fY+SH4l1jk+tKJoMOYte4clLIuBBqvSSyWjQQ==","fileCount":11,"unpackedSize":249199,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb3M68CRA9TVsSAnZWagAAoc0QAIa6nDxS3X1rnmFP78Wc\n8GBDDCa7eiOEBQhutMb06aogYpgYFcvfhD+e73ZgwYlCavulBoMY/ORxl1fN\naIm+wQfsO27c1HQUZPql9P7chVs6uiLHYT8jOMkWEyjs0+UyRvMUffoNrLnk\nOGp0W+kwzp82i/g7B9+ZgXMEDgZ8t4uhAsYq0pGW6LtYy8HLQ3lrZdURbUbo\n7t4dFvJKwscdozFJXgOjcaICLsgFxxL9KJpjlXHC2fQdMRJYoQYTcDcnZ119\nZIPR0AjUwkIEA9xnmoPdJ9MReJMgtcH94J36wHISn41vuntDb6zFQ4UXVVJd\nECVkuoQljDNZwjg2PPyhjfd3DFcqWj7Rfy7kaLGVUGFnihEnRkDex6RUFEQm\njlvb584jijHylNSvv0p5+VR5nL0UWW4KtiVAtRnLyWf+c5cxNX6sY3y2q/Bf\nytyezW3tPX6suoctcmaVr0PqdSfJtGtJAGVFwtZhAh2rO2/jgOj50B+iff4S\n/tnXrOpCmc3j5AqkViBUzm2YSRh71M6E0ieU1k55I+75o+v03z6FQJoJY+TZ\n73AXWNIxRB+YOaR6n87OUwQRc+OE4wNLHssumuAczUvWM7Prrh1o2qj/ty9U\nIbdbl6bs3je2PvJVTvpJ5ArIx2FAW7uGCJOluWQkuN8uqKYKf4hvmilU6Tbx\nvS+G\r\n=SHC5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHM0X+bba48j6/QtC217XXXJyWyT735oKgY8rsc/F3HgAiB9rXCmTTGwqNJBT+uCvnAmf59R9U5QG8jDkXKllaexuw=="}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-token-api-middleware_0.8.7_1541197500105_0.08946535875647599"},"_hasShrinkwrap":false},"0.8.8":{"name":"redux-token-api-middleware","version":"0.8.8","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive ./test"},"babel":{"presets":["es2015"]},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"edwardjstone@yahoo.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"cross-fetch":"^2.2.2","jwt-decode":"^2.2.0","lodash.isarraylikeobject":"^4.2.0","lodash.isfunction":"^3.0.8","lodash.isundefined":"^3.0.1","lodash.map":"^4.6.0","lodash.omitby":"^4.6.0","lodash.startswith":"^4.2.1","moment":"^2.12.0","moment-timezone":"^0.5.2","redux":"^3.3.1"},"devDependencies":{"babel-cli":"^6.6.5","babel-eslint":"^5.0.0","babel-loader":"^6.2.4","babel-preset-es2015":"^6.6.0","babel-preset-react":"^6.5.0","babel-preset-stage-0":"^6.5.0","chai":"^3.5.0","clean-webpack-plugin":"^0.1.8","eslint":"~2.2.0","html-webpack-plugin":"^2.14.0","json-loader":"^0.5.4","jsonwebtoken":"^8.3.0","lodash":"^4.6.1","mocha":"^5.2.0","react":"^0.14.7","react-dom":"^0.14.7","react-redux":"^4.4.1","rimraf":"^2.5.2","watch":"^0.17.1","webpack":"^1.12.14"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"1582de2fd76380b3e7d992b21db88eabbd585d54","_id":"redux-token-api-middleware@0.8.8","_shasum":"757dfbc93843d12c6f0a09fb8972320c81545263","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"shasum":"757dfbc93843d12c6f0a09fb8972320c81545263","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.8.8.tgz","integrity":"sha512-FCxHhQvEDiorXoEtMDTcASLQnEkDNUyD9Vzw+dcPbSMndhnaM/SGhlAJ+asTLM828Xx1rTT0iX1Mkovkdp1wrg==","fileCount":11,"unpackedSize":250434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb61hRCRA9TVsSAnZWagAAT4UP/25rYxQzl/vQK6NsuVSq\nvptaY949nKsfpwlYQycKH50ANfLKm7Cc/ymy7NEmsyXSn9YALywtV9a+IbMb\n0ADDDhQulP0r298eAIljhOdlgUsDMesZSx3g00HekGWgwehBm9A7ouZfaMA8\nPFKFIakIDbWiZ6Q7XxVs/IAZCjybqxHorf2GCfKHUV9W3th7NE/P7PC68RyA\nD5r7GA+s6Ly4k8dqwyOHunEkdV2Lqrv4fM4gwb9plZbBH3EKeKWR6wHaNBWH\nDUj8HuxxlGVUgTBno5sDndOsMpAkqTbR6KLTRHKWmpbjxUsGdRdbs/Jv07CN\nJyJmD/6kDdWcCeJTuA5sXjk1Y/vfiKf8Dqq0ifvg33HzLRKgesORY6i2KAmv\n1PSpzhRKkxFh0k4ip3rDiTD5ODw6GX5hCs2xBfnmfAHJltP2Qon9r1KF63F5\naScE4BlsHoomGI7lZe8ttzcpr+iF9422mO5y9jrFOTpdVxbtSZQUrSQ/O33K\nBqiZ7Mm5jYk4NQ9XmBn4glrJvfWfiPQeiDDioeILiJAqWu5tn85aNzwASiRg\nC7k/RUf1rsGRzko+iKD99HrVJIWTvYSTWPbln5mLFTry/RP5wtnHUPQGn0tB\nL1j+zSo1gMvXKd9gowxVepcq4Nrfu/oOLFk91bmgFRGLxnfoRth7cDL31YWZ\nO1D1\r\n=d2KM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGMlFUHMx0Z0pFzhVxVvcPa0ajqiALnZlMlkrRusS9iQAiEAiuXWq8HAFMOsMGu1QIaOcvFFq8a6syIb8YWhmkl8QlA="}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-token-api-middleware_0.8.8_1542150224876_0.15440580157480666"},"_hasShrinkwrap":false},"0.8.9":{"name":"redux-token-api-middleware","version":"0.8.9","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --compilers js:babel-core/register --recursive ./test"},"babel":{"presets":["es2015"]},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"edwardjstone@yahoo.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"cross-fetch":"^2.2.2","jwt-decode":"^2.2.0","lodash.isarraylikeobject":"^4.2.0","lodash.isfunction":"^3.0.8","lodash.isundefined":"^3.0.1","lodash.map":"^4.6.0","lodash.omitby":"^4.6.0","lodash.startswith":"^4.2.1","moment":"^2.12.0","moment-timezone":"^0.5.2","redux":"^3.3.1"},"devDependencies":{"babel-cli":"^6.6.5","babel-eslint":"^5.0.0","babel-loader":"^6.2.4","babel-preset-es2015":"^6.6.0","babel-preset-react":"^6.5.0","babel-preset-stage-0":"^6.5.0","chai":"^3.5.0","clean-webpack-plugin":"^0.1.8","eslint":"~2.2.0","html-webpack-plugin":"^2.14.0","json-loader":"^0.5.4","jsonwebtoken":"^8.3.0","lodash":"^4.6.1","mocha":"^5.2.0","react":"^0.14.7","react-dom":"^0.14.7","react-redux":"^4.4.1","rimraf":"^2.5.2","watch":"^0.17.1","webpack":"^1.12.14"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"9d04d42d748182d4196b4ea7973ba6f7899dd4c1","_id":"redux-token-api-middleware@0.8.9","_shasum":"31600b10bb3972bb3a775d732fe9f6c6694cec4a","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"shasum":"31600b10bb3972bb3a775d732fe9f6c6694cec4a","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.8.9.tgz","integrity":"sha512-GpOikSHfNnqWRnm/mf3C3v9yrti5WoycEDlEMkRS3qOOJ6lHUnk+Wd8d+q/axhfDFtalv8+evpp/qI6+cTd0ng==","fileCount":11,"unpackedSize":250619,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb/huaCRA9TVsSAnZWagAAuPsQAKEY02ojl0P9XpllV++B\nSykZ10KEXQtTxu+AnbZd3UU0SDCcwJoY+xWD0Lp+dEIs0Zq4V6sZvlBjEAIN\nwrCrgHbpQuRSLyF6dLnT6o1O1KYPZT0gLakbzXlkzd6/9JdomEfpGueWdqxQ\nfmzJ4rWRDJNdED8qM8VvMtkzUNhRMNH400J50b0g+lqoL5bJbViqv/4mTThg\nzvLr4VJ+6WV0AKy9XvmVMDHO4WqwuA6+sVdbwiZeL7sNUwP/5Qt1pqdXD0mc\n2S+LTxVS8F6Ru59Egpz5maAHcmfKn163cCXQqQFD5M2/LyueAnq7Nj0as6zS\nOXUaxCQQvr8slul8n/Q/YiNtltzRtlitcxoL2xKkW5qqdfYqAEOuT/xTDLaJ\ntZPENNzR0zhycLoEDJWh4NVtCP/slDhP6gTvt3BU4W37R8qFESiReB0tcXHw\ncDzIlhQD7xsy1NzTDXH6Vr8NMPelVtFd0CfEyTmBbnOdF7OmX2Mlv6MulUQK\na5yAOLmIY0wZ3rxMEaD5xtYEr4S4xb8uPrIc+GLzGjI6dRMR6vBSMNISBuzX\n0wEiFgWCynj5B03IdQWv5E3MovT6I9Rn5y8/sot5ALXkTUZelcyoOFA4jAuk\nwkVE1j+fbTHd5Ss3iMVlJOliF2vucOW4WzyK47+sOoz+0aJ8WYPR0HsEm0fc\nKdAJ\r\n=js9t\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDjGmMxW+oiQqM/YfDgXE+6zzbwc4x0ISoo5rsHWwx5DQIhAMBmfS2aBUZB8YGoYHT12f732PJNuRv7SgD+c+Gy7qcB"}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-token-api-middleware_0.8.9_1543379864740_0.7369710616707055"},"_hasShrinkwrap":false},"0.8.10-0":{"name":"redux-token-api-middleware","version":"0.8.10-0","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --require @babel/register --require @babel/polyfill --recursive ./test"},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"ed@autotelic.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"@babel/runtime":"^7.2.0","cross-fetch":"^2.2.2","jwt-decode":"^2.2.0","lodash.isarraylikeobject":"^4.2.0","lodash.isfunction":"^3.0.8","lodash.isundefined":"^3.0.1","lodash.map":"^4.6.0","lodash.omitby":"^4.6.0","lodash.startswith":"^4.2.1","moment":"^2.12.0","moment-timezone":"^0.5.2","redux":"^3.3.1"},"devDependencies":{"@babel/cli":"^7.2.0","@babel/core":"^7.2.0","@babel/plugin-transform-runtime":"^7.2.0","@babel/polyfill":"^7.0.0","@babel/preset-env":"^7.2.0","@babel/register":"^7.0.0","chai":"^4.2.0","jsonwebtoken":"^8.4.0","mocha":"^5.2.0","react":"^16.6.3","react-hot-loader":"^4.3.12","rimraf":"^2.6.2","sinon":"^7.2.0","watch":"^1.0.2"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"readme":"# redux-token-api-middleware\n\n**Alpha software - currently under heavy development**\n\nA redux middleware for making calls to APIs with token-based auth, automatically\nrequesting a new token if needed. Actions can be calls to single or multiple API\nendpoints.\n\n## Installation\n\n\t$ npm install redux-token-api-middleware\n\n## Usage\n\n### API actions\n\nActions that will be intercepted by the middleware are identified by the symbol\n`CALL_TOKEN_API`, and follow the [Flux Standard Action](https://github.com/acdlite/flux-standard-action) pattern, however they must have a payload and have at least an `endpoint` in the payload.\n\n#### Examples\n\n```javascript\n\nimport { CALL_TOKEN_API } from 'redux-token-api-middleware'\n\nexport const BASIC_GET_ACTION = 'BASIC_GET_ACTION'\nexport const BASIC_POST_ACTION = 'BASIC_POST_ACTION'\n\n// basic GET\n// method defaults to GET if not provided\nconst basicGetAction = () => ({\n  [CALL_TOKEN_API]: {\n    type: BASIC_GET_ACTION,\n    payload: {\n      endpoint: 'http://localhost/foo'\n    }\n  }\n})\n\n// basic POST\nconst basicPostAction = () => ({\n  [CALL_TOKEN_API]: {\n    type: BASIC_POST_ACTION,\n    payload: {\n      endpoint: 'http://localhost/bar',\n      method: 'POST'\n    }\n  }\n})\n```\n\n### Setup\n\n#### `main.js`\n\n```javascript\nimport { createTokenApiMiddleware } from 'redux-token-api-middleware'\nimport { createStore, applyMiddleware } from 'redux'\n\nimport reducer from './reducers'\n\n// example refresh token action\nconst refreshAction = (token) => ({\n  [CALL_TOKEN_API]: {\n    type: 'REFRESH_TOKEN',\n    endpoint: 'http://localhost/token',\n    method: 'POST',\n    body: JSON.stringify(token)\n  }\n})\n\nYou will need to provide a `retrieveRefreshToken` method to the config that will\nreturn the refresh token that is used to obtain a new access token.\n\nconst retrieveRefreshToken = (key = 'RefreshTokenStorageKey') => {\n  // This return value is passed to `refreshAction`\n  return localStorage.getItem(key);\n};\n\nconst config = {\n  refreshAction,\n  retrieveRefreshToken,\n};\n\nconst apiTokenMiddleware = createTokenApiMiddleware(config)\n\nconst store = createStore(\n  reducer,\n  applyMiddleware(apiTokenMiddleware)\n)\n```\n\n## API\n\n#### `createTokenApiMiddleware(config)`\n\nCreates a Redux middleware to handle API objects.\n\nIn the config, you must define at least a `refreshAction` method and a `retrieveRefreshToken`\nmethod, which is used by the middleware to attempt to get a fresh token. This should be an API\naction itself.\n\nOther methods can be passed in via config, but have defaults:\n\n```javascript\n// defaults shown\nconst config = {\n  defaultHeaders: { 'Content-Type': 'application/json' },\n  retrieveRefreshToken: () => {}; // To be implemented by the user for refreshing tokens.\n  tokenStorageKey: 'reduxMiddlewareAuthToken',\n  minTokenLifespan: 300, // seconds (min remaining lifespan to indicate new token should be requested)\n  storeToken: function storeToken(key, response) {\n    let token = response.token;\n    localStorage.setItem(key, JSON.stringify(token));\n    return token;\n  },\n  retrieveToken: function retrieveToken(key) {\n    let storedValue = localStorage.getItem(key);\n    if (!storedValue) {\n      return null;\n    }\n    try {\n      return JSON.parse(storedValue);\n    }\n    catch (e) {\n      if (e instanceof SyntaxError) {\n        return null;\n      }\n      throw e;\n    }\n  },\n  checkTokenFreshness: function checkTokenFreshness(token) {\n    let tokenPayload = jwt_decode(token);\n    let expiry = moment.unix(tokenPayload.exp);\n    return expiry.diff(moment(), 'seconds') > MIN_TOKEN_LIFESPAN;\n  },\n  shouldRequestNewToken: function shouldRequestNewToken() {\n    const token = retrieveToken();\n    return token\n      ? checkTokenFreshness(token)\n      : false;\n  },\n  addTokenToRequest: function defaultAddTokenToRequest(headers, endpoint, body, token) {\n    return {\n      headers: Object.assign({\n        Authorization: `JWT ${token}`\n      }, headers),\n      endpoint,\n      body\n    }\n  }\n}\n```\n\n_Note_: `retrieveRefreshToken`, `storeToken` and `retrieveToken` methods may also return\npromises that the middleware will resolve.\n","readmeFilename":"README.md","gitHead":"e7950315acc1cf9f61070d4e6957d9c3b60c1516","_id":"redux-token-api-middleware@0.8.10-0","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"integrity":"sha512-Rq9s/6jnQ1T2Z40NocORCT+clPlCghzLKtAakRik6RsXvwlp5hogKGnMTNp/goD3Cfgthvie5Cai4Lenz+ltKA==","shasum":"f93f871e2deb32e253d88cc8f7d600aa099d05e1","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.8.10-0.tgz","fileCount":10,"unpackedSize":37826,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcDwuVCRA9TVsSAnZWagAA0hIP/j4wptKvNE6pmSLE+YQG\nYuqdmO69fCNP9rWLIuR8fotf/jN5hiANed8qYXsdTFSUx+3iU3zfcMYjiVQ3\n5PGN0IMI7zmpJtr/uOXTJkLtnYUZ3vkXULkSMfvdaCmU3THpQw1OYpKnOQhh\nbRkYPQmqsgc4HgOv4dbE8+kwa9pTXo/ril5Gg3N5NdKPiGHQuQZZndugiAvG\nUZz2bNCMLw6SJf6hyAMZLg/981gvuT5b8+nNXSf6tQDueh/aqbjI1RPAzRc3\nbZ+uBiR07zQRmm2GqrW+cfRrzVj2WsUu5WWVYS8HVaoD42GfjNwgDSHyUf/u\nphTxbKSZs0gq81BZd8pd2PGdrCzXtlrmPQcX6uIzV0NojRlAxXc/H6eJPM8l\nT/oO524a2ocdJ8ErChdK4Qq0RalIPoHmKyog/S0gUD7t0zNO7+e325c0Q1NZ\necQspVaYRj1Uy99USEkTAQtfhQunHfdvV2/O1UFmp4G7T9ckhE48pXoMd1bw\nBEVK0qpPA4Azdzoo3LRbgh0xmWiLJq9l0tTc6XwDlT0urBQ1FJKHH+x8J/ix\nEdD2jf+cM0PUUI4g8E3tQODADJPUBVHaunCKzcDLSE/IPL7SPmMI3bX0siK1\npLf0wiigqw+9th4J3frQ250Ig+EwWJ/83ekeVF3ZaqfzSbdjFP46l1MOstiK\n1xEK\r\n=HSNm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDM2G3nWCPqJt501mihMPaROhwdHdklU6AUkMjwK2OfDwIgWA4X2y+1MYnJ22N+VNtIgGNuMcBoDhzjFY1EZ3JpBGE="}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-token-api-middleware_0.8.10-0_1544489877251_0.004182692467246341"},"_hasShrinkwrap":false},"0.8.10-1":{"name":"redux-token-api-middleware","version":"0.8.10-1","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --require @babel/register --require @babel/polyfill --recursive ./test"},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"ed@autotelic.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"@babel/runtime":"^7.2.0","cross-fetch":"^2.2.2","jwt-decode":"^2.2.0","lodash.isarraylikeobject":"^4.2.0","lodash.isfunction":"^3.0.8","lodash.isundefined":"^3.0.1","lodash.map":"^4.6.0","lodash.omitby":"^4.6.0","lodash.startswith":"^4.2.1","moment":"^2.12.0","moment-timezone":"^0.5.2","redux":"^3.3.1"},"devDependencies":{"@babel/cli":"^7.2.0","@babel/core":"^7.2.0","@babel/plugin-transform-runtime":"^7.2.0","@babel/polyfill":"^7.0.0","@babel/preset-env":"^7.2.0","@babel/register":"^7.0.0","chai":"^4.2.0","jsonwebtoken":"^8.4.0","mocha":"^5.2.0","react":"^16.6.3","react-hot-loader":"^4.3.12","rimraf":"^2.6.2","sinon":"^7.2.0","watch":"^1.0.2"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"readme":"# redux-token-api-middleware\n\n**Alpha software - currently under heavy development**\n\nA redux middleware for making calls to APIs with token-based auth, automatically\nrequesting a new token if needed. Actions can be calls to single or multiple API\nendpoints.\n\n## Installation\n\n\t$ npm install redux-token-api-middleware\n\n## Usage\n\n### API actions\n\nActions that will be intercepted by the middleware are identified by the symbol\n`CALL_TOKEN_API`, and follow the [Flux Standard Action](https://github.com/acdlite/flux-standard-action) pattern, however they must have a payload and have at least an `endpoint` in the payload.\n\n#### Examples\n\n```javascript\n\nimport { CALL_TOKEN_API } from 'redux-token-api-middleware'\n\nexport const BASIC_GET_ACTION = 'BASIC_GET_ACTION'\nexport const BASIC_POST_ACTION = 'BASIC_POST_ACTION'\n\n// basic GET\n// method defaults to GET if not provided\nconst basicGetAction = () => ({\n  [CALL_TOKEN_API]: {\n    type: BASIC_GET_ACTION,\n    payload: {\n      endpoint: 'http://localhost/foo'\n    }\n  }\n})\n\n// basic POST\nconst basicPostAction = () => ({\n  [CALL_TOKEN_API]: {\n    type: BASIC_POST_ACTION,\n    payload: {\n      endpoint: 'http://localhost/bar',\n      method: 'POST'\n    }\n  }\n})\n```\n\n### Setup\n\n#### `main.js`\n\n```javascript\nimport { createTokenApiMiddleware } from 'redux-token-api-middleware'\nimport { createStore, applyMiddleware } from 'redux'\n\nimport reducer from './reducers'\n\n// example refresh token action\nconst refreshAction = (token) => ({\n  [CALL_TOKEN_API]: {\n    type: 'REFRESH_TOKEN',\n    endpoint: 'http://localhost/token',\n    method: 'POST',\n    body: JSON.stringify(token)\n  }\n})\n\nYou will need to provide a `retrieveRefreshToken` method to the config that will\nreturn the refresh token that is used to obtain a new access token.\n\nconst retrieveRefreshToken = (key = 'RefreshTokenStorageKey') => {\n  // This return value is passed to `refreshAction`\n  return localStorage.getItem(key);\n};\n\nconst config = {\n  refreshAction,\n  retrieveRefreshToken,\n};\n\nconst apiTokenMiddleware = createTokenApiMiddleware(config)\n\nconst store = createStore(\n  reducer,\n  applyMiddleware(apiTokenMiddleware)\n)\n```\n\n## API\n\n#### `createTokenApiMiddleware(config)`\n\nCreates a Redux middleware to handle API objects.\n\nIn the config, you must define at least a `refreshAction` method and a `retrieveRefreshToken`\nmethod, which is used by the middleware to attempt to get a fresh token. This should be an API\naction itself.\n\nOther methods can be passed in via config, but have defaults:\n\n```javascript\n// defaults shown\nconst config = {\n  defaultHeaders: { 'Content-Type': 'application/json' },\n  retrieveRefreshToken: () => {}; // To be implemented by the user for refreshing tokens.\n  tokenStorageKey: 'reduxMiddlewareAuthToken',\n  minTokenLifespan: 300, // seconds (min remaining lifespan to indicate new token should be requested)\n  storeToken: function storeToken(key, response) {\n    let token = response.token;\n    localStorage.setItem(key, JSON.stringify(token));\n    return token;\n  },\n  retrieveToken: function retrieveToken(key) {\n    let storedValue = localStorage.getItem(key);\n    if (!storedValue) {\n      return null;\n    }\n    try {\n      return JSON.parse(storedValue);\n    }\n    catch (e) {\n      if (e instanceof SyntaxError) {\n        return null;\n      }\n      throw e;\n    }\n  },\n  checkTokenFreshness: function checkTokenFreshness(token) {\n    let tokenPayload = jwt_decode(token);\n    let expiry = moment.unix(tokenPayload.exp);\n    return expiry.diff(moment(), 'seconds') > MIN_TOKEN_LIFESPAN;\n  },\n  shouldRequestNewToken: function shouldRequestNewToken() {\n    const token = retrieveToken();\n    return token\n      ? checkTokenFreshness(token)\n      : false;\n  },\n  addTokenToRequest: function defaultAddTokenToRequest(headers, endpoint, body, token) {\n    return {\n      headers: Object.assign({\n        Authorization: `JWT ${token}`\n      }, headers),\n      endpoint,\n      body\n    }\n  }\n}\n```\n\n_Note_: `retrieveRefreshToken`, `storeToken` and `retrieveToken` methods may also return\npromises that the middleware will resolve.\n","readmeFilename":"README.md","gitHead":"80d3970ffbe2f16ed5a3408a64d96e8f0a40b333","_id":"redux-token-api-middleware@0.8.10-1","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"integrity":"sha512-Zv97ecw2hzCd3MC+tESdlcdsI95DIy/qrajO3Nhoo/HlEBXQ+O1xwt7i7KjrdeLm4p91ow9gnKTNgeMeySQUGw==","shasum":"dcd7b4711e4b22b4d3eb8af6fa05eab91e9c17b4","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.8.10-1.tgz","fileCount":10,"unpackedSize":36872,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcDxflCRA9TVsSAnZWagAAQS4P/1+2AaosxWXa9MJsa5ED\nb19zV1/8n9DwBr1rSEfrzKMPKlO6bX+Yr5pwkNFO/QNLyMJAsBZ7vh4ItHfx\nEoYgLYD5J2QMWwBOhg3LeBb9RMfKLOmnr7pKuFsNePukXm+zWWVp4VfpU8Ug\nPbY/d/efQr6qLl1Likk7N3uQhz5jXWOF3FLxFNmIUfVo/A3QNQDIfIhAnPto\n3wXYfzNU4iPNFruohUSCA4nTRpIDrheANChoR+k1f32Yq2UdRzfqNUBU+NDO\ncH/VqWbpN8UM4XRMTvJX6tLsOjsqNKEyuH+P3cAIBjG1S8Rwxd6FtIdvWb5B\nLMyZ3w7ewaQai6O/RGnnSD4vIkvtQei421ZWHAk1DicWjehWIFhJQdT1lTO5\nMrq15lvpCE4ckDxdhHaCj28Ye6Gb0Zg0dirWMsY658CAj0aqj1kER/U3gFZk\nwoAJMl1Ac1AQzSaBqedjZjocJzJMvdDUmVNwD4NnDN25TVOzvwxluAU7LKLh\nFjvzjOBjnD0EziL0jleVtevbldx+xabU4nXnod6g39jL//LmDBlKiXmXydr/\nJft7cVugs8l+HNZiuPj9APzRvOTVk++cJCPSJbBoyO9hyULrbPN6jO72IhwL\nXpaOs/uUj/lCda9DPx4OghWZudtFj/UOVGqRd5NPbs0Pq/90t7lciaD3vF+p\n7Kl8\r\n=4DAi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDuVjugCNe+dm11xA8odbv1MpiXMSo07mhW+VWmML9PPwIhAJukLoG2VvP9s+fsHHd0ihHbL4npVdSBvg0DgmpP2a3K"}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-token-api-middleware_0.8.10-1_1544493029362_0.5210557300577421"},"_hasShrinkwrap":false},"0.9.0":{"name":"redux-token-api-middleware","version":"0.9.0","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --require @babel/register --require @babel/polyfill --recursive ./test"},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"ed@autotelic.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"@babel/runtime":"^7.2.0","cross-fetch":"^2.2.2","jwt-decode":"^2.2.0","lodash.isarraylikeobject":"^4.2.0","lodash.isfunction":"^3.0.8","lodash.isundefined":"^3.0.1","lodash.map":"^4.6.0","lodash.omitby":"^4.6.0","lodash.startswith":"^4.2.1","moment":"^2.12.0","moment-timezone":"^0.5.2","redux":"^3.3.1"},"devDependencies":{"@babel/cli":"^7.2.0","@babel/core":"^7.2.0","@babel/plugin-transform-runtime":"^7.2.0","@babel/polyfill":"^7.0.0","@babel/preset-env":"^7.2.0","@babel/register":"^7.0.0","chai":"^4.2.0","jsonwebtoken":"^8.4.0","mocha":"^5.2.0","react":"^16.6.3","react-hot-loader":"^4.3.12","rimraf":"^2.6.2","sinon":"^7.2.0","watch":"^1.0.2"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"9e800af7b04c93bd9385a334239c42186d939b22","_id":"redux-token-api-middleware@0.9.0","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"integrity":"sha512-QMLlwLUWuWHhFeNpi2fVZjWIOdq5PNmwcr4aPXe5jjAazOWDthZedN2L5NXDEcfc9qXhRiPEBM+a5CKejkEpkg==","shasum":"ef2a46c959ddd9054a868fb89713f167a865db70","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.9.0.tgz","fileCount":10,"unpackedSize":38054,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcPsWiCRA9TVsSAnZWagAAgOoP/iu5fSfJc7YOSuGaUDue\nFvZnKFOCw5H0PDuSVJl89O/vwKthewbG+nkdDEhm336LNxR6rzh1jYGwbFKx\n52cLqAYH0stSKqvTFkkJo/9KiAryXhcaaR08tZk0gwiH0F566Lw0ULRZtMwr\n4Ur0kl2jfQe2Ta2leP4izMzGUc5GbN3tBKdoIB8hVir4cCIW/xs3ISsCxOEu\nP7nMsOgM4gi4wBIfgQxljVIEzggfv6d1qKs522rj9FAZAJZ7kwTzoEkYQr+h\n+g6TYrNsP5yldHNZh3fsJDOKPXLmFPdklYgOz8okdWaDBkwtbGXUzHtP7i0D\nao8pG3bLeNPndFHiwXZTnN5wrO5O5O+JCiUYKez4HOUBzZpEbLnrhqNEbuIl\nqzzT/tatxcexo98a91aX/5IGxHNA6vLklK2RTizw12vZpApA6mwnUoU8g4z2\n1IcNj6ReukucG/OcpTw9DZem2BG6hjIhKybBVLzTm72kRvhGGsGWqxIq5xNh\nX0Bz0C2fQd6Jz5JMhjArs17hJPuRhDjK00H3pThZXGsyKx0/i5XcBew2wT6B\n7Cq7I/zvAvE+tVe4mXBuqsNXA+9r6lnK6cPWsbAYByfid4Ut6VHm8K+dSEdE\nv1mIeRFoWzKTR1TPB8J8zBIO9YANj8khhfUfY1RBa97+Ldj1v+86K/Yk63LZ\nCsT6\r\n=tdQD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEfU6XPwjSW9YV8fF/+rcoFdaKa8rreTFhTx9q7otnt5AiANw++SafmWwBur9DD5gZOrulxQuXaCrTvaNa3XxIjWow=="}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-token-api-middleware_0.9.0_1547617698136_0.5477114337549334"},"_hasShrinkwrap":false},"0.9.1":{"name":"redux-token-api-middleware","version":"0.9.1","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --require @babel/register --require @babel/polyfill --recursive ./test"},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"ed@autotelic.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"@babel/runtime":"^7.2.0","cross-fetch":"^2.2.2","jwt-decode":"^2.2.0","lodash.isarraylikeobject":"^4.2.0","lodash.isfunction":"^3.0.8","lodash.isundefined":"^3.0.1","lodash.map":"^4.6.0","lodash.omitby":"^4.6.0","lodash.startswith":"^4.2.1","moment":"^2.12.0","moment-timezone":"^0.5.2","redux":"^3.3.1"},"devDependencies":{"@babel/cli":"^7.2.0","@babel/core":"^7.2.0","@babel/plugin-transform-runtime":"^7.2.0","@babel/polyfill":"^7.0.0","@babel/preset-env":"^7.2.0","@babel/register":"^7.0.0","chai":"^4.2.0","jsonwebtoken":"^8.4.0","mocha":"^5.2.0","react":"^16.6.3","react-hot-loader":"^4.3.12","rimraf":"^2.6.2","sinon":"^7.2.0","watch":"^1.0.2"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"fb547d52ca32ebc01572d608bbe6940e704fbe1c","_id":"redux-token-api-middleware@0.9.1","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"integrity":"sha512-Su1bsdZgNUiLsgzkzn/gOdx9x/0s+KFeaoIEl3UY8JEc+yQTKgRJT1u//5vlbAWEqZolYAVnwbMJwA2cYqARmg==","shasum":"f6d99bee2314c5272ef09965e3894a2ed4628b50","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.9.1.tgz","fileCount":10,"unpackedSize":38054,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcP2LxCRA9TVsSAnZWagAAf6YP/3OYp+k4r+9SpnKtkiUL\nV+Q6BftAkLLqD7Af8PXHNDPIqEafisIwBYrIec2oDKdNPTNwqkx0wWy919V8\nYMxxdZGMlKJrKoPkmiU1kCnkeFu133TOubPtDaXkDAE/cGkkXX2l4R+bB7pB\na+i73Qx2clajiDvuzoiHXGeVImbye/JRyThHwLnecL+0F94gC75XcYaJsrB6\niuGjGyWajXAJE+AkPbARJmEo4/yZrsTTmT+T8a/eNRrxp3PsDZKtrpC/Go/q\n1CcF4Wc0aJvxGHMiKQsUIQ/GIcNRg8OhS+UvLKrBiX3wXD7q6fqLgoYssqQc\nDoIvBzyYf5UV+CKf0KWJXuCddMLaqpAy5R4AtbNdw57QPjA5i66WtD+fZ5VY\na2eHFJl1lgFVjJLofBPuTKQvoZ0zxnxwR55r1OZrUQPIcRcRCV2fKblN8Yhq\n+tnL94hQSNlBophX3wBhiY/gYHXtVnnur95dYEjW+ApiOSBl3Xw6I7tFFBCg\n959TY7gwT6wQQn/VqwzTfE3L3jLBJj92l9AYFN5kbvSFcUiI5Rzg76eGhrgS\n9Yzp12Sf8ajR5y8LH9MFzmBo6vRmJqzYuBMZcaEKj7jbJe2wIbruvaYJmJAc\ni8eIdS28WPwzC0nT9OeVfqZsSgu1rMh+OhvC1dPyzqxW6y/TkDtO/nK4ko0P\nRkxF\r\n=k5OB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAWP1+fv6Fotv1Fh7gIhBpw8bw4tiKIxP9nYnq0jIEJoAiALIovS1sPYs1mcTnnoBnXA43LAMJikYgiR/idZIinxfg=="}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-token-api-middleware_0.9.1_1547657968878_0.09833683362429402"},"_hasShrinkwrap":false},"0.9.1-alpha":{"name":"redux-token-api-middleware","version":"0.9.1-alpha","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --require @babel/register --require @babel/polyfill --recursive ./test"},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"ed@autotelic.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"@babel/runtime":"^7.2.0","cross-fetch":"^2.2.2","jwt-decode":"^2.2.0","lodash.curryright":"^4.1.1","lodash.identity":"^3.0.0","lodash.isarraylikeobject":"^4.2.0","lodash.isfunction":"^3.0.8","lodash.isundefined":"^3.0.1","lodash.map":"^4.6.0","lodash.omitby":"^4.6.0","lodash.startswith":"^4.2.1","moment":"^2.12.0","moment-timezone":"^0.5.2","redux":"^3.3.1"},"devDependencies":{"@babel/cli":"^7.2.0","@babel/core":"^7.2.0","@babel/plugin-transform-runtime":"^7.2.0","@babel/polyfill":"^7.0.0","@babel/preset-env":"^7.2.0","@babel/register":"^7.0.0","chai":"^4.2.0","jsonwebtoken":"^8.4.0","mocha":"^5.2.0","react":"^16.6.3","react-hot-loader":"^4.3.12","rimraf":"^2.6.2","sinon":"^7.2.0","watch":"^1.0.2"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"readme":"# redux-token-api-middleware\n\n**Alpha software - currently under heavy development**\n\nA redux middleware for making calls to APIs with token-based auth, automatically\nrequesting a new token if needed. Actions can be calls to single or multiple API\nendpoints.\n\n## Installation\n\n\t$ npm install redux-token-api-middleware\n\n## Usage\n\n### API actions\n\nActions that will be intercepted by the middleware are identified by the symbol\n`CALL_TOKEN_API`, and follow the [Flux Standard Action](https://github.com/acdlite/flux-standard-action) pattern, however they must have a payload and have at least an `endpoint` in the payload.\n\n#### Examples\n\n```javascript\n\nimport { CALL_TOKEN_API } from 'redux-token-api-middleware'\n\nexport const BASIC_GET_ACTION = 'BASIC_GET_ACTION'\nexport const BASIC_POST_ACTION = 'BASIC_POST_ACTION'\n\n// basic GET\n// method defaults to GET if not provided\nconst basicGetAction = () => ({\n  [CALL_TOKEN_API]: {\n    type: BASIC_GET_ACTION,\n    payload: {\n      endpoint: 'http://localhost/foo'\n    }\n  }\n})\n\n// basic POST\nconst basicPostAction = () => ({\n  [CALL_TOKEN_API]: {\n    type: BASIC_POST_ACTION,\n    payload: {\n      endpoint: 'http://localhost/bar',\n      method: 'POST'\n    }\n  }\n})\n```\n\n### Setup\n\n#### `main.js`\n\n```javascript\nimport { createTokenApiMiddleware } from 'redux-token-api-middleware'\nimport { createStore, applyMiddleware } from 'redux'\n\nimport reducer from './reducers'\n\n// example refresh token action\nconst refreshAction = (token) => ({\n  [CALL_TOKEN_API]: {\n    type: 'REFRESH_TOKEN',\n    endpoint: 'http://localhost/token',\n    method: 'POST',\n    body: JSON.stringify(token)\n  }\n})\n\nYou will need to provide a `retrieveRefreshToken` method to the config that will\nreturn the refresh token that is used to obtain a new access token.\n\nconst retrieveRefreshToken = (key = 'RefreshTokenStorageKey') => {\n  // This return value is passed to `refreshAction`\n  return localStorage.getItem(key);\n};\n\nconst config = {\n  refreshAction,\n  retrieveRefreshToken,\n};\n\nconst apiTokenMiddleware = createTokenApiMiddleware(config)\n\nconst store = createStore(\n  reducer,\n  applyMiddleware(apiTokenMiddleware)\n)\n```\n\n## API\n\n#### `createTokenApiMiddleware(config)`\n\nCreates a Redux middleware to handle API objects.\n\nIn the config, you must define at least a `refreshAction` method and a `retrieveRefreshToken`\nmethod, which is used by the middleware to attempt to get a fresh token. This should be an API\naction itself.\n\nOther methods can be passed in via config, but have defaults:\n\n```javascript\n// defaults shown\nconst config = {\n  defaultHeaders: { 'Content-Type': 'application/json' },\n  retrieveRefreshToken: () => {}; // To be implemented by the user for refreshing tokens.\n  tokenStorageKey: 'reduxMiddlewareAuthToken',\n  minTokenLifespan: 300, // seconds (min remaining lifespan to indicate new token should be requested)\n  storeToken: function storeToken(key, response) {\n    let token = response.token;\n    localStorage.setItem(key, JSON.stringify(token));\n    return token;\n  },\n  retrieveToken: function retrieveToken(key) {\n    let storedValue = localStorage.getItem(key);\n    if (!storedValue) {\n      return null;\n    }\n    try {\n      return JSON.parse(storedValue);\n    }\n    catch (e) {\n      if (e instanceof SyntaxError) {\n        return null;\n      }\n      throw e;\n    }\n  },\n  checkTokenFreshness: function checkTokenFreshness(token) {\n    let tokenPayload = jwt_decode(token);\n    let expiry = moment.unix(tokenPayload.exp);\n    return expiry.diff(moment(), 'seconds') > MIN_TOKEN_LIFESPAN;\n  },\n  shouldRequestNewToken: function shouldRequestNewToken() {\n    const token = retrieveToken();\n    return token\n      ? checkTokenFreshness(token)\n      : false;\n  },\n  addTokenToRequest: function defaultAddTokenToRequest(headers, endpoint, body, token) {\n    return {\n      headers: Object.assign({\n        Authorization: `JWT ${token}`\n      }, headers),\n      endpoint,\n      body\n    }\n  }\n}\n```\n\n_Note_: `retrieveRefreshToken`, `storeToken` and `retrieveToken` methods may also return\npromises that the middleware will resolve.\n","readmeFilename":"README.md","gitHead":"969b155f263dfb1e5f29c6bfb192d06ed96db5b9","_id":"redux-token-api-middleware@0.9.1-alpha","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"integrity":"sha512-xC+JJNQHCCQfLFQ0pfteZc1i+9rZbmCDhi8ES8Ojgk0P1UlBQwVs1shuV3LNqauTcIK3DkHSo4B+VmWWIi43Sw==","shasum":"4d1771b4b32ad1b32807c8290cefd47e096e9b87","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.9.1-alpha.tgz","fileCount":10,"unpackedSize":39029,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcQiyeCRA9TVsSAnZWagAAMBoP/3IkQ+K59INF8tldWMf+\nDLsRqPoqBxJrecNHoikrPj/IDcq11YDIAwmqb4Hww6Mr20MUn+HOjF0SWPj8\nUJ9Cm3DsaeUxs1BxXw6f/YS1aGCLZ4dCkIfDqnjQMUOk4Ynmmkx5EjYiUq0c\nEaZ3w/bXS7xLjsPoUDakOdpSUEqveBsX6IPw7LcDwDcIXGMXjB/FA1TwQM4u\n/mIrcDq5oeGMaPWbVc4a1VYxM/S3lDXcgoIjpU1k+6gUBEsS7qof4kLgZ8wq\n95EPbevvL2ukpTcTG0x28FhAg2pHJGMpi9zJ/8DY0H/qjVRQll1X3CIUJRXc\nUN+uU786LRdT+ma7xTl1FJVV8Tl+KQLZdRLj8oHvGLyv9xcI/kO9o/inQGQ1\nf5Wzm4mxfGB/a/587YTd7GRkgTcC/q1rk20XLxk5EwtW0HdbuCZUlch81eJV\nMncD1Dsnzsp12vQi6Wc/XFsNfa0kMD+csIOkoPRoCfVwgX4qdhCnOvtamIWJ\nWKap8cHua2+BCsVzmYpG9nnLG8AiMb3LBeu5NSPqmIJFU+3Yk9I8gtkIAe6Z\nP3aJ6gvOyGEIQQdLAPs85nRixttgNNVCbOXtcUjdFOBFlAcBgTOpOyjPATqU\nGQquyHh0dyAJMzV7C9YnlFMxBG1HTXDCP2QXvhxmD0bQm/WATQ4DeJwopter\nVyAD\r\n=EUG4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFUIEBq4bUdQui5Jez4T6rVCsKnEz6TZPSFP9NKaQ9XvAiEAyJ1onJEYMwPYWhRNuKty0E73uHsJoudgCqI7GgJgJf8="}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-token-api-middleware_0.9.1-alpha_1547840669349_0.3438884633145205"},"_hasShrinkwrap":false},"0.10.0":{"name":"redux-token-api-middleware","version":"0.10.0","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --require @babel/register --require @babel/polyfill --recursive ./test"},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"ed@autotelic.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"@babel/runtime":"^7.2.0","cross-fetch":"^2.2.2","jwt-decode":"^2.2.0","lodash.curryright":"^4.1.1","lodash.identity":"^3.0.0","lodash.isarraylikeobject":"^4.2.0","lodash.isfunction":"^3.0.8","lodash.isundefined":"^3.0.1","lodash.map":"^4.6.0","lodash.omitby":"^4.6.0","lodash.startswith":"^4.2.1","moment":"^2.12.0","moment-timezone":"^0.5.2","redux":"^3.3.1"},"devDependencies":{"@babel/cli":"^7.2.0","@babel/core":"^7.2.0","@babel/plugin-transform-runtime":"^7.2.0","@babel/polyfill":"^7.0.0","@babel/preset-env":"^7.2.0","@babel/register":"^7.0.0","chai":"^4.2.0","jsonwebtoken":"^8.4.0","mocha":"^5.2.0","react":"^16.6.3","react-hot-loader":"^4.3.12","rimraf":"^2.6.2","sinon":"^7.2.0","watch":"^1.0.2"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"a3d3d183f70260b2064ad2f08d26447747669b91","_id":"redux-token-api-middleware@0.10.0","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"integrity":"sha512-P8oIjlVg+USl9n/CkHIrdy3AomUIL3/ig6pB6bpqNdqIDv63oqTbjphkFrMSD7icHkE1ZSOdJt5TSMUlmQivoA==","shasum":"a5b029b9a163adc6085e596d0d502d31e562dfb8","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.10.0.tgz","fileCount":10,"unpackedSize":39024,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcSQzbCRA9TVsSAnZWagAA4+UP/3OlxCKAWuIwKh0lo2vc\nWzScKwBtDta5nglYH76g0/aEGFJcxRhx84V8J0LlqXOF6K1RNCNWki/lXP7Y\nZmEQaW7YRon6xPrICGjmaftow1Z0ajx/cpRxOjk8GaxcL3dealmu48OFBonv\nmW0wzl2RjzSabSS6PUMwDeHaQ6h9AiyyWxfD1bKVTlz9o8SDrVu7oc7V6VhX\nUdWE7Hy10AmfOdCpl1zV7n3qaTXNwdnb678W9kz4sD3vsVZKVPOBONuM4wYU\n6Wq3jhU1S9v6uDDQdPn/0ZidXqM0L2FTA+uTZzXkRfyo69Uy6+l6sekJRcG+\n2qR3MzmetQUIM9sblVrxVij5YSndCNydNl/XGl4S0F1LwcriCAnQQGiS7PyM\nyZ180V0X/svAbD+ZTZCAekwEKND7pthUAFvC2ZlgFqQDSRMs7d7J8PRcezms\ncmEg9m3JtHR024+gyBiDSn/POwDxRLn7UKjbHzH1yVhlgrarGeqKeYh4/0J7\nT8sdORZMZj/kRrHwFbAdDnsOdXNR+NpN6niU17AVt9v50VcoAHMN78iLxTpj\nCHL3seMdHjfDi2rTbGLawnHcJ6gJS8LztxUBMJfqRZgACW7/BCn9ZzaYmFyq\nRa5xJwbyOvzyhsP0P8mMa1dBX6Kk5mAOCIQXocrjgw9u5bpc9sALeSvZINOy\nwupj\r\n=YEFL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDF1+HUiCnniElbd4NcHsLwr5KMWTT0vhXw7NBsqJZh+wIhANgr5cmymGH81Phsl77lQjiOsQkIC8a4Cmd9BqeBHkKF"}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-token-api-middleware_0.10.0_1548291291250_0.8199196335035834"},"_hasShrinkwrap":false},"0.10.1-alpha":{"name":"redux-token-api-middleware","version":"0.10.1-alpha","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --require @babel/register --require @babel/polyfill --recursive ./test"},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"ed@autotelic.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"@babel/runtime":"^7.2.0","cross-fetch":"^2.2.2","jwt-decode":"^2.2.0","lodash.curryright":"^4.1.1","lodash.identity":"^3.0.0","lodash.isarraylikeobject":"^4.2.0","lodash.isfunction":"^3.0.8","lodash.isundefined":"^3.0.1","lodash.map":"^4.6.0","lodash.omitby":"^4.6.0","lodash.startswith":"^4.2.1","moment":"^2.12.0","moment-timezone":"^0.5.2","redux":"^3.3.1"},"devDependencies":{"@babel/cli":"^7.2.0","@babel/core":"^7.2.0","@babel/plugin-transform-runtime":"^7.2.0","@babel/polyfill":"^7.0.0","@babel/preset-env":"^7.2.0","@babel/register":"^7.0.0","chai":"^4.2.0","jsonwebtoken":"^8.4.0","mocha":"^5.2.0","react":"^16.6.3","react-hot-loader":"^4.3.12","rimraf":"^2.6.2","sinon":"^7.2.0","watch":"^1.0.2"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"readme":"# redux-token-api-middleware\n\n**Alpha software - currently under heavy development**\n\nA redux middleware for making calls to APIs with token-based auth, automatically\nrequesting a new token if needed. Actions can be calls to single or multiple API\nendpoints.\n\n## Installation\n\n\t$ npm install redux-token-api-middleware\n\n## Usage\n\n### API actions\n\nActions that will be intercepted by the middleware are identified by the symbol\n`CALL_TOKEN_API`, and follow the [Flux Standard Action](https://github.com/acdlite/flux-standard-action) pattern, however they must have a payload and have at least an `endpoint` in the payload.\n\n#### Examples\n\n```javascript\n\nimport { CALL_TOKEN_API } from 'redux-token-api-middleware'\n\nexport const BASIC_GET_ACTION = 'BASIC_GET_ACTION'\nexport const BASIC_POST_ACTION = 'BASIC_POST_ACTION'\n\n// basic GET\n// method defaults to GET if not provided\nconst basicGetAction = () => ({\n  [CALL_TOKEN_API]: {\n    type: BASIC_GET_ACTION,\n    payload: {\n      endpoint: 'http://localhost/foo'\n    }\n  }\n})\n\n// basic POST\nconst basicPostAction = () => ({\n  [CALL_TOKEN_API]: {\n    type: BASIC_POST_ACTION,\n    payload: {\n      endpoint: 'http://localhost/bar',\n      method: 'POST'\n    }\n  }\n})\n```\n\n### Setup\n\n#### `main.js`\n\n```javascript\nimport { createTokenApiMiddleware } from 'redux-token-api-middleware'\nimport { createStore, applyMiddleware } from 'redux'\n\nimport reducer from './reducers'\n\n// example refresh token action\nconst refreshAction = (token) => ({\n  [CALL_TOKEN_API]: {\n    type: 'REFRESH_TOKEN',\n    endpoint: 'http://localhost/token',\n    method: 'POST',\n    body: JSON.stringify(token)\n  }\n})\n\nYou will need to provide a `retrieveRefreshToken` method to the config that will\nreturn the refresh token that is used to obtain a new access token.\n\nconst retrieveRefreshToken = (key = 'RefreshTokenStorageKey') => {\n  // This return value is passed to `refreshAction`\n  return localStorage.getItem(key);\n};\n\nconst config = {\n  refreshAction,\n  retrieveRefreshToken,\n};\n\nconst apiTokenMiddleware = createTokenApiMiddleware(config)\n\nconst store = createStore(\n  reducer,\n  applyMiddleware(apiTokenMiddleware)\n)\n```\n\n## API\n\n#### `createTokenApiMiddleware(config)`\n\nCreates a Redux middleware to handle API objects.\n\nIn the config, you must define at least a `refreshAction` method and a `retrieveRefreshToken`\nmethod, which is used by the middleware to attempt to get a fresh token. This should be an API\naction itself.\n\nOther methods can be passed in via config, but have defaults:\n\n```javascript\n// defaults shown\nconst config = {\n  defaultHeaders: { 'Content-Type': 'application/json' },\n  retrieveRefreshToken: () => {}; // To be implemented by the user for refreshing tokens.\n  tokenStorageKey: 'reduxMiddlewareAuthToken',\n  minTokenLifespan: 300, // seconds (min remaining lifespan to indicate new token should be requested)\n  storeToken: function storeToken(key, response) {\n    let token = response.token;\n    localStorage.setItem(key, JSON.stringify(token));\n    return token;\n  },\n  retrieveToken: function retrieveToken(key) {\n    let storedValue = localStorage.getItem(key);\n    if (!storedValue) {\n      return null;\n    }\n    try {\n      return JSON.parse(storedValue);\n    }\n    catch (e) {\n      if (e instanceof SyntaxError) {\n        return null;\n      }\n      throw e;\n    }\n  },\n  checkTokenFreshness: function checkTokenFreshness(token) {\n    let tokenPayload = jwt_decode(token);\n    let expiry = moment.unix(tokenPayload.exp);\n    return expiry.diff(moment(), 'seconds') > MIN_TOKEN_LIFESPAN;\n  },\n  shouldRequestNewToken: function shouldRequestNewToken() {\n    const token = retrieveToken();\n    return token\n      ? checkTokenFreshness(token)\n      : false;\n  },\n  addTokenToRequest: function defaultAddTokenToRequest(headers, endpoint, body, token) {\n    return {\n      headers: Object.assign({\n        Authorization: `JWT ${token}`\n      }, headers),\n      endpoint,\n      body\n    }\n  }\n}\n```\n\n_Note_: `retrieveRefreshToken`, `storeToken` and `retrieveToken` methods may also return\npromises that the middleware will resolve.\n","readmeFilename":"README.md","gitHead":"a4c33c742084f2b6ab7a363167cc9d60b17b716d","_id":"redux-token-api-middleware@0.10.1-alpha","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"integrity":"sha512-GRBZCLesbUjd/cv6FU373emqDHns1u0hkBwVKgXbvTMO0m3SZrPrqtRDzG+Bu88KjAfK+vXea4TM9iQ27XKN4w==","shasum":"3b4a80991b938b0976dd126c51b2d342c6f90419","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.10.1-alpha.tgz","fileCount":10,"unpackedSize":39168,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcS33yCRA9TVsSAnZWagAAi4EP/iue+7LG6wZfmp7dtolC\nnRKdsYOth3/wRuGvxRwciVBQDScLZRLhP5QokStwJdtax/bi3uwewzE5eEF9\ne9K789GUfOsb/O+IKa8lj5JOFuWPzCc0XayfT5EtOhsADD035Pm4x2S/kVQN\nDZVEhU42/Ha5fDJ1jnk/8E+1D3Fxm24Z98j/4S9FT1tF78LuLCL6US8siQL3\nGy0aJinZ07o0sJ8SmbZQ0/ApoMHQFG/CeLxkbPxwQbEuvBZdSbowkp7z4IH/\n9XWdFT/rHpA3aoRcMl7wsNlRDRM2VQ2KAW+k3BhM72tRH8sbzkIlbPo6bGU1\nuH3Qd+smfnX5WYRf3kohwx0ABtuORvMgIUEwVkXiy/CezwdfOJRkJCtgGuM7\nslpIM6/FvTMKQNdP7hItt3jeVzuzER75o1WOenulpCKQ4oDYOkdoBhZSEmlL\n/hnCbwxtTaSlkyDhu/JeMGuZM3DzjUKmV6AB7SX/aTgmxqaB24w/kyy/pHmg\nVZ9gIZtDjxWZKZQlkMN98YoFgFMXwzQRs52IELV2xGT/X7stLoflHJDxhX7B\nNRSOpZFAsPqGq5sLGkY7rbKJxfCdPgYOxyzOTwumPITEsg/WjhtBy4kZthrE\nS4V5YFVAl0zYPJhFHrCHpKuYPub+erLzE9UN3KkAkS+lMXkTRH2MhnBL4rC7\ndY0/\r\n=5B73\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBSISs8vdOHmo7XpXIvn6l4f+VB+3dayyWR8OYGgGbc0AiEAjDZbNipg/1i2erMIMNEAtK01FXjoGuFVS4ZKxGEgjzk="}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-token-api-middleware_0.10.1-alpha_1548451314020_0.8314153037186636"},"_hasShrinkwrap":false},"0.10.1":{"name":"redux-token-api-middleware","version":"0.10.1","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --require @babel/register --require @babel/polyfill --recursive ./test"},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"ed@autotelic.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"@babel/runtime":"^7.2.0","cross-fetch":"^2.2.2","jwt-decode":"^2.2.0","lodash.curryright":"^4.1.1","lodash.identity":"^3.0.0","lodash.isarraylikeobject":"^4.2.0","lodash.isfunction":"^3.0.8","lodash.isundefined":"^3.0.1","lodash.map":"^4.6.0","lodash.omitby":"^4.6.0","lodash.startswith":"^4.2.1","moment":"^2.12.0","moment-timezone":"^0.5.2","redux":"^3.3.1"},"devDependencies":{"@babel/cli":"^7.2.0","@babel/core":"^7.2.0","@babel/plugin-transform-runtime":"^7.2.0","@babel/polyfill":"^7.0.0","@babel/preset-env":"^7.2.0","@babel/register":"^7.0.0","chai":"^4.2.0","jsonwebtoken":"^8.4.0","mocha":"^5.2.0","react":"^16.6.3","react-hot-loader":"^4.3.12","rimraf":"^2.6.2","sinon":"^7.2.0","watch":"^1.0.2"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"1aaf8139e2d2802e96eb6b11bc079002e4e9743a","_id":"redux-token-api-middleware@0.10.1","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"integrity":"sha512-yUSdOO82OaS2vR12ylkQRD9maC2d6choHBd9q/H2l7OYQEx6IxyZAF/2FTWOwAjN7rR1+QPzM8v3oQrSJeICAw==","shasum":"0189aa1ab8eb8eb46f1c0d28de2dde76eadfb031","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.10.1.tgz","fileCount":10,"unpackedSize":39162,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcdcLiCRA9TVsSAnZWagAAD34P/RS299ZGRr6aBMdQsdud\n/k2aMsoo/kp+w6whOaOI/azYUhMhHt8hgV3rOoAN5bIZW9Z6ch8SkDhO2igS\nb6hJ5hPYExx1y1KLEj625DYURq0z5D8xsFWSahBXxzHzHpxrYlvsN0Rrttyz\nY/utv+hGIuetGga+8Fa3xcw1lK83eK0Fnria1JX8Age/sQ+u6q3igP+VRFvE\nz8BORiCoUnreipAsM9kFWNpMytwwlgUPW29w3R8SMS9CBOgBo5Rxp8mxv9ak\n+z03bofh503x7kjH05GBZgHRJOWABQ7fMWvlCaHAlMY+7KTAxfMIXlqM0Uye\npWxdq29wWSkWuW/WewDRmU6TUrfPE4h35vzCIlj3zuoUOVyqAMViQgvFDvyc\nkwk1tjnsSyTJUl6mvHiGb2MXWwb8cuvivXpK4fb+zKdekLi+16PKksc9CRP5\nbWpUaynZHgktZYp4xHxZNEPwwIq0yIS9yDVJSg0ChwIWmHXC9RRPkTLeCDc/\nCtZ47rUQ9WJTM9U3Efw0bSGLtGoX93e6GpLvS6UHxHgsK7EIZAlFeQ6TV5IJ\neR1ESVh7ft4WsyK1IOORzhgRHxslxGVP2fPBFnkmGXve4IXSP940en12XAKk\nWiee8PV9rYxlxMGyC0HtJyCs4L83QrrqwpkP0sHTp5L3/snua1/46461p0Zw\nCKvx\r\n=xSmh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDX7jXgIJ1xnRFMiHWOtLaYdVDKm3MxfWDxu7TozgnRqQIhAP3ughwTvgxpbfYDC4c3yuaOJ0KQEKRo0wJ6AqBbE99s"}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-token-api-middleware_0.10.1_1551221473715_0.06930574134197531"},"_hasShrinkwrap":false},"0.10.2-alpha":{"name":"redux-token-api-middleware","version":"0.10.2-alpha","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --require @babel/register --require @babel/polyfill --recursive ./test"},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"ed@autotelic.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"@babel/runtime":"^7.2.0","cross-fetch":"^2.2.2","jwt-decode":"^2.2.0","lodash.curryright":"^4.1.1","lodash.identity":"^3.0.0","lodash.isarraylikeobject":"^4.2.0","lodash.isfunction":"^3.0.8","lodash.isundefined":"^3.0.1","lodash.map":"^4.6.0","lodash.omitby":"^4.6.0","lodash.startswith":"^4.2.1","moment":"^2.12.0","moment-timezone":"^0.5.2","redux":"^3.3.1"},"devDependencies":{"@babel/cli":"^7.2.0","@babel/core":"^7.2.0","@babel/plugin-transform-runtime":"^7.2.0","@babel/polyfill":"^7.0.0","@babel/preset-env":"^7.2.0","@babel/register":"^7.0.0","chai":"^4.2.0","jsonwebtoken":"^8.4.0","mocha":"^5.2.0","react":"^16.6.3","react-hot-loader":"^4.3.12","rimraf":"^2.6.2","sinon":"^7.2.0","watch":"^1.0.2"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"readme":"# redux-token-api-middleware\n\n**Alpha software - currently under heavy development**\n\nA redux middleware for making calls to APIs with token-based auth, automatically\nrequesting a new token if needed. Actions can be calls to single or multiple API\nendpoints.\n\n## Installation\n\n\t$ npm install redux-token-api-middleware\n\n## Usage\n\n### API actions\n\nActions that will be intercepted by the middleware are identified by the symbol\n`CALL_TOKEN_API`, and follow the [Flux Standard Action](https://github.com/acdlite/flux-standard-action) pattern, however they must have a payload and have at least an `endpoint` in the payload.\n\n#### Examples\n\n```javascript\n\nimport { CALL_TOKEN_API } from 'redux-token-api-middleware'\n\nexport const BASIC_GET_ACTION = 'BASIC_GET_ACTION'\nexport const BASIC_POST_ACTION = 'BASIC_POST_ACTION'\n\n// basic GET\n// method defaults to GET if not provided\nconst basicGetAction = () => ({\n  [CALL_TOKEN_API]: {\n    type: BASIC_GET_ACTION,\n    payload: {\n      endpoint: 'http://localhost/foo'\n    }\n  }\n})\n\n// basic POST\nconst basicPostAction = () => ({\n  [CALL_TOKEN_API]: {\n    type: BASIC_POST_ACTION,\n    payload: {\n      endpoint: 'http://localhost/bar',\n      method: 'POST'\n    }\n  }\n})\n```\n\n### Setup\n\n#### `main.js`\n\n```javascript\nimport { createTokenApiMiddleware } from 'redux-token-api-middleware'\nimport { createStore, applyMiddleware } from 'redux'\n\nimport reducer from './reducers'\n\n// example refresh token action\nconst refreshAction = (token) => ({\n  [CALL_TOKEN_API]: {\n    type: 'REFRESH_TOKEN',\n    endpoint: 'http://localhost/token',\n    method: 'POST',\n    body: JSON.stringify(token)\n  }\n})\n\nYou will need to provide a `retrieveRefreshToken` method to the config that will\nreturn the refresh token that is used to obtain a new access token.\n\nconst retrieveRefreshToken = (key = 'RefreshTokenStorageKey') => {\n  // This return value is passed to `refreshAction`\n  return localStorage.getItem(key);\n};\n\nconst config = {\n  refreshAction,\n  retrieveRefreshToken,\n};\n\nconst apiTokenMiddleware = createTokenApiMiddleware(config)\n\nconst store = createStore(\n  reducer,\n  applyMiddleware(apiTokenMiddleware)\n)\n```\n\n## API\n\n#### `createTokenApiMiddleware(config)`\n\nCreates a Redux middleware to handle API objects.\n\nIn the config, you must define at least a `refreshAction` method and a `retrieveRefreshToken`\nmethod, which is used by the middleware to attempt to get a fresh token. This should be an API\naction itself.\n\nOther methods can be passed in via config, but have defaults:\n\n```javascript\n// defaults shown\nconst config = {\n  defaultHeaders: { 'Content-Type': 'application/json' },\n  retrieveRefreshToken: () => {}; // To be implemented by the user for refreshing tokens.\n  tokenStorageKey: 'reduxMiddlewareAuthToken',\n  minTokenLifespan: 300, // seconds (min remaining lifespan to indicate new token should be requested)\n  storeToken: function storeToken(key, response) {\n    let token = response.token;\n    localStorage.setItem(key, JSON.stringify(token));\n    return token;\n  },\n  retrieveToken: function retrieveToken(key) {\n    let storedValue = localStorage.getItem(key);\n    if (!storedValue) {\n      return null;\n    }\n    try {\n      return JSON.parse(storedValue);\n    }\n    catch (e) {\n      if (e instanceof SyntaxError) {\n        return null;\n      }\n      throw e;\n    }\n  },\n  checkTokenFreshness: function checkTokenFreshness(token) {\n    let tokenPayload = jwt_decode(token);\n    let expiry = moment.unix(tokenPayload.exp);\n    return expiry.diff(moment(), 'seconds') > MIN_TOKEN_LIFESPAN;\n  },\n  shouldRequestNewToken: function shouldRequestNewToken() {\n    const token = retrieveToken();\n    return token\n      ? checkTokenFreshness(token)\n      : false;\n  },\n  addTokenToRequest: function defaultAddTokenToRequest(headers, endpoint, body, token) {\n    return {\n      headers: Object.assign({\n        Authorization: `JWT ${token}`\n      }, headers),\n      endpoint,\n      body\n    }\n  }\n}\n```\n\n_Note_: `retrieveRefreshToken`, `storeToken` and `retrieveToken` methods may also return\npromises that the middleware will resolve.\n","readmeFilename":"README.md","gitHead":"32bda222ade21f5f1fb01debcce66e61d54fbee9","_id":"redux-token-api-middleware@0.10.2-alpha","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"integrity":"sha512-oeY0UA8MeQAX0lyNnsj0RNHndV6rH6vaKp21laSHwTuGlGvSjA0V/aAAUJWNCzs8vutfJX3nv6kmx8Y94V0sVA==","shasum":"0a44fe6d93795ccd2c18dcd262bfda4254ff5b3c","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.10.2-alpha.tgz","fileCount":10,"unpackedSize":39803,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcdcfTCRA9TVsSAnZWagAAIUAP/iCxVM+hj0abl3jYklgY\nqxC6YQCjw6NAvUch90n4IJ7QgtgmYedzMr7ZqcpgFwdQEk407TEJ1EFewHk3\nG8X0WT/hZLqyFgtN9uQ9vGtL0jOHI4Uk7jc6x1TvfJrAwv4BGxH0cFLuZtqf\nVO8HXerhUOOtrDvcY695ru1dCwdeyyjTxgFdNbIB3ZlIT8vYa7Ufig6ZX7RX\nECJBvUsqKI1kp0uQPNr4X/W4/X0zXNeV/RkkROevGZbhOvl0ICM9300ppqsc\nWQVBxOzdK1GTQdN/zsre060sN7w2E7T7cVyfHHG/AIGndxPM8IjnkYVYxfQ3\n1NK6D635Tzjs7C6erZblsJ1wZmT7iiNSG4P25MOoXmr4fd5j1NKX/GIuKyIC\nG90z1Zpv5cBahU3Iv0QGd00PEurT4aVBiNQFP4WdV4c8DJmJqS00e4FdQsxW\nScWwYl60HCXlXbiDazPJaatChyI+jdt/aS3tr1DACwcyZKKv7n2LQIoNYdPE\nX9BMarkptfVwlK0HtGXJF816wEa0DrnYNyY8Wg215S+zYUucBOYwudeAEDz5\n3j3RXiczqzdHCDiXz1pdGOtMo2zr8nRx3h3GjKcWgQtINuCX6oxwlhBCx5NE\npZ+jBNU7Xj3PzCkJxqDN79D+oduNaX5RgLXqjFdWnD0pzUC+eIIQZwdBNLUs\n0zv2\r\n=+wat\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3aLw5rZWE5YfNtWfK6dnvwOMKrQ2NGDOSw+lQRZRGVQIhAJv2fVg1CBvJcRJ5iQjHyTQ+ySvQF+XlSNPobNFMJf0n"}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-token-api-middleware_0.10.2-alpha_1551222738145_0.8989296502820263"},"_hasShrinkwrap":false},"0.10.3-alpha":{"name":"redux-token-api-middleware","version":"0.10.3-alpha","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --require @babel/register --require @babel/polyfill --recursive ./test"},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"ed@autotelic.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"@babel/runtime":"^7.2.0","cross-fetch":"^2.2.2","jwt-decode":"^2.2.0","lodash.curryright":"^4.1.1","lodash.identity":"^3.0.0","lodash.isarraylikeobject":"^4.2.0","lodash.isfunction":"^3.0.8","lodash.isundefined":"^3.0.1","lodash.map":"^4.6.0","lodash.omitby":"^4.6.0","lodash.startswith":"^4.2.1","moment":"^2.12.0","moment-timezone":"^0.5.2","redux":"^3.3.1"},"devDependencies":{"@babel/cli":"^7.2.0","@babel/core":"^7.2.0","@babel/plugin-transform-runtime":"^7.2.0","@babel/polyfill":"^7.0.0","@babel/preset-env":"^7.2.0","@babel/register":"^7.0.0","chai":"^4.2.0","jsonwebtoken":"^8.4.0","mocha":"^5.2.0","react":"^16.6.3","react-hot-loader":"^4.3.12","rimraf":"^2.6.2","sinon":"^7.2.0","watch":"^1.0.2"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"readme":"# redux-token-api-middleware\n\n**Alpha software - currently under heavy development**\n\nA redux middleware for making calls to APIs with token-based auth, automatically\nrequesting a new token if needed. Actions can be calls to single or multiple API\nendpoints.\n\n## Installation\n\n\t$ npm install redux-token-api-middleware\n\n## Usage\n\n### API actions\n\nActions that will be intercepted by the middleware are identified by the symbol\n`CALL_TOKEN_API`, and follow the [Flux Standard Action](https://github.com/acdlite/flux-standard-action) pattern, however they must have a payload and have at least an `endpoint` in the payload.\n\n#### Examples\n\n```javascript\n\nimport { CALL_TOKEN_API } from 'redux-token-api-middleware'\n\nexport const BASIC_GET_ACTION = 'BASIC_GET_ACTION'\nexport const BASIC_POST_ACTION = 'BASIC_POST_ACTION'\n\n// basic GET\n// method defaults to GET if not provided\nconst basicGetAction = () => ({\n  [CALL_TOKEN_API]: {\n    type: BASIC_GET_ACTION,\n    payload: {\n      endpoint: 'http://localhost/foo'\n    }\n  }\n})\n\n// basic POST\nconst basicPostAction = () => ({\n  [CALL_TOKEN_API]: {\n    type: BASIC_POST_ACTION,\n    payload: {\n      endpoint: 'http://localhost/bar',\n      method: 'POST'\n    }\n  }\n})\n```\n\n### Setup\n\n#### `main.js`\n\n```javascript\nimport { createTokenApiMiddleware } from 'redux-token-api-middleware'\nimport { createStore, applyMiddleware } from 'redux'\n\nimport reducer from './reducers'\n\n// example refresh token action\nconst refreshAction = (token) => ({\n  [CALL_TOKEN_API]: {\n    type: 'REFRESH_TOKEN',\n    endpoint: 'http://localhost/token',\n    method: 'POST',\n    body: JSON.stringify(token)\n  }\n})\n\nYou will need to provide a `retrieveRefreshToken` method to the config that will\nreturn the refresh token that is used to obtain a new access token.\n\nconst retrieveRefreshToken = (key = 'RefreshTokenStorageKey') => {\n  // This return value is passed to `refreshAction`\n  return localStorage.getItem(key);\n};\n\nconst config = {\n  refreshAction,\n  retrieveRefreshToken,\n};\n\nconst apiTokenMiddleware = createTokenApiMiddleware(config)\n\nconst store = createStore(\n  reducer,\n  applyMiddleware(apiTokenMiddleware)\n)\n```\n\n## API\n\n#### `createTokenApiMiddleware(config)`\n\nCreates a Redux middleware to handle API objects.\n\nIn the config, you must define at least a `refreshAction` method and a `retrieveRefreshToken`\nmethod, which is used by the middleware to attempt to get a fresh token. This should be an API\naction itself.\n\nOther methods can be passed in via config, but have defaults:\n\n```javascript\n// defaults shown\nconst config = {\n  defaultHeaders: { 'Content-Type': 'application/json' },\n  retrieveRefreshToken: () => {}; // To be implemented by the user for refreshing tokens.\n  tokenStorageKey: 'reduxMiddlewareAuthToken',\n  minTokenLifespan: 300, // seconds (min remaining lifespan to indicate new token should be requested)\n  storeToken: function storeToken(key, response) {\n    let token = response.token;\n    localStorage.setItem(key, JSON.stringify(token));\n    return token;\n  },\n  retrieveToken: function retrieveToken(key) {\n    let storedValue = localStorage.getItem(key);\n    if (!storedValue) {\n      return null;\n    }\n    try {\n      return JSON.parse(storedValue);\n    }\n    catch (e) {\n      if (e instanceof SyntaxError) {\n        return null;\n      }\n      throw e;\n    }\n  },\n  checkTokenFreshness: function checkTokenFreshness(token) {\n    let tokenPayload = jwt_decode(token);\n    let expiry = moment.unix(tokenPayload.exp);\n    return expiry.diff(moment(), 'seconds') > MIN_TOKEN_LIFESPAN;\n  },\n  shouldRequestNewToken: function shouldRequestNewToken() {\n    const token = retrieveToken();\n    return token\n      ? checkTokenFreshness(token)\n      : false;\n  },\n  addTokenToRequest: function defaultAddTokenToRequest(headers, endpoint, body, token) {\n    return {\n      headers: Object.assign({\n        Authorization: `JWT ${token}`\n      }, headers),\n      endpoint,\n      body\n    }\n  }\n}\n```\n\n_Note_: `retrieveRefreshToken`, `storeToken` and `retrieveToken` methods may also return\npromises that the middleware will resolve.\n","readmeFilename":"README.md","gitHead":"d485aa8dddd3b02fed3273bf2db193a87737fa6a","_id":"redux-token-api-middleware@0.10.3-alpha","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"integrity":"sha512-ZTTGH98wGDUSFaVoFJXlWJ1fwFCyQDmvN2f8mKHccPsNJ8jxsphrsiyIKrUwJtjMZZ2KcVabMJmRWzZBh4/K+Q==","shasum":"81bc6dea07c354521b1a239c9158cf4881e9b43a","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.10.3-alpha.tgz","fileCount":10,"unpackedSize":39360,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcdjveCRA9TVsSAnZWagAAjbUP/1jdS5u4imlLCJLPpRTY\nMPkXcdm5cLvE+CSxIwEwb7z3HhGZr28BkuikW3KeNNMebdNvo7yfMdSzjXGV\nkVYnCJ+0r8hCm0NZQMtcQMHIiWTXYYyPORWrtqDOGHcs5/V00MDrDdcDKQkW\nPkz8w6vaspL7oeqpYuqn7e6YXA1Ru08SXmNLFaik6uXI9a4NgUqUXl5JzjpW\nEXcbsTMNA/7LChZzqe+c6G6rCT1RB1CFqWKkzZUUmbYAWLfdb5pVclms7/oL\nuxkueanSqEQ4KOueqx2IsPzcMM7pkra6y+iBdxSW6HVL6lZxOwsgqXYT0Ysq\nrobNPDSyEY2axlkMJC8SbqBDg5A0DbO1vz7dyqTmr4REXl8/7RXDob0xjJzl\n4MGbd3hqflG0Y61kFa/Dxeoit+XqwaQ4bi5vsrRpZzy7gmHXlybTk0NsvnhQ\nyfXQW2QbDdB2exAjek3uqlxn5DeQCgFazVAJ1QVFFEhVnVfjt8JWwIT38VJ3\nZ76qV+7B07KNJlUS3GBZvTf3bgO1ObGO2w6XZwa/Ulyg6zeCWe7RcIVtKqMe\nNqPbYxva7oXWMscyne03BNs1/KhwojtU+o8yjdaICndxj78FX9nFCmbcOCwN\n6zf1MjGsetu1Y2O1c8sVBKiky6froPr4s/hdKEZNPJ7ABFeJydqF+haTW0ZQ\nZX1A\r\n=0v+q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAFJbySMfAaRGoLhLiZdNDXo9e3aRwxpzbmkRSH/iYh2AiEA8sZa6SdTXvRRmUYQZ30oDbbCTlzRVAj71dhog6BsVxY="}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-token-api-middleware_0.10.3-alpha_1551252445712_0.6727335303969268"},"_hasShrinkwrap":false},"0.10.4-alpha":{"name":"redux-token-api-middleware","version":"0.10.4-alpha","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --require @babel/register --require @babel/polyfill --recursive ./test"},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"ed@autotelic.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"@babel/runtime":"^7.2.0","cross-fetch":"^2.2.2","jwt-decode":"^2.2.0","lodash.curryright":"^4.1.1","lodash.get":"^4.4.2","lodash.identity":"^3.0.0","lodash.isarraylikeobject":"^4.2.0","lodash.isfunction":"^3.0.8","lodash.isundefined":"^3.0.1","lodash.map":"^4.6.0","lodash.omitby":"^4.6.0","lodash.startswith":"^4.2.1","moment":"^2.12.0","moment-timezone":"^0.5.2","redux":"^3.3.1"},"devDependencies":{"@babel/cli":"^7.2.0","@babel/core":"^7.2.0","@babel/plugin-transform-runtime":"^7.2.0","@babel/polyfill":"^7.0.0","@babel/preset-env":"^7.2.0","@babel/register":"^7.0.0","chai":"^4.2.0","jsonwebtoken":"^8.4.0","mocha":"^5.2.0","react":"^16.6.3","react-hot-loader":"^4.3.12","rimraf":"^2.6.2","sinon":"^7.2.0","watch":"^1.0.2"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"readme":"# redux-token-api-middleware\n\n**Alpha software - currently under heavy development**\n\nA redux middleware for making calls to APIs with token-based auth, automatically\nrequesting a new token if needed. Actions can be calls to single or multiple API\nendpoints.\n\n## Installation\n\n\t$ npm install redux-token-api-middleware\n\n## Usage\n\n### API actions\n\nActions that will be intercepted by the middleware are identified by the symbol\n`CALL_TOKEN_API`, and follow the [Flux Standard Action](https://github.com/acdlite/flux-standard-action) pattern, however they must have a payload and have at least an `endpoint` in the payload.\n\n#### Examples\n\n```javascript\n\nimport { CALL_TOKEN_API } from 'redux-token-api-middleware'\n\nexport const BASIC_GET_ACTION = 'BASIC_GET_ACTION'\nexport const BASIC_POST_ACTION = 'BASIC_POST_ACTION'\n\n// basic GET\n// method defaults to GET if not provided\nconst basicGetAction = () => ({\n  [CALL_TOKEN_API]: {\n    type: BASIC_GET_ACTION,\n    payload: {\n      endpoint: 'http://localhost/foo'\n    }\n  }\n})\n\n// basic POST\nconst basicPostAction = () => ({\n  [CALL_TOKEN_API]: {\n    type: BASIC_POST_ACTION,\n    payload: {\n      endpoint: 'http://localhost/bar',\n      method: 'POST'\n    }\n  }\n})\n```\n\n### Setup\n\n#### `main.js`\n\n```javascript\nimport { createTokenApiMiddleware } from 'redux-token-api-middleware'\nimport { createStore, applyMiddleware } from 'redux'\n\nimport reducer from './reducers'\n\n// example refresh token action\nconst refreshAction = (token) => ({\n  [CALL_TOKEN_API]: {\n    type: 'REFRESH_TOKEN',\n    endpoint: 'http://localhost/token',\n    method: 'POST',\n    body: JSON.stringify(token)\n  }\n})\n\nYou will need to provide a `retrieveRefreshToken` method to the config that will\nreturn the refresh token that is used to obtain a new access token.\n\nconst retrieveRefreshToken = (key = 'RefreshTokenStorageKey') => {\n  // This return value is passed to `refreshAction`\n  return localStorage.getItem(key);\n};\n\nconst config = {\n  refreshAction,\n  retrieveRefreshToken,\n};\n\nconst apiTokenMiddleware = createTokenApiMiddleware(config)\n\nconst store = createStore(\n  reducer,\n  applyMiddleware(apiTokenMiddleware)\n)\n```\n\n## API\n\n#### `createTokenApiMiddleware(config)`\n\nCreates a Redux middleware to handle API objects.\n\nIn the config, you must define at least a `refreshAction` method and a `retrieveRefreshToken`\nmethod, which is used by the middleware to attempt to get a fresh token. This should be an API\naction itself.\n\nOther methods can be passed in via config, but have defaults:\n\n```javascript\n// defaults shown\nconst config = {\n  defaultHeaders: { 'Content-Type': 'application/json' },\n  retrieveRefreshToken: () => {}; // To be implemented by the user for refreshing tokens.\n  tokenStorageKey: 'reduxMiddlewareAuthToken',\n  minTokenLifespan: 300, // seconds (min remaining lifespan to indicate new token should be requested)\n  storeToken: function storeToken(key, response) {\n    let token = response.token;\n    localStorage.setItem(key, JSON.stringify(token));\n    return token;\n  },\n  retrieveToken: function retrieveToken(key) {\n    let storedValue = localStorage.getItem(key);\n    if (!storedValue) {\n      return null;\n    }\n    try {\n      return JSON.parse(storedValue);\n    }\n    catch (e) {\n      if (e instanceof SyntaxError) {\n        return null;\n      }\n      throw e;\n    }\n  },\n  checkTokenFreshness: function checkTokenFreshness(token) {\n    let tokenPayload = jwt_decode(token);\n    let expiry = moment.unix(tokenPayload.exp);\n    return expiry.diff(moment(), 'seconds') > MIN_TOKEN_LIFESPAN;\n  },\n  shouldRequestNewToken: function shouldRequestNewToken() {\n    const token = retrieveToken();\n    return token\n      ? checkTokenFreshness(token)\n      : false;\n  },\n  addTokenToRequest: function defaultAddTokenToRequest(headers, endpoint, body, token) {\n    return {\n      headers: Object.assign({\n        Authorization: `JWT ${token}`\n      }, headers),\n      endpoint,\n      body\n    }\n  }\n}\n```\n\n_Note_: `retrieveRefreshToken`, `storeToken` and `retrieveToken` methods may also return\npromises that the middleware will resolve.\n","readmeFilename":"README.md","gitHead":"a08ca5fc4face02a861a1d2bb0c6416da4ee652d","_id":"redux-token-api-middleware@0.10.4-alpha","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"integrity":"sha512-Bz5yZ9LP6gETM02v084ewpVc/ljFBY3JcJ6sq5SQLJ+YPrc8pCshmoHpIPoS8Kyxw9H6aIYB/zDVgRaGWbXIPQ==","shasum":"2397ae661189c3ddb0dd0a69c192d5a9e1321b12","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.10.4-alpha.tgz","fileCount":10,"unpackedSize":39560,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcghbnCRA9TVsSAnZWagAAeMEP/0bEqITP1kjIJBIs9cAb\nJQqMB+udfgJNLxt1mlIfcWdzuW7t7nuMjp3CkqGdL871976Xq0kjEflPBiS0\nmSL6/1NinhxVKjg8pHuqeNgr+EMSClgZXoaRretKfF+JXmUaueZDSD6Q6plR\nX/bnGanwI2Mejm4fPuh6OpGji3NDVWLKtyRwvuuQ+s4HMjAPL9AfCjQdZnZW\n4+SvS7LahupSJ7CofgnSWOnw6csyead1RHb+rhTEZm+TkHtRhwuUomFK1TAt\nP/ayFpoAKRX2AnTdfoDA6XiU2Wrn/NxvxucdgkhdxnjyiRkZyEAkMnEEHqGo\n3neughbgB+X0RimPIXK+AhSgjWdJzeZtkcdi9o53o3TUUYTk7JLZdbMExZKA\njZpMRHjTnBiWeCM+8/jtHn/0ZAMnUJrLUsdlr3TjfvpxNf8Jlw5c07LeODUI\n6Go6tI0Nz54zxo7Pt+kWUrOS4GuA2nxRK3/EHSUw0xXWRZZooDUYggnMLfUW\nsxm9TDVS29i4iWx7QSy8uXdE+cCYMqiZJs52m6T+bu2CPqFtLvtt0JtWaX55\nM2skChxVhZjBUW9s+Hnyu5oIgIa9qt0g/Hpp26kQKjVJq6OnR3T4jWfAmOP8\nEXrnVsPSOYJteJfy1ZnrxJ/qcU+R3YO4h1Ftmw7Cj0iOotHci98vHMEK2Wz5\neamc\r\n=/i/j\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCIzeFZv2YvV3WSAw3JcaL/iGt/jzASDmKRgHl1K6Q+VQIgcECYQvZqzJgDszkEKnS4JBiMHxhvItq+i0OJWxrcs5c="}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-token-api-middleware_0.10.4-alpha_1552029414864_0.8134721702057512"},"_hasShrinkwrap":false},"0.11.0":{"name":"redux-token-api-middleware","version":"0.11.0","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --require @babel/register --require @babel/polyfill --recursive ./test"},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"ed@autotelic.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"@babel/runtime":"^7.2.0","cross-fetch":"^2.2.2","jwt-decode":"^2.2.0","lodash.curryright":"^4.1.1","lodash.get":"^4.4.2","lodash.identity":"^3.0.0","lodash.isarraylikeobject":"^4.2.0","lodash.isfunction":"^3.0.8","lodash.isundefined":"^3.0.1","lodash.map":"^4.6.0","lodash.omitby":"^4.6.0","lodash.startswith":"^4.2.1","moment":"^2.12.0","moment-timezone":"^0.5.2","redux":"^3.3.1"},"devDependencies":{"@babel/cli":"^7.2.0","@babel/core":"^7.2.0","@babel/plugin-transform-runtime":"^7.2.0","@babel/polyfill":"^7.0.0","@babel/preset-env":"^7.2.0","@babel/register":"^7.0.0","chai":"^4.2.0","jsonwebtoken":"^8.4.0","mocha":"^5.2.0","react":"^16.6.3","react-hot-loader":"^4.3.12","rimraf":"^2.6.2","sinon":"^7.2.0","watch":"^1.0.2"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"9741c3a54b3ba0f1bdb0e5b8a53b663a6b06627f","_id":"redux-token-api-middleware@0.11.0","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"integrity":"sha512-GTgCGK8snOOF2SaG5yY3eQMpFbChJ+EFFCHetQ4jt9dDL4vWJvvo8NnqLdNxkko9v4DeLesIgHhSjmAzMxSeAw==","shasum":"cda788c0b8ca88b030dfa8618523f238d2df3404","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.11.0.tgz","fileCount":10,"unpackedSize":40189,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcgh5hCRA9TVsSAnZWagAAzuIP/00i2OBPCok642iUFA87\nTbOM4Xv94SsKJ5c0qtx3hQXSLLdKTsUL5trI+dE5g56+oOxunHr96vGdu6+w\niDVMAnt40iJHyjKrZDWyycgNmASFF7XmerzQ+iYOHuzf0jd6duz8gbSbvAdv\n43odUwAxMSqXX+A4412DJ8Vs0gk9Kpm0gQyQDJ/3Wpmw/xM7AW2B/ClmaILy\nIfCeJSrT8/qVaZOuG5kQKhJp6txOp5sz4aOGocNTCWR9fsr6Cy7RtuOOe8ad\nMMpSsckaC0Dpxro6m1FnmKwSRapaxE+yROqPWm0yiO+Ed8pNW804XjHhKcMr\nYu9eJ6d2Uwj7egvL1PioHgNWV0alGtGnKhJS1RSIijO06QQcIn6XxrZslte4\nztE6K1h178t5wobKafWc206Sw/gNrjx1Yjj5YPL0yCsbOlGtXO1+zkEphcT4\nuAaXY8ybu7Qpg047TSzXRrYFU2h6Oa75Ng2vdhqQByF/XyAx7sdqxwtmJli2\nSAOxPXID1lKdbkTjX8DycXbZG90JD7ZfEBQaPKQohkQBSrFqQxxrz9xph8P+\nvLNKSqj1Iwx/+6MhfWN07MPfqixpc27eeA1odAY0fFLrEze9CFK8gnX9+cGw\nJY5puQ2aImgooNTMZiPi5hKcnIlQqxUCXQQSsRvwmAg9Gy2TuFVUE609X8nT\nBPnm\r\n=67Mu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC8W6jXdS6ByFds7juoxJ/N+NKNQj5asHrIKw/z4Qb01AiBdUDvRS6jn/qCwUtIqmiKPidd9uggQvfBxfN1PoCr5Ug=="}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-token-api-middleware_0.11.0_1552031329264_0.5791088298640976"},"_hasShrinkwrap":false},"0.11.1":{"name":"redux-token-api-middleware","version":"0.11.1","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --require @babel/register --require @babel/polyfill --recursive ./test"},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"ed@autotelic.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"@babel/runtime":"^7.2.0","cross-fetch":"^2.2.2","jwt-decode":"^2.2.0","lodash.curryright":"^4.1.1","lodash.get":"^4.4.2","lodash.identity":"^3.0.0","lodash.isarraylikeobject":"^4.2.0","lodash.isfunction":"^3.0.8","lodash.isundefined":"^3.0.1","lodash.map":"^4.6.0","lodash.omitby":"^4.6.0","lodash.startswith":"^4.2.1","moment":"^2.12.0","moment-timezone":"^0.5.2","redux":"^3.3.1"},"devDependencies":{"@babel/cli":"^7.2.0","@babel/core":"^7.2.0","@babel/plugin-transform-runtime":"^7.2.0","@babel/polyfill":"^7.0.0","@babel/preset-env":"^7.2.0","@babel/register":"^7.0.0","chai":"^4.2.0","jsonwebtoken":"^8.4.0","mocha":"^5.2.0","react":"^16.6.3","react-hot-loader":"^4.3.12","rimraf":"^2.6.2","sinon":"^7.2.0","watch":"^1.0.2"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"de9bfd525444337531c16440e83f991b13ad9276","_id":"redux-token-api-middleware@0.11.1","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"integrity":"sha512-4gMCtGNUYCByJf8LFkmWO02CuW7QjL1QRf4jhAwdXfNZcw2ERmdRRBzGyBtxLojQx0HNgbAfBYgnHf2WoZ5P8g==","shasum":"46fadc4bea311d1ea9060e1207a030793f4d9ac1","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.11.1.tgz","fileCount":10,"unpackedSize":39457,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcgpbaCRA9TVsSAnZWagAAhZQP/017svDXrw/v7YhOLOsX\n+japfir2B5Qu66ImSzvp1HHsU+VXz6A0cHaqSamiikiWJMiiu5ZpRUNHPHNN\nNTlTepKpEo7BIeypsoBjEnKgDGHxnCxDn0ySDYRqaFrenIniDgp+k+6iibb+\nishIJgZ4mySpa93fBPTHklD+G3te5s22sRRX2abGaJCmkKWDW/9BRa4zHV12\n8lVT2otWeMxPYrQS5rSvmpM8s6wNYy8RcyrCso2WGZcb9YH7EShZm0AYh8lT\nb5qxzzn+6dPjORhSyRhAyTqwzp1aNhmuLy55iZ56OSlI0F0raSjjojYr2lbk\neq8cKhUnul/8PNfGQlI514b7aO1iYwcrxNUmjCUmM0ia2FQau3+oTN3FZP5b\n4Rk3Xd70PLmgZH5ZBO5eRIaLLVT4OTIOjP66n5ZsjqcCEMjHK/xq8uTadB3q\nvNWOPtnKFEqjNebdWwVtasFa8DEb9usw7MzGwAoN/g8wPApMhq/yI9LBKd0W\nY3foplywuHSgMPf+2qldY6zQGjDz1orNw1i41MRH3nvh0U25CXpUeKGWyFOD\n8xL4T3Qq9+H8deLGW9rFOqTVP7geOJwLHWOALPRaWFZNc1G2U7/S1L1vWX42\nPvxsPMhXHfUR7iMcgr3xCXZ6MUYG2InpEvohoaBLkZ8cMjIxEazoEA+z1yEq\nOLBZ\r\n=SyP8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjaX8tP2mf2AVqw4nMJLNkAssNkqaMxTsM9bonXLwpTQIhAK4xdjObNpRY5eKuF1UdKGwVOEuhylcuOP1k+KBhcSD/"}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-token-api-middleware_0.11.1_1552062169767_0.474215455253735"},"_hasShrinkwrap":false},"0.11.2":{"name":"redux-token-api-middleware","version":"0.11.2","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --require @babel/register --require @babel/polyfill --recursive ./test"},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"ed@autotelic.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"@babel/runtime":"^7.2.0","cross-fetch":"^2.2.2","jwt-decode":"^2.2.0","lodash.curryright":"^4.1.1","lodash.get":"^4.4.2","lodash.identity":"^3.0.0","lodash.isarraylikeobject":"^4.2.0","lodash.isfunction":"^3.0.8","lodash.isundefined":"^3.0.1","lodash.map":"^4.6.0","lodash.omitby":"^4.6.0","lodash.startswith":"^4.2.1","moment":"^2.12.0","moment-timezone":"^0.5.2","redux":"^3.3.1"},"devDependencies":{"@babel/cli":"^7.2.0","@babel/core":"^7.2.0","@babel/plugin-transform-runtime":"^7.2.0","@babel/polyfill":"^7.0.0","@babel/preset-env":"^7.2.0","@babel/register":"^7.0.0","chai":"^4.2.0","jsonwebtoken":"^8.4.0","mocha":"^5.2.0","react":"^16.6.3","react-hot-loader":"^4.3.12","rimraf":"^2.6.2","sinon":"^7.2.0","watch":"^1.0.2"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"e49e30050e20a393a79f7beea479883f495537a3","_id":"redux-token-api-middleware@0.11.2","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"integrity":"sha512-19ohueGKYoFhb1+CVujf2KvKSQv9gM+4eY0TJHoZ4glD/MVi8CHeyGsOIg3SU2Q96uSCeEQ5XhFZRkiALcYJlA==","shasum":"e0541108ede6d693635fc56dbb71ab8d20fc37d9","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.11.2.tgz","fileCount":10,"unpackedSize":40092,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJciX7WCRA9TVsSAnZWagAA2ncP/ip7B88A/kgFXkST5aGe\nEsoToj40GUX2LV2e8/Jm3VIgyhpu3R76dm1Cue95B1vI0UMfbdDLpbxabq3a\nc4ioQz5XpEbbV975d0v5ovBPyNrYf0VlitlKPqRpT88uWbyumth0X26hvrHi\nOwL84AXn6IZUAc18DxIwS4nYGXdWDI1cyhZKO3cDwJ4uafJlbmXXfUfJtuvk\nrhyL2B+QPNDGyCDdmspqBfvCHrpcqcxQnoCwUaKCauooHYnbZs2+VVBMsMb7\nvtCdhzAxG+hiN5sWDCpM0daFS5C+4OWRDvViXydDAwogd7uwUn4MTB6LpgN4\nTOnKAfL5TNexy4LcKCcCize62wPVn/I5GsGYPwMzbezlg2hmpHu0T2sUilC0\nM8vf4CZqOK6Zj7xPGwHxdziByvVoKkWc72qKQyFMclQvAjLn10lTmlSxGM6n\nei+/iSnPLo99d0LJqOgne5V8JR4h5vGHd0F3J2k5/cbQgLiEcSCkCP7ZBLHT\nyIKFzndlHbRjQiOuF6Fwdltwyi9kI/xL6J2ksPxhnTwWY8dkJXHqW4P20y29\nf3MySqsRhrHZ07TFycRDuWD3QLluLsB9GqCXb7BEad/6BhKvdg/8ErTJNqdi\nZ89qQe7pi2WatId7i4/3dlAqszKP/fcb9A3WZ0JFGxzx9vJA7+mxRH4YB4W+\nTWmr\r\n=Tr8/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCDBjBZJ0fLt+ZY3pepQwl5z5UzKIk77GIA6sB7gtoSAIgSbUEUsKmgkgkOkledru4KydW5ZlFsUKXp6KLhKAuW30="}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-token-api-middleware_0.11.2_1552514773956_0.863079779091289"},"_hasShrinkwrap":false},"0.12.0":{"name":"redux-token-api-middleware","version":"0.12.0","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --require @babel/register --require @babel/polyfill --recursive ./test"},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"ed@autotelic.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"@babel/runtime":"^7.2.0","cross-fetch":"^2.2.2","jwt-decode":"^2.2.0","lodash.curryright":"^4.1.1","lodash.get":"^4.4.2","lodash.identity":"^3.0.0","lodash.isarraylikeobject":"^4.2.0","lodash.isfunction":"^3.0.8","lodash.isundefined":"^3.0.1","lodash.map":"^4.6.0","lodash.omitby":"^4.6.0","lodash.startswith":"^4.2.1","moment":"^2.12.0","moment-timezone":"^0.5.2","redux":"^3.3.1"},"devDependencies":{"@babel/cli":"^7.2.0","@babel/core":"^7.2.0","@babel/plugin-transform-runtime":"^7.2.0","@babel/polyfill":"^7.0.0","@babel/preset-env":"^7.2.0","@babel/register":"^7.0.0","chai":"^4.2.0","jsonwebtoken":"^8.4.0","mocha":"^5.2.0","react":"^16.6.3","react-hot-loader":"^4.3.12","rimraf":"^2.6.2","sinon":"^7.2.0","watch":"^1.0.2"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"963b1f2ed23ee972c6c4ae9b752474e205eea927","_id":"redux-token-api-middleware@0.12.0","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"integrity":"sha512-DgKfEblOYulPoRrwiYYXBPNPNywv3HaFhWKUOscOscKlBu5TLUnETo+9tc08KK5rmMV0zOJsRTbknEKH4sBjaA==","shasum":"71ff619d74a3d8e1296da3a70630fd731097f4d5","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.12.0.tgz","fileCount":10,"unpackedSize":40634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcmFFXCRA9TVsSAnZWagAAa0IP/1KITzInHO3Frv2jjooo\nrWH9i+dSRDP3pdWICMv+/0cKj8HLqcgvk4K9ftEPZP+N7iuDfVcY4DECqf8l\nu8ah3V0x8MA22dQRqARxLqsov/5gx0ovhjubo/N1hPCBbOAu+b6x80VoI9yp\n1AVsRQpC2HXNIkX6hBPq3Q4rs5o/1LgBbWdrU5ixbsS0YpArEqm8l91ObtwQ\nm7TrRgwjkRtuxNriMSkSmkqoh0IXF8oVB+IY8x+OW0YJQgSpt2SaJK0kwqtL\n7KrGitP7CocIeNeIEoOKZ9mf+Z0/fHRCHliqO9jQGZovRPRtGprhRBqeL2nT\nZwrjn+3yNyuLZv2eiManNzGc7y5g+06IJktX7Wf7YLu9sG4BtFixAdcLOYR4\n91x7avFu32NsDwU9b0s2jFI5MzhIUbeQ/TdiEK4edwq6c/O8aCSiAWi5ruho\nJnSkIP7gvNvEZA0WR8hW5wOM5/dOtfWHZaJZNRDiaUaX9TpoOQ9534Byx2Ll\nStBbTdrDdyoP2/HtuL+0KyuU7KccESaS/ssFV2ikzonrJ6Q41sbivr1rRc4B\nsrmycCGuWqZtIBf4xCDap9X11D0GhUWL+jsU7GKZ66zTc5iEkjZo0xIvI6sF\nV6lkuKVmHS8JIgDzbq+qaLhuAyPddsTevt+WTo+ETC+AfI9NxRWskJg4o68C\nJHsF\r\n=IXup\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDHuO36OujL/JcOzqn6R0DaFx40ZdAN4fjWRn7igBxhIAiEA6tHQhcbCSJaCQ28kMl4BCpUjhS5bqJwfWiEhzt06hhE="}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-token-api-middleware_0.12.0_1553486166576_0.10825171608191786"},"_hasShrinkwrap":false},"0.12.1":{"name":"redux-token-api-middleware","version":"0.12.1","description":"Redux middleware for calling APIs with token-based auth","main":"lib/index.js","scripts":{"lint":"eslint src","build":"rimraf lib && babel src --out-dir lib","build:watch":"watch 'npm run build' ./src/","prepublish":"npm run build","test":"mocha --require @babel/register --require @babel/polyfill --recursive ./test"},"keywords":["javascript","redux","middleware","api","token","jwt"],"author":{"name":"Edward Stone","email":"ed@autotelic.com"},"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","license":"MIT","dependencies":{"@babel/runtime":"^7.2.0","cross-fetch":"^2.2.2","jwt-decode":"^2.2.0","lodash.curryright":"^4.1.1","lodash.get":"^4.4.2","lodash.identity":"^3.0.0","lodash.isarraylikeobject":"^4.2.0","lodash.isfunction":"^3.0.8","lodash.isundefined":"^3.0.1","lodash.map":"^4.6.0","lodash.omitby":"^4.6.0","lodash.startswith":"^4.2.1","moment":"^2.12.0","moment-timezone":"^0.5.2","redux":"^3.3.1"},"devDependencies":{"@babel/cli":"^7.2.0","@babel/core":"^7.2.0","@babel/plugin-transform-runtime":"^7.2.0","@babel/polyfill":"^7.0.0","@babel/preset-env":"^7.2.0","@babel/register":"^7.0.0","chai":"^4.2.0","jsonwebtoken":"^8.4.0","mocha":"^5.2.0","react":"^16.6.3","react-hot-loader":"^4.3.12","rimraf":"^2.6.2","sinon":"^7.2.0","watch":"^1.0.2"},"npmName":"redux-api-token-middleware","npmFileMap":[{"basePath":"/lib/","files":["*.js"]}],"gitHead":"de05d3610ae4fa7a9ea829653da5b4bcb71a9c62","_id":"redux-token-api-middleware@0.12.1","_npmVersion":"6.4.1","_nodeVersion":"8.12.0","_npmUser":{"name":"eadmundo","email":"edwardjstone@yahoo.com"},"dist":{"integrity":"sha512-GA83Xvvx/A8cTiGqR8uZktV3FyB1jwfinE0wHwtIOGxbhPxrU/+3BY/j3XLL4Q6c9STn73X6uwDKyFhayl2MIQ==","shasum":"3f82c8a96312e804d395ebcf34b120869977cce4","tarball":"https://registry.npmjs.org/redux-token-api-middleware/-/redux-token-api-middleware-0.12.1.tgz","fileCount":10,"unpackedSize":40642,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcsQoKCRA9TVsSAnZWagAASQIP/2LVlwE9DVExxaTT1tnQ\nK95Yk0AaX67kAf4VuIjV1WQM7RILBtrLJ01x7uHdEBJCdXlx49M2X1lUytSB\ncN9oL7DGSUuH49akFckVUUcI7XY8zc17uaXaWm6ha5wm8G7cEXfhKdl9WJe+\nAHGIsj5dLpg2o5oOuY4E1+w/Cu0tQ9Y/+ZKrHjYOgwedwckgK3qVd5FzhzmV\nsThJeq0sujTaZRJSUEJ7UxEKZTDA/ZynX/+TyVwOB+8lSkPlCynMOhmhFmcX\n3MSbe0jE8j49CIEaUS8QRDRcPSgvfaxkRD8sIf30ov7afAdJ4sgqaLojM7hy\nKK+ADXNgvZt5ix81QOJSo0JXv6AMaTCEwzRbxJXiRv3rLPEvn4ycKRwkZm1U\nc85TAel8k9rb0NK23LppwoaONm25xGRny9gFFw/Nw+E5QEns6KXUda/Ne4P2\n0eroI5biIupcI0HxBxhVXF0boTXi1qbqdQkOjinuoPHBD5q/42bXZmZ/Nb38\naqSneqgzsSlvoBIFrhRCq/ZlcfmB2vOBTx405mN3EXBuGaw1hhgWltEWVHsI\navOh4ktf8r32C+zwrhdQAXne3kqTp34k2kqzCbgYW5pa90EN/eB5ARd5Xz91\nXIpg0r7RMI5yLqJ9ONQj2weY7GxeA0T4ZNO/emj+Sr2VRpUQ/DwQHKsbedzk\nI+yU\r\n=1eBe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD4G0aLhIMvID3LmaI6sjl/8AvKcnoecEuTyrPM1qDTIwIhAPNYfbQWh1hdKjt0QX5WzgHI4iCuiDxXWZbD65MUzhZH"}]},"maintainers":[{"name":"eadmundo","email":"edwardjstone@yahoo.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/redux-token-api-middleware_0.12.1_1555106313938_0.553156858561014"},"_hasShrinkwrap":false}},"readme":"# redux-token-api-middleware\n\n**Alpha software - currently under heavy development**\n\nA redux middleware for making calls to APIs with token-based auth, automatically\nrequesting a new token if needed. Actions can be calls to single or multiple API\nendpoints.\n\n## Installation\n\n\t$ npm install redux-token-api-middleware\n\n## Usage\n\n### API actions\n\nActions that will be intercepted by the middleware are identified by the symbol\n`CALL_TOKEN_API`, and follow the [Flux Standard Action](https://github.com/acdlite/flux-standard-action) pattern, however they must have a payload and have at least an `endpoint` in the payload.\n\n#### Examples\n\n```javascript\n\nimport { CALL_TOKEN_API } from 'redux-token-api-middleware'\n\nexport const BASIC_GET_ACTION = 'BASIC_GET_ACTION'\nexport const BASIC_POST_ACTION = 'BASIC_POST_ACTION'\n\n// basic GET\n// method defaults to GET if not provided\nconst basicGetAction = () => ({\n  [CALL_TOKEN_API]: {\n    type: BASIC_GET_ACTION,\n    payload: {\n      endpoint: 'http://localhost/foo'\n    }\n  }\n})\n\n// basic POST\nconst basicPostAction = () => ({\n  [CALL_TOKEN_API]: {\n    type: BASIC_POST_ACTION,\n    payload: {\n      endpoint: 'http://localhost/bar',\n      method: 'POST'\n    }\n  }\n})\n```\n\n### Setup\n\n#### `main.js`\n\n```javascript\nimport { createTokenApiMiddleware } from 'redux-token-api-middleware'\nimport { createStore, applyMiddleware } from 'redux'\n\nimport reducer from './reducers'\n\n// example refresh token action\nconst refreshAction = (token) => ({\n  [CALL_TOKEN_API]: {\n    type: 'REFRESH_TOKEN',\n    endpoint: 'http://localhost/token',\n    method: 'POST',\n    body: JSON.stringify(token)\n  }\n})\n\nYou will need to provide a `retrieveRefreshToken` method to the config that will\nreturn the refresh token that is used to obtain a new access token.\n\nconst retrieveRefreshToken = (key = 'RefreshTokenStorageKey') => {\n  // This return value is passed to `refreshAction`\n  return localStorage.getItem(key);\n};\n\nconst config = {\n  refreshAction,\n  retrieveRefreshToken,\n};\n\nconst apiTokenMiddleware = createTokenApiMiddleware(config)\n\nconst store = createStore(\n  reducer,\n  applyMiddleware(apiTokenMiddleware)\n)\n```\n\n## API\n\n#### `createTokenApiMiddleware(config)`\n\nCreates a Redux middleware to handle API objects.\n\nIn the config, you must define at least a `refreshAction` method and a `retrieveRefreshToken`\nmethod, which is used by the middleware to attempt to get a fresh token. This should be an API\naction itself.\n\nOther methods can be passed in via config, but have defaults:\n\n```javascript\n// defaults shown\nconst config = {\n  defaultHeaders: { 'Content-Type': 'application/json' },\n  retrieveRefreshToken: () => {}; // To be implemented by the user for refreshing tokens.\n  tokenStorageKey: 'reduxMiddlewareAuthToken',\n  minTokenLifespan: 300, // seconds (min remaining lifespan to indicate new token should be requested)\n  storeToken: function storeToken(key, response) {\n    let token = response.token;\n    localStorage.setItem(key, JSON.stringify(token));\n    return token;\n  },\n  retrieveToken: function retrieveToken(key) {\n    let storedValue = localStorage.getItem(key);\n    if (!storedValue) {\n      return null;\n    }\n    try {\n      return JSON.parse(storedValue);\n    }\n    catch (e) {\n      if (e instanceof SyntaxError) {\n        return null;\n      }\n      throw e;\n    }\n  },\n  checkTokenFreshness: function checkTokenFreshness(token) {\n    let tokenPayload = jwt_decode(token);\n    let expiry = moment.unix(tokenPayload.exp);\n    return expiry.diff(moment(), 'seconds') > MIN_TOKEN_LIFESPAN;\n  },\n  shouldRequestNewToken: function shouldRequestNewToken() {\n    const token = retrieveToken();\n    return token\n      ? checkTokenFreshness(token)\n      : false;\n  },\n  addTokenToRequest: function defaultAddTokenToRequest(headers, endpoint, body, token) {\n    return {\n      headers: Object.assign({\n        Authorization: `JWT ${token}`\n      }, headers),\n      endpoint,\n      body\n    }\n  }\n}\n```\n\n_Note_: `retrieveRefreshToken`, `storeToken` and `retrieveToken` methods may also return\npromises that the middleware will resolve.\n","maintainers":[{"email":"holden@autotelic.com","name":"hwhitehead"},{"email":"james@autotelic.com","name":"james_autotelic"},{"email":"edwardjstone@yahoo.com","name":"autotelicdev"}],"time":{"modified":"2022-06-26T10:30:47.471Z","created":"2016-03-29T03:14:19.082Z","0.1.0":"2016-03-29T03:14:19.082Z","0.1.1":"2016-03-29T03:19:39.166Z","0.1.2":"2016-03-30T18:01:56.530Z","0.2.0":"2016-09-09T17:15:40.642Z","0.3.0":"2016-10-21T20:40:36.640Z","0.4.0":"2016-11-23T02:48:19.900Z","0.4.1":"2016-11-28T23:47:24.370Z","0.4.2":"2017-02-13T19:12:39.121Z","0.5.0":"2017-03-14T21:49:23.256Z","0.6.0":"2017-03-20T19:09:29.383Z","0.6.1":"2017-04-29T15:15:23.653Z","0.7.0":"2017-05-08T23:37:58.617Z","0.8.1":"2017-05-11T20:33:41.340Z","0.8.2":"2017-05-11T20:43:16.409Z","0.8.3":"2017-05-15T20:47:37.308Z","0.8.4":"2017-06-09T12:30:33.527Z","0.8.5":"2018-10-19T21:25:30.577Z","0.8.6":"2018-10-25T19:21:07.845Z","0.8.7":"2018-11-02T22:25:00.261Z","0.8.8":"2018-11-13T23:03:45.048Z","0.8.9":"2018-11-28T04:37:44.888Z","0.8.10-0":"2018-12-11T00:57:57.361Z","0.8.10-1":"2018-12-11T01:50:29.507Z","0.9.0":"2019-01-16T05:48:18.267Z","0.9.1":"2019-01-16T16:59:29.027Z","0.9.1-alpha":"2019-01-18T19:44:29.467Z","0.10.0":"2019-01-24T00:54:51.366Z","0.10.1-alpha":"2019-01-25T21:21:54.115Z","0.10.1":"2019-02-26T22:51:13.952Z","0.10.2-alpha":"2019-02-26T23:12:18.331Z","0.10.3-alpha":"2019-02-27T07:27:25.845Z","0.10.4-alpha":"2019-03-08T07:16:55.173Z","0.11.0":"2019-03-08T07:48:49.419Z","0.11.1":"2019-03-08T16:22:49.894Z","0.11.2":"2019-03-13T22:06:14.133Z","0.12.0":"2019-03-25T03:56:06.717Z","0.12.1":"2019-04-12T21:58:34.040Z"},"homepage":"https://github.com/eadmundo/redux-token-api-middleware","keywords":["javascript","redux","middleware","api","token","jwt"],"repository":{"type":"git","url":"git+https://github.com/eadmundo/redux-token-api-middleware.git"},"author":{"name":"Edward Stone","email":"ed@autotelic.com"},"bugs":{"url":"https://github.com/eadmundo/redux-token-api-middleware/issues"},"license":"MIT","readmeFilename":"README.md","users":{"moimikey":true,"davidjsalazarmoreno":true,"rahulraghavankklm":true}}