128 lines
6.6 KiB
JSON
128 lines
6.6 KiB
JSON
|
{
|
||
|
"_args": [
|
||
|
[
|
||
|
{
|
||
|
"raw": "fresh@0.5.2",
|
||
|
"scope": null,
|
||
|
"escapedName": "fresh",
|
||
|
"name": "fresh",
|
||
|
"rawSpec": "0.5.2",
|
||
|
"spec": "0.5.2",
|
||
|
"type": "version"
|
||
|
},
|
||
|
"/home/jdaugherty/work/GT2/GT2-Android/node_modules/express"
|
||
|
]
|
||
|
],
|
||
|
"_from": "fresh@0.5.2",
|
||
|
"_id": "fresh@0.5.2",
|
||
|
"_inCache": true,
|
||
|
"_location": "/fresh",
|
||
|
"_nodeVersion": "6.11.1",
|
||
|
"_npmOperationalInternal": {
|
||
|
"host": "s3://npm-registry-packages",
|
||
|
"tmp": "tmp/fresh-0.5.2.tgz_1505365391149_0.7952043106779456"
|
||
|
},
|
||
|
"_npmUser": {
|
||
|
"name": "dougwilson",
|
||
|
"email": "doug@somethingdoug.com"
|
||
|
},
|
||
|
"_npmVersion": "3.10.10",
|
||
|
"_phantomChildren": {},
|
||
|
"_requested": {
|
||
|
"raw": "fresh@0.5.2",
|
||
|
"scope": null,
|
||
|
"escapedName": "fresh",
|
||
|
"name": "fresh",
|
||
|
"rawSpec": "0.5.2",
|
||
|
"spec": "0.5.2",
|
||
|
"type": "version"
|
||
|
},
|
||
|
"_requiredBy": [
|
||
|
"/express",
|
||
|
"/send"
|
||
|
],
|
||
|
"_resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
|
||
|
"_shasum": "3d8cadd90d976569fa835ab1f8e4b23a105605a7",
|
||
|
"_shrinkwrap": null,
|
||
|
"_spec": "fresh@0.5.2",
|
||
|
"_where": "/home/jdaugherty/work/GT2/GT2-Android/node_modules/express",
|
||
|
"author": {
|
||
|
"name": "TJ Holowaychuk",
|
||
|
"email": "tj@vision-media.ca",
|
||
|
"url": "http://tjholowaychuk.com"
|
||
|
},
|
||
|
"bugs": {
|
||
|
"url": "https://github.com/jshttp/fresh/issues"
|
||
|
},
|
||
|
"contributors": [
|
||
|
{
|
||
|
"name": "Douglas Christopher Wilson",
|
||
|
"email": "doug@somethingdoug.com"
|
||
|
},
|
||
|
{
|
||
|
"name": "Jonathan Ong",
|
||
|
"email": "me@jongleberry.com",
|
||
|
"url": "http://jongleberry.com"
|
||
|
}
|
||
|
],
|
||
|
"dependencies": {},
|
||
|
"description": "HTTP response freshness testing",
|
||
|
"devDependencies": {
|
||
|
"beautify-benchmark": "0.2.4",
|
||
|
"benchmark": "2.1.4",
|
||
|
"eslint": "3.19.0",
|
||
|
"eslint-config-standard": "10.2.1",
|
||
|
"eslint-plugin-import": "2.7.0",
|
||
|
"eslint-plugin-markdown": "1.0.0-beta.6",
|
||
|
"eslint-plugin-node": "5.1.1",
|
||
|
"eslint-plugin-promise": "3.5.0",
|
||
|
"eslint-plugin-standard": "3.0.1",
|
||
|
"istanbul": "0.4.5",
|
||
|
"mocha": "1.21.5"
|
||
|
},
|
||
|
"directories": {},
|
||
|
"dist": {
|
||
|
"shasum": "3d8cadd90d976569fa835ab1f8e4b23a105605a7",
|
||
|
"tarball": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz"
|
||
|
},
|
||
|
"engines": {
|
||
|
"node": ">= 0.6"
|
||
|
},
|
||
|
"files": [
|
||
|
"HISTORY.md",
|
||
|
"LICENSE",
|
||
|
"index.js"
|
||
|
],
|
||
|
"gitHead": "02df6303ff260b6b7da0b479f3e42222e8157b47",
|
||
|
"homepage": "https://github.com/jshttp/fresh#readme",
|
||
|
"keywords": [
|
||
|
"fresh",
|
||
|
"http",
|
||
|
"conditional",
|
||
|
"cache"
|
||
|
],
|
||
|
"license": "MIT",
|
||
|
"maintainers": [
|
||
|
{
|
||
|
"name": "dougwilson",
|
||
|
"email": "doug@somethingdoug.com"
|
||
|
}
|
||
|
],
|
||
|
"name": "fresh",
|
||
|
"optionalDependencies": {},
|
||
|
"readme": "# fresh\n\n[![NPM Version][npm-image]][npm-url]\n[![NPM Downloads][downloads-image]][downloads-url]\n[![Node.js Version][node-version-image]][node-version-url]\n[![Build Status][travis-image]][travis-url]\n[![Test Coverage][coveralls-image]][coveralls-url]\n\nHTTP response freshness testing\n\n## Installation\n\nThis is a [Node.js](https://nodejs.org/en/) module available through the\n[npm registry](https://www.npmjs.com/). Installation is done using the\n[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):\n\n```\n$ npm install fresh\n```\n\n## API\n\n<!-- eslint-disable no-unused-vars -->\n\n```js\nvar fresh = require('fresh')\n```\n\n### fresh(reqHeaders, resHeaders)\n\nCheck freshness of the response using request and response headers.\n\nWhen the response is still \"fresh\" in the client's cache `true` is\nreturned, otherwise `false` is returned to indicate that the client\ncache is now stale and the full response should be sent.\n\nWhen a client sends the `Cache-Control: no-cache` request header to\nindicate an end-to-end reload request, this module will return `false`\nto make handling these requests transparent.\n\n## Known Issues\n\nThis module is designed to only follow the HTTP specifications, not\nto work-around all kinda of client bugs (especially since this module\ntypically does not recieve enough information to understand what the\nclient actually is).\n\nThere is a known issue that in certain versions of Safari, Safari\nwill incorrectly make a request that allows this module to validate\nfreshness of the resource even when Safari does not have a\nrepresentation of the resource in the cache. The module\n[jumanji](https://www.npmjs.com/package/jumanji) can be used in\nan Express application to work-around this issue and also provides\nlinks to further reading on this Safari bug.\n\n## Example\n\n### API usage\n\n<!-- eslint-disable no-redeclare, no-undef -->\n\n```js\nvar reqHeaders = { 'if-none-match': '\"foo\"' }\nvar resHeaders = { 'etag': '\"bar\"' }\nfresh(reqHeaders, resHeaders)\n// => false\n\nvar reqHeaders = { 'if-none-match': '\"foo\"' }\nvar resHeaders = { 'etag': '\"foo\"' }\nfresh(reqHeaders, resHeaders)\n// => true\n```\n\n### Using with Node.js http server\n\n```js\nvar fresh = require('fresh')\nvar http = require('http')\n\nvar server = http.createServer(function (req, res) {\n // perform server logic\n // ... including adding ETag / Last-Modified response headers\n\n if (isFresh(req, res)) {\n // client has a fresh copy of resource\n res.statusCode = 304\n res.end()\n return\n }\n\n // send the resource\n res.statusCode = 200\n res.end('hello, world!')\n})\n\nfunction isFresh (req, res) {\n return fresh(req.headers, {\n 'etag': res.getHeader('ETag'),\n 'last-modified': res.getHeader('Last-Modified')\n })\n}\n\nserver.listen(3000)\n```\n\n## License\n\n[MIT](LICENSE)\n\n[npm-image]: https://img.shields.io/npm/v/fresh.svg\n[npm-url]: https://npmjs.org/package/fresh\n[node-version-image]: https://img.shields.io/node/v/fresh.svg\n[node-version-url]: https://nodejs.org/en/\n[travis-image]: https://img.shields.io/travis/jshttp/fresh/master.svg\n[travis-url]: https://travis-ci.org/jshttp/fresh\n[coveralls-image]: https://img.shields.io/coveralls/jshttp/fresh/master.svg\n[coveralls-url]: https://coveralls.io/r/jshttp/fresh?branch=master\n[downloads-image]: https://img.shields.io/npm/dm/fresh.svg\n[downloads-url]: https://npmjs.org/package/fresh\n",
|
||
|
"readmeFilename": "README.md",
|
||
|
"repository": {
|
||
|
"type": "git",
|
||
|
"url": "git+https://github.com/jshttp/fresh.git"
|
||
|
},
|
||
|
"scripts": {
|
||
|
"bench": "node benchmark/index.js",
|
||
|
"lint": "eslint --plugin markdown --ext js,md .",
|
||
|
"test": "mocha --reporter spec --bail --check-leaks test/",
|
||
|
"test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/",
|
||
|
"test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter spec --check-leaks test/"
|
||
|
},
|
||
|
"version": "0.5.2"
|
||
|
}
|