Updated Service Worker JS and Added Node Server
Updated the service worker JS. Issue with how I typed the cache links. Forgot to put a "./" before the asset name. Should work now.
This commit is contained in:
BIN
-Old/.DS_Store
vendored
Normal file
BIN
-Old/.DS_Store
vendored
Normal file
Binary file not shown.
0
node_modules/.bin/Icon
generated
vendored
Normal file
0
node_modules/.bin/Icon
generated
vendored
Normal file
0
node_modules/Icon
generated
vendored
Normal file
0
node_modules/Icon
generated
vendored
Normal file
0
node_modules/accepts/Icon
generated
vendored
Normal file
0
node_modules/accepts/Icon
generated
vendored
Normal file
0
node_modules/array-flatten/Icon
generated
vendored
Normal file
0
node_modules/array-flatten/Icon
generated
vendored
Normal file
0
node_modules/body-parser/Icon
generated
vendored
Normal file
0
node_modules/body-parser/Icon
generated
vendored
Normal file
0
node_modules/body-parser/lib/Icon
generated
vendored
Normal file
0
node_modules/body-parser/lib/Icon
generated
vendored
Normal file
0
node_modules/body-parser/lib/types/Icon
generated
vendored
Normal file
0
node_modules/body-parser/lib/types/Icon
generated
vendored
Normal file
0
node_modules/bytes/Icon
generated
vendored
Normal file
0
node_modules/bytes/Icon
generated
vendored
Normal file
0
node_modules/content-disposition/Icon
generated
vendored
Normal file
0
node_modules/content-disposition/Icon
generated
vendored
Normal file
0
node_modules/content-type/Icon
generated
vendored
Normal file
0
node_modules/content-type/Icon
generated
vendored
Normal file
0
node_modules/cookie-signature/Icon
generated
vendored
Normal file
0
node_modules/cookie-signature/Icon
generated
vendored
Normal file
0
node_modules/cookie/Icon
generated
vendored
Normal file
0
node_modules/cookie/Icon
generated
vendored
Normal file
0
node_modules/debug/Icon
generated
vendored
Normal file
0
node_modules/debug/Icon
generated
vendored
Normal file
0
node_modules/debug/src/Icon
generated
vendored
Normal file
0
node_modules/debug/src/Icon
generated
vendored
Normal file
0
node_modules/depd/Icon
generated
vendored
Normal file
0
node_modules/depd/Icon
generated
vendored
Normal file
0
node_modules/depd/lib/Icon
generated
vendored
Normal file
0
node_modules/depd/lib/Icon
generated
vendored
Normal file
0
node_modules/depd/lib/browser/Icon
generated
vendored
Normal file
0
node_modules/depd/lib/browser/Icon
generated
vendored
Normal file
0
node_modules/depd/lib/compat/Icon
generated
vendored
Normal file
0
node_modules/depd/lib/compat/Icon
generated
vendored
Normal file
0
node_modules/destroy/Icon
generated
vendored
Normal file
0
node_modules/destroy/Icon
generated
vendored
Normal file
0
node_modules/ee-first/Icon
generated
vendored
Normal file
0
node_modules/ee-first/Icon
generated
vendored
Normal file
0
node_modules/encodeurl/Icon
generated
vendored
Normal file
0
node_modules/encodeurl/Icon
generated
vendored
Normal file
0
node_modules/escape-html/Icon
generated
vendored
Normal file
0
node_modules/escape-html/Icon
generated
vendored
Normal file
0
node_modules/etag/Icon
generated
vendored
Normal file
0
node_modules/etag/Icon
generated
vendored
Normal file
0
node_modules/express/Icon
generated
vendored
Normal file
0
node_modules/express/Icon
generated
vendored
Normal file
0
node_modules/express/lib/Icon
generated
vendored
Normal file
0
node_modules/express/lib/Icon
generated
vendored
Normal file
0
node_modules/express/lib/middleware/Icon
generated
vendored
Normal file
0
node_modules/express/lib/middleware/Icon
generated
vendored
Normal file
0
node_modules/express/lib/router/Icon
generated
vendored
Normal file
0
node_modules/express/lib/router/Icon
generated
vendored
Normal file
0
node_modules/finalhandler/Icon
generated
vendored
Normal file
0
node_modules/finalhandler/Icon
generated
vendored
Normal file
0
node_modules/forwarded/Icon
generated
vendored
Normal file
0
node_modules/forwarded/Icon
generated
vendored
Normal file
0
node_modules/fresh/Icon
generated
vendored
Normal file
0
node_modules/fresh/Icon
generated
vendored
Normal file
0
node_modules/http-errors/Icon
generated
vendored
Normal file
0
node_modules/http-errors/Icon
generated
vendored
Normal file
0
node_modules/iconv-lite/Icon
generated
vendored
Normal file
0
node_modules/iconv-lite/Icon
generated
vendored
Normal file
0
node_modules/iconv-lite/encodings/Icon
generated
vendored
Normal file
0
node_modules/iconv-lite/encodings/Icon
generated
vendored
Normal file
0
node_modules/iconv-lite/encodings/tables/Icon
generated
vendored
Normal file
0
node_modules/iconv-lite/encodings/tables/Icon
generated
vendored
Normal file
0
node_modules/iconv-lite/lib/Icon
generated
vendored
Normal file
0
node_modules/iconv-lite/lib/Icon
generated
vendored
Normal file
0
node_modules/inherits/Icon
generated
vendored
Normal file
0
node_modules/inherits/Icon
generated
vendored
Normal file
0
node_modules/ipaddr.js/Icon
generated
vendored
Normal file
0
node_modules/ipaddr.js/Icon
generated
vendored
Normal file
0
node_modules/ipaddr.js/lib/Icon
generated
vendored
Normal file
0
node_modules/ipaddr.js/lib/Icon
generated
vendored
Normal file
0
node_modules/media-typer/Icon
generated
vendored
Normal file
0
node_modules/media-typer/Icon
generated
vendored
Normal file
0
node_modules/merge-descriptors/Icon
generated
vendored
Normal file
0
node_modules/merge-descriptors/Icon
generated
vendored
Normal file
0
node_modules/methods/Icon
generated
vendored
Normal file
0
node_modules/methods/Icon
generated
vendored
Normal file
0
node_modules/mime-db/Icon
generated
vendored
Normal file
0
node_modules/mime-db/Icon
generated
vendored
Normal file
0
node_modules/mime-types/Icon
generated
vendored
Normal file
0
node_modules/mime-types/Icon
generated
vendored
Normal file
0
node_modules/mime/Icon
generated
vendored
Normal file
0
node_modules/mime/Icon
generated
vendored
Normal file
0
node_modules/mime/build/Icon
generated
vendored
Normal file
0
node_modules/mime/build/Icon
generated
vendored
Normal file
0
node_modules/ms/Icon
generated
vendored
Normal file
0
node_modules/ms/Icon
generated
vendored
Normal file
0
node_modules/negotiator/Icon
generated
vendored
Normal file
0
node_modules/negotiator/Icon
generated
vendored
Normal file
0
node_modules/negotiator/lib/Icon
generated
vendored
Normal file
0
node_modules/negotiator/lib/Icon
generated
vendored
Normal file
0
node_modules/on-finished/Icon
generated
vendored
Normal file
0
node_modules/on-finished/Icon
generated
vendored
Normal file
0
node_modules/parseurl/Icon
generated
vendored
Normal file
0
node_modules/parseurl/Icon
generated
vendored
Normal file
0
node_modules/path-to-regexp/Icon
generated
vendored
Normal file
0
node_modules/path-to-regexp/Icon
generated
vendored
Normal file
0
node_modules/proxy-addr/Icon
generated
vendored
Normal file
0
node_modules/proxy-addr/Icon
generated
vendored
Normal file
0
node_modules/qs/Icon
generated
vendored
Normal file
0
node_modules/qs/Icon
generated
vendored
Normal file
0
node_modules/qs/dist/Icon
generated
vendored
Normal file
0
node_modules/qs/dist/Icon
generated
vendored
Normal file
0
node_modules/qs/lib/Icon
generated
vendored
Normal file
0
node_modules/qs/lib/Icon
generated
vendored
Normal file
0
node_modules/qs/test/Icon
generated
vendored
Normal file
0
node_modules/qs/test/Icon
generated
vendored
Normal file
0
node_modules/range-parser/Icon
generated
vendored
Normal file
0
node_modules/range-parser/Icon
generated
vendored
Normal file
0
node_modules/raw-body/Icon
generated
vendored
Normal file
0
node_modules/raw-body/Icon
generated
vendored
Normal file
0
node_modules/safe-buffer/Icon
generated
vendored
Normal file
0
node_modules/safe-buffer/Icon
generated
vendored
Normal file
0
node_modules/safer-buffer/Icon
generated
vendored
Normal file
0
node_modules/safer-buffer/Icon
generated
vendored
Normal file
0
node_modules/send/Icon
generated
vendored
Normal file
0
node_modules/send/Icon
generated
vendored
Normal file
0
node_modules/serve-static/Icon
generated
vendored
Normal file
0
node_modules/serve-static/Icon
generated
vendored
Normal file
0
node_modules/setprototypeof/Icon
generated
vendored
Normal file
0
node_modules/setprototypeof/Icon
generated
vendored
Normal file
0
node_modules/statuses/Icon
generated
vendored
Normal file
0
node_modules/statuses/Icon
generated
vendored
Normal file
0
node_modules/type-is/Icon
generated
vendored
Normal file
0
node_modules/type-is/Icon
generated
vendored
Normal file
0
node_modules/unpipe/Icon
generated
vendored
Normal file
0
node_modules/unpipe/Icon
generated
vendored
Normal file
9
node_modules/utils-merge/.npmignore
generated
vendored
Normal file
9
node_modules/utils-merge/.npmignore
generated
vendored
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
CONTRIBUTING.md
|
||||||
|
Makefile
|
||||||
|
docs/
|
||||||
|
examples/
|
||||||
|
reports/
|
||||||
|
test/
|
||||||
|
|
||||||
|
.jshintrc
|
||||||
|
.travis.yml
|
||||||
0
node_modules/utils-merge/Icon
generated
vendored
Normal file
0
node_modules/utils-merge/Icon
generated
vendored
Normal file
20
node_modules/utils-merge/LICENSE
generated
vendored
Normal file
20
node_modules/utils-merge/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2013-2017 Jared Hanson
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||||
|
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||||
|
subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||||
|
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
34
node_modules/utils-merge/README.md
generated
vendored
Normal file
34
node_modules/utils-merge/README.md
generated
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
# utils-merge
|
||||||
|
|
||||||
|
[](https://www.npmjs.com/package/utils-merge)
|
||||||
|
[](https://travis-ci.org/jaredhanson/utils-merge)
|
||||||
|
[](https://codeclimate.com/github/jaredhanson/utils-merge)
|
||||||
|
[](https://coveralls.io/r/jaredhanson/utils-merge)
|
||||||
|
[](https://david-dm.org/jaredhanson/utils-merge)
|
||||||
|
|
||||||
|
|
||||||
|
Merges the properties from a source object into a destination object.
|
||||||
|
|
||||||
|
## Install
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ npm install utils-merge
|
||||||
|
```
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
var a = { foo: 'bar' }
|
||||||
|
, b = { bar: 'baz' };
|
||||||
|
|
||||||
|
merge(a, b);
|
||||||
|
// => { foo: 'bar', bar: 'baz' }
|
||||||
|
```
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
[The MIT License](http://opensource.org/licenses/MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2013-2017 Jared Hanson <[http://jaredhanson.net/](http://jaredhanson.net/)>
|
||||||
|
|
||||||
|
<a target='_blank' rel='nofollow' href='https://app.codesponsor.io/link/vK9dyjRnnWsMzzJTQ57fRJpH/jaredhanson/utils-merge'> <img alt='Sponsor' width='888' height='68' src='https://app.codesponsor.io/embed/vK9dyjRnnWsMzzJTQ57fRJpH/jaredhanson/utils-merge.svg' /></a>
|
||||||
23
node_modules/utils-merge/index.js
generated
vendored
Normal file
23
node_modules/utils-merge/index.js
generated
vendored
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
/**
|
||||||
|
* Merge object b with object a.
|
||||||
|
*
|
||||||
|
* var a = { foo: 'bar' }
|
||||||
|
* , b = { bar: 'baz' };
|
||||||
|
*
|
||||||
|
* merge(a, b);
|
||||||
|
* // => { foo: 'bar', bar: 'baz' }
|
||||||
|
*
|
||||||
|
* @param {Object} a
|
||||||
|
* @param {Object} b
|
||||||
|
* @return {Object}
|
||||||
|
* @api public
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports = module.exports = function(a, b){
|
||||||
|
if (a && b) {
|
||||||
|
for (var key in b) {
|
||||||
|
a[key] = b[key];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return a;
|
||||||
|
};
|
||||||
66
node_modules/utils-merge/package.json
generated
vendored
Normal file
66
node_modules/utils-merge/package.json
generated
vendored
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
{
|
||||||
|
"_from": "utils-merge@1.0.1",
|
||||||
|
"_id": "utils-merge@1.0.1",
|
||||||
|
"_inBundle": false,
|
||||||
|
"_integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
|
||||||
|
"_location": "/utils-merge",
|
||||||
|
"_phantomChildren": {},
|
||||||
|
"_requested": {
|
||||||
|
"type": "version",
|
||||||
|
"registry": true,
|
||||||
|
"raw": "utils-merge@1.0.1",
|
||||||
|
"name": "utils-merge",
|
||||||
|
"escapedName": "utils-merge",
|
||||||
|
"rawSpec": "1.0.1",
|
||||||
|
"saveSpec": null,
|
||||||
|
"fetchSpec": "1.0.1"
|
||||||
|
},
|
||||||
|
"_requiredBy": [
|
||||||
|
"/express"
|
||||||
|
],
|
||||||
|
"_resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
|
||||||
|
"_shasum": "9f95710f50a267947b2ccc124741c1028427e713",
|
||||||
|
"_spec": "utils-merge@1.0.1",
|
||||||
|
"_where": "/Users/stevenh/Desktop/Side_Projects/What_Are_You_Lifting-App/WhatAreYouLifting/node_modules/express",
|
||||||
|
"author": {
|
||||||
|
"name": "Jared Hanson",
|
||||||
|
"email": "jaredhanson@gmail.com",
|
||||||
|
"url": "http://www.jaredhanson.net/"
|
||||||
|
},
|
||||||
|
"bugs": {
|
||||||
|
"url": "http://github.com/jaredhanson/utils-merge/issues"
|
||||||
|
},
|
||||||
|
"bundleDependencies": false,
|
||||||
|
"dependencies": {},
|
||||||
|
"deprecated": false,
|
||||||
|
"description": "merge() utility function",
|
||||||
|
"devDependencies": {
|
||||||
|
"chai": "1.x.x",
|
||||||
|
"make-node": "0.3.x",
|
||||||
|
"mocha": "1.x.x"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.4.0"
|
||||||
|
},
|
||||||
|
"homepage": "https://github.com/jaredhanson/utils-merge#readme",
|
||||||
|
"keywords": [
|
||||||
|
"util"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"licenses": [
|
||||||
|
{
|
||||||
|
"type": "MIT",
|
||||||
|
"url": "http://opensource.org/licenses/MIT"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"main": "./index",
|
||||||
|
"name": "utils-merge",
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git://github.com/jaredhanson/utils-merge.git"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"test": "mocha --reporter spec --require test/bootstrap/node test/*.test.js"
|
||||||
|
},
|
||||||
|
"version": "1.0.1"
|
||||||
|
}
|
||||||
39
node_modules/vary/HISTORY.md
generated
vendored
Normal file
39
node_modules/vary/HISTORY.md
generated
vendored
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
1.1.2 / 2017-09-23
|
||||||
|
==================
|
||||||
|
|
||||||
|
* perf: improve header token parsing speed
|
||||||
|
|
||||||
|
1.1.1 / 2017-03-20
|
||||||
|
==================
|
||||||
|
|
||||||
|
* perf: hoist regular expression
|
||||||
|
|
||||||
|
1.1.0 / 2015-09-29
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Only accept valid field names in the `field` argument
|
||||||
|
- Ensures the resulting string is a valid HTTP header value
|
||||||
|
|
||||||
|
1.0.1 / 2015-07-08
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Fix setting empty header from empty `field`
|
||||||
|
* perf: enable strict mode
|
||||||
|
* perf: remove argument reassignments
|
||||||
|
|
||||||
|
1.0.0 / 2014-08-10
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Accept valid `Vary` header string as `field`
|
||||||
|
* Add `vary.append` for low-level string manipulation
|
||||||
|
* Move to `jshttp` orgainzation
|
||||||
|
|
||||||
|
0.1.0 / 2014-06-05
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Support array of fields to set
|
||||||
|
|
||||||
|
0.0.0 / 2014-06-04
|
||||||
|
==================
|
||||||
|
|
||||||
|
* Initial release
|
||||||
0
node_modules/vary/Icon
generated
vendored
Normal file
0
node_modules/vary/Icon
generated
vendored
Normal file
22
node_modules/vary/LICENSE
generated
vendored
Normal file
22
node_modules/vary/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
(The MIT License)
|
||||||
|
|
||||||
|
Copyright (c) 2014-2017 Douglas Christopher Wilson
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
'Software'), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be
|
||||||
|
included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||||
|
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||||
|
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||||
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
101
node_modules/vary/README.md
generated
vendored
Normal file
101
node_modules/vary/README.md
generated
vendored
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
# vary
|
||||||
|
|
||||||
|
[![NPM Version][npm-image]][npm-url]
|
||||||
|
[![NPM Downloads][downloads-image]][downloads-url]
|
||||||
|
[![Node.js Version][node-version-image]][node-version-url]
|
||||||
|
[![Build Status][travis-image]][travis-url]
|
||||||
|
[![Test Coverage][coveralls-image]][coveralls-url]
|
||||||
|
|
||||||
|
Manipulate the HTTP Vary header
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
This is a [Node.js](https://nodejs.org/en/) module available through the
|
||||||
|
[npm registry](https://www.npmjs.com/). Installation is done using the
|
||||||
|
[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ npm install vary
|
||||||
|
```
|
||||||
|
|
||||||
|
## API
|
||||||
|
|
||||||
|
<!-- eslint-disable no-unused-vars -->
|
||||||
|
|
||||||
|
```js
|
||||||
|
var vary = require('vary')
|
||||||
|
```
|
||||||
|
|
||||||
|
### vary(res, field)
|
||||||
|
|
||||||
|
Adds the given header `field` to the `Vary` response header of `res`.
|
||||||
|
This can be a string of a single field, a string of a valid `Vary`
|
||||||
|
header, or an array of multiple fields.
|
||||||
|
|
||||||
|
This will append the header if not already listed, otherwise leaves
|
||||||
|
it listed in the current location.
|
||||||
|
|
||||||
|
<!-- eslint-disable no-undef -->
|
||||||
|
|
||||||
|
```js
|
||||||
|
// Append "Origin" to the Vary header of the response
|
||||||
|
vary(res, 'Origin')
|
||||||
|
```
|
||||||
|
|
||||||
|
### vary.append(header, field)
|
||||||
|
|
||||||
|
Adds the given header `field` to the `Vary` response header string `header`.
|
||||||
|
This can be a string of a single field, a string of a valid `Vary` header,
|
||||||
|
or an array of multiple fields.
|
||||||
|
|
||||||
|
This will append the header if not already listed, otherwise leaves
|
||||||
|
it listed in the current location. The new header string is returned.
|
||||||
|
|
||||||
|
<!-- eslint-disable no-undef -->
|
||||||
|
|
||||||
|
```js
|
||||||
|
// Get header string appending "Origin" to "Accept, User-Agent"
|
||||||
|
vary.append('Accept, User-Agent', 'Origin')
|
||||||
|
```
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
### Updating the Vary header when content is based on it
|
||||||
|
|
||||||
|
```js
|
||||||
|
var http = require('http')
|
||||||
|
var vary = require('vary')
|
||||||
|
|
||||||
|
http.createServer(function onRequest (req, res) {
|
||||||
|
// about to user-agent sniff
|
||||||
|
vary(res, 'User-Agent')
|
||||||
|
|
||||||
|
var ua = req.headers['user-agent'] || ''
|
||||||
|
var isMobile = /mobi|android|touch|mini/i.test(ua)
|
||||||
|
|
||||||
|
// serve site, depending on isMobile
|
||||||
|
res.setHeader('Content-Type', 'text/html')
|
||||||
|
res.end('You are (probably) ' + (isMobile ? '' : 'not ') + 'a mobile user')
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
## Testing
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ npm test
|
||||||
|
```
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
[MIT](LICENSE)
|
||||||
|
|
||||||
|
[npm-image]: https://img.shields.io/npm/v/vary.svg
|
||||||
|
[npm-url]: https://npmjs.org/package/vary
|
||||||
|
[node-version-image]: https://img.shields.io/node/v/vary.svg
|
||||||
|
[node-version-url]: https://nodejs.org/en/download
|
||||||
|
[travis-image]: https://img.shields.io/travis/jshttp/vary/master.svg
|
||||||
|
[travis-url]: https://travis-ci.org/jshttp/vary
|
||||||
|
[coveralls-image]: https://img.shields.io/coveralls/jshttp/vary/master.svg
|
||||||
|
[coveralls-url]: https://coveralls.io/r/jshttp/vary
|
||||||
|
[downloads-image]: https://img.shields.io/npm/dm/vary.svg
|
||||||
|
[downloads-url]: https://npmjs.org/package/vary
|
||||||
149
node_modules/vary/index.js
generated
vendored
Normal file
149
node_modules/vary/index.js
generated
vendored
Normal file
@@ -0,0 +1,149 @@
|
|||||||
|
/*!
|
||||||
|
* vary
|
||||||
|
* Copyright(c) 2014-2017 Douglas Christopher Wilson
|
||||||
|
* MIT Licensed
|
||||||
|
*/
|
||||||
|
|
||||||
|
'use strict'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Module exports.
|
||||||
|
*/
|
||||||
|
|
||||||
|
module.exports = vary
|
||||||
|
module.exports.append = append
|
||||||
|
|
||||||
|
/**
|
||||||
|
* RegExp to match field-name in RFC 7230 sec 3.2
|
||||||
|
*
|
||||||
|
* field-name = token
|
||||||
|
* token = 1*tchar
|
||||||
|
* tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*"
|
||||||
|
* / "+" / "-" / "." / "^" / "_" / "`" / "|" / "~"
|
||||||
|
* / DIGIT / ALPHA
|
||||||
|
* ; any VCHAR, except delimiters
|
||||||
|
*/
|
||||||
|
|
||||||
|
var FIELD_NAME_REGEXP = /^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Append a field to a vary header.
|
||||||
|
*
|
||||||
|
* @param {String} header
|
||||||
|
* @param {String|Array} field
|
||||||
|
* @return {String}
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
function append (header, field) {
|
||||||
|
if (typeof header !== 'string') {
|
||||||
|
throw new TypeError('header argument is required')
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!field) {
|
||||||
|
throw new TypeError('field argument is required')
|
||||||
|
}
|
||||||
|
|
||||||
|
// get fields array
|
||||||
|
var fields = !Array.isArray(field)
|
||||||
|
? parse(String(field))
|
||||||
|
: field
|
||||||
|
|
||||||
|
// assert on invalid field names
|
||||||
|
for (var j = 0; j < fields.length; j++) {
|
||||||
|
if (!FIELD_NAME_REGEXP.test(fields[j])) {
|
||||||
|
throw new TypeError('field argument contains an invalid header name')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// existing, unspecified vary
|
||||||
|
if (header === '*') {
|
||||||
|
return header
|
||||||
|
}
|
||||||
|
|
||||||
|
// enumerate current values
|
||||||
|
var val = header
|
||||||
|
var vals = parse(header.toLowerCase())
|
||||||
|
|
||||||
|
// unspecified vary
|
||||||
|
if (fields.indexOf('*') !== -1 || vals.indexOf('*') !== -1) {
|
||||||
|
return '*'
|
||||||
|
}
|
||||||
|
|
||||||
|
for (var i = 0; i < fields.length; i++) {
|
||||||
|
var fld = fields[i].toLowerCase()
|
||||||
|
|
||||||
|
// append value (case-preserving)
|
||||||
|
if (vals.indexOf(fld) === -1) {
|
||||||
|
vals.push(fld)
|
||||||
|
val = val
|
||||||
|
? val + ', ' + fields[i]
|
||||||
|
: fields[i]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return val
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parse a vary header into an array.
|
||||||
|
*
|
||||||
|
* @param {String} header
|
||||||
|
* @return {Array}
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
|
||||||
|
function parse (header) {
|
||||||
|
var end = 0
|
||||||
|
var list = []
|
||||||
|
var start = 0
|
||||||
|
|
||||||
|
// gather tokens
|
||||||
|
for (var i = 0, len = header.length; i < len; i++) {
|
||||||
|
switch (header.charCodeAt(i)) {
|
||||||
|
case 0x20: /* */
|
||||||
|
if (start === end) {
|
||||||
|
start = end = i + 1
|
||||||
|
}
|
||||||
|
break
|
||||||
|
case 0x2c: /* , */
|
||||||
|
list.push(header.substring(start, end))
|
||||||
|
start = end = i + 1
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
end = i + 1
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// final token
|
||||||
|
list.push(header.substring(start, end))
|
||||||
|
|
||||||
|
return list
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Mark that a request is varied on a header field.
|
||||||
|
*
|
||||||
|
* @param {Object} res
|
||||||
|
* @param {String|Array} field
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
|
||||||
|
function vary (res, field) {
|
||||||
|
if (!res || !res.getHeader || !res.setHeader) {
|
||||||
|
// quack quack
|
||||||
|
throw new TypeError('res argument is required')
|
||||||
|
}
|
||||||
|
|
||||||
|
// get existing header
|
||||||
|
var val = res.getHeader('Vary') || ''
|
||||||
|
var header = Array.isArray(val)
|
||||||
|
? val.join(', ')
|
||||||
|
: String(val)
|
||||||
|
|
||||||
|
// set new header
|
||||||
|
if ((val = append(header, field))) {
|
||||||
|
res.setHeader('Vary', val)
|
||||||
|
}
|
||||||
|
}
|
||||||
78
node_modules/vary/package.json
generated
vendored
Normal file
78
node_modules/vary/package.json
generated
vendored
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
{
|
||||||
|
"_from": "vary@~1.1.2",
|
||||||
|
"_id": "vary@1.1.2",
|
||||||
|
"_inBundle": false,
|
||||||
|
"_integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
|
||||||
|
"_location": "/vary",
|
||||||
|
"_phantomChildren": {},
|
||||||
|
"_requested": {
|
||||||
|
"type": "range",
|
||||||
|
"registry": true,
|
||||||
|
"raw": "vary@~1.1.2",
|
||||||
|
"name": "vary",
|
||||||
|
"escapedName": "vary",
|
||||||
|
"rawSpec": "~1.1.2",
|
||||||
|
"saveSpec": null,
|
||||||
|
"fetchSpec": "~1.1.2"
|
||||||
|
},
|
||||||
|
"_requiredBy": [
|
||||||
|
"/express"
|
||||||
|
],
|
||||||
|
"_resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
|
||||||
|
"_shasum": "2299f02c6ded30d4a5961b0b9f74524a18f634fc",
|
||||||
|
"_spec": "vary@~1.1.2",
|
||||||
|
"_where": "/Users/stevenh/Desktop/Side_Projects/What_Are_You_Lifting-App/WhatAreYouLifting/node_modules/express",
|
||||||
|
"author": {
|
||||||
|
"name": "Douglas Christopher Wilson",
|
||||||
|
"email": "doug@somethingdoug.com"
|
||||||
|
},
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/jshttp/vary/issues"
|
||||||
|
},
|
||||||
|
"bundleDependencies": false,
|
||||||
|
"deprecated": false,
|
||||||
|
"description": "Manipulate the HTTP Vary header",
|
||||||
|
"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": "2.5.3",
|
||||||
|
"supertest": "1.1.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.8"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"HISTORY.md",
|
||||||
|
"LICENSE",
|
||||||
|
"README.md",
|
||||||
|
"index.js"
|
||||||
|
],
|
||||||
|
"homepage": "https://github.com/jshttp/vary#readme",
|
||||||
|
"keywords": [
|
||||||
|
"http",
|
||||||
|
"res",
|
||||||
|
"vary"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"name": "vary",
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+https://github.com/jshttp/vary.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": "1.1.2"
|
||||||
|
}
|
||||||
356
package-lock.json
generated
Normal file
356
package-lock.json
generated
Normal file
@@ -0,0 +1,356 @@
|
|||||||
|
{
|
||||||
|
"requires": true,
|
||||||
|
"lockfileVersion": 1,
|
||||||
|
"dependencies": {
|
||||||
|
"accepts": {
|
||||||
|
"version": "1.3.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
|
||||||
|
"integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
|
||||||
|
"requires": {
|
||||||
|
"mime-types": "~2.1.18",
|
||||||
|
"negotiator": "0.6.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"array-flatten": {
|
||||||
|
"version": "1.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
|
||||||
|
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
|
||||||
|
},
|
||||||
|
"body-parser": {
|
||||||
|
"version": "1.18.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz",
|
||||||
|
"integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=",
|
||||||
|
"requires": {
|
||||||
|
"bytes": "3.0.0",
|
||||||
|
"content-type": "~1.0.4",
|
||||||
|
"debug": "2.6.9",
|
||||||
|
"depd": "~1.1.2",
|
||||||
|
"http-errors": "~1.6.3",
|
||||||
|
"iconv-lite": "0.4.23",
|
||||||
|
"on-finished": "~2.3.0",
|
||||||
|
"qs": "6.5.2",
|
||||||
|
"raw-body": "2.3.3",
|
||||||
|
"type-is": "~1.6.16"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"bytes": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
|
||||||
|
"integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
|
||||||
|
},
|
||||||
|
"content-disposition": {
|
||||||
|
"version": "0.5.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
|
||||||
|
"integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ="
|
||||||
|
},
|
||||||
|
"content-type": {
|
||||||
|
"version": "1.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
|
||||||
|
"integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
|
||||||
|
},
|
||||||
|
"cookie": {
|
||||||
|
"version": "0.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
|
||||||
|
"integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
|
||||||
|
},
|
||||||
|
"cookie-signature": {
|
||||||
|
"version": "1.0.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
|
||||||
|
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
|
||||||
|
},
|
||||||
|
"debug": {
|
||||||
|
"version": "2.6.9",
|
||||||
|
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||||
|
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||||
|
"requires": {
|
||||||
|
"ms": "2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"depd": {
|
||||||
|
"version": "1.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
|
||||||
|
"integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
|
||||||
|
},
|
||||||
|
"destroy": {
|
||||||
|
"version": "1.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
|
||||||
|
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
|
||||||
|
},
|
||||||
|
"ee-first": {
|
||||||
|
"version": "1.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
|
||||||
|
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
|
||||||
|
},
|
||||||
|
"encodeurl": {
|
||||||
|
"version": "1.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
|
||||||
|
"integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
|
||||||
|
},
|
||||||
|
"escape-html": {
|
||||||
|
"version": "1.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
|
||||||
|
"integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
|
||||||
|
},
|
||||||
|
"etag": {
|
||||||
|
"version": "1.8.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
|
||||||
|
"integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
|
||||||
|
},
|
||||||
|
"express": {
|
||||||
|
"version": "4.16.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz",
|
||||||
|
"integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==",
|
||||||
|
"requires": {
|
||||||
|
"accepts": "~1.3.5",
|
||||||
|
"array-flatten": "1.1.1",
|
||||||
|
"body-parser": "1.18.3",
|
||||||
|
"content-disposition": "0.5.2",
|
||||||
|
"content-type": "~1.0.4",
|
||||||
|
"cookie": "0.3.1",
|
||||||
|
"cookie-signature": "1.0.6",
|
||||||
|
"debug": "2.6.9",
|
||||||
|
"depd": "~1.1.2",
|
||||||
|
"encodeurl": "~1.0.2",
|
||||||
|
"escape-html": "~1.0.3",
|
||||||
|
"etag": "~1.8.1",
|
||||||
|
"finalhandler": "1.1.1",
|
||||||
|
"fresh": "0.5.2",
|
||||||
|
"merge-descriptors": "1.0.1",
|
||||||
|
"methods": "~1.1.2",
|
||||||
|
"on-finished": "~2.3.0",
|
||||||
|
"parseurl": "~1.3.2",
|
||||||
|
"path-to-regexp": "0.1.7",
|
||||||
|
"proxy-addr": "~2.0.4",
|
||||||
|
"qs": "6.5.2",
|
||||||
|
"range-parser": "~1.2.0",
|
||||||
|
"safe-buffer": "5.1.2",
|
||||||
|
"send": "0.16.2",
|
||||||
|
"serve-static": "1.13.2",
|
||||||
|
"setprototypeof": "1.1.0",
|
||||||
|
"statuses": "~1.4.0",
|
||||||
|
"type-is": "~1.6.16",
|
||||||
|
"utils-merge": "1.0.1",
|
||||||
|
"vary": "~1.1.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"finalhandler": {
|
||||||
|
"version": "1.1.1",
|
||||||
|
"resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
|
||||||
|
"integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
|
||||||
|
"requires": {
|
||||||
|
"debug": "2.6.9",
|
||||||
|
"encodeurl": "~1.0.2",
|
||||||
|
"escape-html": "~1.0.3",
|
||||||
|
"on-finished": "~2.3.0",
|
||||||
|
"parseurl": "~1.3.2",
|
||||||
|
"statuses": "~1.4.0",
|
||||||
|
"unpipe": "~1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"forwarded": {
|
||||||
|
"version": "0.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
|
||||||
|
"integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
|
||||||
|
},
|
||||||
|
"fresh": {
|
||||||
|
"version": "0.5.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
|
||||||
|
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
|
||||||
|
},
|
||||||
|
"http-errors": {
|
||||||
|
"version": "1.6.3",
|
||||||
|
"resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
|
||||||
|
"integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
|
||||||
|
"requires": {
|
||||||
|
"depd": "~1.1.2",
|
||||||
|
"inherits": "2.0.3",
|
||||||
|
"setprototypeof": "1.1.0",
|
||||||
|
"statuses": ">= 1.4.0 < 2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"iconv-lite": {
|
||||||
|
"version": "0.4.23",
|
||||||
|
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
|
||||||
|
"integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
|
||||||
|
"requires": {
|
||||||
|
"safer-buffer": ">= 2.1.2 < 3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"inherits": {
|
||||||
|
"version": "2.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
|
||||||
|
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
|
||||||
|
},
|
||||||
|
"ipaddr.js": {
|
||||||
|
"version": "1.8.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz",
|
||||||
|
"integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4="
|
||||||
|
},
|
||||||
|
"media-typer": {
|
||||||
|
"version": "0.3.0",
|
||||||
|
"resolved": "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
|
||||||
|
"integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
|
||||||
|
},
|
||||||
|
"merge-descriptors": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
|
||||||
|
"integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
|
||||||
|
},
|
||||||
|
"methods": {
|
||||||
|
"version": "1.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
|
||||||
|
"integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
|
||||||
|
},
|
||||||
|
"mime": {
|
||||||
|
"version": "1.4.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
|
||||||
|
"integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ=="
|
||||||
|
},
|
||||||
|
"mime-db": {
|
||||||
|
"version": "1.37.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.37.0.tgz",
|
||||||
|
"integrity": "sha512-R3C4db6bgQhlIhPU48fUtdVmKnflq+hRdad7IyKhtFj06VPNVdk2RhiYL3UjQIlso8L+YxAtFkobT0VK+S/ybg=="
|
||||||
|
},
|
||||||
|
"mime-types": {
|
||||||
|
"version": "2.1.21",
|
||||||
|
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.21.tgz",
|
||||||
|
"integrity": "sha512-3iL6DbwpyLzjR3xHSFNFeb9Nz/M8WDkX33t1GFQnFOllWk8pOrh/LSrB5OXlnlW5P9LH73X6loW/eogc+F5lJg==",
|
||||||
|
"requires": {
|
||||||
|
"mime-db": "~1.37.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ms": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||||
|
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
||||||
|
},
|
||||||
|
"negotiator": {
|
||||||
|
"version": "0.6.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
|
||||||
|
"integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
|
||||||
|
},
|
||||||
|
"on-finished": {
|
||||||
|
"version": "2.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
|
||||||
|
"integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
|
||||||
|
"requires": {
|
||||||
|
"ee-first": "1.1.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"parseurl": {
|
||||||
|
"version": "1.3.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
|
||||||
|
"integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="
|
||||||
|
},
|
||||||
|
"path-to-regexp": {
|
||||||
|
"version": "0.1.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
|
||||||
|
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
|
||||||
|
},
|
||||||
|
"proxy-addr": {
|
||||||
|
"version": "2.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz",
|
||||||
|
"integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==",
|
||||||
|
"requires": {
|
||||||
|
"forwarded": "~0.1.2",
|
||||||
|
"ipaddr.js": "1.8.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"qs": {
|
||||||
|
"version": "6.5.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
|
||||||
|
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
|
||||||
|
},
|
||||||
|
"range-parser": {
|
||||||
|
"version": "1.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
|
||||||
|
"integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
|
||||||
|
},
|
||||||
|
"raw-body": {
|
||||||
|
"version": "2.3.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz",
|
||||||
|
"integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==",
|
||||||
|
"requires": {
|
||||||
|
"bytes": "3.0.0",
|
||||||
|
"http-errors": "1.6.3",
|
||||||
|
"iconv-lite": "0.4.23",
|
||||||
|
"unpipe": "1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"safe-buffer": {
|
||||||
|
"version": "5.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
||||||
|
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
|
||||||
|
},
|
||||||
|
"safer-buffer": {
|
||||||
|
"version": "2.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
|
||||||
|
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
|
||||||
|
},
|
||||||
|
"send": {
|
||||||
|
"version": "0.16.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
|
||||||
|
"integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
|
||||||
|
"requires": {
|
||||||
|
"debug": "2.6.9",
|
||||||
|
"depd": "~1.1.2",
|
||||||
|
"destroy": "~1.0.4",
|
||||||
|
"encodeurl": "~1.0.2",
|
||||||
|
"escape-html": "~1.0.3",
|
||||||
|
"etag": "~1.8.1",
|
||||||
|
"fresh": "0.5.2",
|
||||||
|
"http-errors": "~1.6.2",
|
||||||
|
"mime": "1.4.1",
|
||||||
|
"ms": "2.0.0",
|
||||||
|
"on-finished": "~2.3.0",
|
||||||
|
"range-parser": "~1.2.0",
|
||||||
|
"statuses": "~1.4.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"serve-static": {
|
||||||
|
"version": "1.13.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
|
||||||
|
"integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
|
||||||
|
"requires": {
|
||||||
|
"encodeurl": "~1.0.2",
|
||||||
|
"escape-html": "~1.0.3",
|
||||||
|
"parseurl": "~1.3.2",
|
||||||
|
"send": "0.16.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"setprototypeof": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
|
||||||
|
},
|
||||||
|
"statuses": {
|
||||||
|
"version": "1.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
|
||||||
|
"integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew=="
|
||||||
|
},
|
||||||
|
"type-is": {
|
||||||
|
"version": "1.6.16",
|
||||||
|
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz",
|
||||||
|
"integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==",
|
||||||
|
"requires": {
|
||||||
|
"media-typer": "0.3.0",
|
||||||
|
"mime-types": "~2.1.18"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"unpipe": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
|
||||||
|
"integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
|
||||||
|
},
|
||||||
|
"utils-merge": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
|
||||||
|
"integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
|
||||||
|
},
|
||||||
|
"vary": {
|
||||||
|
"version": "1.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
|
||||||
|
"integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
26
server.js
Normal file
26
server.js
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2018 Google Inc.
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
const express = require('express');
|
||||||
|
const app = express();
|
||||||
|
|
||||||
|
// This serves static files from the specified directory
|
||||||
|
app.use(express.static(__dirname));
|
||||||
|
|
||||||
|
const server = app.listen(8081, () => {
|
||||||
|
|
||||||
|
const host = server.address().address;
|
||||||
|
const port = server.address().port;
|
||||||
|
|
||||||
|
console.log('App listening at http://%s:%s', host, port);
|
||||||
|
});
|
||||||
83
sw.js
83
sw.js
@@ -1,17 +1,17 @@
|
|||||||
const filesToCache = [
|
const filesToCache = [
|
||||||
'/',
|
'./',
|
||||||
'css/appstyling-v2.css',
|
'./css/appstyling-v2.css',
|
||||||
'css/main.css',
|
'./css/main.css',
|
||||||
'js/Weight Calculation Script-Edited-Jquery-V4.js',
|
'./js/Weight Calculation Script-Edited-Jquery-V4.js',
|
||||||
'images/45lbs-Plate.svg',
|
'./images/45lbs-Plate.svg',
|
||||||
'images/35lbs-Plate.svg',
|
'./images/35lbs-Plate.svg',
|
||||||
'images/25lbs-Plate.svg',
|
'./images/25lbs-Plate.svg',
|
||||||
'images/10lbs-Plate.svg',
|
'./images/10lbs-Plate.svg',
|
||||||
'images/5lbs-Plate.svg',
|
'./images/5lbs-Plate.svg',
|
||||||
'images/2halflbs-Plate.svg',
|
'./images/2halflbs-Plate.svg',
|
||||||
'images/favicon-16x16.png',
|
'./images/favicon-16x16.png',
|
||||||
'images/favicon-32x32.png',
|
'./images/favicon-32x32.png',
|
||||||
'index.html',
|
'./index.html'
|
||||||
];
|
];
|
||||||
|
|
||||||
const staticCacheName = 'pages-cache-v1';
|
const staticCacheName = 'pages-cache-v1';
|
||||||
@@ -26,33 +26,6 @@ self.addEventListener('install', event => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
self.addEventListener('fetch', event => {
|
|
||||||
console.log('Fetch event for ', event.request.url);
|
|
||||||
event.respondWith(
|
|
||||||
caches.match(event.request)
|
|
||||||
.then(response => {
|
|
||||||
if (response) {
|
|
||||||
console.log('Found ', event.request.url, ' in cache');
|
|
||||||
return response;
|
|
||||||
}
|
|
||||||
console.log('Network request for ', event.request.url);
|
|
||||||
return fetch(event.request)
|
|
||||||
.then(response => {
|
|
||||||
// TODO 5 - Respond with custom 404 page
|
|
||||||
return caches.open(staticCacheName).then(cache => {
|
|
||||||
cache.put(event.request.url, response.clone());
|
|
||||||
return response;
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
}).catch(error => {
|
|
||||||
|
|
||||||
// TODO 6 - Respond with custom offline page
|
|
||||||
|
|
||||||
})
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
self.addEventListener('activate', event => {
|
self.addEventListener('activate', event => {
|
||||||
console.log('Activating new service worker...');
|
console.log('Activating new service worker...');
|
||||||
|
|
||||||
@@ -69,4 +42,32 @@ self.addEventListener('activate', event => {
|
|||||||
);
|
);
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
self.addEventListener('fetch', event => {
|
||||||
|
console.log('Fetch event for ', event.request.url);
|
||||||
|
event.respondWith(
|
||||||
|
caches.match(event.request)
|
||||||
|
.then(response => {
|
||||||
|
if (response) {
|
||||||
|
console.log('Found ', event.request.url, ' in cache');
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
console.log('Network request for ', event.request.url);
|
||||||
|
return fetch(event.request)
|
||||||
|
.then(response => {
|
||||||
|
if (response.status === 404) {
|
||||||
|
return caches.match('index.html');
|
||||||
|
}
|
||||||
|
return caches.open(staticCacheName)
|
||||||
|
.then(cache => {
|
||||||
|
cache.put(event.request.url, response.clone());
|
||||||
|
return response;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}).catch(error => {
|
||||||
|
console.log('Error, ', error);
|
||||||
|
return caches.match('index.html');
|
||||||
|
})
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user