{"_id":"popsicle-cache","_rev":"454515","name":"popsicle-cache","description":"Cache HTTP responses using Popsicle","dist-tags":{"latest":"5.0.1"},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"time":{"modified":"2021-08-05T07:16:58.000Z","created":"2015-09-19T01:00:29.877Z","5.0.1":"2016-12-19T02:02:49.172Z","5.0.0":"2016-12-19T00:54:39.874Z","4.1.0":"2016-12-05T20:39:35.556Z","4.0.0":"2016-11-25T22:48:22.324Z","3.1.0":"2016-02-01T22:43:35.198Z","3.0.0":"2016-01-10T02:15:46.390Z","2.0.1":"2016-01-08T23:43:15.689Z","2.0.0":"2015-12-27T00:53:33.199Z","1.0.0":"2015-11-04T08:14:09.569Z","0.2.0":"2015-11-01T23:00:29.582Z","0.1.1":"2015-10-28T23:16:16.034Z","0.1.0":"2015-10-28T23:14:32.635Z","0.0.4":"2015-10-10T22:35:36.965Z","0.0.3":"2015-09-21T21:51:45.153Z","0.0.2":"2015-09-19T01:06:31.845Z","0.0.1":"2015-09-19T01:00:29.877Z"},"users":{"shanewholloway":true},"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com"},"repository":{"type":"git","url":"git://github.com/blakeembrey/popsicle-cache.git"},"versions":{"5.0.1":{"name":"popsicle-cache","version":"5.0.1","description":"Cache HTTP responses using Popsicle","main":"dist/index.js","browser":"dist/browser.js","files":["dist/","LICENSE"],"scripts":{"lint":"tslint \"src/**/*.ts\"","build":"rimraf dist && tsc","test-cov":"jest --verbose --coverage","test":"npm run lint && npm run build && npm run test-cov","prepublish":"typings install && npm run build"},"repository":{"type":"git","url":"git://github.com/blakeembrey/popsicle-cache.git"},"keywords":[],"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com"},"license":"MIT","bugs":{"url":"https://github.com/blakeembrey/popsicle-cache/issues"},"homepage":"https://github.com/blakeembrey/popsicle-cache","devDependencies":{"catbox-memory":"^2.0.4","jest":"^18.0.0","nock":"^9.0.2","popsicle":"^9.0.0","rimraf":"^2.4.3","tslint":"^4.1.1","tslint-config-standard":"^2.0.0","typescript":"^2.1.4","typings":"^2.0.0"},"dependencies":{"catbox":"^7.1.2"},"gitHead":"476427786c7a584982ea33a60e703ecddcf86125","_id":"popsicle-cache@5.0.1","_shasum":"abdac3c2c8c1ed049b3be4f62b639ce673a9a6a8","_from":".","_npmVersion":"4.0.3","_nodeVersion":"6.9.1","_npmUser":{"name":"blakeembrey","email":"hello@blakeembrey.com"},"dist":{"shasum":"abdac3c2c8c1ed049b3be4f62b639ce673a9a6a8","size":16381,"noattachment":false,"key":"/popsicle-cache/-/popsicle-cache-5.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/popsicle-cache/download/popsicle-cache-5.0.1.tgz"},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/popsicle-cache-5.0.1.tgz_1482112967398_0.6954927714541554"},"directories":{},"publish_time":1482112969172,"_cnpm_publish_time":1482112969172,"_hasShrinkwrap":false},"5.0.0":{"name":"popsicle-cache","version":"5.0.0","description":"Cache HTTP responses using Popsicle","main":"dist/index.js","browser":"dist/browser.js","files":["dist/","LICENSE"],"scripts":{"lint":"tslint \"src/**/*.ts\"","build":"rimraf dist && tsc","test-cov":"jest --verbose --coverage","test":"npm run lint && npm run build && npm run test-cov","prepublish":"typings install && npm run build"},"repository":{"type":"git","url":"git://github.com/blakeembrey/popsicle-cache.git"},"keywords":[],"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com"},"license":"MIT","bugs":{"url":"https://github.com/blakeembrey/popsicle-cache/issues"},"homepage":"https://github.com/blakeembrey/popsicle-cache","devDependencies":{"catbox-memory":"^2.0.4","jest":"^18.0.0","nock":"^9.0.2","popsicle":"^9.0.0","rimraf":"^2.4.3","tslint":"^4.1.1","tslint-config-standard":"^2.0.0","typescript":"^2.1.4","typings":"^2.0.0"},"dependencies":{"catbox":"^7.1.2"},"gitHead":"118820f88a0c77258e30f355023cbb7a349b37bd","_id":"popsicle-cache@5.0.0","_shasum":"fed0fa819c1e36f6e31aeaae5a08a6f895eacbb0","_from":".","_npmVersion":"4.0.3","_nodeVersion":"6.9.1","_npmUser":{"name":"blakeembrey","email":"hello@blakeembrey.com"},"dist":{"shasum":"fed0fa819c1e36f6e31aeaae5a08a6f895eacbb0","size":16268,"noattachment":false,"key":"/popsicle-cache/-/popsicle-cache-5.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/popsicle-cache/download/popsicle-cache-5.0.0.tgz"},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/popsicle-cache-5.0.0.tgz_1482108878117_0.5599990012124181"},"directories":{},"publish_time":1482108879874,"_cnpm_publish_time":1482108879874,"_hasShrinkwrap":false},"4.1.0":{"name":"popsicle-cache","version":"4.1.0","description":"Cache HTTP responses using Popsicle","main":"dist/index.js","browser":"dist/browser.js","files":["dist/","LICENSE"],"scripts":{"lint":"tslint \"src/**/*.ts\"","build":"rimraf dist && tsc","test-cov":"jest --verbose --coverage","test":"npm run lint && npm run build && npm run test-cov","prepublish":"typings install && npm run build"},"repository":{"type":"git","url":"git://github.com/blakeembrey/popsicle-cache.git"},"keywords":[],"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com"},"license":"MIT","bugs":{"url":"https://github.com/blakeembrey/popsicle-cache/issues"},"homepage":"https://github.com/blakeembrey/popsicle-cache","devDependencies":{"catbox-memory":"^2.0.4","jest":"^17.0.3","nock":"^9.0.2","popsicle":"^8.2.0","rimraf":"^2.4.3","tslint":"^3.15.1","tslint-config-standard":"^1.5.0","typescript":"^2.1.1","typings":"^2.0.0"},"dependencies":{"catbox":"^7.1.2"},"gitHead":"d90e76daf9e3832acc3f8a0f54c354cc847ede35","_id":"popsicle-cache@4.1.0","_shasum":"fcab98cd0201949d4a7e5a1b3210ebc3a114e34b","_from":".","_npmVersion":"4.0.3","_nodeVersion":"6.9.1","_npmUser":{"name":"blakeembrey","email":"hello@blakeembrey.com"},"dist":{"shasum":"fcab98cd0201949d4a7e5a1b3210ebc3a114e34b","size":15880,"noattachment":false,"key":"/popsicle-cache/-/popsicle-cache-4.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/popsicle-cache/download/popsicle-cache-4.1.0.tgz"},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/popsicle-cache-4.1.0.tgz_1480970375320_0.7579728001728654"},"directories":{},"publish_time":1480970375556,"_cnpm_publish_time":1480970375556,"_hasShrinkwrap":false},"4.0.0":{"name":"popsicle-cache","version":"4.0.0","description":"Cache HTTP responses using Popsicle","main":"dist/index.js","browser":"dist/browser.js","files":["dist/","LICENSE"],"scripts":{"lint":"tslint \"src/**/*.ts\"","build":"rimraf dist && tsc","test-cov":"jest --verbose --coverage","test":"npm run lint && npm run build && npm run test-cov","prepublish":"typings install && npm run build"},"repository":{"type":"git","url":"git://github.com/blakeembrey/popsicle-cache.git"},"keywords":[],"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com"},"license":"MIT","bugs":{"url":"https://github.com/blakeembrey/popsicle-cache/issues"},"homepage":"https://github.com/blakeembrey/popsicle-cache","devDependencies":{"catbox-memory":"^2.0.4","jest":"^17.0.3","nock":"^9.0.2","popsicle":"^8.2.0","rimraf":"^2.4.3","tslint":"^3.15.1","tslint-config-standard":"^1.5.0","typescript":"^2.1.1","typings":"^2.0.0"},"dependencies":{"catbox":"^7.1.2"},"gitHead":"3962f1436f998d884617e87a94c5d44f222a71e7","_id":"popsicle-cache@4.0.0","_shasum":"1db2b11d2bc5f0748ae5503c801be3092c11285c","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.9.1","_npmUser":{"name":"blakeembrey","email":"hello@blakeembrey.com"},"dist":{"shasum":"1db2b11d2bc5f0748ae5503c801be3092c11285c","size":15739,"noattachment":false,"key":"/popsicle-cache/-/popsicle-cache-4.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/popsicle-cache/download/popsicle-cache-4.0.0.tgz"},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/popsicle-cache-4.0.0.tgz_1480114100403_0.8996945263352245"},"directories":{},"publish_time":1480114102324,"_cnpm_publish_time":1480114102324,"_hasShrinkwrap":false},"3.1.0":{"name":"popsicle-cache","version":"3.1.0","description":"Override the Popsicle transport mechanism with HTTP caching","main":"lib/index.js","browser":"lib/browser.js","files":["lib/","LICENSE"],"scripts":{"lint":"standard","test-spec":"blue-tape \"lib/**/*.spec.js\"","test-cov":"istanbul cover --print none -x *.spec.js blue-tape -- \"lib/**/*.spec.js\" | tap-spec","test":"npm run lint && npm run test-cov"},"standard":{"ignore":["coverage/**","node_modules/**","bower_components/**"]},"repository":{"type":"git","url":"git://github.com/blakeembrey/popsicle-cache.git"},"keywords":[],"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com"},"license":"MIT","bugs":{"url":"https://github.com/blakeembrey/popsicle-cache/issues"},"homepage":"https://github.com/blakeembrey/popsicle-cache","devDependencies":{"blue-tape":"^0.1.10","bluebird":"^3.0.5","istanbul":"^0.4.1","nock":"^7.0.2","popsicle":"^3.0.0","pre-commit":"^1.1.1","rimraf":"^2.4.3","standard":"^5.3.0","tap-spec":"^4.1.1"},"dependencies":{"any-promise":"^1.0.0","graceful-fs":"^4.1.2","is-stream":"^1.0.1","lru-cache":"^4.0.0","mkdirp":"^0.5.1","thenify":"^3.1.1"},"gitHead":"f2ee89aae7da7012ad8feb1fc683a792870faa91","_id":"popsicle-cache@3.1.0","_shasum":"c94fc158c9db00205283aff7e667902dcf6f0e62","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.4.1","_npmUser":{"name":"blakeembrey","email":"hello@blakeembrey.com"},"dist":{"shasum":"c94fc158c9db00205283aff7e667902dcf6f0e62","size":5662,"noattachment":false,"key":"/popsicle-cache/-/popsicle-cache-3.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/popsicle-cache/download/popsicle-cache-3.1.0.tgz"},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"_npmOperationalInternal":{"host":"packages-6-west.internal.npmjs.com","tmp":"tmp/popsicle-cache-3.1.0.tgz_1454366614545_0.7460531645920128"},"directories":{},"publish_time":1454366615198,"_cnpm_publish_time":1454366615198,"_hasShrinkwrap":false},"3.0.0":{"name":"popsicle-cache","version":"3.0.0","description":"Override the Popsicle transport mechanism with HTTP caching","main":"lib/index.js","browser":"lib/browser.js","files":["lib/","LICENSE"],"scripts":{"lint":"standard","test-spec":"blue-tape \"lib/**/*.spec.js\"","test-cov":"istanbul cover --print none -x *.spec.js blue-tape -- \"lib/**/*.spec.js\" | tap-spec","test":"npm run lint && npm run test-cov"},"standard":{"ignore":["coverage/**","node_modules/**","bower_components/**"]},"repository":{"type":"git","url":"git://github.com/blakeembrey/popsicle-cache.git"},"keywords":[],"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com"},"license":"MIT","bugs":{"url":"https://github.com/blakeembrey/popsicle-cache/issues"},"homepage":"https://github.com/blakeembrey/popsicle-cache","devDependencies":{"blue-tape":"^0.1.10","bluebird":"^3.0.5","istanbul":"^0.4.1","nock":"^5.2.1","popsicle":"^3.0.0","pre-commit":"^1.1.1","rimraf":"^2.4.3","standard":"^5.3.0","tap-spec":"^4.1.1"},"dependencies":{"graceful-fs":"^4.1.2","is-stream":"^1.0.1","lru-cache":"^4.0.0","mkdirp":"^0.5.1","native-or-bluebird":"^1.2.0","thenify":"^3.1.1"},"gitHead":"8a5b26f597b6eb99bbde439d612b179aa03c41cb","_id":"popsicle-cache@3.0.0","_shasum":"36f641d70865cd8b2f8fe67b3bed79c5b5441d42","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.0","_npmUser":{"name":"blakeembrey","email":"hello@blakeembrey.com"},"dist":{"shasum":"36f641d70865cd8b2f8fe67b3bed79c5b5441d42","size":5638,"noattachment":false,"key":"/popsicle-cache/-/popsicle-cache-3.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/popsicle-cache/download/popsicle-cache-3.0.0.tgz"},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"directories":{},"publish_time":1452392146390,"_cnpm_publish_time":1452392146390,"_hasShrinkwrap":false},"2.0.1":{"name":"popsicle-cache","version":"2.0.1","description":"Override the Popsicle transport mechanism with HTTP caching","main":"lib/index.js","browser":"lib/browser.js","files":["lib/","LICENSE"],"scripts":{"lint":"standard","test-spec":"blue-tape \"lib/**/*.spec.js\"","test-cov":"istanbul cover --print none -x *.spec.js blue-tape -- \"lib/**/*.spec.js\" | tap-spec","test":"npm run lint && npm run test-cov"},"standard":{"ignore":["coverage/**","node_modules/**","bower_components/**"]},"repository":{"type":"git","url":"git://github.com/blakeembrey/popsicle-cache.git"},"keywords":[],"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com"},"license":"MIT","bugs":{"url":"https://github.com/blakeembrey/popsicle-cache/issues"},"homepage":"https://github.com/blakeembrey/popsicle-cache","devDependencies":{"blue-tape":"^0.1.10","bluebird":"^3.0.5","istanbul":"^0.4.1","nock":"^5.2.1","popsicle":"^2.0.1","pre-commit":"^1.1.1","rimraf":"^2.4.3","standard":"^5.3.0","tap-spec":"^4.1.1"},"dependencies":{"graceful-fs":"^4.1.2","is-stream":"^1.0.1","lru-cache":"^4.0.0","mkdirp":"^0.5.1","native-or-bluebird":"^1.2.0","thenify":"^3.1.1"},"gitHead":"349ac86a082f483b7714f21fde2cc0d8be39ad03","_id":"popsicle-cache@2.0.1","_shasum":"3f46906d18ac8738e7098ede6e6f6598c2af5cd3","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.4.0","_npmUser":{"name":"blakeembrey","email":"hello@blakeembrey.com"},"dist":{"shasum":"3f46906d18ac8738e7098ede6e6f6598c2af5cd3","size":5629,"noattachment":false,"key":"/popsicle-cache/-/popsicle-cache-2.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/popsicle-cache/download/popsicle-cache-2.0.1.tgz"},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"directories":{},"publish_time":1452296595689,"_cnpm_publish_time":1452296595689,"_hasShrinkwrap":false},"2.0.0":{"name":"popsicle-cache","version":"2.0.0","description":"Override the Popsicle transport mechanism with HTTP caching","main":"lib/index.js","browser":"lib/browser.js","files":["lib/","LICENSE"],"scripts":{"lint":"standard","test-spec":"blue-tape \"lib/**/*.spec.js\"","test-cov":"istanbul cover --print none -x *.spec.js blue-tape -- \"lib/**/*.spec.js\" | tap-spec","test":"npm run lint && npm run test-cov"},"standard":{"ignore":["coverage/**","node_modules/**","bower_components/**"]},"repository":{"type":"git","url":"git://github.com/blakeembrey/popsicle-cache.git"},"keywords":[],"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com"},"license":"MIT","bugs":{"url":"https://github.com/blakeembrey/popsicle-cache/issues"},"homepage":"https://github.com/blakeembrey/popsicle-cache","devDependencies":{"blue-tape":"^0.1.10","bluebird":"^3.0.5","istanbul":"^0.3.20","nock":"^2.12.0","popsicle":"^2.0.1","pre-commit":"^1.1.1","rimraf":"^2.4.3","standard":"^5.3.0","tap-spec":"^4.1.1"},"dependencies":{"graceful-fs":"^4.1.2","is-stream":"^1.0.1","lru-cache":"^2.7.0","mkdirp":"^0.5.1","native-or-bluebird":"^1.2.0","thenify":"^3.1.1"},"gitHead":"ffa5bef08037f84313b709c2fb1668b789d1061b","_id":"popsicle-cache@2.0.0","_shasum":"0b2cda854bd3e865bd34c514ac2dcd960eaf560b","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.1.0","_npmUser":{"name":"blakeembrey","email":"hello@blakeembrey.com"},"dist":{"shasum":"0b2cda854bd3e865bd34c514ac2dcd960eaf560b","size":5672,"noattachment":false,"key":"/popsicle-cache/-/popsicle-cache-2.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/popsicle-cache/download/popsicle-cache-2.0.0.tgz"},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"directories":{},"publish_time":1451177613199,"_cnpm_publish_time":1451177613199,"_hasShrinkwrap":false},"1.0.0":{"name":"popsicle-cache","version":"1.0.0","description":"Override the Popsicle transport mechanism with HTTP caching","main":"lib/index.js","browser":"lib/browser.js","files":["lib/","LICENSE"],"scripts":{"lint":"standard","test-spec":"blue-tape {lib,test}/**/*.spec.js","test-cov":"istanbul cover --print none -x *.spec.js blue-tape -- {lib,test}/**/*.spec.js | tap-dot","test":"npm run lint && npm run test-cov"},"standard":{"ignore":["coverage/**","node_modules/**","bower_components/**"]},"repository":{"type":"git","url":"git://github.com/blakeembrey/popsicle-cache.git"},"keywords":[],"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com"},"license":"MIT","bugs":{"url":"https://github.com/blakeembrey/popsicle-cache/issues"},"homepage":"https://github.com/blakeembrey/popsicle-cache","devDependencies":{"blue-tape":"^0.1.10","bluebird":"^3.0.5","istanbul":"^0.3.20","nock":"^2.12.0","popsicle":"^1.2.2","pre-commit":"^1.1.1","rimraf":"^2.4.3","standard":"^5.3.0","tap-dot":"^1.0.0"},"dependencies":{"graceful-fs":"^4.1.2","is-stream":"^1.0.1","lru-cache":"^2.7.0","mkdirp":"^0.5.1","native-or-bluebird":"^1.2.0","thenify":"^3.1.1"},"gitHead":"722e0d3e680486df225ca515d830477eee19fb0c","_id":"popsicle-cache@1.0.0","_shasum":"8660ac876fc05191d1185c6e7be58b7a7391e148","_from":".","_npmVersion":"3.3.6","_nodeVersion":"5.0.0","_npmUser":{"name":"blakeembrey","email":"hello@blakeembrey.com"},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"dist":{"shasum":"8660ac876fc05191d1185c6e7be58b7a7391e148","size":5672,"noattachment":false,"key":"/popsicle-cache/-/popsicle-cache-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/popsicle-cache/download/popsicle-cache-1.0.0.tgz"},"directories":{},"publish_time":1446624849569,"_cnpm_publish_time":1446624849569,"_hasShrinkwrap":false},"0.2.0":{"name":"popsicle-cache","version":"0.2.0","description":"Override the Popsicle transport mechanism with HTTP caching","main":"lib/index.js","files":["lib/","LICENSE"],"scripts":{"lint":"standard","test-spec":"blue-tape {lib,test}/**/*.spec.js | tap-dot","test-cov":"istanbul cover --print none -x *.spec.js blue-tape -- {lib,test}/**/*.spec.js | tap-dot","test":"npm run lint && npm run test-cov"},"standard":{"ignore":["coverage/**","node_modules/**","bower_components/**"]},"repository":{"type":"git","url":"git://github.com/blakeembrey/popsicle-cache.git"},"keywords":[],"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com"},"license":"MIT","bugs":{"url":"https://github.com/blakeembrey/popsicle-cache/issues"},"homepage":"https://github.com/blakeembrey/popsicle-cache","devDependencies":{"blue-tape":"^0.1.10","bluebird":"^3.0.5","istanbul":"^0.3.20","nock":"^2.12.0","popsicle":"^1.1.1","pre-commit":"^1.1.1","rimraf":"^2.4.3","standard":"^5.3.0","tap-dot":"^1.0.0"},"dependencies":{"is-stream":"^1.0.1","mkdirp":"^0.5.1","native-or-bluebird":"^1.2.0"},"gitHead":"494db340f50409ce830ce1be5671a4a9c743579e","_id":"popsicle-cache@0.2.0","_shasum":"c00f7acafdea1166feb9e3c39a41d50eab9d7b75","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"blakeembrey","email":"hello@blakeembrey.com"},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"dist":{"shasum":"c00f7acafdea1166feb9e3c39a41d50eab9d7b75","size":4888,"noattachment":false,"key":"/popsicle-cache/-/popsicle-cache-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/popsicle-cache/download/popsicle-cache-0.2.0.tgz"},"directories":{},"publish_time":1446418829582,"_cnpm_publish_time":1446418829582,"_hasShrinkwrap":false},"0.1.1":{"name":"popsicle-cache","version":"0.1.1","description":"Override the Popsicle transport mechanism with HTTP caching","main":"lib/index.js","files":["lib/","LICENSE"],"scripts":{"lint":"standard","test-spec":"blue-tape {lib,test}/**/*.spec.js | tap-dot","test-cov":"istanbul cover --print none -x *.spec.js blue-tape -- {lib,test}/**/*.spec.js | tap-dot","test":"npm run lint && npm run test-cov"},"standard":{"ignore":["coverage/**","node_modules/**","bower_components/**"]},"repository":{"type":"git","url":"git://github.com/blakeembrey/popsicle-cache.git"},"keywords":[],"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com"},"license":"MIT","bugs":{"url":"https://github.com/blakeembrey/popsicle-cache/issues"},"homepage":"https://github.com/blakeembrey/popsicle-cache","devDependencies":{"blue-tape":"^0.1.10","es6-promise":"^3.0.2","istanbul":"^0.3.20","nock":"^2.12.0","popsicle":"^1.1.1","pre-commit":"^1.1.1","rimraf":"^2.4.3","standard":"^5.3.0","tap-dot":"^1.0.0"},"dependencies":{"is-stream":"^1.0.1","mkdirp":"^0.5.1"},"gitHead":"057121afb24e6d317bcb6726b906d75384013a87","_id":"popsicle-cache@0.1.1","_shasum":"161964bdb068bc5eda507390e091c8936512d4a6","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.1","_npmUser":{"name":"blakeembrey","email":"hello@blakeembrey.com"},"dist":{"shasum":"161964bdb068bc5eda507390e091c8936512d4a6","size":4877,"noattachment":false,"key":"/popsicle-cache/-/popsicle-cache-0.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/popsicle-cache/download/popsicle-cache-0.1.1.tgz"},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"directories":{},"publish_time":1446074176034,"_cnpm_publish_time":1446074176034,"_hasShrinkwrap":false},"0.1.0":{"name":"popsicle-cache","version":"0.1.0","description":"Override the Popsicle transport mechanism with HTTP caching","main":"lib/index.js","files":["lib/","LICENSE"],"scripts":{"lint":"standard","test-spec":"blue-tape {lib,test}/**/*.spec.js | tap-dot","test-cov":"istanbul cover --print none -x *.spec.js blue-tape -- {lib,test}/**/*.spec.js | tap-dot","test":"npm run lint && npm run test-cov"},"standard":{"ignore":["coverage/**","node_modules/**","bower_components/**"]},"repository":{"type":"git","url":"git://github.com/blakeembrey/popsicle-cache.git"},"keywords":[],"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com"},"license":"MIT","bugs":{"url":"https://github.com/blakeembrey/popsicle-cache/issues"},"homepage":"https://github.com/blakeembrey/popsicle-cache","devDependencies":{"blue-tape":"^0.1.10","es6-promise":"^3.0.2","istanbul":"^0.3.20","nock":"^2.12.0","popsicle":"^1.1.1","pre-commit":"^1.1.1","rimraf":"^2.4.3","standard":"^5.3.0","tap-dot":"^1.0.0"},"dependencies":{"is-stream":"^1.0.1","mkdirp":"^0.5.1"},"gitHead":"cab508972eb8cd18d199b5cedd21303fab60b692","_id":"popsicle-cache@0.1.0","_shasum":"12d5b9122b784ec8aaa1e2a86c638c16970b4071","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.1","_npmUser":{"name":"blakeembrey","email":"hello@blakeembrey.com"},"dist":{"shasum":"12d5b9122b784ec8aaa1e2a86c638c16970b4071","size":4480,"noattachment":false,"key":"/popsicle-cache/-/popsicle-cache-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/popsicle-cache/download/popsicle-cache-0.1.0.tgz"},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"directories":{},"publish_time":1446074072635,"_cnpm_publish_time":1446074072635,"_hasShrinkwrap":false},"0.0.4":{"name":"popsicle-cache","version":"0.0.4","description":"Override the Popsicle transport mechanism with HTTP caching","main":"lib/index.js","files":["lib/","LICENSE"],"scripts":{"lint":"standard","test-spec":"blue-tape {lib,test}/**/*.spec.js","test-cov":"istanbul cover --print none -x *.spec.js blue-tape -- {lib,test}/**/*.spec.js | tap-dot","test":"npm run lint && npm run test-cov"},"standard":{"ignore":["coverage/**","node_modules/**","bower_components/**"]},"repository":{"type":"git","url":"git://github.com/blakeembrey/popsicle-cache.git"},"keywords":[],"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com"},"license":"MIT","bugs":{"url":"https://github.com/blakeembrey/popsicle-cache/issues"},"homepage":"https://github.com/blakeembrey/popsicle-cache","devDependencies":{"blue-tape":"^0.1.10","es6-promise":"^3.0.2","istanbul":"^0.3.20","nock":"^2.12.0","popsicle":"^1.1.1","pre-commit":"^1.1.1","rimraf":"^2.4.3","standard":"^5.3.0","tap-dot":"^1.0.0"},"dependencies":{"fs-memory-store":"^0.2.0","is-stream":"^1.0.1"},"gitHead":"5ce8ac6568358a07148a53213618df5e00b4f32b","_id":"popsicle-cache@0.0.4","_shasum":"84db6058e37da78c3883af17d8e2f483a89524c2","_from":".","_npmVersion":"2.14.2","_nodeVersion":"4.0.0","_npmUser":{"name":"blakeembrey","email":"hello@blakeembrey.com"},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"dist":{"shasum":"84db6058e37da78c3883af17d8e2f483a89524c2","size":4365,"noattachment":false,"key":"/popsicle-cache/-/popsicle-cache-0.0.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/popsicle-cache/download/popsicle-cache-0.0.4.tgz"},"directories":{},"publish_time":1444516536965,"_cnpm_publish_time":1444516536965,"_hasShrinkwrap":false},"0.0.3":{"name":"popsicle-cache","version":"0.0.3","description":"Override the Popsicle transport mechanism with HTTP caching","main":"lib/index.js","files":["lib/","LICENSE"],"scripts":{"lint":"standard","test-spec":"blue-tape {lib,test}/**/*.spec.js","test-cov":"istanbul cover --print none -x *.spec.js blue-tape -- {lib,test}/**/*.spec.js | tap-dot","test":"npm run lint && npm run test-cov"},"standard":{"ignore":["coverage/**","node_modules/**","bower_components/**"]},"repository":{"type":"git","url":"git://github.com/blakeembrey/popsicle-cache.git"},"keywords":[],"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com"},"license":"MIT","bugs":{"url":"https://github.com/blakeembrey/popsicle-cache/issues"},"homepage":"https://github.com/blakeembrey/popsicle-cache","devDependencies":{"blue-tape":"^0.1.10","es6-promise":"^3.0.2","istanbul":"^0.3.20","nock":"^2.12.0","popsicle":"^1.1.1","pre-commit":"^1.1.1","rimraf":"^2.4.3","standard":"^5.3.0","tap-dot":"^1.0.0"},"dependencies":{"fs-memory-store":"^0.2.0","is-stream":"^1.0.1"},"gitHead":"337481072e3daf7987c54490be903a1e93253886","_id":"popsicle-cache@0.0.3","_shasum":"8b047b922032db7db252ff9277bc5835f0b5741d","_from":".","_npmVersion":"2.14.2","_nodeVersion":"4.0.0","_npmUser":{"name":"blakeembrey","email":"hello@blakeembrey.com"},"dist":{"shasum":"8b047b922032db7db252ff9277bc5835f0b5741d","size":3962,"noattachment":false,"key":"/popsicle-cache/-/popsicle-cache-0.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/popsicle-cache/download/popsicle-cache-0.0.3.tgz"},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"directories":{},"publish_time":1442872305153,"_cnpm_publish_time":1442872305153,"_hasShrinkwrap":false},"0.0.2":{"name":"popsicle-cache","version":"0.0.2","description":"Override the Popsicle transport mechanism with HTTP caching","main":"lib/index.js","files":["lib/","LICENSE"],"scripts":{"lint":"standard","test-spec":"blue-tape {lib,test}/**/*.spec.js","test-cov":"istanbul cover --print none -x *.spec.js blue-tape -- {lib,test}/**/*.spec.js | tap-dot","test":"npm run lint && npm run test-cov"},"standard":{"ignore":["coverage/**","node_modules/**","bower_components/**"]},"repository":{"type":"git","url":"git://github.com/blakeembrey/popsicle-cache.git"},"keywords":[],"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com"},"license":"MIT","bugs":{"url":"https://github.com/blakeembrey/popsicle-cache/issues"},"homepage":"https://github.com/blakeembrey/popsicle-cache","devDependencies":{"blue-tape":"^0.1.10","es6-promise":"^3.0.2","istanbul":"^0.3.20","nock":"^2.12.0","popsicle":"^1.1.1","rimraf":"^2.4.3","standard":"^5.3.0","tap-dot":"^1.0.0"},"dependencies":{"fs-memory-store":"^0.2.0","is-stream":"^1.0.1"},"gitHead":"22ceb9f5a912a9360b825ad7c22765378f0bfb43","_id":"popsicle-cache@0.0.2","_shasum":"d472f4a8c16d6e2780efab8c12f5e9de34cd1484","_from":".","_npmVersion":"2.14.2","_nodeVersion":"4.0.0","_npmUser":{"name":"blakeembrey","email":"hello@blakeembrey.com"},"dist":{"shasum":"d472f4a8c16d6e2780efab8c12f5e9de34cd1484","size":3903,"noattachment":false,"key":"/popsicle-cache/-/popsicle-cache-0.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/popsicle-cache/download/popsicle-cache-0.0.2.tgz"},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"directories":{},"publish_time":1442624791845,"_cnpm_publish_time":1442624791845,"_hasShrinkwrap":false},"0.0.1":{"name":"popsicle-cache","version":"0.0.1","description":"Override the Popsicle transport mechanism with HTTP caching","main":"lib/index.js","files":["lib/","LICENSE"],"scripts":{"lint":"standard","test-spec":"blue-tape {lib,test}/**/*.spec.js","test-cov":"istanbul cover --print none -x *.spec.js blue-tape -- {lib,test}/**/*.spec.js | tap-dot","test":"npm run lint && npm run test-cov"},"standard":{"ignore":["coverage/**","node_modules/**","bower_components/**"]},"repository":{"type":"git","url":"git://github.com/blakeembrey/popsicle-cache.git"},"keywords":[],"author":{"name":"Blake Embrey","email":"hello@blakeembrey.com"},"license":"MIT","bugs":{"url":"https://github.com/blakeembrey/popsicle-cache/issues"},"homepage":"https://github.com/blakeembrey/popsicle-cache","devDependencies":{"blue-tape":"^0.1.10","es6-promise":"^3.0.2","nock":"^2.12.0","popsicle":"^1.1.1","rimraf":"^2.4.3","standard":"^5.3.0","tap-dot":"^1.0.0"},"dependencies":{"fs-memory-store":"^0.2.0"},"gitHead":"4c5280b3b6e57e981c1b1817872a5b3dc3b53193","_id":"popsicle-cache@0.0.1","_shasum":"be54eb3ed30a6b399ba77285ca945cbe52e0daf3","_from":".","_npmVersion":"2.14.2","_nodeVersion":"4.0.0","_npmUser":{"name":"blakeembrey","email":"hello@blakeembrey.com"},"dist":{"shasum":"be54eb3ed30a6b399ba77285ca945cbe52e0daf3","size":3888,"noattachment":false,"key":"/popsicle-cache/-/popsicle-cache-0.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/popsicle-cache/download/popsicle-cache-0.0.1.tgz"},"maintainers":[{"name":"blakeembrey","email":"hello@blakeembrey.com"}],"directories":{},"publish_time":1442624429877,"_cnpm_publish_time":1442624429877,"_hasShrinkwrap":false}},"readme":"# Popsicle Cache\n\n[![NPM version][npm-image]][npm-url]\n[![NPM downloads][downloads-image]][downloads-url]\n[![Build status][travis-image]][travis-url]\n[![Test coverage][coveralls-image]][coveralls-url]\n\n> Cache HTTP responses using `popsicle`.\n\n## Installation\n\n```sh\nnpm install popsicle-cache --save\n```\n\n## Usage\n\n```js\nimport { request } from 'popsicle'\nimport { plugin, cacheables, ttls } from 'popsicle-cache'\n\nconst cache = plugin({ engine: require('catbox-fs'), ttl: ttls.forever() })\n\npopsicle('http://example.com')\n  .use(cache.handle)\n  .then(function (res) {\n    console.log(res) //=> If still fresh, the cached response, otherwise it makes a new request.\n  })\n```\n\nUse `popsicleCache.plugin(options)` to initialize the cache middleware. It returns an object with three methods:\n\n* `handle` - Regular Popsicle middleware for handling the cache.\n* `forceUpdate` - Force a refresh of the cache on every request (**does not** read from cache, only sets it).\n* `stop` - Stop the underlying `catbox` engine.\n\n## Options\n\n**Popsicle Cache** does not include any external caching strategy by default. Instead, it is compatible with [`catbox`](https://github.com/hapijs/catbox#installation) strategies.\n\n### `engine` (Object | Function)\n\nAn engine instance from [`catbox`](https://github.com/hapijs/catbox#installation).\n\n### `cacheable` (Function, Default = `cacheables.standard()`)\n\n```ts\n(req: Request, res: Response) => boolean\n```\n\nA function that determines whether a request/response should be cacheable.\n\nBuilt-in cacheable implementations:\n\n* `cacheables.standard()` - Caches on `res.status === 200 && req.method === 'GET' && !res.get('Cache-Control').contains('no-cache')` only.\n* `cacheables.always()` - Always caches the response (`return true`).\n\n### `ttl` (Function, Default = `ttls.standard(0, 1000 * 60 * 60 * 24 * 365)`)\n\n```ts\n(req: Request, res: Response) => number\n```\n\nA function that determines the TTL of the cached response.\n\nBuilt-in TTL implementations:\n\n* `ttls.standard(minTtl, maxTtl)` - Calculates the [freshness](https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching#Freshness) from the `Cache-Control`, `Expires` and/or `Last-Modified` headers. Returns `minTtl + Math.min(maxTtl, freshness)`.\n* `ttls.forever()` - Caches forever (`return Infinity`).\n\n### `serializer` (Object, Default = `serializers.standard()`)\n\n```ts\ninterface Serializer <T> {\n  name: string\n  parse (value: string): T\n  stringify (value: T, cache: (err: Error | null, value?: string | null) => void): T\n}\n```\n\nAn object that represents a serializer instance. Must have a name and implement `parse` and `stringify` methods. Some serializations are asynchronous in nature, or require the response body to be augmented, so a callback must be used to cache the actual value. Pass `null` or `undefined` as the `cache` value to skip the cache (E.g. `cache()` or `cache(null, null)`).\n\nBuilt-in serializer implementations:\n\n* `serializers.standard()` - Simple implementation using `JSON.parse` and `JSON.stringify`.\n* `stream(maxBufferLength?: number)` - Buffers the response body from a stream, skipping the cache if the buffer exceeds `maxBufferLength` (defaults to `1mb`)\n\n### `handler` (Function, Default = `handlers.standard()`)\n\n```ts\nclass CachedResponse extends popsicle.Response {\n  ttl: number\n  stored: number\n  response: Response\n  varyHeaders: Array<[string, string]>\n}\n\n(req: Request, cache: CachedResponse, next: () => Promise<Response>): Response | CachedResponse | Promise<Response | CachedResponse>\n```\n\nThe request handler that decides whether to use the existing cache, regular response or a combination of both (E.g. by setting `If-None-Match` or `If-Modified-Since`).\n\nBuilt-in handler implmentations:\n\n* `handlers.standard()` - Based on [freshness](https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching#Freshness), it will decide whether to use the cache directly or validate the cache by sending the request with `If-None-Match` or `If-Modified-Since`. If it responds with `304` (not modified), it will use the cached response body and headers.\n* `handlers.always()` - Always return the cached resource, even if expired or stale (`return cache.response`).\n\n### `catchCacheError` (Function, Default = `undefined`)\n\n```ts\n(err: Error) => void\n```\n\nHandler for catching cache errors. Useful for debugging errors with setting the cache engine or serializer errors which would otherwise be swallowed.\n\n### `staleFallback` (Boolean, Default = `true`)\n\nWhen the network is down or the server responds with `5xx`, we always default to the cached entry (instead of passing the error onward).\n\n### `getId` (Function, Default = `getIds.standard()`)\n\nThe ID for the cache entry. The default is `${serializer.name}~${req.method}~${req.url}`.\n\n### `waitForCache` (Boolean, Default = `false`)\n\nUsually persisting to cache occurs in parallel with the response. This overrides that behaviour by waiting for the cache to finish before responding.\n\n### `segment` (String, Default = `'popsicle-cache'`)\n\nThe `catbox` segment name.\n\n## License\n\nMIT license\n\n[npm-image]: https://img.shields.io/npm/v/popsicle-cache.svg?style=flat\n[npm-url]: https://npmjs.org/package/popsicle-cache\n[downloads-image]: https://img.shields.io/npm/dm/popsicle-cache.svg?style=flat\n[downloads-url]: https://npmjs.org/package/popsicle-cache\n[travis-image]: https://img.shields.io/travis/blakeembrey/popsicle-cache.svg?style=flat\n[travis-url]: https://travis-ci.org/blakeembrey/popsicle-cache\n[coveralls-image]: https://img.shields.io/coveralls/blakeembrey/popsicle-cache.svg?style=flat\n[coveralls-url]: https://coveralls.io/r/blakeembrey/popsicle-cache?branch=master\n","_attachments":{},"homepage":"https://github.com/blakeembrey/popsicle-cache","bugs":{"url":"https://github.com/blakeembrey/popsicle-cache/issues"},"license":"MIT"}