removed something
This commit is contained in:
15
GYMApp/GYMApp/node_modules/.bin/handlebars
generated
vendored
15
GYMApp/GYMApp/node_modules/.bin/handlebars
generated
vendored
@@ -1,15 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
|
||||||
|
|
||||||
case `uname` in
|
|
||||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ -x "$basedir/node" ]; then
|
|
||||||
"$basedir/node" "$basedir/../handlebars/bin/handlebars" "$@"
|
|
||||||
ret=$?
|
|
||||||
else
|
|
||||||
node "$basedir/../handlebars/bin/handlebars" "$@"
|
|
||||||
ret=$?
|
|
||||||
fi
|
|
||||||
exit $ret
|
|
||||||
7
GYMApp/GYMApp/node_modules/.bin/handlebars.cmd
generated
vendored
7
GYMApp/GYMApp/node_modules/.bin/handlebars.cmd
generated
vendored
@@ -1,7 +0,0 @@
|
|||||||
@IF EXIST "%~dp0\node.exe" (
|
|
||||||
"%~dp0\node.exe" "%~dp0\..\handlebars\bin\handlebars" %*
|
|
||||||
) ELSE (
|
|
||||||
@SETLOCAL
|
|
||||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
|
||||||
node "%~dp0\..\handlebars\bin\handlebars" %*
|
|
||||||
)
|
|
||||||
15
GYMApp/GYMApp/node_modules/.bin/mime
generated
vendored
15
GYMApp/GYMApp/node_modules/.bin/mime
generated
vendored
@@ -1,15 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
|
||||||
|
|
||||||
case `uname` in
|
|
||||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ -x "$basedir/node" ]; then
|
|
||||||
"$basedir/node" "$basedir/../mime/cli.js" "$@"
|
|
||||||
ret=$?
|
|
||||||
else
|
|
||||||
node "$basedir/../mime/cli.js" "$@"
|
|
||||||
ret=$?
|
|
||||||
fi
|
|
||||||
exit $ret
|
|
||||||
7
GYMApp/GYMApp/node_modules/.bin/mime.cmd
generated
vendored
7
GYMApp/GYMApp/node_modules/.bin/mime.cmd
generated
vendored
@@ -1,7 +0,0 @@
|
|||||||
@IF EXIST "%~dp0\node.exe" (
|
|
||||||
"%~dp0\node.exe" "%~dp0\..\mime\cli.js" %*
|
|
||||||
) ELSE (
|
|
||||||
@SETLOCAL
|
|
||||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
|
||||||
node "%~dp0\..\mime\cli.js" %*
|
|
||||||
)
|
|
||||||
15
GYMApp/GYMApp/node_modules/.bin/uglifyjs
generated
vendored
15
GYMApp/GYMApp/node_modules/.bin/uglifyjs
generated
vendored
@@ -1,15 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
|
||||||
|
|
||||||
case `uname` in
|
|
||||||
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [ -x "$basedir/node" ]; then
|
|
||||||
"$basedir/node" "$basedir/../uglify-js/bin/uglifyjs" "$@"
|
|
||||||
ret=$?
|
|
||||||
else
|
|
||||||
node "$basedir/../uglify-js/bin/uglifyjs" "$@"
|
|
||||||
ret=$?
|
|
||||||
fi
|
|
||||||
exit $ret
|
|
||||||
7
GYMApp/GYMApp/node_modules/.bin/uglifyjs.cmd
generated
vendored
7
GYMApp/GYMApp/node_modules/.bin/uglifyjs.cmd
generated
vendored
@@ -1,7 +0,0 @@
|
|||||||
@IF EXIST "%~dp0\node.exe" (
|
|
||||||
"%~dp0\node.exe" "%~dp0\..\uglify-js\bin\uglifyjs" %*
|
|
||||||
) ELSE (
|
|
||||||
@SETLOCAL
|
|
||||||
@SET PATHEXT=%PATHEXT:;.JS;=;%
|
|
||||||
node "%~dp0\..\uglify-js\bin\uglifyjs" %*
|
|
||||||
)
|
|
||||||
212
GYMApp/GYMApp/node_modules/accepts/HISTORY.md
generated
vendored
212
GYMApp/GYMApp/node_modules/accepts/HISTORY.md
generated
vendored
@@ -1,212 +0,0 @@
|
|||||||
1.3.3 / 2016-05-02
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: mime-types@~2.1.11
|
|
||||||
- deps: mime-db@~1.23.0
|
|
||||||
* deps: negotiator@0.6.1
|
|
||||||
- perf: improve `Accept` parsing speed
|
|
||||||
- perf: improve `Accept-Charset` parsing speed
|
|
||||||
- perf: improve `Accept-Encoding` parsing speed
|
|
||||||
- perf: improve `Accept-Language` parsing speed
|
|
||||||
|
|
||||||
1.3.2 / 2016-03-08
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: mime-types@~2.1.10
|
|
||||||
- Fix extension of `application/dash+xml`
|
|
||||||
- Update primary extension for `audio/mp4`
|
|
||||||
- deps: mime-db@~1.22.0
|
|
||||||
|
|
||||||
1.3.1 / 2016-01-19
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: mime-types@~2.1.9
|
|
||||||
- deps: mime-db@~1.21.0
|
|
||||||
|
|
||||||
1.3.0 / 2015-09-29
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: mime-types@~2.1.7
|
|
||||||
- deps: mime-db@~1.19.0
|
|
||||||
* deps: negotiator@0.6.0
|
|
||||||
- Fix including type extensions in parameters in `Accept` parsing
|
|
||||||
- Fix parsing `Accept` parameters with quoted equals
|
|
||||||
- Fix parsing `Accept` parameters with quoted semicolons
|
|
||||||
- Lazy-load modules from main entry point
|
|
||||||
- perf: delay type concatenation until needed
|
|
||||||
- perf: enable strict mode
|
|
||||||
- perf: hoist regular expressions
|
|
||||||
- perf: remove closures getting spec properties
|
|
||||||
- perf: remove a closure from media type parsing
|
|
||||||
- perf: remove property delete from media type parsing
|
|
||||||
|
|
||||||
1.2.13 / 2015-09-06
|
|
||||||
===================
|
|
||||||
|
|
||||||
* deps: mime-types@~2.1.6
|
|
||||||
- deps: mime-db@~1.18.0
|
|
||||||
|
|
||||||
1.2.12 / 2015-07-30
|
|
||||||
===================
|
|
||||||
|
|
||||||
* deps: mime-types@~2.1.4
|
|
||||||
- deps: mime-db@~1.16.0
|
|
||||||
|
|
||||||
1.2.11 / 2015-07-16
|
|
||||||
===================
|
|
||||||
|
|
||||||
* deps: mime-types@~2.1.3
|
|
||||||
- deps: mime-db@~1.15.0
|
|
||||||
|
|
||||||
1.2.10 / 2015-07-01
|
|
||||||
===================
|
|
||||||
|
|
||||||
* deps: mime-types@~2.1.2
|
|
||||||
- deps: mime-db@~1.14.0
|
|
||||||
|
|
||||||
1.2.9 / 2015-06-08
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: mime-types@~2.1.1
|
|
||||||
- perf: fix deopt during mapping
|
|
||||||
|
|
||||||
1.2.8 / 2015-06-07
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: mime-types@~2.1.0
|
|
||||||
- deps: mime-db@~1.13.0
|
|
||||||
* perf: avoid argument reassignment & argument slice
|
|
||||||
* perf: avoid negotiator recursive construction
|
|
||||||
* perf: enable strict mode
|
|
||||||
* perf: remove unnecessary bitwise operator
|
|
||||||
|
|
||||||
1.2.7 / 2015-05-10
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: negotiator@0.5.3
|
|
||||||
- Fix media type parameter matching to be case-insensitive
|
|
||||||
|
|
||||||
1.2.6 / 2015-05-07
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: mime-types@~2.0.11
|
|
||||||
- deps: mime-db@~1.9.1
|
|
||||||
* deps: negotiator@0.5.2
|
|
||||||
- Fix comparing media types with quoted values
|
|
||||||
- Fix splitting media types with quoted commas
|
|
||||||
|
|
||||||
1.2.5 / 2015-03-13
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: mime-types@~2.0.10
|
|
||||||
- deps: mime-db@~1.8.0
|
|
||||||
|
|
||||||
1.2.4 / 2015-02-14
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Support Node.js 0.6
|
|
||||||
* deps: mime-types@~2.0.9
|
|
||||||
- deps: mime-db@~1.7.0
|
|
||||||
* deps: negotiator@0.5.1
|
|
||||||
- Fix preference sorting to be stable for long acceptable lists
|
|
||||||
|
|
||||||
1.2.3 / 2015-01-31
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: mime-types@~2.0.8
|
|
||||||
- deps: mime-db@~1.6.0
|
|
||||||
|
|
||||||
1.2.2 / 2014-12-30
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: mime-types@~2.0.7
|
|
||||||
- deps: mime-db@~1.5.0
|
|
||||||
|
|
||||||
1.2.1 / 2014-12-30
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: mime-types@~2.0.5
|
|
||||||
- deps: mime-db@~1.3.1
|
|
||||||
|
|
||||||
1.2.0 / 2014-12-19
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: negotiator@0.5.0
|
|
||||||
- Fix list return order when large accepted list
|
|
||||||
- Fix missing identity encoding when q=0 exists
|
|
||||||
- Remove dynamic building of Negotiator class
|
|
||||||
|
|
||||||
1.1.4 / 2014-12-10
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: mime-types@~2.0.4
|
|
||||||
- deps: mime-db@~1.3.0
|
|
||||||
|
|
||||||
1.1.3 / 2014-11-09
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: mime-types@~2.0.3
|
|
||||||
- deps: mime-db@~1.2.0
|
|
||||||
|
|
||||||
1.1.2 / 2014-10-14
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: negotiator@0.4.9
|
|
||||||
- Fix error when media type has invalid parameter
|
|
||||||
|
|
||||||
1.1.1 / 2014-09-28
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: mime-types@~2.0.2
|
|
||||||
- deps: mime-db@~1.1.0
|
|
||||||
* deps: negotiator@0.4.8
|
|
||||||
- Fix all negotiations to be case-insensitive
|
|
||||||
- Stable sort preferences of same quality according to client order
|
|
||||||
|
|
||||||
1.1.0 / 2014-09-02
|
|
||||||
==================
|
|
||||||
|
|
||||||
* update `mime-types`
|
|
||||||
|
|
||||||
1.0.7 / 2014-07-04
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Fix wrong type returned from `type` when match after unknown extension
|
|
||||||
|
|
||||||
1.0.6 / 2014-06-24
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: negotiator@0.4.7
|
|
||||||
|
|
||||||
1.0.5 / 2014-06-20
|
|
||||||
==================
|
|
||||||
|
|
||||||
* fix crash when unknown extension given
|
|
||||||
|
|
||||||
1.0.4 / 2014-06-19
|
|
||||||
==================
|
|
||||||
|
|
||||||
* use `mime-types`
|
|
||||||
|
|
||||||
1.0.3 / 2014-06-11
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: negotiator@0.4.6
|
|
||||||
- Order by specificity when quality is the same
|
|
||||||
|
|
||||||
1.0.2 / 2014-05-29
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Fix interpretation when header not in request
|
|
||||||
* deps: pin negotiator@0.4.5
|
|
||||||
|
|
||||||
1.0.1 / 2014-01-18
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Identity encoding isn't always acceptable
|
|
||||||
* deps: negotiator@~0.4.0
|
|
||||||
|
|
||||||
1.0.0 / 2013-12-27
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Genesis
|
|
||||||
23
GYMApp/GYMApp/node_modules/accepts/LICENSE
generated
vendored
23
GYMApp/GYMApp/node_modules/accepts/LICENSE
generated
vendored
@@ -1,23 +0,0 @@
|
|||||||
(The MIT License)
|
|
||||||
|
|
||||||
Copyright (c) 2014 Jonathan Ong <me@jongleberry.com>
|
|
||||||
Copyright (c) 2015 Douglas Christopher Wilson <doug@somethingdoug.com>
|
|
||||||
|
|
||||||
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.
|
|
||||||
135
GYMApp/GYMApp/node_modules/accepts/README.md
generated
vendored
135
GYMApp/GYMApp/node_modules/accepts/README.md
generated
vendored
@@ -1,135 +0,0 @@
|
|||||||
# accepts
|
|
||||||
|
|
||||||
[![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]
|
|
||||||
|
|
||||||
Higher level content negotiation based on [negotiator](https://www.npmjs.com/package/negotiator). Extracted from [koa](https://www.npmjs.com/package/koa) for general use.
|
|
||||||
|
|
||||||
In addition to negotiator, it allows:
|
|
||||||
|
|
||||||
- Allows types as an array or arguments list, ie `(['text/html', 'application/json'])` as well as `('text/html', 'application/json')`.
|
|
||||||
- Allows type shorthands such as `json`.
|
|
||||||
- Returns `false` when no types match
|
|
||||||
- Treats non-existent headers as `*`
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
```sh
|
|
||||||
npm install accepts
|
|
||||||
```
|
|
||||||
|
|
||||||
## API
|
|
||||||
|
|
||||||
```js
|
|
||||||
var accepts = require('accepts')
|
|
||||||
```
|
|
||||||
|
|
||||||
### accepts(req)
|
|
||||||
|
|
||||||
Create a new `Accepts` object for the given `req`.
|
|
||||||
|
|
||||||
#### .charset(charsets)
|
|
||||||
|
|
||||||
Return the first accepted charset. If nothing in `charsets` is accepted,
|
|
||||||
then `false` is returned.
|
|
||||||
|
|
||||||
#### .charsets()
|
|
||||||
|
|
||||||
Return the charsets that the request accepts, in the order of the client's
|
|
||||||
preference (most preferred first).
|
|
||||||
|
|
||||||
#### .encoding(encodings)
|
|
||||||
|
|
||||||
Return the first accepted encoding. If nothing in `encodings` is accepted,
|
|
||||||
then `false` is returned.
|
|
||||||
|
|
||||||
#### .encodings()
|
|
||||||
|
|
||||||
Return the encodings that the request accepts, in the order of the client's
|
|
||||||
preference (most preferred first).
|
|
||||||
|
|
||||||
#### .language(languages)
|
|
||||||
|
|
||||||
Return the first accepted language. If nothing in `languages` is accepted,
|
|
||||||
then `false` is returned.
|
|
||||||
|
|
||||||
#### .languages()
|
|
||||||
|
|
||||||
Return the languages that the request accepts, in the order of the client's
|
|
||||||
preference (most preferred first).
|
|
||||||
|
|
||||||
#### .type(types)
|
|
||||||
|
|
||||||
Return the first accepted type (and it is returned as the same text as what
|
|
||||||
appears in the `types` array). If nothing in `types` is accepted, then `false`
|
|
||||||
is returned.
|
|
||||||
|
|
||||||
The `types` array can contain full MIME types or file extensions. Any value
|
|
||||||
that is not a full MIME types is passed to `require('mime-types').lookup`.
|
|
||||||
|
|
||||||
#### .types()
|
|
||||||
|
|
||||||
Return the types that the request accepts, in the order of the client's
|
|
||||||
preference (most preferred first).
|
|
||||||
|
|
||||||
## Examples
|
|
||||||
|
|
||||||
### Simple type negotiation
|
|
||||||
|
|
||||||
This simple example shows how to use `accepts` to return a different typed
|
|
||||||
respond body based on what the client wants to accept. The server lists it's
|
|
||||||
preferences in order and will get back the best match between the client and
|
|
||||||
server.
|
|
||||||
|
|
||||||
```js
|
|
||||||
var accepts = require('accepts')
|
|
||||||
var http = require('http')
|
|
||||||
|
|
||||||
function app(req, res) {
|
|
||||||
var accept = accepts(req)
|
|
||||||
|
|
||||||
// the order of this list is significant; should be server preferred order
|
|
||||||
switch(accept.type(['json', 'html'])) {
|
|
||||||
case 'json':
|
|
||||||
res.setHeader('Content-Type', 'application/json')
|
|
||||||
res.write('{"hello":"world!"}')
|
|
||||||
break
|
|
||||||
case 'html':
|
|
||||||
res.setHeader('Content-Type', 'text/html')
|
|
||||||
res.write('<b>hello, world!</b>')
|
|
||||||
break
|
|
||||||
default:
|
|
||||||
// the fallback is text/plain, so no need to specify it above
|
|
||||||
res.setHeader('Content-Type', 'text/plain')
|
|
||||||
res.write('hello, world!')
|
|
||||||
break
|
|
||||||
}
|
|
||||||
|
|
||||||
res.end()
|
|
||||||
}
|
|
||||||
|
|
||||||
http.createServer(app).listen(3000)
|
|
||||||
```
|
|
||||||
|
|
||||||
You can test this out with the cURL program:
|
|
||||||
```sh
|
|
||||||
curl -I -H'Accept: text/html' http://localhost:3000/
|
|
||||||
```
|
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
[MIT](LICENSE)
|
|
||||||
|
|
||||||
[npm-image]: https://img.shields.io/npm/v/accepts.svg
|
|
||||||
[npm-url]: https://npmjs.org/package/accepts
|
|
||||||
[node-version-image]: https://img.shields.io/node/v/accepts.svg
|
|
||||||
[node-version-url]: http://nodejs.org/download/
|
|
||||||
[travis-image]: https://img.shields.io/travis/jshttp/accepts/master.svg
|
|
||||||
[travis-url]: https://travis-ci.org/jshttp/accepts
|
|
||||||
[coveralls-image]: https://img.shields.io/coveralls/jshttp/accepts/master.svg
|
|
||||||
[coveralls-url]: https://coveralls.io/r/jshttp/accepts
|
|
||||||
[downloads-image]: https://img.shields.io/npm/dm/accepts.svg
|
|
||||||
[downloads-url]: https://npmjs.org/package/accepts
|
|
||||||
231
GYMApp/GYMApp/node_modules/accepts/index.js
generated
vendored
231
GYMApp/GYMApp/node_modules/accepts/index.js
generated
vendored
@@ -1,231 +0,0 @@
|
|||||||
/*!
|
|
||||||
* accepts
|
|
||||||
* Copyright(c) 2014 Jonathan Ong
|
|
||||||
* Copyright(c) 2015 Douglas Christopher Wilson
|
|
||||||
* MIT Licensed
|
|
||||||
*/
|
|
||||||
|
|
||||||
'use strict'
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Module dependencies.
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
|
|
||||||
var Negotiator = require('negotiator')
|
|
||||||
var mime = require('mime-types')
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Module exports.
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
|
|
||||||
module.exports = Accepts
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new Accepts object for the given req.
|
|
||||||
*
|
|
||||||
* @param {object} req
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
|
|
||||||
function Accepts(req) {
|
|
||||||
if (!(this instanceof Accepts))
|
|
||||||
return new Accepts(req)
|
|
||||||
|
|
||||||
this.headers = req.headers
|
|
||||||
this.negotiator = new Negotiator(req)
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Check if the given `type(s)` is acceptable, returning
|
|
||||||
* the best match when true, otherwise `undefined`, in which
|
|
||||||
* case you should respond with 406 "Not Acceptable".
|
|
||||||
*
|
|
||||||
* The `type` value may be a single mime type string
|
|
||||||
* such as "application/json", the extension name
|
|
||||||
* such as "json" or an array `["json", "html", "text/plain"]`. When a list
|
|
||||||
* or array is given the _best_ match, if any is returned.
|
|
||||||
*
|
|
||||||
* Examples:
|
|
||||||
*
|
|
||||||
* // Accept: text/html
|
|
||||||
* this.types('html');
|
|
||||||
* // => "html"
|
|
||||||
*
|
|
||||||
* // Accept: text/*, application/json
|
|
||||||
* this.types('html');
|
|
||||||
* // => "html"
|
|
||||||
* this.types('text/html');
|
|
||||||
* // => "text/html"
|
|
||||||
* this.types('json', 'text');
|
|
||||||
* // => "json"
|
|
||||||
* this.types('application/json');
|
|
||||||
* // => "application/json"
|
|
||||||
*
|
|
||||||
* // Accept: text/*, application/json
|
|
||||||
* this.types('image/png');
|
|
||||||
* this.types('png');
|
|
||||||
* // => undefined
|
|
||||||
*
|
|
||||||
* // Accept: text/*;q=.5, application/json
|
|
||||||
* this.types(['html', 'json']);
|
|
||||||
* this.types('html', 'json');
|
|
||||||
* // => "json"
|
|
||||||
*
|
|
||||||
* @param {String|Array} types...
|
|
||||||
* @return {String|Array|Boolean}
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
|
|
||||||
Accepts.prototype.type =
|
|
||||||
Accepts.prototype.types = function (types_) {
|
|
||||||
var types = types_
|
|
||||||
|
|
||||||
// support flattened arguments
|
|
||||||
if (types && !Array.isArray(types)) {
|
|
||||||
types = new Array(arguments.length)
|
|
||||||
for (var i = 0; i < types.length; i++) {
|
|
||||||
types[i] = arguments[i]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// no types, return all requested types
|
|
||||||
if (!types || types.length === 0) {
|
|
||||||
return this.negotiator.mediaTypes()
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!this.headers.accept) return types[0];
|
|
||||||
var mimes = types.map(extToMime);
|
|
||||||
var accepts = this.negotiator.mediaTypes(mimes.filter(validMime));
|
|
||||||
var first = accepts[0];
|
|
||||||
if (!first) return false;
|
|
||||||
return types[mimes.indexOf(first)];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return accepted encodings or best fit based on `encodings`.
|
|
||||||
*
|
|
||||||
* Given `Accept-Encoding: gzip, deflate`
|
|
||||||
* an array sorted by quality is returned:
|
|
||||||
*
|
|
||||||
* ['gzip', 'deflate']
|
|
||||||
*
|
|
||||||
* @param {String|Array} encodings...
|
|
||||||
* @return {String|Array}
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
|
|
||||||
Accepts.prototype.encoding =
|
|
||||||
Accepts.prototype.encodings = function (encodings_) {
|
|
||||||
var encodings = encodings_
|
|
||||||
|
|
||||||
// support flattened arguments
|
|
||||||
if (encodings && !Array.isArray(encodings)) {
|
|
||||||
encodings = new Array(arguments.length)
|
|
||||||
for (var i = 0; i < encodings.length; i++) {
|
|
||||||
encodings[i] = arguments[i]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// no encodings, return all requested encodings
|
|
||||||
if (!encodings || encodings.length === 0) {
|
|
||||||
return this.negotiator.encodings()
|
|
||||||
}
|
|
||||||
|
|
||||||
return this.negotiator.encodings(encodings)[0] || false
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return accepted charsets or best fit based on `charsets`.
|
|
||||||
*
|
|
||||||
* Given `Accept-Charset: utf-8, iso-8859-1;q=0.2, utf-7;q=0.5`
|
|
||||||
* an array sorted by quality is returned:
|
|
||||||
*
|
|
||||||
* ['utf-8', 'utf-7', 'iso-8859-1']
|
|
||||||
*
|
|
||||||
* @param {String|Array} charsets...
|
|
||||||
* @return {String|Array}
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
|
|
||||||
Accepts.prototype.charset =
|
|
||||||
Accepts.prototype.charsets = function (charsets_) {
|
|
||||||
var charsets = charsets_
|
|
||||||
|
|
||||||
// support flattened arguments
|
|
||||||
if (charsets && !Array.isArray(charsets)) {
|
|
||||||
charsets = new Array(arguments.length)
|
|
||||||
for (var i = 0; i < charsets.length; i++) {
|
|
||||||
charsets[i] = arguments[i]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// no charsets, return all requested charsets
|
|
||||||
if (!charsets || charsets.length === 0) {
|
|
||||||
return this.negotiator.charsets()
|
|
||||||
}
|
|
||||||
|
|
||||||
return this.negotiator.charsets(charsets)[0] || false
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return accepted languages or best fit based on `langs`.
|
|
||||||
*
|
|
||||||
* Given `Accept-Language: en;q=0.8, es, pt`
|
|
||||||
* an array sorted by quality is returned:
|
|
||||||
*
|
|
||||||
* ['es', 'pt', 'en']
|
|
||||||
*
|
|
||||||
* @param {String|Array} langs...
|
|
||||||
* @return {Array|String}
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
|
|
||||||
Accepts.prototype.lang =
|
|
||||||
Accepts.prototype.langs =
|
|
||||||
Accepts.prototype.language =
|
|
||||||
Accepts.prototype.languages = function (languages_) {
|
|
||||||
var languages = languages_
|
|
||||||
|
|
||||||
// support flattened arguments
|
|
||||||
if (languages && !Array.isArray(languages)) {
|
|
||||||
languages = new Array(arguments.length)
|
|
||||||
for (var i = 0; i < languages.length; i++) {
|
|
||||||
languages[i] = arguments[i]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// no languages, return all requested languages
|
|
||||||
if (!languages || languages.length === 0) {
|
|
||||||
return this.negotiator.languages()
|
|
||||||
}
|
|
||||||
|
|
||||||
return this.negotiator.languages(languages)[0] || false
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert extnames to mime.
|
|
||||||
*
|
|
||||||
* @param {String} type
|
|
||||||
* @return {String}
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
|
|
||||||
function extToMime(type) {
|
|
||||||
return type.indexOf('/') === -1
|
|
||||||
? mime.lookup(type)
|
|
||||||
: type
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Check if mime is valid.
|
|
||||||
*
|
|
||||||
* @param {String} type
|
|
||||||
* @return {String}
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
|
|
||||||
function validMime(type) {
|
|
||||||
return typeof type === 'string';
|
|
||||||
}
|
|
||||||
112
GYMApp/GYMApp/node_modules/accepts/package.json
generated
vendored
112
GYMApp/GYMApp/node_modules/accepts/package.json
generated
vendored
@@ -1,112 +0,0 @@
|
|||||||
{
|
|
||||||
"_args": [
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"raw": "accepts@~1.3.3",
|
|
||||||
"scope": null,
|
|
||||||
"escapedName": "accepts",
|
|
||||||
"name": "accepts",
|
|
||||||
"rawSpec": "~1.3.3",
|
|
||||||
"spec": ">=1.3.3 <1.4.0",
|
|
||||||
"type": "range"
|
|
||||||
},
|
|
||||||
"C:\\Users\\nkiboti\\workspace\\GYMApp\\GYMApp\\node_modules\\express"
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"_from": "accepts@>=1.3.3 <1.4.0",
|
|
||||||
"_id": "accepts@1.3.3",
|
|
||||||
"_inCache": true,
|
|
||||||
"_location": "/accepts",
|
|
||||||
"_nodeVersion": "4.4.3",
|
|
||||||
"_npmOperationalInternal": {
|
|
||||||
"host": "packages-16-east.internal.npmjs.com",
|
|
||||||
"tmp": "tmp/accepts-1.3.3.tgz_1462251932032_0.7092335098423064"
|
|
||||||
},
|
|
||||||
"_npmUser": {
|
|
||||||
"name": "dougwilson",
|
|
||||||
"email": "doug@somethingdoug.com"
|
|
||||||
},
|
|
||||||
"_npmVersion": "2.15.1",
|
|
||||||
"_phantomChildren": {},
|
|
||||||
"_requested": {
|
|
||||||
"raw": "accepts@~1.3.3",
|
|
||||||
"scope": null,
|
|
||||||
"escapedName": "accepts",
|
|
||||||
"name": "accepts",
|
|
||||||
"rawSpec": "~1.3.3",
|
|
||||||
"spec": ">=1.3.3 <1.4.0",
|
|
||||||
"type": "range"
|
|
||||||
},
|
|
||||||
"_requiredBy": [
|
|
||||||
"/express"
|
|
||||||
],
|
|
||||||
"_resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz",
|
|
||||||
"_shasum": "c3ca7434938648c3e0d9c1e328dd68b622c284ca",
|
|
||||||
"_shrinkwrap": null,
|
|
||||||
"_spec": "accepts@~1.3.3",
|
|
||||||
"_where": "C:\\Users\\nkiboti\\workspace\\GYMApp\\GYMApp\\node_modules\\express",
|
|
||||||
"bugs": {
|
|
||||||
"url": "https://github.com/jshttp/accepts/issues"
|
|
||||||
},
|
|
||||||
"contributors": [
|
|
||||||
{
|
|
||||||
"name": "Douglas Christopher Wilson",
|
|
||||||
"email": "doug@somethingdoug.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Jonathan Ong",
|
|
||||||
"email": "me@jongleberry.com",
|
|
||||||
"url": "http://jongleberry.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dependencies": {
|
|
||||||
"mime-types": "~2.1.11",
|
|
||||||
"negotiator": "0.6.1"
|
|
||||||
},
|
|
||||||
"description": "Higher-level content negotiation",
|
|
||||||
"devDependencies": {
|
|
||||||
"istanbul": "0.4.3",
|
|
||||||
"mocha": "~1.21.5"
|
|
||||||
},
|
|
||||||
"directories": {},
|
|
||||||
"dist": {
|
|
||||||
"shasum": "c3ca7434938648c3e0d9c1e328dd68b622c284ca",
|
|
||||||
"tarball": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 0.6"
|
|
||||||
},
|
|
||||||
"files": [
|
|
||||||
"LICENSE",
|
|
||||||
"HISTORY.md",
|
|
||||||
"index.js"
|
|
||||||
],
|
|
||||||
"gitHead": "3e925b1e65ed7da2798849683d49814680dfa426",
|
|
||||||
"homepage": "https://github.com/jshttp/accepts#readme",
|
|
||||||
"keywords": [
|
|
||||||
"content",
|
|
||||||
"negotiation",
|
|
||||||
"accept",
|
|
||||||
"accepts"
|
|
||||||
],
|
|
||||||
"license": "MIT",
|
|
||||||
"maintainers": [
|
|
||||||
{
|
|
||||||
"name": "dougwilson",
|
|
||||||
"email": "doug@somethingdoug.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "accepts",
|
|
||||||
"optionalDependencies": {},
|
|
||||||
"readme": "ERROR: No README data found!",
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "git+https://github.com/jshttp/accepts.git"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"test": "mocha --reporter spec --check-leaks --bail 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.3.3"
|
|
||||||
}
|
|
||||||
21
GYMApp/GYMApp/node_modules/align-text/LICENSE
generated
vendored
21
GYMApp/GYMApp/node_modules/align-text/LICENSE
generated
vendored
@@ -1,21 +0,0 @@
|
|||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2015, Jon Schlinkert.
|
|
||||||
|
|
||||||
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.
|
|
||||||
236
GYMApp/GYMApp/node_modules/align-text/README.md
generated
vendored
236
GYMApp/GYMApp/node_modules/align-text/README.md
generated
vendored
@@ -1,236 +0,0 @@
|
|||||||
# align-text [](http://badge.fury.io/js/align-text) [](https://travis-ci.org/jonschlinkert/align-text)
|
|
||||||
|
|
||||||
> Align the text in a string.
|
|
||||||
|
|
||||||
**Examples**
|
|
||||||
|
|
||||||
Align text values in an array:
|
|
||||||
|
|
||||||
```js
|
|
||||||
align([1, 2, 3, 100]);
|
|
||||||
//=> [' 1', ' 2', ' 3', '100']
|
|
||||||
```
|
|
||||||
|
|
||||||
Or [do stuff like this](./example.js):
|
|
||||||
|
|
||||||
[](./example.js)
|
|
||||||
|
|
||||||
Visit [the example](./example.js) to see how this works.
|
|
||||||
|
|
||||||
## Install
|
|
||||||
|
|
||||||
Install with [npm](https://www.npmjs.com/)
|
|
||||||
|
|
||||||
```sh
|
|
||||||
$ npm i align-text --save
|
|
||||||
```
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
```js
|
|
||||||
var align = require('align-text');
|
|
||||||
align(text, callback_function_or_integer);
|
|
||||||
```
|
|
||||||
|
|
||||||
**Params**
|
|
||||||
|
|
||||||
* `text` can be a **string or array**. If a string is passed, a string will be returned. If an array is passed, an array will be returned.
|
|
||||||
* `callback|integer`: if an integer, the text will be indented by that amount. If a function, it must return an integer representing the amount of leading indentation to use as `align` loops over each line.
|
|
||||||
|
|
||||||
**Example**
|
|
||||||
|
|
||||||
```js
|
|
||||||
align(text, 4);
|
|
||||||
```
|
|
||||||
|
|
||||||
Would align:
|
|
||||||
|
|
||||||
```
|
|
||||||
abc
|
|
||||||
abc
|
|
||||||
abc
|
|
||||||
```
|
|
||||||
|
|
||||||
To:
|
|
||||||
|
|
||||||
```
|
|
||||||
abc
|
|
||||||
abc
|
|
||||||
abc
|
|
||||||
```
|
|
||||||
|
|
||||||
## callback
|
|
||||||
|
|
||||||
### params
|
|
||||||
|
|
||||||
The callback is used to determine the indentation of each line and gets the following params:
|
|
||||||
|
|
||||||
* `len` the length of the "current" line
|
|
||||||
* `longest` the length of the longest line
|
|
||||||
* `line` the current line (string) being aligned
|
|
||||||
* `lines` the array of all lines
|
|
||||||
|
|
||||||
### return
|
|
||||||
|
|
||||||
The callback may return:
|
|
||||||
|
|
||||||
* an integer that represents the number of spaces to use for padding,
|
|
||||||
* or an object with the following properties:
|
|
||||||
- `indent`: **{Number}** the amount of indentation to use. Default is `0` when an object is returned.
|
|
||||||
- `character`: **{String}** the character to use for indentation. Default is `''` (empty string) when an object is returned.
|
|
||||||
- `prefix`: **{String}** leading characters to use at the beginning of each line. `''` (empty string) when an object is returned.
|
|
||||||
|
|
||||||
**Integer example:**
|
|
||||||
|
|
||||||
```js
|
|
||||||
// calculate half the difference between the length
|
|
||||||
// of the current line and the longest line
|
|
||||||
function centerAlign(len, longest, line, lines) {
|
|
||||||
return Math.floor((longest - len) / 2);
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**Object example:**
|
|
||||||
|
|
||||||
```js
|
|
||||||
function centerAlign(len, longest, line, lines) {
|
|
||||||
return {
|
|
||||||
character: '\t',
|
|
||||||
indent: Math.floor((longest - len) / 2),
|
|
||||||
prefix: '~ ',
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## Usage examples
|
|
||||||
|
|
||||||
### Center align
|
|
||||||
|
|
||||||
Using the `centerAlign` function from above:
|
|
||||||
|
|
||||||
```js
|
|
||||||
align(text, centerAlign);
|
|
||||||
```
|
|
||||||
|
|
||||||
Would align this text:
|
|
||||||
|
|
||||||
```js
|
|
||||||
Lorem ipsum dolor sit amet
|
|
||||||
consectetur adipiscin
|
|
||||||
elit, sed do eiusmod tempor incididun
|
|
||||||
ut labore et dolor
|
|
||||||
magna aliqua. Ut enim ad mini
|
|
||||||
veniam, quis
|
|
||||||
```
|
|
||||||
|
|
||||||
Resulting in this:
|
|
||||||
|
|
||||||
```
|
|
||||||
Lorem ipsum dolor sit amet,
|
|
||||||
consectetur adipiscing
|
|
||||||
elit, sed do eiusmod tempor incididunt
|
|
||||||
ut labore et dolore
|
|
||||||
magna aliqua. Ut enim ad minim
|
|
||||||
veniam, quis
|
|
||||||
```
|
|
||||||
|
|
||||||
**Customize**
|
|
||||||
|
|
||||||
If you wanted to add more padding on the left, just pass the number in the callback.
|
|
||||||
|
|
||||||
For example, to add 4 spaces before every line:
|
|
||||||
|
|
||||||
```js
|
|
||||||
function centerAlign(len, longest, line, lines) {
|
|
||||||
return 4 + Math.floor((longest - len) / 2);
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Would result in:
|
|
||||||
|
|
||||||
```
|
|
||||||
Lorem ipsum dolor sit amet,
|
|
||||||
consectetur adipiscing
|
|
||||||
elit, sed do eiusmod tempor incididunt
|
|
||||||
ut labore et dolore
|
|
||||||
magna aliqua. Ut enim ad minim
|
|
||||||
veniam, quis
|
|
||||||
```
|
|
||||||
|
|
||||||
### Bullets
|
|
||||||
|
|
||||||
```js
|
|
||||||
align(text, function (len, max, line, lines) {
|
|
||||||
return {prefix: ' - '};
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
Would return:
|
|
||||||
|
|
||||||
```
|
|
||||||
- Lorem ipsum dolor sit amet,
|
|
||||||
- consectetur adipiscing
|
|
||||||
- elit, sed do eiusmod tempor incididunt
|
|
||||||
- ut labore et dolore
|
|
||||||
- magna aliqua. Ut enim ad minim
|
|
||||||
- veniam, quis
|
|
||||||
```
|
|
||||||
|
|
||||||
### Different indent character
|
|
||||||
|
|
||||||
```js
|
|
||||||
align(text, function (len, max, line, lines) {
|
|
||||||
return {
|
|
||||||
indent: Math.floor((max - len) / 2),
|
|
||||||
character: '~',
|
|
||||||
};
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
Would return
|
|
||||||
|
|
||||||
```
|
|
||||||
~~~~~Lorem ipsum dolor sit amet,
|
|
||||||
~~~~~~~~consectetur adipiscing
|
|
||||||
elit, sed do eiusmod tempor incididunt
|
|
||||||
~~~~~~~~~ut labore et dolore
|
|
||||||
~~~~magna aliqua. Ut enim ad minim
|
|
||||||
~~~~~~~~~~~~~veniam, quis
|
|
||||||
```
|
|
||||||
|
|
||||||
## Related projects
|
|
||||||
|
|
||||||
* [center-align](https://github.com/jonschlinkert/center-align): Center-align the text in a string.
|
|
||||||
* [justify](https://github.com/bahamas10/node-justify): Left or right (or both) justify text using a custom width and character
|
|
||||||
* [longest](https://github.com/jonschlinkert/longest): Get the longest item in an array.
|
|
||||||
* [right-align](https://github.com/jonschlinkert/right-align): Right-align the text in a string.
|
|
||||||
* [repeat-string](https://github.com/jonschlinkert/repeat-string): Repeat the given string n times. Fastest implementation for repeating a string.
|
|
||||||
* [word-wrap](https://github.com/jonschlinkert/word-wrap): Wrap words to a specified length.
|
|
||||||
|
|
||||||
## Running tests
|
|
||||||
|
|
||||||
Install dev dependencies:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
$ npm i -d && npm test
|
|
||||||
```
|
|
||||||
|
|
||||||
## Contributing
|
|
||||||
|
|
||||||
Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/align-text/issues/new)
|
|
||||||
|
|
||||||
## Author
|
|
||||||
|
|
||||||
**Jon Schlinkert**
|
|
||||||
|
|
||||||
+ [github/jonschlinkert](https://github.com/jonschlinkert)
|
|
||||||
+ [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
|
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
Copyright © 2015 [Jon Schlinkert](https://github.com/jonschlinkert)
|
|
||||||
Released under the MIT license.
|
|
||||||
|
|
||||||
***
|
|
||||||
|
|
||||||
_This file was generated by [verb-cli](https://github.com/assemble/verb-cli) on June 09, 2015._
|
|
||||||
52
GYMApp/GYMApp/node_modules/align-text/index.js
generated
vendored
52
GYMApp/GYMApp/node_modules/align-text/index.js
generated
vendored
@@ -1,52 +0,0 @@
|
|||||||
/*!
|
|
||||||
* align-text <https://github.com/jonschlinkert/align-text>
|
|
||||||
*
|
|
||||||
* Copyright (c) 2015, Jon Schlinkert.
|
|
||||||
* Licensed under the MIT License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
var typeOf = require('kind-of');
|
|
||||||
var repeat = require('repeat-string');
|
|
||||||
var longest = require('longest');
|
|
||||||
|
|
||||||
module.exports = function alignText(val, fn) {
|
|
||||||
var lines, type = typeOf(val);
|
|
||||||
|
|
||||||
if (type === 'array') {
|
|
||||||
lines = val;
|
|
||||||
} else if (type === 'string') {
|
|
||||||
lines = val.split(/(?:\r\n|\n)/);
|
|
||||||
} else {
|
|
||||||
throw new TypeError('align-text expects a string or array.');
|
|
||||||
}
|
|
||||||
|
|
||||||
var fnType = typeOf(fn);
|
|
||||||
var len = lines.length;
|
|
||||||
var max = longest(lines);
|
|
||||||
var res = [], i = 0;
|
|
||||||
|
|
||||||
while (len--) {
|
|
||||||
var line = String(lines[i++]);
|
|
||||||
var diff;
|
|
||||||
|
|
||||||
if (fnType === 'function') {
|
|
||||||
diff = fn(line.length, max.length, line, lines, i);
|
|
||||||
} else if (fnType === 'number') {
|
|
||||||
diff = fn;
|
|
||||||
} else {
|
|
||||||
diff = max.length - line.length;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeOf(diff) === 'number') {
|
|
||||||
res.push(repeat(' ', diff) + line);
|
|
||||||
} else if (typeOf(diff) === 'object') {
|
|
||||||
var result = repeat(diff.character || ' ', diff.indent || 0);
|
|
||||||
res.push((diff.prefix || '') + result + line);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (type === 'array') return res;
|
|
||||||
return res.join('\n');
|
|
||||||
};
|
|
||||||
117
GYMApp/GYMApp/node_modules/align-text/package.json
generated
vendored
117
GYMApp/GYMApp/node_modules/align-text/package.json
generated
vendored
@@ -1,117 +0,0 @@
|
|||||||
{
|
|
||||||
"_args": [
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"raw": "align-text@^0.1.3",
|
|
||||||
"scope": null,
|
|
||||||
"escapedName": "align-text",
|
|
||||||
"name": "align-text",
|
|
||||||
"rawSpec": "^0.1.3",
|
|
||||||
"spec": ">=0.1.3 <0.2.0",
|
|
||||||
"type": "range"
|
|
||||||
},
|
|
||||||
"C:\\Users\\nkiboti\\workspace\\GYMApp\\GYMApp\\node_modules\\center-align"
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"_from": "align-text@>=0.1.3 <0.2.0",
|
|
||||||
"_id": "align-text@0.1.4",
|
|
||||||
"_inCache": true,
|
|
||||||
"_location": "/align-text",
|
|
||||||
"_nodeVersion": "5.5.0",
|
|
||||||
"_npmOperationalInternal": {
|
|
||||||
"host": "packages-9-west.internal.npmjs.com",
|
|
||||||
"tmp": "tmp/align-text-0.1.4.tgz_1454377856920_0.9624228512402624"
|
|
||||||
},
|
|
||||||
"_npmUser": {
|
|
||||||
"name": "shinnn",
|
|
||||||
"email": "snnskwtnb@gmail.com"
|
|
||||||
},
|
|
||||||
"_npmVersion": "3.6.0",
|
|
||||||
"_phantomChildren": {},
|
|
||||||
"_requested": {
|
|
||||||
"raw": "align-text@^0.1.3",
|
|
||||||
"scope": null,
|
|
||||||
"escapedName": "align-text",
|
|
||||||
"name": "align-text",
|
|
||||||
"rawSpec": "^0.1.3",
|
|
||||||
"spec": ">=0.1.3 <0.2.0",
|
|
||||||
"type": "range"
|
|
||||||
},
|
|
||||||
"_requiredBy": [
|
|
||||||
"/center-align",
|
|
||||||
"/right-align"
|
|
||||||
],
|
|
||||||
"_resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
|
|
||||||
"_shasum": "0cd90a561093f35d0a99256c22b7069433fad117",
|
|
||||||
"_shrinkwrap": null,
|
|
||||||
"_spec": "align-text@^0.1.3",
|
|
||||||
"_where": "C:\\Users\\nkiboti\\workspace\\GYMApp\\GYMApp\\node_modules\\center-align",
|
|
||||||
"author": {
|
|
||||||
"name": "Jon Schlinkert",
|
|
||||||
"url": "https://github.com/jonschlinkert"
|
|
||||||
},
|
|
||||||
"bugs": {
|
|
||||||
"url": "https://github.com/jonschlinkert/align-text/issues"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"kind-of": "^3.0.2",
|
|
||||||
"longest": "^1.0.1",
|
|
||||||
"repeat-string": "^1.5.2"
|
|
||||||
},
|
|
||||||
"description": "Align the text in a string.",
|
|
||||||
"devDependencies": {
|
|
||||||
"mocha": "*",
|
|
||||||
"should": "*",
|
|
||||||
"word-wrap": "^1.0.3"
|
|
||||||
},
|
|
||||||
"directories": {},
|
|
||||||
"dist": {
|
|
||||||
"shasum": "0cd90a561093f35d0a99256c22b7069433fad117",
|
|
||||||
"tarball": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.10.0"
|
|
||||||
},
|
|
||||||
"files": [
|
|
||||||
"index.js"
|
|
||||||
],
|
|
||||||
"gitHead": "7f08e823a54c6bda319d875895813537a66a4c5e",
|
|
||||||
"homepage": "https://github.com/jonschlinkert/align-text",
|
|
||||||
"keywords": [
|
|
||||||
"align",
|
|
||||||
"align-center",
|
|
||||||
"alignment",
|
|
||||||
"center",
|
|
||||||
"center-align",
|
|
||||||
"indent",
|
|
||||||
"pad",
|
|
||||||
"padding",
|
|
||||||
"right",
|
|
||||||
"right-align",
|
|
||||||
"text",
|
|
||||||
"typography"
|
|
||||||
],
|
|
||||||
"license": "MIT",
|
|
||||||
"main": "index.js",
|
|
||||||
"maintainers": [
|
|
||||||
{
|
|
||||||
"name": "jonschlinkert",
|
|
||||||
"email": "github@sellside.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "shinnn",
|
|
||||||
"email": "snnskwtnb@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "align-text",
|
|
||||||
"optionalDependencies": {},
|
|
||||||
"readme": "ERROR: No README data found!",
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "git://github.com/jonschlinkert/align-text.git"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"test": "mocha"
|
|
||||||
},
|
|
||||||
"version": "0.1.4"
|
|
||||||
}
|
|
||||||
58
GYMApp/GYMApp/node_modules/amdefine/LICENSE
generated
vendored
58
GYMApp/GYMApp/node_modules/amdefine/LICENSE
generated
vendored
@@ -1,58 +0,0 @@
|
|||||||
amdefine is released under two licenses: new BSD, and MIT. You may pick the
|
|
||||||
license that best suits your development needs. The text of both licenses are
|
|
||||||
provided below.
|
|
||||||
|
|
||||||
|
|
||||||
The "New" BSD License:
|
|
||||||
----------------------
|
|
||||||
|
|
||||||
Copyright (c) 2011-2016, The Dojo Foundation
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
* Redistributions of source code must retain the above copyright notice, this
|
|
||||||
list of conditions and the following disclaimer.
|
|
||||||
* Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer in the documentation
|
|
||||||
and/or other materials provided with the distribution.
|
|
||||||
* Neither the name of the Dojo Foundation nor the names of its contributors
|
|
||||||
may be used to endorse or promote products derived from this software
|
|
||||||
without specific prior written permission.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
|
||||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
||||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
||||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
||||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
||||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
MIT License
|
|
||||||
-----------
|
|
||||||
|
|
||||||
Copyright (c) 2011-2016, The Dojo Foundation
|
|
||||||
|
|
||||||
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.
|
|
||||||
171
GYMApp/GYMApp/node_modules/amdefine/README.md
generated
vendored
171
GYMApp/GYMApp/node_modules/amdefine/README.md
generated
vendored
@@ -1,171 +0,0 @@
|
|||||||
# amdefine
|
|
||||||
|
|
||||||
A module that can be used to implement AMD's define() in Node. This allows you
|
|
||||||
to code to the AMD API and have the module work in node programs without
|
|
||||||
requiring those other programs to use AMD.
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
**1)** Update your package.json to indicate amdefine as a dependency:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
"dependencies": {
|
|
||||||
"amdefine": ">=0.1.0"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Then run `npm install` to get amdefine into your project.
|
|
||||||
|
|
||||||
**2)** At the top of each module that uses define(), place this code:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
if (typeof define !== 'function') { var define = require('amdefine')(module) }
|
|
||||||
```
|
|
||||||
|
|
||||||
**Only use these snippets** when loading amdefine. If you preserve the basic structure,
|
|
||||||
with the braces, it will be stripped out when using the [RequireJS optimizer](#optimizer).
|
|
||||||
|
|
||||||
You can add spaces, line breaks and even require amdefine with a local path, but
|
|
||||||
keep the rest of the structure to get the stripping behavior.
|
|
||||||
|
|
||||||
As you may know, because `if` statements in JavaScript don't have their own scope, the var
|
|
||||||
declaration in the above snippet is made whether the `if` expression is truthy or not. If
|
|
||||||
RequireJS is loaded then the declaration is superfluous because `define` is already already
|
|
||||||
declared in the same scope in RequireJS. Fortunately JavaScript handles multiple `var`
|
|
||||||
declarations of the same variable in the same scope gracefully.
|
|
||||||
|
|
||||||
If you want to deliver amdefine.js with your code rather than specifying it as a dependency
|
|
||||||
with npm, then just download the latest release and refer to it using a relative path:
|
|
||||||
|
|
||||||
[Latest Version](https://github.com/jrburke/amdefine/raw/latest/amdefine.js)
|
|
||||||
|
|
||||||
### amdefine/intercept
|
|
||||||
|
|
||||||
Consider this very experimental.
|
|
||||||
|
|
||||||
Instead of pasting the piece of text for the amdefine setup of a `define`
|
|
||||||
variable in each module you create or consume, you can use `amdefine/intercept`
|
|
||||||
instead. It will automatically insert the above snippet in each .js file loaded
|
|
||||||
by Node.
|
|
||||||
|
|
||||||
**Warning**: you should only use this if you are creating an application that
|
|
||||||
is consuming AMD style defined()'d modules that are distributed via npm and want
|
|
||||||
to run that code in Node.
|
|
||||||
|
|
||||||
For library code where you are not sure if it will be used by others in Node or
|
|
||||||
in the browser, then explicitly depending on amdefine and placing the code
|
|
||||||
snippet above is suggested path, instead of using `amdefine/intercept`. The
|
|
||||||
intercept module affects all .js files loaded in the Node app, and it is
|
|
||||||
inconsiderate to modify global state like that unless you are also controlling
|
|
||||||
the top level app.
|
|
||||||
|
|
||||||
#### Why distribute AMD-style modules via npm?
|
|
||||||
|
|
||||||
npm has a lot of weaknesses for front-end use (installed layout is not great,
|
|
||||||
should have better support for the `baseUrl + moduleID + '.js' style of loading,
|
|
||||||
single file JS installs), but some people want a JS package manager and are
|
|
||||||
willing to live with those constraints. If that is you, but still want to author
|
|
||||||
in AMD style modules to get dynamic require([]), better direct source usage and
|
|
||||||
powerful loader plugin support in the browser, then this tool can help.
|
|
||||||
|
|
||||||
#### amdefine/intercept usage
|
|
||||||
|
|
||||||
Just require it in your top level app module (for example index.js, server.js):
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
require('amdefine/intercept');
|
|
||||||
```
|
|
||||||
|
|
||||||
The module does not return a value, so no need to assign the result to a local
|
|
||||||
variable.
|
|
||||||
|
|
||||||
Then just require() code as you normally would with Node's require(). Any .js
|
|
||||||
loaded after the intercept require will have the amdefine check injected in
|
|
||||||
the .js source as it is loaded. It does not modify the source on disk, just
|
|
||||||
prepends some content to the text of the module as it is loaded by Node.
|
|
||||||
|
|
||||||
#### How amdefine/intercept works
|
|
||||||
|
|
||||||
It overrides the `Module._extensions['.js']` in Node to automatically prepend
|
|
||||||
the amdefine snippet above. So, it will affect any .js file loaded by your
|
|
||||||
app.
|
|
||||||
|
|
||||||
## define() usage
|
|
||||||
|
|
||||||
It is best if you use the anonymous forms of define() in your module:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
define(function (require) {
|
|
||||||
var dependency = require('dependency');
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
or
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
define(['dependency'], function (dependency) {
|
|
||||||
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
## RequireJS optimizer integration. <a name="optimizer"></name>
|
|
||||||
|
|
||||||
Version 1.0.3 of the [RequireJS optimizer](http://requirejs.org/docs/optimization.html)
|
|
||||||
will have support for stripping the `if (typeof define !== 'function')` check
|
|
||||||
mentioned above, so you can include this snippet for code that runs in the
|
|
||||||
browser, but avoid taking the cost of the if() statement once the code is
|
|
||||||
optimized for deployment.
|
|
||||||
|
|
||||||
## Node 0.4 Support
|
|
||||||
|
|
||||||
If you want to support Node 0.4, then add `require` as the second parameter to amdefine:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
//Only if you want Node 0.4. If using 0.5 or later, use the above snippet.
|
|
||||||
if (typeof define !== 'function') { var define = require('amdefine')(module, require) }
|
|
||||||
```
|
|
||||||
|
|
||||||
## Limitations
|
|
||||||
|
|
||||||
### Synchronous vs Asynchronous
|
|
||||||
|
|
||||||
amdefine creates a define() function that is callable by your code. It will
|
|
||||||
execute and trace dependencies and call the factory function *synchronously*,
|
|
||||||
to keep the behavior in line with Node's synchronous dependency tracing.
|
|
||||||
|
|
||||||
The exception: calling AMD's callback-style require() from inside a factory
|
|
||||||
function. The require callback is called on process.nextTick():
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
define(function (require) {
|
|
||||||
require(['a'], function(a) {
|
|
||||||
//'a' is loaded synchronously, but
|
|
||||||
//this callback is called on process.nextTick().
|
|
||||||
});
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
### Loader Plugins
|
|
||||||
|
|
||||||
Loader plugins are supported as long as they call their load() callbacks
|
|
||||||
synchronously. So ones that do network requests will not work. However plugins
|
|
||||||
like [text](http://requirejs.org/docs/api.html#text) can load text files locally.
|
|
||||||
|
|
||||||
The plugin API's `load.fromText()` is **not supported** in amdefine, so this means
|
|
||||||
transpiler plugins like the [CoffeeScript loader plugin](https://github.com/jrburke/require-cs)
|
|
||||||
will not work. This may be fixable, but it is a bit complex, and I do not have
|
|
||||||
enough node-fu to figure it out yet. See the source for amdefine.js if you want
|
|
||||||
to get an idea of the issues involved.
|
|
||||||
|
|
||||||
## Tests
|
|
||||||
|
|
||||||
To run the tests, cd to **tests** and run:
|
|
||||||
|
|
||||||
```
|
|
||||||
node all.js
|
|
||||||
node all-intercept.js
|
|
||||||
```
|
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
New BSD and MIT. Check the LICENSE file for all the details.
|
|
||||||
301
GYMApp/GYMApp/node_modules/amdefine/amdefine.js
generated
vendored
301
GYMApp/GYMApp/node_modules/amdefine/amdefine.js
generated
vendored
@@ -1,301 +0,0 @@
|
|||||||
/** vim: et:ts=4:sw=4:sts=4
|
|
||||||
* @license amdefine 1.0.1 Copyright (c) 2011-2016, The Dojo Foundation All Rights Reserved.
|
|
||||||
* Available via the MIT or new BSD license.
|
|
||||||
* see: http://github.com/jrburke/amdefine for details
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*jslint node: true */
|
|
||||||
/*global module, process */
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creates a define for node.
|
|
||||||
* @param {Object} module the "module" object that is defined by Node for the
|
|
||||||
* current module.
|
|
||||||
* @param {Function} [requireFn]. Node's require function for the current module.
|
|
||||||
* It only needs to be passed in Node versions before 0.5, when module.require
|
|
||||||
* did not exist.
|
|
||||||
* @returns {Function} a define function that is usable for the current node
|
|
||||||
* module.
|
|
||||||
*/
|
|
||||||
function amdefine(module, requireFn) {
|
|
||||||
'use strict';
|
|
||||||
var defineCache = {},
|
|
||||||
loaderCache = {},
|
|
||||||
alreadyCalled = false,
|
|
||||||
path = require('path'),
|
|
||||||
makeRequire, stringRequire;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Trims the . and .. from an array of path segments.
|
|
||||||
* It will keep a leading path segment if a .. will become
|
|
||||||
* the first path segment, to help with module name lookups,
|
|
||||||
* which act like paths, but can be remapped. But the end result,
|
|
||||||
* all paths that use this function should look normalized.
|
|
||||||
* NOTE: this method MODIFIES the input array.
|
|
||||||
* @param {Array} ary the array of path segments.
|
|
||||||
*/
|
|
||||||
function trimDots(ary) {
|
|
||||||
var i, part;
|
|
||||||
for (i = 0; ary[i]; i+= 1) {
|
|
||||||
part = ary[i];
|
|
||||||
if (part === '.') {
|
|
||||||
ary.splice(i, 1);
|
|
||||||
i -= 1;
|
|
||||||
} else if (part === '..') {
|
|
||||||
if (i === 1 && (ary[2] === '..' || ary[0] === '..')) {
|
|
||||||
//End of the line. Keep at least one non-dot
|
|
||||||
//path segment at the front so it can be mapped
|
|
||||||
//correctly to disk. Otherwise, there is likely
|
|
||||||
//no path mapping for a path starting with '..'.
|
|
||||||
//This can still fail, but catches the most reasonable
|
|
||||||
//uses of ..
|
|
||||||
break;
|
|
||||||
} else if (i > 0) {
|
|
||||||
ary.splice(i - 1, 2);
|
|
||||||
i -= 2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function normalize(name, baseName) {
|
|
||||||
var baseParts;
|
|
||||||
|
|
||||||
//Adjust any relative paths.
|
|
||||||
if (name && name.charAt(0) === '.') {
|
|
||||||
//If have a base name, try to normalize against it,
|
|
||||||
//otherwise, assume it is a top-level require that will
|
|
||||||
//be relative to baseUrl in the end.
|
|
||||||
if (baseName) {
|
|
||||||
baseParts = baseName.split('/');
|
|
||||||
baseParts = baseParts.slice(0, baseParts.length - 1);
|
|
||||||
baseParts = baseParts.concat(name.split('/'));
|
|
||||||
trimDots(baseParts);
|
|
||||||
name = baseParts.join('/');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create the normalize() function passed to a loader plugin's
|
|
||||||
* normalize method.
|
|
||||||
*/
|
|
||||||
function makeNormalize(relName) {
|
|
||||||
return function (name) {
|
|
||||||
return normalize(name, relName);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
function makeLoad(id) {
|
|
||||||
function load(value) {
|
|
||||||
loaderCache[id] = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
load.fromText = function (id, text) {
|
|
||||||
//This one is difficult because the text can/probably uses
|
|
||||||
//define, and any relative paths and requires should be relative
|
|
||||||
//to that id was it would be found on disk. But this would require
|
|
||||||
//bootstrapping a module/require fairly deeply from node core.
|
|
||||||
//Not sure how best to go about that yet.
|
|
||||||
throw new Error('amdefine does not implement load.fromText');
|
|
||||||
};
|
|
||||||
|
|
||||||
return load;
|
|
||||||
}
|
|
||||||
|
|
||||||
makeRequire = function (systemRequire, exports, module, relId) {
|
|
||||||
function amdRequire(deps, callback) {
|
|
||||||
if (typeof deps === 'string') {
|
|
||||||
//Synchronous, single module require('')
|
|
||||||
return stringRequire(systemRequire, exports, module, deps, relId);
|
|
||||||
} else {
|
|
||||||
//Array of dependencies with a callback.
|
|
||||||
|
|
||||||
//Convert the dependencies to modules.
|
|
||||||
deps = deps.map(function (depName) {
|
|
||||||
return stringRequire(systemRequire, exports, module, depName, relId);
|
|
||||||
});
|
|
||||||
|
|
||||||
//Wait for next tick to call back the require call.
|
|
||||||
if (callback) {
|
|
||||||
process.nextTick(function () {
|
|
||||||
callback.apply(null, deps);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
amdRequire.toUrl = function (filePath) {
|
|
||||||
if (filePath.indexOf('.') === 0) {
|
|
||||||
return normalize(filePath, path.dirname(module.filename));
|
|
||||||
} else {
|
|
||||||
return filePath;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
return amdRequire;
|
|
||||||
};
|
|
||||||
|
|
||||||
//Favor explicit value, passed in if the module wants to support Node 0.4.
|
|
||||||
requireFn = requireFn || function req() {
|
|
||||||
return module.require.apply(module, arguments);
|
|
||||||
};
|
|
||||||
|
|
||||||
function runFactory(id, deps, factory) {
|
|
||||||
var r, e, m, result;
|
|
||||||
|
|
||||||
if (id) {
|
|
||||||
e = loaderCache[id] = {};
|
|
||||||
m = {
|
|
||||||
id: id,
|
|
||||||
uri: __filename,
|
|
||||||
exports: e
|
|
||||||
};
|
|
||||||
r = makeRequire(requireFn, e, m, id);
|
|
||||||
} else {
|
|
||||||
//Only support one define call per file
|
|
||||||
if (alreadyCalled) {
|
|
||||||
throw new Error('amdefine with no module ID cannot be called more than once per file.');
|
|
||||||
}
|
|
||||||
alreadyCalled = true;
|
|
||||||
|
|
||||||
//Use the real variables from node
|
|
||||||
//Use module.exports for exports, since
|
|
||||||
//the exports in here is amdefine exports.
|
|
||||||
e = module.exports;
|
|
||||||
m = module;
|
|
||||||
r = makeRequire(requireFn, e, m, module.id);
|
|
||||||
}
|
|
||||||
|
|
||||||
//If there are dependencies, they are strings, so need
|
|
||||||
//to convert them to dependency values.
|
|
||||||
if (deps) {
|
|
||||||
deps = deps.map(function (depName) {
|
|
||||||
return r(depName);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
//Call the factory with the right dependencies.
|
|
||||||
if (typeof factory === 'function') {
|
|
||||||
result = factory.apply(m.exports, deps);
|
|
||||||
} else {
|
|
||||||
result = factory;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (result !== undefined) {
|
|
||||||
m.exports = result;
|
|
||||||
if (id) {
|
|
||||||
loaderCache[id] = m.exports;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
stringRequire = function (systemRequire, exports, module, id, relId) {
|
|
||||||
//Split the ID by a ! so that
|
|
||||||
var index = id.indexOf('!'),
|
|
||||||
originalId = id,
|
|
||||||
prefix, plugin;
|
|
||||||
|
|
||||||
if (index === -1) {
|
|
||||||
id = normalize(id, relId);
|
|
||||||
|
|
||||||
//Straight module lookup. If it is one of the special dependencies,
|
|
||||||
//deal with it, otherwise, delegate to node.
|
|
||||||
if (id === 'require') {
|
|
||||||
return makeRequire(systemRequire, exports, module, relId);
|
|
||||||
} else if (id === 'exports') {
|
|
||||||
return exports;
|
|
||||||
} else if (id === 'module') {
|
|
||||||
return module;
|
|
||||||
} else if (loaderCache.hasOwnProperty(id)) {
|
|
||||||
return loaderCache[id];
|
|
||||||
} else if (defineCache[id]) {
|
|
||||||
runFactory.apply(null, defineCache[id]);
|
|
||||||
return loaderCache[id];
|
|
||||||
} else {
|
|
||||||
if(systemRequire) {
|
|
||||||
return systemRequire(originalId);
|
|
||||||
} else {
|
|
||||||
throw new Error('No module with ID: ' + id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
//There is a plugin in play.
|
|
||||||
prefix = id.substring(0, index);
|
|
||||||
id = id.substring(index + 1, id.length);
|
|
||||||
|
|
||||||
plugin = stringRequire(systemRequire, exports, module, prefix, relId);
|
|
||||||
|
|
||||||
if (plugin.normalize) {
|
|
||||||
id = plugin.normalize(id, makeNormalize(relId));
|
|
||||||
} else {
|
|
||||||
//Normalize the ID normally.
|
|
||||||
id = normalize(id, relId);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (loaderCache[id]) {
|
|
||||||
return loaderCache[id];
|
|
||||||
} else {
|
|
||||||
plugin.load(id, makeRequire(systemRequire, exports, module, relId), makeLoad(id), {});
|
|
||||||
|
|
||||||
return loaderCache[id];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
//Create a define function specific to the module asking for amdefine.
|
|
||||||
function define(id, deps, factory) {
|
|
||||||
if (Array.isArray(id)) {
|
|
||||||
factory = deps;
|
|
||||||
deps = id;
|
|
||||||
id = undefined;
|
|
||||||
} else if (typeof id !== 'string') {
|
|
||||||
factory = id;
|
|
||||||
id = deps = undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (deps && !Array.isArray(deps)) {
|
|
||||||
factory = deps;
|
|
||||||
deps = undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!deps) {
|
|
||||||
deps = ['require', 'exports', 'module'];
|
|
||||||
}
|
|
||||||
|
|
||||||
//Set up properties for this module. If an ID, then use
|
|
||||||
//internal cache. If no ID, then use the external variables
|
|
||||||
//for this node module.
|
|
||||||
if (id) {
|
|
||||||
//Put the module in deep freeze until there is a
|
|
||||||
//require call for it.
|
|
||||||
defineCache[id] = [id, deps, factory];
|
|
||||||
} else {
|
|
||||||
runFactory(id, deps, factory);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//define.require, which has access to all the values in the
|
|
||||||
//cache. Useful for AMD modules that all have IDs in the file,
|
|
||||||
//but need to finally export a value to node based on one of those
|
|
||||||
//IDs.
|
|
||||||
define.require = function (id) {
|
|
||||||
if (loaderCache[id]) {
|
|
||||||
return loaderCache[id];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (defineCache[id]) {
|
|
||||||
runFactory.apply(null, defineCache[id]);
|
|
||||||
return loaderCache[id];
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
define.amd = {};
|
|
||||||
|
|
||||||
return define;
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = amdefine;
|
|
||||||
36
GYMApp/GYMApp/node_modules/amdefine/intercept.js
generated
vendored
36
GYMApp/GYMApp/node_modules/amdefine/intercept.js
generated
vendored
@@ -1,36 +0,0 @@
|
|||||||
/*jshint node: true */
|
|
||||||
var inserted,
|
|
||||||
Module = require('module'),
|
|
||||||
fs = require('fs'),
|
|
||||||
existingExtFn = Module._extensions['.js'],
|
|
||||||
amdefineRegExp = /amdefine\.js/;
|
|
||||||
|
|
||||||
inserted = "if (typeof define !== 'function') {var define = require('amdefine')(module)}";
|
|
||||||
|
|
||||||
//From the node/lib/module.js source:
|
|
||||||
function stripBOM(content) {
|
|
||||||
// Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)
|
|
||||||
// because the buffer-to-string conversion in `fs.readFileSync()`
|
|
||||||
// translates it to FEFF, the UTF-16 BOM.
|
|
||||||
if (content.charCodeAt(0) === 0xFEFF) {
|
|
||||||
content = content.slice(1);
|
|
||||||
}
|
|
||||||
return content;
|
|
||||||
}
|
|
||||||
|
|
||||||
//Also adapted from the node/lib/module.js source:
|
|
||||||
function intercept(module, filename) {
|
|
||||||
var content = stripBOM(fs.readFileSync(filename, 'utf8'));
|
|
||||||
|
|
||||||
if (!amdefineRegExp.test(module.id)) {
|
|
||||||
content = inserted + content;
|
|
||||||
}
|
|
||||||
|
|
||||||
module._compile(content, filename);
|
|
||||||
}
|
|
||||||
|
|
||||||
intercept._id = 'amdefine/intercept';
|
|
||||||
|
|
||||||
if (!existingExtFn._id || existingExtFn._id !== intercept._id) {
|
|
||||||
Module._extensions['.js'] = intercept;
|
|
||||||
}
|
|
||||||
86
GYMApp/GYMApp/node_modules/amdefine/package.json
generated
vendored
86
GYMApp/GYMApp/node_modules/amdefine/package.json
generated
vendored
@@ -1,86 +0,0 @@
|
|||||||
{
|
|
||||||
"_args": [
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"raw": "amdefine@>=0.0.4",
|
|
||||||
"scope": null,
|
|
||||||
"escapedName": "amdefine",
|
|
||||||
"name": "amdefine",
|
|
||||||
"rawSpec": ">=0.0.4",
|
|
||||||
"spec": ">=0.0.4",
|
|
||||||
"type": "range"
|
|
||||||
},
|
|
||||||
"C:\\Users\\nkiboti\\workspace\\GYMApp\\GYMApp\\node_modules\\source-map"
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"_from": "amdefine@>=0.0.4",
|
|
||||||
"_id": "amdefine@1.0.1",
|
|
||||||
"_inCache": true,
|
|
||||||
"_location": "/amdefine",
|
|
||||||
"_nodeVersion": "6.7.0",
|
|
||||||
"_npmOperationalInternal": {
|
|
||||||
"host": "packages-18-east.internal.npmjs.com",
|
|
||||||
"tmp": "tmp/amdefine-1.0.1.tgz_1478062849665_0.19916908955201507"
|
|
||||||
},
|
|
||||||
"_npmUser": {
|
|
||||||
"name": "jrburke",
|
|
||||||
"email": "jrburke@gmail.com"
|
|
||||||
},
|
|
||||||
"_npmVersion": "3.10.3",
|
|
||||||
"_phantomChildren": {},
|
|
||||||
"_requested": {
|
|
||||||
"raw": "amdefine@>=0.0.4",
|
|
||||||
"scope": null,
|
|
||||||
"escapedName": "amdefine",
|
|
||||||
"name": "amdefine",
|
|
||||||
"rawSpec": ">=0.0.4",
|
|
||||||
"spec": ">=0.0.4",
|
|
||||||
"type": "range"
|
|
||||||
},
|
|
||||||
"_requiredBy": [
|
|
||||||
"/source-map"
|
|
||||||
],
|
|
||||||
"_resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
|
|
||||||
"_shasum": "4a5282ac164729e93619bcfd3ad151f817ce91f5",
|
|
||||||
"_shrinkwrap": null,
|
|
||||||
"_spec": "amdefine@>=0.0.4",
|
|
||||||
"_where": "C:\\Users\\nkiboti\\workspace\\GYMApp\\GYMApp\\node_modules\\source-map",
|
|
||||||
"author": {
|
|
||||||
"name": "James Burke",
|
|
||||||
"email": "jrburke@gmail.com",
|
|
||||||
"url": "http://github.com/jrburke"
|
|
||||||
},
|
|
||||||
"bugs": {
|
|
||||||
"url": "https://github.com/jrburke/amdefine/issues"
|
|
||||||
},
|
|
||||||
"dependencies": {},
|
|
||||||
"description": "Provide AMD's define() API for declaring modules in the AMD format",
|
|
||||||
"devDependencies": {},
|
|
||||||
"directories": {},
|
|
||||||
"dist": {
|
|
||||||
"shasum": "4a5282ac164729e93619bcfd3ad151f817ce91f5",
|
|
||||||
"tarball": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.4.2"
|
|
||||||
},
|
|
||||||
"gitHead": "e59edc9da24404ec7937098e3992f8fb0e260be7",
|
|
||||||
"homepage": "http://github.com/jrburke/amdefine",
|
|
||||||
"license": "BSD-3-Clause OR MIT",
|
|
||||||
"main": "./amdefine.js",
|
|
||||||
"maintainers": [
|
|
||||||
{
|
|
||||||
"name": "jrburke",
|
|
||||||
"email": "jrburke@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "amdefine",
|
|
||||||
"optionalDependencies": {},
|
|
||||||
"readme": "ERROR: No README data found!",
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "git+https://github.com/jrburke/amdefine.git"
|
|
||||||
},
|
|
||||||
"scripts": {},
|
|
||||||
"version": "1.0.1"
|
|
||||||
}
|
|
||||||
21
GYMApp/GYMApp/node_modules/array-flatten/LICENSE
generated
vendored
21
GYMApp/GYMApp/node_modules/array-flatten/LICENSE
generated
vendored
@@ -1,21 +0,0 @@
|
|||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com)
|
|
||||||
|
|
||||||
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.
|
|
||||||
43
GYMApp/GYMApp/node_modules/array-flatten/README.md
generated
vendored
43
GYMApp/GYMApp/node_modules/array-flatten/README.md
generated
vendored
@@ -1,43 +0,0 @@
|
|||||||
# Array Flatten
|
|
||||||
|
|
||||||
[![NPM version][npm-image]][npm-url]
|
|
||||||
[![NPM downloads][downloads-image]][downloads-url]
|
|
||||||
[![Build status][travis-image]][travis-url]
|
|
||||||
[![Test coverage][coveralls-image]][coveralls-url]
|
|
||||||
|
|
||||||
> Flatten an array of nested arrays into a single flat array. Accepts an optional depth.
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
```
|
|
||||||
npm install array-flatten --save
|
|
||||||
```
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
var flatten = require('array-flatten')
|
|
||||||
|
|
||||||
flatten([1, [2, [3, [4, [5], 6], 7], 8], 9])
|
|
||||||
//=> [1, 2, 3, 4, 5, 6, 7, 8, 9]
|
|
||||||
|
|
||||||
flatten([1, [2, [3, [4, [5], 6], 7], 8], 9], 2)
|
|
||||||
//=> [1, 2, 3, [4, [5], 6], 7, 8, 9]
|
|
||||||
|
|
||||||
(function () {
|
|
||||||
flatten(arguments) //=> [1, 2, 3]
|
|
||||||
})(1, [2, 3])
|
|
||||||
```
|
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
MIT
|
|
||||||
|
|
||||||
[npm-image]: https://img.shields.io/npm/v/array-flatten.svg?style=flat
|
|
||||||
[npm-url]: https://npmjs.org/package/array-flatten
|
|
||||||
[downloads-image]: https://img.shields.io/npm/dm/array-flatten.svg?style=flat
|
|
||||||
[downloads-url]: https://npmjs.org/package/array-flatten
|
|
||||||
[travis-image]: https://img.shields.io/travis/blakeembrey/array-flatten.svg?style=flat
|
|
||||||
[travis-url]: https://travis-ci.org/blakeembrey/array-flatten
|
|
||||||
[coveralls-image]: https://img.shields.io/coveralls/blakeembrey/array-flatten.svg?style=flat
|
|
||||||
[coveralls-url]: https://coveralls.io/r/blakeembrey/array-flatten?branch=master
|
|
||||||
64
GYMApp/GYMApp/node_modules/array-flatten/array-flatten.js
generated
vendored
64
GYMApp/GYMApp/node_modules/array-flatten/array-flatten.js
generated
vendored
@@ -1,64 +0,0 @@
|
|||||||
'use strict'
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Expose `arrayFlatten`.
|
|
||||||
*/
|
|
||||||
module.exports = arrayFlatten
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Recursive flatten function with depth.
|
|
||||||
*
|
|
||||||
* @param {Array} array
|
|
||||||
* @param {Array} result
|
|
||||||
* @param {Number} depth
|
|
||||||
* @return {Array}
|
|
||||||
*/
|
|
||||||
function flattenWithDepth (array, result, depth) {
|
|
||||||
for (var i = 0; i < array.length; i++) {
|
|
||||||
var value = array[i]
|
|
||||||
|
|
||||||
if (depth > 0 && Array.isArray(value)) {
|
|
||||||
flattenWithDepth(value, result, depth - 1)
|
|
||||||
} else {
|
|
||||||
result.push(value)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Recursive flatten function. Omitting depth is slightly faster.
|
|
||||||
*
|
|
||||||
* @param {Array} array
|
|
||||||
* @param {Array} result
|
|
||||||
* @return {Array}
|
|
||||||
*/
|
|
||||||
function flattenForever (array, result) {
|
|
||||||
for (var i = 0; i < array.length; i++) {
|
|
||||||
var value = array[i]
|
|
||||||
|
|
||||||
if (Array.isArray(value)) {
|
|
||||||
flattenForever(value, result)
|
|
||||||
} else {
|
|
||||||
result.push(value)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Flatten an array, with the ability to define a depth.
|
|
||||||
*
|
|
||||||
* @param {Array} array
|
|
||||||
* @param {Number} depth
|
|
||||||
* @return {Array}
|
|
||||||
*/
|
|
||||||
function arrayFlatten (array, depth) {
|
|
||||||
if (depth == null) {
|
|
||||||
return flattenForever(array, [])
|
|
||||||
}
|
|
||||||
|
|
||||||
return flattenWithDepth(array, [], depth)
|
|
||||||
}
|
|
||||||
96
GYMApp/GYMApp/node_modules/array-flatten/package.json
generated
vendored
96
GYMApp/GYMApp/node_modules/array-flatten/package.json
generated
vendored
@@ -1,96 +0,0 @@
|
|||||||
{
|
|
||||||
"_args": [
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"raw": "array-flatten@1.1.1",
|
|
||||||
"scope": null,
|
|
||||||
"escapedName": "array-flatten",
|
|
||||||
"name": "array-flatten",
|
|
||||||
"rawSpec": "1.1.1",
|
|
||||||
"spec": "1.1.1",
|
|
||||||
"type": "version"
|
|
||||||
},
|
|
||||||
"C:\\Users\\nkiboti\\workspace\\GYMApp\\GYMApp\\node_modules\\express"
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"_from": "array-flatten@1.1.1",
|
|
||||||
"_id": "array-flatten@1.1.1",
|
|
||||||
"_inCache": true,
|
|
||||||
"_location": "/array-flatten",
|
|
||||||
"_nodeVersion": "2.3.3",
|
|
||||||
"_npmUser": {
|
|
||||||
"name": "blakeembrey",
|
|
||||||
"email": "hello@blakeembrey.com"
|
|
||||||
},
|
|
||||||
"_npmVersion": "2.11.3",
|
|
||||||
"_phantomChildren": {},
|
|
||||||
"_requested": {
|
|
||||||
"raw": "array-flatten@1.1.1",
|
|
||||||
"scope": null,
|
|
||||||
"escapedName": "array-flatten",
|
|
||||||
"name": "array-flatten",
|
|
||||||
"rawSpec": "1.1.1",
|
|
||||||
"spec": "1.1.1",
|
|
||||||
"type": "version"
|
|
||||||
},
|
|
||||||
"_requiredBy": [
|
|
||||||
"/express"
|
|
||||||
],
|
|
||||||
"_resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
|
|
||||||
"_shasum": "9a5f699051b1e7073328f2a008968b64ea2955d2",
|
|
||||||
"_shrinkwrap": null,
|
|
||||||
"_spec": "array-flatten@1.1.1",
|
|
||||||
"_where": "C:\\Users\\nkiboti\\workspace\\GYMApp\\GYMApp\\node_modules\\express",
|
|
||||||
"author": {
|
|
||||||
"name": "Blake Embrey",
|
|
||||||
"email": "hello@blakeembrey.com",
|
|
||||||
"url": "http://blakeembrey.me"
|
|
||||||
},
|
|
||||||
"bugs": {
|
|
||||||
"url": "https://github.com/blakeembrey/array-flatten/issues"
|
|
||||||
},
|
|
||||||
"dependencies": {},
|
|
||||||
"description": "Flatten an array of nested arrays into a single flat array",
|
|
||||||
"devDependencies": {
|
|
||||||
"istanbul": "^0.3.13",
|
|
||||||
"mocha": "^2.2.4",
|
|
||||||
"pre-commit": "^1.0.7",
|
|
||||||
"standard": "^3.7.3"
|
|
||||||
},
|
|
||||||
"directories": {},
|
|
||||||
"dist": {
|
|
||||||
"shasum": "9a5f699051b1e7073328f2a008968b64ea2955d2",
|
|
||||||
"tarball": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz"
|
|
||||||
},
|
|
||||||
"files": [
|
|
||||||
"array-flatten.js",
|
|
||||||
"LICENSE"
|
|
||||||
],
|
|
||||||
"gitHead": "1963a9189229d408e1e8f585a00c8be9edbd1803",
|
|
||||||
"homepage": "https://github.com/blakeembrey/array-flatten",
|
|
||||||
"keywords": [
|
|
||||||
"array",
|
|
||||||
"flatten",
|
|
||||||
"arguments",
|
|
||||||
"depth"
|
|
||||||
],
|
|
||||||
"license": "MIT",
|
|
||||||
"main": "array-flatten.js",
|
|
||||||
"maintainers": [
|
|
||||||
{
|
|
||||||
"name": "blakeembrey",
|
|
||||||
"email": "hello@blakeembrey.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "array-flatten",
|
|
||||||
"optionalDependencies": {},
|
|
||||||
"readme": "ERROR: No README data found!",
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "git://github.com/blakeembrey/array-flatten.git"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"test": "istanbul cover _mocha -- -R spec"
|
|
||||||
},
|
|
||||||
"version": "1.1.1"
|
|
||||||
}
|
|
||||||
125
GYMApp/GYMApp/node_modules/async/CHANGELOG.md
generated
vendored
125
GYMApp/GYMApp/node_modules/async/CHANGELOG.md
generated
vendored
@@ -1,125 +0,0 @@
|
|||||||
# v1.5.2
|
|
||||||
- Allow using `"consructor"` as an argument in `memoize` (#998)
|
|
||||||
- Give a better error messsage when `auto` dependency checking fails (#994)
|
|
||||||
- Various doc updates (#936, #956, #979, #1002)
|
|
||||||
|
|
||||||
# v1.5.1
|
|
||||||
- Fix issue with `pause` in `queue` with concurrency enabled (#946)
|
|
||||||
- `while` and `until` now pass the final result to callback (#963)
|
|
||||||
- `auto` will properly handle concurrency when there is no callback (#966)
|
|
||||||
- `auto` will now properly stop execution when an error occurs (#988, #993)
|
|
||||||
- Various doc fixes (#971, #980)
|
|
||||||
|
|
||||||
# v1.5.0
|
|
||||||
|
|
||||||
- Added `transform`, analogous to [`_.transform`](http://lodash.com/docs#transform) (#892)
|
|
||||||
- `map` now returns an object when an object is passed in, rather than array with non-numeric keys. `map` will begin always returning an array with numeric indexes in the next major release. (#873)
|
|
||||||
- `auto` now accepts an optional `concurrency` argument to limit the number of running tasks (#637)
|
|
||||||
- Added `queue#workersList()`, to retrieve the list of currently running tasks. (#891)
|
|
||||||
- Various code simplifications (#896, #904)
|
|
||||||
- Various doc fixes :scroll: (#890, #894, #903, #905, #912)
|
|
||||||
|
|
||||||
# v1.4.2
|
|
||||||
|
|
||||||
- Ensure coverage files don't get published on npm (#879)
|
|
||||||
|
|
||||||
# v1.4.1
|
|
||||||
|
|
||||||
- Add in overlooked `detectLimit` method (#866)
|
|
||||||
- Removed unnecessary files from npm releases (#861)
|
|
||||||
- Removed usage of a reserved word to prevent :boom: in older environments (#870)
|
|
||||||
|
|
||||||
# v1.4.0
|
|
||||||
|
|
||||||
- `asyncify` now supports promises (#840)
|
|
||||||
- Added `Limit` versions of `filter` and `reject` (#836)
|
|
||||||
- Add `Limit` versions of `detect`, `some` and `every` (#828, #829)
|
|
||||||
- `some`, `every` and `detect` now short circuit early (#828, #829)
|
|
||||||
- Improve detection of the global object (#804), enabling use in WebWorkers
|
|
||||||
- `whilst` now called with arguments from iterator (#823)
|
|
||||||
- `during` now gets called with arguments from iterator (#824)
|
|
||||||
- Code simplifications and optimizations aplenty ([diff](https://github.com/caolan/async/compare/v1.3.0...v1.4.0))
|
|
||||||
|
|
||||||
|
|
||||||
# v1.3.0
|
|
||||||
|
|
||||||
New Features:
|
|
||||||
- Added `constant`
|
|
||||||
- Added `asyncify`/`wrapSync` for making sync functions work with callbacks. (#671, #806)
|
|
||||||
- Added `during` and `doDuring`, which are like `whilst` with an async truth test. (#800)
|
|
||||||
- `retry` now accepts an `interval` parameter to specify a delay between retries. (#793)
|
|
||||||
- `async` should work better in Web Workers due to better `root` detection (#804)
|
|
||||||
- Callbacks are now optional in `whilst`, `doWhilst`, `until`, and `doUntil` (#642)
|
|
||||||
- Various internal updates (#786, #801, #802, #803)
|
|
||||||
- Various doc fixes (#790, #794)
|
|
||||||
|
|
||||||
Bug Fixes:
|
|
||||||
- `cargo` now exposes the `payload` size, and `cargo.payload` can be changed on the fly after the `cargo` is created. (#740, #744, #783)
|
|
||||||
|
|
||||||
|
|
||||||
# v1.2.1
|
|
||||||
|
|
||||||
Bug Fix:
|
|
||||||
|
|
||||||
- Small regression with synchronous iterator behavior in `eachSeries` with a 1-element array. Before 1.1.0, `eachSeries`'s callback was called on the same tick, which this patch restores. In 2.0.0, it will be called on the next tick. (#782)
|
|
||||||
|
|
||||||
|
|
||||||
# v1.2.0
|
|
||||||
|
|
||||||
New Features:
|
|
||||||
|
|
||||||
- Added `timesLimit` (#743)
|
|
||||||
- `concurrency` can be changed after initialization in `queue` by setting `q.concurrency`. The new concurrency will be reflected the next time a task is processed. (#747, #772)
|
|
||||||
|
|
||||||
Bug Fixes:
|
|
||||||
|
|
||||||
- Fixed a regression in `each` and family with empty arrays that have additional properties. (#775, #777)
|
|
||||||
|
|
||||||
|
|
||||||
# v1.1.1
|
|
||||||
|
|
||||||
Bug Fix:
|
|
||||||
|
|
||||||
- Small regression with synchronous iterator behavior in `eachSeries` with a 1-element array. Before 1.1.0, `eachSeries`'s callback was called on the same tick, which this patch restores. In 2.0.0, it will be called on the next tick. (#782)
|
|
||||||
|
|
||||||
|
|
||||||
# v1.1.0
|
|
||||||
|
|
||||||
New Features:
|
|
||||||
|
|
||||||
- `cargo` now supports all of the same methods and event callbacks as `queue`.
|
|
||||||
- Added `ensureAsync` - A wrapper that ensures an async function calls its callback on a later tick. (#769)
|
|
||||||
- Optimized `map`, `eachOf`, and `waterfall` families of functions
|
|
||||||
- Passing a `null` or `undefined` array to `map`, `each`, `parallel` and families will be treated as an empty array (#667).
|
|
||||||
- The callback is now optional for the composed results of `compose` and `seq`. (#618)
|
|
||||||
- Reduced file size by 4kb, (minified version by 1kb)
|
|
||||||
- Added code coverage through `nyc` and `coveralls` (#768)
|
|
||||||
|
|
||||||
Bug Fixes:
|
|
||||||
|
|
||||||
- `forever` will no longer stack overflow with a synchronous iterator (#622)
|
|
||||||
- `eachLimit` and other limit functions will stop iterating once an error occurs (#754)
|
|
||||||
- Always pass `null` in callbacks when there is no error (#439)
|
|
||||||
- Ensure proper conditions when calling `drain()` after pushing an empty data set to a queue (#668)
|
|
||||||
- `each` and family will properly handle an empty array (#578)
|
|
||||||
- `eachSeries` and family will finish if the underlying array is modified during execution (#557)
|
|
||||||
- `queue` will throw if a non-function is passed to `q.push()` (#593)
|
|
||||||
- Doc fixes (#629, #766)
|
|
||||||
|
|
||||||
|
|
||||||
# v1.0.0
|
|
||||||
|
|
||||||
No known breaking changes, we are simply complying with semver from here on out.
|
|
||||||
|
|
||||||
Changes:
|
|
||||||
|
|
||||||
- Start using a changelog!
|
|
||||||
- Add `forEachOf` for iterating over Objects (or to iterate Arrays with indexes available) (#168 #704 #321)
|
|
||||||
- Detect deadlocks in `auto` (#663)
|
|
||||||
- Better support for require.js (#527)
|
|
||||||
- Throw if queue created with concurrency `0` (#714)
|
|
||||||
- Fix unneeded iteration in `queue.resume()` (#758)
|
|
||||||
- Guard against timer mocking overriding `setImmediate` (#609 #611)
|
|
||||||
- Miscellaneous doc fixes (#542 #596 #615 #628 #631 #690 #729)
|
|
||||||
- Use single noop function internally (#546)
|
|
||||||
- Optimize internal `_each`, `_map` and `_keys` functions.
|
|
||||||
19
GYMApp/GYMApp/node_modules/async/LICENSE
generated
vendored
19
GYMApp/GYMApp/node_modules/async/LICENSE
generated
vendored
@@ -1,19 +0,0 @@
|
|||||||
Copyright (c) 2010-2014 Caolan McMahon
|
|
||||||
|
|
||||||
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.
|
|
||||||
1877
GYMApp/GYMApp/node_modules/async/README.md
generated
vendored
1877
GYMApp/GYMApp/node_modules/async/README.md
generated
vendored
File diff suppressed because it is too large
Load Diff
1265
GYMApp/GYMApp/node_modules/async/dist/async.js
generated
vendored
1265
GYMApp/GYMApp/node_modules/async/dist/async.js
generated
vendored
File diff suppressed because it is too large
Load Diff
2
GYMApp/GYMApp/node_modules/async/dist/async.min.js
generated
vendored
2
GYMApp/GYMApp/node_modules/async/dist/async.min.js
generated
vendored
File diff suppressed because one or more lines are too long
1265
GYMApp/GYMApp/node_modules/async/lib/async.js
generated
vendored
1265
GYMApp/GYMApp/node_modules/async/lib/async.js
generated
vendored
File diff suppressed because it is too large
Load Diff
157
GYMApp/GYMApp/node_modules/async/package.json
generated
vendored
157
GYMApp/GYMApp/node_modules/async/package.json
generated
vendored
@@ -1,157 +0,0 @@
|
|||||||
{
|
|
||||||
"_args": [
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"raw": "async@^1.4.0",
|
|
||||||
"scope": null,
|
|
||||||
"escapedName": "async",
|
|
||||||
"name": "async",
|
|
||||||
"rawSpec": "^1.4.0",
|
|
||||||
"spec": ">=1.4.0 <2.0.0",
|
|
||||||
"type": "range"
|
|
||||||
},
|
|
||||||
"C:\\Users\\nkiboti\\workspace\\GYMApp\\GYMApp\\node_modules\\handlebars"
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"_from": "async@>=1.4.0 <2.0.0",
|
|
||||||
"_id": "async@1.5.2",
|
|
||||||
"_inCache": true,
|
|
||||||
"_location": "/async",
|
|
||||||
"_nodeVersion": "4.2.3",
|
|
||||||
"_npmUser": {
|
|
||||||
"name": "aearly",
|
|
||||||
"email": "alexander.early@gmail.com"
|
|
||||||
},
|
|
||||||
"_npmVersion": "3.5.2",
|
|
||||||
"_phantomChildren": {},
|
|
||||||
"_requested": {
|
|
||||||
"raw": "async@^1.4.0",
|
|
||||||
"scope": null,
|
|
||||||
"escapedName": "async",
|
|
||||||
"name": "async",
|
|
||||||
"rawSpec": "^1.4.0",
|
|
||||||
"spec": ">=1.4.0 <2.0.0",
|
|
||||||
"type": "range"
|
|
||||||
},
|
|
||||||
"_requiredBy": [
|
|
||||||
"/handlebars"
|
|
||||||
],
|
|
||||||
"_resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
|
|
||||||
"_shasum": "ec6a61ae56480c0c3cb241c95618e20892f9672a",
|
|
||||||
"_shrinkwrap": null,
|
|
||||||
"_spec": "async@^1.4.0",
|
|
||||||
"_where": "C:\\Users\\nkiboti\\workspace\\GYMApp\\GYMApp\\node_modules\\handlebars",
|
|
||||||
"author": {
|
|
||||||
"name": "Caolan McMahon"
|
|
||||||
},
|
|
||||||
"bugs": {
|
|
||||||
"url": "https://github.com/caolan/async/issues"
|
|
||||||
},
|
|
||||||
"dependencies": {},
|
|
||||||
"description": "Higher-order functions and common patterns for asynchronous code",
|
|
||||||
"devDependencies": {
|
|
||||||
"benchmark": "github:bestiejs/benchmark.js",
|
|
||||||
"bluebird": "^2.9.32",
|
|
||||||
"chai": "^3.1.0",
|
|
||||||
"coveralls": "^2.11.2",
|
|
||||||
"es6-promise": "^2.3.0",
|
|
||||||
"jscs": "^1.13.1",
|
|
||||||
"jshint": "~2.8.0",
|
|
||||||
"karma": "^0.13.2",
|
|
||||||
"karma-browserify": "^4.2.1",
|
|
||||||
"karma-firefox-launcher": "^0.1.6",
|
|
||||||
"karma-mocha": "^0.2.0",
|
|
||||||
"karma-mocha-reporter": "^1.0.2",
|
|
||||||
"lodash": "^3.9.0",
|
|
||||||
"mkdirp": "~0.5.1",
|
|
||||||
"mocha": "^2.2.5",
|
|
||||||
"native-promise-only": "^0.8.0-a",
|
|
||||||
"nodeunit": ">0.0.0",
|
|
||||||
"nyc": "^2.1.0",
|
|
||||||
"rsvp": "^3.0.18",
|
|
||||||
"semver": "^4.3.6",
|
|
||||||
"uglify-js": "~2.4.0",
|
|
||||||
"xyz": "^0.5.0",
|
|
||||||
"yargs": "~3.9.1"
|
|
||||||
},
|
|
||||||
"directories": {},
|
|
||||||
"dist": {
|
|
||||||
"shasum": "ec6a61ae56480c0c3cb241c95618e20892f9672a",
|
|
||||||
"tarball": "https://registry.npmjs.org/async/-/async-1.5.2.tgz"
|
|
||||||
},
|
|
||||||
"files": [
|
|
||||||
"lib",
|
|
||||||
"dist/async.js",
|
|
||||||
"dist/async.min.js"
|
|
||||||
],
|
|
||||||
"gitHead": "9ab5c67b7cb3a4c3dad4a2d4552a2f6775545d6c",
|
|
||||||
"homepage": "https://github.com/caolan/async#readme",
|
|
||||||
"jam": {
|
|
||||||
"main": "lib/async.js",
|
|
||||||
"include": [
|
|
||||||
"lib/async.js",
|
|
||||||
"README.md",
|
|
||||||
"LICENSE"
|
|
||||||
],
|
|
||||||
"categories": [
|
|
||||||
"Utilities"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"keywords": [
|
|
||||||
"async",
|
|
||||||
"callback",
|
|
||||||
"utility",
|
|
||||||
"module"
|
|
||||||
],
|
|
||||||
"license": "MIT",
|
|
||||||
"main": "lib/async.js",
|
|
||||||
"maintainers": [
|
|
||||||
{
|
|
||||||
"name": "caolan",
|
|
||||||
"email": "caolan.mcmahon@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "beaugunderson",
|
|
||||||
"email": "beau@beaugunderson.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "aearly",
|
|
||||||
"email": "alexander.early@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "megawac",
|
|
||||||
"email": "megawac@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "async",
|
|
||||||
"optionalDependencies": {},
|
|
||||||
"readme": "ERROR: No README data found!",
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "git+https://github.com/caolan/async.git"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"coverage": "nyc npm test && nyc report",
|
|
||||||
"coveralls": "nyc npm test && nyc report --reporter=text-lcov | coveralls",
|
|
||||||
"lint": "jshint lib/*.js test/*.js perf/*.js && jscs lib/*.js test/*.js perf/*.js",
|
|
||||||
"mocha-browser-test": "karma start",
|
|
||||||
"mocha-node-test": "mocha mocha_test/",
|
|
||||||
"mocha-test": "npm run mocha-node-test && npm run mocha-browser-test",
|
|
||||||
"nodeunit-test": "nodeunit test/test-async.js",
|
|
||||||
"test": "npm run-script lint && npm run nodeunit-test && npm run mocha-test"
|
|
||||||
},
|
|
||||||
"spm": {
|
|
||||||
"main": "lib/async.js"
|
|
||||||
},
|
|
||||||
"version": "1.5.2",
|
|
||||||
"volo": {
|
|
||||||
"main": "lib/async.js",
|
|
||||||
"ignore": [
|
|
||||||
"**/.*",
|
|
||||||
"node_modules",
|
|
||||||
"bower_components",
|
|
||||||
"test",
|
|
||||||
"tests"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
35
GYMApp/GYMApp/node_modules/basic-auth/HISTORY.md
generated
vendored
35
GYMApp/GYMApp/node_modules/basic-auth/HISTORY.md
generated
vendored
@@ -1,35 +0,0 @@
|
|||||||
1.0.4 / 2016-05-10
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Improve error message when `req` argument is not an object
|
|
||||||
* Improve error message when `req` missing `headers` property
|
|
||||||
|
|
||||||
1.0.3 / 2015-07-01
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Fix regression accepting a Koa context
|
|
||||||
|
|
||||||
1.0.2 / 2015-06-12
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Improve error message when `req` argument missing
|
|
||||||
* perf: enable strict mode
|
|
||||||
* perf: hoist regular expression
|
|
||||||
* perf: parse with regular expressions
|
|
||||||
* perf: remove argument reassignment
|
|
||||||
|
|
||||||
1.0.1 / 2015-05-04
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Update readme
|
|
||||||
|
|
||||||
1.0.0 / 2014-07-01
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Support empty password
|
|
||||||
* Support empty username
|
|
||||||
|
|
||||||
0.0.1 / 2013-11-30
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Initial release
|
|
||||||
24
GYMApp/GYMApp/node_modules/basic-auth/LICENSE
generated
vendored
24
GYMApp/GYMApp/node_modules/basic-auth/LICENSE
generated
vendored
@@ -1,24 +0,0 @@
|
|||||||
(The MIT License)
|
|
||||||
|
|
||||||
Copyright (c) 2013 TJ Holowaychuk
|
|
||||||
Copyright (c) 2014 Jonathan Ong <me@jongleberry.com>
|
|
||||||
Copyright (c) 2015 Douglas Christopher Wilson <doug@somethingdoug.com>
|
|
||||||
|
|
||||||
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.
|
|
||||||
78
GYMApp/GYMApp/node_modules/basic-auth/README.md
generated
vendored
78
GYMApp/GYMApp/node_modules/basic-auth/README.md
generated
vendored
@@ -1,78 +0,0 @@
|
|||||||
# basic-auth
|
|
||||||
|
|
||||||
[![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]
|
|
||||||
|
|
||||||
Generic basic auth Authorization header field parser for whatever.
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
```
|
|
||||||
$ npm install basic-auth
|
|
||||||
```
|
|
||||||
|
|
||||||
## API
|
|
||||||
|
|
||||||
```js
|
|
||||||
var auth = require('basic-auth')
|
|
||||||
```
|
|
||||||
|
|
||||||
### auth(req)
|
|
||||||
|
|
||||||
Get the basic auth credentials from the given request. The `Authorization`
|
|
||||||
header is parsed and if the header is invalid, `undefined` is returned,
|
|
||||||
otherwise an object with `name` and `pass` properties.
|
|
||||||
|
|
||||||
## Example
|
|
||||||
|
|
||||||
Pass a node request or koa Context object to the module exported. If
|
|
||||||
parsing fails `undefined` is returned, otherwise an object with
|
|
||||||
`.name` and `.pass`.
|
|
||||||
|
|
||||||
```js
|
|
||||||
var auth = require('basic-auth');
|
|
||||||
var user = auth(req);
|
|
||||||
// => { name: 'something', pass: 'whatever' }
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
### With vanilla node.js http server
|
|
||||||
|
|
||||||
```js
|
|
||||||
var http = require('http')
|
|
||||||
var auth = require('basic-auth')
|
|
||||||
|
|
||||||
// Create server
|
|
||||||
var server = http.createServer(function (req, res) {
|
|
||||||
var credentials = auth(req)
|
|
||||||
|
|
||||||
if (!credentials || credentials.name !== 'john' || credentials.pass !== 'secret') {
|
|
||||||
res.statusCode = 401
|
|
||||||
res.setHeader('WWW-Authenticate', 'Basic realm="example"')
|
|
||||||
res.end('Access denied')
|
|
||||||
} else {
|
|
||||||
res.end('Access granted')
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
// Listen
|
|
||||||
server.listen(3000)
|
|
||||||
```
|
|
||||||
|
|
||||||
# License
|
|
||||||
|
|
||||||
[MIT](LICENSE)
|
|
||||||
|
|
||||||
[npm-image]: https://img.shields.io/npm/v/basic-auth.svg
|
|
||||||
[npm-url]: https://npmjs.org/package/basic-auth
|
|
||||||
[node-version-image]: https://img.shields.io/node/v/basic-auth.svg
|
|
||||||
[node-version-url]: https://nodejs.org/en/download
|
|
||||||
[travis-image]: https://img.shields.io/travis/jshttp/basic-auth/master.svg
|
|
||||||
[travis-url]: https://travis-ci.org/jshttp/basic-auth
|
|
||||||
[coveralls-image]: https://img.shields.io/coveralls/jshttp/basic-auth/master.svg
|
|
||||||
[coveralls-url]: https://coveralls.io/r/jshttp/basic-auth?branch=master
|
|
||||||
[downloads-image]: https://img.shields.io/npm/dm/basic-auth.svg
|
|
||||||
[downloads-url]: https://npmjs.org/package/basic-auth
|
|
||||||
108
GYMApp/GYMApp/node_modules/basic-auth/index.js
generated
vendored
108
GYMApp/GYMApp/node_modules/basic-auth/index.js
generated
vendored
@@ -1,108 +0,0 @@
|
|||||||
/*!
|
|
||||||
* basic-auth
|
|
||||||
* Copyright(c) 2013 TJ Holowaychuk
|
|
||||||
* Copyright(c) 2014 Jonathan Ong
|
|
||||||
* Copyright(c) 2015 Douglas Christopher Wilson
|
|
||||||
* MIT Licensed
|
|
||||||
*/
|
|
||||||
|
|
||||||
'use strict'
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Module exports.
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
|
|
||||||
module.exports = auth
|
|
||||||
|
|
||||||
/**
|
|
||||||
* RegExp for basic auth credentials
|
|
||||||
*
|
|
||||||
* credentials = auth-scheme 1*SP token68
|
|
||||||
* auth-scheme = "Basic" ; case insensitive
|
|
||||||
* token68 = 1*( ALPHA / DIGIT / "-" / "." / "_" / "~" / "+" / "/" ) *"="
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
|
|
||||||
var credentialsRegExp = /^ *(?:[Bb][Aa][Ss][Ii][Cc]) +([A-Za-z0-9\-\._~\+\/]+=*) *$/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* RegExp for basic auth user/pass
|
|
||||||
*
|
|
||||||
* user-pass = userid ":" password
|
|
||||||
* userid = *<TEXT excluding ":">
|
|
||||||
* password = *TEXT
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
|
|
||||||
var userPassRegExp = /^([^:]*):(.*)$/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Parse the Authorization header field of a request.
|
|
||||||
*
|
|
||||||
* @param {object} req
|
|
||||||
* @return {object} with .name and .pass
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
|
|
||||||
function auth(req) {
|
|
||||||
if (!req) {
|
|
||||||
throw new TypeError('argument req is required')
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof req !== 'object') {
|
|
||||||
throw new TypeError('argument req is required to be an object')
|
|
||||||
}
|
|
||||||
|
|
||||||
// get header
|
|
||||||
var header = getAuthorization(req.req || req)
|
|
||||||
|
|
||||||
// parse header
|
|
||||||
var match = credentialsRegExp.exec(header || '')
|
|
||||||
|
|
||||||
if (!match) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// decode user pass
|
|
||||||
var userPass = userPassRegExp.exec(decodeBase64(match[1]))
|
|
||||||
|
|
||||||
if (!userPass) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// return credentials object
|
|
||||||
return new Credentials(userPass[1], userPass[2])
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Decode base64 string.
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
|
|
||||||
function decodeBase64(str) {
|
|
||||||
return new Buffer(str, 'base64').toString()
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the Authorization header from request object.
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
|
|
||||||
function getAuthorization(req) {
|
|
||||||
if (!req.headers || typeof req.headers !== 'object') {
|
|
||||||
throw new TypeError('argument req is required to have headers property')
|
|
||||||
}
|
|
||||||
|
|
||||||
return req.headers.authorization
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Object to represent user credentials.
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
|
|
||||||
function Credentials(name, pass) {
|
|
||||||
this.name = name
|
|
||||||
this.pass = pass
|
|
||||||
}
|
|
||||||
110
GYMApp/GYMApp/node_modules/basic-auth/package.json
generated
vendored
110
GYMApp/GYMApp/node_modules/basic-auth/package.json
generated
vendored
@@ -1,110 +0,0 @@
|
|||||||
{
|
|
||||||
"_args": [
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"raw": "basic-auth@~1.0.3",
|
|
||||||
"scope": null,
|
|
||||||
"escapedName": "basic-auth",
|
|
||||||
"name": "basic-auth",
|
|
||||||
"rawSpec": "~1.0.3",
|
|
||||||
"spec": ">=1.0.3 <1.1.0",
|
|
||||||
"type": "range"
|
|
||||||
},
|
|
||||||
"C:\\Users\\nkiboti\\workspace\\GYMApp\\GYMApp\\node_modules\\morgan"
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"_from": "basic-auth@>=1.0.3 <1.1.0",
|
|
||||||
"_id": "basic-auth@1.0.4",
|
|
||||||
"_inCache": true,
|
|
||||||
"_location": "/basic-auth",
|
|
||||||
"_nodeVersion": "4.4.3",
|
|
||||||
"_npmOperationalInternal": {
|
|
||||||
"host": "packages-16-east.internal.npmjs.com",
|
|
||||||
"tmp": "tmp/basic-auth-1.0.4.tgz_1462938878912_0.717464140150696"
|
|
||||||
},
|
|
||||||
"_npmUser": {
|
|
||||||
"name": "dougwilson",
|
|
||||||
"email": "doug@somethingdoug.com"
|
|
||||||
},
|
|
||||||
"_npmVersion": "2.15.1",
|
|
||||||
"_phantomChildren": {},
|
|
||||||
"_requested": {
|
|
||||||
"raw": "basic-auth@~1.0.3",
|
|
||||||
"scope": null,
|
|
||||||
"escapedName": "basic-auth",
|
|
||||||
"name": "basic-auth",
|
|
||||||
"rawSpec": "~1.0.3",
|
|
||||||
"spec": ">=1.0.3 <1.1.0",
|
|
||||||
"type": "range"
|
|
||||||
},
|
|
||||||
"_requiredBy": [
|
|
||||||
"/morgan"
|
|
||||||
],
|
|
||||||
"_resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.0.4.tgz",
|
|
||||||
"_shasum": "030935b01de7c9b94a824b29f3fccb750d3a5290",
|
|
||||||
"_shrinkwrap": null,
|
|
||||||
"_spec": "basic-auth@~1.0.3",
|
|
||||||
"_where": "C:\\Users\\nkiboti\\workspace\\GYMApp\\GYMApp\\node_modules\\morgan",
|
|
||||||
"bugs": {
|
|
||||||
"url": "https://github.com/jshttp/basic-auth/issues"
|
|
||||||
},
|
|
||||||
"dependencies": {},
|
|
||||||
"description": "node.js basic auth parser",
|
|
||||||
"devDependencies": {
|
|
||||||
"istanbul": "0.4.3",
|
|
||||||
"mocha": "1.21.5"
|
|
||||||
},
|
|
||||||
"directories": {},
|
|
||||||
"dist": {
|
|
||||||
"shasum": "030935b01de7c9b94a824b29f3fccb750d3a5290",
|
|
||||||
"tarball": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.0.4.tgz"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 0.6"
|
|
||||||
},
|
|
||||||
"files": [
|
|
||||||
"HISTORY.md",
|
|
||||||
"LICENSE",
|
|
||||||
"index.js"
|
|
||||||
],
|
|
||||||
"gitHead": "4682d99600383bad5a266efbaa5055657dd9891d",
|
|
||||||
"homepage": "https://github.com/jshttp/basic-auth#readme",
|
|
||||||
"keywords": [
|
|
||||||
"basic",
|
|
||||||
"auth",
|
|
||||||
"authorization",
|
|
||||||
"basicauth"
|
|
||||||
],
|
|
||||||
"license": "MIT",
|
|
||||||
"maintainers": [
|
|
||||||
{
|
|
||||||
"name": "dougwilson",
|
|
||||||
"email": "doug@somethingdoug.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "jonathanong",
|
|
||||||
"email": "jonathanrichardong@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "jongleberry",
|
|
||||||
"email": "jonathanrichardong@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "tjholowaychuk",
|
|
||||||
"email": "tj@vision-media.ca"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "basic-auth",
|
|
||||||
"optionalDependencies": {},
|
|
||||||
"readme": "ERROR: No README data found!",
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "git+https://github.com/jshttp/basic-auth.git"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"test": "mocha --check-leaks --reporter spec --bail",
|
|
||||||
"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.0.4"
|
|
||||||
}
|
|
||||||
492
GYMApp/GYMApp/node_modules/body-parser/HISTORY.md
generated
vendored
492
GYMApp/GYMApp/node_modules/body-parser/HISTORY.md
generated
vendored
@@ -1,492 +0,0 @@
|
|||||||
1.16.0 / 2017-01-17
|
|
||||||
===================
|
|
||||||
|
|
||||||
* deps: debug@2.6.0
|
|
||||||
- Allow colors in workers
|
|
||||||
- Deprecated `DEBUG_FD` environment variable
|
|
||||||
- Fix error when running under React Native
|
|
||||||
- Use same color for same namespace
|
|
||||||
- deps: ms@0.7.2
|
|
||||||
* deps: http-errors@~1.5.1
|
|
||||||
- deps: inherits@2.0.3
|
|
||||||
- deps: setprototypeof@1.0.2
|
|
||||||
- deps: statuses@'>= 1.3.1 < 2'
|
|
||||||
* deps: iconv-lite@0.4.15
|
|
||||||
- Added encoding MS-31J
|
|
||||||
- Added encoding MS-932
|
|
||||||
- Added encoding MS-936
|
|
||||||
- Added encoding MS-949
|
|
||||||
- Added encoding MS-950
|
|
||||||
- Fix GBK/GB18030 handling of Euro character
|
|
||||||
* deps: qs@6.3.0
|
|
||||||
- Fix array parsing from skipping empty values
|
|
||||||
- Fix compacting nested arrays
|
|
||||||
* deps: raw-body@~2.2.0
|
|
||||||
- deps: iconv-lite@0.4.15
|
|
||||||
* deps: type-is@~1.6.14
|
|
||||||
- deps: mime-types@~2.1.13
|
|
||||||
|
|
||||||
1.15.2 / 2016-06-19
|
|
||||||
===================
|
|
||||||
|
|
||||||
* deps: bytes@2.4.0
|
|
||||||
* deps: content-type@~1.0.2
|
|
||||||
- perf: enable strict mode
|
|
||||||
* deps: http-errors@~1.5.0
|
|
||||||
- Use `setprototypeof` module to replace `__proto__` setting
|
|
||||||
- deps: statuses@'>= 1.3.0 < 2'
|
|
||||||
- perf: enable strict mode
|
|
||||||
* deps: qs@6.2.0
|
|
||||||
* deps: raw-body@~2.1.7
|
|
||||||
- deps: bytes@2.4.0
|
|
||||||
- perf: remove double-cleanup on happy path
|
|
||||||
* deps: type-is@~1.6.13
|
|
||||||
- deps: mime-types@~2.1.11
|
|
||||||
|
|
||||||
1.15.1 / 2016-05-05
|
|
||||||
===================
|
|
||||||
|
|
||||||
* deps: bytes@2.3.0
|
|
||||||
- Drop partial bytes on all parsed units
|
|
||||||
- Fix parsing byte string that looks like hex
|
|
||||||
* deps: raw-body@~2.1.6
|
|
||||||
- deps: bytes@2.3.0
|
|
||||||
* deps: type-is@~1.6.12
|
|
||||||
- deps: mime-types@~2.1.10
|
|
||||||
|
|
||||||
1.15.0 / 2016-02-10
|
|
||||||
===================
|
|
||||||
|
|
||||||
* deps: http-errors@~1.4.0
|
|
||||||
- Add `HttpError` export, for `err instanceof createError.HttpError`
|
|
||||||
- deps: inherits@2.0.1
|
|
||||||
- deps: statuses@'>= 1.2.1 < 2'
|
|
||||||
* deps: qs@6.1.0
|
|
||||||
* deps: type-is@~1.6.11
|
|
||||||
- deps: mime-types@~2.1.9
|
|
||||||
|
|
||||||
1.14.2 / 2015-12-16
|
|
||||||
===================
|
|
||||||
|
|
||||||
* deps: bytes@2.2.0
|
|
||||||
* deps: iconv-lite@0.4.13
|
|
||||||
* deps: qs@5.2.0
|
|
||||||
* deps: raw-body@~2.1.5
|
|
||||||
- deps: bytes@2.2.0
|
|
||||||
- deps: iconv-lite@0.4.13
|
|
||||||
* deps: type-is@~1.6.10
|
|
||||||
- deps: mime-types@~2.1.8
|
|
||||||
|
|
||||||
1.14.1 / 2015-09-27
|
|
||||||
===================
|
|
||||||
|
|
||||||
* Fix issue where invalid charset results in 400 when `verify` used
|
|
||||||
* deps: iconv-lite@0.4.12
|
|
||||||
- Fix CESU-8 decoding in Node.js 4.x
|
|
||||||
* deps: raw-body@~2.1.4
|
|
||||||
- Fix masking critical errors from `iconv-lite`
|
|
||||||
- deps: iconv-lite@0.4.12
|
|
||||||
* deps: type-is@~1.6.9
|
|
||||||
- deps: mime-types@~2.1.7
|
|
||||||
|
|
||||||
1.14.0 / 2015-09-16
|
|
||||||
===================
|
|
||||||
|
|
||||||
* Fix JSON strict parse error to match syntax errors
|
|
||||||
* Provide static `require` analysis in `urlencoded` parser
|
|
||||||
* deps: depd@~1.1.0
|
|
||||||
- Support web browser loading
|
|
||||||
* deps: qs@5.1.0
|
|
||||||
* deps: raw-body@~2.1.3
|
|
||||||
- Fix sync callback when attaching data listener causes sync read
|
|
||||||
* deps: type-is@~1.6.8
|
|
||||||
- Fix type error when given invalid type to match against
|
|
||||||
- deps: mime-types@~2.1.6
|
|
||||||
|
|
||||||
1.13.3 / 2015-07-31
|
|
||||||
===================
|
|
||||||
|
|
||||||
* deps: type-is@~1.6.6
|
|
||||||
- deps: mime-types@~2.1.4
|
|
||||||
|
|
||||||
1.13.2 / 2015-07-05
|
|
||||||
===================
|
|
||||||
|
|
||||||
* deps: iconv-lite@0.4.11
|
|
||||||
* deps: qs@4.0.0
|
|
||||||
- Fix dropping parameters like `hasOwnProperty`
|
|
||||||
- Fix user-visible incompatibilities from 3.1.0
|
|
||||||
- Fix various parsing edge cases
|
|
||||||
* deps: raw-body@~2.1.2
|
|
||||||
- Fix error stack traces to skip `makeError`
|
|
||||||
- deps: iconv-lite@0.4.11
|
|
||||||
* deps: type-is@~1.6.4
|
|
||||||
- deps: mime-types@~2.1.2
|
|
||||||
- perf: enable strict mode
|
|
||||||
- perf: remove argument reassignment
|
|
||||||
|
|
||||||
1.13.1 / 2015-06-16
|
|
||||||
===================
|
|
||||||
|
|
||||||
* deps: qs@2.4.2
|
|
||||||
- Downgraded from 3.1.0 because of user-visible incompatibilities
|
|
||||||
|
|
||||||
1.13.0 / 2015-06-14
|
|
||||||
===================
|
|
||||||
|
|
||||||
* Add `statusCode` property on `Error`s, in addition to `status`
|
|
||||||
* Change `type` default to `application/json` for JSON parser
|
|
||||||
* Change `type` default to `application/x-www-form-urlencoded` for urlencoded parser
|
|
||||||
* Provide static `require` analysis
|
|
||||||
* Use the `http-errors` module to generate errors
|
|
||||||
* deps: bytes@2.1.0
|
|
||||||
- Slight optimizations
|
|
||||||
* deps: iconv-lite@0.4.10
|
|
||||||
- The encoding UTF-16 without BOM now defaults to UTF-16LE when detection fails
|
|
||||||
- Leading BOM is now removed when decoding
|
|
||||||
* deps: on-finished@~2.3.0
|
|
||||||
- Add defined behavior for HTTP `CONNECT` requests
|
|
||||||
- Add defined behavior for HTTP `Upgrade` requests
|
|
||||||
- deps: ee-first@1.1.1
|
|
||||||
* deps: qs@3.1.0
|
|
||||||
- Fix dropping parameters like `hasOwnProperty`
|
|
||||||
- Fix various parsing edge cases
|
|
||||||
- Parsed object now has `null` prototype
|
|
||||||
* deps: raw-body@~2.1.1
|
|
||||||
- Use `unpipe` module for unpiping requests
|
|
||||||
- deps: iconv-lite@0.4.10
|
|
||||||
* deps: type-is@~1.6.3
|
|
||||||
- deps: mime-types@~2.1.1
|
|
||||||
- perf: reduce try block size
|
|
||||||
- perf: remove bitwise operations
|
|
||||||
* perf: enable strict mode
|
|
||||||
* perf: remove argument reassignment
|
|
||||||
* perf: remove delete call
|
|
||||||
|
|
||||||
1.12.4 / 2015-05-10
|
|
||||||
===================
|
|
||||||
|
|
||||||
* deps: debug@~2.2.0
|
|
||||||
* deps: qs@2.4.2
|
|
||||||
- Fix allowing parameters like `constructor`
|
|
||||||
* deps: on-finished@~2.2.1
|
|
||||||
* deps: raw-body@~2.0.1
|
|
||||||
- Fix a false-positive when unpiping in Node.js 0.8
|
|
||||||
- deps: bytes@2.0.1
|
|
||||||
* deps: type-is@~1.6.2
|
|
||||||
- deps: mime-types@~2.0.11
|
|
||||||
|
|
||||||
1.12.3 / 2015-04-15
|
|
||||||
===================
|
|
||||||
|
|
||||||
* Slight efficiency improvement when not debugging
|
|
||||||
* deps: depd@~1.0.1
|
|
||||||
* deps: iconv-lite@0.4.8
|
|
||||||
- Add encoding alias UNICODE-1-1-UTF-7
|
|
||||||
* deps: raw-body@1.3.4
|
|
||||||
- Fix hanging callback if request aborts during read
|
|
||||||
- deps: iconv-lite@0.4.8
|
|
||||||
|
|
||||||
1.12.2 / 2015-03-16
|
|
||||||
===================
|
|
||||||
|
|
||||||
* deps: qs@2.4.1
|
|
||||||
- Fix error when parameter `hasOwnProperty` is present
|
|
||||||
|
|
||||||
1.12.1 / 2015-03-15
|
|
||||||
===================
|
|
||||||
|
|
||||||
* deps: debug@~2.1.3
|
|
||||||
- Fix high intensity foreground color for bold
|
|
||||||
- deps: ms@0.7.0
|
|
||||||
* deps: type-is@~1.6.1
|
|
||||||
- deps: mime-types@~2.0.10
|
|
||||||
|
|
||||||
1.12.0 / 2015-02-13
|
|
||||||
===================
|
|
||||||
|
|
||||||
* add `debug` messages
|
|
||||||
* accept a function for the `type` option
|
|
||||||
* use `content-type` to parse `Content-Type` headers
|
|
||||||
* deps: iconv-lite@0.4.7
|
|
||||||
- Gracefully support enumerables on `Object.prototype`
|
|
||||||
* deps: raw-body@1.3.3
|
|
||||||
- deps: iconv-lite@0.4.7
|
|
||||||
* deps: type-is@~1.6.0
|
|
||||||
- fix argument reassignment
|
|
||||||
- fix false-positives in `hasBody` `Transfer-Encoding` check
|
|
||||||
- support wildcard for both type and subtype (`*/*`)
|
|
||||||
- deps: mime-types@~2.0.9
|
|
||||||
|
|
||||||
1.11.0 / 2015-01-30
|
|
||||||
===================
|
|
||||||
|
|
||||||
* make internal `extended: true` depth limit infinity
|
|
||||||
* deps: type-is@~1.5.6
|
|
||||||
- deps: mime-types@~2.0.8
|
|
||||||
|
|
||||||
1.10.2 / 2015-01-20
|
|
||||||
===================
|
|
||||||
|
|
||||||
* deps: iconv-lite@0.4.6
|
|
||||||
- Fix rare aliases of single-byte encodings
|
|
||||||
* deps: raw-body@1.3.2
|
|
||||||
- deps: iconv-lite@0.4.6
|
|
||||||
|
|
||||||
1.10.1 / 2015-01-01
|
|
||||||
===================
|
|
||||||
|
|
||||||
* deps: on-finished@~2.2.0
|
|
||||||
* deps: type-is@~1.5.5
|
|
||||||
- deps: mime-types@~2.0.7
|
|
||||||
|
|
||||||
1.10.0 / 2014-12-02
|
|
||||||
===================
|
|
||||||
|
|
||||||
* make internal `extended: true` array limit dynamic
|
|
||||||
|
|
||||||
1.9.3 / 2014-11-21
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: iconv-lite@0.4.5
|
|
||||||
- Fix Windows-31J and X-SJIS encoding support
|
|
||||||
* deps: qs@2.3.3
|
|
||||||
- Fix `arrayLimit` behavior
|
|
||||||
* deps: raw-body@1.3.1
|
|
||||||
- deps: iconv-lite@0.4.5
|
|
||||||
* deps: type-is@~1.5.3
|
|
||||||
- deps: mime-types@~2.0.3
|
|
||||||
|
|
||||||
1.9.2 / 2014-10-27
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: qs@2.3.2
|
|
||||||
- Fix parsing of mixed objects and values
|
|
||||||
|
|
||||||
1.9.1 / 2014-10-22
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: on-finished@~2.1.1
|
|
||||||
- Fix handling of pipelined requests
|
|
||||||
* deps: qs@2.3.0
|
|
||||||
- Fix parsing of mixed implicit and explicit arrays
|
|
||||||
* deps: type-is@~1.5.2
|
|
||||||
- deps: mime-types@~2.0.2
|
|
||||||
|
|
||||||
1.9.0 / 2014-09-24
|
|
||||||
==================
|
|
||||||
|
|
||||||
* include the charset in "unsupported charset" error message
|
|
||||||
* include the encoding in "unsupported content encoding" error message
|
|
||||||
* deps: depd@~1.0.0
|
|
||||||
|
|
||||||
1.8.4 / 2014-09-23
|
|
||||||
==================
|
|
||||||
|
|
||||||
* fix content encoding to be case-insensitive
|
|
||||||
|
|
||||||
1.8.3 / 2014-09-19
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: qs@2.2.4
|
|
||||||
- Fix issue with object keys starting with numbers truncated
|
|
||||||
|
|
||||||
1.8.2 / 2014-09-15
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: depd@0.4.5
|
|
||||||
|
|
||||||
1.8.1 / 2014-09-07
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: media-typer@0.3.0
|
|
||||||
* deps: type-is@~1.5.1
|
|
||||||
|
|
||||||
1.8.0 / 2014-09-05
|
|
||||||
==================
|
|
||||||
|
|
||||||
* make empty-body-handling consistent between chunked requests
|
|
||||||
- empty `json` produces `{}`
|
|
||||||
- empty `raw` produces `new Buffer(0)`
|
|
||||||
- empty `text` produces `''`
|
|
||||||
- empty `urlencoded` produces `{}`
|
|
||||||
* deps: qs@2.2.3
|
|
||||||
- Fix issue where first empty value in array is discarded
|
|
||||||
* deps: type-is@~1.5.0
|
|
||||||
- fix `hasbody` to be true for `content-length: 0`
|
|
||||||
|
|
||||||
1.7.0 / 2014-09-01
|
|
||||||
==================
|
|
||||||
|
|
||||||
* add `parameterLimit` option to `urlencoded` parser
|
|
||||||
* change `urlencoded` extended array limit to 100
|
|
||||||
* respond with 413 when over `parameterLimit` in `urlencoded`
|
|
||||||
|
|
||||||
1.6.7 / 2014-08-29
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: qs@2.2.2
|
|
||||||
- Remove unnecessary cloning
|
|
||||||
|
|
||||||
1.6.6 / 2014-08-27
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: qs@2.2.0
|
|
||||||
- Array parsing fix
|
|
||||||
- Performance improvements
|
|
||||||
|
|
||||||
1.6.5 / 2014-08-16
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: on-finished@2.1.0
|
|
||||||
|
|
||||||
1.6.4 / 2014-08-14
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: qs@1.2.2
|
|
||||||
|
|
||||||
1.6.3 / 2014-08-10
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: qs@1.2.1
|
|
||||||
|
|
||||||
1.6.2 / 2014-08-07
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: qs@1.2.0
|
|
||||||
- Fix parsing array of objects
|
|
||||||
|
|
||||||
1.6.1 / 2014-08-06
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: qs@1.1.0
|
|
||||||
- Accept urlencoded square brackets
|
|
||||||
- Accept empty values in implicit array notation
|
|
||||||
|
|
||||||
1.6.0 / 2014-08-05
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: qs@1.0.2
|
|
||||||
- Complete rewrite
|
|
||||||
- Limits array length to 20
|
|
||||||
- Limits object depth to 5
|
|
||||||
- Limits parameters to 1,000
|
|
||||||
|
|
||||||
1.5.2 / 2014-07-27
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: depd@0.4.4
|
|
||||||
- Work-around v8 generating empty stack traces
|
|
||||||
|
|
||||||
1.5.1 / 2014-07-26
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: depd@0.4.3
|
|
||||||
- Fix exception when global `Error.stackTraceLimit` is too low
|
|
||||||
|
|
||||||
1.5.0 / 2014-07-20
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: depd@0.4.2
|
|
||||||
- Add `TRACE_DEPRECATION` environment variable
|
|
||||||
- Remove non-standard grey color from color output
|
|
||||||
- Support `--no-deprecation` argument
|
|
||||||
- Support `--trace-deprecation` argument
|
|
||||||
* deps: iconv-lite@0.4.4
|
|
||||||
- Added encoding UTF-7
|
|
||||||
* deps: raw-body@1.3.0
|
|
||||||
- deps: iconv-lite@0.4.4
|
|
||||||
- Added encoding UTF-7
|
|
||||||
- Fix `Cannot switch to old mode now` error on Node.js 0.10+
|
|
||||||
* deps: type-is@~1.3.2
|
|
||||||
|
|
||||||
1.4.3 / 2014-06-19
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: type-is@1.3.1
|
|
||||||
- fix global variable leak
|
|
||||||
|
|
||||||
1.4.2 / 2014-06-19
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: type-is@1.3.0
|
|
||||||
- improve type parsing
|
|
||||||
|
|
||||||
1.4.1 / 2014-06-19
|
|
||||||
==================
|
|
||||||
|
|
||||||
* fix urlencoded extended deprecation message
|
|
||||||
|
|
||||||
1.4.0 / 2014-06-19
|
|
||||||
==================
|
|
||||||
|
|
||||||
* add `text` parser
|
|
||||||
* add `raw` parser
|
|
||||||
* check accepted charset in content-type (accepts utf-8)
|
|
||||||
* check accepted encoding in content-encoding (accepts identity)
|
|
||||||
* deprecate `bodyParser()` middleware; use `.json()` and `.urlencoded()` as needed
|
|
||||||
* deprecate `urlencoded()` without provided `extended` option
|
|
||||||
* lazy-load urlencoded parsers
|
|
||||||
* parsers split into files for reduced mem usage
|
|
||||||
* support gzip and deflate bodies
|
|
||||||
- set `inflate: false` to turn off
|
|
||||||
* deps: raw-body@1.2.2
|
|
||||||
- Support all encodings from `iconv-lite`
|
|
||||||
|
|
||||||
1.3.1 / 2014-06-11
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: type-is@1.2.1
|
|
||||||
- Switch dependency from mime to mime-types@1.0.0
|
|
||||||
|
|
||||||
1.3.0 / 2014-05-31
|
|
||||||
==================
|
|
||||||
|
|
||||||
* add `extended` option to urlencoded parser
|
|
||||||
|
|
||||||
1.2.2 / 2014-05-27
|
|
||||||
==================
|
|
||||||
|
|
||||||
* deps: raw-body@1.1.6
|
|
||||||
- assert stream encoding on node.js 0.8
|
|
||||||
- assert stream encoding on node.js < 0.10.6
|
|
||||||
- deps: bytes@1
|
|
||||||
|
|
||||||
1.2.1 / 2014-05-26
|
|
||||||
==================
|
|
||||||
|
|
||||||
* invoke `next(err)` after request fully read
|
|
||||||
- prevents hung responses and socket hang ups
|
|
||||||
|
|
||||||
1.2.0 / 2014-05-11
|
|
||||||
==================
|
|
||||||
|
|
||||||
* add `verify` option
|
|
||||||
* deps: type-is@1.2.0
|
|
||||||
- support suffix matching
|
|
||||||
|
|
||||||
1.1.2 / 2014-05-11
|
|
||||||
==================
|
|
||||||
|
|
||||||
* improve json parser speed
|
|
||||||
|
|
||||||
1.1.1 / 2014-05-11
|
|
||||||
==================
|
|
||||||
|
|
||||||
* fix repeated limit parsing with every request
|
|
||||||
|
|
||||||
1.1.0 / 2014-05-10
|
|
||||||
==================
|
|
||||||
|
|
||||||
* add `type` option
|
|
||||||
* deps: pin for safety and consistency
|
|
||||||
|
|
||||||
1.0.2 / 2014-04-14
|
|
||||||
==================
|
|
||||||
|
|
||||||
* use `type-is` module
|
|
||||||
|
|
||||||
1.0.1 / 2014-03-20
|
|
||||||
==================
|
|
||||||
|
|
||||||
* lower default limits to 100kb
|
|
||||||
23
GYMApp/GYMApp/node_modules/body-parser/LICENSE
generated
vendored
23
GYMApp/GYMApp/node_modules/body-parser/LICENSE
generated
vendored
@@ -1,23 +0,0 @@
|
|||||||
(The MIT License)
|
|
||||||
|
|
||||||
Copyright (c) 2014 Jonathan Ong <me@jongleberry.com>
|
|
||||||
Copyright (c) 2014-2015 Douglas Christopher Wilson <doug@somethingdoug.com>
|
|
||||||
|
|
||||||
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.
|
|
||||||
416
GYMApp/GYMApp/node_modules/body-parser/README.md
generated
vendored
416
GYMApp/GYMApp/node_modules/body-parser/README.md
generated
vendored
@@ -1,416 +0,0 @@
|
|||||||
# body-parser
|
|
||||||
|
|
||||||
[![NPM Version][npm-image]][npm-url]
|
|
||||||
[![NPM Downloads][downloads-image]][downloads-url]
|
|
||||||
[![Build Status][travis-image]][travis-url]
|
|
||||||
[![Test Coverage][coveralls-image]][coveralls-url]
|
|
||||||
[![Gratipay][gratipay-image]][gratipay-url]
|
|
||||||
|
|
||||||
Node.js body parsing middleware.
|
|
||||||
|
|
||||||
Parse incoming request bodies in a middleware before your handlers, available
|
|
||||||
under the `req.body` property.
|
|
||||||
|
|
||||||
[Learn about the anatomy of an HTTP transaction in Node.js](https://nodejs.org/en/docs/guides/anatomy-of-an-http-transaction/).
|
|
||||||
|
|
||||||
_This does not handle multipart bodies_, due to their complex and typically
|
|
||||||
large nature. For multipart bodies, you may be interested in the following
|
|
||||||
modules:
|
|
||||||
|
|
||||||
* [busboy](https://www.npmjs.org/package/busboy#readme) and
|
|
||||||
[connect-busboy](https://www.npmjs.org/package/connect-busboy#readme)
|
|
||||||
* [multiparty](https://www.npmjs.org/package/multiparty#readme) and
|
|
||||||
[connect-multiparty](https://www.npmjs.org/package/connect-multiparty#readme)
|
|
||||||
* [formidable](https://www.npmjs.org/package/formidable#readme)
|
|
||||||
* [multer](https://www.npmjs.org/package/multer#readme)
|
|
||||||
|
|
||||||
This module provides the following parsers:
|
|
||||||
|
|
||||||
* [JSON body parser](#bodyparserjsonoptions)
|
|
||||||
* [Raw body parser](#bodyparserrawoptions)
|
|
||||||
* [Text body parser](#bodyparsertextoptions)
|
|
||||||
* [URL-encoded form body parser](#bodyparserurlencodedoptions)
|
|
||||||
|
|
||||||
Other body parsers you might be interested in:
|
|
||||||
|
|
||||||
- [body](https://www.npmjs.org/package/body#readme)
|
|
||||||
- [co-body](https://www.npmjs.org/package/co-body#readme)
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
```sh
|
|
||||||
$ npm install body-parser
|
|
||||||
```
|
|
||||||
|
|
||||||
## API
|
|
||||||
|
|
||||||
<!-- eslint-disable no-unused-vars -->
|
|
||||||
|
|
||||||
```js
|
|
||||||
var bodyParser = require('body-parser')
|
|
||||||
```
|
|
||||||
|
|
||||||
The `bodyParser` object exposes various factories to create middlewares. All
|
|
||||||
middlewares will populate the `req.body` property with the parsed body, or an
|
|
||||||
empty object (`{}`) if there was no body to parse (or an error was returned).
|
|
||||||
|
|
||||||
The various errors returned by this module are described in the
|
|
||||||
[errors section](#errors).
|
|
||||||
|
|
||||||
### bodyParser.json(options)
|
|
||||||
|
|
||||||
Returns middleware that only parses `json`. This parser accepts any Unicode
|
|
||||||
encoding of the body and supports automatic inflation of `gzip` and `deflate`
|
|
||||||
encodings.
|
|
||||||
|
|
||||||
A new `body` object containing the parsed data is populated on the `request`
|
|
||||||
object after the middleware (i.e. `req.body`).
|
|
||||||
|
|
||||||
#### Options
|
|
||||||
|
|
||||||
The `json` function takes an option `options` object that may contain any of
|
|
||||||
the following keys:
|
|
||||||
|
|
||||||
##### inflate
|
|
||||||
|
|
||||||
When set to `true`, then deflated (compressed) bodies will be inflated; when
|
|
||||||
`false`, deflated bodies are rejected. Defaults to `true`.
|
|
||||||
|
|
||||||
##### limit
|
|
||||||
|
|
||||||
Controls the maximum request body size. If this is a number, then the value
|
|
||||||
specifies the number of bytes; if it is a string, the value is passed to the
|
|
||||||
[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults
|
|
||||||
to `'100kb'`.
|
|
||||||
|
|
||||||
##### reviver
|
|
||||||
|
|
||||||
The `reviver` option is passed directly to `JSON.parse` as the second
|
|
||||||
argument. You can find more information on this argument
|
|
||||||
[in the MDN documentation about JSON.parse](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Example.3A_Using_the_reviver_parameter).
|
|
||||||
|
|
||||||
##### strict
|
|
||||||
|
|
||||||
When set to `true`, will only accept arrays and objects; when `false` will
|
|
||||||
accept anything `JSON.parse` accepts. Defaults to `true`.
|
|
||||||
|
|
||||||
##### type
|
|
||||||
|
|
||||||
The `type` option is used to determine what media type the middleware will
|
|
||||||
parse. This option can be a function or a string. If a string, `type` option
|
|
||||||
is passed directly to the [type-is](https://www.npmjs.org/package/type-is#readme)
|
|
||||||
library and this can be an extension name (like `json`), a mime type (like
|
|
||||||
`application/json`), or a mime type with a wildcard (like `*/*` or `*/json`).
|
|
||||||
If a function, the `type` option is called as `fn(req)` and the request is
|
|
||||||
parsed if it returns a truthy value. Defaults to `application/json`.
|
|
||||||
|
|
||||||
##### verify
|
|
||||||
|
|
||||||
The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`,
|
|
||||||
where `buf` is a `Buffer` of the raw request body and `encoding` is the
|
|
||||||
encoding of the request. The parsing can be aborted by throwing an error.
|
|
||||||
|
|
||||||
### bodyParser.raw(options)
|
|
||||||
|
|
||||||
Returns middleware that parses all bodies as a `Buffer`. This parser
|
|
||||||
supports automatic inflation of `gzip` and `deflate` encodings.
|
|
||||||
|
|
||||||
A new `body` object containing the parsed data is populated on the `request`
|
|
||||||
object after the middleware (i.e. `req.body`). This will be a `Buffer` object
|
|
||||||
of the body.
|
|
||||||
|
|
||||||
#### Options
|
|
||||||
|
|
||||||
The `raw` function takes an option `options` object that may contain any of
|
|
||||||
the following keys:
|
|
||||||
|
|
||||||
##### inflate
|
|
||||||
|
|
||||||
When set to `true`, then deflated (compressed) bodies will be inflated; when
|
|
||||||
`false`, deflated bodies are rejected. Defaults to `true`.
|
|
||||||
|
|
||||||
##### limit
|
|
||||||
|
|
||||||
Controls the maximum request body size. If this is a number, then the value
|
|
||||||
specifies the number of bytes; if it is a string, the value is passed to the
|
|
||||||
[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults
|
|
||||||
to `'100kb'`.
|
|
||||||
|
|
||||||
##### type
|
|
||||||
|
|
||||||
The `type` option is used to determine what media type the middleware will
|
|
||||||
parse. This option can be a function or a string. If a string, `type` option
|
|
||||||
is passed directly to the [type-is](https://www.npmjs.org/package/type-is#readme)
|
|
||||||
library and this can be an extension name (like `bin`), a mime type (like
|
|
||||||
`application/octet-stream`), or a mime type with a wildcard (like `*/*` or
|
|
||||||
`application/*`). If a function, the `type` option is called as `fn(req)`
|
|
||||||
and the request is parsed if it returns a truthy value. Defaults to
|
|
||||||
`application/octet-stream`.
|
|
||||||
|
|
||||||
##### verify
|
|
||||||
|
|
||||||
The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`,
|
|
||||||
where `buf` is a `Buffer` of the raw request body and `encoding` is the
|
|
||||||
encoding of the request. The parsing can be aborted by throwing an error.
|
|
||||||
|
|
||||||
### bodyParser.text(options)
|
|
||||||
|
|
||||||
Returns middleware that parses all bodies as a string. This parser supports
|
|
||||||
automatic inflation of `gzip` and `deflate` encodings.
|
|
||||||
|
|
||||||
A new `body` string containing the parsed data is populated on the `request`
|
|
||||||
object after the middleware (i.e. `req.body`). This will be a string of the
|
|
||||||
body.
|
|
||||||
|
|
||||||
#### Options
|
|
||||||
|
|
||||||
The `text` function takes an option `options` object that may contain any of
|
|
||||||
the following keys:
|
|
||||||
|
|
||||||
##### defaultCharset
|
|
||||||
|
|
||||||
Specify the default character set for the text content if the charset is not
|
|
||||||
specified in the `Content-Type` header of the request. Defaults to `utf-8`.
|
|
||||||
|
|
||||||
##### inflate
|
|
||||||
|
|
||||||
When set to `true`, then deflated (compressed) bodies will be inflated; when
|
|
||||||
`false`, deflated bodies are rejected. Defaults to `true`.
|
|
||||||
|
|
||||||
##### limit
|
|
||||||
|
|
||||||
Controls the maximum request body size. If this is a number, then the value
|
|
||||||
specifies the number of bytes; if it is a string, the value is passed to the
|
|
||||||
[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults
|
|
||||||
to `'100kb'`.
|
|
||||||
|
|
||||||
##### type
|
|
||||||
|
|
||||||
The `type` option is used to determine what media type the middleware will
|
|
||||||
parse. This option can be a function or a string. If a string, `type` option
|
|
||||||
is passed directly to the [type-is](https://www.npmjs.org/package/type-is#readme)
|
|
||||||
library and this can be an extension name (like `txt`), a mime type (like
|
|
||||||
`text/plain`), or a mime type with a wildcard (like `*/*` or `text/*`).
|
|
||||||
If a function, the `type` option is called as `fn(req)` and the request is
|
|
||||||
parsed if it returns a truthy value. Defaults to `text/plain`.
|
|
||||||
|
|
||||||
##### verify
|
|
||||||
|
|
||||||
The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`,
|
|
||||||
where `buf` is a `Buffer` of the raw request body and `encoding` is the
|
|
||||||
encoding of the request. The parsing can be aborted by throwing an error.
|
|
||||||
|
|
||||||
### bodyParser.urlencoded(options)
|
|
||||||
|
|
||||||
Returns middleware that only parses `urlencoded` bodies. This parser accepts
|
|
||||||
only UTF-8 encoding of the body and supports automatic inflation of `gzip`
|
|
||||||
and `deflate` encodings.
|
|
||||||
|
|
||||||
A new `body` object containing the parsed data is populated on the `request`
|
|
||||||
object after the middleware (i.e. `req.body`). This object will contain
|
|
||||||
key-value pairs, where the value can be a string or array (when `extended` is
|
|
||||||
`false`), or any type (when `extended` is `true`).
|
|
||||||
|
|
||||||
#### Options
|
|
||||||
|
|
||||||
The `urlencoded` function takes an option `options` object that may contain
|
|
||||||
any of the following keys:
|
|
||||||
|
|
||||||
##### extended
|
|
||||||
|
|
||||||
The `extended` option allows to choose between parsing the URL-encoded data
|
|
||||||
with the `querystring` library (when `false`) or the `qs` library (when
|
|
||||||
`true`). The "extended" syntax allows for rich objects and arrays to be
|
|
||||||
encoded into the URL-encoded format, allowing for a JSON-like experience
|
|
||||||
with URL-encoded. For more information, please
|
|
||||||
[see the qs library](https://www.npmjs.org/package/qs#readme).
|
|
||||||
|
|
||||||
Defaults to `true`, but using the default has been deprecated. Please
|
|
||||||
research into the difference between `qs` and `querystring` and choose the
|
|
||||||
appropriate setting.
|
|
||||||
|
|
||||||
##### inflate
|
|
||||||
|
|
||||||
When set to `true`, then deflated (compressed) bodies will be inflated; when
|
|
||||||
`false`, deflated bodies are rejected. Defaults to `true`.
|
|
||||||
|
|
||||||
##### limit
|
|
||||||
|
|
||||||
Controls the maximum request body size. If this is a number, then the value
|
|
||||||
specifies the number of bytes; if it is a string, the value is passed to the
|
|
||||||
[bytes](https://www.npmjs.com/package/bytes) library for parsing. Defaults
|
|
||||||
to `'100kb'`.
|
|
||||||
|
|
||||||
##### parameterLimit
|
|
||||||
|
|
||||||
The `parameterLimit` option controls the maximum number of parameters that
|
|
||||||
are allowed in the URL-encoded data. If a request contains more parameters
|
|
||||||
than this value, a 413 will be returned to the client. Defaults to `1000`.
|
|
||||||
|
|
||||||
##### type
|
|
||||||
|
|
||||||
The `type` option is used to determine what media type the middleware will
|
|
||||||
parse. This option can be a function or a string. If a string, `type` option
|
|
||||||
is passed directly to the [type-is](https://www.npmjs.org/package/type-is#readme)
|
|
||||||
library and this can be an extension name (like `urlencoded`), a mime type (like
|
|
||||||
`application/x-www-form-urlencoded`), or a mime type with a wildcard (like
|
|
||||||
`*/x-www-form-urlencoded`). If a function, the `type` option is called as
|
|
||||||
`fn(req)` and the request is parsed if it returns a truthy value. Defaults
|
|
||||||
to `application/x-www-form-urlencoded`.
|
|
||||||
|
|
||||||
##### verify
|
|
||||||
|
|
||||||
The `verify` option, if supplied, is called as `verify(req, res, buf, encoding)`,
|
|
||||||
where `buf` is a `Buffer` of the raw request body and `encoding` is the
|
|
||||||
encoding of the request. The parsing can be aborted by throwing an error.
|
|
||||||
|
|
||||||
## Errors
|
|
||||||
|
|
||||||
The middlewares provided by this module create errors depending on the error
|
|
||||||
condition during parsing. The errors will typically have a `status` property
|
|
||||||
that contains the suggested HTTP response code and a `body` property containing
|
|
||||||
the read body, if available.
|
|
||||||
|
|
||||||
The following are the common errors emitted, though any error can come through
|
|
||||||
for various reasons.
|
|
||||||
|
|
||||||
### content encoding unsupported
|
|
||||||
|
|
||||||
This error will occur when the request had a `Content-Encoding` header that
|
|
||||||
contained an encoding but the "inflation" option was set to `false`. The
|
|
||||||
`status` property is set to `415`.
|
|
||||||
|
|
||||||
### request aborted
|
|
||||||
|
|
||||||
This error will occur when the request is aborted by the client before reading
|
|
||||||
the body has finished. The `received` property will be set to the number of
|
|
||||||
bytes received before the request was aborted and the `expected` property is
|
|
||||||
set to the number of expected bytes. The `status` property is set to `400`.
|
|
||||||
|
|
||||||
### request entity too large
|
|
||||||
|
|
||||||
This error will occur when the request body's size is larger than the "limit"
|
|
||||||
option. The `limit` property will be set to the byte limit and the `length`
|
|
||||||
property will be set to the request body's length. The `status` property is
|
|
||||||
set to `413`.
|
|
||||||
|
|
||||||
### request size did not match content length
|
|
||||||
|
|
||||||
This error will occur when the request's length did not match the length from
|
|
||||||
the `Content-Length` header. This typically occurs when the request is malformed,
|
|
||||||
typically when the `Content-Length` header was calculated based on characters
|
|
||||||
instead of bytes. The `status` property is set to `400`.
|
|
||||||
|
|
||||||
### stream encoding should not be set
|
|
||||||
|
|
||||||
This error will occur when something called the `req.setEncoding` method prior
|
|
||||||
to this middleware. This module operates directly on bytes only and you cannot
|
|
||||||
call `req.setEncoding` when using this module. The `status` property is set to
|
|
||||||
`500`.
|
|
||||||
|
|
||||||
### unsupported charset "BOGUS"
|
|
||||||
|
|
||||||
This error will occur when the request had a charset parameter in the
|
|
||||||
`Content-Type` header, but the `iconv-lite` module does not support it OR the
|
|
||||||
parser does not support it. The charset is contained in the message as well
|
|
||||||
as in the `charset` property. The `status` property is set to `415`.
|
|
||||||
|
|
||||||
### unsupported content encoding "bogus"
|
|
||||||
|
|
||||||
This error will occur when the request had a `Content-Encoding` header that
|
|
||||||
contained an unsupported encoding. The encoding is contained in the message
|
|
||||||
as well as in the `encoding` property. The `status` property is set to `415`.
|
|
||||||
|
|
||||||
## Examples
|
|
||||||
|
|
||||||
### Express/Connect top-level generic
|
|
||||||
|
|
||||||
This example demonstrates adding a generic JSON and URL-encoded parser as a
|
|
||||||
top-level middleware, which will parse the bodies of all incoming requests.
|
|
||||||
This is the simplest setup.
|
|
||||||
|
|
||||||
```js
|
|
||||||
var express = require('express')
|
|
||||||
var bodyParser = require('body-parser')
|
|
||||||
|
|
||||||
var app = express()
|
|
||||||
|
|
||||||
// parse application/x-www-form-urlencoded
|
|
||||||
app.use(bodyParser.urlencoded({ extended: false }))
|
|
||||||
|
|
||||||
// parse application/json
|
|
||||||
app.use(bodyParser.json())
|
|
||||||
|
|
||||||
app.use(function (req, res) {
|
|
||||||
res.setHeader('Content-Type', 'text/plain')
|
|
||||||
res.write('you posted:\n')
|
|
||||||
res.end(JSON.stringify(req.body, null, 2))
|
|
||||||
})
|
|
||||||
```
|
|
||||||
|
|
||||||
### Express route-specific
|
|
||||||
|
|
||||||
This example demonstrates adding body parsers specifically to the routes that
|
|
||||||
need them. In general, this is the most recommended way to use body-parser with
|
|
||||||
Express.
|
|
||||||
|
|
||||||
```js
|
|
||||||
var express = require('express')
|
|
||||||
var bodyParser = require('body-parser')
|
|
||||||
|
|
||||||
var app = express()
|
|
||||||
|
|
||||||
// create application/json parser
|
|
||||||
var jsonParser = bodyParser.json()
|
|
||||||
|
|
||||||
// create application/x-www-form-urlencoded parser
|
|
||||||
var urlencodedParser = bodyParser.urlencoded({ extended: false })
|
|
||||||
|
|
||||||
// POST /login gets urlencoded bodies
|
|
||||||
app.post('/login', urlencodedParser, function (req, res) {
|
|
||||||
if (!req.body) return res.sendStatus(400)
|
|
||||||
res.send('welcome, ' + req.body.username)
|
|
||||||
})
|
|
||||||
|
|
||||||
// POST /api/users gets JSON bodies
|
|
||||||
app.post('/api/users', jsonParser, function (req, res) {
|
|
||||||
if (!req.body) return res.sendStatus(400)
|
|
||||||
// create user in req.body
|
|
||||||
})
|
|
||||||
```
|
|
||||||
|
|
||||||
### Change accepted type for parsers
|
|
||||||
|
|
||||||
All the parsers accept a `type` option which allows you to change the
|
|
||||||
`Content-Type` that the middleware will parse.
|
|
||||||
|
|
||||||
```js
|
|
||||||
var express = require('express')
|
|
||||||
var bodyParser = require('body-parser')
|
|
||||||
|
|
||||||
var app = express()
|
|
||||||
|
|
||||||
// parse various different custom JSON types as JSON
|
|
||||||
app.use(bodyParser.json({ type: 'application/*+json' }))
|
|
||||||
|
|
||||||
// parse some custom thing into a Buffer
|
|
||||||
app.use(bodyParser.raw({ type: 'application/vnd.custom-type' }))
|
|
||||||
|
|
||||||
// parse an HTML body into a string
|
|
||||||
app.use(bodyParser.text({ type: 'text/html' }))
|
|
||||||
```
|
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
[MIT](LICENSE)
|
|
||||||
|
|
||||||
[npm-image]: https://img.shields.io/npm/v/body-parser.svg
|
|
||||||
[npm-url]: https://npmjs.org/package/body-parser
|
|
||||||
[travis-image]: https://img.shields.io/travis/expressjs/body-parser/master.svg
|
|
||||||
[travis-url]: https://travis-ci.org/expressjs/body-parser
|
|
||||||
[coveralls-image]: https://img.shields.io/coveralls/expressjs/body-parser/master.svg
|
|
||||||
[coveralls-url]: https://coveralls.io/r/expressjs/body-parser?branch=master
|
|
||||||
[downloads-image]: https://img.shields.io/npm/dm/body-parser.svg
|
|
||||||
[downloads-url]: https://npmjs.org/package/body-parser
|
|
||||||
[gratipay-image]: https://img.shields.io/gratipay/dougwilson.svg
|
|
||||||
[gratipay-url]: https://www.gratipay.com/dougwilson/
|
|
||||||
157
GYMApp/GYMApp/node_modules/body-parser/index.js
generated
vendored
157
GYMApp/GYMApp/node_modules/body-parser/index.js
generated
vendored
@@ -1,157 +0,0 @@
|
|||||||
/*!
|
|
||||||
* body-parser
|
|
||||||
* Copyright(c) 2014-2015 Douglas Christopher Wilson
|
|
||||||
* MIT Licensed
|
|
||||||
*/
|
|
||||||
|
|
||||||
'use strict'
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Module dependencies.
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
|
|
||||||
var deprecate = require('depd')('body-parser')
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Cache of loaded parsers.
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
|
|
||||||
var parsers = Object.create(null)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @typedef Parsers
|
|
||||||
* @type {function}
|
|
||||||
* @property {function} json
|
|
||||||
* @property {function} raw
|
|
||||||
* @property {function} text
|
|
||||||
* @property {function} urlencoded
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Module exports.
|
|
||||||
* @type {Parsers}
|
|
||||||
*/
|
|
||||||
|
|
||||||
exports = module.exports = deprecate.function(bodyParser,
|
|
||||||
'bodyParser: use individual json/urlencoded middlewares')
|
|
||||||
|
|
||||||
/**
|
|
||||||
* JSON parser.
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
|
|
||||||
Object.defineProperty(exports, 'json', {
|
|
||||||
configurable: true,
|
|
||||||
enumerable: true,
|
|
||||||
get: createParserGetter('json')
|
|
||||||
})
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Raw parser.
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
|
|
||||||
Object.defineProperty(exports, 'raw', {
|
|
||||||
configurable: true,
|
|
||||||
enumerable: true,
|
|
||||||
get: createParserGetter('raw')
|
|
||||||
})
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Text parser.
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
|
|
||||||
Object.defineProperty(exports, 'text', {
|
|
||||||
configurable: true,
|
|
||||||
enumerable: true,
|
|
||||||
get: createParserGetter('text')
|
|
||||||
})
|
|
||||||
|
|
||||||
/**
|
|
||||||
* URL-encoded parser.
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
|
|
||||||
Object.defineProperty(exports, 'urlencoded', {
|
|
||||||
configurable: true,
|
|
||||||
enumerable: true,
|
|
||||||
get: createParserGetter('urlencoded')
|
|
||||||
})
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a middleware to parse json and urlencoded bodies.
|
|
||||||
*
|
|
||||||
* @param {object} [options]
|
|
||||||
* @return {function}
|
|
||||||
* @deprecated
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
|
|
||||||
function bodyParser (options) {
|
|
||||||
var opts = {}
|
|
||||||
|
|
||||||
// exclude type option
|
|
||||||
if (options) {
|
|
||||||
for (var prop in options) {
|
|
||||||
if (prop !== 'type') {
|
|
||||||
opts[prop] = options[prop]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var _urlencoded = exports.urlencoded(opts)
|
|
||||||
var _json = exports.json(opts)
|
|
||||||
|
|
||||||
return function bodyParser (req, res, next) {
|
|
||||||
_json(req, res, function (err) {
|
|
||||||
if (err) return next(err)
|
|
||||||
_urlencoded(req, res, next)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a getter for loading a parser.
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
|
|
||||||
function createParserGetter (name) {
|
|
||||||
return function get () {
|
|
||||||
return loadParser(name)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Load a parser module.
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
|
|
||||||
function loadParser (parserName) {
|
|
||||||
var parser = parsers[parserName]
|
|
||||||
|
|
||||||
if (parser !== undefined) {
|
|
||||||
return parser
|
|
||||||
}
|
|
||||||
|
|
||||||
// this uses a switch for static require analysis
|
|
||||||
switch (parserName) {
|
|
||||||
case 'json':
|
|
||||||
parser = require('./lib/types/json')
|
|
||||||
break
|
|
||||||
case 'raw':
|
|
||||||
parser = require('./lib/types/raw')
|
|
||||||
break
|
|
||||||
case 'text':
|
|
||||||
parser = require('./lib/types/text')
|
|
||||||
break
|
|
||||||
case 'urlencoded':
|
|
||||||
parser = require('./lib/types/urlencoded')
|
|
||||||
break
|
|
||||||
}
|
|
||||||
|
|
||||||
// store to prevent invoking require()
|
|
||||||
return (parsers[parserName] = parser)
|
|
||||||
}
|
|
||||||
188
GYMApp/GYMApp/node_modules/body-parser/lib/read.js
generated
vendored
188
GYMApp/GYMApp/node_modules/body-parser/lib/read.js
generated
vendored
@@ -1,188 +0,0 @@
|
|||||||
/*!
|
|
||||||
* body-parser
|
|
||||||
* Copyright(c) 2014-2015 Douglas Christopher Wilson
|
|
||||||
* MIT Licensed
|
|
||||||
*/
|
|
||||||
|
|
||||||
'use strict'
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Module dependencies.
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
|
|
||||||
var createError = require('http-errors')
|
|
||||||
var getBody = require('raw-body')
|
|
||||||
var iconv = require('iconv-lite')
|
|
||||||
var onFinished = require('on-finished')
|
|
||||||
var zlib = require('zlib')
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Module exports.
|
|
||||||
*/
|
|
||||||
|
|
||||||
module.exports = read
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Read a request into a buffer and parse.
|
|
||||||
*
|
|
||||||
* @param {object} req
|
|
||||||
* @param {object} res
|
|
||||||
* @param {function} next
|
|
||||||
* @param {function} parse
|
|
||||||
* @param {function} debug
|
|
||||||
* @param {object} [options]
|
|
||||||
* @api private
|
|
||||||
*/
|
|
||||||
|
|
||||||
function read (req, res, next, parse, debug, options) {
|
|
||||||
var length
|
|
||||||
var opts = options || {}
|
|
||||||
var stream
|
|
||||||
|
|
||||||
// flag as parsed
|
|
||||||
req._body = true
|
|
||||||
|
|
||||||
// read options
|
|
||||||
var encoding = opts.encoding !== null
|
|
||||||
? opts.encoding || 'utf-8'
|
|
||||||
: null
|
|
||||||
var verify = opts.verify
|
|
||||||
|
|
||||||
try {
|
|
||||||
// get the content stream
|
|
||||||
stream = contentstream(req, debug, opts.inflate)
|
|
||||||
length = stream.length
|
|
||||||
stream.length = undefined
|
|
||||||
} catch (err) {
|
|
||||||
return next(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
// set raw-body options
|
|
||||||
opts.length = length
|
|
||||||
opts.encoding = verify
|
|
||||||
? null
|
|
||||||
: encoding
|
|
||||||
|
|
||||||
// assert charset is supported
|
|
||||||
if (opts.encoding === null && encoding !== null && !iconv.encodingExists(encoding)) {
|
|
||||||
return next(createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', {
|
|
||||||
charset: encoding.toLowerCase()
|
|
||||||
}))
|
|
||||||
}
|
|
||||||
|
|
||||||
// read body
|
|
||||||
debug('read body')
|
|
||||||
getBody(stream, opts, function (err, body) {
|
|
||||||
if (err) {
|
|
||||||
// default to 400
|
|
||||||
setErrorStatus(err, 400)
|
|
||||||
|
|
||||||
// echo back charset
|
|
||||||
if (err.type === 'encoding.unsupported') {
|
|
||||||
err = createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', {
|
|
||||||
charset: encoding.toLowerCase()
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// read off entire request
|
|
||||||
stream.resume()
|
|
||||||
onFinished(req, function onfinished () {
|
|
||||||
next(err)
|
|
||||||
})
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// verify
|
|
||||||
if (verify) {
|
|
||||||
try {
|
|
||||||
debug('verify body')
|
|
||||||
verify(req, res, body, encoding)
|
|
||||||
} catch (err) {
|
|
||||||
// default to 403
|
|
||||||
setErrorStatus(err, 403)
|
|
||||||
next(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// parse
|
|
||||||
var str
|
|
||||||
try {
|
|
||||||
debug('parse body')
|
|
||||||
str = typeof body !== 'string' && encoding !== null
|
|
||||||
? iconv.decode(body, encoding)
|
|
||||||
: body
|
|
||||||
req.body = parse(str)
|
|
||||||
} catch (err) {
|
|
||||||
err.body = str === undefined
|
|
||||||
? body
|
|
||||||
: str
|
|
||||||
|
|
||||||
// default to 400
|
|
||||||
setErrorStatus(err, 400)
|
|
||||||
|
|
||||||
next(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
next()
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the content stream of the request.
|
|
||||||
*
|
|
||||||
* @param {object} req
|
|
||||||
* @param {function} debug
|
|
||||||
* @param {boolean} [inflate=true]
|
|
||||||
* @return {object}
|
|
||||||
* @api private
|
|
||||||
*/
|
|
||||||
|
|
||||||
function contentstream (req, debug, inflate) {
|
|
||||||
var encoding = (req.headers['content-encoding'] || 'identity').toLowerCase()
|
|
||||||
var length = req.headers['content-length']
|
|
||||||
var stream
|
|
||||||
|
|
||||||
debug('content-encoding "%s"', encoding)
|
|
||||||
|
|
||||||
if (inflate === false && encoding !== 'identity') {
|
|
||||||
throw createError(415, 'content encoding unsupported')
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (encoding) {
|
|
||||||
case 'deflate':
|
|
||||||
stream = zlib.createInflate()
|
|
||||||
debug('inflate body')
|
|
||||||
req.pipe(stream)
|
|
||||||
break
|
|
||||||
case 'gzip':
|
|
||||||
stream = zlib.createGunzip()
|
|
||||||
debug('gunzip body')
|
|
||||||
req.pipe(stream)
|
|
||||||
break
|
|
||||||
case 'identity':
|
|
||||||
stream = req
|
|
||||||
stream.length = length
|
|
||||||
break
|
|
||||||
default:
|
|
||||||
throw createError(415, 'unsupported content encoding "' + encoding + '"', {
|
|
||||||
encoding: encoding
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
return stream
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Set a status on an error object, if ones does not exist
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
|
|
||||||
function setErrorStatus (error, status) {
|
|
||||||
if (!error.status && !error.statusCode) {
|
|
||||||
error.status = status
|
|
||||||
error.statusCode = status
|
|
||||||
}
|
|
||||||
}
|
|
||||||
175
GYMApp/GYMApp/node_modules/body-parser/lib/types/json.js
generated
vendored
175
GYMApp/GYMApp/node_modules/body-parser/lib/types/json.js
generated
vendored
@@ -1,175 +0,0 @@
|
|||||||
/*!
|
|
||||||
* body-parser
|
|
||||||
* Copyright(c) 2014 Jonathan Ong
|
|
||||||
* Copyright(c) 2014-2015 Douglas Christopher Wilson
|
|
||||||
* MIT Licensed
|
|
||||||
*/
|
|
||||||
|
|
||||||
'use strict'
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Module dependencies.
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
|
|
||||||
var bytes = require('bytes')
|
|
||||||
var contentType = require('content-type')
|
|
||||||
var createError = require('http-errors')
|
|
||||||
var debug = require('debug')('body-parser:json')
|
|
||||||
var read = require('../read')
|
|
||||||
var typeis = require('type-is')
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Module exports.
|
|
||||||
*/
|
|
||||||
|
|
||||||
module.exports = json
|
|
||||||
|
|
||||||
/**
|
|
||||||
* RegExp to match the first non-space in a string.
|
|
||||||
*
|
|
||||||
* Allowed whitespace is defined in RFC 7159:
|
|
||||||
*
|
|
||||||
* ws = *(
|
|
||||||
* %x20 / ; Space
|
|
||||||
* %x09 / ; Horizontal tab
|
|
||||||
* %x0A / ; Line feed or New line
|
|
||||||
* %x0D ) ; Carriage return
|
|
||||||
*/
|
|
||||||
|
|
||||||
var FIRST_CHAR_REGEXP = /^[\x20\x09\x0a\x0d]*(.)/ // eslint-disable-line no-control-regex
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a middleware to parse JSON bodies.
|
|
||||||
*
|
|
||||||
* @param {object} [options]
|
|
||||||
* @return {function}
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
|
|
||||||
function json (options) {
|
|
||||||
var opts = options || {}
|
|
||||||
|
|
||||||
var limit = typeof opts.limit !== 'number'
|
|
||||||
? bytes.parse(opts.limit || '100kb')
|
|
||||||
: opts.limit
|
|
||||||
var inflate = opts.inflate !== false
|
|
||||||
var reviver = opts.reviver
|
|
||||||
var strict = opts.strict !== false
|
|
||||||
var type = opts.type || 'application/json'
|
|
||||||
var verify = opts.verify || false
|
|
||||||
|
|
||||||
if (verify !== false && typeof verify !== 'function') {
|
|
||||||
throw new TypeError('option verify must be function')
|
|
||||||
}
|
|
||||||
|
|
||||||
// create the appropriate type checking function
|
|
||||||
var shouldParse = typeof type !== 'function'
|
|
||||||
? typeChecker(type)
|
|
||||||
: type
|
|
||||||
|
|
||||||
function parse (body) {
|
|
||||||
if (body.length === 0) {
|
|
||||||
// special-case empty json body, as it's a common client-side mistake
|
|
||||||
// TODO: maybe make this configurable or part of "strict" option
|
|
||||||
return {}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (strict) {
|
|
||||||
var first = firstchar(body)
|
|
||||||
|
|
||||||
if (first !== '{' && first !== '[') {
|
|
||||||
debug('strict violation')
|
|
||||||
throw new SyntaxError('Unexpected token ' + first)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
debug('parse json')
|
|
||||||
return JSON.parse(body, reviver)
|
|
||||||
}
|
|
||||||
|
|
||||||
return function jsonParser (req, res, next) {
|
|
||||||
if (req._body) {
|
|
||||||
debug('body already parsed')
|
|
||||||
next()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
req.body = req.body || {}
|
|
||||||
|
|
||||||
// skip requests without bodies
|
|
||||||
if (!typeis.hasBody(req)) {
|
|
||||||
debug('skip empty body')
|
|
||||||
next()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
debug('content-type %j', req.headers['content-type'])
|
|
||||||
|
|
||||||
// determine if request should be parsed
|
|
||||||
if (!shouldParse(req)) {
|
|
||||||
debug('skip parsing')
|
|
||||||
next()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// assert charset per RFC 7159 sec 8.1
|
|
||||||
var charset = getCharset(req) || 'utf-8'
|
|
||||||
if (charset.substr(0, 4) !== 'utf-') {
|
|
||||||
debug('invalid charset')
|
|
||||||
next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', {
|
|
||||||
charset: charset
|
|
||||||
}))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// read
|
|
||||||
read(req, res, next, parse, debug, {
|
|
||||||
encoding: charset,
|
|
||||||
inflate: inflate,
|
|
||||||
limit: limit,
|
|
||||||
verify: verify
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the first non-whitespace character in a string.
|
|
||||||
*
|
|
||||||
* @param {string} str
|
|
||||||
* @return {function}
|
|
||||||
* @api public
|
|
||||||
*/
|
|
||||||
|
|
||||||
function firstchar (str) {
|
|
||||||
var match = FIRST_CHAR_REGEXP.exec(str)
|
|
||||||
return match ? match[1] : ''
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the charset of a request.
|
|
||||||
*
|
|
||||||
* @param {object} req
|
|
||||||
* @api private
|
|
||||||
*/
|
|
||||||
|
|
||||||
function getCharset (req) {
|
|
||||||
try {
|
|
||||||
return contentType.parse(req).parameters.charset.toLowerCase()
|
|
||||||
} catch (e) {
|
|
||||||
return undefined
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the simple type checker.
|
|
||||||
*
|
|
||||||
* @param {string} type
|
|
||||||
* @return {function}
|
|
||||||
*/
|
|
||||||
|
|
||||||
function typeChecker (type) {
|
|
||||||
return function checkType (req) {
|
|
||||||
return Boolean(typeis(req, type))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
101
GYMApp/GYMApp/node_modules/body-parser/lib/types/raw.js
generated
vendored
101
GYMApp/GYMApp/node_modules/body-parser/lib/types/raw.js
generated
vendored
@@ -1,101 +0,0 @@
|
|||||||
/*!
|
|
||||||
* body-parser
|
|
||||||
* Copyright(c) 2014-2015 Douglas Christopher Wilson
|
|
||||||
* MIT Licensed
|
|
||||||
*/
|
|
||||||
|
|
||||||
'use strict'
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Module dependencies.
|
|
||||||
*/
|
|
||||||
|
|
||||||
var bytes = require('bytes')
|
|
||||||
var debug = require('debug')('body-parser:raw')
|
|
||||||
var read = require('../read')
|
|
||||||
var typeis = require('type-is')
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Module exports.
|
|
||||||
*/
|
|
||||||
|
|
||||||
module.exports = raw
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a middleware to parse raw bodies.
|
|
||||||
*
|
|
||||||
* @param {object} [options]
|
|
||||||
* @return {function}
|
|
||||||
* @api public
|
|
||||||
*/
|
|
||||||
|
|
||||||
function raw (options) {
|
|
||||||
var opts = options || {}
|
|
||||||
|
|
||||||
var inflate = opts.inflate !== false
|
|
||||||
var limit = typeof opts.limit !== 'number'
|
|
||||||
? bytes.parse(opts.limit || '100kb')
|
|
||||||
: opts.limit
|
|
||||||
var type = opts.type || 'application/octet-stream'
|
|
||||||
var verify = opts.verify || false
|
|
||||||
|
|
||||||
if (verify !== false && typeof verify !== 'function') {
|
|
||||||
throw new TypeError('option verify must be function')
|
|
||||||
}
|
|
||||||
|
|
||||||
// create the appropriate type checking function
|
|
||||||
var shouldParse = typeof type !== 'function'
|
|
||||||
? typeChecker(type)
|
|
||||||
: type
|
|
||||||
|
|
||||||
function parse (buf) {
|
|
||||||
return buf
|
|
||||||
}
|
|
||||||
|
|
||||||
return function rawParser (req, res, next) {
|
|
||||||
if (req._body) {
|
|
||||||
debug('body already parsed')
|
|
||||||
next()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
req.body = req.body || {}
|
|
||||||
|
|
||||||
// skip requests without bodies
|
|
||||||
if (!typeis.hasBody(req)) {
|
|
||||||
debug('skip empty body')
|
|
||||||
next()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
debug('content-type %j', req.headers['content-type'])
|
|
||||||
|
|
||||||
// determine if request should be parsed
|
|
||||||
if (!shouldParse(req)) {
|
|
||||||
debug('skip parsing')
|
|
||||||
next()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// read
|
|
||||||
read(req, res, next, parse, debug, {
|
|
||||||
encoding: null,
|
|
||||||
inflate: inflate,
|
|
||||||
limit: limit,
|
|
||||||
verify: verify
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the simple type checker.
|
|
||||||
*
|
|
||||||
* @param {string} type
|
|
||||||
* @return {function}
|
|
||||||
*/
|
|
||||||
|
|
||||||
function typeChecker (type) {
|
|
||||||
return function checkType (req) {
|
|
||||||
return Boolean(typeis(req, type))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
121
GYMApp/GYMApp/node_modules/body-parser/lib/types/text.js
generated
vendored
121
GYMApp/GYMApp/node_modules/body-parser/lib/types/text.js
generated
vendored
@@ -1,121 +0,0 @@
|
|||||||
/*!
|
|
||||||
* body-parser
|
|
||||||
* Copyright(c) 2014-2015 Douglas Christopher Wilson
|
|
||||||
* MIT Licensed
|
|
||||||
*/
|
|
||||||
|
|
||||||
'use strict'
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Module dependencies.
|
|
||||||
*/
|
|
||||||
|
|
||||||
var bytes = require('bytes')
|
|
||||||
var contentType = require('content-type')
|
|
||||||
var debug = require('debug')('body-parser:text')
|
|
||||||
var read = require('../read')
|
|
||||||
var typeis = require('type-is')
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Module exports.
|
|
||||||
*/
|
|
||||||
|
|
||||||
module.exports = text
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a middleware to parse text bodies.
|
|
||||||
*
|
|
||||||
* @param {object} [options]
|
|
||||||
* @return {function}
|
|
||||||
* @api public
|
|
||||||
*/
|
|
||||||
|
|
||||||
function text (options) {
|
|
||||||
var opts = options || {}
|
|
||||||
|
|
||||||
var defaultCharset = opts.defaultCharset || 'utf-8'
|
|
||||||
var inflate = opts.inflate !== false
|
|
||||||
var limit = typeof opts.limit !== 'number'
|
|
||||||
? bytes.parse(opts.limit || '100kb')
|
|
||||||
: opts.limit
|
|
||||||
var type = opts.type || 'text/plain'
|
|
||||||
var verify = opts.verify || false
|
|
||||||
|
|
||||||
if (verify !== false && typeof verify !== 'function') {
|
|
||||||
throw new TypeError('option verify must be function')
|
|
||||||
}
|
|
||||||
|
|
||||||
// create the appropriate type checking function
|
|
||||||
var shouldParse = typeof type !== 'function'
|
|
||||||
? typeChecker(type)
|
|
||||||
: type
|
|
||||||
|
|
||||||
function parse (buf) {
|
|
||||||
return buf
|
|
||||||
}
|
|
||||||
|
|
||||||
return function textParser (req, res, next) {
|
|
||||||
if (req._body) {
|
|
||||||
debug('body already parsed')
|
|
||||||
next()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
req.body = req.body || {}
|
|
||||||
|
|
||||||
// skip requests without bodies
|
|
||||||
if (!typeis.hasBody(req)) {
|
|
||||||
debug('skip empty body')
|
|
||||||
next()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
debug('content-type %j', req.headers['content-type'])
|
|
||||||
|
|
||||||
// determine if request should be parsed
|
|
||||||
if (!shouldParse(req)) {
|
|
||||||
debug('skip parsing')
|
|
||||||
next()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// get charset
|
|
||||||
var charset = getCharset(req) || defaultCharset
|
|
||||||
|
|
||||||
// read
|
|
||||||
read(req, res, next, parse, debug, {
|
|
||||||
encoding: charset,
|
|
||||||
inflate: inflate,
|
|
||||||
limit: limit,
|
|
||||||
verify: verify
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the charset of a request.
|
|
||||||
*
|
|
||||||
* @param {object} req
|
|
||||||
* @api private
|
|
||||||
*/
|
|
||||||
|
|
||||||
function getCharset (req) {
|
|
||||||
try {
|
|
||||||
return contentType.parse(req).parameters.charset.toLowerCase()
|
|
||||||
} catch (e) {
|
|
||||||
return undefined
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the simple type checker.
|
|
||||||
*
|
|
||||||
* @param {string} type
|
|
||||||
* @return {function}
|
|
||||||
*/
|
|
||||||
|
|
||||||
function typeChecker (type) {
|
|
||||||
return function checkType (req) {
|
|
||||||
return Boolean(typeis(req, type))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
279
GYMApp/GYMApp/node_modules/body-parser/lib/types/urlencoded.js
generated
vendored
279
GYMApp/GYMApp/node_modules/body-parser/lib/types/urlencoded.js
generated
vendored
@@ -1,279 +0,0 @@
|
|||||||
/*!
|
|
||||||
* body-parser
|
|
||||||
* Copyright(c) 2014 Jonathan Ong
|
|
||||||
* Copyright(c) 2014-2015 Douglas Christopher Wilson
|
|
||||||
* MIT Licensed
|
|
||||||
*/
|
|
||||||
|
|
||||||
'use strict'
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Module dependencies.
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
|
|
||||||
var bytes = require('bytes')
|
|
||||||
var contentType = require('content-type')
|
|
||||||
var createError = require('http-errors')
|
|
||||||
var debug = require('debug')('body-parser:urlencoded')
|
|
||||||
var deprecate = require('depd')('body-parser')
|
|
||||||
var read = require('../read')
|
|
||||||
var typeis = require('type-is')
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Module exports.
|
|
||||||
*/
|
|
||||||
|
|
||||||
module.exports = urlencoded
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Cache of parser modules.
|
|
||||||
*/
|
|
||||||
|
|
||||||
var parsers = Object.create(null)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a middleware to parse urlencoded bodies.
|
|
||||||
*
|
|
||||||
* @param {object} [options]
|
|
||||||
* @return {function}
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
|
|
||||||
function urlencoded (options) {
|
|
||||||
var opts = options || {}
|
|
||||||
|
|
||||||
// notice because option default will flip in next major
|
|
||||||
if (opts.extended === undefined) {
|
|
||||||
deprecate('undefined extended: provide extended option')
|
|
||||||
}
|
|
||||||
|
|
||||||
var extended = opts.extended !== false
|
|
||||||
var inflate = opts.inflate !== false
|
|
||||||
var limit = typeof opts.limit !== 'number'
|
|
||||||
? bytes.parse(opts.limit || '100kb')
|
|
||||||
: opts.limit
|
|
||||||
var type = opts.type || 'application/x-www-form-urlencoded'
|
|
||||||
var verify = opts.verify || false
|
|
||||||
|
|
||||||
if (verify !== false && typeof verify !== 'function') {
|
|
||||||
throw new TypeError('option verify must be function')
|
|
||||||
}
|
|
||||||
|
|
||||||
// create the appropriate query parser
|
|
||||||
var queryparse = extended
|
|
||||||
? extendedparser(opts)
|
|
||||||
: simpleparser(opts)
|
|
||||||
|
|
||||||
// create the appropriate type checking function
|
|
||||||
var shouldParse = typeof type !== 'function'
|
|
||||||
? typeChecker(type)
|
|
||||||
: type
|
|
||||||
|
|
||||||
function parse (body) {
|
|
||||||
return body.length
|
|
||||||
? queryparse(body)
|
|
||||||
: {}
|
|
||||||
}
|
|
||||||
|
|
||||||
return function urlencodedParser (req, res, next) {
|
|
||||||
if (req._body) {
|
|
||||||
debug('body already parsed')
|
|
||||||
next()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
req.body = req.body || {}
|
|
||||||
|
|
||||||
// skip requests without bodies
|
|
||||||
if (!typeis.hasBody(req)) {
|
|
||||||
debug('skip empty body')
|
|
||||||
next()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
debug('content-type %j', req.headers['content-type'])
|
|
||||||
|
|
||||||
// determine if request should be parsed
|
|
||||||
if (!shouldParse(req)) {
|
|
||||||
debug('skip parsing')
|
|
||||||
next()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// assert charset
|
|
||||||
var charset = getCharset(req) || 'utf-8'
|
|
||||||
if (charset !== 'utf-8') {
|
|
||||||
debug('invalid charset')
|
|
||||||
next(createError(415, 'unsupported charset "' + charset.toUpperCase() + '"', {
|
|
||||||
charset: charset
|
|
||||||
}))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
// read
|
|
||||||
read(req, res, next, parse, debug, {
|
|
||||||
debug: debug,
|
|
||||||
encoding: charset,
|
|
||||||
inflate: inflate,
|
|
||||||
limit: limit,
|
|
||||||
verify: verify
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the extended query parser.
|
|
||||||
*
|
|
||||||
* @param {object} options
|
|
||||||
*/
|
|
||||||
|
|
||||||
function extendedparser (options) {
|
|
||||||
var parameterLimit = options.parameterLimit !== undefined
|
|
||||||
? options.parameterLimit
|
|
||||||
: 1000
|
|
||||||
var parse = parser('qs')
|
|
||||||
|
|
||||||
if (isNaN(parameterLimit) || parameterLimit < 1) {
|
|
||||||
throw new TypeError('option parameterLimit must be a positive number')
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isFinite(parameterLimit)) {
|
|
||||||
parameterLimit = parameterLimit | 0
|
|
||||||
}
|
|
||||||
|
|
||||||
return function queryparse (body) {
|
|
||||||
var paramCount = parameterCount(body, parameterLimit)
|
|
||||||
|
|
||||||
if (paramCount === undefined) {
|
|
||||||
debug('too many parameters')
|
|
||||||
throw createError(413, 'too many parameters')
|
|
||||||
}
|
|
||||||
|
|
||||||
var arrayLimit = Math.max(100, paramCount)
|
|
||||||
|
|
||||||
debug('parse extended urlencoding')
|
|
||||||
return parse(body, {
|
|
||||||
allowPrototypes: true,
|
|
||||||
arrayLimit: arrayLimit,
|
|
||||||
depth: Infinity,
|
|
||||||
parameterLimit: parameterLimit
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the charset of a request.
|
|
||||||
*
|
|
||||||
* @param {object} req
|
|
||||||
* @api private
|
|
||||||
*/
|
|
||||||
|
|
||||||
function getCharset (req) {
|
|
||||||
try {
|
|
||||||
return contentType.parse(req).parameters.charset.toLowerCase()
|
|
||||||
} catch (e) {
|
|
||||||
return undefined
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Count the number of parameters, stopping once limit reached
|
|
||||||
*
|
|
||||||
* @param {string} body
|
|
||||||
* @param {number} limit
|
|
||||||
* @api private
|
|
||||||
*/
|
|
||||||
|
|
||||||
function parameterCount (body, limit) {
|
|
||||||
var count = 0
|
|
||||||
var index = 0
|
|
||||||
|
|
||||||
while ((index = body.indexOf('&', index)) !== -1) {
|
|
||||||
count++
|
|
||||||
index++
|
|
||||||
|
|
||||||
if (count === limit) {
|
|
||||||
return undefined
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return count
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get parser for module name dynamically.
|
|
||||||
*
|
|
||||||
* @param {string} name
|
|
||||||
* @return {function}
|
|
||||||
* @api private
|
|
||||||
*/
|
|
||||||
|
|
||||||
function parser (name) {
|
|
||||||
var mod = parsers[name]
|
|
||||||
|
|
||||||
if (mod !== undefined) {
|
|
||||||
return mod.parse
|
|
||||||
}
|
|
||||||
|
|
||||||
// this uses a switch for static require analysis
|
|
||||||
switch (name) {
|
|
||||||
case 'qs':
|
|
||||||
mod = require('qs')
|
|
||||||
break
|
|
||||||
case 'querystring':
|
|
||||||
mod = require('querystring')
|
|
||||||
break
|
|
||||||
}
|
|
||||||
|
|
||||||
// store to prevent invoking require()
|
|
||||||
parsers[name] = mod
|
|
||||||
|
|
||||||
return mod.parse
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the simple query parser.
|
|
||||||
*
|
|
||||||
* @param {object} options
|
|
||||||
*/
|
|
||||||
|
|
||||||
function simpleparser (options) {
|
|
||||||
var parameterLimit = options.parameterLimit !== undefined
|
|
||||||
? options.parameterLimit
|
|
||||||
: 1000
|
|
||||||
var parse = parser('querystring')
|
|
||||||
|
|
||||||
if (isNaN(parameterLimit) || parameterLimit < 1) {
|
|
||||||
throw new TypeError('option parameterLimit must be a positive number')
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isFinite(parameterLimit)) {
|
|
||||||
parameterLimit = parameterLimit | 0
|
|
||||||
}
|
|
||||||
|
|
||||||
return function queryparse (body) {
|
|
||||||
var paramCount = parameterCount(body, parameterLimit)
|
|
||||||
|
|
||||||
if (paramCount === undefined) {
|
|
||||||
debug('too many parameters')
|
|
||||||
throw createError(413, 'too many parameters')
|
|
||||||
}
|
|
||||||
|
|
||||||
debug('parse urlencoding')
|
|
||||||
return parse(body, undefined, undefined, {maxKeys: parameterLimit})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the simple type checker.
|
|
||||||
*
|
|
||||||
* @param {string} type
|
|
||||||
* @return {function}
|
|
||||||
*/
|
|
||||||
|
|
||||||
function typeChecker (type) {
|
|
||||||
return function checkType (req) {
|
|
||||||
return Boolean(typeis(req, type))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
1
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/.coveralls.yml
generated
vendored
1
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/.coveralls.yml
generated
vendored
@@ -1 +0,0 @@
|
|||||||
repo_token: SIAeZjKYlHK74rbcFvNHMUzjRiMpflxve
|
|
||||||
11
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/.eslintrc
generated
vendored
11
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/.eslintrc
generated
vendored
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
"env": {
|
|
||||||
"browser": true,
|
|
||||||
"node": true
|
|
||||||
},
|
|
||||||
"rules": {
|
|
||||||
"no-console": 0,
|
|
||||||
"no-empty": [1, { "allowEmptyCatch": true }]
|
|
||||||
},
|
|
||||||
"extends": "eslint:recommended"
|
|
||||||
}
|
|
||||||
8
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/.npmignore
generated
vendored
8
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/.npmignore
generated
vendored
@@ -1,8 +0,0 @@
|
|||||||
support
|
|
||||||
test
|
|
||||||
examples
|
|
||||||
example
|
|
||||||
*.sock
|
|
||||||
dist
|
|
||||||
yarn.lock
|
|
||||||
coverage
|
|
||||||
14
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/.travis.yml
generated
vendored
14
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/.travis.yml
generated
vendored
@@ -1,14 +0,0 @@
|
|||||||
|
|
||||||
language: node_js
|
|
||||||
node_js:
|
|
||||||
- "6"
|
|
||||||
- "5"
|
|
||||||
- "4"
|
|
||||||
|
|
||||||
install:
|
|
||||||
- make node_modules
|
|
||||||
|
|
||||||
script:
|
|
||||||
- make lint
|
|
||||||
- make test
|
|
||||||
- make coveralls
|
|
||||||
309
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/CHANGELOG.md
generated
vendored
309
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/CHANGELOG.md
generated
vendored
@@ -1,309 +0,0 @@
|
|||||||
|
|
||||||
2.6.0 / 2016-12-28
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Fix: added better null pointer checks for browser useColors (@thebigredgeek)
|
|
||||||
* Improvement: removed explicit `window.debug` export (#404, @tootallnate)
|
|
||||||
* Improvement: deprecated `DEBUG_FD` environment variable (#405, @tootallnate)
|
|
||||||
|
|
||||||
2.5.2 / 2016-12-25
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Fix: reference error on window within webworkers (#393, @KlausTrainer)
|
|
||||||
* Docs: fixed README typo (#391, @lurch)
|
|
||||||
* Docs: added notice about v3 api discussion (@thebigredgeek)
|
|
||||||
|
|
||||||
2.5.1 / 2016-12-20
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Fix: babel-core compatibility
|
|
||||||
|
|
||||||
2.5.0 / 2016-12-20
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Fix: wrong reference in bower file (@thebigredgeek)
|
|
||||||
* Fix: webworker compatibility (@thebigredgeek)
|
|
||||||
* Fix: output formatting issue (#388, @kribblo)
|
|
||||||
* Fix: babel-loader compatibility (#383, @escwald)
|
|
||||||
* Misc: removed built asset from repo and publications (@thebigredgeek)
|
|
||||||
* Misc: moved source files to /src (#378, @yamikuronue)
|
|
||||||
* Test: added karma integration and replaced babel with browserify for browser tests (#378, @yamikuronue)
|
|
||||||
* Test: coveralls integration (#378, @yamikuronue)
|
|
||||||
* Docs: simplified language in the opening paragraph (#373, @yamikuronue)
|
|
||||||
|
|
||||||
2.4.5 / 2016-12-17
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Fix: `navigator` undefined in Rhino (#376, @jochenberger)
|
|
||||||
* Fix: custom log function (#379, @hsiliev)
|
|
||||||
* Improvement: bit of cleanup + linting fixes (@thebigredgeek)
|
|
||||||
* Improvement: rm non-maintainted `dist/` dir (#375, @freewil)
|
|
||||||
* Docs: simplified language in the opening paragraph. (#373, @yamikuronue)
|
|
||||||
|
|
||||||
2.4.4 / 2016-12-14
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Fix: work around debug being loaded in preload scripts for electron (#368, @paulcbetts)
|
|
||||||
|
|
||||||
2.4.3 / 2016-12-14
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Fix: navigation.userAgent error for react native (#364, @escwald)
|
|
||||||
|
|
||||||
2.4.2 / 2016-12-14
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Fix: browser colors (#367, @tootallnate)
|
|
||||||
* Misc: travis ci integration (@thebigredgeek)
|
|
||||||
* Misc: added linting and testing boilerplate with sanity check (@thebigredgeek)
|
|
||||||
|
|
||||||
2.4.1 / 2016-12-13
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Fix: typo that broke the package (#356)
|
|
||||||
|
|
||||||
2.4.0 / 2016-12-13
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Fix: bower.json references unbuilt src entry point (#342, @justmatt)
|
|
||||||
* Fix: revert "handle regex special characters" (@tootallnate)
|
|
||||||
* Feature: configurable util.inspect()`options for NodeJS (#327, @tootallnate)
|
|
||||||
* Feature: %O`(big O) pretty-prints objects (#322, @tootallnate)
|
|
||||||
* Improvement: allow colors in workers (#335, @botverse)
|
|
||||||
* Improvement: use same color for same namespace. (#338, @lchenay)
|
|
||||||
|
|
||||||
2.3.3 / 2016-11-09
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Fix: Catch `JSON.stringify()` errors (#195, Jovan Alleyne)
|
|
||||||
* Fix: Returning `localStorage` saved values (#331, Levi Thomason)
|
|
||||||
* Improvement: Don't create an empty object when no `process` (Nathan Rajlich)
|
|
||||||
|
|
||||||
2.3.2 / 2016-11-09
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Fix: be super-safe in index.js as well (@TooTallNate)
|
|
||||||
* Fix: should check whether process exists (Tom Newby)
|
|
||||||
|
|
||||||
2.3.1 / 2016-11-09
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Fix: Added electron compatibility (#324, @paulcbetts)
|
|
||||||
* Improvement: Added performance optimizations (@tootallnate)
|
|
||||||
* Readme: Corrected PowerShell environment variable example (#252, @gimre)
|
|
||||||
* Misc: Removed yarn lock file from source control (#321, @fengmk2)
|
|
||||||
|
|
||||||
2.3.0 / 2016-11-07
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Fix: Consistent placement of ms diff at end of output (#215, @gorangajic)
|
|
||||||
* Fix: Escaping of regex special characters in namespace strings (#250, @zacronos)
|
|
||||||
* Fix: Fixed bug causing crash on react-native (#282, @vkarpov15)
|
|
||||||
* Feature: Enabled ES6+ compatible import via default export (#212 @bucaran)
|
|
||||||
* Feature: Added %O formatter to reflect Chrome's console.log capability (#279, @oncletom)
|
|
||||||
* Package: Update "ms" to 0.7.2 (#315, @DevSide)
|
|
||||||
* Package: removed superfluous version property from bower.json (#207 @kkirsche)
|
|
||||||
* Readme: fix USE_COLORS to DEBUG_COLORS
|
|
||||||
* Readme: Doc fixes for format string sugar (#269, @mlucool)
|
|
||||||
* Readme: Updated docs for DEBUG_FD and DEBUG_COLORS environment variables (#232, @mattlyons0)
|
|
||||||
* Readme: doc fixes for PowerShell (#271 #243, @exoticknight @unreadable)
|
|
||||||
* Readme: better docs for browser support (#224, @matthewmueller)
|
|
||||||
* Tooling: Added yarn integration for development (#317, @thebigredgeek)
|
|
||||||
* Misc: Renamed History.md to CHANGELOG.md (@thebigredgeek)
|
|
||||||
* Misc: Added license file (#226 #274, @CantemoInternal @sdaitzman)
|
|
||||||
* Misc: Updated contributors (@thebigredgeek)
|
|
||||||
|
|
||||||
2.2.0 / 2015-05-09
|
|
||||||
==================
|
|
||||||
|
|
||||||
* package: update "ms" to v0.7.1 (#202, @dougwilson)
|
|
||||||
* README: add logging to file example (#193, @DanielOchoa)
|
|
||||||
* README: fixed a typo (#191, @amir-s)
|
|
||||||
* browser: expose `storage` (#190, @stephenmathieson)
|
|
||||||
* Makefile: add a `distclean` target (#189, @stephenmathieson)
|
|
||||||
|
|
||||||
2.1.3 / 2015-03-13
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Updated stdout/stderr example (#186)
|
|
||||||
* Updated example/stdout.js to match debug current behaviour
|
|
||||||
* Renamed example/stderr.js to stdout.js
|
|
||||||
* Update Readme.md (#184)
|
|
||||||
* replace high intensity foreground color for bold (#182, #183)
|
|
||||||
|
|
||||||
2.1.2 / 2015-03-01
|
|
||||||
==================
|
|
||||||
|
|
||||||
* dist: recompile
|
|
||||||
* update "ms" to v0.7.0
|
|
||||||
* package: update "browserify" to v9.0.3
|
|
||||||
* component: fix "ms.js" repo location
|
|
||||||
* changed bower package name
|
|
||||||
* updated documentation about using debug in a browser
|
|
||||||
* fix: security error on safari (#167, #168, @yields)
|
|
||||||
|
|
||||||
2.1.1 / 2014-12-29
|
|
||||||
==================
|
|
||||||
|
|
||||||
* browser: use `typeof` to check for `console` existence
|
|
||||||
* browser: check for `console.log` truthiness (fix IE 8/9)
|
|
||||||
* browser: add support for Chrome apps
|
|
||||||
* Readme: added Windows usage remarks
|
|
||||||
* Add `bower.json` to properly support bower install
|
|
||||||
|
|
||||||
2.1.0 / 2014-10-15
|
|
||||||
==================
|
|
||||||
|
|
||||||
* node: implement `DEBUG_FD` env variable support
|
|
||||||
* package: update "browserify" to v6.1.0
|
|
||||||
* package: add "license" field to package.json (#135, @panuhorsmalahti)
|
|
||||||
|
|
||||||
2.0.0 / 2014-09-01
|
|
||||||
==================
|
|
||||||
|
|
||||||
* package: update "browserify" to v5.11.0
|
|
||||||
* node: use stderr rather than stdout for logging (#29, @stephenmathieson)
|
|
||||||
|
|
||||||
1.0.4 / 2014-07-15
|
|
||||||
==================
|
|
||||||
|
|
||||||
* dist: recompile
|
|
||||||
* example: remove `console.info()` log usage
|
|
||||||
* example: add "Content-Type" UTF-8 header to browser example
|
|
||||||
* browser: place %c marker after the space character
|
|
||||||
* browser: reset the "content" color via `color: inherit`
|
|
||||||
* browser: add colors support for Firefox >= v31
|
|
||||||
* debug: prefer an instance `log()` function over the global one (#119)
|
|
||||||
* Readme: update documentation about styled console logs for FF v31 (#116, @wryk)
|
|
||||||
|
|
||||||
1.0.3 / 2014-07-09
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Add support for multiple wildcards in namespaces (#122, @seegno)
|
|
||||||
* browser: fix lint
|
|
||||||
|
|
||||||
1.0.2 / 2014-06-10
|
|
||||||
==================
|
|
||||||
|
|
||||||
* browser: update color palette (#113, @gscottolson)
|
|
||||||
* common: make console logging function configurable (#108, @timoxley)
|
|
||||||
* node: fix %o colors on old node <= 0.8.x
|
|
||||||
* Makefile: find node path using shell/which (#109, @timoxley)
|
|
||||||
|
|
||||||
1.0.1 / 2014-06-06
|
|
||||||
==================
|
|
||||||
|
|
||||||
* browser: use `removeItem()` to clear localStorage
|
|
||||||
* browser, node: don't set DEBUG if namespaces is undefined (#107, @leedm777)
|
|
||||||
* package: add "contributors" section
|
|
||||||
* node: fix comment typo
|
|
||||||
* README: list authors
|
|
||||||
|
|
||||||
1.0.0 / 2014-06-04
|
|
||||||
==================
|
|
||||||
|
|
||||||
* make ms diff be global, not be scope
|
|
||||||
* debug: ignore empty strings in enable()
|
|
||||||
* node: make DEBUG_COLORS able to disable coloring
|
|
||||||
* *: export the `colors` array
|
|
||||||
* npmignore: don't publish the `dist` dir
|
|
||||||
* Makefile: refactor to use browserify
|
|
||||||
* package: add "browserify" as a dev dependency
|
|
||||||
* Readme: add Web Inspector Colors section
|
|
||||||
* node: reset terminal color for the debug content
|
|
||||||
* node: map "%o" to `util.inspect()`
|
|
||||||
* browser: map "%j" to `JSON.stringify()`
|
|
||||||
* debug: add custom "formatters"
|
|
||||||
* debug: use "ms" module for humanizing the diff
|
|
||||||
* Readme: add "bash" syntax highlighting
|
|
||||||
* browser: add Firebug color support
|
|
||||||
* browser: add colors for WebKit browsers
|
|
||||||
* node: apply log to `console`
|
|
||||||
* rewrite: abstract common logic for Node & browsers
|
|
||||||
* add .jshintrc file
|
|
||||||
|
|
||||||
0.8.1 / 2014-04-14
|
|
||||||
==================
|
|
||||||
|
|
||||||
* package: re-add the "component" section
|
|
||||||
|
|
||||||
0.8.0 / 2014-03-30
|
|
||||||
==================
|
|
||||||
|
|
||||||
* add `enable()` method for nodejs. Closes #27
|
|
||||||
* change from stderr to stdout
|
|
||||||
* remove unnecessary index.js file
|
|
||||||
|
|
||||||
0.7.4 / 2013-11-13
|
|
||||||
==================
|
|
||||||
|
|
||||||
* remove "browserify" key from package.json (fixes something in browserify)
|
|
||||||
|
|
||||||
0.7.3 / 2013-10-30
|
|
||||||
==================
|
|
||||||
|
|
||||||
* fix: catch localStorage security error when cookies are blocked (Chrome)
|
|
||||||
* add debug(err) support. Closes #46
|
|
||||||
* add .browser prop to package.json. Closes #42
|
|
||||||
|
|
||||||
0.7.2 / 2013-02-06
|
|
||||||
==================
|
|
||||||
|
|
||||||
* fix package.json
|
|
||||||
* fix: Mobile Safari (private mode) is broken with debug
|
|
||||||
* fix: Use unicode to send escape character to shell instead of octal to work with strict mode javascript
|
|
||||||
|
|
||||||
0.7.1 / 2013-02-05
|
|
||||||
==================
|
|
||||||
|
|
||||||
* add repository URL to package.json
|
|
||||||
* add DEBUG_COLORED to force colored output
|
|
||||||
* add browserify support
|
|
||||||
* fix component. Closes #24
|
|
||||||
|
|
||||||
0.7.0 / 2012-05-04
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Added .component to package.json
|
|
||||||
* Added debug.component.js build
|
|
||||||
|
|
||||||
0.6.0 / 2012-03-16
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Added support for "-" prefix in DEBUG [Vinay Pulim]
|
|
||||||
* Added `.enabled` flag to the node version [TooTallNate]
|
|
||||||
|
|
||||||
0.5.0 / 2012-02-02
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Added: humanize diffs. Closes #8
|
|
||||||
* Added `debug.disable()` to the CS variant
|
|
||||||
* Removed padding. Closes #10
|
|
||||||
* Fixed: persist client-side variant again. Closes #9
|
|
||||||
|
|
||||||
0.4.0 / 2012-02-01
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Added browser variant support for older browsers [TooTallNate]
|
|
||||||
* Added `debug.enable('project:*')` to browser variant [TooTallNate]
|
|
||||||
* Added padding to diff (moved it to the right)
|
|
||||||
|
|
||||||
0.3.0 / 2012-01-26
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Added millisecond diff when isatty, otherwise UTC string
|
|
||||||
|
|
||||||
0.2.0 / 2012-01-22
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Added wildcard support
|
|
||||||
|
|
||||||
0.1.0 / 2011-12-02
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Added: remove colors unless stderr isatty [TooTallNate]
|
|
||||||
|
|
||||||
0.0.1 / 2010-01-03
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Initial release
|
|
||||||
19
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/LICENSE
generated
vendored
19
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/LICENSE
generated
vendored
@@ -1,19 +0,0 @@
|
|||||||
(The MIT License)
|
|
||||||
|
|
||||||
Copyright (c) 2014 TJ Holowaychuk <tj@vision-media.ca>
|
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
52
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/Makefile
generated
vendored
52
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/Makefile
generated
vendored
@@ -1,52 +0,0 @@
|
|||||||
# get Makefile directory name: http://stackoverflow.com/a/5982798/376773
|
|
||||||
THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
|
|
||||||
THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd)
|
|
||||||
|
|
||||||
# BIN directory
|
|
||||||
BIN := $(THIS_DIR)/node_modules/.bin
|
|
||||||
|
|
||||||
# Path
|
|
||||||
PATH := node_modules/.bin:$(PATH)
|
|
||||||
SHELL := /bin/bash
|
|
||||||
|
|
||||||
# applications
|
|
||||||
NODE ?= $(shell which node)
|
|
||||||
YARN ?= $(shell which yarn)
|
|
||||||
PKG ?= $(if $(YARN),$(YARN),$(NODE) $(shell which npm))
|
|
||||||
BROWSERIFY ?= $(NODE) $(BIN)/browserify
|
|
||||||
|
|
||||||
.FORCE:
|
|
||||||
|
|
||||||
all: dist/debug.js
|
|
||||||
|
|
||||||
install: node_modules
|
|
||||||
|
|
||||||
node_modules: package.json
|
|
||||||
@NODE_ENV= $(PKG) install
|
|
||||||
@touch node_modules
|
|
||||||
|
|
||||||
lint: .FORCE
|
|
||||||
eslint browser.js debug.js index.js node.js
|
|
||||||
|
|
||||||
test-node: .FORCE
|
|
||||||
istanbul cover node_modules/mocha/bin/_mocha -- test/**.js
|
|
||||||
|
|
||||||
test-browser: .FORCE
|
|
||||||
mkdir -p dist
|
|
||||||
|
|
||||||
@$(BROWSERIFY) \
|
|
||||||
--standalone debug \
|
|
||||||
. > dist/debug.js
|
|
||||||
|
|
||||||
karma start --single-run
|
|
||||||
rimraf dist
|
|
||||||
|
|
||||||
test: .FORCE
|
|
||||||
concurrently \
|
|
||||||
"make test-node" \
|
|
||||||
"make test-browser"
|
|
||||||
|
|
||||||
coveralls:
|
|
||||||
cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js
|
|
||||||
|
|
||||||
.PHONY: all install clean distclean
|
|
||||||
238
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/README.md
generated
vendored
238
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/README.md
generated
vendored
@@ -1,238 +0,0 @@
|
|||||||
# debug
|
|
||||||
[](https://travis-ci.org/visionmedia/debug) [](https://coveralls.io/github/visionmedia/debug?branch=master)
|
|
||||||
|
|
||||||
A tiny node.js debugging utility modelled after node core's debugging technique.
|
|
||||||
|
|
||||||
**Discussion around the V3 API is under way [here](https://github.com/visionmedia/debug/issues/370)**
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$ npm install debug
|
|
||||||
```
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
`debug` exposes a function; simply pass this function the name of your module, and it will return a decorated version of `console.error` for you to pass debug statements to. This will allow you to toggle the debug output for different parts of your module as well as the module as a whole.
|
|
||||||
|
|
||||||
Example _app.js_:
|
|
||||||
|
|
||||||
```js
|
|
||||||
var debug = require('debug')('http')
|
|
||||||
, http = require('http')
|
|
||||||
, name = 'My App';
|
|
||||||
|
|
||||||
// fake app
|
|
||||||
|
|
||||||
debug('booting %s', name);
|
|
||||||
|
|
||||||
http.createServer(function(req, res){
|
|
||||||
debug(req.method + ' ' + req.url);
|
|
||||||
res.end('hello\n');
|
|
||||||
}).listen(3000, function(){
|
|
||||||
debug('listening');
|
|
||||||
});
|
|
||||||
|
|
||||||
// fake worker of some kind
|
|
||||||
|
|
||||||
require('./worker');
|
|
||||||
```
|
|
||||||
|
|
||||||
Example _worker.js_:
|
|
||||||
|
|
||||||
```js
|
|
||||||
var debug = require('debug')('worker');
|
|
||||||
|
|
||||||
setInterval(function(){
|
|
||||||
debug('doing some work');
|
|
||||||
}, 1000);
|
|
||||||
```
|
|
||||||
|
|
||||||
The __DEBUG__ environment variable is then used to enable these based on space or comma-delimited names. Here are some examples:
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
#### Windows note
|
|
||||||
|
|
||||||
On Windows the environment variable is set using the `set` command.
|
|
||||||
|
|
||||||
```cmd
|
|
||||||
set DEBUG=*,-not_this
|
|
||||||
```
|
|
||||||
|
|
||||||
Note that PowerShell uses different syntax to set environment variables.
|
|
||||||
|
|
||||||
```cmd
|
|
||||||
$env:DEBUG = "*,-not_this"
|
|
||||||
```
|
|
||||||
|
|
||||||
Then, run the program to be debugged as usual.
|
|
||||||
|
|
||||||
## Millisecond diff
|
|
||||||
|
|
||||||
When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
When stdout is not a TTY, `Date#toUTCString()` is used, making it more useful for logging the debug information as shown below:
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Conventions
|
|
||||||
|
|
||||||
If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser".
|
|
||||||
|
|
||||||
## Wildcards
|
|
||||||
|
|
||||||
The `*` character may be used as a wildcard. Suppose for example your library has debuggers named "connect:bodyParser", "connect:compress", "connect:session", instead of listing all three with `DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do `DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`.
|
|
||||||
|
|
||||||
You can also exclude specific debuggers by prefixing them with a "-" character. For example, `DEBUG=*,-connect:*` would include all debuggers except those starting with "connect:".
|
|
||||||
|
|
||||||
## Environment Variables
|
|
||||||
|
|
||||||
When running through Node.js, you can set a few environment variables that will
|
|
||||||
change the behavior of the debug logging:
|
|
||||||
|
|
||||||
| Name | Purpose |
|
|
||||||
|-----------|-------------------------------------------------|
|
|
||||||
| `DEBUG` | Enables/disabled specific debugging namespaces. |
|
|
||||||
| `DEBUG_COLORS`| Whether or not to use colors in the debug output. |
|
|
||||||
| `DEBUG_DEPTH` | Object inspection depth. |
|
|
||||||
| `DEBUG_SHOW_HIDDEN` | Shows hidden properties on inspected objects. |
|
|
||||||
|
|
||||||
|
|
||||||
__Note:__ The environment variables beginning with `DEBUG_` end up being
|
|
||||||
converted into an Options object that gets used with `%o`/`%O` formatters.
|
|
||||||
See the Node.js documentation for
|
|
||||||
[`util.inspect()`](https://nodejs.org/api/util.html#util_util_inspect_object_options)
|
|
||||||
for the complete list.
|
|
||||||
|
|
||||||
## Formatters
|
|
||||||
|
|
||||||
|
|
||||||
Debug uses [printf-style](https://wikipedia.org/wiki/Printf_format_string) formatting. Below are the officially supported formatters:
|
|
||||||
|
|
||||||
| Formatter | Representation |
|
|
||||||
|-----------|----------------|
|
|
||||||
| `%O` | Pretty-print an Object on multiple lines. |
|
|
||||||
| `%o` | Pretty-print an Object all on a single line. |
|
|
||||||
| `%s` | String. |
|
|
||||||
| `%d` | Number (both integer and float). |
|
|
||||||
| `%j` | JSON. Replaced with the string '[Circular]' if the argument contains circular references. |
|
|
||||||
| `%%` | Single percent sign ('%'). This does not consume an argument. |
|
|
||||||
|
|
||||||
### Custom formatters
|
|
||||||
|
|
||||||
You can add custom formatters by extending the `debug.formatters` object. For example, if you wanted to add support for rendering a Buffer as hex with `%h`, you could do something like:
|
|
||||||
|
|
||||||
```js
|
|
||||||
const createDebug = require('debug')
|
|
||||||
createDebug.formatters.h = (v) => {
|
|
||||||
return v.toString('hex')
|
|
||||||
}
|
|
||||||
|
|
||||||
// …elsewhere
|
|
||||||
const debug = createDebug('foo')
|
|
||||||
debug('this is hex: %h', new Buffer('hello world'))
|
|
||||||
// foo this is hex: 68656c6c6f20776f726c6421 +0ms
|
|
||||||
```
|
|
||||||
|
|
||||||
## Browser support
|
|
||||||
You can build a browser-ready script using [browserify](https://github.com/substack/node-browserify),
|
|
||||||
or just use the [browserify-as-a-service](https://wzrd.in/) [build](https://wzrd.in/standalone/debug@latest),
|
|
||||||
if you don't want to build it yourself.
|
|
||||||
|
|
||||||
Debug's enable state is currently persisted by `localStorage`.
|
|
||||||
Consider the situation shown below where you have `worker:a` and `worker:b`,
|
|
||||||
and wish to debug both. You can enable this using `localStorage.debug`:
|
|
||||||
|
|
||||||
```js
|
|
||||||
localStorage.debug = 'worker:*'
|
|
||||||
```
|
|
||||||
|
|
||||||
And then refresh the page.
|
|
||||||
|
|
||||||
```js
|
|
||||||
a = debug('worker:a');
|
|
||||||
b = debug('worker:b');
|
|
||||||
|
|
||||||
setInterval(function(){
|
|
||||||
a('doing some work');
|
|
||||||
}, 1000);
|
|
||||||
|
|
||||||
setInterval(function(){
|
|
||||||
b('doing some work');
|
|
||||||
}, 1200);
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Web Inspector Colors
|
|
||||||
|
|
||||||
Colors are also enabled on "Web Inspectors" that understand the `%c` formatting
|
|
||||||
option. These are WebKit web inspectors, Firefox ([since version
|
|
||||||
31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/))
|
|
||||||
and the Firebug plugin for Firefox (any version).
|
|
||||||
|
|
||||||
Colored output looks something like:
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
|
|
||||||
## Output streams
|
|
||||||
|
|
||||||
By default `debug` will log to stderr, however this can be configured per-namespace by overriding the `log` method:
|
|
||||||
|
|
||||||
Example _stdout.js_:
|
|
||||||
|
|
||||||
```js
|
|
||||||
var debug = require('debug');
|
|
||||||
var error = debug('app:error');
|
|
||||||
|
|
||||||
// by default stderr is used
|
|
||||||
error('goes to stderr!');
|
|
||||||
|
|
||||||
var log = debug('app:log');
|
|
||||||
// set this namespace to log via console.log
|
|
||||||
log.log = console.log.bind(console); // don't forget to bind to console!
|
|
||||||
log('goes to stdout');
|
|
||||||
error('still goes to stderr!');
|
|
||||||
|
|
||||||
// set all output to go via console.info
|
|
||||||
// overrides all per-namespace log settings
|
|
||||||
debug.log = console.info.bind(console);
|
|
||||||
error('now goes to stdout via console.info');
|
|
||||||
log('still goes to stdout, but via console.info now');
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
## Authors
|
|
||||||
|
|
||||||
- TJ Holowaychuk
|
|
||||||
- Nathan Rajlich
|
|
||||||
- Andrew Rhyne
|
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
(The MIT License)
|
|
||||||
|
|
||||||
Copyright (c) 2014-2016 TJ Holowaychuk <tj@vision-media.ca>
|
|
||||||
|
|
||||||
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.
|
|
||||||
29
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/bower.json
generated
vendored
29
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/bower.json
generated
vendored
@@ -1,29 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "visionmedia-debug",
|
|
||||||
"main": "./src/browser.js",
|
|
||||||
"homepage": "https://github.com/visionmedia/debug",
|
|
||||||
"authors": [
|
|
||||||
"TJ Holowaychuk <tj@vision-media.ca>",
|
|
||||||
"Nathan Rajlich <nathan@tootallnate.net> (http://n8.io)",
|
|
||||||
"Andrew Rhyne <rhyneandrew@gmail.com>"
|
|
||||||
],
|
|
||||||
"description": "visionmedia-debug",
|
|
||||||
"moduleType": [
|
|
||||||
"amd",
|
|
||||||
"es6",
|
|
||||||
"globals",
|
|
||||||
"node"
|
|
||||||
],
|
|
||||||
"keywords": [
|
|
||||||
"visionmedia",
|
|
||||||
"debug"
|
|
||||||
],
|
|
||||||
"license": "MIT",
|
|
||||||
"ignore": [
|
|
||||||
"**/.*",
|
|
||||||
"node_modules",
|
|
||||||
"bower_components",
|
|
||||||
"test",
|
|
||||||
"tests"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
19
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/component.json
generated
vendored
19
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/component.json
generated
vendored
@@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "debug",
|
|
||||||
"repo": "visionmedia/debug",
|
|
||||||
"description": "small debugging utility",
|
|
||||||
"version": "2.6.0",
|
|
||||||
"keywords": [
|
|
||||||
"debug",
|
|
||||||
"log",
|
|
||||||
"debugger"
|
|
||||||
],
|
|
||||||
"main": "src/browser.js",
|
|
||||||
"scripts": [
|
|
||||||
"src/browser.js",
|
|
||||||
"src/debug.js"
|
|
||||||
],
|
|
||||||
"dependencies": {
|
|
||||||
"rauchg/ms.js": "0.7.1"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
70
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/karma.conf.js
generated
vendored
70
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/karma.conf.js
generated
vendored
@@ -1,70 +0,0 @@
|
|||||||
// Karma configuration
|
|
||||||
// Generated on Fri Dec 16 2016 13:09:51 GMT+0000 (UTC)
|
|
||||||
|
|
||||||
module.exports = function(config) {
|
|
||||||
config.set({
|
|
||||||
|
|
||||||
// base path that will be used to resolve all patterns (eg. files, exclude)
|
|
||||||
basePath: '',
|
|
||||||
|
|
||||||
|
|
||||||
// frameworks to use
|
|
||||||
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
|
|
||||||
frameworks: ['mocha', 'chai', 'sinon'],
|
|
||||||
|
|
||||||
|
|
||||||
// list of files / patterns to load in the browser
|
|
||||||
files: [
|
|
||||||
'dist/debug.js',
|
|
||||||
'test/*spec.js'
|
|
||||||
],
|
|
||||||
|
|
||||||
|
|
||||||
// list of files to exclude
|
|
||||||
exclude: [
|
|
||||||
'src/node.js'
|
|
||||||
],
|
|
||||||
|
|
||||||
|
|
||||||
// preprocess matching files before serving them to the browser
|
|
||||||
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
|
|
||||||
preprocessors: {
|
|
||||||
},
|
|
||||||
|
|
||||||
// test results reporter to use
|
|
||||||
// possible values: 'dots', 'progress'
|
|
||||||
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
|
|
||||||
reporters: ['progress'],
|
|
||||||
|
|
||||||
|
|
||||||
// web server port
|
|
||||||
port: 9876,
|
|
||||||
|
|
||||||
|
|
||||||
// enable / disable colors in the output (reporters and logs)
|
|
||||||
colors: true,
|
|
||||||
|
|
||||||
|
|
||||||
// level of logging
|
|
||||||
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
|
|
||||||
logLevel: config.LOG_INFO,
|
|
||||||
|
|
||||||
|
|
||||||
// enable / disable watching file and executing tests whenever any file changes
|
|
||||||
autoWatch: true,
|
|
||||||
|
|
||||||
|
|
||||||
// start these browsers
|
|
||||||
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
|
|
||||||
browsers: ['PhantomJS'],
|
|
||||||
|
|
||||||
|
|
||||||
// Continuous Integration mode
|
|
||||||
// if true, Karma captures browsers, runs the tests and exits
|
|
||||||
singleRun: false,
|
|
||||||
|
|
||||||
// Concurrency level
|
|
||||||
// how many browser should be started simultaneous
|
|
||||||
concurrency: Infinity
|
|
||||||
})
|
|
||||||
}
|
|
||||||
1
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/node.js
generated
vendored
1
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/node.js
generated
vendored
@@ -1 +0,0 @@
|
|||||||
module.exports = require('./src/node');
|
|
||||||
124
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/package.json
generated
vendored
124
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/package.json
generated
vendored
@@ -1,124 +0,0 @@
|
|||||||
{
|
|
||||||
"_args": [
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"raw": "debug@2.6.0",
|
|
||||||
"scope": null,
|
|
||||||
"escapedName": "debug",
|
|
||||||
"name": "debug",
|
|
||||||
"rawSpec": "2.6.0",
|
|
||||||
"spec": "2.6.0",
|
|
||||||
"type": "version"
|
|
||||||
},
|
|
||||||
"C:\\Users\\nkiboti\\workspace\\GYMApp\\GYMApp\\node_modules\\body-parser"
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"_from": "debug@2.6.0",
|
|
||||||
"_id": "debug@2.6.0",
|
|
||||||
"_inCache": true,
|
|
||||||
"_location": "/body-parser/debug",
|
|
||||||
"_nodeVersion": "6.9.2",
|
|
||||||
"_npmOperationalInternal": {
|
|
||||||
"host": "packages-12-west.internal.npmjs.com",
|
|
||||||
"tmp": "tmp/debug-2.6.0.tgz_1482990633625_0.042889281176030636"
|
|
||||||
},
|
|
||||||
"_npmUser": {
|
|
||||||
"name": "thebigredgeek",
|
|
||||||
"email": "rhyneandrew@gmail.com"
|
|
||||||
},
|
|
||||||
"_npmVersion": "3.10.9",
|
|
||||||
"_phantomChildren": {},
|
|
||||||
"_requested": {
|
|
||||||
"raw": "debug@2.6.0",
|
|
||||||
"scope": null,
|
|
||||||
"escapedName": "debug",
|
|
||||||
"name": "debug",
|
|
||||||
"rawSpec": "2.6.0",
|
|
||||||
"spec": "2.6.0",
|
|
||||||
"type": "version"
|
|
||||||
},
|
|
||||||
"_requiredBy": [
|
|
||||||
"/body-parser"
|
|
||||||
],
|
|
||||||
"_resolved": "https://registry.npmjs.org/debug/-/debug-2.6.0.tgz",
|
|
||||||
"_shasum": "bc596bcabe7617f11d9fa15361eded5608b8499b",
|
|
||||||
"_shrinkwrap": null,
|
|
||||||
"_spec": "debug@2.6.0",
|
|
||||||
"_where": "C:\\Users\\nkiboti\\workspace\\GYMApp\\GYMApp\\node_modules\\body-parser",
|
|
||||||
"author": {
|
|
||||||
"name": "TJ Holowaychuk",
|
|
||||||
"email": "tj@vision-media.ca"
|
|
||||||
},
|
|
||||||
"browser": "./src/browser.js",
|
|
||||||
"bugs": {
|
|
||||||
"url": "https://github.com/visionmedia/debug/issues"
|
|
||||||
},
|
|
||||||
"component": {
|
|
||||||
"scripts": {
|
|
||||||
"debug/index.js": "browser.js",
|
|
||||||
"debug/debug.js": "debug.js"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"contributors": [
|
|
||||||
{
|
|
||||||
"name": "Nathan Rajlich",
|
|
||||||
"email": "nathan@tootallnate.net",
|
|
||||||
"url": "http://n8.io"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Andrew Rhyne",
|
|
||||||
"email": "rhyneandrew@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dependencies": {
|
|
||||||
"ms": "0.7.2"
|
|
||||||
},
|
|
||||||
"description": "small debugging utility",
|
|
||||||
"devDependencies": {
|
|
||||||
"browserify": "9.0.3",
|
|
||||||
"chai": "^3.5.0",
|
|
||||||
"concurrently": "^3.1.0",
|
|
||||||
"coveralls": "^2.11.15",
|
|
||||||
"eslint": "^3.12.1",
|
|
||||||
"istanbul": "^0.4.5",
|
|
||||||
"karma": "^1.3.0",
|
|
||||||
"karma-chai": "^0.1.0",
|
|
||||||
"karma-mocha": "^1.3.0",
|
|
||||||
"karma-phantomjs-launcher": "^1.0.2",
|
|
||||||
"karma-sinon": "^1.0.5",
|
|
||||||
"mocha": "^3.2.0",
|
|
||||||
"mocha-lcov-reporter": "^1.2.0",
|
|
||||||
"rimraf": "^2.5.4",
|
|
||||||
"sinon": "^1.17.6",
|
|
||||||
"sinon-chai": "^2.8.0"
|
|
||||||
},
|
|
||||||
"directories": {},
|
|
||||||
"dist": {
|
|
||||||
"shasum": "bc596bcabe7617f11d9fa15361eded5608b8499b",
|
|
||||||
"tarball": "https://registry.npmjs.org/debug/-/debug-2.6.0.tgz"
|
|
||||||
},
|
|
||||||
"gitHead": "ac5ccae70358a2bccc71d288e5f9c656a7678748",
|
|
||||||
"homepage": "https://github.com/visionmedia/debug#readme",
|
|
||||||
"keywords": [
|
|
||||||
"debug",
|
|
||||||
"log",
|
|
||||||
"debugger"
|
|
||||||
],
|
|
||||||
"license": "MIT",
|
|
||||||
"main": "./src/index.js",
|
|
||||||
"maintainers": [
|
|
||||||
{
|
|
||||||
"name": "thebigredgeek",
|
|
||||||
"email": "rhyneandrew@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "debug",
|
|
||||||
"optionalDependencies": {},
|
|
||||||
"readme": "ERROR: No README data found!",
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "git://github.com/visionmedia/debug.git"
|
|
||||||
},
|
|
||||||
"scripts": {},
|
|
||||||
"version": "2.6.0"
|
|
||||||
}
|
|
||||||
182
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/src/browser.js
generated
vendored
182
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/src/browser.js
generated
vendored
@@ -1,182 +0,0 @@
|
|||||||
/**
|
|
||||||
* This is the web browser implementation of `debug()`.
|
|
||||||
*
|
|
||||||
* Expose `debug()` as the module.
|
|
||||||
*/
|
|
||||||
|
|
||||||
exports = module.exports = require('./debug');
|
|
||||||
exports.log = log;
|
|
||||||
exports.formatArgs = formatArgs;
|
|
||||||
exports.save = save;
|
|
||||||
exports.load = load;
|
|
||||||
exports.useColors = useColors;
|
|
||||||
exports.storage = 'undefined' != typeof chrome
|
|
||||||
&& 'undefined' != typeof chrome.storage
|
|
||||||
? chrome.storage.local
|
|
||||||
: localstorage();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Colors.
|
|
||||||
*/
|
|
||||||
|
|
||||||
exports.colors = [
|
|
||||||
'lightseagreen',
|
|
||||||
'forestgreen',
|
|
||||||
'goldenrod',
|
|
||||||
'dodgerblue',
|
|
||||||
'darkorchid',
|
|
||||||
'crimson'
|
|
||||||
];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Currently only WebKit-based Web Inspectors, Firefox >= v31,
|
|
||||||
* and the Firebug extension (any Firefox version) are known
|
|
||||||
* to support "%c" CSS customizations.
|
|
||||||
*
|
|
||||||
* TODO: add a `localStorage` variable to explicitly enable/disable colors
|
|
||||||
*/
|
|
||||||
|
|
||||||
function useColors() {
|
|
||||||
// NB: In an Electron preload script, document will be defined but not fully
|
|
||||||
// initialized. Since we know we're in Chrome, we'll just detect this case
|
|
||||||
// explicitly
|
|
||||||
if (typeof window !== 'undefined' && window && typeof window.process !== 'undefined' && window.process.type === 'renderer') {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// is webkit? http://stackoverflow.com/a/16459606/376773
|
|
||||||
// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
|
|
||||||
return (typeof document !== 'undefined' && document && 'WebkitAppearance' in document.documentElement.style) ||
|
|
||||||
// is firebug? http://stackoverflow.com/a/398120/376773
|
|
||||||
(typeof window !== 'undefined' && window && window.console && (console.firebug || (console.exception && console.table))) ||
|
|
||||||
// is firefox >= v31?
|
|
||||||
// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
|
|
||||||
(typeof navigator !== 'undefined' && navigator && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||
|
|
||||||
// double check webkit in userAgent just in case we are in a worker
|
|
||||||
(typeof navigator !== 'undefined' && navigator && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
|
|
||||||
*/
|
|
||||||
|
|
||||||
exports.formatters.j = function(v) {
|
|
||||||
try {
|
|
||||||
return JSON.stringify(v);
|
|
||||||
} catch (err) {
|
|
||||||
return '[UnexpectedJSONParseError]: ' + err.message;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Colorize log arguments if enabled.
|
|
||||||
*
|
|
||||||
* @api public
|
|
||||||
*/
|
|
||||||
|
|
||||||
function formatArgs(args) {
|
|
||||||
var useColors = this.useColors;
|
|
||||||
|
|
||||||
args[0] = (useColors ? '%c' : '')
|
|
||||||
+ this.namespace
|
|
||||||
+ (useColors ? ' %c' : ' ')
|
|
||||||
+ args[0]
|
|
||||||
+ (useColors ? '%c ' : ' ')
|
|
||||||
+ '+' + exports.humanize(this.diff);
|
|
||||||
|
|
||||||
if (!useColors) return;
|
|
||||||
|
|
||||||
var c = 'color: ' + this.color;
|
|
||||||
args.splice(1, 0, c, 'color: inherit')
|
|
||||||
|
|
||||||
// the final "%c" is somewhat tricky, because there could be other
|
|
||||||
// arguments passed either before or after the %c, so we need to
|
|
||||||
// figure out the correct index to insert the CSS into
|
|
||||||
var index = 0;
|
|
||||||
var lastC = 0;
|
|
||||||
args[0].replace(/%[a-zA-Z%]/g, function(match) {
|
|
||||||
if ('%%' === match) return;
|
|
||||||
index++;
|
|
||||||
if ('%c' === match) {
|
|
||||||
// we only are interested in the *last* %c
|
|
||||||
// (the user may have provided their own)
|
|
||||||
lastC = index;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
args.splice(lastC, 0, c);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Invokes `console.log()` when available.
|
|
||||||
* No-op when `console.log` is not a "function".
|
|
||||||
*
|
|
||||||
* @api public
|
|
||||||
*/
|
|
||||||
|
|
||||||
function log() {
|
|
||||||
// this hackery is required for IE8/9, where
|
|
||||||
// the `console.log` function doesn't have 'apply'
|
|
||||||
return 'object' === typeof console
|
|
||||||
&& console.log
|
|
||||||
&& Function.prototype.apply.call(console.log, console, arguments);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Save `namespaces`.
|
|
||||||
*
|
|
||||||
* @param {String} namespaces
|
|
||||||
* @api private
|
|
||||||
*/
|
|
||||||
|
|
||||||
function save(namespaces) {
|
|
||||||
try {
|
|
||||||
if (null == namespaces) {
|
|
||||||
exports.storage.removeItem('debug');
|
|
||||||
} else {
|
|
||||||
exports.storage.debug = namespaces;
|
|
||||||
}
|
|
||||||
} catch(e) {}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Load `namespaces`.
|
|
||||||
*
|
|
||||||
* @return {String} returns the previously persisted debug modes
|
|
||||||
* @api private
|
|
||||||
*/
|
|
||||||
|
|
||||||
function load() {
|
|
||||||
try {
|
|
||||||
return exports.storage.debug;
|
|
||||||
} catch(e) {}
|
|
||||||
|
|
||||||
// If debug isn't set in LS, and we're in Electron, try to load $DEBUG
|
|
||||||
if (typeof process !== 'undefined' && 'env' in process) {
|
|
||||||
return process.env.DEBUG;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Enable namespaces listed in `localStorage.debug` initially.
|
|
||||||
*/
|
|
||||||
|
|
||||||
exports.enable(load());
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Localstorage attempts to return the localstorage.
|
|
||||||
*
|
|
||||||
* This is necessary because safari throws
|
|
||||||
* when a user disables cookies/localstorage
|
|
||||||
* and you attempt to access it.
|
|
||||||
*
|
|
||||||
* @return {LocalStorage}
|
|
||||||
* @api private
|
|
||||||
*/
|
|
||||||
|
|
||||||
function localstorage() {
|
|
||||||
try {
|
|
||||||
return window.localStorage;
|
|
||||||
} catch (e) {}
|
|
||||||
}
|
|
||||||
199
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/src/debug.js
generated
vendored
199
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/src/debug.js
generated
vendored
@@ -1,199 +0,0 @@
|
|||||||
|
|
||||||
/**
|
|
||||||
* This is the common logic for both the Node.js and web browser
|
|
||||||
* implementations of `debug()`.
|
|
||||||
*
|
|
||||||
* Expose `debug()` as the module.
|
|
||||||
*/
|
|
||||||
|
|
||||||
exports = module.exports = createDebug.debug = createDebug.default = createDebug;
|
|
||||||
exports.coerce = coerce;
|
|
||||||
exports.disable = disable;
|
|
||||||
exports.enable = enable;
|
|
||||||
exports.enabled = enabled;
|
|
||||||
exports.humanize = require('ms');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The currently active debug mode names, and names to skip.
|
|
||||||
*/
|
|
||||||
|
|
||||||
exports.names = [];
|
|
||||||
exports.skips = [];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Map of special "%n" handling functions, for the debug "format" argument.
|
|
||||||
*
|
|
||||||
* Valid key names are a single, lower or upper-case letter, i.e. "n" and "N".
|
|
||||||
*/
|
|
||||||
|
|
||||||
exports.formatters = {};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Previous log timestamp.
|
|
||||||
*/
|
|
||||||
|
|
||||||
var prevTime;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Select a color.
|
|
||||||
* @param {String} namespace
|
|
||||||
* @return {Number}
|
|
||||||
* @api private
|
|
||||||
*/
|
|
||||||
|
|
||||||
function selectColor(namespace) {
|
|
||||||
var hash = 0, i;
|
|
||||||
|
|
||||||
for (i in namespace) {
|
|
||||||
hash = ((hash << 5) - hash) + namespace.charCodeAt(i);
|
|
||||||
hash |= 0; // Convert to 32bit integer
|
|
||||||
}
|
|
||||||
|
|
||||||
return exports.colors[Math.abs(hash) % exports.colors.length];
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a debugger with the given `namespace`.
|
|
||||||
*
|
|
||||||
* @param {String} namespace
|
|
||||||
* @return {Function}
|
|
||||||
* @api public
|
|
||||||
*/
|
|
||||||
|
|
||||||
function createDebug(namespace) {
|
|
||||||
|
|
||||||
function debug() {
|
|
||||||
// disabled?
|
|
||||||
if (!debug.enabled) return;
|
|
||||||
|
|
||||||
var self = debug;
|
|
||||||
|
|
||||||
// set `diff` timestamp
|
|
||||||
var curr = +new Date();
|
|
||||||
var ms = curr - (prevTime || curr);
|
|
||||||
self.diff = ms;
|
|
||||||
self.prev = prevTime;
|
|
||||||
self.curr = curr;
|
|
||||||
prevTime = curr;
|
|
||||||
|
|
||||||
// turn the `arguments` into a proper Array
|
|
||||||
var args = new Array(arguments.length);
|
|
||||||
for (var i = 0; i < args.length; i++) {
|
|
||||||
args[i] = arguments[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
args[0] = exports.coerce(args[0]);
|
|
||||||
|
|
||||||
if ('string' !== typeof args[0]) {
|
|
||||||
// anything else let's inspect with %O
|
|
||||||
args.unshift('%O');
|
|
||||||
}
|
|
||||||
|
|
||||||
// apply any `formatters` transformations
|
|
||||||
var index = 0;
|
|
||||||
args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {
|
|
||||||
// if we encounter an escaped % then don't increase the array index
|
|
||||||
if (match === '%%') return match;
|
|
||||||
index++;
|
|
||||||
var formatter = exports.formatters[format];
|
|
||||||
if ('function' === typeof formatter) {
|
|
||||||
var val = args[index];
|
|
||||||
match = formatter.call(self, val);
|
|
||||||
|
|
||||||
// now we need to remove `args[index]` since it's inlined in the `format`
|
|
||||||
args.splice(index, 1);
|
|
||||||
index--;
|
|
||||||
}
|
|
||||||
return match;
|
|
||||||
});
|
|
||||||
|
|
||||||
// apply env-specific formatting (colors, etc.)
|
|
||||||
exports.formatArgs.call(self, args);
|
|
||||||
|
|
||||||
var logFn = debug.log || exports.log || console.log.bind(console);
|
|
||||||
logFn.apply(self, args);
|
|
||||||
}
|
|
||||||
|
|
||||||
debug.namespace = namespace;
|
|
||||||
debug.enabled = exports.enabled(namespace);
|
|
||||||
debug.useColors = exports.useColors();
|
|
||||||
debug.color = selectColor(namespace);
|
|
||||||
|
|
||||||
// env-specific initialization logic for debug instances
|
|
||||||
if ('function' === typeof exports.init) {
|
|
||||||
exports.init(debug);
|
|
||||||
}
|
|
||||||
|
|
||||||
return debug;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Enables a debug mode by namespaces. This can include modes
|
|
||||||
* separated by a colon and wildcards.
|
|
||||||
*
|
|
||||||
* @param {String} namespaces
|
|
||||||
* @api public
|
|
||||||
*/
|
|
||||||
|
|
||||||
function enable(namespaces) {
|
|
||||||
exports.save(namespaces);
|
|
||||||
|
|
||||||
var split = (namespaces || '').split(/[\s,]+/);
|
|
||||||
var len = split.length;
|
|
||||||
|
|
||||||
for (var i = 0; i < len; i++) {
|
|
||||||
if (!split[i]) continue; // ignore empty strings
|
|
||||||
namespaces = split[i].replace(/\*/g, '.*?');
|
|
||||||
if (namespaces[0] === '-') {
|
|
||||||
exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));
|
|
||||||
} else {
|
|
||||||
exports.names.push(new RegExp('^' + namespaces + '$'));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Disable debug output.
|
|
||||||
*
|
|
||||||
* @api public
|
|
||||||
*/
|
|
||||||
|
|
||||||
function disable() {
|
|
||||||
exports.enable('');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns true if the given mode name is enabled, false otherwise.
|
|
||||||
*
|
|
||||||
* @param {String} name
|
|
||||||
* @return {Boolean}
|
|
||||||
* @api public
|
|
||||||
*/
|
|
||||||
|
|
||||||
function enabled(name) {
|
|
||||||
var i, len;
|
|
||||||
for (i = 0, len = exports.skips.length; i < len; i++) {
|
|
||||||
if (exports.skips[i].test(name)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (i = 0, len = exports.names.length; i < len; i++) {
|
|
||||||
if (exports.names[i].test(name)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Coerce `val`.
|
|
||||||
*
|
|
||||||
* @param {Mixed} val
|
|
||||||
* @return {Mixed}
|
|
||||||
* @api private
|
|
||||||
*/
|
|
||||||
|
|
||||||
function coerce(val) {
|
|
||||||
if (val instanceof Error) return val.stack || val.message;
|
|
||||||
return val;
|
|
||||||
}
|
|
||||||
10
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/src/index.js
generated
vendored
10
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/src/index.js
generated
vendored
@@ -1,10 +0,0 @@
|
|||||||
/**
|
|
||||||
* Detect Electron renderer process, which is node, but we should
|
|
||||||
* treat as a browser.
|
|
||||||
*/
|
|
||||||
|
|
||||||
if (typeof process !== 'undefined' && process.type === 'renderer') {
|
|
||||||
module.exports = require('./browser.js');
|
|
||||||
} else {
|
|
||||||
module.exports = require('./node.js');
|
|
||||||
}
|
|
||||||
240
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/src/node.js
generated
vendored
240
GYMApp/GYMApp/node_modules/body-parser/node_modules/debug/src/node.js
generated
vendored
@@ -1,240 +0,0 @@
|
|||||||
/**
|
|
||||||
* Module dependencies.
|
|
||||||
*/
|
|
||||||
|
|
||||||
var tty = require('tty');
|
|
||||||
var util = require('util');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This is the Node.js implementation of `debug()`.
|
|
||||||
*
|
|
||||||
* Expose `debug()` as the module.
|
|
||||||
*/
|
|
||||||
|
|
||||||
exports = module.exports = require('./debug');
|
|
||||||
exports.init = init;
|
|
||||||
exports.log = log;
|
|
||||||
exports.formatArgs = formatArgs;
|
|
||||||
exports.save = save;
|
|
||||||
exports.load = load;
|
|
||||||
exports.useColors = useColors;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Colors.
|
|
||||||
*/
|
|
||||||
|
|
||||||
exports.colors = [6, 2, 3, 4, 5, 1];
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Build up the default `inspectOpts` object from the environment variables.
|
|
||||||
*
|
|
||||||
* $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js
|
|
||||||
*/
|
|
||||||
|
|
||||||
exports.inspectOpts = Object.keys(process.env).filter(function (key) {
|
|
||||||
return /^debug_/i.test(key);
|
|
||||||
}).reduce(function (obj, key) {
|
|
||||||
// camel-case
|
|
||||||
var prop = key
|
|
||||||
.substring(6)
|
|
||||||
.toLowerCase()
|
|
||||||
.replace(/_([a-z])/, function (_, k) { return k.toUpperCase() });
|
|
||||||
|
|
||||||
// coerce string value into JS value
|
|
||||||
var val = process.env[key];
|
|
||||||
if (/^(yes|on|true|enabled)$/i.test(val)) val = true;
|
|
||||||
else if (/^(no|off|false|disabled)$/i.test(val)) val = false;
|
|
||||||
else if (val === 'null') val = null;
|
|
||||||
else val = Number(val);
|
|
||||||
|
|
||||||
obj[prop] = val;
|
|
||||||
return obj;
|
|
||||||
}, {});
|
|
||||||
|
|
||||||
/**
|
|
||||||
* The file descriptor to write the `debug()` calls to.
|
|
||||||
* Set the `DEBUG_FD` env variable to override with another value. i.e.:
|
|
||||||
*
|
|
||||||
* $ DEBUG_FD=3 node script.js 3>debug.log
|
|
||||||
*/
|
|
||||||
|
|
||||||
if ('DEBUG_FD' in process.env) {
|
|
||||||
util.deprecate(function(){}, '`DEBUG_FD` is deprecated. Override `debug.log` if you want to use a different log function (https://git.io/vMUyr)')()
|
|
||||||
}
|
|
||||||
|
|
||||||
var fd = parseInt(process.env.DEBUG_FD, 10) || 2;
|
|
||||||
var stream = 1 === fd ? process.stdout :
|
|
||||||
2 === fd ? process.stderr :
|
|
||||||
createWritableStdioStream(fd);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Is stdout a TTY? Colored output is enabled when `true`.
|
|
||||||
*/
|
|
||||||
|
|
||||||
function useColors() {
|
|
||||||
return 'colors' in exports.inspectOpts
|
|
||||||
? Boolean(exports.inspectOpts.colors)
|
|
||||||
: tty.isatty(fd);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Map %o to `util.inspect()`, all on a single line.
|
|
||||||
*/
|
|
||||||
|
|
||||||
exports.formatters.o = function(v) {
|
|
||||||
this.inspectOpts.colors = this.useColors;
|
|
||||||
return util.inspect(v, this.inspectOpts)
|
|
||||||
.replace(/\s*\n\s*/g, ' ');
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Map %o to `util.inspect()`, allowing multiple lines if needed.
|
|
||||||
*/
|
|
||||||
|
|
||||||
exports.formatters.O = function(v) {
|
|
||||||
this.inspectOpts.colors = this.useColors;
|
|
||||||
return util.inspect(v, this.inspectOpts);
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Adds ANSI color escape codes if enabled.
|
|
||||||
*
|
|
||||||
* @api public
|
|
||||||
*/
|
|
||||||
|
|
||||||
function formatArgs(args) {
|
|
||||||
var name = this.namespace;
|
|
||||||
var useColors = this.useColors;
|
|
||||||
|
|
||||||
if (useColors) {
|
|
||||||
var c = this.color;
|
|
||||||
var prefix = ' \u001b[3' + c + ';1m' + name + ' ' + '\u001b[0m';
|
|
||||||
|
|
||||||
args[0] = prefix + args[0].split('\n').join('\n' + prefix);
|
|
||||||
args.push('\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\u001b[0m');
|
|
||||||
} else {
|
|
||||||
args[0] = new Date().toUTCString()
|
|
||||||
+ ' ' + name + ' ' + args[0];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Invokes `util.format()` with the specified arguments and writes to `stream`.
|
|
||||||
*/
|
|
||||||
|
|
||||||
function log() {
|
|
||||||
return stream.write(util.format.apply(util, arguments) + '\n');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Save `namespaces`.
|
|
||||||
*
|
|
||||||
* @param {String} namespaces
|
|
||||||
* @api private
|
|
||||||
*/
|
|
||||||
|
|
||||||
function save(namespaces) {
|
|
||||||
if (null == namespaces) {
|
|
||||||
// If you set a process.env field to null or undefined, it gets cast to the
|
|
||||||
// string 'null' or 'undefined'. Just delete instead.
|
|
||||||
delete process.env.DEBUG;
|
|
||||||
} else {
|
|
||||||
process.env.DEBUG = namespaces;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Load `namespaces`.
|
|
||||||
*
|
|
||||||
* @return {String} returns the previously persisted debug modes
|
|
||||||
* @api private
|
|
||||||
*/
|
|
||||||
|
|
||||||
function load() {
|
|
||||||
return process.env.DEBUG;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Copied from `node/src/node.js`.
|
|
||||||
*
|
|
||||||
* XXX: It's lame that node doesn't expose this API out-of-the-box. It also
|
|
||||||
* relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.
|
|
||||||
*/
|
|
||||||
|
|
||||||
function createWritableStdioStream (fd) {
|
|
||||||
var stream;
|
|
||||||
var tty_wrap = process.binding('tty_wrap');
|
|
||||||
|
|
||||||
// Note stream._type is used for test-module-load-list.js
|
|
||||||
|
|
||||||
switch (tty_wrap.guessHandleType(fd)) {
|
|
||||||
case 'TTY':
|
|
||||||
stream = new tty.WriteStream(fd);
|
|
||||||
stream._type = 'tty';
|
|
||||||
|
|
||||||
// Hack to have stream not keep the event loop alive.
|
|
||||||
// See https://github.com/joyent/node/issues/1726
|
|
||||||
if (stream._handle && stream._handle.unref) {
|
|
||||||
stream._handle.unref();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'FILE':
|
|
||||||
var fs = require('fs');
|
|
||||||
stream = new fs.SyncWriteStream(fd, { autoClose: false });
|
|
||||||
stream._type = 'fs';
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'PIPE':
|
|
||||||
case 'TCP':
|
|
||||||
var net = require('net');
|
|
||||||
stream = new net.Socket({
|
|
||||||
fd: fd,
|
|
||||||
readable: false,
|
|
||||||
writable: true
|
|
||||||
});
|
|
||||||
|
|
||||||
// FIXME Should probably have an option in net.Socket to create a
|
|
||||||
// stream from an existing fd which is writable only. But for now
|
|
||||||
// we'll just add this hack and set the `readable` member to false.
|
|
||||||
// Test: ./node test/fixtures/echo.js < /etc/passwd
|
|
||||||
stream.readable = false;
|
|
||||||
stream.read = null;
|
|
||||||
stream._type = 'pipe';
|
|
||||||
|
|
||||||
// FIXME Hack to have stream not keep the event loop alive.
|
|
||||||
// See https://github.com/joyent/node/issues/1726
|
|
||||||
if (stream._handle && stream._handle.unref) {
|
|
||||||
stream._handle.unref();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
// Probably an error on in uv_guess_handle()
|
|
||||||
throw new Error('Implement me. Unknown stream file type!');
|
|
||||||
}
|
|
||||||
|
|
||||||
// For supporting legacy API we put the FD here.
|
|
||||||
stream.fd = fd;
|
|
||||||
|
|
||||||
stream._isStdio = true;
|
|
||||||
|
|
||||||
return stream;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Init logic for `debug` instances.
|
|
||||||
*
|
|
||||||
* Create a new `inspectOpts` object in case `useColors` is set
|
|
||||||
* differently for a particular `debug` instance.
|
|
||||||
*/
|
|
||||||
|
|
||||||
function init (debug) {
|
|
||||||
debug.inspectOpts = util._extend({}, exports.inspectOpts);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Enable namespaces listed in `process.env.DEBUG` initially.
|
|
||||||
*/
|
|
||||||
|
|
||||||
exports.enable(load());
|
|
||||||
21
GYMApp/GYMApp/node_modules/body-parser/node_modules/ms/LICENSE.md
generated
vendored
21
GYMApp/GYMApp/node_modules/body-parser/node_modules/ms/LICENSE.md
generated
vendored
@@ -1,21 +0,0 @@
|
|||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016 Zeit, Inc.
|
|
||||||
|
|
||||||
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.
|
|
||||||
52
GYMApp/GYMApp/node_modules/body-parser/node_modules/ms/README.md
generated
vendored
52
GYMApp/GYMApp/node_modules/body-parser/node_modules/ms/README.md
generated
vendored
@@ -1,52 +0,0 @@
|
|||||||
# ms
|
|
||||||
|
|
||||||
[](https://travis-ci.org/zeit/ms)
|
|
||||||
[](https://github.com/sindresorhus/xo)
|
|
||||||
[](https://zeit.chat/)
|
|
||||||
|
|
||||||
Use this package to easily convert various time formats to milliseconds.
|
|
||||||
|
|
||||||
## Examples
|
|
||||||
|
|
||||||
```js
|
|
||||||
ms('2 days') // 172800000
|
|
||||||
ms('1d') // 86400000
|
|
||||||
ms('10h') // 36000000
|
|
||||||
ms('2.5 hrs') // 9000000
|
|
||||||
ms('2h') // 7200000
|
|
||||||
ms('1m') // 60000
|
|
||||||
ms('5s') // 5000
|
|
||||||
ms('1y') // 31557600000
|
|
||||||
ms('100') // 100
|
|
||||||
```
|
|
||||||
|
|
||||||
### Convert from milliseconds
|
|
||||||
|
|
||||||
```js
|
|
||||||
ms(60000) // "1m"
|
|
||||||
ms(2 * 60000) // "2m"
|
|
||||||
ms(ms('10 hours')) // "10h"
|
|
||||||
```
|
|
||||||
|
|
||||||
### Time format written-out
|
|
||||||
|
|
||||||
```js
|
|
||||||
ms(60000, { long: true }) // "1 minute"
|
|
||||||
ms(2 * 60000, { long: true }) // "2 minutes"
|
|
||||||
ms(ms('10 hours'), { long: true }) // "10 hours"
|
|
||||||
```
|
|
||||||
|
|
||||||
## Features
|
|
||||||
|
|
||||||
- Works both in [node](https://nodejs.org) and in the browser.
|
|
||||||
- If a number is supplied to `ms`, a string with a unit is returned.
|
|
||||||
- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`).
|
|
||||||
- If you pass a string with a number and a valid unit, the number of equivalent ms is returned.
|
|
||||||
|
|
||||||
## Caught a bug?
|
|
||||||
|
|
||||||
1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device
|
|
||||||
2. Link the package to the global module directory: `npm link`
|
|
||||||
3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, node will now use your clone of ms!
|
|
||||||
|
|
||||||
As always, you can run the tests using: `npm test`
|
|
||||||
149
GYMApp/GYMApp/node_modules/body-parser/node_modules/ms/index.js
generated
vendored
149
GYMApp/GYMApp/node_modules/body-parser/node_modules/ms/index.js
generated
vendored
@@ -1,149 +0,0 @@
|
|||||||
/**
|
|
||||||
* Helpers.
|
|
||||||
*/
|
|
||||||
|
|
||||||
var s = 1000
|
|
||||||
var m = s * 60
|
|
||||||
var h = m * 60
|
|
||||||
var d = h * 24
|
|
||||||
var y = d * 365.25
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Parse or format the given `val`.
|
|
||||||
*
|
|
||||||
* Options:
|
|
||||||
*
|
|
||||||
* - `long` verbose formatting [false]
|
|
||||||
*
|
|
||||||
* @param {String|Number} val
|
|
||||||
* @param {Object} options
|
|
||||||
* @throws {Error} throw an error if val is not a non-empty string or a number
|
|
||||||
* @return {String|Number}
|
|
||||||
* @api public
|
|
||||||
*/
|
|
||||||
|
|
||||||
module.exports = function (val, options) {
|
|
||||||
options = options || {}
|
|
||||||
var type = typeof val
|
|
||||||
if (type === 'string' && val.length > 0) {
|
|
||||||
return parse(val)
|
|
||||||
} else if (type === 'number' && isNaN(val) === false) {
|
|
||||||
return options.long ?
|
|
||||||
fmtLong(val) :
|
|
||||||
fmtShort(val)
|
|
||||||
}
|
|
||||||
throw new Error('val is not a non-empty string or a valid number. val=' + JSON.stringify(val))
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Parse the given `str` and return milliseconds.
|
|
||||||
*
|
|
||||||
* @param {String} str
|
|
||||||
* @return {Number}
|
|
||||||
* @api private
|
|
||||||
*/
|
|
||||||
|
|
||||||
function parse(str) {
|
|
||||||
str = String(str)
|
|
||||||
if (str.length > 10000) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str)
|
|
||||||
if (!match) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
var n = parseFloat(match[1])
|
|
||||||
var type = (match[2] || 'ms').toLowerCase()
|
|
||||||
switch (type) {
|
|
||||||
case 'years':
|
|
||||||
case 'year':
|
|
||||||
case 'yrs':
|
|
||||||
case 'yr':
|
|
||||||
case 'y':
|
|
||||||
return n * y
|
|
||||||
case 'days':
|
|
||||||
case 'day':
|
|
||||||
case 'd':
|
|
||||||
return n * d
|
|
||||||
case 'hours':
|
|
||||||
case 'hour':
|
|
||||||
case 'hrs':
|
|
||||||
case 'hr':
|
|
||||||
case 'h':
|
|
||||||
return n * h
|
|
||||||
case 'minutes':
|
|
||||||
case 'minute':
|
|
||||||
case 'mins':
|
|
||||||
case 'min':
|
|
||||||
case 'm':
|
|
||||||
return n * m
|
|
||||||
case 'seconds':
|
|
||||||
case 'second':
|
|
||||||
case 'secs':
|
|
||||||
case 'sec':
|
|
||||||
case 's':
|
|
||||||
return n * s
|
|
||||||
case 'milliseconds':
|
|
||||||
case 'millisecond':
|
|
||||||
case 'msecs':
|
|
||||||
case 'msec':
|
|
||||||
case 'ms':
|
|
||||||
return n
|
|
||||||
default:
|
|
||||||
return undefined
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Short format for `ms`.
|
|
||||||
*
|
|
||||||
* @param {Number} ms
|
|
||||||
* @return {String}
|
|
||||||
* @api private
|
|
||||||
*/
|
|
||||||
|
|
||||||
function fmtShort(ms) {
|
|
||||||
if (ms >= d) {
|
|
||||||
return Math.round(ms / d) + 'd'
|
|
||||||
}
|
|
||||||
if (ms >= h) {
|
|
||||||
return Math.round(ms / h) + 'h'
|
|
||||||
}
|
|
||||||
if (ms >= m) {
|
|
||||||
return Math.round(ms / m) + 'm'
|
|
||||||
}
|
|
||||||
if (ms >= s) {
|
|
||||||
return Math.round(ms / s) + 's'
|
|
||||||
}
|
|
||||||
return ms + 'ms'
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Long format for `ms`.
|
|
||||||
*
|
|
||||||
* @param {Number} ms
|
|
||||||
* @return {String}
|
|
||||||
* @api private
|
|
||||||
*/
|
|
||||||
|
|
||||||
function fmtLong(ms) {
|
|
||||||
return plural(ms, d, 'day') ||
|
|
||||||
plural(ms, h, 'hour') ||
|
|
||||||
plural(ms, m, 'minute') ||
|
|
||||||
plural(ms, s, 'second') ||
|
|
||||||
ms + ' ms'
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Pluralization helper.
|
|
||||||
*/
|
|
||||||
|
|
||||||
function plural(ms, n, name) {
|
|
||||||
if (ms < n) {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if (ms < n * 1.5) {
|
|
||||||
return Math.floor(ms / n) + ' ' + name
|
|
||||||
}
|
|
||||||
return Math.ceil(ms / n) + ' ' + name + 's'
|
|
||||||
}
|
|
||||||
108
GYMApp/GYMApp/node_modules/body-parser/node_modules/ms/package.json
generated
vendored
108
GYMApp/GYMApp/node_modules/body-parser/node_modules/ms/package.json
generated
vendored
@@ -1,108 +0,0 @@
|
|||||||
{
|
|
||||||
"_args": [
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"raw": "ms@0.7.2",
|
|
||||||
"scope": null,
|
|
||||||
"escapedName": "ms",
|
|
||||||
"name": "ms",
|
|
||||||
"rawSpec": "0.7.2",
|
|
||||||
"spec": "0.7.2",
|
|
||||||
"type": "version"
|
|
||||||
},
|
|
||||||
"C:\\Users\\nkiboti\\workspace\\GYMApp\\GYMApp\\node_modules\\body-parser\\node_modules\\debug"
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"_from": "ms@0.7.2",
|
|
||||||
"_id": "ms@0.7.2",
|
|
||||||
"_inCache": true,
|
|
||||||
"_location": "/body-parser/ms",
|
|
||||||
"_nodeVersion": "6.8.0",
|
|
||||||
"_npmOperationalInternal": {
|
|
||||||
"host": "packages-18-east.internal.npmjs.com",
|
|
||||||
"tmp": "tmp/ms-0.7.2.tgz_1477383407940_0.4743474116548896"
|
|
||||||
},
|
|
||||||
"_npmUser": {
|
|
||||||
"name": "leo",
|
|
||||||
"email": "leo@zeit.co"
|
|
||||||
},
|
|
||||||
"_npmVersion": "3.10.8",
|
|
||||||
"_phantomChildren": {},
|
|
||||||
"_requested": {
|
|
||||||
"raw": "ms@0.7.2",
|
|
||||||
"scope": null,
|
|
||||||
"escapedName": "ms",
|
|
||||||
"name": "ms",
|
|
||||||
"rawSpec": "0.7.2",
|
|
||||||
"spec": "0.7.2",
|
|
||||||
"type": "version"
|
|
||||||
},
|
|
||||||
"_requiredBy": [
|
|
||||||
"/body-parser/debug"
|
|
||||||
],
|
|
||||||
"_resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
|
|
||||||
"_shasum": "ae25cf2512b3885a1d95d7f037868d8431124765",
|
|
||||||
"_shrinkwrap": null,
|
|
||||||
"_spec": "ms@0.7.2",
|
|
||||||
"_where": "C:\\Users\\nkiboti\\workspace\\GYMApp\\GYMApp\\node_modules\\body-parser\\node_modules\\debug",
|
|
||||||
"bugs": {
|
|
||||||
"url": "https://github.com/zeit/ms/issues"
|
|
||||||
},
|
|
||||||
"component": {
|
|
||||||
"scripts": {
|
|
||||||
"ms/index.js": "index.js"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"dependencies": {},
|
|
||||||
"description": "Tiny milisecond conversion utility",
|
|
||||||
"devDependencies": {
|
|
||||||
"expect.js": "^0.3.1",
|
|
||||||
"mocha": "^3.0.2",
|
|
||||||
"serve": "^1.4.0",
|
|
||||||
"xo": "^0.17.0"
|
|
||||||
},
|
|
||||||
"directories": {},
|
|
||||||
"dist": {
|
|
||||||
"shasum": "ae25cf2512b3885a1d95d7f037868d8431124765",
|
|
||||||
"tarball": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz"
|
|
||||||
},
|
|
||||||
"files": [
|
|
||||||
"index.js"
|
|
||||||
],
|
|
||||||
"gitHead": "ac92a7e0790ba2622a74d9d60690ca0d2c070a45",
|
|
||||||
"homepage": "https://github.com/zeit/ms#readme",
|
|
||||||
"license": "MIT",
|
|
||||||
"main": "./index",
|
|
||||||
"maintainers": [
|
|
||||||
{
|
|
||||||
"name": "leo",
|
|
||||||
"email": "leo@zeit.co"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "rauchg",
|
|
||||||
"email": "rauchg@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "ms",
|
|
||||||
"optionalDependencies": {},
|
|
||||||
"readme": "ERROR: No README data found!",
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "git+https://github.com/zeit/ms.git"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"test": "xo && mocha test/index.js",
|
|
||||||
"test-browser": "serve ./test"
|
|
||||||
},
|
|
||||||
"version": "0.7.2",
|
|
||||||
"xo": {
|
|
||||||
"space": true,
|
|
||||||
"semicolon": false,
|
|
||||||
"envs": [
|
|
||||||
"mocha"
|
|
||||||
],
|
|
||||||
"rules": {
|
|
||||||
"complexity": 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
1
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/.eslintignore
generated
vendored
1
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/.eslintignore
generated
vendored
@@ -1 +0,0 @@
|
|||||||
dist
|
|
||||||
19
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/.eslintrc
generated
vendored
19
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/.eslintrc
generated
vendored
@@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
"root": true,
|
|
||||||
|
|
||||||
"extends": "@ljharb",
|
|
||||||
|
|
||||||
"rules": {
|
|
||||||
"complexity": [2, 22],
|
|
||||||
"consistent-return": [1],
|
|
||||||
"id-length": [2, { "min": 1, "max": 25, "properties": "never" }],
|
|
||||||
"indent": [2, 4],
|
|
||||||
"max-params": [2, 9],
|
|
||||||
"max-statements": [2, 36],
|
|
||||||
"no-extra-parens": [1],
|
|
||||||
"no-continue": [1],
|
|
||||||
"no-magic-numbers": 0,
|
|
||||||
"no-restricted-syntax": [2, "BreakStatement", "DebuggerStatement", "ForInStatement", "LabeledStatement", "WithStatement"],
|
|
||||||
"operator-linebreak": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
130
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/CHANGELOG.md
generated
vendored
130
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/CHANGELOG.md
generated
vendored
@@ -1,130 +0,0 @@
|
|||||||
## **6.2.1**
|
|
||||||
- [Fix] ensure `key[]=x&key[]&key[]=y` results in 3, not 2, values
|
|
||||||
- [Refactor] Be explicit and use `Object.prototype.hasOwnProperty.call`
|
|
||||||
- [Tests] remove `parallelshell` since it does not reliably report failures
|
|
||||||
- [Tests] up to `node` `v6.3`, `v5.12`
|
|
||||||
- [Dev Deps] update `tape`, `eslint`, `@ljharb/eslint-config`, `qs-iconv`
|
|
||||||
|
|
||||||
## [**6.2.0**](https://github.com/ljharb/qs/issues?milestone=36&state=closed)
|
|
||||||
- [New] pass Buffers to the encoder/decoder directly (#161)
|
|
||||||
- [New] add "encoder" and "decoder" options, for custom param encoding/decoding (#160)
|
|
||||||
- [Fix] fix compacting of nested sparse arrays (#150)
|
|
||||||
|
|
||||||
## [**6.1.0**](https://github.com/ljharb/qs/issues?milestone=35&state=closed)
|
|
||||||
- [New] allowDots option for `stringify` (#151)
|
|
||||||
- [Fix] "sort" option should work at a depth of 3 or more (#151)
|
|
||||||
- [Fix] Restore `dist` directory; will be removed in v7 (#148)
|
|
||||||
|
|
||||||
## [**6.0.2**](https://github.com/ljharb/qs/issues?milestone=33&state=closed)
|
|
||||||
- Revert ES6 requirement and restore support for node down to v0.8.
|
|
||||||
|
|
||||||
## [**6.0.1**](https://github.com/ljharb/qs/issues?milestone=32&state=closed)
|
|
||||||
- [**#127**](https://github.com/ljharb/qs/pull/127) Fix engines definition in package.json
|
|
||||||
|
|
||||||
## [**6.0.0**](https://github.com/ljharb/qs/issues?milestone=31&state=closed)
|
|
||||||
- [**#124**](https://github.com/ljharb/qs/issues/124) Use ES6 and drop support for node < v4
|
|
||||||
|
|
||||||
## **5.2.1**
|
|
||||||
- [Fix] ensure `key[]=x&key[]&key[]=y` results in 3, not 2, values
|
|
||||||
|
|
||||||
## [**5.2.0**](https://github.com/ljharb/qs/issues?milestone=30&state=closed)
|
|
||||||
- [**#64**](https://github.com/ljharb/qs/issues/64) Add option to sort object keys in the query string
|
|
||||||
|
|
||||||
## [**5.1.0**](https://github.com/ljharb/qs/issues?milestone=29&state=closed)
|
|
||||||
- [**#117**](https://github.com/ljharb/qs/issues/117) make URI encoding stringified results optional
|
|
||||||
- [**#106**](https://github.com/ljharb/qs/issues/106) Add flag `skipNulls` to optionally skip null values in stringify
|
|
||||||
|
|
||||||
## [**5.0.0**](https://github.com/ljharb/qs/issues?milestone=28&state=closed)
|
|
||||||
- [**#114**](https://github.com/ljharb/qs/issues/114) default allowDots to false
|
|
||||||
- [**#100**](https://github.com/ljharb/qs/issues/100) include dist to npm
|
|
||||||
|
|
||||||
## [**4.0.0**](https://github.com/ljharb/qs/issues?milestone=26&state=closed)
|
|
||||||
- [**#98**](https://github.com/ljharb/qs/issues/98) make returning plain objects and allowing prototype overwriting properties optional
|
|
||||||
|
|
||||||
## [**3.1.0**](https://github.com/ljharb/qs/issues?milestone=24&state=closed)
|
|
||||||
- [**#89**](https://github.com/ljharb/qs/issues/89) Add option to disable "Transform dot notation to bracket notation"
|
|
||||||
|
|
||||||
## [**3.0.0**](https://github.com/ljharb/qs/issues?milestone=23&state=closed)
|
|
||||||
- [**#80**](https://github.com/ljharb/qs/issues/80) qs.parse silently drops properties
|
|
||||||
- [**#77**](https://github.com/ljharb/qs/issues/77) Perf boost
|
|
||||||
- [**#60**](https://github.com/ljharb/qs/issues/60) Add explicit option to disable array parsing
|
|
||||||
- [**#74**](https://github.com/ljharb/qs/issues/74) Bad parse when turning array into object
|
|
||||||
- [**#81**](https://github.com/ljharb/qs/issues/81) Add a `filter` option
|
|
||||||
- [**#68**](https://github.com/ljharb/qs/issues/68) Fixed issue with recursion and passing strings into objects.
|
|
||||||
- [**#66**](https://github.com/ljharb/qs/issues/66) Add mixed array and object dot notation support Closes: #47
|
|
||||||
- [**#76**](https://github.com/ljharb/qs/issues/76) RFC 3986
|
|
||||||
- [**#85**](https://github.com/ljharb/qs/issues/85) No equal sign
|
|
||||||
- [**#84**](https://github.com/ljharb/qs/issues/84) update license attribute
|
|
||||||
|
|
||||||
## [**2.4.1**](https://github.com/ljharb/qs/issues?milestone=20&state=closed)
|
|
||||||
- [**#73**](https://github.com/ljharb/qs/issues/73) Property 'hasOwnProperty' of object #<Object> is not a function
|
|
||||||
|
|
||||||
## [**2.4.0**](https://github.com/ljharb/qs/issues?milestone=19&state=closed)
|
|
||||||
- [**#70**](https://github.com/ljharb/qs/issues/70) Add arrayFormat option
|
|
||||||
|
|
||||||
## [**2.3.3**](https://github.com/ljharb/qs/issues?milestone=18&state=closed)
|
|
||||||
- [**#59**](https://github.com/ljharb/qs/issues/59) make sure array indexes are >= 0, closes #57
|
|
||||||
- [**#58**](https://github.com/ljharb/qs/issues/58) make qs usable for browser loader
|
|
||||||
|
|
||||||
## [**2.3.2**](https://github.com/ljharb/qs/issues?milestone=17&state=closed)
|
|
||||||
- [**#55**](https://github.com/ljharb/qs/issues/55) allow merging a string into an object
|
|
||||||
|
|
||||||
## [**2.3.1**](https://github.com/ljharb/qs/issues?milestone=16&state=closed)
|
|
||||||
- [**#52**](https://github.com/ljharb/qs/issues/52) Return "undefined" and "false" instead of throwing "TypeError".
|
|
||||||
|
|
||||||
## [**2.3.0**](https://github.com/ljharb/qs/issues?milestone=15&state=closed)
|
|
||||||
- [**#50**](https://github.com/ljharb/qs/issues/50) add option to omit array indices, closes #46
|
|
||||||
|
|
||||||
## [**2.2.5**](https://github.com/ljharb/qs/issues?milestone=14&state=closed)
|
|
||||||
- [**#39**](https://github.com/ljharb/qs/issues/39) Is there an alternative to Buffer.isBuffer?
|
|
||||||
- [**#49**](https://github.com/ljharb/qs/issues/49) refactor utils.merge, fixes #45
|
|
||||||
- [**#41**](https://github.com/ljharb/qs/issues/41) avoid browserifying Buffer, for #39
|
|
||||||
|
|
||||||
## [**2.2.4**](https://github.com/ljharb/qs/issues?milestone=13&state=closed)
|
|
||||||
- [**#38**](https://github.com/ljharb/qs/issues/38) how to handle object keys beginning with a number
|
|
||||||
|
|
||||||
## [**2.2.3**](https://github.com/ljharb/qs/issues?milestone=12&state=closed)
|
|
||||||
- [**#37**](https://github.com/ljharb/qs/issues/37) parser discards first empty value in array
|
|
||||||
- [**#36**](https://github.com/ljharb/qs/issues/36) Update to lab 4.x
|
|
||||||
|
|
||||||
## [**2.2.2**](https://github.com/ljharb/qs/issues?milestone=11&state=closed)
|
|
||||||
- [**#33**](https://github.com/ljharb/qs/issues/33) Error when plain object in a value
|
|
||||||
- [**#34**](https://github.com/ljharb/qs/issues/34) use Object.prototype.hasOwnProperty.call instead of obj.hasOwnProperty
|
|
||||||
- [**#24**](https://github.com/ljharb/qs/issues/24) Changelog? Semver?
|
|
||||||
|
|
||||||
## [**2.2.1**](https://github.com/ljharb/qs/issues?milestone=10&state=closed)
|
|
||||||
- [**#32**](https://github.com/ljharb/qs/issues/32) account for circular references properly, closes #31
|
|
||||||
- [**#31**](https://github.com/ljharb/qs/issues/31) qs.parse stackoverflow on circular objects
|
|
||||||
|
|
||||||
## [**2.2.0**](https://github.com/ljharb/qs/issues?milestone=9&state=closed)
|
|
||||||
- [**#26**](https://github.com/ljharb/qs/issues/26) Don't use Buffer global if it's not present
|
|
||||||
- [**#30**](https://github.com/ljharb/qs/issues/30) Bug when merging non-object values into arrays
|
|
||||||
- [**#29**](https://github.com/ljharb/qs/issues/29) Don't call Utils.clone at the top of Utils.merge
|
|
||||||
- [**#23**](https://github.com/ljharb/qs/issues/23) Ability to not limit parameters?
|
|
||||||
|
|
||||||
## [**2.1.0**](https://github.com/ljharb/qs/issues?milestone=8&state=closed)
|
|
||||||
- [**#22**](https://github.com/ljharb/qs/issues/22) Enable using a RegExp as delimiter
|
|
||||||
|
|
||||||
## [**2.0.0**](https://github.com/ljharb/qs/issues?milestone=7&state=closed)
|
|
||||||
- [**#18**](https://github.com/ljharb/qs/issues/18) Why is there arrayLimit?
|
|
||||||
- [**#20**](https://github.com/ljharb/qs/issues/20) Configurable parametersLimit
|
|
||||||
- [**#21**](https://github.com/ljharb/qs/issues/21) make all limits optional, for #18, for #20
|
|
||||||
|
|
||||||
## [**1.2.2**](https://github.com/ljharb/qs/issues?milestone=6&state=closed)
|
|
||||||
- [**#19**](https://github.com/ljharb/qs/issues/19) Don't overwrite null values
|
|
||||||
|
|
||||||
## [**1.2.1**](https://github.com/ljharb/qs/issues?milestone=5&state=closed)
|
|
||||||
- [**#16**](https://github.com/ljharb/qs/issues/16) ignore non-string delimiters
|
|
||||||
- [**#15**](https://github.com/ljharb/qs/issues/15) Close code block
|
|
||||||
|
|
||||||
## [**1.2.0**](https://github.com/ljharb/qs/issues?milestone=4&state=closed)
|
|
||||||
- [**#12**](https://github.com/ljharb/qs/issues/12) Add optional delim argument
|
|
||||||
- [**#13**](https://github.com/ljharb/qs/issues/13) fix #11: flattened keys in array are now correctly parsed
|
|
||||||
|
|
||||||
## [**1.1.0**](https://github.com/ljharb/qs/issues?milestone=3&state=closed)
|
|
||||||
- [**#7**](https://github.com/ljharb/qs/issues/7) Empty values of a POST array disappear after being submitted
|
|
||||||
- [**#9**](https://github.com/ljharb/qs/issues/9) Should not omit equals signs (=) when value is null
|
|
||||||
- [**#6**](https://github.com/ljharb/qs/issues/6) Minor grammar fix in README
|
|
||||||
|
|
||||||
## [**1.0.2**](https://github.com/ljharb/qs/issues?milestone=2&state=closed)
|
|
||||||
- [**#5**](https://github.com/ljharb/qs/issues/5) array holes incorrectly copied into object on large index
|
|
||||||
1
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/CONTRIBUTING.md
generated
vendored
1
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/CONTRIBUTING.md
generated
vendored
@@ -1 +0,0 @@
|
|||||||
Please view our [hapijs contributing guide](https://github.com/hapijs/hapi/blob/master/CONTRIBUTING.md).
|
|
||||||
28
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/LICENSE
generated
vendored
28
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/LICENSE
generated
vendored
@@ -1,28 +0,0 @@
|
|||||||
Copyright (c) 2014 Nathan LaFreniere and other contributors.
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:
|
|
||||||
* Redistributions of source code must retain the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer.
|
|
||||||
* Redistributions in binary form must reproduce the above copyright
|
|
||||||
notice, this list of conditions and the following disclaimer in the
|
|
||||||
documentation and/or other materials provided with the distribution.
|
|
||||||
* The names of any contributors may not be used to endorse or promote
|
|
||||||
products derived from this software without specific prior written
|
|
||||||
permission.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY
|
|
||||||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
* * *
|
|
||||||
|
|
||||||
The complete list of contributors can be found at: https://github.com/hapijs/qs/graphs/contributors
|
|
||||||
376
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/README.md
generated
vendored
376
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/README.md
generated
vendored
@@ -1,376 +0,0 @@
|
|||||||
# qs
|
|
||||||
|
|
||||||
A querystring parsing and stringifying library with some added security.
|
|
||||||
|
|
||||||
[](http://travis-ci.org/ljharb/qs)
|
|
||||||
|
|
||||||
Lead Maintainer: [Jordan Harband](https://github.com/ljharb)
|
|
||||||
|
|
||||||
The **qs** module was originally created and maintained by [TJ Holowaychuk](https://github.com/visionmedia/node-querystring).
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
var qs = require('qs');
|
|
||||||
var assert = require('assert');
|
|
||||||
|
|
||||||
var obj = qs.parse('a=c');
|
|
||||||
assert.deepEqual(obj, { a: 'c' });
|
|
||||||
|
|
||||||
var str = qs.stringify(obj);
|
|
||||||
assert.equal(str, 'a=c');
|
|
||||||
```
|
|
||||||
|
|
||||||
### Parsing Objects
|
|
||||||
|
|
||||||
[](#preventEval)
|
|
||||||
```javascript
|
|
||||||
qs.parse(string, [options]);
|
|
||||||
```
|
|
||||||
|
|
||||||
**qs** allows you to create nested objects within your query strings, by surrounding the name of sub-keys with square brackets `[]`.
|
|
||||||
For example, the string `'foo[bar]=baz'` converts to:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
assert.deepEqual(qs.parse('foo[bar]=baz'), {
|
|
||||||
foo: {
|
|
||||||
bar: 'baz'
|
|
||||||
}
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
When using the `plainObjects` option the parsed value is returned as a plain object, created via `Object.create(null)` and as such you should be aware that prototype methods will not exist on it and a user may set those names to whatever value they like:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
var plainObject = qs.parse('a[hasOwnProperty]=b', { plainObjects: true });
|
|
||||||
assert.deepEqual(plainObject, { a: { hasOwnProperty: 'b' } });
|
|
||||||
```
|
|
||||||
|
|
||||||
By default parameters that would overwrite properties on the object prototype are ignored, if you wish to keep the data from those fields either use `plainObjects` as mentioned above, or set `allowPrototypes` to `true` which will allow user input to overwrite those properties. *WARNING* It is generally a bad idea to enable this option as it can cause problems when attempting to use the properties that have been overwritten. Always be careful with this option.
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
var protoObject = qs.parse('a[hasOwnProperty]=b', { allowPrototypes: true });
|
|
||||||
assert.deepEqual(protoObject, { a: { hasOwnProperty: 'b' } });
|
|
||||||
```
|
|
||||||
|
|
||||||
URI encoded strings work too:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
assert.deepEqual(qs.parse('a%5Bb%5D=c'), {
|
|
||||||
a: { b: 'c' }
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
You can also nest your objects, like `'foo[bar][baz]=foobarbaz'`:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
assert.deepEqual(qs.parse('foo[bar][baz]=foobarbaz'), {
|
|
||||||
foo: {
|
|
||||||
bar: {
|
|
||||||
baz: 'foobarbaz'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
By default, when nesting objects **qs** will only parse up to 5 children deep. This means if you attempt to parse a string like
|
|
||||||
`'a[b][c][d][e][f][g][h][i]=j'` your resulting object will be:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
var expected = {
|
|
||||||
a: {
|
|
||||||
b: {
|
|
||||||
c: {
|
|
||||||
d: {
|
|
||||||
e: {
|
|
||||||
f: {
|
|
||||||
'[g][h][i]': 'j'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
var string = 'a[b][c][d][e][f][g][h][i]=j';
|
|
||||||
assert.deepEqual(qs.parse(string), expected);
|
|
||||||
```
|
|
||||||
|
|
||||||
This depth can be overridden by passing a `depth` option to `qs.parse(string, [options])`:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
var deep = qs.parse('a[b][c][d][e][f][g][h][i]=j', { depth: 1 });
|
|
||||||
assert.deepEqual(deep, { a: { b: { '[c][d][e][f][g][h][i]': 'j' } } });
|
|
||||||
```
|
|
||||||
|
|
||||||
The depth limit helps mitigate abuse when **qs** is used to parse user input, and it is recommended to keep it a reasonably small number.
|
|
||||||
|
|
||||||
For similar reasons, by default **qs** will only parse up to 1000 parameters. This can be overridden by passing a `parameterLimit` option:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
var limited = qs.parse('a=b&c=d', { parameterLimit: 1 });
|
|
||||||
assert.deepEqual(limited, { a: 'b' });
|
|
||||||
```
|
|
||||||
|
|
||||||
An optional delimiter can also be passed:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
var delimited = qs.parse('a=b;c=d', { delimiter: ';' });
|
|
||||||
assert.deepEqual(delimited, { a: 'b', c: 'd' });
|
|
||||||
```
|
|
||||||
|
|
||||||
Delimiters can be a regular expression too:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
var regexed = qs.parse('a=b;c=d,e=f', { delimiter: /[;,]/ });
|
|
||||||
assert.deepEqual(regexed, { a: 'b', c: 'd', e: 'f' });
|
|
||||||
```
|
|
||||||
|
|
||||||
Option `allowDots` can be used to enable dot notation:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
var withDots = qs.parse('a.b=c', { allowDots: true });
|
|
||||||
assert.deepEqual(withDots, { a: { b: 'c' } });
|
|
||||||
```
|
|
||||||
|
|
||||||
### Parsing Arrays
|
|
||||||
|
|
||||||
**qs** can also parse arrays using a similar `[]` notation:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
var withArray = qs.parse('a[]=b&a[]=c');
|
|
||||||
assert.deepEqual(withArray, { a: ['b', 'c'] });
|
|
||||||
```
|
|
||||||
|
|
||||||
You may specify an index as well:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
var withIndexes = qs.parse('a[1]=c&a[0]=b');
|
|
||||||
assert.deepEqual(withIndexes, { a: ['b', 'c'] });
|
|
||||||
```
|
|
||||||
|
|
||||||
Note that the only difference between an index in an array and a key in an object is that the value between the brackets must be a number
|
|
||||||
to create an array. When creating arrays with specific indices, **qs** will compact a sparse array to only the existing values preserving
|
|
||||||
their order:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
var noSparse = qs.parse('a[1]=b&a[15]=c');
|
|
||||||
assert.deepEqual(noSparse, { a: ['b', 'c'] });
|
|
||||||
```
|
|
||||||
|
|
||||||
Note that an empty string is also a value, and will be preserved:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
var withEmptyString = qs.parse('a[]=&a[]=b');
|
|
||||||
assert.deepEqual(withEmptyString, { a: ['', 'b'] });
|
|
||||||
|
|
||||||
var withIndexedEmptyString = qs.parse('a[0]=b&a[1]=&a[2]=c');
|
|
||||||
assert.deepEqual(withIndexedEmptyString, { a: ['b', '', 'c'] });
|
|
||||||
```
|
|
||||||
|
|
||||||
**qs** will also limit specifying indices in an array to a maximum index of `20`. Any array members with an index of greater than `20` will
|
|
||||||
instead be converted to an object with the index as the key:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
var withMaxIndex = qs.parse('a[100]=b');
|
|
||||||
assert.deepEqual(withMaxIndex, { a: { '100': 'b' } });
|
|
||||||
```
|
|
||||||
|
|
||||||
This limit can be overridden by passing an `arrayLimit` option:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
var withArrayLimit = qs.parse('a[1]=b', { arrayLimit: 0 });
|
|
||||||
assert.deepEqual(withArrayLimit, { a: { '1': 'b' } });
|
|
||||||
```
|
|
||||||
|
|
||||||
To disable array parsing entirely, set `parseArrays` to `false`.
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
var noParsingArrays = qs.parse('a[]=b', { parseArrays: false });
|
|
||||||
assert.deepEqual(noParsingArrays, { a: { '0': 'b' } });
|
|
||||||
```
|
|
||||||
|
|
||||||
If you mix notations, **qs** will merge the two items into an object:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
var mixedNotation = qs.parse('a[0]=b&a[b]=c');
|
|
||||||
assert.deepEqual(mixedNotation, { a: { '0': 'b', b: 'c' } });
|
|
||||||
```
|
|
||||||
|
|
||||||
You can also create arrays of objects:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
var arraysOfObjects = qs.parse('a[][b]=c');
|
|
||||||
assert.deepEqual(arraysOfObjects, { a: [{ b: 'c' }] });
|
|
||||||
```
|
|
||||||
|
|
||||||
### Stringifying
|
|
||||||
|
|
||||||
[](#preventEval)
|
|
||||||
```javascript
|
|
||||||
qs.stringify(object, [options]);
|
|
||||||
```
|
|
||||||
|
|
||||||
When stringifying, **qs** by default URI encodes output. Objects are stringified as you would expect:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
assert.equal(qs.stringify({ a: 'b' }), 'a=b');
|
|
||||||
assert.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c');
|
|
||||||
```
|
|
||||||
|
|
||||||
This encoding can be disabled by setting the `encode` option to `false`:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
var unencoded = qs.stringify({ a: { b: 'c' } }, { encode: false });
|
|
||||||
assert.equal(unencoded, 'a[b]=c');
|
|
||||||
```
|
|
||||||
|
|
||||||
This encoding can also be replaced by a custom encoding method set as `encoder` option:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
var encoded = qs.stringify({ a: { b: 'c' } }, { encoder: function (str) {
|
|
||||||
// Passed in values `a`, `b`, `c`
|
|
||||||
return // Return encoded string
|
|
||||||
}})
|
|
||||||
```
|
|
||||||
|
|
||||||
_(Note: the `encoder` option does not apply if `encode` is `false`)_
|
|
||||||
|
|
||||||
Analogue to the `encoder` there is a `decoder` option for `parse` to override decoding of properties and values:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
var decoded = qs.parse('x=z', { decoder: function (str) {
|
|
||||||
// Passed in values `x`, `z`
|
|
||||||
return // Return decoded string
|
|
||||||
}})
|
|
||||||
```
|
|
||||||
|
|
||||||
Examples beyond this point will be shown as though the output is not URI encoded for clarity. Please note that the return values in these cases *will* be URI encoded during real usage.
|
|
||||||
|
|
||||||
When arrays are stringified, by default they are given explicit indices:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
qs.stringify({ a: ['b', 'c', 'd'] });
|
|
||||||
// 'a[0]=b&a[1]=c&a[2]=d'
|
|
||||||
```
|
|
||||||
|
|
||||||
You may override this by setting the `indices` option to `false`:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false });
|
|
||||||
// 'a=b&a=c&a=d'
|
|
||||||
```
|
|
||||||
|
|
||||||
You may use the `arrayFormat` option to specify the format of the output array
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' })
|
|
||||||
// 'a[0]=b&a[1]=c'
|
|
||||||
qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' })
|
|
||||||
// 'a[]=b&a[]=c'
|
|
||||||
qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' })
|
|
||||||
// 'a=b&a=c'
|
|
||||||
```
|
|
||||||
|
|
||||||
Empty strings and null values will omit the value, but the equals sign (=) remains in place:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
assert.equal(qs.stringify({ a: '' }), 'a=');
|
|
||||||
```
|
|
||||||
|
|
||||||
Properties that are set to `undefined` will be omitted entirely:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
assert.equal(qs.stringify({ a: null, b: undefined }), 'a=');
|
|
||||||
```
|
|
||||||
|
|
||||||
The delimiter may be overridden with stringify as well:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
assert.equal(qs.stringify({ a: 'b', c: 'd' }, { delimiter: ';' }), 'a=b;c=d');
|
|
||||||
```
|
|
||||||
|
|
||||||
Finally, you can use the `filter` option to restrict which keys will be included in the stringified output.
|
|
||||||
If you pass a function, it will be called for each key to obtain the replacement value. Otherwise, if you
|
|
||||||
pass an array, it will be used to select properties and array indices for stringification:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
function filterFunc(prefix, value) {
|
|
||||||
if (prefix == 'b') {
|
|
||||||
// Return an `undefined` value to omit a property.
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (prefix == 'e[f]') {
|
|
||||||
return value.getTime();
|
|
||||||
}
|
|
||||||
if (prefix == 'e[g][0]') {
|
|
||||||
return value * 2;
|
|
||||||
}
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
qs.stringify({ a: 'b', c: 'd', e: { f: new Date(123), g: [2] } }, { filter: filterFunc });
|
|
||||||
// 'a=b&c=d&e[f]=123&e[g][0]=4'
|
|
||||||
qs.stringify({ a: 'b', c: 'd', e: 'f' }, { filter: ['a', 'e'] });
|
|
||||||
// 'a=b&e=f'
|
|
||||||
qs.stringify({ a: ['b', 'c', 'd'], e: 'f' }, { filter: ['a', 0, 2] });
|
|
||||||
// 'a[0]=b&a[2]=d'
|
|
||||||
```
|
|
||||||
|
|
||||||
### Handling of `null` values
|
|
||||||
|
|
||||||
By default, `null` values are treated like empty strings:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
var withNull = qs.stringify({ a: null, b: '' });
|
|
||||||
assert.equal(withNull, 'a=&b=');
|
|
||||||
```
|
|
||||||
|
|
||||||
Parsing does not distinguish between parameters with and without equal signs. Both are converted to empty strings.
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
var equalsInsensitive = qs.parse('a&b=');
|
|
||||||
assert.deepEqual(equalsInsensitive, { a: '', b: '' });
|
|
||||||
```
|
|
||||||
|
|
||||||
To distinguish between `null` values and empty strings use the `strictNullHandling` flag. In the result string the `null`
|
|
||||||
values have no `=` sign:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
var strictNull = qs.stringify({ a: null, b: '' }, { strictNullHandling: true });
|
|
||||||
assert.equal(strictNull, 'a&b=');
|
|
||||||
```
|
|
||||||
|
|
||||||
To parse values without `=` back to `null` use the `strictNullHandling` flag:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
var parsedStrictNull = qs.parse('a&b=', { strictNullHandling: true });
|
|
||||||
assert.deepEqual(parsedStrictNull, { a: null, b: '' });
|
|
||||||
```
|
|
||||||
|
|
||||||
To completely skip rendering keys with `null` values, use the `skipNulls` flag:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
var nullsSkipped = qs.stringify({ a: 'b', c: null}, { skipNulls: true });
|
|
||||||
assert.equal(nullsSkipped, 'a=b');
|
|
||||||
```
|
|
||||||
|
|
||||||
### Dealing with special character sets
|
|
||||||
|
|
||||||
By default the encoding and decoding of characters is done in `utf-8`. If you
|
|
||||||
wish to encode querystrings to a different character set (i.e.
|
|
||||||
[Shift JIS](https://en.wikipedia.org/wiki/Shift_JIS)) you can use the
|
|
||||||
[`qs-iconv`](https://github.com/martinheidegger/qs-iconv) library:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
var encoder = require('qs-iconv/encoder')('shift_jis');
|
|
||||||
var shiftJISEncoded = qs.stringify({ a: 'こんにちは!' }, { encoder: encoder });
|
|
||||||
assert.equal(shiftJISEncoded, 'a=%82%B1%82%F1%82%C9%82%BF%82%CD%81I');
|
|
||||||
```
|
|
||||||
|
|
||||||
This also works for decoding of query strings:
|
|
||||||
|
|
||||||
```javascript
|
|
||||||
var decoder = require('qs-iconv/decoder')('shift_jis');
|
|
||||||
var obj = qs.parse('a=%82%B1%82%F1%82%C9%82%BF%82%CD%81I', { decoder: decoder });
|
|
||||||
assert.deepEqual(obj, { a: 'こんにちは!' });
|
|
||||||
```
|
|
||||||
486
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/dist/qs.js
generated
vendored
486
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/dist/qs.js
generated
vendored
@@ -1,486 +0,0 @@
|
|||||||
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Qs = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
var Stringify = require('./stringify');
|
|
||||||
var Parse = require('./parse');
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
stringify: Stringify,
|
|
||||||
parse: Parse
|
|
||||||
};
|
|
||||||
|
|
||||||
},{"./parse":2,"./stringify":3}],2:[function(require,module,exports){
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
var Utils = require('./utils');
|
|
||||||
|
|
||||||
var has = Object.prototype.hasOwnProperty;
|
|
||||||
|
|
||||||
var defaults = {
|
|
||||||
delimiter: '&',
|
|
||||||
depth: 5,
|
|
||||||
arrayLimit: 20,
|
|
||||||
parameterLimit: 1000,
|
|
||||||
strictNullHandling: false,
|
|
||||||
plainObjects: false,
|
|
||||||
allowPrototypes: false,
|
|
||||||
allowDots: false,
|
|
||||||
decoder: Utils.decode
|
|
||||||
};
|
|
||||||
|
|
||||||
var parseValues = function parseValues(str, options) {
|
|
||||||
var obj = {};
|
|
||||||
var parts = str.split(options.delimiter, options.parameterLimit === Infinity ? undefined : options.parameterLimit);
|
|
||||||
|
|
||||||
for (var i = 0; i < parts.length; ++i) {
|
|
||||||
var part = parts[i];
|
|
||||||
var pos = part.indexOf(']=') === -1 ? part.indexOf('=') : part.indexOf(']=') + 1;
|
|
||||||
|
|
||||||
var key, val;
|
|
||||||
if (pos === -1) {
|
|
||||||
key = options.decoder(part);
|
|
||||||
val = options.strictNullHandling ? null : '';
|
|
||||||
} else {
|
|
||||||
key = options.decoder(part.slice(0, pos));
|
|
||||||
val = options.decoder(part.slice(pos + 1));
|
|
||||||
}
|
|
||||||
if (has.call(obj, key)) {
|
|
||||||
obj[key] = [].concat(obj[key]).concat(val);
|
|
||||||
} else {
|
|
||||||
obj[key] = val;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return obj;
|
|
||||||
};
|
|
||||||
|
|
||||||
var parseObject = function parseObject(chain, val, options) {
|
|
||||||
if (!chain.length) {
|
|
||||||
return val;
|
|
||||||
}
|
|
||||||
|
|
||||||
var root = chain.shift();
|
|
||||||
|
|
||||||
var obj;
|
|
||||||
if (root === '[]') {
|
|
||||||
obj = [];
|
|
||||||
obj = obj.concat(parseObject(chain, val, options));
|
|
||||||
} else {
|
|
||||||
obj = options.plainObjects ? Object.create(null) : {};
|
|
||||||
var cleanRoot = root[0] === '[' && root[root.length - 1] === ']' ? root.slice(1, root.length - 1) : root;
|
|
||||||
var index = parseInt(cleanRoot, 10);
|
|
||||||
if (
|
|
||||||
!isNaN(index) &&
|
|
||||||
root !== cleanRoot &&
|
|
||||||
String(index) === cleanRoot &&
|
|
||||||
index >= 0 &&
|
|
||||||
(options.parseArrays && index <= options.arrayLimit)
|
|
||||||
) {
|
|
||||||
obj = [];
|
|
||||||
obj[index] = parseObject(chain, val, options);
|
|
||||||
} else {
|
|
||||||
obj[cleanRoot] = parseObject(chain, val, options);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return obj;
|
|
||||||
};
|
|
||||||
|
|
||||||
var parseKeys = function parseKeys(givenKey, val, options) {
|
|
||||||
if (!givenKey) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Transform dot notation to bracket notation
|
|
||||||
var key = options.allowDots ? givenKey.replace(/\.([^\.\[]+)/g, '[$1]') : givenKey;
|
|
||||||
|
|
||||||
// The regex chunks
|
|
||||||
|
|
||||||
var parent = /^([^\[\]]*)/;
|
|
||||||
var child = /(\[[^\[\]]*\])/g;
|
|
||||||
|
|
||||||
// Get the parent
|
|
||||||
|
|
||||||
var segment = parent.exec(key);
|
|
||||||
|
|
||||||
// Stash the parent if it exists
|
|
||||||
|
|
||||||
var keys = [];
|
|
||||||
if (segment[1]) {
|
|
||||||
// If we aren't using plain objects, optionally prefix keys
|
|
||||||
// that would overwrite object prototype properties
|
|
||||||
if (!options.plainObjects && has.call(Object.prototype, segment[1])) {
|
|
||||||
if (!options.allowPrototypes) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
keys.push(segment[1]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Loop through children appending to the array until we hit depth
|
|
||||||
|
|
||||||
var i = 0;
|
|
||||||
while ((segment = child.exec(key)) !== null && i < options.depth) {
|
|
||||||
i += 1;
|
|
||||||
if (!options.plainObjects && has.call(Object.prototype, segment[1].replace(/\[|\]/g, ''))) {
|
|
||||||
if (!options.allowPrototypes) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
keys.push(segment[1]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// If there's a remainder, just add whatever is left
|
|
||||||
|
|
||||||
if (segment) {
|
|
||||||
keys.push('[' + key.slice(segment.index) + ']');
|
|
||||||
}
|
|
||||||
|
|
||||||
return parseObject(keys, val, options);
|
|
||||||
};
|
|
||||||
|
|
||||||
module.exports = function (str, opts) {
|
|
||||||
var options = opts || {};
|
|
||||||
|
|
||||||
if (options.decoder !== null && options.decoder !== undefined && typeof options.decoder !== 'function') {
|
|
||||||
throw new TypeError('Decoder has to be a function.');
|
|
||||||
}
|
|
||||||
|
|
||||||
options.delimiter = typeof options.delimiter === 'string' || Utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter;
|
|
||||||
options.depth = typeof options.depth === 'number' ? options.depth : defaults.depth;
|
|
||||||
options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : defaults.arrayLimit;
|
|
||||||
options.parseArrays = options.parseArrays !== false;
|
|
||||||
options.decoder = typeof options.decoder === 'function' ? options.decoder : defaults.decoder;
|
|
||||||
options.allowDots = typeof options.allowDots === 'boolean' ? options.allowDots : defaults.allowDots;
|
|
||||||
options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : defaults.plainObjects;
|
|
||||||
options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : defaults.allowPrototypes;
|
|
||||||
options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : defaults.parameterLimit;
|
|
||||||
options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;
|
|
||||||
|
|
||||||
if (str === '' || str === null || typeof str === 'undefined') {
|
|
||||||
return options.plainObjects ? Object.create(null) : {};
|
|
||||||
}
|
|
||||||
|
|
||||||
var tempObj = typeof str === 'string' ? parseValues(str, options) : str;
|
|
||||||
var obj = options.plainObjects ? Object.create(null) : {};
|
|
||||||
|
|
||||||
// Iterate over the keys and setup the new object
|
|
||||||
|
|
||||||
var keys = Object.keys(tempObj);
|
|
||||||
for (var i = 0; i < keys.length; ++i) {
|
|
||||||
var key = keys[i];
|
|
||||||
var newObj = parseKeys(key, tempObj[key], options);
|
|
||||||
obj = Utils.merge(obj, newObj, options);
|
|
||||||
}
|
|
||||||
|
|
||||||
return Utils.compact(obj);
|
|
||||||
};
|
|
||||||
|
|
||||||
},{"./utils":4}],3:[function(require,module,exports){
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
var Utils = require('./utils');
|
|
||||||
|
|
||||||
var arrayPrefixGenerators = {
|
|
||||||
brackets: function brackets(prefix) {
|
|
||||||
return prefix + '[]';
|
|
||||||
},
|
|
||||||
indices: function indices(prefix, key) {
|
|
||||||
return prefix + '[' + key + ']';
|
|
||||||
},
|
|
||||||
repeat: function repeat(prefix) {
|
|
||||||
return prefix;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var defaults = {
|
|
||||||
delimiter: '&',
|
|
||||||
strictNullHandling: false,
|
|
||||||
skipNulls: false,
|
|
||||||
encode: true,
|
|
||||||
encoder: Utils.encode
|
|
||||||
};
|
|
||||||
|
|
||||||
var stringify = function stringify(object, prefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots) {
|
|
||||||
var obj = object;
|
|
||||||
if (typeof filter === 'function') {
|
|
||||||
obj = filter(prefix, obj);
|
|
||||||
} else if (obj instanceof Date) {
|
|
||||||
obj = obj.toISOString();
|
|
||||||
} else if (obj === null) {
|
|
||||||
if (strictNullHandling) {
|
|
||||||
return encoder ? encoder(prefix) : prefix;
|
|
||||||
}
|
|
||||||
|
|
||||||
obj = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || Utils.isBuffer(obj)) {
|
|
||||||
if (encoder) {
|
|
||||||
return [encoder(prefix) + '=' + encoder(obj)];
|
|
||||||
}
|
|
||||||
return [prefix + '=' + String(obj)];
|
|
||||||
}
|
|
||||||
|
|
||||||
var values = [];
|
|
||||||
|
|
||||||
if (typeof obj === 'undefined') {
|
|
||||||
return values;
|
|
||||||
}
|
|
||||||
|
|
||||||
var objKeys;
|
|
||||||
if (Array.isArray(filter)) {
|
|
||||||
objKeys = filter;
|
|
||||||
} else {
|
|
||||||
var keys = Object.keys(obj);
|
|
||||||
objKeys = sort ? keys.sort(sort) : keys;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (var i = 0; i < objKeys.length; ++i) {
|
|
||||||
var key = objKeys[i];
|
|
||||||
|
|
||||||
if (skipNulls && obj[key] === null) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Array.isArray(obj)) {
|
|
||||||
values = values.concat(stringify(obj[key], generateArrayPrefix(prefix, key), generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots));
|
|
||||||
} else {
|
|
||||||
values = values.concat(stringify(obj[key], prefix + (allowDots ? '.' + key : '[' + key + ']'), generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return values;
|
|
||||||
};
|
|
||||||
|
|
||||||
module.exports = function (object, opts) {
|
|
||||||
var obj = object;
|
|
||||||
var options = opts || {};
|
|
||||||
var delimiter = typeof options.delimiter === 'undefined' ? defaults.delimiter : options.delimiter;
|
|
||||||
var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;
|
|
||||||
var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : defaults.skipNulls;
|
|
||||||
var encode = typeof options.encode === 'boolean' ? options.encode : defaults.encode;
|
|
||||||
var encoder = encode ? (typeof options.encoder === 'function' ? options.encoder : defaults.encoder) : null;
|
|
||||||
var sort = typeof options.sort === 'function' ? options.sort : null;
|
|
||||||
var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots;
|
|
||||||
var objKeys;
|
|
||||||
var filter;
|
|
||||||
|
|
||||||
if (options.encoder !== null && options.encoder !== undefined && typeof options.encoder !== 'function') {
|
|
||||||
throw new TypeError('Encoder has to be a function.');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof options.filter === 'function') {
|
|
||||||
filter = options.filter;
|
|
||||||
obj = filter('', obj);
|
|
||||||
} else if (Array.isArray(options.filter)) {
|
|
||||||
objKeys = filter = options.filter;
|
|
||||||
}
|
|
||||||
|
|
||||||
var keys = [];
|
|
||||||
|
|
||||||
if (typeof obj !== 'object' || obj === null) {
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
|
|
||||||
var arrayFormat;
|
|
||||||
if (options.arrayFormat in arrayPrefixGenerators) {
|
|
||||||
arrayFormat = options.arrayFormat;
|
|
||||||
} else if ('indices' in options) {
|
|
||||||
arrayFormat = options.indices ? 'indices' : 'repeat';
|
|
||||||
} else {
|
|
||||||
arrayFormat = 'indices';
|
|
||||||
}
|
|
||||||
|
|
||||||
var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];
|
|
||||||
|
|
||||||
if (!objKeys) {
|
|
||||||
objKeys = Object.keys(obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sort) {
|
|
||||||
objKeys.sort(sort);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (var i = 0; i < objKeys.length; ++i) {
|
|
||||||
var key = objKeys[i];
|
|
||||||
|
|
||||||
if (skipNulls && obj[key] === null) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
keys = keys.concat(stringify(obj[key], key, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots));
|
|
||||||
}
|
|
||||||
|
|
||||||
return keys.join(delimiter);
|
|
||||||
};
|
|
||||||
|
|
||||||
},{"./utils":4}],4:[function(require,module,exports){
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
var hexTable = (function () {
|
|
||||||
var array = new Array(256);
|
|
||||||
for (var i = 0; i < 256; ++i) {
|
|
||||||
array[i] = '%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase();
|
|
||||||
}
|
|
||||||
|
|
||||||
return array;
|
|
||||||
}());
|
|
||||||
|
|
||||||
exports.arrayToObject = function (source, options) {
|
|
||||||
var obj = options.plainObjects ? Object.create(null) : {};
|
|
||||||
for (var i = 0; i < source.length; ++i) {
|
|
||||||
if (typeof source[i] !== 'undefined') {
|
|
||||||
obj[i] = source[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return obj;
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.merge = function (target, source, options) {
|
|
||||||
if (!source) {
|
|
||||||
return target;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof source !== 'object') {
|
|
||||||
if (Array.isArray(target)) {
|
|
||||||
target.push(source);
|
|
||||||
} else if (typeof target === 'object') {
|
|
||||||
target[source] = true;
|
|
||||||
} else {
|
|
||||||
return [target, source];
|
|
||||||
}
|
|
||||||
|
|
||||||
return target;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof target !== 'object') {
|
|
||||||
return [target].concat(source);
|
|
||||||
}
|
|
||||||
|
|
||||||
var mergeTarget = target;
|
|
||||||
if (Array.isArray(target) && !Array.isArray(source)) {
|
|
||||||
mergeTarget = exports.arrayToObject(target, options);
|
|
||||||
}
|
|
||||||
|
|
||||||
return Object.keys(source).reduce(function (acc, key) {
|
|
||||||
var value = source[key];
|
|
||||||
|
|
||||||
if (Object.prototype.hasOwnProperty.call(acc, key)) {
|
|
||||||
acc[key] = exports.merge(acc[key], value, options);
|
|
||||||
} else {
|
|
||||||
acc[key] = value;
|
|
||||||
}
|
|
||||||
return acc;
|
|
||||||
}, mergeTarget);
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.decode = function (str) {
|
|
||||||
try {
|
|
||||||
return decodeURIComponent(str.replace(/\+/g, ' '));
|
|
||||||
} catch (e) {
|
|
||||||
return str;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.encode = function (str) {
|
|
||||||
// This code was originally written by Brian White (mscdex) for the io.js core querystring library.
|
|
||||||
// It has been adapted here for stricter adherence to RFC 3986
|
|
||||||
if (str.length === 0) {
|
|
||||||
return str;
|
|
||||||
}
|
|
||||||
|
|
||||||
var string = typeof str === 'string' ? str : String(str);
|
|
||||||
|
|
||||||
var out = '';
|
|
||||||
for (var i = 0; i < string.length; ++i) {
|
|
||||||
var c = string.charCodeAt(i);
|
|
||||||
|
|
||||||
if (
|
|
||||||
c === 0x2D || // -
|
|
||||||
c === 0x2E || // .
|
|
||||||
c === 0x5F || // _
|
|
||||||
c === 0x7E || // ~
|
|
||||||
(c >= 0x30 && c <= 0x39) || // 0-9
|
|
||||||
(c >= 0x41 && c <= 0x5A) || // a-z
|
|
||||||
(c >= 0x61 && c <= 0x7A) // A-Z
|
|
||||||
) {
|
|
||||||
out += string.charAt(i);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (c < 0x80) {
|
|
||||||
out = out + hexTable[c];
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (c < 0x800) {
|
|
||||||
out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (c < 0xD800 || c >= 0xE000) {
|
|
||||||
out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
i += 1;
|
|
||||||
c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));
|
|
||||||
out += hexTable[0xF0 | (c >> 18)] + hexTable[0x80 | ((c >> 12) & 0x3F)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)];
|
|
||||||
}
|
|
||||||
|
|
||||||
return out;
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.compact = function (obj, references) {
|
|
||||||
if (typeof obj !== 'object' || obj === null) {
|
|
||||||
return obj;
|
|
||||||
}
|
|
||||||
|
|
||||||
var refs = references || [];
|
|
||||||
var lookup = refs.indexOf(obj);
|
|
||||||
if (lookup !== -1) {
|
|
||||||
return refs[lookup];
|
|
||||||
}
|
|
||||||
|
|
||||||
refs.push(obj);
|
|
||||||
|
|
||||||
if (Array.isArray(obj)) {
|
|
||||||
var compacted = [];
|
|
||||||
|
|
||||||
for (var i = 0; i < obj.length; ++i) {
|
|
||||||
if (obj[i] && typeof obj[i] === 'object') {
|
|
||||||
compacted.push(exports.compact(obj[i], refs));
|
|
||||||
} else if (typeof obj[i] !== 'undefined') {
|
|
||||||
compacted.push(obj[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return compacted;
|
|
||||||
}
|
|
||||||
|
|
||||||
var keys = Object.keys(obj);
|
|
||||||
for (var j = 0; j < keys.length; ++j) {
|
|
||||||
var key = keys[j];
|
|
||||||
obj[key] = exports.compact(obj[key], refs);
|
|
||||||
}
|
|
||||||
|
|
||||||
return obj;
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.isRegExp = function (obj) {
|
|
||||||
return Object.prototype.toString.call(obj) === '[object RegExp]';
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.isBuffer = function (obj) {
|
|
||||||
if (obj === null || typeof obj === 'undefined') {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));
|
|
||||||
};
|
|
||||||
|
|
||||||
},{}]},{},[1])(1)
|
|
||||||
});
|
|
||||||
9
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/lib/index.js
generated
vendored
9
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/lib/index.js
generated
vendored
@@ -1,9 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
var Stringify = require('./stringify');
|
|
||||||
var Parse = require('./parse');
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
stringify: Stringify,
|
|
||||||
parse: Parse
|
|
||||||
};
|
|
||||||
166
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/lib/parse.js
generated
vendored
166
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/lib/parse.js
generated
vendored
@@ -1,166 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
var Utils = require('./utils');
|
|
||||||
|
|
||||||
var has = Object.prototype.hasOwnProperty;
|
|
||||||
|
|
||||||
var defaults = {
|
|
||||||
delimiter: '&',
|
|
||||||
depth: 5,
|
|
||||||
arrayLimit: 20,
|
|
||||||
parameterLimit: 1000,
|
|
||||||
strictNullHandling: false,
|
|
||||||
plainObjects: false,
|
|
||||||
allowPrototypes: false,
|
|
||||||
allowDots: false,
|
|
||||||
decoder: Utils.decode
|
|
||||||
};
|
|
||||||
|
|
||||||
var parseValues = function parseValues(str, options) {
|
|
||||||
var obj = {};
|
|
||||||
var parts = str.split(options.delimiter, options.parameterLimit === Infinity ? undefined : options.parameterLimit);
|
|
||||||
|
|
||||||
for (var i = 0; i < parts.length; ++i) {
|
|
||||||
var part = parts[i];
|
|
||||||
var pos = part.indexOf(']=') === -1 ? part.indexOf('=') : part.indexOf(']=') + 1;
|
|
||||||
|
|
||||||
var key, val;
|
|
||||||
if (pos === -1) {
|
|
||||||
key = options.decoder(part);
|
|
||||||
val = options.strictNullHandling ? null : '';
|
|
||||||
} else {
|
|
||||||
key = options.decoder(part.slice(0, pos));
|
|
||||||
val = options.decoder(part.slice(pos + 1));
|
|
||||||
}
|
|
||||||
if (has.call(obj, key)) {
|
|
||||||
obj[key] = [].concat(obj[key]).concat(val);
|
|
||||||
} else {
|
|
||||||
obj[key] = val;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return obj;
|
|
||||||
};
|
|
||||||
|
|
||||||
var parseObject = function parseObject(chain, val, options) {
|
|
||||||
if (!chain.length) {
|
|
||||||
return val;
|
|
||||||
}
|
|
||||||
|
|
||||||
var root = chain.shift();
|
|
||||||
|
|
||||||
var obj;
|
|
||||||
if (root === '[]') {
|
|
||||||
obj = [];
|
|
||||||
obj = obj.concat(parseObject(chain, val, options));
|
|
||||||
} else {
|
|
||||||
obj = options.plainObjects ? Object.create(null) : {};
|
|
||||||
var cleanRoot = root[0] === '[' && root[root.length - 1] === ']' ? root.slice(1, root.length - 1) : root;
|
|
||||||
var index = parseInt(cleanRoot, 10);
|
|
||||||
if (
|
|
||||||
!isNaN(index) &&
|
|
||||||
root !== cleanRoot &&
|
|
||||||
String(index) === cleanRoot &&
|
|
||||||
index >= 0 &&
|
|
||||||
(options.parseArrays && index <= options.arrayLimit)
|
|
||||||
) {
|
|
||||||
obj = [];
|
|
||||||
obj[index] = parseObject(chain, val, options);
|
|
||||||
} else {
|
|
||||||
obj[cleanRoot] = parseObject(chain, val, options);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return obj;
|
|
||||||
};
|
|
||||||
|
|
||||||
var parseKeys = function parseKeys(givenKey, val, options) {
|
|
||||||
if (!givenKey) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Transform dot notation to bracket notation
|
|
||||||
var key = options.allowDots ? givenKey.replace(/\.([^\.\[]+)/g, '[$1]') : givenKey;
|
|
||||||
|
|
||||||
// The regex chunks
|
|
||||||
|
|
||||||
var parent = /^([^\[\]]*)/;
|
|
||||||
var child = /(\[[^\[\]]*\])/g;
|
|
||||||
|
|
||||||
// Get the parent
|
|
||||||
|
|
||||||
var segment = parent.exec(key);
|
|
||||||
|
|
||||||
// Stash the parent if it exists
|
|
||||||
|
|
||||||
var keys = [];
|
|
||||||
if (segment[1]) {
|
|
||||||
// If we aren't using plain objects, optionally prefix keys
|
|
||||||
// that would overwrite object prototype properties
|
|
||||||
if (!options.plainObjects && has.call(Object.prototype, segment[1])) {
|
|
||||||
if (!options.allowPrototypes) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
keys.push(segment[1]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Loop through children appending to the array until we hit depth
|
|
||||||
|
|
||||||
var i = 0;
|
|
||||||
while ((segment = child.exec(key)) !== null && i < options.depth) {
|
|
||||||
i += 1;
|
|
||||||
if (!options.plainObjects && has.call(Object.prototype, segment[1].replace(/\[|\]/g, ''))) {
|
|
||||||
if (!options.allowPrototypes) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
keys.push(segment[1]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// If there's a remainder, just add whatever is left
|
|
||||||
|
|
||||||
if (segment) {
|
|
||||||
keys.push('[' + key.slice(segment.index) + ']');
|
|
||||||
}
|
|
||||||
|
|
||||||
return parseObject(keys, val, options);
|
|
||||||
};
|
|
||||||
|
|
||||||
module.exports = function (str, opts) {
|
|
||||||
var options = opts || {};
|
|
||||||
|
|
||||||
if (options.decoder !== null && options.decoder !== undefined && typeof options.decoder !== 'function') {
|
|
||||||
throw new TypeError('Decoder has to be a function.');
|
|
||||||
}
|
|
||||||
|
|
||||||
options.delimiter = typeof options.delimiter === 'string' || Utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter;
|
|
||||||
options.depth = typeof options.depth === 'number' ? options.depth : defaults.depth;
|
|
||||||
options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : defaults.arrayLimit;
|
|
||||||
options.parseArrays = options.parseArrays !== false;
|
|
||||||
options.decoder = typeof options.decoder === 'function' ? options.decoder : defaults.decoder;
|
|
||||||
options.allowDots = typeof options.allowDots === 'boolean' ? options.allowDots : defaults.allowDots;
|
|
||||||
options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : defaults.plainObjects;
|
|
||||||
options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : defaults.allowPrototypes;
|
|
||||||
options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : defaults.parameterLimit;
|
|
||||||
options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;
|
|
||||||
|
|
||||||
if (str === '' || str === null || typeof str === 'undefined') {
|
|
||||||
return options.plainObjects ? Object.create(null) : {};
|
|
||||||
}
|
|
||||||
|
|
||||||
var tempObj = typeof str === 'string' ? parseValues(str, options) : str;
|
|
||||||
var obj = options.plainObjects ? Object.create(null) : {};
|
|
||||||
|
|
||||||
// Iterate over the keys and setup the new object
|
|
||||||
|
|
||||||
var keys = Object.keys(tempObj);
|
|
||||||
for (var i = 0; i < keys.length; ++i) {
|
|
||||||
var key = keys[i];
|
|
||||||
var newObj = parseKeys(key, tempObj[key], options);
|
|
||||||
obj = Utils.merge(obj, newObj, options);
|
|
||||||
}
|
|
||||||
|
|
||||||
return Utils.compact(obj);
|
|
||||||
};
|
|
||||||
137
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/lib/stringify.js
generated
vendored
137
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/lib/stringify.js
generated
vendored
@@ -1,137 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
var Utils = require('./utils');
|
|
||||||
|
|
||||||
var arrayPrefixGenerators = {
|
|
||||||
brackets: function brackets(prefix) {
|
|
||||||
return prefix + '[]';
|
|
||||||
},
|
|
||||||
indices: function indices(prefix, key) {
|
|
||||||
return prefix + '[' + key + ']';
|
|
||||||
},
|
|
||||||
repeat: function repeat(prefix) {
|
|
||||||
return prefix;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var defaults = {
|
|
||||||
delimiter: '&',
|
|
||||||
strictNullHandling: false,
|
|
||||||
skipNulls: false,
|
|
||||||
encode: true,
|
|
||||||
encoder: Utils.encode
|
|
||||||
};
|
|
||||||
|
|
||||||
var stringify = function stringify(object, prefix, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots) {
|
|
||||||
var obj = object;
|
|
||||||
if (typeof filter === 'function') {
|
|
||||||
obj = filter(prefix, obj);
|
|
||||||
} else if (obj instanceof Date) {
|
|
||||||
obj = obj.toISOString();
|
|
||||||
} else if (obj === null) {
|
|
||||||
if (strictNullHandling) {
|
|
||||||
return encoder ? encoder(prefix) : prefix;
|
|
||||||
}
|
|
||||||
|
|
||||||
obj = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || Utils.isBuffer(obj)) {
|
|
||||||
if (encoder) {
|
|
||||||
return [encoder(prefix) + '=' + encoder(obj)];
|
|
||||||
}
|
|
||||||
return [prefix + '=' + String(obj)];
|
|
||||||
}
|
|
||||||
|
|
||||||
var values = [];
|
|
||||||
|
|
||||||
if (typeof obj === 'undefined') {
|
|
||||||
return values;
|
|
||||||
}
|
|
||||||
|
|
||||||
var objKeys;
|
|
||||||
if (Array.isArray(filter)) {
|
|
||||||
objKeys = filter;
|
|
||||||
} else {
|
|
||||||
var keys = Object.keys(obj);
|
|
||||||
objKeys = sort ? keys.sort(sort) : keys;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (var i = 0; i < objKeys.length; ++i) {
|
|
||||||
var key = objKeys[i];
|
|
||||||
|
|
||||||
if (skipNulls && obj[key] === null) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Array.isArray(obj)) {
|
|
||||||
values = values.concat(stringify(obj[key], generateArrayPrefix(prefix, key), generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots));
|
|
||||||
} else {
|
|
||||||
values = values.concat(stringify(obj[key], prefix + (allowDots ? '.' + key : '[' + key + ']'), generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return values;
|
|
||||||
};
|
|
||||||
|
|
||||||
module.exports = function (object, opts) {
|
|
||||||
var obj = object;
|
|
||||||
var options = opts || {};
|
|
||||||
var delimiter = typeof options.delimiter === 'undefined' ? defaults.delimiter : options.delimiter;
|
|
||||||
var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;
|
|
||||||
var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : defaults.skipNulls;
|
|
||||||
var encode = typeof options.encode === 'boolean' ? options.encode : defaults.encode;
|
|
||||||
var encoder = encode ? (typeof options.encoder === 'function' ? options.encoder : defaults.encoder) : null;
|
|
||||||
var sort = typeof options.sort === 'function' ? options.sort : null;
|
|
||||||
var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots;
|
|
||||||
var objKeys;
|
|
||||||
var filter;
|
|
||||||
|
|
||||||
if (options.encoder !== null && options.encoder !== undefined && typeof options.encoder !== 'function') {
|
|
||||||
throw new TypeError('Encoder has to be a function.');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof options.filter === 'function') {
|
|
||||||
filter = options.filter;
|
|
||||||
obj = filter('', obj);
|
|
||||||
} else if (Array.isArray(options.filter)) {
|
|
||||||
objKeys = filter = options.filter;
|
|
||||||
}
|
|
||||||
|
|
||||||
var keys = [];
|
|
||||||
|
|
||||||
if (typeof obj !== 'object' || obj === null) {
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
|
|
||||||
var arrayFormat;
|
|
||||||
if (options.arrayFormat in arrayPrefixGenerators) {
|
|
||||||
arrayFormat = options.arrayFormat;
|
|
||||||
} else if ('indices' in options) {
|
|
||||||
arrayFormat = options.indices ? 'indices' : 'repeat';
|
|
||||||
} else {
|
|
||||||
arrayFormat = 'indices';
|
|
||||||
}
|
|
||||||
|
|
||||||
var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];
|
|
||||||
|
|
||||||
if (!objKeys) {
|
|
||||||
objKeys = Object.keys(obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (sort) {
|
|
||||||
objKeys.sort(sort);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (var i = 0; i < objKeys.length; ++i) {
|
|
||||||
var key = objKeys[i];
|
|
||||||
|
|
||||||
if (skipNulls && obj[key] === null) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
keys = keys.concat(stringify(obj[key], key, generateArrayPrefix, strictNullHandling, skipNulls, encoder, filter, sort, allowDots));
|
|
||||||
}
|
|
||||||
|
|
||||||
return keys.join(delimiter);
|
|
||||||
};
|
|
||||||
164
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/lib/utils.js
generated
vendored
164
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/lib/utils.js
generated
vendored
@@ -1,164 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
var hexTable = (function () {
|
|
||||||
var array = new Array(256);
|
|
||||||
for (var i = 0; i < 256; ++i) {
|
|
||||||
array[i] = '%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase();
|
|
||||||
}
|
|
||||||
|
|
||||||
return array;
|
|
||||||
}());
|
|
||||||
|
|
||||||
exports.arrayToObject = function (source, options) {
|
|
||||||
var obj = options.plainObjects ? Object.create(null) : {};
|
|
||||||
for (var i = 0; i < source.length; ++i) {
|
|
||||||
if (typeof source[i] !== 'undefined') {
|
|
||||||
obj[i] = source[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return obj;
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.merge = function (target, source, options) {
|
|
||||||
if (!source) {
|
|
||||||
return target;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof source !== 'object') {
|
|
||||||
if (Array.isArray(target)) {
|
|
||||||
target.push(source);
|
|
||||||
} else if (typeof target === 'object') {
|
|
||||||
target[source] = true;
|
|
||||||
} else {
|
|
||||||
return [target, source];
|
|
||||||
}
|
|
||||||
|
|
||||||
return target;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof target !== 'object') {
|
|
||||||
return [target].concat(source);
|
|
||||||
}
|
|
||||||
|
|
||||||
var mergeTarget = target;
|
|
||||||
if (Array.isArray(target) && !Array.isArray(source)) {
|
|
||||||
mergeTarget = exports.arrayToObject(target, options);
|
|
||||||
}
|
|
||||||
|
|
||||||
return Object.keys(source).reduce(function (acc, key) {
|
|
||||||
var value = source[key];
|
|
||||||
|
|
||||||
if (Object.prototype.hasOwnProperty.call(acc, key)) {
|
|
||||||
acc[key] = exports.merge(acc[key], value, options);
|
|
||||||
} else {
|
|
||||||
acc[key] = value;
|
|
||||||
}
|
|
||||||
return acc;
|
|
||||||
}, mergeTarget);
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.decode = function (str) {
|
|
||||||
try {
|
|
||||||
return decodeURIComponent(str.replace(/\+/g, ' '));
|
|
||||||
} catch (e) {
|
|
||||||
return str;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.encode = function (str) {
|
|
||||||
// This code was originally written by Brian White (mscdex) for the io.js core querystring library.
|
|
||||||
// It has been adapted here for stricter adherence to RFC 3986
|
|
||||||
if (str.length === 0) {
|
|
||||||
return str;
|
|
||||||
}
|
|
||||||
|
|
||||||
var string = typeof str === 'string' ? str : String(str);
|
|
||||||
|
|
||||||
var out = '';
|
|
||||||
for (var i = 0; i < string.length; ++i) {
|
|
||||||
var c = string.charCodeAt(i);
|
|
||||||
|
|
||||||
if (
|
|
||||||
c === 0x2D || // -
|
|
||||||
c === 0x2E || // .
|
|
||||||
c === 0x5F || // _
|
|
||||||
c === 0x7E || // ~
|
|
||||||
(c >= 0x30 && c <= 0x39) || // 0-9
|
|
||||||
(c >= 0x41 && c <= 0x5A) || // a-z
|
|
||||||
(c >= 0x61 && c <= 0x7A) // A-Z
|
|
||||||
) {
|
|
||||||
out += string.charAt(i);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (c < 0x80) {
|
|
||||||
out = out + hexTable[c];
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (c < 0x800) {
|
|
||||||
out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (c < 0xD800 || c >= 0xE000) {
|
|
||||||
out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
i += 1;
|
|
||||||
c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));
|
|
||||||
out += hexTable[0xF0 | (c >> 18)] + hexTable[0x80 | ((c >> 12) & 0x3F)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)];
|
|
||||||
}
|
|
||||||
|
|
||||||
return out;
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.compact = function (obj, references) {
|
|
||||||
if (typeof obj !== 'object' || obj === null) {
|
|
||||||
return obj;
|
|
||||||
}
|
|
||||||
|
|
||||||
var refs = references || [];
|
|
||||||
var lookup = refs.indexOf(obj);
|
|
||||||
if (lookup !== -1) {
|
|
||||||
return refs[lookup];
|
|
||||||
}
|
|
||||||
|
|
||||||
refs.push(obj);
|
|
||||||
|
|
||||||
if (Array.isArray(obj)) {
|
|
||||||
var compacted = [];
|
|
||||||
|
|
||||||
for (var i = 0; i < obj.length; ++i) {
|
|
||||||
if (obj[i] && typeof obj[i] === 'object') {
|
|
||||||
compacted.push(exports.compact(obj[i], refs));
|
|
||||||
} else if (typeof obj[i] !== 'undefined') {
|
|
||||||
compacted.push(obj[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return compacted;
|
|
||||||
}
|
|
||||||
|
|
||||||
var keys = Object.keys(obj);
|
|
||||||
for (var j = 0; j < keys.length; ++j) {
|
|
||||||
var key = keys[j];
|
|
||||||
obj[key] = exports.compact(obj[key], refs);
|
|
||||||
}
|
|
||||||
|
|
||||||
return obj;
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.isRegExp = function (obj) {
|
|
||||||
return Object.prototype.toString.call(obj) === '[object RegExp]';
|
|
||||||
};
|
|
||||||
|
|
||||||
exports.isBuffer = function (obj) {
|
|
||||||
if (obj === null || typeof obj === 'undefined') {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));
|
|
||||||
};
|
|
||||||
120
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/package.json
generated
vendored
120
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/package.json
generated
vendored
@@ -1,120 +0,0 @@
|
|||||||
{
|
|
||||||
"_args": [
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"raw": "qs@6.2.1",
|
|
||||||
"scope": null,
|
|
||||||
"escapedName": "qs",
|
|
||||||
"name": "qs",
|
|
||||||
"rawSpec": "6.2.1",
|
|
||||||
"spec": "6.2.1",
|
|
||||||
"type": "version"
|
|
||||||
},
|
|
||||||
"C:\\Users\\nkiboti\\workspace\\GYMApp\\GYMApp\\node_modules\\body-parser"
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"_from": "qs@6.2.1",
|
|
||||||
"_id": "qs@6.2.1",
|
|
||||||
"_inCache": true,
|
|
||||||
"_location": "/body-parser/qs",
|
|
||||||
"_nodeVersion": "6.3.0",
|
|
||||||
"_npmOperationalInternal": {
|
|
||||||
"host": "packages-12-west.internal.npmjs.com",
|
|
||||||
"tmp": "tmp/qs-6.2.1.tgz_1469044929716_0.06957711698487401"
|
|
||||||
},
|
|
||||||
"_npmUser": {
|
|
||||||
"name": "ljharb",
|
|
||||||
"email": "ljharb@gmail.com"
|
|
||||||
},
|
|
||||||
"_npmVersion": "3.10.3",
|
|
||||||
"_phantomChildren": {},
|
|
||||||
"_requested": {
|
|
||||||
"raw": "qs@6.2.1",
|
|
||||||
"scope": null,
|
|
||||||
"escapedName": "qs",
|
|
||||||
"name": "qs",
|
|
||||||
"rawSpec": "6.2.1",
|
|
||||||
"spec": "6.2.1",
|
|
||||||
"type": "version"
|
|
||||||
},
|
|
||||||
"_requiredBy": [
|
|
||||||
"/body-parser"
|
|
||||||
],
|
|
||||||
"_resolved": "https://registry.npmjs.org/qs/-/qs-6.2.1.tgz",
|
|
||||||
"_shasum": "ce03c5ff0935bc1d9d69a9f14cbd18e568d67625",
|
|
||||||
"_shrinkwrap": null,
|
|
||||||
"_spec": "qs@6.2.1",
|
|
||||||
"_where": "C:\\Users\\nkiboti\\workspace\\GYMApp\\GYMApp\\node_modules\\body-parser",
|
|
||||||
"bugs": {
|
|
||||||
"url": "https://github.com/ljharb/qs/issues"
|
|
||||||
},
|
|
||||||
"contributors": [
|
|
||||||
{
|
|
||||||
"name": "Jordan Harband",
|
|
||||||
"email": "ljharb@gmail.com",
|
|
||||||
"url": "http://ljharb.codes"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dependencies": {},
|
|
||||||
"description": "A querystring parser that supports nesting and arrays, with a depth limit",
|
|
||||||
"devDependencies": {
|
|
||||||
"@ljharb/eslint-config": "^6.0.0",
|
|
||||||
"browserify": "^13.0.1",
|
|
||||||
"covert": "^1.1.0",
|
|
||||||
"eslint": "^3.1.0",
|
|
||||||
"evalmd": "^0.0.17",
|
|
||||||
"iconv-lite": "^0.4.13",
|
|
||||||
"mkdirp": "^0.5.1",
|
|
||||||
"parallelshell": "^2.0.0",
|
|
||||||
"qs-iconv": "^1.0.3",
|
|
||||||
"tape": "^4.6.0"
|
|
||||||
},
|
|
||||||
"directories": {},
|
|
||||||
"dist": {
|
|
||||||
"shasum": "ce03c5ff0935bc1d9d69a9f14cbd18e568d67625",
|
|
||||||
"tarball": "https://registry.npmjs.org/qs/-/qs-6.2.1.tgz"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.6"
|
|
||||||
},
|
|
||||||
"gitHead": "335f839142e6c2c69f5302c4940d92acb0e77561",
|
|
||||||
"homepage": "https://github.com/ljharb/qs",
|
|
||||||
"keywords": [
|
|
||||||
"querystring",
|
|
||||||
"qs"
|
|
||||||
],
|
|
||||||
"license": "BSD-3-Clause",
|
|
||||||
"main": "lib/index.js",
|
|
||||||
"maintainers": [
|
|
||||||
{
|
|
||||||
"name": "hueniverse",
|
|
||||||
"email": "eran@hammer.io"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "ljharb",
|
|
||||||
"email": "ljharb@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "nlf",
|
|
||||||
"email": "quitlahok@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "qs",
|
|
||||||
"optionalDependencies": {},
|
|
||||||
"readme": "ERROR: No README data found!",
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "git+https://github.com/ljharb/qs.git"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"coverage": "covert test",
|
|
||||||
"dist": "mkdirp dist && browserify --standalone Qs lib/index.js > dist/qs.js",
|
|
||||||
"lint": "eslint lib/*.js text/*.js",
|
|
||||||
"prepublish": "npm run dist",
|
|
||||||
"pretest": "npm run --silent readme && npm run --silent lint",
|
|
||||||
"readme": "evalmd README.md",
|
|
||||||
"test": "npm run --silent coverage",
|
|
||||||
"tests-only": "node test"
|
|
||||||
},
|
|
||||||
"version": "6.2.1"
|
|
||||||
}
|
|
||||||
5
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/test/index.js
generated
vendored
5
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/test/index.js
generated
vendored
@@ -1,5 +0,0 @@
|
|||||||
require('./parse');
|
|
||||||
|
|
||||||
require('./stringify');
|
|
||||||
|
|
||||||
require('./utils');
|
|
||||||
451
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/test/parse.js
generated
vendored
451
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/test/parse.js
generated
vendored
@@ -1,451 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
var test = require('tape');
|
|
||||||
var qs = require('../');
|
|
||||||
var iconv = require('iconv-lite');
|
|
||||||
|
|
||||||
test('parse()', function (t) {
|
|
||||||
t.test('parses a simple string', function (st) {
|
|
||||||
st.deepEqual(qs.parse('0=foo'), { '0': 'foo' });
|
|
||||||
st.deepEqual(qs.parse('foo=c++'), { foo: 'c ' });
|
|
||||||
st.deepEqual(qs.parse('a[>=]=23'), { a: { '>=': '23' } });
|
|
||||||
st.deepEqual(qs.parse('a[<=>]==23'), { a: { '<=>': '=23' } });
|
|
||||||
st.deepEqual(qs.parse('a[==]=23'), { a: { '==': '23' } });
|
|
||||||
st.deepEqual(qs.parse('foo', { strictNullHandling: true }), { foo: null });
|
|
||||||
st.deepEqual(qs.parse('foo'), { foo: '' });
|
|
||||||
st.deepEqual(qs.parse('foo='), { foo: '' });
|
|
||||||
st.deepEqual(qs.parse('foo=bar'), { foo: 'bar' });
|
|
||||||
st.deepEqual(qs.parse(' foo = bar = baz '), { ' foo ': ' bar = baz ' });
|
|
||||||
st.deepEqual(qs.parse('foo=bar=baz'), { foo: 'bar=baz' });
|
|
||||||
st.deepEqual(qs.parse('foo=bar&bar=baz'), { foo: 'bar', bar: 'baz' });
|
|
||||||
st.deepEqual(qs.parse('foo2=bar2&baz2='), { foo2: 'bar2', baz2: '' });
|
|
||||||
st.deepEqual(qs.parse('foo=bar&baz', { strictNullHandling: true }), { foo: 'bar', baz: null });
|
|
||||||
st.deepEqual(qs.parse('foo=bar&baz'), { foo: 'bar', baz: '' });
|
|
||||||
st.deepEqual(qs.parse('cht=p3&chd=t:60,40&chs=250x100&chl=Hello|World'), {
|
|
||||||
cht: 'p3',
|
|
||||||
chd: 't:60,40',
|
|
||||||
chs: '250x100',
|
|
||||||
chl: 'Hello|World'
|
|
||||||
});
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('allows enabling dot notation', function (st) {
|
|
||||||
st.deepEqual(qs.parse('a.b=c'), { 'a.b': 'c' });
|
|
||||||
st.deepEqual(qs.parse('a.b=c', { allowDots: true }), { a: { b: 'c' } });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.deepEqual(qs.parse('a[b]=c'), { a: { b: 'c' } }, 'parses a single nested string');
|
|
||||||
t.deepEqual(qs.parse('a[b][c]=d'), { a: { b: { c: 'd' } } }, 'parses a double nested string');
|
|
||||||
t.deepEqual(
|
|
||||||
qs.parse('a[b][c][d][e][f][g][h]=i'),
|
|
||||||
{ a: { b: { c: { d: { e: { f: { '[g][h]': 'i' } } } } } } },
|
|
||||||
'defaults to a depth of 5'
|
|
||||||
);
|
|
||||||
|
|
||||||
t.test('only parses one level when depth = 1', function (st) {
|
|
||||||
st.deepEqual(qs.parse('a[b][c]=d', { depth: 1 }), { a: { b: { '[c]': 'd' } } });
|
|
||||||
st.deepEqual(qs.parse('a[b][c][d]=e', { depth: 1 }), { a: { b: { '[c][d]': 'e' } } });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.deepEqual(qs.parse('a=b&a=c'), { a: ['b', 'c'] }, 'parses a simple array');
|
|
||||||
|
|
||||||
t.test('parses an explicit array', function (st) {
|
|
||||||
st.deepEqual(qs.parse('a[]=b'), { a: ['b'] });
|
|
||||||
st.deepEqual(qs.parse('a[]=b&a[]=c'), { a: ['b', 'c'] });
|
|
||||||
st.deepEqual(qs.parse('a[]=b&a[]=c&a[]=d'), { a: ['b', 'c', 'd'] });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('parses a mix of simple and explicit arrays', function (st) {
|
|
||||||
st.deepEqual(qs.parse('a=b&a[]=c'), { a: ['b', 'c'] });
|
|
||||||
st.deepEqual(qs.parse('a[]=b&a=c'), { a: ['b', 'c'] });
|
|
||||||
st.deepEqual(qs.parse('a[0]=b&a=c'), { a: ['b', 'c'] });
|
|
||||||
st.deepEqual(qs.parse('a=b&a[0]=c'), { a: ['b', 'c'] });
|
|
||||||
st.deepEqual(qs.parse('a[1]=b&a=c'), { a: ['b', 'c'] });
|
|
||||||
st.deepEqual(qs.parse('a=b&a[1]=c'), { a: ['b', 'c'] });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('parses a nested array', function (st) {
|
|
||||||
st.deepEqual(qs.parse('a[b][]=c&a[b][]=d'), { a: { b: ['c', 'd'] } });
|
|
||||||
st.deepEqual(qs.parse('a[>=]=25'), { a: { '>=': '25' } });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('allows to specify array indices', function (st) {
|
|
||||||
st.deepEqual(qs.parse('a[1]=c&a[0]=b&a[2]=d'), { a: ['b', 'c', 'd'] });
|
|
||||||
st.deepEqual(qs.parse('a[1]=c&a[0]=b'), { a: ['b', 'c'] });
|
|
||||||
st.deepEqual(qs.parse('a[1]=c'), { a: ['c'] });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('limits specific array indices to 20', function (st) {
|
|
||||||
st.deepEqual(qs.parse('a[20]=a'), { a: ['a'] });
|
|
||||||
st.deepEqual(qs.parse('a[21]=a'), { a: { '21': 'a' } });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.deepEqual(qs.parse('a[12b]=c'), { a: { '12b': 'c' } }, 'supports keys that begin with a number');
|
|
||||||
|
|
||||||
t.test('supports encoded = signs', function (st) {
|
|
||||||
st.deepEqual(qs.parse('he%3Dllo=th%3Dere'), { 'he=llo': 'th=ere' });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('is ok with url encoded strings', function (st) {
|
|
||||||
st.deepEqual(qs.parse('a[b%20c]=d'), { a: { 'b c': 'd' } });
|
|
||||||
st.deepEqual(qs.parse('a[b]=c%20d'), { a: { b: 'c d' } });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('allows brackets in the value', function (st) {
|
|
||||||
st.deepEqual(qs.parse('pets=["tobi"]'), { pets: '["tobi"]' });
|
|
||||||
st.deepEqual(qs.parse('operators=[">=", "<="]'), { operators: '[">=", "<="]' });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('allows empty values', function (st) {
|
|
||||||
st.deepEqual(qs.parse(''), {});
|
|
||||||
st.deepEqual(qs.parse(null), {});
|
|
||||||
st.deepEqual(qs.parse(undefined), {});
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('transforms arrays to objects', function (st) {
|
|
||||||
st.deepEqual(qs.parse('foo[0]=bar&foo[bad]=baz'), { foo: { '0': 'bar', bad: 'baz' } });
|
|
||||||
st.deepEqual(qs.parse('foo[bad]=baz&foo[0]=bar'), { foo: { bad: 'baz', '0': 'bar' } });
|
|
||||||
st.deepEqual(qs.parse('foo[bad]=baz&foo[]=bar'), { foo: { bad: 'baz', '0': 'bar' } });
|
|
||||||
st.deepEqual(qs.parse('foo[]=bar&foo[bad]=baz'), { foo: { '0': 'bar', bad: 'baz' } });
|
|
||||||
st.deepEqual(qs.parse('foo[bad]=baz&foo[]=bar&foo[]=foo'), { foo: { bad: 'baz', '0': 'bar', '1': 'foo' } });
|
|
||||||
st.deepEqual(qs.parse('foo[0][a]=a&foo[0][b]=b&foo[1][a]=aa&foo[1][b]=bb'), { foo: [{ a: 'a', b: 'b' }, { a: 'aa', b: 'bb' }] });
|
|
||||||
|
|
||||||
st.deepEqual(qs.parse('a[]=b&a[t]=u&a[hasOwnProperty]=c', { allowPrototypes: false }), { a: { '0': 'b', c: true, t: 'u' } });
|
|
||||||
st.deepEqual(qs.parse('a[]=b&a[t]=u&a[hasOwnProperty]=c', { allowPrototypes: true }), { a: { '0': 'b', t: 'u', hasOwnProperty: 'c' } });
|
|
||||||
st.deepEqual(qs.parse('a[]=b&a[hasOwnProperty]=c&a[x]=y', { allowPrototypes: false }), { a: { '0': 'b', '1': 'c', x: 'y' } });
|
|
||||||
st.deepEqual(qs.parse('a[]=b&a[hasOwnProperty]=c&a[x]=y', { allowPrototypes: true }), { a: { '0': 'b', hasOwnProperty: 'c', x: 'y' } });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('transforms arrays to objects (dot notation)', function (st) {
|
|
||||||
st.deepEqual(qs.parse('foo[0].baz=bar&fool.bad=baz', { allowDots: true }), { foo: [{ baz: 'bar' }], fool: { bad: 'baz' } });
|
|
||||||
st.deepEqual(qs.parse('foo[0].baz=bar&fool.bad.boo=baz', { allowDots: true }), { foo: [{ baz: 'bar' }], fool: { bad: { boo: 'baz' } } });
|
|
||||||
st.deepEqual(qs.parse('foo[0][0].baz=bar&fool.bad=baz', { allowDots: true }), { foo: [[{ baz: 'bar' }]], fool: { bad: 'baz' } });
|
|
||||||
st.deepEqual(qs.parse('foo[0].baz[0]=15&foo[0].bar=2', { allowDots: true }), { foo: [{ baz: ['15'], bar: '2' }] });
|
|
||||||
st.deepEqual(qs.parse('foo[0].baz[0]=15&foo[0].baz[1]=16&foo[0].bar=2', { allowDots: true }), { foo: [{ baz: ['15', '16'], bar: '2' }] });
|
|
||||||
st.deepEqual(qs.parse('foo.bad=baz&foo[0]=bar', { allowDots: true }), { foo: { bad: 'baz', '0': 'bar' } });
|
|
||||||
st.deepEqual(qs.parse('foo.bad=baz&foo[]=bar', { allowDots: true }), { foo: { bad: 'baz', '0': 'bar' } });
|
|
||||||
st.deepEqual(qs.parse('foo[]=bar&foo.bad=baz', { allowDots: true }), { foo: { '0': 'bar', bad: 'baz' } });
|
|
||||||
st.deepEqual(qs.parse('foo.bad=baz&foo[]=bar&foo[]=foo', { allowDots: true }), { foo: { bad: 'baz', '0': 'bar', '1': 'foo' } });
|
|
||||||
st.deepEqual(qs.parse('foo[0].a=a&foo[0].b=b&foo[1].a=aa&foo[1].b=bb', { allowDots: true }), { foo: [{ a: 'a', b: 'b' }, { a: 'aa', b: 'bb' }] });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.deepEqual(qs.parse('a[b]=c&a=d'), { a: { b: 'c', d: true } }, 'can add keys to objects');
|
|
||||||
|
|
||||||
t.test('correctly prunes undefined values when converting an array to an object', function (st) {
|
|
||||||
st.deepEqual(qs.parse('a[2]=b&a[99999999]=c'), { a: { '2': 'b', '99999999': 'c' } });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('supports malformed uri characters', function (st) {
|
|
||||||
st.deepEqual(qs.parse('{%:%}', { strictNullHandling: true }), { '{%:%}': null });
|
|
||||||
st.deepEqual(qs.parse('{%:%}='), { '{%:%}': '' });
|
|
||||||
st.deepEqual(qs.parse('foo=%:%}'), { foo: '%:%}' });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('doesn\'t produce empty keys', function (st) {
|
|
||||||
st.deepEqual(qs.parse('_r=1&'), { '_r': '1' });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('cannot access Object prototype', function (st) {
|
|
||||||
qs.parse('constructor[prototype][bad]=bad');
|
|
||||||
qs.parse('bad[constructor][prototype][bad]=bad');
|
|
||||||
st.equal(typeof Object.prototype.bad, 'undefined');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('parses arrays of objects', function (st) {
|
|
||||||
st.deepEqual(qs.parse('a[][b]=c'), { a: [{ b: 'c' }] });
|
|
||||||
st.deepEqual(qs.parse('a[0][b]=c'), { a: [{ b: 'c' }] });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('allows for empty strings in arrays', function (st) {
|
|
||||||
st.deepEqual(qs.parse('a[]=b&a[]=&a[]=c'), { a: ['b', '', 'c'] });
|
|
||||||
|
|
||||||
st.deepEqual(
|
|
||||||
qs.parse('a[0]=b&a[1]&a[2]=c&a[19]=', { strictNullHandling: true, arrayLimit: 20 }),
|
|
||||||
{ a: ['b', null, 'c', ''] },
|
|
||||||
'with arrayLimit 20 + array indices: null then empty string works'
|
|
||||||
);
|
|
||||||
st.deepEqual(
|
|
||||||
qs.parse('a[]=b&a[]&a[]=c&a[]=', { strictNullHandling: true, arrayLimit: 0 }),
|
|
||||||
{ a: ['b', null, 'c', ''] },
|
|
||||||
'with arrayLimit 0 + array brackets: null then empty string works'
|
|
||||||
);
|
|
||||||
|
|
||||||
st.deepEqual(
|
|
||||||
qs.parse('a[0]=b&a[1]=&a[2]=c&a[19]', { strictNullHandling: true, arrayLimit: 20 }),
|
|
||||||
{ a: ['b', '', 'c', null] },
|
|
||||||
'with arrayLimit 20 + array indices: empty string then null works'
|
|
||||||
);
|
|
||||||
st.deepEqual(
|
|
||||||
qs.parse('a[]=b&a[]=&a[]=c&a[]', { strictNullHandling: true, arrayLimit: 0 }),
|
|
||||||
{ a: ['b', '', 'c', null] },
|
|
||||||
'with arrayLimit 0 + array brackets: empty string then null works'
|
|
||||||
);
|
|
||||||
|
|
||||||
st.deepEqual(
|
|
||||||
qs.parse('a[]=&a[]=b&a[]=c'),
|
|
||||||
{ a: ['', 'b', 'c'] },
|
|
||||||
'array brackets: empty strings work'
|
|
||||||
);
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('compacts sparse arrays', function (st) {
|
|
||||||
st.deepEqual(qs.parse('a[10]=1&a[2]=2'), { a: ['2', '1'] });
|
|
||||||
st.deepEqual(qs.parse('a[1][b][2][c]=1'), { a: [{ b: [{ c: '1' }] }] });
|
|
||||||
st.deepEqual(qs.parse('a[1][2][3][c]=1'), { a: [[[{ c: '1' }]]] });
|
|
||||||
st.deepEqual(qs.parse('a[1][2][3][c][1]=1'), { a: [[[{ c: ['1'] }]]] });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('parses semi-parsed strings', function (st) {
|
|
||||||
st.deepEqual(qs.parse({ 'a[b]': 'c' }), { a: { b: 'c' } });
|
|
||||||
st.deepEqual(qs.parse({ 'a[b]': 'c', 'a[d]': 'e' }), { a: { b: 'c', d: 'e' } });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('parses buffers correctly', function (st) {
|
|
||||||
var b = new Buffer('test');
|
|
||||||
st.deepEqual(qs.parse({ a: b }), { a: b });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('continues parsing when no parent is found', function (st) {
|
|
||||||
st.deepEqual(qs.parse('[]=&a=b'), { '0': '', a: 'b' });
|
|
||||||
st.deepEqual(qs.parse('[]&a=b', { strictNullHandling: true }), { '0': null, a: 'b' });
|
|
||||||
st.deepEqual(qs.parse('[foo]=bar'), { foo: 'bar' });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('does not error when parsing a very long array', function (st) {
|
|
||||||
var str = 'a[]=a';
|
|
||||||
while (Buffer.byteLength(str) < 128 * 1024) {
|
|
||||||
str = str + '&' + str;
|
|
||||||
}
|
|
||||||
|
|
||||||
st.doesNotThrow(function () { qs.parse(str); });
|
|
||||||
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('should not throw when a native prototype has an enumerable property', { parallel: false }, function (st) {
|
|
||||||
Object.prototype.crash = '';
|
|
||||||
Array.prototype.crash = '';
|
|
||||||
st.doesNotThrow(qs.parse.bind(null, 'a=b'));
|
|
||||||
st.deepEqual(qs.parse('a=b'), { a: 'b' });
|
|
||||||
st.doesNotThrow(qs.parse.bind(null, 'a[][b]=c'));
|
|
||||||
st.deepEqual(qs.parse('a[][b]=c'), { a: [{ b: 'c' }] });
|
|
||||||
delete Object.prototype.crash;
|
|
||||||
delete Array.prototype.crash;
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('parses a string with an alternative string delimiter', function (st) {
|
|
||||||
st.deepEqual(qs.parse('a=b;c=d', { delimiter: ';' }), { a: 'b', c: 'd' });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('parses a string with an alternative RegExp delimiter', function (st) {
|
|
||||||
st.deepEqual(qs.parse('a=b; c=d', { delimiter: /[;,] */ }), { a: 'b', c: 'd' });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('does not use non-splittable objects as delimiters', function (st) {
|
|
||||||
st.deepEqual(qs.parse('a=b&c=d', { delimiter: true }), { a: 'b', c: 'd' });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('allows overriding parameter limit', function (st) {
|
|
||||||
st.deepEqual(qs.parse('a=b&c=d', { parameterLimit: 1 }), { a: 'b' });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('allows setting the parameter limit to Infinity', function (st) {
|
|
||||||
st.deepEqual(qs.parse('a=b&c=d', { parameterLimit: Infinity }), { a: 'b', c: 'd' });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('allows overriding array limit', function (st) {
|
|
||||||
st.deepEqual(qs.parse('a[0]=b', { arrayLimit: -1 }), { a: { '0': 'b' } });
|
|
||||||
st.deepEqual(qs.parse('a[-1]=b', { arrayLimit: -1 }), { a: { '-1': 'b' } });
|
|
||||||
st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayLimit: 0 }), { a: { '0': 'b', '1': 'c' } });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('allows disabling array parsing', function (st) {
|
|
||||||
st.deepEqual(qs.parse('a[0]=b&a[1]=c', { parseArrays: false }), { a: { '0': 'b', '1': 'c' } });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('parses an object', function (st) {
|
|
||||||
var input = {
|
|
||||||
'user[name]': { 'pop[bob]': 3 },
|
|
||||||
'user[email]': null
|
|
||||||
};
|
|
||||||
|
|
||||||
var expected = {
|
|
||||||
user: {
|
|
||||||
name: { 'pop[bob]': 3 },
|
|
||||||
email: null
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var result = qs.parse(input);
|
|
||||||
|
|
||||||
st.deepEqual(result, expected);
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('parses an object in dot notation', function (st) {
|
|
||||||
var input = {
|
|
||||||
'user.name': { 'pop[bob]': 3 },
|
|
||||||
'user.email.': null
|
|
||||||
};
|
|
||||||
|
|
||||||
var expected = {
|
|
||||||
user: {
|
|
||||||
name: { 'pop[bob]': 3 },
|
|
||||||
email: null
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var result = qs.parse(input, { allowDots: true });
|
|
||||||
|
|
||||||
st.deepEqual(result, expected);
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('parses an object and not child values', function (st) {
|
|
||||||
var input = {
|
|
||||||
'user[name]': { 'pop[bob]': { 'test': 3 } },
|
|
||||||
'user[email]': null
|
|
||||||
};
|
|
||||||
|
|
||||||
var expected = {
|
|
||||||
user: {
|
|
||||||
name: { 'pop[bob]': { 'test': 3 } },
|
|
||||||
email: null
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var result = qs.parse(input);
|
|
||||||
|
|
||||||
st.deepEqual(result, expected);
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('does not blow up when Buffer global is missing', function (st) {
|
|
||||||
var tempBuffer = global.Buffer;
|
|
||||||
delete global.Buffer;
|
|
||||||
var result = qs.parse('a=b&c=d');
|
|
||||||
global.Buffer = tempBuffer;
|
|
||||||
st.deepEqual(result, { a: 'b', c: 'd' });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('does not crash when parsing circular references', function (st) {
|
|
||||||
var a = {};
|
|
||||||
a.b = a;
|
|
||||||
|
|
||||||
var parsed;
|
|
||||||
|
|
||||||
st.doesNotThrow(function () {
|
|
||||||
parsed = qs.parse({ 'foo[bar]': 'baz', 'foo[baz]': a });
|
|
||||||
});
|
|
||||||
|
|
||||||
st.equal('foo' in parsed, true, 'parsed has "foo" property');
|
|
||||||
st.equal('bar' in parsed.foo, true);
|
|
||||||
st.equal('baz' in parsed.foo, true);
|
|
||||||
st.equal(parsed.foo.bar, 'baz');
|
|
||||||
st.deepEqual(parsed.foo.baz, a);
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('parses plain objects correctly', function (st) {
|
|
||||||
var a = Object.create(null);
|
|
||||||
a.b = 'c';
|
|
||||||
|
|
||||||
st.deepEqual(qs.parse(a), { b: 'c' });
|
|
||||||
var result = qs.parse({ a: a });
|
|
||||||
st.equal('a' in result, true, 'result has "a" property');
|
|
||||||
st.deepEqual(result.a, a);
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('parses dates correctly', function (st) {
|
|
||||||
var now = new Date();
|
|
||||||
st.deepEqual(qs.parse({ a: now }), { a: now });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('parses regular expressions correctly', function (st) {
|
|
||||||
var re = /^test$/;
|
|
||||||
st.deepEqual(qs.parse({ a: re }), { a: re });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('can allow overwriting prototype properties', function (st) {
|
|
||||||
st.deepEqual(qs.parse('a[hasOwnProperty]=b', { allowPrototypes: true }), { a: { hasOwnProperty: 'b' } }, { prototype: false });
|
|
||||||
st.deepEqual(qs.parse('hasOwnProperty=b', { allowPrototypes: true }), { hasOwnProperty: 'b' }, { prototype: false });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('can return plain objects', function (st) {
|
|
||||||
var expected = Object.create(null);
|
|
||||||
expected.a = Object.create(null);
|
|
||||||
expected.a.b = 'c';
|
|
||||||
expected.a.hasOwnProperty = 'd';
|
|
||||||
st.deepEqual(qs.parse('a[b]=c&a[hasOwnProperty]=d', { plainObjects: true }), expected);
|
|
||||||
st.deepEqual(qs.parse(null, { plainObjects: true }), Object.create(null));
|
|
||||||
var expectedArray = Object.create(null);
|
|
||||||
expectedArray.a = Object.create(null);
|
|
||||||
expectedArray.a['0'] = 'b';
|
|
||||||
expectedArray.a.c = 'd';
|
|
||||||
st.deepEqual(qs.parse('a[]=b&a[c]=d', { plainObjects: true }), expectedArray);
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('can parse with custom encoding', function (st) {
|
|
||||||
st.deepEqual(qs.parse('%8c%a7=%91%e5%8d%e3%95%7b', {
|
|
||||||
decoder: function (str) {
|
|
||||||
var reg = /\%([0-9A-F]{2})/ig;
|
|
||||||
var result = [];
|
|
||||||
var parts;
|
|
||||||
var last = 0;
|
|
||||||
while (parts = reg.exec(str)) {
|
|
||||||
result.push(parseInt(parts[1], 16));
|
|
||||||
last = parts.index + parts[0].length;
|
|
||||||
}
|
|
||||||
return iconv.decode(new Buffer(result), 'shift_jis').toString();
|
|
||||||
}
|
|
||||||
}), { 県: '大阪府' });
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('throws error with wrong decoder', function (st) {
|
|
||||||
st.throws(function () {
|
|
||||||
qs.parse({}, {
|
|
||||||
decoder: 'string'
|
|
||||||
});
|
|
||||||
}, new TypeError('Decoder has to be a function.'));
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
305
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/test/stringify.js
generated
vendored
305
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/test/stringify.js
generated
vendored
@@ -1,305 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
var test = require('tape');
|
|
||||||
var qs = require('../');
|
|
||||||
var iconv = require('iconv-lite');
|
|
||||||
|
|
||||||
test('stringify()', function (t) {
|
|
||||||
t.test('stringifies a querystring object', function (st) {
|
|
||||||
st.equal(qs.stringify({ a: 'b' }), 'a=b');
|
|
||||||
st.equal(qs.stringify({ a: 1 }), 'a=1');
|
|
||||||
st.equal(qs.stringify({ a: 1, b: 2 }), 'a=1&b=2');
|
|
||||||
st.equal(qs.stringify({ a: 'A_Z' }), 'a=A_Z');
|
|
||||||
st.equal(qs.stringify({ a: '€' }), 'a=%E2%82%AC');
|
|
||||||
st.equal(qs.stringify({ a: '' }), 'a=%EE%80%80');
|
|
||||||
st.equal(qs.stringify({ a: 'א' }), 'a=%D7%90');
|
|
||||||
st.equal(qs.stringify({ a: '𐐷' }), 'a=%F0%90%90%B7');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('stringifies a nested object', function (st) {
|
|
||||||
st.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c');
|
|
||||||
st.equal(qs.stringify({ a: { b: { c: { d: 'e' } } } }), 'a%5Bb%5D%5Bc%5D%5Bd%5D=e');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('stringifies a nested object with dots notation', function (st) {
|
|
||||||
st.equal(qs.stringify({ a: { b: 'c' } }, { allowDots: true }), 'a.b=c');
|
|
||||||
st.equal(qs.stringify({ a: { b: { c: { d: 'e' } } } }, { allowDots: true }), 'a.b.c.d=e');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('stringifies an array value', function (st) {
|
|
||||||
st.equal(qs.stringify({ a: ['b', 'c', 'd'] }), 'a%5B0%5D=b&a%5B1%5D=c&a%5B2%5D=d');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('omits nulls when asked', function (st) {
|
|
||||||
st.equal(qs.stringify({ a: 'b', c: null }, { skipNulls: true }), 'a=b');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
t.test('omits nested nulls when asked', function (st) {
|
|
||||||
st.equal(qs.stringify({ a: { b: 'c', d: null } }, { skipNulls: true }), 'a%5Bb%5D=c');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('omits array indices when asked', function (st) {
|
|
||||||
st.equal(qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false }), 'a=b&a=c&a=d');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('stringifies a nested array value', function (st) {
|
|
||||||
st.equal(qs.stringify({ a: { b: ['c', 'd'] } }), 'a%5Bb%5D%5B0%5D=c&a%5Bb%5D%5B1%5D=d');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('stringifies a nested array value with dots notation', function (st) {
|
|
||||||
st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { allowDots: true, encode: false }), 'a.b[0]=c&a.b[1]=d');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('stringifies an object inside an array', function (st) {
|
|
||||||
st.equal(qs.stringify({ a: [{ b: 'c' }] }), 'a%5B0%5D%5Bb%5D=c');
|
|
||||||
st.equal(qs.stringify({ a: [{ b: { c: [1] } }] }), 'a%5B0%5D%5Bb%5D%5Bc%5D%5B0%5D=1');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('stringifies an array with mixed objects and primitives', function (st) {
|
|
||||||
st.equal(qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encode: false }), 'a[0][b]=1&a[1]=2&a[2]=3');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('stringifies an object inside an array with dots notation', function (st) {
|
|
||||||
st.equal(qs.stringify({ a: [{ b: 'c' }] }, { allowDots: true, encode: false }), 'a[0].b=c');
|
|
||||||
st.equal(qs.stringify({ a: [{ b: { c: [1] } }] }, { allowDots: true, encode: false }), 'a[0].b.c[0]=1');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('does not omit object keys when indices = false', function (st) {
|
|
||||||
st.equal(qs.stringify({ a: [{ b: 'c' }] }, { indices: false }), 'a%5Bb%5D=c');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('uses indices notation for arrays when indices=true', function (st) {
|
|
||||||
st.equal(qs.stringify({ a: ['b', 'c'] }, { indices: true }), 'a%5B0%5D=b&a%5B1%5D=c');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('uses indices notation for arrays when no arrayFormat is specified', function (st) {
|
|
||||||
st.equal(qs.stringify({ a: ['b', 'c'] }), 'a%5B0%5D=b&a%5B1%5D=c');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('uses indices notation for arrays when no arrayFormat=indices', function (st) {
|
|
||||||
st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' }), 'a%5B0%5D=b&a%5B1%5D=c');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('uses repeat notation for arrays when no arrayFormat=repeat', function (st) {
|
|
||||||
st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' }), 'a=b&a=c');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('uses brackets notation for arrays when no arrayFormat=brackets', function (st) {
|
|
||||||
st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' }), 'a%5B%5D=b&a%5B%5D=c');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('stringifies a complicated object', function (st) {
|
|
||||||
st.equal(qs.stringify({ a: { b: 'c', d: 'e' } }), 'a%5Bb%5D=c&a%5Bd%5D=e');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('stringifies an empty value', function (st) {
|
|
||||||
st.equal(qs.stringify({ a: '' }), 'a=');
|
|
||||||
st.equal(qs.stringify({ a: null }, { strictNullHandling: true }), 'a');
|
|
||||||
|
|
||||||
st.equal(qs.stringify({ a: '', b: '' }), 'a=&b=');
|
|
||||||
st.equal(qs.stringify({ a: null, b: '' }, { strictNullHandling: true }), 'a&b=');
|
|
||||||
|
|
||||||
st.equal(qs.stringify({ a: { b: '' } }), 'a%5Bb%5D=');
|
|
||||||
st.equal(qs.stringify({ a: { b: null } }, { strictNullHandling: true }), 'a%5Bb%5D');
|
|
||||||
st.equal(qs.stringify({ a: { b: null } }, { strictNullHandling: false }), 'a%5Bb%5D=');
|
|
||||||
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('stringifies an empty object', function (st) {
|
|
||||||
var obj = Object.create(null);
|
|
||||||
obj.a = 'b';
|
|
||||||
st.equal(qs.stringify(obj), 'a=b');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('returns an empty string for invalid input', function (st) {
|
|
||||||
st.equal(qs.stringify(undefined), '');
|
|
||||||
st.equal(qs.stringify(false), '');
|
|
||||||
st.equal(qs.stringify(null), '');
|
|
||||||
st.equal(qs.stringify(''), '');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('stringifies an object with an empty object as a child', function (st) {
|
|
||||||
var obj = {
|
|
||||||
a: Object.create(null)
|
|
||||||
};
|
|
||||||
|
|
||||||
obj.a.b = 'c';
|
|
||||||
st.equal(qs.stringify(obj), 'a%5Bb%5D=c');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('drops keys with a value of undefined', function (st) {
|
|
||||||
st.equal(qs.stringify({ a: undefined }), '');
|
|
||||||
|
|
||||||
st.equal(qs.stringify({ a: { b: undefined, c: null } }, { strictNullHandling: true }), 'a%5Bc%5D');
|
|
||||||
st.equal(qs.stringify({ a: { b: undefined, c: null } }, { strictNullHandling: false }), 'a%5Bc%5D=');
|
|
||||||
st.equal(qs.stringify({ a: { b: undefined, c: '' } }), 'a%5Bc%5D=');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('url encodes values', function (st) {
|
|
||||||
st.equal(qs.stringify({ a: 'b c' }), 'a=b%20c');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('stringifies a date', function (st) {
|
|
||||||
var now = new Date();
|
|
||||||
var str = 'a=' + encodeURIComponent(now.toISOString());
|
|
||||||
st.equal(qs.stringify({ a: now }), str);
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('stringifies the weird object from qs', function (st) {
|
|
||||||
st.equal(qs.stringify({ 'my weird field': '~q1!2"\'w$5&7/z8)?' }), 'my%20weird%20field=~q1%212%22%27w%245%267%2Fz8%29%3F');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('skips properties that are part of the object prototype', function (st) {
|
|
||||||
Object.prototype.crash = 'test';
|
|
||||||
st.equal(qs.stringify({ a: 'b' }), 'a=b');
|
|
||||||
st.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c');
|
|
||||||
delete Object.prototype.crash;
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('stringifies boolean values', function (st) {
|
|
||||||
st.equal(qs.stringify({ a: true }), 'a=true');
|
|
||||||
st.equal(qs.stringify({ a: { b: true } }), 'a%5Bb%5D=true');
|
|
||||||
st.equal(qs.stringify({ b: false }), 'b=false');
|
|
||||||
st.equal(qs.stringify({ b: { c: false } }), 'b%5Bc%5D=false');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('stringifies buffer values', function (st) {
|
|
||||||
st.equal(qs.stringify({ a: new Buffer('test') }), 'a=test');
|
|
||||||
st.equal(qs.stringify({ a: { b: new Buffer('test') } }), 'a%5Bb%5D=test');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('stringifies an object using an alternative delimiter', function (st) {
|
|
||||||
st.equal(qs.stringify({ a: 'b', c: 'd' }, { delimiter: ';' }), 'a=b;c=d');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('doesn\'t blow up when Buffer global is missing', function (st) {
|
|
||||||
var tempBuffer = global.Buffer;
|
|
||||||
delete global.Buffer;
|
|
||||||
var result = qs.stringify({ a: 'b', c: 'd' });
|
|
||||||
global.Buffer = tempBuffer;
|
|
||||||
st.equal(result, 'a=b&c=d');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('selects properties when filter=array', function (st) {
|
|
||||||
st.equal(qs.stringify({ a: 'b' }, { filter: ['a'] }), 'a=b');
|
|
||||||
st.equal(qs.stringify({ a: 1 }, { filter: [] }), '');
|
|
||||||
st.equal(qs.stringify({ a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' }, { filter: ['a', 'b', 0, 2] }), 'a%5Bb%5D%5B0%5D=1&a%5Bb%5D%5B2%5D=3');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('supports custom representations when filter=function', function (st) {
|
|
||||||
var calls = 0;
|
|
||||||
var obj = { a: 'b', c: 'd', e: { f: new Date(1257894000000) } };
|
|
||||||
var filterFunc = function (prefix, value) {
|
|
||||||
calls++;
|
|
||||||
if (calls === 1) {
|
|
||||||
st.equal(prefix, '', 'prefix is empty');
|
|
||||||
st.equal(value, obj);
|
|
||||||
} else if (prefix === 'c') {
|
|
||||||
return;
|
|
||||||
} else if (value instanceof Date) {
|
|
||||||
st.equal(prefix, 'e[f]');
|
|
||||||
return value.getTime();
|
|
||||||
}
|
|
||||||
return value;
|
|
||||||
};
|
|
||||||
|
|
||||||
st.equal(qs.stringify(obj, { filter: filterFunc }), 'a=b&e%5Bf%5D=1257894000000');
|
|
||||||
st.equal(calls, 5);
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('can disable uri encoding', function (st) {
|
|
||||||
st.equal(qs.stringify({ a: 'b' }, { encode: false }), 'a=b');
|
|
||||||
st.equal(qs.stringify({ a: { b: 'c' } }, { encode: false }), 'a[b]=c');
|
|
||||||
st.equal(qs.stringify({ a: 'b', c: null }, { strictNullHandling: true, encode: false }), 'a=b&c');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('can sort the keys', function (st) {
|
|
||||||
var sort = function (a, b) { return a.localeCompare(b); };
|
|
||||||
st.equal(qs.stringify({ a: 'c', z: 'y', b: 'f' }, { sort: sort }), 'a=c&b=f&z=y');
|
|
||||||
st.equal(qs.stringify({ a: 'c', z: { j: 'a', i: 'b' }, b: 'f' }, { sort: sort }), 'a=c&b=f&z%5Bi%5D=b&z%5Bj%5D=a');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('can sort the keys at depth 3 or more too', function (st) {
|
|
||||||
var sort = function (a, b) { return a.localeCompare(b); };
|
|
||||||
st.equal(qs.stringify({ a: 'a', z: { zj: {zjb: 'zjb', zja: 'zja'}, zi: {zib: 'zib', zia: 'zia'} }, b: 'b' }, { sort: sort, encode: false }), 'a=a&b=b&z[zi][zia]=zia&z[zi][zib]=zib&z[zj][zja]=zja&z[zj][zjb]=zjb');
|
|
||||||
st.equal(qs.stringify({ a: 'a', z: { zj: {zjb: 'zjb', zja: 'zja'}, zi: {zib: 'zib', zia: 'zia'} }, b: 'b' }, { sort: null, encode: false }), 'a=a&z[zj][zjb]=zjb&z[zj][zja]=zja&z[zi][zib]=zib&z[zi][zia]=zia&b=b');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('can stringify with custom encoding', function (st) {
|
|
||||||
st.equal(qs.stringify({ 県: '大阪府', '': ''}, {
|
|
||||||
encoder: function (str) {
|
|
||||||
if (str.length === 0) {
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
var buf = iconv.encode(str, 'shiftjis');
|
|
||||||
var result = [];
|
|
||||||
for (var i=0; i < buf.length; ++i) {
|
|
||||||
result.push(buf.readUInt8(i).toString(16));
|
|
||||||
}
|
|
||||||
return '%' + result.join('%');
|
|
||||||
}
|
|
||||||
}), '%8c%a7=%91%e5%8d%e3%95%7b&=');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('throws error with wrong encoder', function (st) {
|
|
||||||
st.throws(function () {
|
|
||||||
qs.stringify({}, {
|
|
||||||
encoder: 'string'
|
|
||||||
});
|
|
||||||
}, new TypeError('Encoder has to be a function.'));
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
|
|
||||||
t.test('can use custom encoder for a buffer object', {
|
|
||||||
skip: typeof Buffer === 'undefined'
|
|
||||||
}, function (st) {
|
|
||||||
st.equal(qs.stringify({ a: new Buffer([1]) }, {
|
|
||||||
encoder: function (buffer) {
|
|
||||||
if (typeof buffer === 'string') {
|
|
||||||
return buffer;
|
|
||||||
}
|
|
||||||
return String.fromCharCode(buffer.readUInt8(0) + 97);
|
|
||||||
}
|
|
||||||
}), 'a=b');
|
|
||||||
st.end();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
9
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/test/utils.js
generated
vendored
9
GYMApp/GYMApp/node_modules/body-parser/node_modules/qs/test/utils.js
generated
vendored
@@ -1,9 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
var test = require('tape');
|
|
||||||
var utils = require('../lib/utils');
|
|
||||||
|
|
||||||
test('merge()', function (t) {
|
|
||||||
t.deepEqual(utils.merge({ a: 'b' }, { a: 'c' }), { a: ['b', 'c'] }, 'merges two objects with the same key');
|
|
||||||
t.end();
|
|
||||||
});
|
|
||||||
124
GYMApp/GYMApp/node_modules/body-parser/package.json
generated
vendored
124
GYMApp/GYMApp/node_modules/body-parser/package.json
generated
vendored
@@ -1,124 +0,0 @@
|
|||||||
{
|
|
||||||
"_args": [
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"raw": "body-parser@~1.16.0",
|
|
||||||
"scope": null,
|
|
||||||
"escapedName": "body-parser",
|
|
||||||
"name": "body-parser",
|
|
||||||
"rawSpec": "~1.16.0",
|
|
||||||
"spec": ">=1.16.0 <1.17.0",
|
|
||||||
"type": "range"
|
|
||||||
},
|
|
||||||
"C:\\Users\\nkiboti\\workspace\\GYMApp\\GYMApp"
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"_from": "body-parser@>=1.16.0 <1.17.0",
|
|
||||||
"_id": "body-parser@1.16.0",
|
|
||||||
"_inCache": true,
|
|
||||||
"_location": "/body-parser",
|
|
||||||
"_nodeVersion": "4.6.1",
|
|
||||||
"_npmOperationalInternal": {
|
|
||||||
"host": "packages-12-west.internal.npmjs.com",
|
|
||||||
"tmp": "tmp/body-parser-1.16.0.tgz_1484710891328_0.08588228072039783"
|
|
||||||
},
|
|
||||||
"_npmUser": {
|
|
||||||
"name": "dougwilson",
|
|
||||||
"email": "doug@somethingdoug.com"
|
|
||||||
},
|
|
||||||
"_npmVersion": "2.15.9",
|
|
||||||
"_phantomChildren": {},
|
|
||||||
"_requested": {
|
|
||||||
"raw": "body-parser@~1.16.0",
|
|
||||||
"scope": null,
|
|
||||||
"escapedName": "body-parser",
|
|
||||||
"name": "body-parser",
|
|
||||||
"rawSpec": "~1.16.0",
|
|
||||||
"spec": ">=1.16.0 <1.17.0",
|
|
||||||
"type": "range"
|
|
||||||
},
|
|
||||||
"_requiredBy": [
|
|
||||||
"#USER",
|
|
||||||
"/"
|
|
||||||
],
|
|
||||||
"_resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.16.0.tgz",
|
|
||||||
"_shasum": "924a5e472c6229fb9d69b85a20d5f2532dec788b",
|
|
||||||
"_shrinkwrap": null,
|
|
||||||
"_spec": "body-parser@~1.16.0",
|
|
||||||
"_where": "C:\\Users\\nkiboti\\workspace\\GYMApp\\GYMApp",
|
|
||||||
"bugs": {
|
|
||||||
"url": "https://github.com/expressjs/body-parser/issues"
|
|
||||||
},
|
|
||||||
"contributors": [
|
|
||||||
{
|
|
||||||
"name": "Douglas Christopher Wilson",
|
|
||||||
"email": "doug@somethingdoug.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Jonathan Ong",
|
|
||||||
"email": "me@jongleberry.com",
|
|
||||||
"url": "http://jongleberry.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dependencies": {
|
|
||||||
"bytes": "2.4.0",
|
|
||||||
"content-type": "~1.0.2",
|
|
||||||
"debug": "2.6.0",
|
|
||||||
"depd": "~1.1.0",
|
|
||||||
"http-errors": "~1.5.1",
|
|
||||||
"iconv-lite": "0.4.15",
|
|
||||||
"on-finished": "~2.3.0",
|
|
||||||
"qs": "6.2.1",
|
|
||||||
"raw-body": "~2.2.0",
|
|
||||||
"type-is": "~1.6.14"
|
|
||||||
},
|
|
||||||
"description": "Node.js body parsing middleware",
|
|
||||||
"devDependencies": {
|
|
||||||
"eslint": "3.13.1",
|
|
||||||
"eslint-config-standard": "6.2.1",
|
|
||||||
"eslint-plugin-markdown": "1.0.0-beta.3",
|
|
||||||
"eslint-plugin-promise": "3.4.0",
|
|
||||||
"eslint-plugin-standard": "2.0.1",
|
|
||||||
"istanbul": "0.4.5",
|
|
||||||
"methods": "1.1.2",
|
|
||||||
"mocha": "2.5.3",
|
|
||||||
"supertest": "1.1.0"
|
|
||||||
},
|
|
||||||
"directories": {},
|
|
||||||
"dist": {
|
|
||||||
"shasum": "924a5e472c6229fb9d69b85a20d5f2532dec788b",
|
|
||||||
"tarball": "https://registry.npmjs.org/body-parser/-/body-parser-1.16.0.tgz"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 0.8"
|
|
||||||
},
|
|
||||||
"files": [
|
|
||||||
"lib/",
|
|
||||||
"LICENSE",
|
|
||||||
"HISTORY.md",
|
|
||||||
"index.js"
|
|
||||||
],
|
|
||||||
"gitHead": "c5a73d51483310f8443043d3927c2557993f3416",
|
|
||||||
"homepage": "https://github.com/expressjs/body-parser#readme",
|
|
||||||
"license": "MIT",
|
|
||||||
"maintainers": [
|
|
||||||
{
|
|
||||||
"name": "dougwilson",
|
|
||||||
"email": "doug@somethingdoug.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "body-parser",
|
|
||||||
"optionalDependencies": {},
|
|
||||||
"readme": "ERROR: No README data found!",
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "git+https://github.com/expressjs/body-parser.git"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"lint": "eslint --plugin markdown --ext js,md .",
|
|
||||||
"test": "mocha --require test/support/env --reporter spec --check-leaks --bail test/",
|
|
||||||
"test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --require test/support/env --reporter dot --check-leaks test/",
|
|
||||||
"test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --require test/support/env --reporter spec --check-leaks test/"
|
|
||||||
},
|
|
||||||
"version": "1.16.0"
|
|
||||||
}
|
|
||||||
70
GYMApp/GYMApp/node_modules/bytes/History.md
generated
vendored
70
GYMApp/GYMApp/node_modules/bytes/History.md
generated
vendored
@@ -1,70 +0,0 @@
|
|||||||
2.4.0 / 2016-06-01
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Add option "unitSeparator"
|
|
||||||
|
|
||||||
2.3.0 / 2016-02-15
|
|
||||||
==================
|
|
||||||
|
|
||||||
* Drop partial bytes on all parsed units
|
|
||||||
* Fix non-finite numbers to `.format` to return `null`
|
|
||||||
* Fix parsing byte string that looks like hex
|
|
||||||
* perf: hoist regular expressions
|
|
||||||
|
|
||||||
2.2.0 / 2015-11-13
|
|
||||||
==================
|
|
||||||
|
|
||||||
* add option "decimalPlaces"
|
|
||||||
* add option "fixedDecimals"
|
|
||||||
|
|
||||||
2.1.0 / 2015-05-21
|
|
||||||
==================
|
|
||||||
|
|
||||||
* add `.format` export
|
|
||||||
* add `.parse` export
|
|
||||||
|
|
||||||
2.0.2 / 2015-05-20
|
|
||||||
==================
|
|
||||||
|
|
||||||
* remove map recreation
|
|
||||||
* remove unnecessary object construction
|
|
||||||
|
|
||||||
2.0.1 / 2015-05-07
|
|
||||||
==================
|
|
||||||
|
|
||||||
* fix browserify require
|
|
||||||
* remove node.extend dependency
|
|
||||||
|
|
||||||
2.0.0 / 2015-04-12
|
|
||||||
==================
|
|
||||||
|
|
||||||
* add option "case"
|
|
||||||
* add option "thousandsSeparator"
|
|
||||||
* return "null" on invalid parse input
|
|
||||||
* support proper round-trip: bytes(bytes(num)) === num
|
|
||||||
* units no longer case sensitive when parsing
|
|
||||||
|
|
||||||
1.0.0 / 2014-05-05
|
|
||||||
==================
|
|
||||||
|
|
||||||
* add negative support. fixes #6
|
|
||||||
|
|
||||||
0.3.0 / 2014-03-19
|
|
||||||
==================
|
|
||||||
|
|
||||||
* added terabyte support
|
|
||||||
|
|
||||||
0.2.1 / 2013-04-01
|
|
||||||
==================
|
|
||||||
|
|
||||||
* add .component
|
|
||||||
|
|
||||||
0.2.0 / 2012-10-28
|
|
||||||
==================
|
|
||||||
|
|
||||||
* bytes(200).should.eql('200b')
|
|
||||||
|
|
||||||
0.1.0 / 2012-07-04
|
|
||||||
==================
|
|
||||||
|
|
||||||
* add bytes to string conversion [yields]
|
|
||||||
23
GYMApp/GYMApp/node_modules/bytes/LICENSE
generated
vendored
23
GYMApp/GYMApp/node_modules/bytes/LICENSE
generated
vendored
@@ -1,23 +0,0 @@
|
|||||||
(The MIT License)
|
|
||||||
|
|
||||||
Copyright (c) 2012-2014 TJ Holowaychuk <tj@vision-media.ca>
|
|
||||||
Copyright (c) 2015 Jed Watson <jed.watson@me.com>
|
|
||||||
|
|
||||||
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.
|
|
||||||
114
GYMApp/GYMApp/node_modules/bytes/Readme.md
generated
vendored
114
GYMApp/GYMApp/node_modules/bytes/Readme.md
generated
vendored
@@ -1,114 +0,0 @@
|
|||||||
# Bytes utility
|
|
||||||
|
|
||||||
[![NPM Version][npm-image]][npm-url]
|
|
||||||
[![NPM Downloads][downloads-image]][downloads-url]
|
|
||||||
[![Build Status][travis-image]][travis-url]
|
|
||||||
|
|
||||||
Utility to parse a string bytes (ex: `1TB`) to bytes (`1099511627776`) and vice-versa.
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
```js
|
|
||||||
var bytes = require('bytes');
|
|
||||||
```
|
|
||||||
|
|
||||||
#### bytes.format(number value, [options]): string|null
|
|
||||||
|
|
||||||
Format the given value in bytes into a string. If the value is negative, it is kept as such. If it is a float, it is
|
|
||||||
rounded.
|
|
||||||
|
|
||||||
**Arguments**
|
|
||||||
|
|
||||||
| Name | Type | Description |
|
|
||||||
|---------|--------|--------------------|
|
|
||||||
| value | `number` | Value in bytes |
|
|
||||||
| options | `Object` | Conversion options |
|
|
||||||
|
|
||||||
**Options**
|
|
||||||
|
|
||||||
| Property | Type | Description |
|
|
||||||
|-------------------|--------|-----------------------------------------------------------------------------------------|
|
|
||||||
| decimalPlaces | `number`|`null` | Maximum number of decimal places to include in output. Default value to `2`. |
|
|
||||||
| fixedDecimals | `boolean`|`null` | Whether to always display the maximum number of decimal places. Default value to `false` |
|
|
||||||
| thousandsSeparator | `string`|`null` | Example of values: `' '`, `','` and `.`... Default value to `' '`. |
|
|
||||||
| unitSeparator | `string`|`null` | Separator to use between number and unit. Default value to `''`. |
|
|
||||||
|
|
||||||
**Returns**
|
|
||||||
|
|
||||||
| Name | Type | Description |
|
|
||||||
|---------|-------------|-------------------------|
|
|
||||||
| results | `string`|`null` | Return null upon error. String value otherwise. |
|
|
||||||
|
|
||||||
**Example**
|
|
||||||
|
|
||||||
```js
|
|
||||||
bytes(1024);
|
|
||||||
// output: '1kB'
|
|
||||||
|
|
||||||
bytes(1000);
|
|
||||||
// output: '1000B'
|
|
||||||
|
|
||||||
bytes(1000, {thousandsSeparator: ' '});
|
|
||||||
// output: '1 000B'
|
|
||||||
|
|
||||||
bytes(1024 * 1.7, {decimalPlaces: 0});
|
|
||||||
// output: '2kB'
|
|
||||||
|
|
||||||
bytes(1024, {unitSeparator: ' '});
|
|
||||||
// output: '1 kB'
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
#### bytes.parse(string value): number|null
|
|
||||||
|
|
||||||
Parse the string value into an integer in bytes. If no unit is given, it is assumed the value is in bytes.
|
|
||||||
|
|
||||||
Supported units and abbreviations are as follows and are case-insensitive:
|
|
||||||
|
|
||||||
* "b" for bytes
|
|
||||||
* "kb" for kilobytes
|
|
||||||
* "mb" for megabytes
|
|
||||||
* "gb" for gigabytes
|
|
||||||
* "tb" for terabytes
|
|
||||||
|
|
||||||
The units are in powers of two, not ten. This means 1kb = 1024b according to this parser.
|
|
||||||
|
|
||||||
**Arguments**
|
|
||||||
|
|
||||||
| Name | Type | Description |
|
|
||||||
|---------------|--------|--------------------|
|
|
||||||
| value | `string` | String to parse. |
|
|
||||||
|
|
||||||
**Returns**
|
|
||||||
|
|
||||||
| Name | Type | Description |
|
|
||||||
|---------|-------------|-------------------------|
|
|
||||||
| results | `number`|`null` | Return null upon error. Value in bytes otherwise. |
|
|
||||||
|
|
||||||
**Example**
|
|
||||||
|
|
||||||
```js
|
|
||||||
bytes('1kB');
|
|
||||||
// output: 1024
|
|
||||||
|
|
||||||
bytes('1024');
|
|
||||||
// output: 1024
|
|
||||||
```
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm install bytes --save
|
|
||||||
component install visionmedia/bytes.js
|
|
||||||
```
|
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
[](https://github.com/visionmedia/bytes.js/blob/master/LICENSE)
|
|
||||||
|
|
||||||
[downloads-image]: https://img.shields.io/npm/dm/bytes.svg
|
|
||||||
[downloads-url]: https://npmjs.org/package/bytes
|
|
||||||
[npm-image]: https://img.shields.io/npm/v/bytes.svg
|
|
||||||
[npm-url]: https://npmjs.org/package/bytes
|
|
||||||
[travis-image]: https://img.shields.io/travis/visionmedia/bytes.js/master.svg
|
|
||||||
[travis-url]: https://travis-ci.org/visionmedia/bytes.js
|
|
||||||
157
GYMApp/GYMApp/node_modules/bytes/index.js
generated
vendored
157
GYMApp/GYMApp/node_modules/bytes/index.js
generated
vendored
@@ -1,157 +0,0 @@
|
|||||||
/*!
|
|
||||||
* bytes
|
|
||||||
* Copyright(c) 2012-2014 TJ Holowaychuk
|
|
||||||
* Copyright(c) 2015 Jed Watson
|
|
||||||
* MIT Licensed
|
|
||||||
*/
|
|
||||||
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Module exports.
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
|
|
||||||
module.exports = bytes;
|
|
||||||
module.exports.format = format;
|
|
||||||
module.exports.parse = parse;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Module variables.
|
|
||||||
* @private
|
|
||||||
*/
|
|
||||||
|
|
||||||
var formatThousandsRegExp = /\B(?=(\d{3})+(?!\d))/g;
|
|
||||||
|
|
||||||
var formatDecimalsRegExp = /(?:\.0*|(\.[^0]+)0+)$/;
|
|
||||||
|
|
||||||
var map = {
|
|
||||||
b: 1,
|
|
||||||
kb: 1 << 10,
|
|
||||||
mb: 1 << 20,
|
|
||||||
gb: 1 << 30,
|
|
||||||
tb: ((1 << 30) * 1024)
|
|
||||||
};
|
|
||||||
|
|
||||||
// TODO: use is-finite module?
|
|
||||||
var numberIsFinite = Number.isFinite || function (v) { return typeof v === 'number' && isFinite(v); };
|
|
||||||
|
|
||||||
var parseRegExp = /^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb)$/i;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert the given value in bytes into a string or parse to string to an integer in bytes.
|
|
||||||
*
|
|
||||||
* @param {string|number} value
|
|
||||||
* @param {{
|
|
||||||
* case: [string],
|
|
||||||
* decimalPlaces: [number]
|
|
||||||
* fixedDecimals: [boolean]
|
|
||||||
* thousandsSeparator: [string]
|
|
||||||
* unitSeparator: [string]
|
|
||||||
* }} [options] bytes options.
|
|
||||||
*
|
|
||||||
* @returns {string|number|null}
|
|
||||||
*/
|
|
||||||
|
|
||||||
function bytes(value, options) {
|
|
||||||
if (typeof value === 'string') {
|
|
||||||
return parse(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof value === 'number') {
|
|
||||||
return format(value, options);
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Format the given value in bytes into a string.
|
|
||||||
*
|
|
||||||
* If the value is negative, it is kept as such. If it is a float,
|
|
||||||
* it is rounded.
|
|
||||||
*
|
|
||||||
* @param {number} value
|
|
||||||
* @param {object} [options]
|
|
||||||
* @param {number} [options.decimalPlaces=2]
|
|
||||||
* @param {number} [options.fixedDecimals=false]
|
|
||||||
* @param {string} [options.thousandsSeparator=]
|
|
||||||
* @param {string} [options.unitSeparator=]
|
|
||||||
*
|
|
||||||
* @returns {string|null}
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
|
|
||||||
function format(value, options) {
|
|
||||||
if (!numberIsFinite(value)) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
var mag = Math.abs(value);
|
|
||||||
var thousandsSeparator = (options && options.thousandsSeparator) || '';
|
|
||||||
var unitSeparator = (options && options.unitSeparator) || '';
|
|
||||||
var decimalPlaces = (options && options.decimalPlaces !== undefined) ? options.decimalPlaces : 2;
|
|
||||||
var fixedDecimals = Boolean(options && options.fixedDecimals);
|
|
||||||
var unit = 'B';
|
|
||||||
|
|
||||||
if (mag >= map.tb) {
|
|
||||||
unit = 'TB';
|
|
||||||
} else if (mag >= map.gb) {
|
|
||||||
unit = 'GB';
|
|
||||||
} else if (mag >= map.mb) {
|
|
||||||
unit = 'MB';
|
|
||||||
} else if (mag >= map.kb) {
|
|
||||||
unit = 'kB';
|
|
||||||
}
|
|
||||||
|
|
||||||
var val = value / map[unit.toLowerCase()];
|
|
||||||
var str = val.toFixed(decimalPlaces);
|
|
||||||
|
|
||||||
if (!fixedDecimals) {
|
|
||||||
str = str.replace(formatDecimalsRegExp, '$1');
|
|
||||||
}
|
|
||||||
|
|
||||||
if (thousandsSeparator) {
|
|
||||||
str = str.replace(formatThousandsRegExp, thousandsSeparator);
|
|
||||||
}
|
|
||||||
|
|
||||||
return str + unitSeparator + unit;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Parse the string value into an integer in bytes.
|
|
||||||
*
|
|
||||||
* If no unit is given, it is assumed the value is in bytes.
|
|
||||||
*
|
|
||||||
* @param {number|string} val
|
|
||||||
*
|
|
||||||
* @returns {number|null}
|
|
||||||
* @public
|
|
||||||
*/
|
|
||||||
|
|
||||||
function parse(val) {
|
|
||||||
if (typeof val === 'number' && !isNaN(val)) {
|
|
||||||
return val;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof val !== 'string') {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Test if the string passed is valid
|
|
||||||
var results = parseRegExp.exec(val);
|
|
||||||
var floatValue;
|
|
||||||
var unit = 'b';
|
|
||||||
|
|
||||||
if (!results) {
|
|
||||||
// Nothing could be extracted from the given string
|
|
||||||
floatValue = parseInt(val, 10);
|
|
||||||
unit = 'b'
|
|
||||||
} else {
|
|
||||||
// Retrieve the value and the unit
|
|
||||||
floatValue = parseFloat(results[1]);
|
|
||||||
unit = results[4].toLowerCase();
|
|
||||||
}
|
|
||||||
|
|
||||||
return Math.floor(map[unit] * floatValue);
|
|
||||||
}
|
|
||||||
120
GYMApp/GYMApp/node_modules/bytes/package.json
generated
vendored
120
GYMApp/GYMApp/node_modules/bytes/package.json
generated
vendored
@@ -1,120 +0,0 @@
|
|||||||
{
|
|
||||||
"_args": [
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"raw": "bytes@2.4.0",
|
|
||||||
"scope": null,
|
|
||||||
"escapedName": "bytes",
|
|
||||||
"name": "bytes",
|
|
||||||
"rawSpec": "2.4.0",
|
|
||||||
"spec": "2.4.0",
|
|
||||||
"type": "version"
|
|
||||||
},
|
|
||||||
"C:\\Users\\nkiboti\\workspace\\GYMApp\\GYMApp\\node_modules\\body-parser"
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"_from": "bytes@2.4.0",
|
|
||||||
"_id": "bytes@2.4.0",
|
|
||||||
"_inCache": true,
|
|
||||||
"_location": "/bytes",
|
|
||||||
"_npmOperationalInternal": {
|
|
||||||
"host": "packages-16-east.internal.npmjs.com",
|
|
||||||
"tmp": "tmp/bytes-2.4.0.tgz_1464812473023_0.6271433881483972"
|
|
||||||
},
|
|
||||||
"_npmUser": {
|
|
||||||
"name": "dougwilson",
|
|
||||||
"email": "doug@somethingdoug.com"
|
|
||||||
},
|
|
||||||
"_npmVersion": "1.4.28",
|
|
||||||
"_phantomChildren": {},
|
|
||||||
"_requested": {
|
|
||||||
"raw": "bytes@2.4.0",
|
|
||||||
"scope": null,
|
|
||||||
"escapedName": "bytes",
|
|
||||||
"name": "bytes",
|
|
||||||
"rawSpec": "2.4.0",
|
|
||||||
"spec": "2.4.0",
|
|
||||||
"type": "version"
|
|
||||||
},
|
|
||||||
"_requiredBy": [
|
|
||||||
"/body-parser",
|
|
||||||
"/raw-body"
|
|
||||||
],
|
|
||||||
"_resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz",
|
|
||||||
"_shasum": "7d97196f9d5baf7f6935e25985549edd2a6c2339",
|
|
||||||
"_shrinkwrap": null,
|
|
||||||
"_spec": "bytes@2.4.0",
|
|
||||||
"_where": "C:\\Users\\nkiboti\\workspace\\GYMApp\\GYMApp\\node_modules\\body-parser",
|
|
||||||
"author": {
|
|
||||||
"name": "TJ Holowaychuk",
|
|
||||||
"email": "tj@vision-media.ca",
|
|
||||||
"url": "http://tjholowaychuk.com"
|
|
||||||
},
|
|
||||||
"bugs": {
|
|
||||||
"url": "https://github.com/visionmedia/bytes.js/issues"
|
|
||||||
},
|
|
||||||
"component": {
|
|
||||||
"scripts": {
|
|
||||||
"bytes/index.js": "index.js"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"contributors": [
|
|
||||||
{
|
|
||||||
"name": "Jed Watson",
|
|
||||||
"email": "jed.watson@me.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "Théo FIDRY",
|
|
||||||
"email": "theo.fidry@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dependencies": {},
|
|
||||||
"description": "Utility to parse a string bytes to bytes and vice-versa",
|
|
||||||
"devDependencies": {
|
|
||||||
"mocha": "1.21.5"
|
|
||||||
},
|
|
||||||
"directories": {},
|
|
||||||
"dist": {
|
|
||||||
"shasum": "7d97196f9d5baf7f6935e25985549edd2a6c2339",
|
|
||||||
"tarball": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz"
|
|
||||||
},
|
|
||||||
"files": [
|
|
||||||
"History.md",
|
|
||||||
"LICENSE",
|
|
||||||
"Readme.md",
|
|
||||||
"index.js"
|
|
||||||
],
|
|
||||||
"gitHead": "2a598442bdfa796df8d01a96cc54495cda550e70",
|
|
||||||
"homepage": "https://github.com/visionmedia/bytes.js",
|
|
||||||
"keywords": [
|
|
||||||
"byte",
|
|
||||||
"bytes",
|
|
||||||
"utility",
|
|
||||||
"parse",
|
|
||||||
"parser",
|
|
||||||
"convert",
|
|
||||||
"converter"
|
|
||||||
],
|
|
||||||
"license": "MIT",
|
|
||||||
"maintainers": [
|
|
||||||
{
|
|
||||||
"name": "dougwilson",
|
|
||||||
"email": "doug@somethingdoug.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "tjholowaychuk",
|
|
||||||
"email": "tj@vision-media.ca"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "bytes",
|
|
||||||
"optionalDependencies": {},
|
|
||||||
"readme": "ERROR: No README data found!",
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "git+https://github.com/visionmedia/bytes.js.git"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"test": "mocha --check-leaks --reporter spec"
|
|
||||||
},
|
|
||||||
"version": "2.4.0"
|
|
||||||
}
|
|
||||||
27
GYMApp/GYMApp/node_modules/camelcase/index.js
generated
vendored
27
GYMApp/GYMApp/node_modules/camelcase/index.js
generated
vendored
@@ -1,27 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
module.exports = function () {
|
|
||||||
var str = [].map.call(arguments, function (str) {
|
|
||||||
return str.trim();
|
|
||||||
}).filter(function (str) {
|
|
||||||
return str.length;
|
|
||||||
}).join('-');
|
|
||||||
|
|
||||||
if (!str.length) {
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (str.length === 1 || !(/[_.\- ]+/).test(str) ) {
|
|
||||||
if (str[0] === str[0].toLowerCase() && str.slice(1) !== str.slice(1).toLowerCase()) {
|
|
||||||
return str;
|
|
||||||
}
|
|
||||||
|
|
||||||
return str.toLowerCase();
|
|
||||||
}
|
|
||||||
|
|
||||||
return str
|
|
||||||
.replace(/^[_.\- ]+/, '')
|
|
||||||
.toLowerCase()
|
|
||||||
.replace(/[_.\- ]+(\w|$)/g, function (m, p1) {
|
|
||||||
return p1.toUpperCase();
|
|
||||||
});
|
|
||||||
};
|
|
||||||
21
GYMApp/GYMApp/node_modules/camelcase/license
generated
vendored
21
GYMApp/GYMApp/node_modules/camelcase/license
generated
vendored
@@ -1,21 +0,0 @@
|
|||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
|
|
||||||
|
|
||||||
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.
|
|
||||||
102
GYMApp/GYMApp/node_modules/camelcase/package.json
generated
vendored
102
GYMApp/GYMApp/node_modules/camelcase/package.json
generated
vendored
@@ -1,102 +0,0 @@
|
|||||||
{
|
|
||||||
"_args": [
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"raw": "camelcase@^1.0.2",
|
|
||||||
"scope": null,
|
|
||||||
"escapedName": "camelcase",
|
|
||||||
"name": "camelcase",
|
|
||||||
"rawSpec": "^1.0.2",
|
|
||||||
"spec": ">=1.0.2 <2.0.0",
|
|
||||||
"type": "range"
|
|
||||||
},
|
|
||||||
"C:\\Users\\nkiboti\\workspace\\GYMApp\\GYMApp\\node_modules\\yargs"
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"_from": "camelcase@>=1.0.2 <2.0.0",
|
|
||||||
"_id": "camelcase@1.2.1",
|
|
||||||
"_inCache": true,
|
|
||||||
"_location": "/camelcase",
|
|
||||||
"_nodeVersion": "0.12.5",
|
|
||||||
"_npmUser": {
|
|
||||||
"name": "sindresorhus",
|
|
||||||
"email": "sindresorhus@gmail.com"
|
|
||||||
},
|
|
||||||
"_npmVersion": "2.11.2",
|
|
||||||
"_phantomChildren": {},
|
|
||||||
"_requested": {
|
|
||||||
"raw": "camelcase@^1.0.2",
|
|
||||||
"scope": null,
|
|
||||||
"escapedName": "camelcase",
|
|
||||||
"name": "camelcase",
|
|
||||||
"rawSpec": "^1.0.2",
|
|
||||||
"spec": ">=1.0.2 <2.0.0",
|
|
||||||
"type": "range"
|
|
||||||
},
|
|
||||||
"_requiredBy": [
|
|
||||||
"/yargs"
|
|
||||||
],
|
|
||||||
"_resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
|
|
||||||
"_shasum": "9bb5304d2e0b56698b2c758b08a3eaa9daa58a39",
|
|
||||||
"_shrinkwrap": null,
|
|
||||||
"_spec": "camelcase@^1.0.2",
|
|
||||||
"_where": "C:\\Users\\nkiboti\\workspace\\GYMApp\\GYMApp\\node_modules\\yargs",
|
|
||||||
"author": {
|
|
||||||
"name": "Sindre Sorhus",
|
|
||||||
"email": "sindresorhus@gmail.com",
|
|
||||||
"url": "http://sindresorhus.com"
|
|
||||||
},
|
|
||||||
"bugs": {
|
|
||||||
"url": "https://github.com/sindresorhus/camelcase/issues"
|
|
||||||
},
|
|
||||||
"dependencies": {},
|
|
||||||
"description": "Convert a dash/dot/underscore/space separated string to camelCase: foo-bar → fooBar",
|
|
||||||
"devDependencies": {
|
|
||||||
"ava": "0.0.4"
|
|
||||||
},
|
|
||||||
"directories": {},
|
|
||||||
"dist": {
|
|
||||||
"shasum": "9bb5304d2e0b56698b2c758b08a3eaa9daa58a39",
|
|
||||||
"tarball": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.10.0"
|
|
||||||
},
|
|
||||||
"files": [
|
|
||||||
"index.js"
|
|
||||||
],
|
|
||||||
"gitHead": "185ba12da723be9c1ee986cc2956bdc4c517a141",
|
|
||||||
"homepage": "https://github.com/sindresorhus/camelcase",
|
|
||||||
"keywords": [
|
|
||||||
"camelcase",
|
|
||||||
"camel-case",
|
|
||||||
"camel",
|
|
||||||
"case",
|
|
||||||
"dash",
|
|
||||||
"hyphen",
|
|
||||||
"dot",
|
|
||||||
"underscore",
|
|
||||||
"separator",
|
|
||||||
"string",
|
|
||||||
"text",
|
|
||||||
"convert"
|
|
||||||
],
|
|
||||||
"license": "MIT",
|
|
||||||
"maintainers": [
|
|
||||||
{
|
|
||||||
"name": "sindresorhus",
|
|
||||||
"email": "sindresorhus@gmail.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "camelcase",
|
|
||||||
"optionalDependencies": {},
|
|
||||||
"readme": "ERROR: No README data found!",
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "git+https://github.com/sindresorhus/camelcase.git"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"test": "node test.js"
|
|
||||||
},
|
|
||||||
"version": "1.2.1"
|
|
||||||
}
|
|
||||||
56
GYMApp/GYMApp/node_modules/camelcase/readme.md
generated
vendored
56
GYMApp/GYMApp/node_modules/camelcase/readme.md
generated
vendored
@@ -1,56 +0,0 @@
|
|||||||
# camelcase [](https://travis-ci.org/sindresorhus/camelcase)
|
|
||||||
|
|
||||||
> Convert a dash/dot/underscore/space separated string to camelCase: `foo-bar` → `fooBar`
|
|
||||||
|
|
||||||
|
|
||||||
## Install
|
|
||||||
|
|
||||||
```sh
|
|
||||||
$ npm install --save camelcase
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
```js
|
|
||||||
var camelCase = require('camelcase');
|
|
||||||
|
|
||||||
camelCase('foo-bar');
|
|
||||||
//=> fooBar
|
|
||||||
|
|
||||||
camelCase('foo_bar');
|
|
||||||
//=> fooBar
|
|
||||||
|
|
||||||
camelCase('Foo-Bar');
|
|
||||||
//=> fooBar
|
|
||||||
|
|
||||||
camelCase('--foo.bar');
|
|
||||||
//=> fooBar
|
|
||||||
|
|
||||||
camelCase('__foo__bar__');
|
|
||||||
//=> fooBar
|
|
||||||
|
|
||||||
camelCase('foo bar');
|
|
||||||
//=> fooBar
|
|
||||||
|
|
||||||
console.log(process.argv[3]);
|
|
||||||
//=> --foo-bar
|
|
||||||
camelCase(process.argv[3]);
|
|
||||||
//=> fooBar
|
|
||||||
|
|
||||||
camelCase('foo', 'bar');
|
|
||||||
//=> fooBar
|
|
||||||
|
|
||||||
camelCase('__foo__', '--bar');
|
|
||||||
//=> fooBar
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
## Related
|
|
||||||
|
|
||||||
See [`decamelize`](https://github.com/sindresorhus/decamelize) for the inverse.
|
|
||||||
|
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
MIT © [Sindre Sorhus](http://sindresorhus.com)
|
|
||||||
21
GYMApp/GYMApp/node_modules/center-align/LICENSE
generated
vendored
21
GYMApp/GYMApp/node_modules/center-align/LICENSE
generated
vendored
@@ -1,21 +0,0 @@
|
|||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2015, Jon Schlinkert.
|
|
||||||
|
|
||||||
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.
|
|
||||||
74
GYMApp/GYMApp/node_modules/center-align/README.md
generated
vendored
74
GYMApp/GYMApp/node_modules/center-align/README.md
generated
vendored
@@ -1,74 +0,0 @@
|
|||||||
# center-align [](http://badge.fury.io/js/center-align)
|
|
||||||
|
|
||||||
> Center-align the text in a string.
|
|
||||||
|
|
||||||
Install with [npm](https://www.npmjs.com/)
|
|
||||||
|
|
||||||
```sh
|
|
||||||
$ npm i center-align --save
|
|
||||||
```
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
```js
|
|
||||||
var centerAlign = require('center-align');
|
|
||||||
```
|
|
||||||
|
|
||||||
**Example**
|
|
||||||
|
|
||||||
If used on the following:
|
|
||||||
|
|
||||||
```
|
|
||||||
Lorem ipsum dolor sit amet,
|
|
||||||
consectetur adipiscing
|
|
||||||
elit, sed do eiusmod tempor incididunt
|
|
||||||
ut labore et dolore
|
|
||||||
magna aliqua. Ut enim ad minim
|
|
||||||
veniam, quis
|
|
||||||
```
|
|
||||||
|
|
||||||
The result would be:
|
|
||||||
|
|
||||||
```
|
|
||||||
Lorem ipsum dolor sit amet,
|
|
||||||
consectetur adipiscing
|
|
||||||
elit, sed do eiusmod tempor incididunt
|
|
||||||
ut labore et dolore
|
|
||||||
magna aliqua. Ut enim ad minim
|
|
||||||
veniam, quis
|
|
||||||
```
|
|
||||||
|
|
||||||
## Related projects
|
|
||||||
|
|
||||||
* [align-text](https://www.npmjs.com/package/align-text): Align the text in a string. | [homepage](https://github.com/jonschlinkert/align-text)
|
|
||||||
* [justified](https://www.npmjs.com/package/justified): Wrap words to a specified length and justified the text. | [homepage](https://github.com/jonschlinkert/justified)
|
|
||||||
* [right-align](https://www.npmjs.com/package/right-align): Right-align the text in a string. | [homepage](https://github.com/jonschlinkert/right-align)
|
|
||||||
* [word-wrap](https://www.npmjs.com/package/word-wrap): Wrap words to a specified length. | [homepage](https://github.com/jonschlinkert/word-wrap)
|
|
||||||
|
|
||||||
## Running tests
|
|
||||||
|
|
||||||
Install dev dependencies:
|
|
||||||
|
|
||||||
```sh
|
|
||||||
$ npm i -d && npm test
|
|
||||||
```
|
|
||||||
|
|
||||||
## Contributing
|
|
||||||
|
|
||||||
Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/jonschlinkert/center-align/issues/new).
|
|
||||||
|
|
||||||
## Author
|
|
||||||
|
|
||||||
**Jon Schlinkert**
|
|
||||||
|
|
||||||
+ [github/jonschlinkert](https://github.com/jonschlinkert)
|
|
||||||
+ [twitter/jonschlinkert](http://twitter.com/jonschlinkert)
|
|
||||||
|
|
||||||
## License
|
|
||||||
|
|
||||||
Copyright © 2015 Jon Schlinkert
|
|
||||||
Released under the MIT license.
|
|
||||||
|
|
||||||
***
|
|
||||||
|
|
||||||
_This file was generated by [verb-cli](https://github.com/assemble/verb-cli) on October 27, 2015._
|
|
||||||
16
GYMApp/GYMApp/node_modules/center-align/index.js
generated
vendored
16
GYMApp/GYMApp/node_modules/center-align/index.js
generated
vendored
@@ -1,16 +0,0 @@
|
|||||||
/*!
|
|
||||||
* center-align <https://github.com/jonschlinkert/center-align>
|
|
||||||
*
|
|
||||||
* Copycenter (c) 2015, Jon Schlinkert.
|
|
||||||
* Licensed under the MIT License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
var utils = require('./utils');
|
|
||||||
|
|
||||||
module.exports = function centerAlign(val) {
|
|
||||||
return utils.align(val, function (len, longest) {
|
|
||||||
return Math.floor((longest - len) / 2);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
121
GYMApp/GYMApp/node_modules/center-align/package.json
generated
vendored
121
GYMApp/GYMApp/node_modules/center-align/package.json
generated
vendored
@@ -1,121 +0,0 @@
|
|||||||
{
|
|
||||||
"_args": [
|
|
||||||
[
|
|
||||||
{
|
|
||||||
"raw": "center-align@^0.1.1",
|
|
||||||
"scope": null,
|
|
||||||
"escapedName": "center-align",
|
|
||||||
"name": "center-align",
|
|
||||||
"rawSpec": "^0.1.1",
|
|
||||||
"spec": ">=0.1.1 <0.2.0",
|
|
||||||
"type": "range"
|
|
||||||
},
|
|
||||||
"C:\\Users\\nkiboti\\workspace\\GYMApp\\GYMApp\\node_modules\\cliui"
|
|
||||||
]
|
|
||||||
],
|
|
||||||
"_from": "center-align@>=0.1.1 <0.2.0",
|
|
||||||
"_id": "center-align@0.1.3",
|
|
||||||
"_inCache": true,
|
|
||||||
"_location": "/center-align",
|
|
||||||
"_nodeVersion": "5.3.0",
|
|
||||||
"_npmOperationalInternal": {
|
|
||||||
"host": "packages-9-west.internal.npmjs.com",
|
|
||||||
"tmp": "tmp/center-align-0.1.3.tgz_1454366538829_0.9471865000668913"
|
|
||||||
},
|
|
||||||
"_npmUser": {
|
|
||||||
"name": "jonschlinkert",
|
|
||||||
"email": "github@sellside.com"
|
|
||||||
},
|
|
||||||
"_npmVersion": "3.3.12",
|
|
||||||
"_phantomChildren": {},
|
|
||||||
"_requested": {
|
|
||||||
"raw": "center-align@^0.1.1",
|
|
||||||
"scope": null,
|
|
||||||
"escapedName": "center-align",
|
|
||||||
"name": "center-align",
|
|
||||||
"rawSpec": "^0.1.1",
|
|
||||||
"spec": ">=0.1.1 <0.2.0",
|
|
||||||
"type": "range"
|
|
||||||
},
|
|
||||||
"_requiredBy": [
|
|
||||||
"/cliui"
|
|
||||||
],
|
|
||||||
"_resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
|
|
||||||
"_shasum": "aa0d32629b6ee972200411cbd4461c907bc2b7ad",
|
|
||||||
"_shrinkwrap": null,
|
|
||||||
"_spec": "center-align@^0.1.1",
|
|
||||||
"_where": "C:\\Users\\nkiboti\\workspace\\GYMApp\\GYMApp\\node_modules\\cliui",
|
|
||||||
"author": {
|
|
||||||
"name": "Jon Schlinkert",
|
|
||||||
"url": "https://github.com/jonschlinkert"
|
|
||||||
},
|
|
||||||
"bugs": {
|
|
||||||
"url": "https://github.com/jonschlinkert/center-align/issues"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"align-text": "^0.1.3",
|
|
||||||
"lazy-cache": "^1.0.3"
|
|
||||||
},
|
|
||||||
"description": "Center-align the text in a string.",
|
|
||||||
"devDependencies": {
|
|
||||||
"mocha": "^2.2.0"
|
|
||||||
},
|
|
||||||
"directories": {},
|
|
||||||
"dist": {
|
|
||||||
"shasum": "aa0d32629b6ee972200411cbd4461c907bc2b7ad",
|
|
||||||
"tarball": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.10.0"
|
|
||||||
},
|
|
||||||
"files": [
|
|
||||||
"index.js",
|
|
||||||
"utils.js"
|
|
||||||
],
|
|
||||||
"gitHead": "5c5fab5012fceaa3e21a00162958c0ed11109419",
|
|
||||||
"homepage": "https://github.com/jonschlinkert/center-align",
|
|
||||||
"keywords": [
|
|
||||||
"align",
|
|
||||||
"align-center",
|
|
||||||
"center",
|
|
||||||
"center-align",
|
|
||||||
"right",
|
|
||||||
"right-align",
|
|
||||||
"text",
|
|
||||||
"typography"
|
|
||||||
],
|
|
||||||
"license": "MIT",
|
|
||||||
"main": "index.js",
|
|
||||||
"maintainers": [
|
|
||||||
{
|
|
||||||
"name": "doowb",
|
|
||||||
"email": "brian.woodward@gmail.com"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "jonschlinkert",
|
|
||||||
"email": "github@sellside.com"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "center-align",
|
|
||||||
"optionalDependencies": {},
|
|
||||||
"readme": "ERROR: No README data found!",
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "git+https://github.com/jonschlinkert/center-align.git"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"test": "mocha"
|
|
||||||
},
|
|
||||||
"verb": {
|
|
||||||
"related": {
|
|
||||||
"description": "",
|
|
||||||
"list": [
|
|
||||||
"align-text",
|
|
||||||
"right-align",
|
|
||||||
"justified",
|
|
||||||
"word-wrap"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"version": "0.1.3"
|
|
||||||
}
|
|
||||||
40
GYMApp/GYMApp/node_modules/center-align/utils.js
generated
vendored
40
GYMApp/GYMApp/node_modules/center-align/utils.js
generated
vendored
@@ -1,40 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Lazily-required module dependencies (makes the application
|
|
||||||
* faster)
|
|
||||||
*/
|
|
||||||
|
|
||||||
var utils = require('lazy-cache')(require);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Temporarily re-assign `require` to trick browserify and
|
|
||||||
* webpack into reconizing lazy dependencies.
|
|
||||||
*
|
|
||||||
* This tiny bit of ugliness has the huge dual advantage of
|
|
||||||
* only loading modules that are actually called at some
|
|
||||||
* point in the lifecycle of the application, whilst also
|
|
||||||
* allowing browserify and webpack to find modules that
|
|
||||||
* are depended on but never actually called.
|
|
||||||
*/
|
|
||||||
|
|
||||||
var fn = require;
|
|
||||||
require = utils;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Lazily required module dependencies
|
|
||||||
*/
|
|
||||||
|
|
||||||
require('align-text', 'align');
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Restore `require`
|
|
||||||
*/
|
|
||||||
|
|
||||||
require = fn;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Expose `utils` modules
|
|
||||||
*/
|
|
||||||
|
|
||||||
module.exports = utils;
|
|
||||||
1
GYMApp/GYMApp/node_modules/cliui/.coveralls.yml
generated
vendored
1
GYMApp/GYMApp/node_modules/cliui/.coveralls.yml
generated
vendored
@@ -1 +0,0 @@
|
|||||||
repo_token: NiRhyj91Z2vtgob6XdEAqs83rzNnbMZUu
|
|
||||||
2
GYMApp/GYMApp/node_modules/cliui/.npmignore
generated
vendored
2
GYMApp/GYMApp/node_modules/cliui/.npmignore
generated
vendored
@@ -1,2 +0,0 @@
|
|||||||
.DS_Store
|
|
||||||
node_modules
|
|
||||||
7
GYMApp/GYMApp/node_modules/cliui/.travis.yml
generated
vendored
7
GYMApp/GYMApp/node_modules/cliui/.travis.yml
generated
vendored
@@ -1,7 +0,0 @@
|
|||||||
language: node_js
|
|
||||||
node_js:
|
|
||||||
- "0.10"
|
|
||||||
- "0.11"
|
|
||||||
- "0.12"
|
|
||||||
- "iojs"
|
|
||||||
after_script: "NODE_ENV=test YOURPACKAGE_COVERAGE=1 ./node_modules/.bin/mocha --require patched-blanket --reporter mocha-lcov-reporter | ./node_modules/coveralls/bin/coveralls.js"
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user