| { |
| "_args": [ |
| [ |
| { |
| "raw": "fresh@0.5.2", |
| "scope": null, |
| "escapedName": "fresh", |
| "name": "fresh", |
| "rawSpec": "0.5.2", |
| "spec": "0.5.2", |
| "type": "version" |
| }, |
| "/Users/steveng/repo/cordova/cordova-browser/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": "/Users/steveng/repo/cordova/cordova-browser/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" |
| } |