Browse Source

initial -nm

Ivan Asmer 5 years ago
parent
commit
11939f744b
100 changed files with 0 additions and 33998 deletions
  1. 0 1
      node_modules/.bin/mime
  2. 0 1
      node_modules/.bin/mkdirp
  3. 0 1
      node_modules/.bin/semver
  4. 0 236
      node_modules/accepts/HISTORY.md
  5. 0 23
      node_modules/accepts/LICENSE
  6. 0 142
      node_modules/accepts/README.md
  7. 0 238
      node_modules/accepts/index.js
  8. 0 90
      node_modules/accepts/package.json
  9. 0 1
      node_modules/append-field/.npmignore
  10. 0 21
      node_modules/append-field/LICENSE
  11. 0 44
      node_modules/append-field/README.md
  12. 0 12
      node_modules/append-field/index.js
  13. 0 53
      node_modules/append-field/lib/parse-path.js
  14. 0 64
      node_modules/append-field/lib/set-value.js
  15. 0 55
      node_modules/append-field/package.json
  16. 0 19
      node_modules/append-field/test/forms.js
  17. 0 21
      node_modules/array-flatten/LICENSE
  18. 0 43
      node_modules/array-flatten/README.md
  19. 0 64
      node_modules/array-flatten/array-flatten.js
  20. 0 67
      node_modules/array-flatten/package.json
  21. 0 609
      node_modules/body-parser/HISTORY.md
  22. 0 23
      node_modules/body-parser/LICENSE
  23. 0 443
      node_modules/body-parser/README.md
  24. 0 157
      node_modules/body-parser/index.js
  25. 0 181
      node_modules/body-parser/lib/read.js
  26. 0 230
      node_modules/body-parser/lib/types/json.js
  27. 0 101
      node_modules/body-parser/lib/types/raw.js
  28. 0 121
      node_modules/body-parser/lib/types/text.js
  29. 0 284
      node_modules/body-parser/lib/types/urlencoded.js
  30. 0 94
      node_modules/body-parser/package.json
  31. 0 268
      node_modules/bson/HISTORY.md
  32. 0 201
      node_modules/bson/LICENSE.md
  33. 0 170
      node_modules/bson/README.md
  34. 0 25
      node_modules/bson/bower.json
  35. 0 17769
      node_modules/bson/browser_build/bson.js
  36. 0 8
      node_modules/bson/browser_build/package.json
  37. 0 46
      node_modules/bson/index.js
  38. 0 384
      node_modules/bson/lib/bson/binary.js
  39. 0 386
      node_modules/bson/lib/bson/bson.js
  40. 0 24
      node_modules/bson/lib/bson/code.js
  41. 0 32
      node_modules/bson/lib/bson/db_ref.js
  42. 0 820
      node_modules/bson/lib/bson/decimal128.js
  43. 0 33
      node_modules/bson/lib/bson/double.js
  44. 0 124
      node_modules/bson/lib/bson/float_parser.js
  45. 0 33
      node_modules/bson/lib/bson/int_32.js
  46. 0 851
      node_modules/bson/lib/bson/long.js
  47. 0 128
      node_modules/bson/lib/bson/map.js
  48. 0 14
      node_modules/bson/lib/bson/max_key.js
  49. 0 14
      node_modules/bson/lib/bson/min_key.js
  50. 0 389
      node_modules/bson/lib/bson/objectid.js
  51. 0 255
      node_modules/bson/lib/bson/parser/calculate_size.js
  52. 0 782
      node_modules/bson/lib/bson/parser/deserializer.js
  53. 0 1182
      node_modules/bson/lib/bson/parser/serializer.js
  54. 0 28
      node_modules/bson/lib/bson/parser/utils.js
  55. 0 33
      node_modules/bson/lib/bson/regexp.js
  56. 0 50
      node_modules/bson/lib/bson/symbol.js
  57. 0 854
      node_modules/bson/lib/bson/timestamp.js
  58. 0 90
      node_modules/bson/package.json
  59. 0 2
      node_modules/buffer-equal-constant-time/.npmignore
  60. 0 4
      node_modules/buffer-equal-constant-time/.travis.yml
  61. 0 12
      node_modules/buffer-equal-constant-time/LICENSE.txt
  62. 0 50
      node_modules/buffer-equal-constant-time/README.md
  63. 0 41
      node_modules/buffer-equal-constant-time/index.js
  64. 0 58
      node_modules/buffer-equal-constant-time/package.json
  65. 0 42
      node_modules/buffer-equal-constant-time/test.js
  66. 0 21
      node_modules/buffer-from/LICENSE
  67. 0 69
      node_modules/buffer-from/index.js
  68. 0 55
      node_modules/buffer-from/package.json
  69. 0 69
      node_modules/buffer-from/readme.md
  70. 0 17
      node_modules/busboy/.travis.yml
  71. 0 19
      node_modules/busboy/LICENSE
  72. 0 225
      node_modules/busboy/README.md
  73. 0 73
      node_modules/busboy/deps/encoding/encoding-indexes.js
  74. 0 2391
      node_modules/busboy/deps/encoding/encoding.js
  75. 0 89
      node_modules/busboy/lib/main.js
  76. 0 324
      node_modules/busboy/lib/types/multipart.js
  77. 0 214
      node_modules/busboy/lib/types/urlencoded.js
  78. 0 186
      node_modules/busboy/lib/utils.js
  79. 0 68
      node_modules/busboy/package.json
  80. 0 343
      node_modules/busboy/test/test-types-multipart.js
  81. 0 183
      node_modules/busboy/test/test-types-urlencoded.js
  82. 0 66
      node_modules/busboy/test/test-utils-decoder.js
  83. 0 96
      node_modules/busboy/test/test-utils-parse-params.js
  84. 0 4
      node_modules/busboy/test/test.js
  85. 0 87
      node_modules/bytes/History.md
  86. 0 23
      node_modules/bytes/LICENSE
  87. 0 126
      node_modules/bytes/Readme.md
  88. 0 162
      node_modules/bytes/index.js
  89. 0 88
      node_modules/bytes/package.json
  90. 0 24
      node_modules/concat-stream/LICENSE
  91. 0 144
      node_modules/concat-stream/index.js
  92. 0 1
      node_modules/concat-stream/node_modules/isarray/.npmignore
  93. 0 4
      node_modules/concat-stream/node_modules/isarray/.travis.yml
  94. 0 6
      node_modules/concat-stream/node_modules/isarray/Makefile
  95. 0 60
      node_modules/concat-stream/node_modules/isarray/README.md
  96. 0 19
      node_modules/concat-stream/node_modules/isarray/component.json
  97. 0 5
      node_modules/concat-stream/node_modules/isarray/index.js
  98. 0 76
      node_modules/concat-stream/node_modules/isarray/package.json
  99. 0 20
      node_modules/concat-stream/node_modules/isarray/test.js
  100. 0 0
      node_modules/concat-stream/node_modules/readable-stream/.travis.yml

+ 0 - 1
node_modules/.bin/mime

@@ -1 +0,0 @@
-../mime/cli.js

+ 0 - 1
node_modules/.bin/mkdirp

@@ -1 +0,0 @@
-../mkdirp/bin/cmd.js

+ 0 - 1
node_modules/.bin/semver

@@ -1 +0,0 @@
-../semver/bin/semver

+ 0 - 236
node_modules/accepts/HISTORY.md

@@ -1,236 +0,0 @@
-1.3.7 / 2019-04-29
-==================
-
-  * deps: negotiator@0.6.2
-    - Fix sorting charset, encoding, and language with extra parameters
-
-1.3.6 / 2019-04-28
-==================
-
-  * deps: mime-types@~2.1.24
-    - deps: mime-db@~1.40.0
-
-1.3.5 / 2018-02-28
-==================
-
-  * deps: mime-types@~2.1.18
-    - deps: mime-db@~1.33.0
-
-1.3.4 / 2017-08-22
-==================
-
-  * deps: mime-types@~2.1.16
-    - deps: mime-db@~1.29.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

+ 0 - 23
node_modules/accepts/LICENSE

@@ -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.

+ 0 - 142
node_modules/accepts/README.md

@@ -1,142 +0,0 @@
-# accepts
-
-[![NPM Version][npm-version-image]][npm-url]
-[![NPM Downloads][npm-downloads-image]][npm-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
-
-This is a [Node.js](https://nodejs.org/en/) module available through the
-[npm registry](https://www.npmjs.com/). Installation is done using the
-[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):
-
-```sh
-$ npm install accepts
-```
-
-## API
-
-<!-- eslint-disable no-unused-vars -->
-
-```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)
-
-[coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/accepts/master
-[coveralls-url]: https://coveralls.io/r/jshttp/accepts?branch=master
-[node-version-image]: https://badgen.net/npm/node/accepts
-[node-version-url]: https://nodejs.org/en/download
-[npm-downloads-image]: https://badgen.net/npm/dm/accepts
-[npm-url]: https://npmjs.org/package/accepts
-[npm-version-image]: https://badgen.net/npm/v/accepts
-[travis-image]: https://badgen.net/travis/jshttp/accepts/master
-[travis-url]: https://travis-ci.org/jshttp/accepts

+ 0 - 238
node_modules/accepts/index.js

@@ -1,238 +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()
-  }
-
-  // no accept header, return first given type
-  if (!this.headers.accept) {
-    return types[0]
-  }
-
-  var mimes = types.map(extToMime)
-  var accepts = this.negotiator.mediaTypes(mimes.filter(validMime))
-  var first = accepts[0]
-
-  return first
-    ? types[mimes.indexOf(first)]
-    : false
-}
-
-/**
- * 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'
-}

+ 0 - 90
node_modules/accepts/package.json

@@ -1,90 +0,0 @@
-{
-  "_args": [
-    [
-      "accepts@1.3.7",
-      "/home/asmer/work/alvl/mockbacks/shop"
-    ]
-  ],
-  "_from": "accepts@1.3.7",
-  "_id": "accepts@1.3.7",
-  "_inBundle": false,
-  "_integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
-  "_location": "/accepts",
-  "_phantomChildren": {},
-  "_requested": {
-    "type": "version",
-    "registry": true,
-    "raw": "accepts@1.3.7",
-    "name": "accepts",
-    "escapedName": "accepts",
-    "rawSpec": "1.3.7",
-    "saveSpec": null,
-    "fetchSpec": "1.3.7"
-  },
-  "_requiredBy": [
-    "/express",
-    "/express-graphql"
-  ],
-  "_resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
-  "_spec": "1.3.7",
-  "_where": "/home/asmer/work/alvl/mockbacks/shop",
-  "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.24",
-    "negotiator": "0.6.2"
-  },
-  "description": "Higher-level content negotiation",
-  "devDependencies": {
-    "deep-equal": "1.0.1",
-    "eslint": "5.16.0",
-    "eslint-config-standard": "12.0.0",
-    "eslint-plugin-import": "2.17.2",
-    "eslint-plugin-markdown": "1.0.0",
-    "eslint-plugin-node": "8.0.1",
-    "eslint-plugin-promise": "4.1.1",
-    "eslint-plugin-standard": "4.0.0",
-    "mocha": "6.1.4",
-    "nyc": "14.0.0"
-  },
-  "engines": {
-    "node": ">= 0.6"
-  },
-  "files": [
-    "LICENSE",
-    "HISTORY.md",
-    "index.js"
-  ],
-  "homepage": "https://github.com/jshttp/accepts#readme",
-  "keywords": [
-    "content",
-    "negotiation",
-    "accept",
-    "accepts"
-  ],
-  "license": "MIT",
-  "name": "accepts",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/jshttp/accepts.git"
-  },
-  "scripts": {
-    "lint": "eslint --plugin markdown --ext js,md .",
-    "test": "mocha --reporter spec --check-leaks --bail test/",
-    "test-cov": "nyc --reporter=html --reporter=text npm test",
-    "test-travis": "nyc --reporter=text npm test"
-  },
-  "version": "1.3.7"
-}

+ 0 - 1
node_modules/append-field/.npmignore

@@ -1 +0,0 @@
-node_modules/

+ 0 - 21
node_modules/append-field/LICENSE

@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015 Linus Unnebäck
-
-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.

+ 0 - 44
node_modules/append-field/README.md

@@ -1,44 +0,0 @@
-# `append-field`
-
-A [W3C HTML JSON forms spec](http://www.w3.org/TR/html-json-forms/) compliant
-field appender (for lack of a better name). Useful for people implementing
-`application/x-www-form-urlencoded` and `multipart/form-data` parsers.
-
-It works best on objects created with `Object.create(null)`. Otherwise it might
-conflict with variables from the prototype (e.g. `hasOwnProperty`).
-
-## Installation
-
-```sh
-npm install --save append-field
-```
-
-## Usage
-
-```javascript
-var appendField = require('append-field')
-var obj = Object.create(null)
-
-appendField(obj, 'pets[0][species]', 'Dahut')
-appendField(obj, 'pets[0][name]', 'Hypatia')
-appendField(obj, 'pets[1][species]', 'Felis Stultus')
-appendField(obj, 'pets[1][name]', 'Billie')
-
-console.log(obj)
-```
-
-```text
-{ pets:
-   [ { species: 'Dahut', name: 'Hypatia' },
-     { species: 'Felis Stultus', name: 'Billie' } ] }
-```
-
-## API
-
-### `appendField(store, key, value)`
-
-Adds the field named `key` with the value `value` to the object `store`.
-
-## License
-
-MIT

+ 0 - 12
node_modules/append-field/index.js

@@ -1,12 +0,0 @@
-var parsePath = require('./lib/parse-path')
-var setValue = require('./lib/set-value')
-
-function appendField (store, key, value) {
-  var steps = parsePath(key)
-
-  steps.reduce(function (context, step) {
-    return setValue(context, step, context[step.key], value)
-  }, store)
-}
-
-module.exports = appendField

+ 0 - 53
node_modules/append-field/lib/parse-path.js

@@ -1,53 +0,0 @@
-var reFirstKey = /^[^\[]*/
-var reDigitPath = /^\[(\d+)\]/
-var reNormalPath = /^\[([^\]]+)\]/
-
-function parsePath (key) {
-  function failure () {
-    return [{ type: 'object', key: key, last: true }]
-  }
-
-  var firstKey = reFirstKey.exec(key)[0]
-  if (!firstKey) return failure()
-
-  var len = key.length
-  var pos = firstKey.length
-  var tail = { type: 'object', key: firstKey }
-  var steps = [tail]
-
-  while (pos < len) {
-    var m
-
-    if (key[pos] === '[' && key[pos + 1] === ']') {
-      pos += 2
-      tail.append = true
-      if (pos !== len) return failure()
-      continue
-    }
-
-    m = reDigitPath.exec(key.substring(pos))
-    if (m !== null) {
-      pos += m[0].length
-      tail.nextType = 'array'
-      tail = { type: 'array', key: parseInt(m[1], 10) }
-      steps.push(tail)
-      continue
-    }
-
-    m = reNormalPath.exec(key.substring(pos))
-    if (m !== null) {
-      pos += m[0].length
-      tail.nextType = 'object'
-      tail = { type: 'object', key: m[1] }
-      steps.push(tail)
-      continue
-    }
-
-    return failure()
-  }
-
-  tail.last = true
-  return steps
-}
-
-module.exports = parsePath

+ 0 - 64
node_modules/append-field/lib/set-value.js

@@ -1,64 +0,0 @@
-function valueType (value) {
-  if (value === undefined) return 'undefined'
-  if (Array.isArray(value)) return 'array'
-  if (typeof value === 'object') return 'object'
-  return 'scalar'
-}
-
-function setLastValue (context, step, currentValue, entryValue) {
-  switch (valueType(currentValue)) {
-    case 'undefined':
-      if (step.append) {
-        context[step.key] = [entryValue]
-      } else {
-        context[step.key] = entryValue
-      }
-      break
-    case 'array':
-      context[step.key].push(entryValue)
-      break
-    case 'object':
-      return setLastValue(currentValue, { type: 'object', key: '', last: true }, currentValue[''], entryValue)
-    case 'scalar':
-      context[step.key] = [context[step.key], entryValue]
-      break
-  }
-
-  return context
-}
-
-function setValue (context, step, currentValue, entryValue) {
-  if (step.last) return setLastValue(context, step, currentValue, entryValue)
-
-  var obj
-  switch (valueType(currentValue)) {
-    case 'undefined':
-      if (step.nextType === 'array') {
-        context[step.key] = []
-      } else {
-        context[step.key] = Object.create(null)
-      }
-      return context[step.key]
-    case 'object':
-      return context[step.key]
-    case 'array':
-      if (step.nextType === 'array') {
-        return currentValue
-      }
-
-      obj = Object.create(null)
-      context[step.key] = obj
-      currentValue.forEach(function (item, i) {
-        if (item !== undefined) obj['' + i] = item
-      })
-
-      return obj
-    case 'scalar':
-      obj = Object.create(null)
-      obj[''] = currentValue
-      context[step.key] = obj
-      return obj
-  }
-}
-
-module.exports = setValue

+ 0 - 55
node_modules/append-field/package.json

@@ -1,55 +0,0 @@
-{
-  "_args": [
-    [
-      "append-field@1.0.0",
-      "/home/asmer/work/alvl/mockbacks/shop"
-    ]
-  ],
-  "_from": "append-field@1.0.0",
-  "_id": "append-field@1.0.0",
-  "_inBundle": false,
-  "_integrity": "sha1-HjRA6RXwsSA9I3SOeO3XubW0PlY=",
-  "_location": "/append-field",
-  "_phantomChildren": {},
-  "_requested": {
-    "type": "version",
-    "registry": true,
-    "raw": "append-field@1.0.0",
-    "name": "append-field",
-    "escapedName": "append-field",
-    "rawSpec": "1.0.0",
-    "saveSpec": null,
-    "fetchSpec": "1.0.0"
-  },
-  "_requiredBy": [
-    "/multer"
-  ],
-  "_resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz",
-  "_spec": "1.0.0",
-  "_where": "/home/asmer/work/alvl/mockbacks/shop",
-  "author": {
-    "name": "Linus Unnebäck",
-    "email": "linus@folkdatorn.se"
-  },
-  "bugs": {
-    "url": "https://github.com/LinusU/node-append-field/issues"
-  },
-  "description": "A [W3C HTML JSON forms spec](http://www.w3.org/TR/html-json-forms/) compliant field appender (for lack of a better name). Useful for people implementing `application/x-www-form-urlencoded` and `multipart/form-data` parsers.",
-  "devDependencies": {
-    "mocha": "^2.2.4",
-    "standard": "^6.0.5",
-    "testdata-w3c-json-form": "^0.2.0"
-  },
-  "homepage": "https://github.com/LinusU/node-append-field#readme",
-  "license": "MIT",
-  "main": "index.js",
-  "name": "append-field",
-  "repository": {
-    "type": "git",
-    "url": "git+ssh://git@github.com/LinusU/node-append-field.git"
-  },
-  "scripts": {
-    "test": "standard && mocha"
-  },
-  "version": "1.0.0"
-}

+ 0 - 19
node_modules/append-field/test/forms.js

@@ -1,19 +0,0 @@
-/* eslint-env mocha */
-
-var assert = require('assert')
-var appendField = require('../')
-var testData = require('testdata-w3c-json-form')
-
-describe('Append Field', function () {
-  for (var test of testData) {
-    it('handles ' + test.name, function () {
-      var store = Object.create(null)
-
-      for (var field of test.fields) {
-        appendField(store, field.key, field.value)
-      }
-
-      assert.deepEqual(store, test.expected)
-    })
-  }
-})

+ 0 - 21
node_modules/array-flatten/LICENSE

@@ -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.

+ 0 - 43
node_modules/array-flatten/README.md

@@ -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

+ 0 - 64
node_modules/array-flatten/array-flatten.js

@@ -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)
-}

+ 0 - 67
node_modules/array-flatten/package.json

@@ -1,67 +0,0 @@
-{
-  "_args": [
-    [
-      "array-flatten@1.1.1",
-      "/home/asmer/work/alvl/mockbacks/shop"
-    ]
-  ],
-  "_from": "array-flatten@1.1.1",
-  "_id": "array-flatten@1.1.1",
-  "_inBundle": false,
-  "_integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
-  "_location": "/array-flatten",
-  "_phantomChildren": {},
-  "_requested": {
-    "type": "version",
-    "registry": true,
-    "raw": "array-flatten@1.1.1",
-    "name": "array-flatten",
-    "escapedName": "array-flatten",
-    "rawSpec": "1.1.1",
-    "saveSpec": null,
-    "fetchSpec": "1.1.1"
-  },
-  "_requiredBy": [
-    "/express"
-  ],
-  "_resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
-  "_spec": "1.1.1",
-  "_where": "/home/asmer/work/alvl/mockbacks/shop",
-  "author": {
-    "name": "Blake Embrey",
-    "email": "hello@blakeembrey.com",
-    "url": "http://blakeembrey.me"
-  },
-  "bugs": {
-    "url": "https://github.com/blakeembrey/array-flatten/issues"
-  },
-  "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"
-  },
-  "files": [
-    "array-flatten.js",
-    "LICENSE"
-  ],
-  "homepage": "https://github.com/blakeembrey/array-flatten",
-  "keywords": [
-    "array",
-    "flatten",
-    "arguments",
-    "depth"
-  ],
-  "license": "MIT",
-  "main": "array-flatten.js",
-  "name": "array-flatten",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/blakeembrey/array-flatten.git"
-  },
-  "scripts": {
-    "test": "istanbul cover _mocha -- -R spec"
-  },
-  "version": "1.1.1"
-}

+ 0 - 609
node_modules/body-parser/HISTORY.md

@@ -1,609 +0,0 @@
-1.19.0 / 2019-04-25
-===================
-
-  * deps: bytes@3.1.0
-    - Add petabyte (`pb`) support
-  * deps: http-errors@1.7.2
-    - Set constructor name when possible
-    - deps: setprototypeof@1.1.1
-    - deps: statuses@'>= 1.5.0 < 2'
-  * deps: iconv-lite@0.4.24
-    - Added encoding MIK
-  * deps: qs@6.7.0
-    - Fix parsing array brackets after index
-  * deps: raw-body@2.4.0
-    - deps: bytes@3.1.0
-    - deps: http-errors@1.7.2
-    - deps: iconv-lite@0.4.24
-  * deps: type-is@~1.6.17
-    - deps: mime-types@~2.1.24
-    - perf: prevent internal `throw` on invalid type
-
-1.18.3 / 2018-05-14
-===================
-
-  * Fix stack trace for strict json parse error
-  * deps: depd@~1.1.2
-    - perf: remove argument reassignment
-  * deps: http-errors@~1.6.3
-    - deps: depd@~1.1.2
-    - deps: setprototypeof@1.1.0
-    - deps: statuses@'>= 1.3.1 < 2'
-  * deps: iconv-lite@0.4.23
-    - Fix loading encoding with year appended
-    - Fix deprecation warnings on Node.js 10+
-  * deps: qs@6.5.2
-  * deps: raw-body@2.3.3
-    - deps: http-errors@1.6.3
-    - deps: iconv-lite@0.4.23
-  * deps: type-is@~1.6.16
-    - deps: mime-types@~2.1.18
-
-1.18.2 / 2017-09-22
-===================
-
-  * deps: debug@2.6.9
-  * perf: remove argument reassignment
-
-1.18.1 / 2017-09-12
-===================
-
-  * deps: content-type@~1.0.4
-    - perf: remove argument reassignment
-    - perf: skip parameter parsing when no parameters
-  * deps: iconv-lite@0.4.19
-    - Fix ISO-8859-1 regression
-    - Update Windows-1255
-  * deps: qs@6.5.1
-    - Fix parsing & compacting very deep objects
-  * deps: raw-body@2.3.2
-    - deps: iconv-lite@0.4.19
-
-1.18.0 / 2017-09-08
-===================
-
-  * Fix JSON strict violation error to match native parse error
-  * Include the `body` property on verify errors
-  * Include the `type` property on all generated errors
-  * Use `http-errors` to set status code on errors
-  * deps: bytes@3.0.0
-  * deps: debug@2.6.8
-  * deps: depd@~1.1.1
-    - Remove unnecessary `Buffer` loading
-  * deps: http-errors@~1.6.2
-    - deps: depd@1.1.1
-  * deps: iconv-lite@0.4.18
-    - Add support for React Native
-    - Add a warning if not loaded as utf-8
-    - Fix CESU-8 decoding in Node.js 8
-    - Improve speed of ISO-8859-1 encoding
-  * deps: qs@6.5.0
-  * deps: raw-body@2.3.1
-    - Use `http-errors` for standard emitted errors
-    - deps: bytes@3.0.0
-    - deps: iconv-lite@0.4.18
-    - perf: skip buffer decoding on overage chunk
-  * perf: prevent internal `throw` when missing charset
-
-1.17.2 / 2017-05-17
-===================
-
-  * deps: debug@2.6.7
-    - Fix `DEBUG_MAX_ARRAY_LENGTH`
-    - deps: ms@2.0.0
-  * deps: type-is@~1.6.15
-    - deps: mime-types@~2.1.15
-
-1.17.1 / 2017-03-06
-===================
-
-  * deps: qs@6.4.0
-    - Fix regression parsing keys starting with `[`
-
-1.17.0 / 2017-03-01
-===================
-
-  * deps: http-errors@~1.6.1
-    - Make `message` property enumerable for `HttpError`s
-    - deps: setprototypeof@1.0.3
-  * deps: qs@6.3.1
-    - Fix compacting nested arrays
-
-1.16.1 / 2017-02-10
-===================
-
-  * deps: debug@2.6.1
-    - Fix deprecation messages in WebStorm and other editors
-    - Undeprecate `DEBUG_FD` set to `1` or `2`
-
-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.2.1
-    - Fix array parsing from skipping empty values
-  * 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

+ 0 - 23
node_modules/body-parser/LICENSE

@@ -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.

+ 0 - 443
node_modules/body-parser/README.md

@@ -1,443 +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]
-
-Node.js body parsing middleware.
-
-Parse incoming request bodies in a middleware before your handlers, available
-under the `req.body` property.
-
-**Note** As `req.body`'s shape is based on user-controlled input, all
-properties and values in this object are untrusted and should be validated
-before trusting. For example, `req.body.foo.toString()` may fail in multiple
-ways, for example the `foo` property may not be there or may not be a string,
-and `toString` may not be a function and instead a string or other user input.
-
-[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 when
-the `Content-Type` request header matches the `type` option, or an empty
-object (`{}`) if there was no body to parse, the `Content-Type` was not matched,
-or an error occurred.
-
-The various errors returned by this module are described in the
-[errors section](#errors).
-
-### bodyParser.json([options])
-
-Returns middleware that only parses `json` and only looks at requests where
-the `Content-Type` header matches the `type` option. 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 optional `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 string, array of strings, or a function. If not a
-function, `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` and only looks at
-requests where the `Content-Type` header matches the `type` option. 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 optional `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 string, array of strings, or a function.
-If not a function, `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 and only looks at
-requests where the `Content-Type` header matches the `type` option. 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 optional `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 string, array of strings, or a function. If not
-a function, `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 and only looks at
-requests where the `Content-Type` header matches the `type` option. 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 optional `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 string, array of strings, or a function. If not
-a function, `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`/`statusCode`
-property that contains the suggested HTTP response code, an `expose` property
-to determine if the `message` property should be displayed to the client, a
-`type` property to determine the type of error without matching against the
-`message`, 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`, the `type` property is set to
-`'encoding.unsupported'`, and the `charset` property will be set to the
-encoding that is unsupported.
-
-### 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`
-and `type` property is set to `'request.aborted'`.
-
-### 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` and the `type` property is set to `'entity.too.large'`.
-
-### 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` and the `type` property
-is set to `'request.size.invalid'`.
-
-### 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` and the `type` property is set to `'stream.encoding.set'`.
-
-### too many parameters
-
-This error will occur when the content of the request exceeds the configured
-`parameterLimit` for the `urlencoded` parser. The `status` property is set to
-`413` and the `type` property is set to `'parameters.too.many'`.
-
-### 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`, the
-`type` property is set to `'charset.unsupported'`, and the `charset` property
-is set to the charset that is unsupported.
-
-### 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`,
-the `type` property is set to `'encoding.unsupported'`, and the `encoding`
-property is set to the encoding that is unsupported.
-
-## 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) {
-  res.send('welcome, ' + req.body.username)
-})
-
-// POST /api/users gets JSON bodies
-app.post('/api/users', jsonParser, function (req, res) {
-  // 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

+ 0 - 157
node_modules/body-parser/index.js

@@ -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)
-}

+ 0 - 181
node_modules/body-parser/lib/read.js

@@ -1,181 +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
- * @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
-    : 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(),
-      type: 'charset.unsupported'
-    }))
-  }
-
-  // read body
-  debug('read body')
-  getBody(stream, opts, function (error, body) {
-    if (error) {
-      var _error
-
-      if (error.type === 'encoding.unsupported') {
-        // echo back charset
-        _error = createError(415, 'unsupported charset "' + encoding.toUpperCase() + '"', {
-          charset: encoding.toLowerCase(),
-          type: 'charset.unsupported'
-        })
-      } else {
-        // set status code on error
-        _error = createError(400, error)
-      }
-
-      // read off entire request
-      stream.resume()
-      onFinished(req, function onfinished () {
-        next(createError(400, _error))
-      })
-      return
-    }
-
-    // verify
-    if (verify) {
-      try {
-        debug('verify body')
-        verify(req, res, body, encoding)
-      } catch (err) {
-        next(createError(403, err, {
-          body: body,
-          type: err.type || 'entity.verify.failed'
-        }))
-        return
-      }
-    }
-
-    // parse
-    var str = body
-    try {
-      debug('parse body')
-      str = typeof body !== 'string' && encoding !== null
-        ? iconv.decode(body, encoding)
-        : body
-      req.body = parse(str)
-    } catch (err) {
-      next(createError(400, err, {
-        body: str,
-        type: err.type || 'entity.parse.failed'
-      }))
-      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', {
-      encoding: encoding,
-      type: '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,
-        type: 'encoding.unsupported'
-      })
-  }
-
-  return stream
-}

+ 0 - 230
node_modules/body-parser/lib/types/json.js

@@ -1,230 +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 createStrictSyntaxError(body, first)
-      }
-    }
-
-    try {
-      debug('parse json')
-      return JSON.parse(body, reviver)
-    } catch (e) {
-      throw normalizeJsonSyntaxError(e, {
-        message: e.message,
-        stack: e.stack
-      })
-    }
-  }
-
-  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,
-        type: 'charset.unsupported'
-      }))
-      return
-    }
-
-    // read
-    read(req, res, next, parse, debug, {
-      encoding: charset,
-      inflate: inflate,
-      limit: limit,
-      verify: verify
-    })
-  }
-}
-
-/**
- * Create strict violation syntax error matching native error.
- *
- * @param {string} str
- * @param {string} char
- * @return {Error}
- * @private
- */
-
-function createStrictSyntaxError (str, char) {
-  var index = str.indexOf(char)
-  var partial = str.substring(0, index) + '#'
-
-  try {
-    JSON.parse(partial); /* istanbul ignore next */ throw new SyntaxError('strict violation')
-  } catch (e) {
-    return normalizeJsonSyntaxError(e, {
-      message: e.message.replace('#', char),
-      stack: e.stack
-    })
-  }
-}
-
-/**
- * Get the first non-whitespace character in a string.
- *
- * @param {string} str
- * @return {function}
- * @private
- */
-
-function firstchar (str) {
-  return FIRST_CHAR_REGEXP.exec(str)[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
-  }
-}
-
-/**
- * Normalize a SyntaxError for JSON.parse.
- *
- * @param {SyntaxError} error
- * @param {object} obj
- * @return {SyntaxError}
- */
-
-function normalizeJsonSyntaxError (error, obj) {
-  var keys = Object.getOwnPropertyNames(error)
-
-  for (var i = 0; i < keys.length; i++) {
-    var key = keys[i]
-    if (key !== 'stack' && key !== 'message') {
-      delete error[key]
-    }
-  }
-
-  // replace stack before message for Node.js 0.10 and below
-  error.stack = obj.stack.replace(error.message, obj.message)
-  error.message = obj.message
-
-  return error
-}
-
-/**
- * Get the simple type checker.
- *
- * @param {string} type
- * @return {function}
- */
-
-function typeChecker (type) {
-  return function checkType (req) {
-    return Boolean(typeis(req, type))
-  }
-}

+ 0 - 101
node_modules/body-parser/lib/types/raw.js

@@ -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))
-  }
-}

+ 0 - 121
node_modules/body-parser/lib/types/text.js

@@ -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))
-  }
-}

+ 0 - 284
node_modules/body-parser/lib/types/urlencoded.js

@@ -1,284 +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,
-        type: 'charset.unsupported'
-      }))
-      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', {
-        type: 'parameters.too.many'
-      })
-    }
-
-    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', {
-        type: 'parameters.too.many'
-      })
-    }
-
-    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))
-  }
-}

+ 0 - 94
node_modules/body-parser/package.json

@@ -1,94 +0,0 @@
-{
-  "_args": [
-    [
-      "body-parser@1.19.0",
-      "/home/asmer/work/alvl/mockbacks/shop"
-    ]
-  ],
-  "_from": "body-parser@1.19.0",
-  "_id": "body-parser@1.19.0",
-  "_inBundle": false,
-  "_integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
-  "_location": "/body-parser",
-  "_phantomChildren": {},
-  "_requested": {
-    "type": "version",
-    "registry": true,
-    "raw": "body-parser@1.19.0",
-    "name": "body-parser",
-    "escapedName": "body-parser",
-    "rawSpec": "1.19.0",
-    "saveSpec": null,
-    "fetchSpec": "1.19.0"
-  },
-  "_requiredBy": [
-    "/express"
-  ],
-  "_resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
-  "_spec": "1.19.0",
-  "_where": "/home/asmer/work/alvl/mockbacks/shop",
-  "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": "3.1.0",
-    "content-type": "~1.0.4",
-    "debug": "2.6.9",
-    "depd": "~1.1.2",
-    "http-errors": "1.7.2",
-    "iconv-lite": "0.4.24",
-    "on-finished": "~2.3.0",
-    "qs": "6.7.0",
-    "raw-body": "2.4.0",
-    "type-is": "~1.6.17"
-  },
-  "description": "Node.js body parsing middleware",
-  "devDependencies": {
-    "eslint": "5.16.0",
-    "eslint-config-standard": "12.0.0",
-    "eslint-plugin-import": "2.17.2",
-    "eslint-plugin-markdown": "1.0.0",
-    "eslint-plugin-node": "8.0.1",
-    "eslint-plugin-promise": "4.1.1",
-    "eslint-plugin-standard": "4.0.0",
-    "istanbul": "0.4.5",
-    "methods": "1.1.2",
-    "mocha": "6.1.4",
-    "safe-buffer": "5.1.2",
-    "supertest": "4.0.2"
-  },
-  "engines": {
-    "node": ">= 0.8"
-  },
-  "files": [
-    "lib/",
-    "LICENSE",
-    "HISTORY.md",
-    "index.js"
-  ],
-  "homepage": "https://github.com/expressjs/body-parser#readme",
-  "license": "MIT",
-  "name": "body-parser",
-  "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.19.0"
-}

+ 0 - 268
node_modules/bson/HISTORY.md

@@ -1,268 +0,0 @@
-<a name="1.1.1"></a>
-## [1.1.1](https://github.com/mongodb/js-bson/compare/v1.1.0...v1.1.1) (2019-03-08)
-
-
-### Bug Fixes
-
-* **object-id:** support 4.x->1.x interop for MinKey and ObjectId ([53419a5](https://github.com/mongodb/js-bson/commit/53419a5))
-
-
-### Features
-
-* replace new Buffer with modern versions ([24aefba](https://github.com/mongodb/js-bson/commit/24aefba))
-
-
-
-<a name="1.1.0"></a>
-# [1.1.0](https://github.com/mongodb/js-bson/compare/v1.0.9...v1.1.0) (2018-08-13)
-
-
-### Bug Fixes
-
-* **serializer:** do not use checkKeys for $clusterTime ([573e141](https://github.com/mongodb/js-bson/commit/573e141))
-
-
-
-<a name="1.0.9"></a>
-## [1.0.9](https://github.com/mongodb/js-bson/compare/v1.0.8...v1.0.9) (2018-06-07)
-
-
-### Bug Fixes
-
-* **serializer:** remove use of `const` ([5feb12f](https://github.com/mongodb/js-bson/commit/5feb12f))
-
-
-
-<a name="1.0.7"></a>
-## [1.0.7](https://github.com/mongodb/js-bson/compare/v1.0.6...v1.0.7) (2018-06-06)
-
-
-### Bug Fixes
-
-* **binary:** add type checking for buffer ([26b05b5](https://github.com/mongodb/js-bson/commit/26b05b5))
-* **bson:** fix custom inspect property ([080323b](https://github.com/mongodb/js-bson/commit/080323b))
-* **readme:** clarify documentation about deserialize methods ([20f764c](https://github.com/mongodb/js-bson/commit/20f764c))
-* **serialization:** normalize function stringification ([1320c10](https://github.com/mongodb/js-bson/commit/1320c10))
-
-
-
-<a name="1.0.6"></a>
-## [1.0.6](https://github.com/mongodb/js-bson/compare/v1.0.5...v1.0.6) (2018-03-12)
-
-
-### Features
-
-* **serialization:** support arbitrary sizes for the internal serialization buffer ([abe97bc](https://github.com/mongodb/js-bson/commit/abe97bc))
-
-
-
-<a name="1.0.5"></a>
-## 1.0.5 (2018-02-26)
-
-
-### Bug Fixes
-
-* **decimal128:** add basic guard against REDOS attacks ([bd61c45](https://github.com/mongodb/js-bson/commit/bd61c45))
-* **objectid:** if pid is 1, use random value ([e188ae6](https://github.com/mongodb/js-bson/commit/e188ae6))
-
-
-
-1.0.4 2016-01-11
-----------------
-- #204 remove Buffer.from as it's partially broken in early 4.x.x. series of node releases.
-
-1.0.3 2016-01-03
-----------------
-- Fixed toString for ObjectId so it will work with inspect.
-
-1.0.2 2016-01-02
-----------------
-- Minor optimizations for ObjectID to use Buffer.from where available.
-
-1.0.1 2016-12-06
-----------------
-- Reverse behavior for undefined to be serialized as NULL. MongoDB 3.4 does not allow for undefined comparisons.
-
-1.0.0 2016-12-06
-----------------
-- Introduced new BSON API and documentation.
-
-0.5.7 2016-11-18
------------------
-- NODE-848 BSON Regex flags must be alphabetically ordered.
-
-0.5.6 2016-10-19
------------------
-- NODE-833, Detects cyclic dependencies in documents and throws error if one is found.
-- Fix(deserializer): corrected the check for (size + index) comparison… (Issue #195, https://github.com/JoelParke).
-
-0.5.5 2016-09-15
------------------
-- Added DBPointer up conversion to DBRef
-
-0.5.4 2016-08-23
------------------
-- Added promoteValues flag (default to true) allowing user to specify if deserialization should be into wrapper classes only.
-
-0.5.3 2016-07-11
------------------
-- Throw error if ObjectId is not a string or a buffer.
-
-0.5.2 2016-07-11
------------------
-- All values encoded big-endian style for ObjectId.
-
-0.5.1 2016-07-11
------------------
-- Fixed encoding/decoding issue in ObjectId timestamp generation.
-- Removed BinaryParser dependency from the serializer/deserializer.
-
-0.5.0 2016-07-05
------------------
-- Added Decimal128 type and extended test suite to include entire bson corpus.
-
-0.4.23 2016-04-08
------------------
-- Allow for proper detection of ObjectId or objects that look like ObjectId, improving compatibility across third party libraries.
-- Remove one package from dependency due to having been pulled from NPM.
-
-0.4.22 2016-03-04
------------------
-- Fix "TypeError: data.copy is not a function" in Electron (Issue #170, https://github.com/kangas).
-- Fixed issue with undefined type on deserializing.
-
-0.4.21 2016-01-12
------------------
-- Minor optimizations to avoid non needed object creation.
-
-0.4.20 2015-10-15
------------------
-- Added bower file to repository.
-- Fixed browser pid sometimes set greater than 0xFFFF on browsers (Issue #155, https://github.com/rahatarmanahmed)
-
-0.4.19 2015-10-15
------------------
-- Remove all support for bson-ext.
-
-0.4.18 2015-10-15
------------------
-- ObjectID equality check should return boolean instead of throwing exception for invalid oid string #139
-- add option for deserializing binary into Buffer object #116
-
-0.4.17 2015-10-15
------------------
-- Validate regexp string for null bytes and throw if there is one.
-
-0.4.16 2015-10-07
------------------
-- Fixed issue with return statement in Map.js.
-
-0.4.15 2015-10-06
------------------
-- Exposed Map correctly via index.js file.
-
-0.4.14 2015-10-06
------------------
-- Exposed Map correctly via bson.js file.
-
-0.4.13 2015-10-06
------------------
-- Added ES6 Map type serialization as well as a polyfill for ES5.
-
-0.4.12 2015-09-18
------------------
-- Made ignore undefined an optional parameter.
-
-0.4.11 2015-08-06
------------------
-- Minor fix for invalid key checking.
-
-0.4.10 2015-08-06
------------------
-- NODE-38 Added new BSONRegExp type to allow direct serialization to MongoDB type.
-- Some performance improvements by in lining code.
-
-0.4.9 2015-08-06
-----------------
-- Undefined fields are omitted from serialization in objects.
-
-0.4.8 2015-07-14
-----------------
-- Fixed size validation to ensure we can deserialize from dumped files.
-
-0.4.7 2015-06-26
-----------------
-- Added ability to instruct deserializer to return raw BSON buffers for named array fields.
-- Minor deserialization optimization by moving inlined function out.
-
-0.4.6 2015-06-17
-----------------
-- Fixed serializeWithBufferAndIndex bug.
-
-0.4.5 2015-06-17
-----------------
-- Removed any references to the shared buffer to avoid non GC collectible bson instances.
-
-0.4.4 2015-06-17
-----------------
-- Fixed rethrowing of error when not RangeError.
-
-0.4.3 2015-06-17
-----------------
-- Start buffer at 64K and double as needed, meaning we keep a low memory profile until needed.
-
-0.4.2 2015-06-16
-----------------
-- More fixes for corrupt Bson
-
-0.4.1 2015-06-16
-----------------
-- More fixes for corrupt Bson
-
-0.4.0 2015-06-16
-----------------
-- New JS serializer serializing into a single buffer then copying out the new buffer. Performance is similar to current C++ parser.
-- Removed bson-ext extension dependency for now.
-
-0.3.2 2015-03-27
-----------------
-- Removed node-gyp from install script in package.json.
-
-0.3.1 2015-03-27
-----------------
-- Return pure js version on native() call if failed to initialize.
-
-0.3.0 2015-03-26
-----------------
-- Pulled out all C++ code into bson-ext and made it an optional dependency.
-
-0.2.21 2015-03-21
------------------
-- Updated Nan to 1.7.0 to support io.js and node 0.12.0
-
-0.2.19 2015-02-16
------------------
-- Updated Nan to 1.6.2 to support io.js and node 0.12.0
-
-0.2.18 2015-01-20
------------------
-- Updated Nan to 1.5.1 to support io.js
-
-0.2.16 2014-12-17
------------------
-- Made pid cycle on 0xffff to avoid weird overflows on creation of ObjectID's
-
-0.2.12 2014-08-24
------------------
-- Fixes for fortify review of c++ extension
-- toBSON correctly allows returns of non objects
-
-0.2.3 2013-10-01
-----------------
-- Drying of ObjectId code for generation of id (Issue #54, https://github.com/moredip)
-- Fixed issue where corrupt CString's could cause endless loop
-- Support for Node 0.11.X > (Issue #49, https://github.com/kkoopa)
-
-0.1.4 2012-09-25
-----------------
-- Added precompiled c++ native extensions for win32 ia32 and x64

+ 0 - 201
node_modules/bson/LICENSE.md

@@ -1,201 +0,0 @@
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.

+ 0 - 170
node_modules/bson/README.md

@@ -1,170 +0,0 @@
-# BSON parser
-
-BSON is short for Bin­ary JSON and is the bin­ary-en­coded seri­al­iz­a­tion of JSON-like doc­u­ments. You can learn more about it in [the specification](http://bsonspec.org).
-
-This browser version of the BSON parser is compiled using [webpack](https://webpack.js.org/) and the current version is pre-compiled in the `browser_build` directory.
-
-This is the default BSON parser, however, there is a C++ Node.js addon version as well that does not support the browser. It can be found at [mongod-js/bson-ext](https://github.com/mongodb-js/bson-ext).
-
-## Usage
-
-To build a new version perform the following operations:
-
-```
-npm install
-npm run build
-```
-
-A simple example of how to use BSON in the browser:
-
-```html
-<script src="./browser_build/bson.js"></script>
-
-<script>
-  function start() {
-    // Get the Long type
-    var Long = BSON.Long;
-    // Create a bson parser instance
-    var bson = new BSON();
-
-    // Serialize document
-    var doc = { long: Long.fromNumber(100) }
-
-    // Serialize a document
-    var data = bson.serialize(doc)
-    // De serialize it again
-    var doc_2 = bson.deserialize(data)
-  }
-</script>
-```
-
-A simple example of how to use BSON in `Node.js`:
-
-```js
-// Get BSON parser class
-var BSON = require('bson')
-// Get the Long type
-var Long = BSON.Long;
-// Create a bson parser instance
-var bson = new BSON();
-
-// Serialize document
-var doc = { long: Long.fromNumber(100) }
-
-// Serialize a document
-var data = bson.serialize(doc)
-console.log('data:', data)
-
-// Deserialize the resulting Buffer
-var doc_2 = bson.deserialize(data)
-console.log('doc_2:', doc_2)
-```
-
-## Installation
-
-`npm install bson`
-
-## API
-
-### BSON types
-
-For all BSON types documentation, please refer to the following sources:
-  * [MongoDB BSON Type Reference](https://docs.mongodb.com/manual/reference/bson-types/)
-  * [BSON Spec](https://bsonspec.org/)
-
-### BSON serialization and deserialiation
-
-**`new BSON()`** - Creates a new BSON serializer/deserializer you can use to serialize and deserialize BSON.
-
-#### BSON.serialize
-
-The BSON `serialize` method takes a JavaScript object and an optional options object and returns a Node.js Buffer.
-
-  * `BSON.serialize(object, options)`
-    * @param {Object} object the JavaScript object to serialize.
-    * @param {Boolean} [options.checkKeys=false] the serializer will check if keys are valid.
-    * @param {Boolean} [options.serializeFunctions=false] serialize the JavaScript functions.
-    * @param {Boolean} [options.ignoreUndefined=true]
-    * @return {Buffer} returns a Buffer instance.
-
-#### BSON.serializeWithBufferAndIndex
-
-The BSON `serializeWithBufferAndIndex` method takes an object, a target buffer instance and an optional options object and returns the end serialization index in the final buffer.
-
-  * `BSON.serializeWithBufferAndIndex(object, buffer, options)`
-    * @param {Object} object the JavaScript object to serialize.
-    * @param {Buffer} buffer the Buffer you pre-allocated to store the serialized BSON object.
-    * @param {Boolean} [options.checkKeys=false] the serializer will check if keys are valid.
-    * @param {Boolean} [options.serializeFunctions=false] serialize the JavaScript functions.
-    * @param {Boolean} [options.ignoreUndefined=true] ignore undefined fields.
-    * @param {Number} [options.index=0] the index in the buffer where we wish to start serializing into.
-    * @return {Number} returns the index pointing to the last written byte in the buffer.
-
-#### BSON.calculateObjectSize
-
-The BSON `calculateObjectSize` method takes a JavaScript object and an optional options object and returns the size of the BSON object.
-
-  * `BSON.calculateObjectSize(object, options)`
-    * @param {Object} object the JavaScript object to serialize.
-    * @param {Boolean} [options.serializeFunctions=false] serialize the JavaScript functions.
-    * @param {Boolean} [options.ignoreUndefined=true]
-    * @return {Buffer} returns a Buffer instance.
-
-#### BSON.deserialize
-
-The BSON `deserialize` method takes a Node.js Buffer and an optional options object and returns a deserialized JavaScript object.
-
-  * `BSON.deserialize(buffer, options)`
-    * @param {Object} [options.evalFunctions=false] evaluate functions in the BSON document scoped to the object deserialized.
-    * @param {Object} [options.cacheFunctions=false] cache evaluated functions for reuse.
-    * @param {Object} [options.cacheFunctionsCrc32=false] use a crc32 code for caching, otherwise use the string of the function.
-    * @param {Object} [options.promoteLongs=true] when deserializing a Long will fit it into a Number if it's smaller than 53 bits
-    * @param {Object} [options.promoteBuffers=false] when deserializing a Binary will return it as a Node.js Buffer instance.
-    * @param {Object} [options.promoteValues=false] when deserializing will promote BSON values to their Node.js closest equivalent types.
-    * @param {Object} [options.fieldsAsRaw=null] allow to specify if there what fields we wish to return as unserialized raw buffer.
-    * @param {Object} [options.bsonRegExp=false] return BSON regular expressions as BSONRegExp instances.
-    * @return {Object} returns the deserialized Javascript Object.
-
-#### BSON.deserializeStream
-
-The BSON `deserializeStream` method takes a Node.js Buffer, `startIndex` and allow more control over deserialization of a Buffer containing concatenated BSON documents.
-
-  * `BSON.deserializeStream(buffer, startIndex, numberOfDocuments, documents, docStartIndex, options)`
-    * @param {Buffer} buffer the buffer containing the serialized set of BSON documents.
-    * @param {Number} startIndex the start index in the data Buffer where the deserialization is to start.
-    * @param {Number} numberOfDocuments number of documents to deserialize.
-    * @param {Array} documents an array where to store the deserialized documents.
-    * @param {Number} docStartIndex the index in the documents array from where to start inserting documents.
-    * @param {Object} [options.evalFunctions=false] evaluate functions in the BSON document scoped to the object deserialized.
-    * @param {Object} [options.cacheFunctions=false] cache evaluated functions for reuse.
-    * @param {Object} [options.cacheFunctionsCrc32=false] use a crc32 code for caching, otherwise use the string of the function.
-    * @param {Object} [options.promoteLongs=true] when deserializing a Long will fit it into a Number if it's smaller than 53 bits
-    * @param {Object} [options.promoteBuffers=false] when deserializing a Binary will return it as a Node.js Buffer instance.
-    * @param {Object} [options.promoteValues=false] when deserializing will promote BSON values to their Node.js closest equivalent types.
-    * @param {Object} [options.fieldsAsRaw=null] allow to specify if there what fields we wish to return as unserialized raw buffer.
-    * @param {Object} [options.bsonRegExp=false] return BSON regular expressions as BSONRegExp instances.
-    * @return {Number} returns the next index in the buffer after deserialization **x** numbers of documents.
-
-## FAQ
-
-#### Why does `undefined` get converted to `null`?
-
-The `undefined` BSON type has been [deprecated for many years](http://bsonspec.org/spec.html), so this library has dropped support for it. Use the `ignoreUndefined` option (for example, from the [driver](http://mongodb.github.io/node-mongodb-native/2.2/api/MongoClient.html#connect) ) to instead remove `undefined` keys.
-
-#### How do I add custom serialization logic?
-
-This library looks for `toBSON()` functions on every path, and calls the `toBSON()` function to get the value to serialize.
-
-```javascript
-var bson = new BSON();
-
-class CustomSerialize {
-  toBSON() {
-    return 42;
-  }
-}
-
-const obj = { answer: new CustomSerialize() };
-// "{ answer: 42 }"
-console.log(bson.deserialize(bson.serialize(obj)));
-```

+ 0 - 25
node_modules/bson/bower.json

@@ -1,25 +0,0 @@
-{
-  "name": "bson",
-  "description": "A bson parser for node.js and the browser",
-  "keywords": [
-    "mongodb",
-    "bson",
-    "parser"
-  ],
-  "author": "Christian Amor Kvalheim <christkv@gmail.com>",
-  "main": "./browser_build/bson.js",
-  "license": "Apache-2.0",
-  "moduleType": [
-    "globals",
-    "node"
-  ],
-  "ignore": [
-    "**/.*",
-    "alternate_parsers",
-    "benchmarks",
-    "bower_components",
-    "node_modules",
-    "test",
-    "tools"
-  ]
-}

File diff suppressed because it is too large
+ 0 - 17769
node_modules/bson/browser_build/bson.js


+ 0 - 8
node_modules/bson/browser_build/package.json

@@ -1,8 +0,0 @@
-{ "name" :            "bson"
-, "description" :     "A bson parser for node.js and the browser"
-, "main":             "../"
-, "directories" :   { "lib" : "../lib/bson" }
-, "engines" :       { "node" : ">=0.6.0" }
-, "licenses" :    [ { "type" :  "Apache License, Version 2.0"
-                    , "url" :   "http://www.apache.org/licenses/LICENSE-2.0" } ]
-}

+ 0 - 46
node_modules/bson/index.js

@@ -1,46 +0,0 @@
-var BSON = require('./lib/bson/bson'),
-  Binary = require('./lib/bson/binary'),
-  Code = require('./lib/bson/code'),
-  DBRef = require('./lib/bson/db_ref'),
-  Decimal128 = require('./lib/bson/decimal128'),
-  Double = require('./lib/bson/double'),
-  Int32 = require('./lib/bson/int_32'),
-  Long = require('./lib/bson/long'),
-  Map = require('./lib/bson/map'),
-  MaxKey = require('./lib/bson/max_key'),
-  MinKey = require('./lib/bson/min_key'),
-  ObjectId = require('./lib/bson/objectid'),
-  BSONRegExp = require('./lib/bson/regexp'),
-  Symbol = require('./lib/bson/symbol'),
-  Timestamp = require('./lib/bson/timestamp');
-
-// BSON MAX VALUES
-BSON.BSON_INT32_MAX = 0x7fffffff;
-BSON.BSON_INT32_MIN = -0x80000000;
-
-BSON.BSON_INT64_MAX = Math.pow(2, 63) - 1;
-BSON.BSON_INT64_MIN = -Math.pow(2, 63);
-
-// JS MAX PRECISE VALUES
-BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double.
-BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double.
-
-// Add BSON types to function creation
-BSON.Binary = Binary;
-BSON.Code = Code;
-BSON.DBRef = DBRef;
-BSON.Decimal128 = Decimal128;
-BSON.Double = Double;
-BSON.Int32 = Int32;
-BSON.Long = Long;
-BSON.Map = Map;
-BSON.MaxKey = MaxKey;
-BSON.MinKey = MinKey;
-BSON.ObjectId = ObjectId;
-BSON.ObjectID = ObjectId;
-BSON.BSONRegExp = BSONRegExp;
-BSON.Symbol = Symbol;
-BSON.Timestamp = Timestamp;
-
-// Return the BSON
-module.exports = BSON;

+ 0 - 384
node_modules/bson/lib/bson/binary.js

@@ -1,384 +0,0 @@
-/**
- * Module dependencies.
- * @ignore
- */
-
-// Test if we're in Node via presence of "global" not absence of "window"
-// to support hybrid environments like Electron
-if (typeof global !== 'undefined') {
-  var Buffer = require('buffer').Buffer; // TODO just use global Buffer
-}
-
-var utils = require('./parser/utils');
-
-/**
- * A class representation of the BSON Binary type.
- *
- * Sub types
- *  - **BSON.BSON_BINARY_SUBTYPE_DEFAULT**, default BSON type.
- *  - **BSON.BSON_BINARY_SUBTYPE_FUNCTION**, BSON function type.
- *  - **BSON.BSON_BINARY_SUBTYPE_BYTE_ARRAY**, BSON byte array type.
- *  - **BSON.BSON_BINARY_SUBTYPE_UUID**, BSON uuid type.
- *  - **BSON.BSON_BINARY_SUBTYPE_MD5**, BSON md5 type.
- *  - **BSON.BSON_BINARY_SUBTYPE_USER_DEFINED**, BSON user defined type.
- *
- * @class
- * @param {Buffer} buffer a buffer object containing the binary data.
- * @param {Number} [subType] the option binary type.
- * @return {Binary}
- */
-function Binary(buffer, subType) {
-  if (!(this instanceof Binary)) return new Binary(buffer, subType);
-
-  if (
-    buffer != null &&
-    !(typeof buffer === 'string') &&
-    !Buffer.isBuffer(buffer) &&
-    !(buffer instanceof Uint8Array) &&
-    !Array.isArray(buffer)
-  ) {
-    throw new Error('only String, Buffer, Uint8Array or Array accepted');
-  }
-
-  this._bsontype = 'Binary';
-
-  if (buffer instanceof Number) {
-    this.sub_type = buffer;
-    this.position = 0;
-  } else {
-    this.sub_type = subType == null ? BSON_BINARY_SUBTYPE_DEFAULT : subType;
-    this.position = 0;
-  }
-
-  if (buffer != null && !(buffer instanceof Number)) {
-    // Only accept Buffer, Uint8Array or Arrays
-    if (typeof buffer === 'string') {
-      // Different ways of writing the length of the string for the different types
-      if (typeof Buffer !== 'undefined') {
-        this.buffer = utils.toBuffer(buffer);
-      } else if (
-        typeof Uint8Array !== 'undefined' ||
-        Object.prototype.toString.call(buffer) === '[object Array]'
-      ) {
-        this.buffer = writeStringToArray(buffer);
-      } else {
-        throw new Error('only String, Buffer, Uint8Array or Array accepted');
-      }
-    } else {
-      this.buffer = buffer;
-    }
-    this.position = buffer.length;
-  } else {
-    if (typeof Buffer !== 'undefined') {
-      this.buffer = utils.allocBuffer(Binary.BUFFER_SIZE);
-    } else if (typeof Uint8Array !== 'undefined') {
-      this.buffer = new Uint8Array(new ArrayBuffer(Binary.BUFFER_SIZE));
-    } else {
-      this.buffer = new Array(Binary.BUFFER_SIZE);
-    }
-    // Set position to start of buffer
-    this.position = 0;
-  }
-}
-
-/**
- * Updates this binary with byte_value.
- *
- * @method
- * @param {string} byte_value a single byte we wish to write.
- */
-Binary.prototype.put = function put(byte_value) {
-  // If it's a string and a has more than one character throw an error
-  if (byte_value['length'] != null && typeof byte_value !== 'number' && byte_value.length !== 1)
-    throw new Error('only accepts single character String, Uint8Array or Array');
-  if ((typeof byte_value !== 'number' && byte_value < 0) || byte_value > 255)
-    throw new Error('only accepts number in a valid unsigned byte range 0-255');
-
-  // Decode the byte value once
-  var decoded_byte = null;
-  if (typeof byte_value === 'string') {
-    decoded_byte = byte_value.charCodeAt(0);
-  } else if (byte_value['length'] != null) {
-    decoded_byte = byte_value[0];
-  } else {
-    decoded_byte = byte_value;
-  }
-
-  if (this.buffer.length > this.position) {
-    this.buffer[this.position++] = decoded_byte;
-  } else {
-    if (typeof Buffer !== 'undefined' && Buffer.isBuffer(this.buffer)) {
-      // Create additional overflow buffer
-      var buffer = utils.allocBuffer(Binary.BUFFER_SIZE + this.buffer.length);
-      // Combine the two buffers together
-      this.buffer.copy(buffer, 0, 0, this.buffer.length);
-      this.buffer = buffer;
-      this.buffer[this.position++] = decoded_byte;
-    } else {
-      buffer = null;
-      // Create a new buffer (typed or normal array)
-      if (Object.prototype.toString.call(this.buffer) === '[object Uint8Array]') {
-        buffer = new Uint8Array(new ArrayBuffer(Binary.BUFFER_SIZE + this.buffer.length));
-      } else {
-        buffer = new Array(Binary.BUFFER_SIZE + this.buffer.length);
-      }
-
-      // We need to copy all the content to the new array
-      for (var i = 0; i < this.buffer.length; i++) {
-        buffer[i] = this.buffer[i];
-      }
-
-      // Reassign the buffer
-      this.buffer = buffer;
-      // Write the byte
-      this.buffer[this.position++] = decoded_byte;
-    }
-  }
-};
-
-/**
- * Writes a buffer or string to the binary.
- *
- * @method
- * @param {(Buffer|string)} string a string or buffer to be written to the Binary BSON object.
- * @param {number} offset specify the binary of where to write the content.
- * @return {null}
- */
-Binary.prototype.write = function write(string, offset) {
-  offset = typeof offset === 'number' ? offset : this.position;
-
-  // If the buffer is to small let's extend the buffer
-  if (this.buffer.length < offset + string.length) {
-    var buffer = null;
-    // If we are in node.js
-    if (typeof Buffer !== 'undefined' && Buffer.isBuffer(this.buffer)) {
-      buffer = utils.allocBuffer(this.buffer.length + string.length);
-      this.buffer.copy(buffer, 0, 0, this.buffer.length);
-    } else if (Object.prototype.toString.call(this.buffer) === '[object Uint8Array]') {
-      // Create a new buffer
-      buffer = new Uint8Array(new ArrayBuffer(this.buffer.length + string.length));
-      // Copy the content
-      for (var i = 0; i < this.position; i++) {
-        buffer[i] = this.buffer[i];
-      }
-    }
-
-    // Assign the new buffer
-    this.buffer = buffer;
-  }
-
-  if (typeof Buffer !== 'undefined' && Buffer.isBuffer(string) && Buffer.isBuffer(this.buffer)) {
-    string.copy(this.buffer, offset, 0, string.length);
-    this.position = offset + string.length > this.position ? offset + string.length : this.position;
-    // offset = string.length
-  } else if (
-    typeof Buffer !== 'undefined' &&
-    typeof string === 'string' &&
-    Buffer.isBuffer(this.buffer)
-  ) {
-    this.buffer.write(string, offset, 'binary');
-    this.position = offset + string.length > this.position ? offset + string.length : this.position;
-    // offset = string.length;
-  } else if (
-    Object.prototype.toString.call(string) === '[object Uint8Array]' ||
-    (Object.prototype.toString.call(string) === '[object Array]' && typeof string !== 'string')
-  ) {
-    for (i = 0; i < string.length; i++) {
-      this.buffer[offset++] = string[i];
-    }
-
-    this.position = offset > this.position ? offset : this.position;
-  } else if (typeof string === 'string') {
-    for (i = 0; i < string.length; i++) {
-      this.buffer[offset++] = string.charCodeAt(i);
-    }
-
-    this.position = offset > this.position ? offset : this.position;
-  }
-};
-
-/**
- * Reads **length** bytes starting at **position**.
- *
- * @method
- * @param {number} position read from the given position in the Binary.
- * @param {number} length the number of bytes to read.
- * @return {Buffer}
- */
-Binary.prototype.read = function read(position, length) {
-  length = length && length > 0 ? length : this.position;
-
-  // Let's return the data based on the type we have
-  if (this.buffer['slice']) {
-    return this.buffer.slice(position, position + length);
-  } else {
-    // Create a buffer to keep the result
-    var buffer =
-      typeof Uint8Array !== 'undefined'
-        ? new Uint8Array(new ArrayBuffer(length))
-        : new Array(length);
-    for (var i = 0; i < length; i++) {
-      buffer[i] = this.buffer[position++];
-    }
-  }
-  // Return the buffer
-  return buffer;
-};
-
-/**
- * Returns the value of this binary as a string.
- *
- * @method
- * @return {string}
- */
-Binary.prototype.value = function value(asRaw) {
-  asRaw = asRaw == null ? false : asRaw;
-
-  // Optimize to serialize for the situation where the data == size of buffer
-  if (
-    asRaw &&
-    typeof Buffer !== 'undefined' &&
-    Buffer.isBuffer(this.buffer) &&
-    this.buffer.length === this.position
-  )
-    return this.buffer;
-
-  // If it's a node.js buffer object
-  if (typeof Buffer !== 'undefined' && Buffer.isBuffer(this.buffer)) {
-    return asRaw
-      ? this.buffer.slice(0, this.position)
-      : this.buffer.toString('binary', 0, this.position);
-  } else {
-    if (asRaw) {
-      // we support the slice command use it
-      if (this.buffer['slice'] != null) {
-        return this.buffer.slice(0, this.position);
-      } else {
-        // Create a new buffer to copy content to
-        var newBuffer =
-          Object.prototype.toString.call(this.buffer) === '[object Uint8Array]'
-            ? new Uint8Array(new ArrayBuffer(this.position))
-            : new Array(this.position);
-        // Copy content
-        for (var i = 0; i < this.position; i++) {
-          newBuffer[i] = this.buffer[i];
-        }
-        // Return the buffer
-        return newBuffer;
-      }
-    } else {
-      return convertArraytoUtf8BinaryString(this.buffer, 0, this.position);
-    }
-  }
-};
-
-/**
- * Length.
- *
- * @method
- * @return {number} the length of the binary.
- */
-Binary.prototype.length = function length() {
-  return this.position;
-};
-
-/**
- * @ignore
- */
-Binary.prototype.toJSON = function() {
-  return this.buffer != null ? this.buffer.toString('base64') : '';
-};
-
-/**
- * @ignore
- */
-Binary.prototype.toString = function(format) {
-  return this.buffer != null ? this.buffer.slice(0, this.position).toString(format) : '';
-};
-
-/**
- * Binary default subtype
- * @ignore
- */
-var BSON_BINARY_SUBTYPE_DEFAULT = 0;
-
-/**
- * @ignore
- */
-var writeStringToArray = function(data) {
-  // Create a buffer
-  var buffer =
-    typeof Uint8Array !== 'undefined'
-      ? new Uint8Array(new ArrayBuffer(data.length))
-      : new Array(data.length);
-  // Write the content to the buffer
-  for (var i = 0; i < data.length; i++) {
-    buffer[i] = data.charCodeAt(i);
-  }
-  // Write the string to the buffer
-  return buffer;
-};
-
-/**
- * Convert Array ot Uint8Array to Binary String
- *
- * @ignore
- */
-var convertArraytoUtf8BinaryString = function(byteArray, startIndex, endIndex) {
-  var result = '';
-  for (var i = startIndex; i < endIndex; i++) {
-    result = result + String.fromCharCode(byteArray[i]);
-  }
-  return result;
-};
-
-Binary.BUFFER_SIZE = 256;
-
-/**
- * Default BSON type
- *
- * @classconstant SUBTYPE_DEFAULT
- **/
-Binary.SUBTYPE_DEFAULT = 0;
-/**
- * Function BSON type
- *
- * @classconstant SUBTYPE_DEFAULT
- **/
-Binary.SUBTYPE_FUNCTION = 1;
-/**
- * Byte Array BSON type
- *
- * @classconstant SUBTYPE_DEFAULT
- **/
-Binary.SUBTYPE_BYTE_ARRAY = 2;
-/**
- * OLD UUID BSON type
- *
- * @classconstant SUBTYPE_DEFAULT
- **/
-Binary.SUBTYPE_UUID_OLD = 3;
-/**
- * UUID BSON type
- *
- * @classconstant SUBTYPE_DEFAULT
- **/
-Binary.SUBTYPE_UUID = 4;
-/**
- * MD5 BSON type
- *
- * @classconstant SUBTYPE_DEFAULT
- **/
-Binary.SUBTYPE_MD5 = 5;
-/**
- * User BSON type
- *
- * @classconstant SUBTYPE_DEFAULT
- **/
-Binary.SUBTYPE_USER_DEFINED = 128;
-
-/**
- * Expose.
- */
-module.exports = Binary;
-module.exports.Binary = Binary;

+ 0 - 386
node_modules/bson/lib/bson/bson.js

@@ -1,386 +0,0 @@
-'use strict';
-
-var Map = require('./map'),
-  Long = require('./long'),
-  Double = require('./double'),
-  Timestamp = require('./timestamp'),
-  ObjectID = require('./objectid'),
-  BSONRegExp = require('./regexp'),
-  Symbol = require('./symbol'),
-  Int32 = require('./int_32'),
-  Code = require('./code'),
-  Decimal128 = require('./decimal128'),
-  MinKey = require('./min_key'),
-  MaxKey = require('./max_key'),
-  DBRef = require('./db_ref'),
-  Binary = require('./binary');
-
-// Parts of the parser
-var deserialize = require('./parser/deserializer'),
-  serializer = require('./parser/serializer'),
-  calculateObjectSize = require('./parser/calculate_size'),
-  utils = require('./parser/utils');
-
-/**
- * @ignore
- * @api private
- */
-// Default Max Size
-var MAXSIZE = 1024 * 1024 * 17;
-
-// Current Internal Temporary Serialization Buffer
-var buffer = utils.allocBuffer(MAXSIZE);
-
-var BSON = function() {};
-
-/**
- * Serialize a Javascript object.
- *
- * @param {Object} object the Javascript object to serialize.
- * @param {Boolean} [options.checkKeys] the serializer will check if keys are valid.
- * @param {Boolean} [options.serializeFunctions=false] serialize the javascript functions **(default:false)**.
- * @param {Boolean} [options.ignoreUndefined=true] ignore undefined fields **(default:true)**.
- * @param {Number} [options.minInternalBufferSize=1024*1024*17] minimum size of the internal temporary serialization buffer **(default:1024*1024*17)**.
- * @return {Buffer} returns the Buffer object containing the serialized object.
- * @api public
- */
-BSON.prototype.serialize = function serialize(object, options) {
-  options = options || {};
-  // Unpack the options
-  var checkKeys = typeof options.checkKeys === 'boolean' ? options.checkKeys : false;
-  var serializeFunctions =
-    typeof options.serializeFunctions === 'boolean' ? options.serializeFunctions : false;
-  var ignoreUndefined =
-    typeof options.ignoreUndefined === 'boolean' ? options.ignoreUndefined : true;
-  var minInternalBufferSize =
-    typeof options.minInternalBufferSize === 'number' ? options.minInternalBufferSize : MAXSIZE;
-  
-  // Resize the internal serialization buffer if needed
-  if (buffer.length < minInternalBufferSize) {
-    buffer = utils.allocBuffer(minInternalBufferSize);
-  }
-
-  // Attempt to serialize
-  var serializationIndex = serializer(
-    buffer,
-    object,
-    checkKeys,
-    0,
-    0,
-    serializeFunctions,
-    ignoreUndefined,
-    []
-  );
-  // Create the final buffer
-  var finishedBuffer = utils.allocBuffer(serializationIndex);
-  // Copy into the finished buffer
-  buffer.copy(finishedBuffer, 0, 0, finishedBuffer.length);
-  // Return the buffer
-  return finishedBuffer;
-};
-
-/**
- * Serialize a Javascript object using a predefined Buffer and index into the buffer, useful when pre-allocating the space for serialization.
- *
- * @param {Object} object the Javascript object to serialize.
- * @param {Buffer} buffer the Buffer you pre-allocated to store the serialized BSON object.
- * @param {Boolean} [options.checkKeys] the serializer will check if keys are valid.
- * @param {Boolean} [options.serializeFunctions=false] serialize the javascript functions **(default:false)**.
- * @param {Boolean} [options.ignoreUndefined=true] ignore undefined fields **(default:true)**.
- * @param {Number} [options.index] the index in the buffer where we wish to start serializing into.
- * @return {Number} returns the index pointing to the last written byte in the buffer.
- * @api public
- */
-BSON.prototype.serializeWithBufferAndIndex = function(object, finalBuffer, options) {
-  options = options || {};
-  // Unpack the options
-  var checkKeys = typeof options.checkKeys === 'boolean' ? options.checkKeys : false;
-  var serializeFunctions =
-    typeof options.serializeFunctions === 'boolean' ? options.serializeFunctions : false;
-  var ignoreUndefined =
-    typeof options.ignoreUndefined === 'boolean' ? options.ignoreUndefined : true;
-  var startIndex = typeof options.index === 'number' ? options.index : 0;
-
-  // Attempt to serialize
-  var serializationIndex = serializer(
-    finalBuffer,
-    object,
-    checkKeys,
-    startIndex || 0,
-    0,
-    serializeFunctions,
-    ignoreUndefined
-  );
-
-  // Return the index
-  return serializationIndex - 1;
-};
-
-/**
- * Deserialize data as BSON.
- *
- * @param {Buffer} buffer the buffer containing the serialized set of BSON documents.
- * @param {Object} [options.evalFunctions=false] evaluate functions in the BSON document scoped to the object deserialized.
- * @param {Object} [options.cacheFunctions=false] cache evaluated functions for reuse.
- * @param {Object} [options.cacheFunctionsCrc32=false] use a crc32 code for caching, otherwise use the string of the function.
- * @param {Object} [options.promoteLongs=true] when deserializing a Long will fit it into a Number if it's smaller than 53 bits
- * @param {Object} [options.promoteBuffers=false] when deserializing a Binary will return it as a node.js Buffer instance.
- * @param {Object} [options.promoteValues=false] when deserializing will promote BSON values to their Node.js closest equivalent types.
- * @param {Object} [options.fieldsAsRaw=null] allow to specify if there what fields we wish to return as unserialized raw buffer.
- * @param {Object} [options.bsonRegExp=false] return BSON regular expressions as BSONRegExp instances.
- * @return {Object} returns the deserialized Javascript Object.
- * @api public
- */
-BSON.prototype.deserialize = function(buffer, options) {
-  return deserialize(buffer, options);
-};
-
-/**
- * Calculate the bson size for a passed in Javascript object.
- *
- * @param {Object} object the Javascript object to calculate the BSON byte size for.
- * @param {Boolean} [options.serializeFunctions=false] serialize the javascript functions **(default:false)**.
- * @param {Boolean} [options.ignoreUndefined=true] ignore undefined fields **(default:true)**.
- * @return {Number} returns the number of bytes the BSON object will take up.
- * @api public
- */
-BSON.prototype.calculateObjectSize = function(object, options) {
-  options = options || {};
-
-  var serializeFunctions =
-    typeof options.serializeFunctions === 'boolean' ? options.serializeFunctions : false;
-  var ignoreUndefined =
-    typeof options.ignoreUndefined === 'boolean' ? options.ignoreUndefined : true;
-
-  return calculateObjectSize(object, serializeFunctions, ignoreUndefined);
-};
-
-/**
- * Deserialize stream data as BSON documents.
- *
- * @param {Buffer} data the buffer containing the serialized set of BSON documents.
- * @param {Number} startIndex the start index in the data Buffer where the deserialization is to start.
- * @param {Number} numberOfDocuments number of documents to deserialize.
- * @param {Array} documents an array where to store the deserialized documents.
- * @param {Number} docStartIndex the index in the documents array from where to start inserting documents.
- * @param {Object} [options] additional options used for the deserialization.
- * @param {Object} [options.evalFunctions=false] evaluate functions in the BSON document scoped to the object deserialized.
- * @param {Object} [options.cacheFunctions=false] cache evaluated functions for reuse.
- * @param {Object} [options.cacheFunctionsCrc32=false] use a crc32 code for caching, otherwise use the string of the function.
- * @param {Object} [options.promoteLongs=true] when deserializing a Long will fit it into a Number if it's smaller than 53 bits
- * @param {Object} [options.promoteBuffers=false] when deserializing a Binary will return it as a node.js Buffer instance.
- * @param {Object} [options.promoteValues=false] when deserializing will promote BSON values to their Node.js closest equivalent types.
- * @param {Object} [options.fieldsAsRaw=null] allow to specify if there what fields we wish to return as unserialized raw buffer.
- * @param {Object} [options.bsonRegExp=false] return BSON regular expressions as BSONRegExp instances.
- * @return {Number} returns the next index in the buffer after deserialization **x** numbers of documents.
- * @api public
- */
-BSON.prototype.deserializeStream = function(
-  data,
-  startIndex,
-  numberOfDocuments,
-  documents,
-  docStartIndex,
-  options
-) {
-  options = options != null ? options : {};
-  var index = startIndex;
-  // Loop over all documents
-  for (var i = 0; i < numberOfDocuments; i++) {
-    // Find size of the document
-    var size =
-      data[index] | (data[index + 1] << 8) | (data[index + 2] << 16) | (data[index + 3] << 24);
-    // Update options with index
-    options['index'] = index;
-    // Parse the document at this point
-    documents[docStartIndex + i] = this.deserialize(data, options);
-    // Adjust index by the document size
-    index = index + size;
-  }
-
-  // Return object containing end index of parsing and list of documents
-  return index;
-};
-
-/**
- * @ignore
- * @api private
- */
-// BSON MAX VALUES
-BSON.BSON_INT32_MAX = 0x7fffffff;
-BSON.BSON_INT32_MIN = -0x80000000;
-
-BSON.BSON_INT64_MAX = Math.pow(2, 63) - 1;
-BSON.BSON_INT64_MIN = -Math.pow(2, 63);
-
-// JS MAX PRECISE VALUES
-BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double.
-BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double.
-
-// Internal long versions
-// var JS_INT_MAX_LONG = Long.fromNumber(0x20000000000000); // Any integer up to 2^53 can be precisely represented by a double.
-// var JS_INT_MIN_LONG = Long.fromNumber(-0x20000000000000); // Any integer down to -2^53 can be precisely represented by a double.
-
-/**
- * Number BSON Type
- *
- * @classconstant BSON_DATA_NUMBER
- **/
-BSON.BSON_DATA_NUMBER = 1;
-/**
- * String BSON Type
- *
- * @classconstant BSON_DATA_STRING
- **/
-BSON.BSON_DATA_STRING = 2;
-/**
- * Object BSON Type
- *
- * @classconstant BSON_DATA_OBJECT
- **/
-BSON.BSON_DATA_OBJECT = 3;
-/**
- * Array BSON Type
- *
- * @classconstant BSON_DATA_ARRAY
- **/
-BSON.BSON_DATA_ARRAY = 4;
-/**
- * Binary BSON Type
- *
- * @classconstant BSON_DATA_BINARY
- **/
-BSON.BSON_DATA_BINARY = 5;
-/**
- * ObjectID BSON Type
- *
- * @classconstant BSON_DATA_OID
- **/
-BSON.BSON_DATA_OID = 7;
-/**
- * Boolean BSON Type
- *
- * @classconstant BSON_DATA_BOOLEAN
- **/
-BSON.BSON_DATA_BOOLEAN = 8;
-/**
- * Date BSON Type
- *
- * @classconstant BSON_DATA_DATE
- **/
-BSON.BSON_DATA_DATE = 9;
-/**
- * null BSON Type
- *
- * @classconstant BSON_DATA_NULL
- **/
-BSON.BSON_DATA_NULL = 10;
-/**
- * RegExp BSON Type
- *
- * @classconstant BSON_DATA_REGEXP
- **/
-BSON.BSON_DATA_REGEXP = 11;
-/**
- * Code BSON Type
- *
- * @classconstant BSON_DATA_CODE
- **/
-BSON.BSON_DATA_CODE = 13;
-/**
- * Symbol BSON Type
- *
- * @classconstant BSON_DATA_SYMBOL
- **/
-BSON.BSON_DATA_SYMBOL = 14;
-/**
- * Code with Scope BSON Type
- *
- * @classconstant BSON_DATA_CODE_W_SCOPE
- **/
-BSON.BSON_DATA_CODE_W_SCOPE = 15;
-/**
- * 32 bit Integer BSON Type
- *
- * @classconstant BSON_DATA_INT
- **/
-BSON.BSON_DATA_INT = 16;
-/**
- * Timestamp BSON Type
- *
- * @classconstant BSON_DATA_TIMESTAMP
- **/
-BSON.BSON_DATA_TIMESTAMP = 17;
-/**
- * Long BSON Type
- *
- * @classconstant BSON_DATA_LONG
- **/
-BSON.BSON_DATA_LONG = 18;
-/**
- * MinKey BSON Type
- *
- * @classconstant BSON_DATA_MIN_KEY
- **/
-BSON.BSON_DATA_MIN_KEY = 0xff;
-/**
- * MaxKey BSON Type
- *
- * @classconstant BSON_DATA_MAX_KEY
- **/
-BSON.BSON_DATA_MAX_KEY = 0x7f;
-
-/**
- * Binary Default Type
- *
- * @classconstant BSON_BINARY_SUBTYPE_DEFAULT
- **/
-BSON.BSON_BINARY_SUBTYPE_DEFAULT = 0;
-/**
- * Binary Function Type
- *
- * @classconstant BSON_BINARY_SUBTYPE_FUNCTION
- **/
-BSON.BSON_BINARY_SUBTYPE_FUNCTION = 1;
-/**
- * Binary Byte Array Type
- *
- * @classconstant BSON_BINARY_SUBTYPE_BYTE_ARRAY
- **/
-BSON.BSON_BINARY_SUBTYPE_BYTE_ARRAY = 2;
-/**
- * Binary UUID Type
- *
- * @classconstant BSON_BINARY_SUBTYPE_UUID
- **/
-BSON.BSON_BINARY_SUBTYPE_UUID = 3;
-/**
- * Binary MD5 Type
- *
- * @classconstant BSON_BINARY_SUBTYPE_MD5
- **/
-BSON.BSON_BINARY_SUBTYPE_MD5 = 4;
-/**
- * Binary User Defined Type
- *
- * @classconstant BSON_BINARY_SUBTYPE_USER_DEFINED
- **/
-BSON.BSON_BINARY_SUBTYPE_USER_DEFINED = 128;
-
-// Return BSON
-module.exports = BSON;
-module.exports.Code = Code;
-module.exports.Map = Map;
-module.exports.Symbol = Symbol;
-module.exports.BSON = BSON;
-module.exports.DBRef = DBRef;
-module.exports.Binary = Binary;
-module.exports.ObjectID = ObjectID;
-module.exports.Long = Long;
-module.exports.Timestamp = Timestamp;
-module.exports.Double = Double;
-module.exports.Int32 = Int32;
-module.exports.MinKey = MinKey;
-module.exports.MaxKey = MaxKey;
-module.exports.BSONRegExp = BSONRegExp;
-module.exports.Decimal128 = Decimal128;

+ 0 - 24
node_modules/bson/lib/bson/code.js

@@ -1,24 +0,0 @@
-/**
- * A class representation of the BSON Code type.
- *
- * @class
- * @param {(string|function)} code a string or function.
- * @param {Object} [scope] an optional scope for the function.
- * @return {Code}
- */
-var Code = function Code(code, scope) {
-  if (!(this instanceof Code)) return new Code(code, scope);
-  this._bsontype = 'Code';
-  this.code = code;
-  this.scope = scope;
-};
-
-/**
- * @ignore
- */
-Code.prototype.toJSON = function() {
-  return { scope: this.scope, code: this.code };
-};
-
-module.exports = Code;
-module.exports.Code = Code;

+ 0 - 32
node_modules/bson/lib/bson/db_ref.js

@@ -1,32 +0,0 @@
-/**
- * A class representation of the BSON DBRef type.
- *
- * @class
- * @param {string} namespace the collection name.
- * @param {ObjectID} oid the reference ObjectID.
- * @param {string} [db] optional db name, if omitted the reference is local to the current db.
- * @return {DBRef}
- */
-function DBRef(namespace, oid, db) {
-  if (!(this instanceof DBRef)) return new DBRef(namespace, oid, db);
-
-  this._bsontype = 'DBRef';
-  this.namespace = namespace;
-  this.oid = oid;
-  this.db = db;
-}
-
-/**
- * @ignore
- * @api private
- */
-DBRef.prototype.toJSON = function() {
-  return {
-    $ref: this.namespace,
-    $id: this.oid,
-    $db: this.db == null ? '' : this.db
-  };
-};
-
-module.exports = DBRef;
-module.exports.DBRef = DBRef;

+ 0 - 820
node_modules/bson/lib/bson/decimal128.js

@@ -1,820 +0,0 @@
-'use strict';
-
-var Long = require('./long');
-
-var PARSE_STRING_REGEXP = /^(\+|-)?(\d+|(\d*\.\d*))?(E|e)?([-+])?(\d+)?$/;
-var PARSE_INF_REGEXP = /^(\+|-)?(Infinity|inf)$/i;
-var PARSE_NAN_REGEXP = /^(\+|-)?NaN$/i;
-
-var EXPONENT_MAX = 6111;
-var EXPONENT_MIN = -6176;
-var EXPONENT_BIAS = 6176;
-var MAX_DIGITS = 34;
-
-// Nan value bits as 32 bit values (due to lack of longs)
-var NAN_BUFFER = [
-  0x7c,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00
-].reverse();
-// Infinity value bits 32 bit values (due to lack of longs)
-var INF_NEGATIVE_BUFFER = [
-  0xf8,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00
-].reverse();
-var INF_POSITIVE_BUFFER = [
-  0x78,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00,
-  0x00
-].reverse();
-
-var EXPONENT_REGEX = /^([-+])?(\d+)?$/;
-
-var utils = require('./parser/utils');
-
-// Detect if the value is a digit
-var isDigit = function(value) {
-  return !isNaN(parseInt(value, 10));
-};
-
-// Divide two uint128 values
-var divideu128 = function(value) {
-  var DIVISOR = Long.fromNumber(1000 * 1000 * 1000);
-  var _rem = Long.fromNumber(0);
-  var i = 0;
-
-  if (!value.parts[0] && !value.parts[1] && !value.parts[2] && !value.parts[3]) {
-    return { quotient: value, rem: _rem };
-  }
-
-  for (i = 0; i <= 3; i++) {
-    // Adjust remainder to match value of next dividend
-    _rem = _rem.shiftLeft(32);
-    // Add the divided to _rem
-    _rem = _rem.add(new Long(value.parts[i], 0));
-    value.parts[i] = _rem.div(DIVISOR).low_;
-    _rem = _rem.modulo(DIVISOR);
-  }
-
-  return { quotient: value, rem: _rem };
-};
-
-// Multiply two Long values and return the 128 bit value
-var multiply64x2 = function(left, right) {
-  if (!left && !right) {
-    return { high: Long.fromNumber(0), low: Long.fromNumber(0) };
-  }
-
-  var leftHigh = left.shiftRightUnsigned(32);
-  var leftLow = new Long(left.getLowBits(), 0);
-  var rightHigh = right.shiftRightUnsigned(32);
-  var rightLow = new Long(right.getLowBits(), 0);
-
-  var productHigh = leftHigh.multiply(rightHigh);
-  var productMid = leftHigh.multiply(rightLow);
-  var productMid2 = leftLow.multiply(rightHigh);
-  var productLow = leftLow.multiply(rightLow);
-
-  productHigh = productHigh.add(productMid.shiftRightUnsigned(32));
-  productMid = new Long(productMid.getLowBits(), 0)
-    .add(productMid2)
-    .add(productLow.shiftRightUnsigned(32));
-
-  productHigh = productHigh.add(productMid.shiftRightUnsigned(32));
-  productLow = productMid.shiftLeft(32).add(new Long(productLow.getLowBits(), 0));
-
-  // Return the 128 bit result
-  return { high: productHigh, low: productLow };
-};
-
-var lessThan = function(left, right) {
-  // Make values unsigned
-  var uhleft = left.high_ >>> 0;
-  var uhright = right.high_ >>> 0;
-
-  // Compare high bits first
-  if (uhleft < uhright) {
-    return true;
-  } else if (uhleft === uhright) {
-    var ulleft = left.low_ >>> 0;
-    var ulright = right.low_ >>> 0;
-    if (ulleft < ulright) return true;
-  }
-
-  return false;
-};
-
-// var longtoHex = function(value) {
-//   var buffer = utils.allocBuffer(8);
-//   var index = 0;
-//   // Encode the low 64 bits of the decimal
-//   // Encode low bits
-//   buffer[index++] = value.low_ & 0xff;
-//   buffer[index++] = (value.low_ >> 8) & 0xff;
-//   buffer[index++] = (value.low_ >> 16) & 0xff;
-//   buffer[index++] = (value.low_ >> 24) & 0xff;
-//   // Encode high bits
-//   buffer[index++] = value.high_ & 0xff;
-//   buffer[index++] = (value.high_ >> 8) & 0xff;
-//   buffer[index++] = (value.high_ >> 16) & 0xff;
-//   buffer[index++] = (value.high_ >> 24) & 0xff;
-//   return buffer.reverse().toString('hex');
-// };
-
-// var int32toHex = function(value) {
-//   var buffer = utils.allocBuffer(4);
-//   var index = 0;
-//   // Encode the low 64 bits of the decimal
-//   // Encode low bits
-//   buffer[index++] = value & 0xff;
-//   buffer[index++] = (value >> 8) & 0xff;
-//   buffer[index++] = (value >> 16) & 0xff;
-//   buffer[index++] = (value >> 24) & 0xff;
-//   return buffer.reverse().toString('hex');
-// };
-
-/**
- * A class representation of the BSON Decimal128 type.
- *
- * @class
- * @param {Buffer} bytes a buffer containing the raw Decimal128 bytes.
- * @return {Double}
- */
-var Decimal128 = function(bytes) {
-  this._bsontype = 'Decimal128';
-  this.bytes = bytes;
-};
-
-/**
- * Create a Decimal128 instance from a string representation
- *
- * @method
- * @param {string} string a numeric string representation.
- * @return {Decimal128} returns a Decimal128 instance.
- */
-Decimal128.fromString = function(string) {
-  // Parse state tracking
-  var isNegative = false;
-  var sawRadix = false;
-  var foundNonZero = false;
-
-  // Total number of significant digits (no leading or trailing zero)
-  var significantDigits = 0;
-  // Total number of significand digits read
-  var nDigitsRead = 0;
-  // Total number of digits (no leading zeros)
-  var nDigits = 0;
-  // The number of the digits after radix
-  var radixPosition = 0;
-  // The index of the first non-zero in *str*
-  var firstNonZero = 0;
-
-  // Digits Array
-  var digits = [0];
-  // The number of digits in digits
-  var nDigitsStored = 0;
-  // Insertion pointer for digits
-  var digitsInsert = 0;
-  // The index of the first non-zero digit
-  var firstDigit = 0;
-  // The index of the last digit
-  var lastDigit = 0;
-
-  // Exponent
-  var exponent = 0;
-  // loop index over array
-  var i = 0;
-  // The high 17 digits of the significand
-  var significandHigh = [0, 0];
-  // The low 17 digits of the significand
-  var significandLow = [0, 0];
-  // The biased exponent
-  var biasedExponent = 0;
-
-  // Read index
-  var index = 0;
-
-  // Trim the string
-  string = string.trim();
-
-  // Naively prevent against REDOS attacks.
-  // TODO: implementing a custom parsing for this, or refactoring the regex would yield
-  //       further gains.
-  if (string.length >= 7000) {
-    throw new Error('' + string + ' not a valid Decimal128 string');
-  }
-
-  // Results
-  var stringMatch = string.match(PARSE_STRING_REGEXP);
-  var infMatch = string.match(PARSE_INF_REGEXP);
-  var nanMatch = string.match(PARSE_NAN_REGEXP);
-
-  // Validate the string
-  if ((!stringMatch && !infMatch && !nanMatch) || string.length === 0) {
-    throw new Error('' + string + ' not a valid Decimal128 string');
-  }
-
-  // Check if we have an illegal exponent format
-  if (stringMatch && stringMatch[4] && stringMatch[2] === undefined) {
-    throw new Error('' + string + ' not a valid Decimal128 string');
-  }
-
-  // Get the negative or positive sign
-  if (string[index] === '+' || string[index] === '-') {
-    isNegative = string[index++] === '-';
-  }
-
-  // Check if user passed Infinity or NaN
-  if (!isDigit(string[index]) && string[index] !== '.') {
-    if (string[index] === 'i' || string[index] === 'I') {
-      return new Decimal128(utils.toBuffer(isNegative ? INF_NEGATIVE_BUFFER : INF_POSITIVE_BUFFER));
-    } else if (string[index] === 'N') {
-      return new Decimal128(utils.toBuffer(NAN_BUFFER));
-    }
-  }
-
-  // Read all the digits
-  while (isDigit(string[index]) || string[index] === '.') {
-    if (string[index] === '.') {
-      if (sawRadix) {
-        return new Decimal128(utils.toBuffer(NAN_BUFFER));
-      }
-
-      sawRadix = true;
-      index = index + 1;
-      continue;
-    }
-
-    if (nDigitsStored < 34) {
-      if (string[index] !== '0' || foundNonZero) {
-        if (!foundNonZero) {
-          firstNonZero = nDigitsRead;
-        }
-
-        foundNonZero = true;
-
-        // Only store 34 digits
-        digits[digitsInsert++] = parseInt(string[index], 10);
-        nDigitsStored = nDigitsStored + 1;
-      }
-    }
-
-    if (foundNonZero) {
-      nDigits = nDigits + 1;
-    }
-
-    if (sawRadix) {
-      radixPosition = radixPosition + 1;
-    }
-
-    nDigitsRead = nDigitsRead + 1;
-    index = index + 1;
-  }
-
-  if (sawRadix && !nDigitsRead) {
-    throw new Error('' + string + ' not a valid Decimal128 string');
-  }
-
-  // Read exponent if exists
-  if (string[index] === 'e' || string[index] === 'E') {
-    // Read exponent digits
-    var match = string.substr(++index).match(EXPONENT_REGEX);
-
-    // No digits read
-    if (!match || !match[2]) {
-      return new Decimal128(utils.toBuffer(NAN_BUFFER));
-    }
-
-    // Get exponent
-    exponent = parseInt(match[0], 10);
-
-    // Adjust the index
-    index = index + match[0].length;
-  }
-
-  // Return not a number
-  if (string[index]) {
-    return new Decimal128(utils.toBuffer(NAN_BUFFER));
-  }
-
-  // Done reading input
-  // Find first non-zero digit in digits
-  firstDigit = 0;
-
-  if (!nDigitsStored) {
-    firstDigit = 0;
-    lastDigit = 0;
-    digits[0] = 0;
-    nDigits = 1;
-    nDigitsStored = 1;
-    significantDigits = 0;
-  } else {
-    lastDigit = nDigitsStored - 1;
-    significantDigits = nDigits;
-
-    if (exponent !== 0 && significantDigits !== 1) {
-      while (string[firstNonZero + significantDigits - 1] === '0') {
-        significantDigits = significantDigits - 1;
-      }
-    }
-  }
-
-  // Normalization of exponent
-  // Correct exponent based on radix position, and shift significand as needed
-  // to represent user input
-
-  // Overflow prevention
-  if (exponent <= radixPosition && radixPosition - exponent > 1 << 14) {
-    exponent = EXPONENT_MIN;
-  } else {
-    exponent = exponent - radixPosition;
-  }
-
-  // Attempt to normalize the exponent
-  while (exponent > EXPONENT_MAX) {
-    // Shift exponent to significand and decrease
-    lastDigit = lastDigit + 1;
-
-    if (lastDigit - firstDigit > MAX_DIGITS) {
-      // Check if we have a zero then just hard clamp, otherwise fail
-      var digitsString = digits.join('');
-      if (digitsString.match(/^0+$/)) {
-        exponent = EXPONENT_MAX;
-        break;
-      } else {
-        return new Decimal128(utils.toBuffer(isNegative ? INF_NEGATIVE_BUFFER : INF_POSITIVE_BUFFER));
-      }
-    }
-
-    exponent = exponent - 1;
-  }
-
-  while (exponent < EXPONENT_MIN || nDigitsStored < nDigits) {
-    // Shift last digit
-    if (lastDigit === 0) {
-      exponent = EXPONENT_MIN;
-      significantDigits = 0;
-      break;
-    }
-
-    if (nDigitsStored < nDigits) {
-      // adjust to match digits not stored
-      nDigits = nDigits - 1;
-    } else {
-      // adjust to round
-      lastDigit = lastDigit - 1;
-    }
-
-    if (exponent < EXPONENT_MAX) {
-      exponent = exponent + 1;
-    } else {
-      // Check if we have a zero then just hard clamp, otherwise fail
-      digitsString = digits.join('');
-      if (digitsString.match(/^0+$/)) {
-        exponent = EXPONENT_MAX;
-        break;
-      } else {
-        return new Decimal128(utils.toBuffer(isNegative ? INF_NEGATIVE_BUFFER : INF_POSITIVE_BUFFER));
-      }
-    }
-  }
-
-  // Round
-  // We've normalized the exponent, but might still need to round.
-  if (lastDigit - firstDigit + 1 < significantDigits && string[significantDigits] !== '0') {
-    var endOfString = nDigitsRead;
-
-    // If we have seen a radix point, 'string' is 1 longer than we have
-    // documented with ndigits_read, so inc the position of the first nonzero
-    // digit and the position that digits are read to.
-    if (sawRadix && exponent === EXPONENT_MIN) {
-      firstNonZero = firstNonZero + 1;
-      endOfString = endOfString + 1;
-    }
-
-    var roundDigit = parseInt(string[firstNonZero + lastDigit + 1], 10);
-    var roundBit = 0;
-
-    if (roundDigit >= 5) {
-      roundBit = 1;
-
-      if (roundDigit === 5) {
-        roundBit = digits[lastDigit] % 2 === 1;
-
-        for (i = firstNonZero + lastDigit + 2; i < endOfString; i++) {
-          if (parseInt(string[i], 10)) {
-            roundBit = 1;
-            break;
-          }
-        }
-      }
-    }
-
-    if (roundBit) {
-      var dIdx = lastDigit;
-
-      for (; dIdx >= 0; dIdx--) {
-        if (++digits[dIdx] > 9) {
-          digits[dIdx] = 0;
-
-          // overflowed most significant digit
-          if (dIdx === 0) {
-            if (exponent < EXPONENT_MAX) {
-              exponent = exponent + 1;
-              digits[dIdx] = 1;
-            } else {
-              return new Decimal128(
-                utils.toBuffer(isNegative ? INF_NEGATIVE_BUFFER : INF_POSITIVE_BUFFER)
-              );
-            }
-          }
-        } else {
-          break;
-        }
-      }
-    }
-  }
-
-  // Encode significand
-  // The high 17 digits of the significand
-  significandHigh = Long.fromNumber(0);
-  // The low 17 digits of the significand
-  significandLow = Long.fromNumber(0);
-
-  // read a zero
-  if (significantDigits === 0) {
-    significandHigh = Long.fromNumber(0);
-    significandLow = Long.fromNumber(0);
-  } else if (lastDigit - firstDigit < 17) {
-    dIdx = firstDigit;
-    significandLow = Long.fromNumber(digits[dIdx++]);
-    significandHigh = new Long(0, 0);
-
-    for (; dIdx <= lastDigit; dIdx++) {
-      significandLow = significandLow.multiply(Long.fromNumber(10));
-      significandLow = significandLow.add(Long.fromNumber(digits[dIdx]));
-    }
-  } else {
-    dIdx = firstDigit;
-    significandHigh = Long.fromNumber(digits[dIdx++]);
-
-    for (; dIdx <= lastDigit - 17; dIdx++) {
-      significandHigh = significandHigh.multiply(Long.fromNumber(10));
-      significandHigh = significandHigh.add(Long.fromNumber(digits[dIdx]));
-    }
-
-    significandLow = Long.fromNumber(digits[dIdx++]);
-
-    for (; dIdx <= lastDigit; dIdx++) {
-      significandLow = significandLow.multiply(Long.fromNumber(10));
-      significandLow = significandLow.add(Long.fromNumber(digits[dIdx]));
-    }
-  }
-
-  var significand = multiply64x2(significandHigh, Long.fromString('100000000000000000'));
-
-  significand.low = significand.low.add(significandLow);
-
-  if (lessThan(significand.low, significandLow)) {
-    significand.high = significand.high.add(Long.fromNumber(1));
-  }
-
-  // Biased exponent
-  biasedExponent = exponent + EXPONENT_BIAS;
-  var dec = { low: Long.fromNumber(0), high: Long.fromNumber(0) };
-
-  // Encode combination, exponent, and significand.
-  if (
-    significand.high
-      .shiftRightUnsigned(49)
-      .and(Long.fromNumber(1))
-      .equals(Long.fromNumber)
-  ) {
-    // Encode '11' into bits 1 to 3
-    dec.high = dec.high.or(Long.fromNumber(0x3).shiftLeft(61));
-    dec.high = dec.high.or(
-      Long.fromNumber(biasedExponent).and(Long.fromNumber(0x3fff).shiftLeft(47))
-    );
-    dec.high = dec.high.or(significand.high.and(Long.fromNumber(0x7fffffffffff)));
-  } else {
-    dec.high = dec.high.or(Long.fromNumber(biasedExponent & 0x3fff).shiftLeft(49));
-    dec.high = dec.high.or(significand.high.and(Long.fromNumber(0x1ffffffffffff)));
-  }
-
-  dec.low = significand.low;
-
-  // Encode sign
-  if (isNegative) {
-    dec.high = dec.high.or(Long.fromString('9223372036854775808'));
-  }
-
-  // Encode into a buffer
-  var buffer = utils.allocBuffer(16);
-  index = 0;
-
-  // Encode the low 64 bits of the decimal
-  // Encode low bits
-  buffer[index++] = dec.low.low_ & 0xff;
-  buffer[index++] = (dec.low.low_ >> 8) & 0xff;
-  buffer[index++] = (dec.low.low_ >> 16) & 0xff;
-  buffer[index++] = (dec.low.low_ >> 24) & 0xff;
-  // Encode high bits
-  buffer[index++] = dec.low.high_ & 0xff;
-  buffer[index++] = (dec.low.high_ >> 8) & 0xff;
-  buffer[index++] = (dec.low.high_ >> 16) & 0xff;
-  buffer[index++] = (dec.low.high_ >> 24) & 0xff;
-
-  // Encode the high 64 bits of the decimal
-  // Encode low bits
-  buffer[index++] = dec.high.low_ & 0xff;
-  buffer[index++] = (dec.high.low_ >> 8) & 0xff;
-  buffer[index++] = (dec.high.low_ >> 16) & 0xff;
-  buffer[index++] = (dec.high.low_ >> 24) & 0xff;
-  // Encode high bits
-  buffer[index++] = dec.high.high_ & 0xff;
-  buffer[index++] = (dec.high.high_ >> 8) & 0xff;
-  buffer[index++] = (dec.high.high_ >> 16) & 0xff;
-  buffer[index++] = (dec.high.high_ >> 24) & 0xff;
-
-  // Return the new Decimal128
-  return new Decimal128(buffer);
-};
-
-// Extract least significant 5 bits
-var COMBINATION_MASK = 0x1f;
-// Extract least significant 14 bits
-var EXPONENT_MASK = 0x3fff;
-// Value of combination field for Inf
-var COMBINATION_INFINITY = 30;
-// Value of combination field for NaN
-var COMBINATION_NAN = 31;
-// Value of combination field for NaN
-// var COMBINATION_SNAN = 32;
-// decimal128 exponent bias
-EXPONENT_BIAS = 6176;
-
-/**
- * Create a string representation of the raw Decimal128 value
- *
- * @method
- * @return {string} returns a Decimal128 string representation.
- */
-Decimal128.prototype.toString = function() {
-  // Note: bits in this routine are referred to starting at 0,
-  // from the sign bit, towards the coefficient.
-
-  // bits 0 - 31
-  var high;
-  // bits 32 - 63
-  var midh;
-  // bits 64 - 95
-  var midl;
-  // bits 96 - 127
-  var low;
-  // bits 1 - 5
-  var combination;
-  // decoded biased exponent (14 bits)
-  var biased_exponent;
-  // the number of significand digits
-  var significand_digits = 0;
-  // the base-10 digits in the significand
-  var significand = new Array(36);
-  for (var i = 0; i < significand.length; i++) significand[i] = 0;
-  // read pointer into significand
-  var index = 0;
-
-  // unbiased exponent
-  var exponent;
-  // the exponent if scientific notation is used
-  var scientific_exponent;
-
-  // true if the number is zero
-  var is_zero = false;
-
-  // the most signifcant significand bits (50-46)
-  var significand_msb;
-  // temporary storage for significand decoding
-  var significand128 = { parts: new Array(4) };
-  // indexing variables
-  i;
-  var j, k;
-
-  // Output string
-  var string = [];
-
-  // Unpack index
-  index = 0;
-
-  // Buffer reference
-  var buffer = this.bytes;
-
-  // Unpack the low 64bits into a long
-  low =
-    buffer[index++] | (buffer[index++] << 8) | (buffer[index++] << 16) | (buffer[index++] << 24);
-  midl =
-    buffer[index++] | (buffer[index++] << 8) | (buffer[index++] << 16) | (buffer[index++] << 24);
-
-  // Unpack the high 64bits into a long
-  midh =
-    buffer[index++] | (buffer[index++] << 8) | (buffer[index++] << 16) | (buffer[index++] << 24);
-  high =
-    buffer[index++] | (buffer[index++] << 8) | (buffer[index++] << 16) | (buffer[index++] << 24);
-
-  // Unpack index
-  index = 0;
-
-  // Create the state of the decimal
-  var dec = {
-    low: new Long(low, midl),
-    high: new Long(midh, high)
-  };
-
-  if (dec.high.lessThan(Long.ZERO)) {
-    string.push('-');
-  }
-
-  // Decode combination field and exponent
-  combination = (high >> 26) & COMBINATION_MASK;
-
-  if (combination >> 3 === 3) {
-    // Check for 'special' values
-    if (combination === COMBINATION_INFINITY) {
-      return string.join('') + 'Infinity';
-    } else if (combination === COMBINATION_NAN) {
-      return 'NaN';
-    } else {
-      biased_exponent = (high >> 15) & EXPONENT_MASK;
-      significand_msb = 0x08 + ((high >> 14) & 0x01);
-    }
-  } else {
-    significand_msb = (high >> 14) & 0x07;
-    biased_exponent = (high >> 17) & EXPONENT_MASK;
-  }
-
-  exponent = biased_exponent - EXPONENT_BIAS;
-
-  // Create string of significand digits
-
-  // Convert the 114-bit binary number represented by
-  // (significand_high, significand_low) to at most 34 decimal
-  // digits through modulo and division.
-  significand128.parts[0] = (high & 0x3fff) + ((significand_msb & 0xf) << 14);
-  significand128.parts[1] = midh;
-  significand128.parts[2] = midl;
-  significand128.parts[3] = low;
-
-  if (
-    significand128.parts[0] === 0 &&
-    significand128.parts[1] === 0 &&
-    significand128.parts[2] === 0 &&
-    significand128.parts[3] === 0
-  ) {
-    is_zero = true;
-  } else {
-    for (k = 3; k >= 0; k--) {
-      var least_digits = 0;
-      // Peform the divide
-      var result = divideu128(significand128);
-      significand128 = result.quotient;
-      least_digits = result.rem.low_;
-
-      // We now have the 9 least significant digits (in base 2).
-      // Convert and output to string.
-      if (!least_digits) continue;
-
-      for (j = 8; j >= 0; j--) {
-        // significand[k * 9 + j] = Math.round(least_digits % 10);
-        significand[k * 9 + j] = least_digits % 10;
-        // least_digits = Math.round(least_digits / 10);
-        least_digits = Math.floor(least_digits / 10);
-      }
-    }
-  }
-
-  // Output format options:
-  // Scientific - [-]d.dddE(+/-)dd or [-]dE(+/-)dd
-  // Regular    - ddd.ddd
-
-  if (is_zero) {
-    significand_digits = 1;
-    significand[index] = 0;
-  } else {
-    significand_digits = 36;
-    i = 0;
-
-    while (!significand[index]) {
-      i++;
-      significand_digits = significand_digits - 1;
-      index = index + 1;
-    }
-  }
-
-  scientific_exponent = significand_digits - 1 + exponent;
-
-  // The scientific exponent checks are dictated by the string conversion
-  // specification and are somewhat arbitrary cutoffs.
-  //
-  // We must check exponent > 0, because if this is the case, the number
-  // has trailing zeros.  However, we *cannot* output these trailing zeros,
-  // because doing so would change the precision of the value, and would
-  // change stored data if the string converted number is round tripped.
-
-  if (scientific_exponent >= 34 || scientific_exponent <= -7 || exponent > 0) {
-    // Scientific format
-    string.push(significand[index++]);
-    significand_digits = significand_digits - 1;
-
-    if (significand_digits) {
-      string.push('.');
-    }
-
-    for (i = 0; i < significand_digits; i++) {
-      string.push(significand[index++]);
-    }
-
-    // Exponent
-    string.push('E');
-    if (scientific_exponent > 0) {
-      string.push('+' + scientific_exponent);
-    } else {
-      string.push(scientific_exponent);
-    }
-  } else {
-    // Regular format with no decimal place
-    if (exponent >= 0) {
-      for (i = 0; i < significand_digits; i++) {
-        string.push(significand[index++]);
-      }
-    } else {
-      var radix_position = significand_digits + exponent;
-
-      // non-zero digits before radix
-      if (radix_position > 0) {
-        for (i = 0; i < radix_position; i++) {
-          string.push(significand[index++]);
-        }
-      } else {
-        string.push('0');
-      }
-
-      string.push('.');
-      // add leading zeros after radix
-      while (radix_position++ < 0) {
-        string.push('0');
-      }
-
-      for (i = 0; i < significand_digits - Math.max(radix_position - 1, 0); i++) {
-        string.push(significand[index++]);
-      }
-    }
-  }
-
-  return string.join('');
-};
-
-Decimal128.prototype.toJSON = function() {
-  return { $numberDecimal: this.toString() };
-};
-
-module.exports = Decimal128;
-module.exports.Decimal128 = Decimal128;

+ 0 - 33
node_modules/bson/lib/bson/double.js

@@ -1,33 +0,0 @@
-/**
- * A class representation of the BSON Double type.
- *
- * @class
- * @param {number} value the number we want to represent as a double.
- * @return {Double}
- */
-function Double(value) {
-  if (!(this instanceof Double)) return new Double(value);
-
-  this._bsontype = 'Double';
-  this.value = value;
-}
-
-/**
- * Access the number value.
- *
- * @method
- * @return {number} returns the wrapped double number.
- */
-Double.prototype.valueOf = function() {
-  return this.value;
-};
-
-/**
- * @ignore
- */
-Double.prototype.toJSON = function() {
-  return this.value;
-};
-
-module.exports = Double;
-module.exports.Double = Double;

+ 0 - 124
node_modules/bson/lib/bson/float_parser.js

@@ -1,124 +0,0 @@
-// Copyright (c) 2008, Fair Oaks Labs, Inc.
-// 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 Fair Oaks Labs, Inc. 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.
-//
-//
-// Modifications to writeIEEE754 to support negative zeroes made by Brian White
-
-var readIEEE754 = function(buffer, offset, endian, mLen, nBytes) {
-  var e,
-    m,
-    bBE = endian === 'big',
-    eLen = nBytes * 8 - mLen - 1,
-    eMax = (1 << eLen) - 1,
-    eBias = eMax >> 1,
-    nBits = -7,
-    i = bBE ? 0 : nBytes - 1,
-    d = bBE ? 1 : -1,
-    s = buffer[offset + i];
-
-  i += d;
-
-  e = s & ((1 << -nBits) - 1);
-  s >>= -nBits;
-  nBits += eLen;
-  for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8);
-
-  m = e & ((1 << -nBits) - 1);
-  e >>= -nBits;
-  nBits += mLen;
-  for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8);
-
-  if (e === 0) {
-    e = 1 - eBias;
-  } else if (e === eMax) {
-    return m ? NaN : (s ? -1 : 1) * Infinity;
-  } else {
-    m = m + Math.pow(2, mLen);
-    e = e - eBias;
-  }
-  return (s ? -1 : 1) * m * Math.pow(2, e - mLen);
-};
-
-var writeIEEE754 = function(buffer, value, offset, endian, mLen, nBytes) {
-  var e,
-    m,
-    c,
-    bBE = endian === 'big',
-    eLen = nBytes * 8 - mLen - 1,
-    eMax = (1 << eLen) - 1,
-    eBias = eMax >> 1,
-    rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0,
-    i = bBE ? nBytes - 1 : 0,
-    d = bBE ? -1 : 1,
-    s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;
-
-  value = Math.abs(value);
-
-  if (isNaN(value) || value === Infinity) {
-    m = isNaN(value) ? 1 : 0;
-    e = eMax;
-  } else {
-    e = Math.floor(Math.log(value) / Math.LN2);
-    if (value * (c = Math.pow(2, -e)) < 1) {
-      e--;
-      c *= 2;
-    }
-    if (e + eBias >= 1) {
-      value += rt / c;
-    } else {
-      value += rt * Math.pow(2, 1 - eBias);
-    }
-    if (value * c >= 2) {
-      e++;
-      c /= 2;
-    }
-
-    if (e + eBias >= eMax) {
-      m = 0;
-      e = eMax;
-    } else if (e + eBias >= 1) {
-      m = (value * c - 1) * Math.pow(2, mLen);
-      e = e + eBias;
-    } else {
-      m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);
-      e = 0;
-    }
-  }
-
-  for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8);
-
-  e = (e << mLen) | m;
-  eLen += mLen;
-  for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8);
-
-  buffer[offset + i - d] |= s * 128;
-};
-
-exports.readIEEE754 = readIEEE754;
-exports.writeIEEE754 = writeIEEE754;

+ 0 - 33
node_modules/bson/lib/bson/int_32.js

@@ -1,33 +0,0 @@
-/**
- * A class representation of a BSON Int32 type.
- *
- * @class
- * @param {number} value the number we want to represent as an int32.
- * @return {Int32}
- */
-var Int32 = function(value) {
-  if (!(this instanceof Int32)) return new Int32(value);
-
-  this._bsontype = 'Int32';
-  this.value = value;
-};
-
-/**
- * Access the number value.
- *
- * @method
- * @return {number} returns the wrapped int32 number.
- */
-Int32.prototype.valueOf = function() {
-  return this.value;
-};
-
-/**
- * @ignore
- */
-Int32.prototype.toJSON = function() {
-  return this.value;
-};
-
-module.exports = Int32;
-module.exports.Int32 = Int32;

+ 0 - 851
node_modules/bson/lib/bson/long.js

@@ -1,851 +0,0 @@
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// Copyright 2009 Google Inc. All Rights Reserved
-
-/**
- * Defines a Long class for representing a 64-bit two's-complement
- * integer value, which faithfully simulates the behavior of a Java "Long". This
- * implementation is derived from LongLib in GWT.
- *
- * Constructs a 64-bit two's-complement integer, given its low and high 32-bit
- * values as *signed* integers.  See the from* functions below for more
- * convenient ways of constructing Longs.
- *
- * The internal representation of a Long is the two given signed, 32-bit values.
- * We use 32-bit pieces because these are the size of integers on which
- * Javascript performs bit-operations.  For operations like addition and
- * multiplication, we split each number into 16-bit pieces, which can easily be
- * multiplied within Javascript's floating-point representation without overflow
- * or change in sign.
- *
- * In the algorithms below, we frequently reduce the negative case to the
- * positive case by negating the input(s) and then post-processing the result.
- * Note that we must ALWAYS check specially whether those values are MIN_VALUE
- * (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as
- * a positive number, it overflows back into a negative).  Not handling this
- * case would often result in infinite recursion.
- *
- * @class
- * @param {number} low  the low (signed) 32 bits of the Long.
- * @param {number} high the high (signed) 32 bits of the Long.
- * @return {Long}
- */
-function Long(low, high) {
-  if (!(this instanceof Long)) return new Long(low, high);
-
-  this._bsontype = 'Long';
-  /**
-   * @type {number}
-   * @ignore
-   */
-  this.low_ = low | 0; // force into 32 signed bits.
-
-  /**
-   * @type {number}
-   * @ignore
-   */
-  this.high_ = high | 0; // force into 32 signed bits.
-}
-
-/**
- * Return the int value.
- *
- * @method
- * @return {number} the value, assuming it is a 32-bit integer.
- */
-Long.prototype.toInt = function() {
-  return this.low_;
-};
-
-/**
- * Return the Number value.
- *
- * @method
- * @return {number} the closest floating-point representation to this value.
- */
-Long.prototype.toNumber = function() {
-  return this.high_ * Long.TWO_PWR_32_DBL_ + this.getLowBitsUnsigned();
-};
-
-/**
- * Return the JSON value.
- *
- * @method
- * @return {string} the JSON representation.
- */
-Long.prototype.toJSON = function() {
-  return this.toString();
-};
-
-/**
- * Return the String value.
- *
- * @method
- * @param {number} [opt_radix] the radix in which the text should be written.
- * @return {string} the textual representation of this value.
- */
-Long.prototype.toString = function(opt_radix) {
-  var radix = opt_radix || 10;
-  if (radix < 2 || 36 < radix) {
-    throw Error('radix out of range: ' + radix);
-  }
-
-  if (this.isZero()) {
-    return '0';
-  }
-
-  if (this.isNegative()) {
-    if (this.equals(Long.MIN_VALUE)) {
-      // We need to change the Long value before it can be negated, so we remove
-      // the bottom-most digit in this base and then recurse to do the rest.
-      var radixLong = Long.fromNumber(radix);
-      var div = this.div(radixLong);
-      var rem = div.multiply(radixLong).subtract(this);
-      return div.toString(radix) + rem.toInt().toString(radix);
-    } else {
-      return '-' + this.negate().toString(radix);
-    }
-  }
-
-  // Do several (6) digits each time through the loop, so as to
-  // minimize the calls to the very expensive emulated div.
-  var radixToPower = Long.fromNumber(Math.pow(radix, 6));
-
-  rem = this;
-  var result = '';
-
-  while (!rem.isZero()) {
-    var remDiv = rem.div(radixToPower);
-    var intval = rem.subtract(remDiv.multiply(radixToPower)).toInt();
-    var digits = intval.toString(radix);
-
-    rem = remDiv;
-    if (rem.isZero()) {
-      return digits + result;
-    } else {
-      while (digits.length < 6) {
-        digits = '0' + digits;
-      }
-      result = '' + digits + result;
-    }
-  }
-};
-
-/**
- * Return the high 32-bits value.
- *
- * @method
- * @return {number} the high 32-bits as a signed value.
- */
-Long.prototype.getHighBits = function() {
-  return this.high_;
-};
-
-/**
- * Return the low 32-bits value.
- *
- * @method
- * @return {number} the low 32-bits as a signed value.
- */
-Long.prototype.getLowBits = function() {
-  return this.low_;
-};
-
-/**
- * Return the low unsigned 32-bits value.
- *
- * @method
- * @return {number} the low 32-bits as an unsigned value.
- */
-Long.prototype.getLowBitsUnsigned = function() {
-  return this.low_ >= 0 ? this.low_ : Long.TWO_PWR_32_DBL_ + this.low_;
-};
-
-/**
- * Returns the number of bits needed to represent the absolute value of this Long.
- *
- * @method
- * @return {number} Returns the number of bits needed to represent the absolute value of this Long.
- */
-Long.prototype.getNumBitsAbs = function() {
-  if (this.isNegative()) {
-    if (this.equals(Long.MIN_VALUE)) {
-      return 64;
-    } else {
-      return this.negate().getNumBitsAbs();
-    }
-  } else {
-    var val = this.high_ !== 0 ? this.high_ : this.low_;
-    for (var bit = 31; bit > 0; bit--) {
-      if ((val & (1 << bit)) !== 0) {
-        break;
-      }
-    }
-    return this.high_ !== 0 ? bit + 33 : bit + 1;
-  }
-};
-
-/**
- * Return whether this value is zero.
- *
- * @method
- * @return {boolean} whether this value is zero.
- */
-Long.prototype.isZero = function() {
-  return this.high_ === 0 && this.low_ === 0;
-};
-
-/**
- * Return whether this value is negative.
- *
- * @method
- * @return {boolean} whether this value is negative.
- */
-Long.prototype.isNegative = function() {
-  return this.high_ < 0;
-};
-
-/**
- * Return whether this value is odd.
- *
- * @method
- * @return {boolean} whether this value is odd.
- */
-Long.prototype.isOdd = function() {
-  return (this.low_ & 1) === 1;
-};
-
-/**
- * Return whether this Long equals the other
- *
- * @method
- * @param {Long} other Long to compare against.
- * @return {boolean} whether this Long equals the other
- */
-Long.prototype.equals = function(other) {
-  return this.high_ === other.high_ && this.low_ === other.low_;
-};
-
-/**
- * Return whether this Long does not equal the other.
- *
- * @method
- * @param {Long} other Long to compare against.
- * @return {boolean} whether this Long does not equal the other.
- */
-Long.prototype.notEquals = function(other) {
-  return this.high_ !== other.high_ || this.low_ !== other.low_;
-};
-
-/**
- * Return whether this Long is less than the other.
- *
- * @method
- * @param {Long} other Long to compare against.
- * @return {boolean} whether this Long is less than the other.
- */
-Long.prototype.lessThan = function(other) {
-  return this.compare(other) < 0;
-};
-
-/**
- * Return whether this Long is less than or equal to the other.
- *
- * @method
- * @param {Long} other Long to compare against.
- * @return {boolean} whether this Long is less than or equal to the other.
- */
-Long.prototype.lessThanOrEqual = function(other) {
-  return this.compare(other) <= 0;
-};
-
-/**
- * Return whether this Long is greater than the other.
- *
- * @method
- * @param {Long} other Long to compare against.
- * @return {boolean} whether this Long is greater than the other.
- */
-Long.prototype.greaterThan = function(other) {
-  return this.compare(other) > 0;
-};
-
-/**
- * Return whether this Long is greater than or equal to the other.
- *
- * @method
- * @param {Long} other Long to compare against.
- * @return {boolean} whether this Long is greater than or equal to the other.
- */
-Long.prototype.greaterThanOrEqual = function(other) {
-  return this.compare(other) >= 0;
-};
-
-/**
- * Compares this Long with the given one.
- *
- * @method
- * @param {Long} other Long to compare against.
- * @return {boolean} 0 if they are the same, 1 if the this is greater, and -1 if the given one is greater.
- */
-Long.prototype.compare = function(other) {
-  if (this.equals(other)) {
-    return 0;
-  }
-
-  var thisNeg = this.isNegative();
-  var otherNeg = other.isNegative();
-  if (thisNeg && !otherNeg) {
-    return -1;
-  }
-  if (!thisNeg && otherNeg) {
-    return 1;
-  }
-
-  // at this point, the signs are the same, so subtraction will not overflow
-  if (this.subtract(other).isNegative()) {
-    return -1;
-  } else {
-    return 1;
-  }
-};
-
-/**
- * The negation of this value.
- *
- * @method
- * @return {Long} the negation of this value.
- */
-Long.prototype.negate = function() {
-  if (this.equals(Long.MIN_VALUE)) {
-    return Long.MIN_VALUE;
-  } else {
-    return this.not().add(Long.ONE);
-  }
-};
-
-/**
- * Returns the sum of this and the given Long.
- *
- * @method
- * @param {Long} other Long to add to this one.
- * @return {Long} the sum of this and the given Long.
- */
-Long.prototype.add = function(other) {
-  // Divide each number into 4 chunks of 16 bits, and then sum the chunks.
-
-  var a48 = this.high_ >>> 16;
-  var a32 = this.high_ & 0xffff;
-  var a16 = this.low_ >>> 16;
-  var a00 = this.low_ & 0xffff;
-
-  var b48 = other.high_ >>> 16;
-  var b32 = other.high_ & 0xffff;
-  var b16 = other.low_ >>> 16;
-  var b00 = other.low_ & 0xffff;
-
-  var c48 = 0,
-    c32 = 0,
-    c16 = 0,
-    c00 = 0;
-  c00 += a00 + b00;
-  c16 += c00 >>> 16;
-  c00 &= 0xffff;
-  c16 += a16 + b16;
-  c32 += c16 >>> 16;
-  c16 &= 0xffff;
-  c32 += a32 + b32;
-  c48 += c32 >>> 16;
-  c32 &= 0xffff;
-  c48 += a48 + b48;
-  c48 &= 0xffff;
-  return Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32);
-};
-
-/**
- * Returns the difference of this and the given Long.
- *
- * @method
- * @param {Long} other Long to subtract from this.
- * @return {Long} the difference of this and the given Long.
- */
-Long.prototype.subtract = function(other) {
-  return this.add(other.negate());
-};
-
-/**
- * Returns the product of this and the given Long.
- *
- * @method
- * @param {Long} other Long to multiply with this.
- * @return {Long} the product of this and the other.
- */
-Long.prototype.multiply = function(other) {
-  if (this.isZero()) {
-    return Long.ZERO;
-  } else if (other.isZero()) {
-    return Long.ZERO;
-  }
-
-  if (this.equals(Long.MIN_VALUE)) {
-    return other.isOdd() ? Long.MIN_VALUE : Long.ZERO;
-  } else if (other.equals(Long.MIN_VALUE)) {
-    return this.isOdd() ? Long.MIN_VALUE : Long.ZERO;
-  }
-
-  if (this.isNegative()) {
-    if (other.isNegative()) {
-      return this.negate().multiply(other.negate());
-    } else {
-      return this.negate()
-        .multiply(other)
-        .negate();
-    }
-  } else if (other.isNegative()) {
-    return this.multiply(other.negate()).negate();
-  }
-
-  // If both Longs are small, use float multiplication
-  if (this.lessThan(Long.TWO_PWR_24_) && other.lessThan(Long.TWO_PWR_24_)) {
-    return Long.fromNumber(this.toNumber() * other.toNumber());
-  }
-
-  // Divide each Long into 4 chunks of 16 bits, and then add up 4x4 products.
-  // We can skip products that would overflow.
-
-  var a48 = this.high_ >>> 16;
-  var a32 = this.high_ & 0xffff;
-  var a16 = this.low_ >>> 16;
-  var a00 = this.low_ & 0xffff;
-
-  var b48 = other.high_ >>> 16;
-  var b32 = other.high_ & 0xffff;
-  var b16 = other.low_ >>> 16;
-  var b00 = other.low_ & 0xffff;
-
-  var c48 = 0,
-    c32 = 0,
-    c16 = 0,
-    c00 = 0;
-  c00 += a00 * b00;
-  c16 += c00 >>> 16;
-  c00 &= 0xffff;
-  c16 += a16 * b00;
-  c32 += c16 >>> 16;
-  c16 &= 0xffff;
-  c16 += a00 * b16;
-  c32 += c16 >>> 16;
-  c16 &= 0xffff;
-  c32 += a32 * b00;
-  c48 += c32 >>> 16;
-  c32 &= 0xffff;
-  c32 += a16 * b16;
-  c48 += c32 >>> 16;
-  c32 &= 0xffff;
-  c32 += a00 * b32;
-  c48 += c32 >>> 16;
-  c32 &= 0xffff;
-  c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;
-  c48 &= 0xffff;
-  return Long.fromBits((c16 << 16) | c00, (c48 << 16) | c32);
-};
-
-/**
- * Returns this Long divided by the given one.
- *
- * @method
- * @param {Long} other Long by which to divide.
- * @return {Long} this Long divided by the given one.
- */
-Long.prototype.div = function(other) {
-  if (other.isZero()) {
-    throw Error('division by zero');
-  } else if (this.isZero()) {
-    return Long.ZERO;
-  }
-
-  if (this.equals(Long.MIN_VALUE)) {
-    if (other.equals(Long.ONE) || other.equals(Long.NEG_ONE)) {
-      return Long.MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE
-    } else if (other.equals(Long.MIN_VALUE)) {
-      return Long.ONE;
-    } else {
-      // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.
-      var halfThis = this.shiftRight(1);
-      var approx = halfThis.div(other).shiftLeft(1);
-      if (approx.equals(Long.ZERO)) {
-        return other.isNegative() ? Long.ONE : Long.NEG_ONE;
-      } else {
-        var rem = this.subtract(other.multiply(approx));
-        var result = approx.add(rem.div(other));
-        return result;
-      }
-    }
-  } else if (other.equals(Long.MIN_VALUE)) {
-    return Long.ZERO;
-  }
-
-  if (this.isNegative()) {
-    if (other.isNegative()) {
-      return this.negate().div(other.negate());
-    } else {
-      return this.negate()
-        .div(other)
-        .negate();
-    }
-  } else if (other.isNegative()) {
-    return this.div(other.negate()).negate();
-  }
-
-  // Repeat the following until the remainder is less than other:  find a
-  // floating-point that approximates remainder / other *from below*, add this
-  // into the result, and subtract it from the remainder.  It is critical that
-  // the approximate value is less than or equal to the real value so that the
-  // remainder never becomes negative.
-  var res = Long.ZERO;
-  rem = this;
-  while (rem.greaterThanOrEqual(other)) {
-    // Approximate the result of division. This may be a little greater or
-    // smaller than the actual value.
-    approx = Math.max(1, Math.floor(rem.toNumber() / other.toNumber()));
-
-    // We will tweak the approximate result by changing it in the 48-th digit or
-    // the smallest non-fractional digit, whichever is larger.
-    var log2 = Math.ceil(Math.log(approx) / Math.LN2);
-    var delta = log2 <= 48 ? 1 : Math.pow(2, log2 - 48);
-
-    // Decrease the approximation until it is smaller than the remainder.  Note
-    // that if it is too large, the product overflows and is negative.
-    var approxRes = Long.fromNumber(approx);
-    var approxRem = approxRes.multiply(other);
-    while (approxRem.isNegative() || approxRem.greaterThan(rem)) {
-      approx -= delta;
-      approxRes = Long.fromNumber(approx);
-      approxRem = approxRes.multiply(other);
-    }
-
-    // We know the answer can't be zero... and actually, zero would cause
-    // infinite recursion since we would make no progress.
-    if (approxRes.isZero()) {
-      approxRes = Long.ONE;
-    }
-
-    res = res.add(approxRes);
-    rem = rem.subtract(approxRem);
-  }
-  return res;
-};
-
-/**
- * Returns this Long modulo the given one.
- *
- * @method
- * @param {Long} other Long by which to mod.
- * @return {Long} this Long modulo the given one.
- */
-Long.prototype.modulo = function(other) {
-  return this.subtract(this.div(other).multiply(other));
-};
-
-/**
- * The bitwise-NOT of this value.
- *
- * @method
- * @return {Long} the bitwise-NOT of this value.
- */
-Long.prototype.not = function() {
-  return Long.fromBits(~this.low_, ~this.high_);
-};
-
-/**
- * Returns the bitwise-AND of this Long and the given one.
- *
- * @method
- * @param {Long} other the Long with which to AND.
- * @return {Long} the bitwise-AND of this and the other.
- */
-Long.prototype.and = function(other) {
-  return Long.fromBits(this.low_ & other.low_, this.high_ & other.high_);
-};
-
-/**
- * Returns the bitwise-OR of this Long and the given one.
- *
- * @method
- * @param {Long} other the Long with which to OR.
- * @return {Long} the bitwise-OR of this and the other.
- */
-Long.prototype.or = function(other) {
-  return Long.fromBits(this.low_ | other.low_, this.high_ | other.high_);
-};
-
-/**
- * Returns the bitwise-XOR of this Long and the given one.
- *
- * @method
- * @param {Long} other the Long with which to XOR.
- * @return {Long} the bitwise-XOR of this and the other.
- */
-Long.prototype.xor = function(other) {
-  return Long.fromBits(this.low_ ^ other.low_, this.high_ ^ other.high_);
-};
-
-/**
- * Returns this Long with bits shifted to the left by the given amount.
- *
- * @method
- * @param {number} numBits the number of bits by which to shift.
- * @return {Long} this shifted to the left by the given amount.
- */
-Long.prototype.shiftLeft = function(numBits) {
-  numBits &= 63;
-  if (numBits === 0) {
-    return this;
-  } else {
-    var low = this.low_;
-    if (numBits < 32) {
-      var high = this.high_;
-      return Long.fromBits(low << numBits, (high << numBits) | (low >>> (32 - numBits)));
-    } else {
-      return Long.fromBits(0, low << (numBits - 32));
-    }
-  }
-};
-
-/**
- * Returns this Long with bits shifted to the right by the given amount.
- *
- * @method
- * @param {number} numBits the number of bits by which to shift.
- * @return {Long} this shifted to the right by the given amount.
- */
-Long.prototype.shiftRight = function(numBits) {
-  numBits &= 63;
-  if (numBits === 0) {
-    return this;
-  } else {
-    var high = this.high_;
-    if (numBits < 32) {
-      var low = this.low_;
-      return Long.fromBits((low >>> numBits) | (high << (32 - numBits)), high >> numBits);
-    } else {
-      return Long.fromBits(high >> (numBits - 32), high >= 0 ? 0 : -1);
-    }
-  }
-};
-
-/**
- * Returns this Long with bits shifted to the right by the given amount, with the new top bits matching the current sign bit.
- *
- * @method
- * @param {number} numBits the number of bits by which to shift.
- * @return {Long} this shifted to the right by the given amount, with zeros placed into the new leading bits.
- */
-Long.prototype.shiftRightUnsigned = function(numBits) {
-  numBits &= 63;
-  if (numBits === 0) {
-    return this;
-  } else {
-    var high = this.high_;
-    if (numBits < 32) {
-      var low = this.low_;
-      return Long.fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits);
-    } else if (numBits === 32) {
-      return Long.fromBits(high, 0);
-    } else {
-      return Long.fromBits(high >>> (numBits - 32), 0);
-    }
-  }
-};
-
-/**
- * Returns a Long representing the given (32-bit) integer value.
- *
- * @method
- * @param {number} value the 32-bit integer in question.
- * @return {Long} the corresponding Long value.
- */
-Long.fromInt = function(value) {
-  if (-128 <= value && value < 128) {
-    var cachedObj = Long.INT_CACHE_[value];
-    if (cachedObj) {
-      return cachedObj;
-    }
-  }
-
-  var obj = new Long(value | 0, value < 0 ? -1 : 0);
-  if (-128 <= value && value < 128) {
-    Long.INT_CACHE_[value] = obj;
-  }
-  return obj;
-};
-
-/**
- * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned.
- *
- * @method
- * @param {number} value the number in question.
- * @return {Long} the corresponding Long value.
- */
-Long.fromNumber = function(value) {
-  if (isNaN(value) || !isFinite(value)) {
-    return Long.ZERO;
-  } else if (value <= -Long.TWO_PWR_63_DBL_) {
-    return Long.MIN_VALUE;
-  } else if (value + 1 >= Long.TWO_PWR_63_DBL_) {
-    return Long.MAX_VALUE;
-  } else if (value < 0) {
-    return Long.fromNumber(-value).negate();
-  } else {
-    return new Long((value % Long.TWO_PWR_32_DBL_) | 0, (value / Long.TWO_PWR_32_DBL_) | 0);
-  }
-};
-
-/**
- * Returns a Long representing the 64-bit integer that comes by concatenating the given high and low bits. Each is assumed to use 32 bits.
- *
- * @method
- * @param {number} lowBits the low 32-bits.
- * @param {number} highBits the high 32-bits.
- * @return {Long} the corresponding Long value.
- */
-Long.fromBits = function(lowBits, highBits) {
-  return new Long(lowBits, highBits);
-};
-
-/**
- * Returns a Long representation of the given string, written using the given radix.
- *
- * @method
- * @param {string} str the textual representation of the Long.
- * @param {number} opt_radix the radix in which the text is written.
- * @return {Long} the corresponding Long value.
- */
-Long.fromString = function(str, opt_radix) {
-  if (str.length === 0) {
-    throw Error('number format error: empty string');
-  }
-
-  var radix = opt_radix || 10;
-  if (radix < 2 || 36 < radix) {
-    throw Error('radix out of range: ' + radix);
-  }
-
-  if (str.charAt(0) === '-') {
-    return Long.fromString(str.substring(1), radix).negate();
-  } else if (str.indexOf('-') >= 0) {
-    throw Error('number format error: interior "-" character: ' + str);
-  }
-
-  // Do several (8) digits each time through the loop, so as to
-  // minimize the calls to the very expensive emulated div.
-  var radixToPower = Long.fromNumber(Math.pow(radix, 8));
-
-  var result = Long.ZERO;
-  for (var i = 0; i < str.length; i += 8) {
-    var size = Math.min(8, str.length - i);
-    var value = parseInt(str.substring(i, i + size), radix);
-    if (size < 8) {
-      var power = Long.fromNumber(Math.pow(radix, size));
-      result = result.multiply(power).add(Long.fromNumber(value));
-    } else {
-      result = result.multiply(radixToPower);
-      result = result.add(Long.fromNumber(value));
-    }
-  }
-  return result;
-};
-
-// NOTE: Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the
-// from* methods on which they depend.
-
-/**
- * A cache of the Long representations of small integer values.
- * @type {Object}
- * @ignore
- */
-Long.INT_CACHE_ = {};
-
-// NOTE: the compiler should inline these constant values below and then remove
-// these variables, so there should be no runtime penalty for these.
-
-/**
- * Number used repeated below in calculations.  This must appear before the
- * first call to any from* function below.
- * @type {number}
- * @ignore
- */
-Long.TWO_PWR_16_DBL_ = 1 << 16;
-
-/**
- * @type {number}
- * @ignore
- */
-Long.TWO_PWR_24_DBL_ = 1 << 24;
-
-/**
- * @type {number}
- * @ignore
- */
-Long.TWO_PWR_32_DBL_ = Long.TWO_PWR_16_DBL_ * Long.TWO_PWR_16_DBL_;
-
-/**
- * @type {number}
- * @ignore
- */
-Long.TWO_PWR_31_DBL_ = Long.TWO_PWR_32_DBL_ / 2;
-
-/**
- * @type {number}
- * @ignore
- */
-Long.TWO_PWR_48_DBL_ = Long.TWO_PWR_32_DBL_ * Long.TWO_PWR_16_DBL_;
-
-/**
- * @type {number}
- * @ignore
- */
-Long.TWO_PWR_64_DBL_ = Long.TWO_PWR_32_DBL_ * Long.TWO_PWR_32_DBL_;
-
-/**
- * @type {number}
- * @ignore
- */
-Long.TWO_PWR_63_DBL_ = Long.TWO_PWR_64_DBL_ / 2;
-
-/** @type {Long} */
-Long.ZERO = Long.fromInt(0);
-
-/** @type {Long} */
-Long.ONE = Long.fromInt(1);
-
-/** @type {Long} */
-Long.NEG_ONE = Long.fromInt(-1);
-
-/** @type {Long} */
-Long.MAX_VALUE = Long.fromBits(0xffffffff | 0, 0x7fffffff | 0);
-
-/** @type {Long} */
-Long.MIN_VALUE = Long.fromBits(0, 0x80000000 | 0);
-
-/**
- * @type {Long}
- * @ignore
- */
-Long.TWO_PWR_24_ = Long.fromInt(1 << 24);
-
-/**
- * Expose.
- */
-module.exports = Long;
-module.exports.Long = Long;

+ 0 - 128
node_modules/bson/lib/bson/map.js

@@ -1,128 +0,0 @@
-'use strict';
-
-// We have an ES6 Map available, return the native instance
-if (typeof global.Map !== 'undefined') {
-  module.exports = global.Map;
-  module.exports.Map = global.Map;
-} else {
-  // We will return a polyfill
-  var Map = function(array) {
-    this._keys = [];
-    this._values = {};
-
-    for (var i = 0; i < array.length; i++) {
-      if (array[i] == null) continue; // skip null and undefined
-      var entry = array[i];
-      var key = entry[0];
-      var value = entry[1];
-      // Add the key to the list of keys in order
-      this._keys.push(key);
-      // Add the key and value to the values dictionary with a point
-      // to the location in the ordered keys list
-      this._values[key] = { v: value, i: this._keys.length - 1 };
-    }
-  };
-
-  Map.prototype.clear = function() {
-    this._keys = [];
-    this._values = {};
-  };
-
-  Map.prototype.delete = function(key) {
-    var value = this._values[key];
-    if (value == null) return false;
-    // Delete entry
-    delete this._values[key];
-    // Remove the key from the ordered keys list
-    this._keys.splice(value.i, 1);
-    return true;
-  };
-
-  Map.prototype.entries = function() {
-    var self = this;
-    var index = 0;
-
-    return {
-      next: function() {
-        var key = self._keys[index++];
-        return {
-          value: key !== undefined ? [key, self._values[key].v] : undefined,
-          done: key !== undefined ? false : true
-        };
-      }
-    };
-  };
-
-  Map.prototype.forEach = function(callback, self) {
-    self = self || this;
-
-    for (var i = 0; i < this._keys.length; i++) {
-      var key = this._keys[i];
-      // Call the forEach callback
-      callback.call(self, this._values[key].v, key, self);
-    }
-  };
-
-  Map.prototype.get = function(key) {
-    return this._values[key] ? this._values[key].v : undefined;
-  };
-
-  Map.prototype.has = function(key) {
-    return this._values[key] != null;
-  };
-
-  Map.prototype.keys = function() {
-    var self = this;
-    var index = 0;
-
-    return {
-      next: function() {
-        var key = self._keys[index++];
-        return {
-          value: key !== undefined ? key : undefined,
-          done: key !== undefined ? false : true
-        };
-      }
-    };
-  };
-
-  Map.prototype.set = function(key, value) {
-    if (this._values[key]) {
-      this._values[key].v = value;
-      return this;
-    }
-
-    // Add the key to the list of keys in order
-    this._keys.push(key);
-    // Add the key and value to the values dictionary with a point
-    // to the location in the ordered keys list
-    this._values[key] = { v: value, i: this._keys.length - 1 };
-    return this;
-  };
-
-  Map.prototype.values = function() {
-    var self = this;
-    var index = 0;
-
-    return {
-      next: function() {
-        var key = self._keys[index++];
-        return {
-          value: key !== undefined ? self._values[key].v : undefined,
-          done: key !== undefined ? false : true
-        };
-      }
-    };
-  };
-
-  // Last ismaster
-  Object.defineProperty(Map.prototype, 'size', {
-    enumerable: true,
-    get: function() {
-      return this._keys.length;
-    }
-  });
-
-  module.exports = Map;
-  module.exports.Map = Map;
-}

+ 0 - 14
node_modules/bson/lib/bson/max_key.js

@@ -1,14 +0,0 @@
-/**
- * A class representation of the BSON MaxKey type.
- *
- * @class
- * @return {MaxKey} A MaxKey instance
- */
-function MaxKey() {
-  if (!(this instanceof MaxKey)) return new MaxKey();
-
-  this._bsontype = 'MaxKey';
-}
-
-module.exports = MaxKey;
-module.exports.MaxKey = MaxKey;

+ 0 - 14
node_modules/bson/lib/bson/min_key.js

@@ -1,14 +0,0 @@
-/**
- * A class representation of the BSON MinKey type.
- *
- * @class
- * @return {MinKey} A MinKey instance
- */
-function MinKey() {
-  if (!(this instanceof MinKey)) return new MinKey();
-
-  this._bsontype = 'MinKey';
-}
-
-module.exports = MinKey;
-module.exports.MinKey = MinKey;

+ 0 - 389
node_modules/bson/lib/bson/objectid.js

@@ -1,389 +0,0 @@
-// Custom inspect property name / symbol.
-var inspect = 'inspect';
-
-var utils = require('./parser/utils');
-
-/**
- * Machine id.
- *
- * Create a random 3-byte value (i.e. unique for this
- * process). Other drivers use a md5 of the machine id here, but
- * that would mean an asyc call to gethostname, so we don't bother.
- * @ignore
- */
-var MACHINE_ID = parseInt(Math.random() * 0xffffff, 10);
-
-// Regular expression that checks for hex value
-var checkForHexRegExp = new RegExp('^[0-9a-fA-F]{24}$');
-
-// Check if buffer exists
-try {
-  if (Buffer && Buffer.from) {
-    var hasBufferType = true;
-    inspect = require('util').inspect.custom || 'inspect';
-  }
-} catch (err) {
-  hasBufferType = false;
-}
-
-/**
-* Create a new ObjectID instance
-*
-* @class
-* @param {(string|number)} id Can be a 24 byte hex string, 12 byte binary string or a Number.
-* @property {number} generationTime The generation time of this ObjectId instance
-* @return {ObjectID} instance of ObjectID.
-*/
-var ObjectID = function ObjectID(id) {
-  // Duck-typing to support ObjectId from different npm packages
-  if (id instanceof ObjectID) return id;
-  if (!(this instanceof ObjectID)) return new ObjectID(id);
-
-  this._bsontype = 'ObjectID';
-
-  // The most common usecase (blank id, new objectId instance)
-  if (id == null || typeof id === 'number') {
-    // Generate a new id
-    this.id = this.generate(id);
-    // If we are caching the hex string
-    if (ObjectID.cacheHexString) this.__id = this.toString('hex');
-    // Return the object
-    return;
-  }
-
-  // Check if the passed in id is valid
-  var valid = ObjectID.isValid(id);
-
-  // Throw an error if it's not a valid setup
-  if (!valid && id != null) {
-    throw new Error(
-      'Argument passed in must be a single String of 12 bytes or a string of 24 hex characters'
-    );
-  } else if (valid && typeof id === 'string' && id.length === 24 && hasBufferType) {
-    return new ObjectID(utils.toBuffer(id, 'hex'));
-  } else if (valid && typeof id === 'string' && id.length === 24) {
-    return ObjectID.createFromHexString(id);
-  } else if (id != null && id.length === 12) {
-    // assume 12 byte string
-    this.id = id;
-  } else if (id != null && id.toHexString) {
-    // Duck-typing to support ObjectId from different npm packages
-    return id;
-  } else {
-    throw new Error(
-      'Argument passed in must be a single String of 12 bytes or a string of 24 hex characters'
-    );
-  }
-
-  if (ObjectID.cacheHexString) this.__id = this.toString('hex');
-};
-
-// Allow usage of ObjectId as well as ObjectID
-// var ObjectId = ObjectID;
-
-// Precomputed hex table enables speedy hex string conversion
-var hexTable = [];
-for (var i = 0; i < 256; i++) {
-  hexTable[i] = (i <= 15 ? '0' : '') + i.toString(16);
-}
-
-/**
-* Return the ObjectID id as a 24 byte hex string representation
-*
-* @method
-* @return {string} return the 24 byte hex string representation.
-*/
-ObjectID.prototype.toHexString = function() {
-  if (ObjectID.cacheHexString && this.__id) return this.__id;
-
-  var hexString = '';
-  if (!this.id || !this.id.length) {
-    throw new Error(
-      'invalid ObjectId, ObjectId.id must be either a string or a Buffer, but is [' +
-        JSON.stringify(this.id) +
-        ']'
-    );
-  }
-
-  if (this.id instanceof _Buffer) {
-    hexString = convertToHex(this.id);
-    if (ObjectID.cacheHexString) this.__id = hexString;
-    return hexString;
-  }
-
-  for (var i = 0; i < this.id.length; i++) {
-    hexString += hexTable[this.id.charCodeAt(i)];
-  }
-
-  if (ObjectID.cacheHexString) this.__id = hexString;
-  return hexString;
-};
-
-/**
-* Update the ObjectID index used in generating new ObjectID's on the driver
-*
-* @method
-* @return {number} returns next index value.
-* @ignore
-*/
-ObjectID.prototype.get_inc = function() {
-  return (ObjectID.index = (ObjectID.index + 1) % 0xffffff);
-};
-
-/**
-* Update the ObjectID index used in generating new ObjectID's on the driver
-*
-* @method
-* @return {number} returns next index value.
-* @ignore
-*/
-ObjectID.prototype.getInc = function() {
-  return this.get_inc();
-};
-
-/**
-* Generate a 12 byte id buffer used in ObjectID's
-*
-* @method
-* @param {number} [time] optional parameter allowing to pass in a second based timestamp.
-* @return {Buffer} return the 12 byte id buffer string.
-*/
-ObjectID.prototype.generate = function(time) {
-  if ('number' !== typeof time) {
-    time = ~~(Date.now() / 1000);
-  }
-
-  // Use pid
-  var pid =
-    (typeof process === 'undefined' || process.pid === 1
-      ? Math.floor(Math.random() * 100000)
-      : process.pid) % 0xffff;
-  var inc = this.get_inc();
-  // Buffer used
-  var buffer = utils.allocBuffer(12);
-  // Encode time
-  buffer[3] = time & 0xff;
-  buffer[2] = (time >> 8) & 0xff;
-  buffer[1] = (time >> 16) & 0xff;
-  buffer[0] = (time >> 24) & 0xff;
-  // Encode machine
-  buffer[6] = MACHINE_ID & 0xff;
-  buffer[5] = (MACHINE_ID >> 8) & 0xff;
-  buffer[4] = (MACHINE_ID >> 16) & 0xff;
-  // Encode pid
-  buffer[8] = pid & 0xff;
-  buffer[7] = (pid >> 8) & 0xff;
-  // Encode index
-  buffer[11] = inc & 0xff;
-  buffer[10] = (inc >> 8) & 0xff;
-  buffer[9] = (inc >> 16) & 0xff;
-  // Return the buffer
-  return buffer;
-};
-
-/**
-* Converts the id into a 24 byte hex string for printing
-*
-* @param {String} format The Buffer toString format parameter.
-* @return {String} return the 24 byte hex string representation.
-* @ignore
-*/
-ObjectID.prototype.toString = function(format) {
-  // Is the id a buffer then use the buffer toString method to return the format
-  if (this.id && this.id.copy) {
-    return this.id.toString(typeof format === 'string' ? format : 'hex');
-  }
-
-  // if(this.buffer )
-  return this.toHexString();
-};
-
-/**
-* Converts to a string representation of this Id.
-*
-* @return {String} return the 24 byte hex string representation.
-* @ignore
-*/
-ObjectID.prototype[inspect] = ObjectID.prototype.toString;
-
-/**
-* Converts to its JSON representation.
-*
-* @return {String} return the 24 byte hex string representation.
-* @ignore
-*/
-ObjectID.prototype.toJSON = function() {
-  return this.toHexString();
-};
-
-/**
-* Compares the equality of this ObjectID with `otherID`.
-*
-* @method
-* @param {object} otherID ObjectID instance to compare against.
-* @return {boolean} the result of comparing two ObjectID's
-*/
-ObjectID.prototype.equals = function equals(otherId) {
-  // var id;
-
-  if (otherId instanceof ObjectID) {
-    return this.toString() === otherId.toString();
-  } else if (
-    typeof otherId === 'string' &&
-    ObjectID.isValid(otherId) &&
-    otherId.length === 12 &&
-    this.id instanceof _Buffer
-  ) {
-    return otherId === this.id.toString('binary');
-  } else if (typeof otherId === 'string' && ObjectID.isValid(otherId) && otherId.length === 24) {
-    return otherId.toLowerCase() === this.toHexString();
-  } else if (typeof otherId === 'string' && ObjectID.isValid(otherId) && otherId.length === 12) {
-    return otherId === this.id;
-  } else if (otherId != null && (otherId instanceof ObjectID || otherId.toHexString)) {
-    return otherId.toHexString() === this.toHexString();
-  } else {
-    return false;
-  }
-};
-
-/**
-* Returns the generation date (accurate up to the second) that this ID was generated.
-*
-* @method
-* @return {date} the generation date
-*/
-ObjectID.prototype.getTimestamp = function() {
-  var timestamp = new Date();
-  var time = this.id[3] | (this.id[2] << 8) | (this.id[1] << 16) | (this.id[0] << 24);
-  timestamp.setTime(Math.floor(time) * 1000);
-  return timestamp;
-};
-
-/**
-* @ignore
-*/
-ObjectID.index = ~~(Math.random() * 0xffffff);
-
-/**
-* @ignore
-*/
-ObjectID.createPk = function createPk() {
-  return new ObjectID();
-};
-
-/**
-* Creates an ObjectID from a second based number, with the rest of the ObjectID zeroed out. Used for comparisons or sorting the ObjectID.
-*
-* @method
-* @param {number} time an integer number representing a number of seconds.
-* @return {ObjectID} return the created ObjectID
-*/
-ObjectID.createFromTime = function createFromTime(time) {
-  var buffer = utils.toBuffer([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]);
-  // Encode time into first 4 bytes
-  buffer[3] = time & 0xff;
-  buffer[2] = (time >> 8) & 0xff;
-  buffer[1] = (time >> 16) & 0xff;
-  buffer[0] = (time >> 24) & 0xff;
-  // Return the new objectId
-  return new ObjectID(buffer);
-};
-
-// Lookup tables
-//var encodeLookup = '0123456789abcdef'.split('');
-var decodeLookup = [];
-i = 0;
-while (i < 10) decodeLookup[0x30 + i] = i++;
-while (i < 16) decodeLookup[0x41 - 10 + i] = decodeLookup[0x61 - 10 + i] = i++;
-
-var _Buffer = Buffer;
-var convertToHex = function(bytes) {
-  return bytes.toString('hex');
-};
-
-/**
-* Creates an ObjectID from a hex string representation of an ObjectID.
-*
-* @method
-* @param {string} hexString create a ObjectID from a passed in 24 byte hexstring.
-* @return {ObjectID} return the created ObjectID
-*/
-ObjectID.createFromHexString = function createFromHexString(string) {
-  // Throw an error if it's not a valid setup
-  if (typeof string === 'undefined' || (string != null && string.length !== 24)) {
-    throw new Error(
-      'Argument passed in must be a single String of 12 bytes or a string of 24 hex characters'
-    );
-  }
-
-  // Use Buffer.from method if available
-  if (hasBufferType) return new ObjectID(utils.toBuffer(string, 'hex'));
-
-  // Calculate lengths
-  var array = new _Buffer(12);
-  var n = 0;
-  var i = 0;
-
-  while (i < 24) {
-    array[n++] = (decodeLookup[string.charCodeAt(i++)] << 4) | decodeLookup[string.charCodeAt(i++)];
-  }
-
-  return new ObjectID(array);
-};
-
-/**
-* Checks if a value is a valid bson ObjectId
-*
-* @method
-* @return {boolean} return true if the value is a valid bson ObjectId, return false otherwise.
-*/
-ObjectID.isValid = function isValid(id) {
-  if (id == null) return false;
-
-  if (typeof id === 'number') {
-    return true;
-  }
-
-  if (typeof id === 'string') {
-    return id.length === 12 || (id.length === 24 && checkForHexRegExp.test(id));
-  }
-
-  if (id instanceof ObjectID) {
-    return true;
-  }
-
-  if (id instanceof _Buffer) {
-    return true;
-  }
-
-  // Duck-Typing detection of ObjectId like objects
-  if (id.toHexString) {
-    return id.id.length === 12 || (id.id.length === 24 && checkForHexRegExp.test(id.id));
-  }
-
-  return false;
-};
-
-/**
-* @ignore
-*/
-Object.defineProperty(ObjectID.prototype, 'generationTime', {
-  enumerable: true,
-  get: function() {
-    return this.id[3] | (this.id[2] << 8) | (this.id[1] << 16) | (this.id[0] << 24);
-  },
-  set: function(value) {
-    // Encode time into first 4 bytes
-    this.id[3] = value & 0xff;
-    this.id[2] = (value >> 8) & 0xff;
-    this.id[1] = (value >> 16) & 0xff;
-    this.id[0] = (value >> 24) & 0xff;
-  }
-});
-
-/**
- * Expose.
- */
-module.exports = ObjectID;
-module.exports.ObjectID = ObjectID;
-module.exports.ObjectId = ObjectID;

+ 0 - 255
node_modules/bson/lib/bson/parser/calculate_size.js

@@ -1,255 +0,0 @@
-'use strict';
-
-var Long = require('../long').Long,
-  Double = require('../double').Double,
-  Timestamp = require('../timestamp').Timestamp,
-  ObjectID = require('../objectid').ObjectID,
-  Symbol = require('../symbol').Symbol,
-  BSONRegExp = require('../regexp').BSONRegExp,
-  Code = require('../code').Code,
-  Decimal128 = require('../decimal128'),
-  MinKey = require('../min_key').MinKey,
-  MaxKey = require('../max_key').MaxKey,
-  DBRef = require('../db_ref').DBRef,
-  Binary = require('../binary').Binary;
-
-var normalizedFunctionString = require('./utils').normalizedFunctionString;
-
-// To ensure that 0.4 of node works correctly
-var isDate = function isDate(d) {
-  return typeof d === 'object' && Object.prototype.toString.call(d) === '[object Date]';
-};
-
-var calculateObjectSize = function calculateObjectSize(
-  object,
-  serializeFunctions,
-  ignoreUndefined
-) {
-  var totalLength = 4 + 1;
-
-  if (Array.isArray(object)) {
-    for (var i = 0; i < object.length; i++) {
-      totalLength += calculateElement(
-        i.toString(),
-        object[i],
-        serializeFunctions,
-        true,
-        ignoreUndefined
-      );
-    }
-  } else {
-    // If we have toBSON defined, override the current object
-    if (object.toBSON) {
-      object = object.toBSON();
-    }
-
-    // Calculate size
-    for (var key in object) {
-      totalLength += calculateElement(key, object[key], serializeFunctions, false, ignoreUndefined);
-    }
-  }
-
-  return totalLength;
-};
-
-/**
- * @ignore
- * @api private
- */
-function calculateElement(name, value, serializeFunctions, isArray, ignoreUndefined) {
-  // If we have toBSON defined, override the current object
-  if (value && value.toBSON) {
-    value = value.toBSON();
-  }
-
-  switch (typeof value) {
-    case 'string':
-      return 1 + Buffer.byteLength(name, 'utf8') + 1 + 4 + Buffer.byteLength(value, 'utf8') + 1;
-    case 'number':
-      if (Math.floor(value) === value && value >= BSON.JS_INT_MIN && value <= BSON.JS_INT_MAX) {
-        if (value >= BSON.BSON_INT32_MIN && value <= BSON.BSON_INT32_MAX) {
-          // 32 bit
-          return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (4 + 1);
-        } else {
-          return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (8 + 1);
-        }
-      } else {
-        // 64 bit
-        return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (8 + 1);
-      }
-    case 'undefined':
-      if (isArray || !ignoreUndefined)
-        return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1;
-      return 0;
-    case 'boolean':
-      return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (1 + 1);
-    case 'object':
-      if (
-        value == null ||
-        value instanceof MinKey ||
-        value instanceof MaxKey ||
-        value['_bsontype'] === 'MinKey' ||
-        value['_bsontype'] === 'MaxKey'
-      ) {
-        return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + 1;
-      } else if (value instanceof ObjectID || value['_bsontype'] === 'ObjectID' || value['_bsontype'] === 'ObjectId') {
-        return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (12 + 1);
-      } else if (value instanceof Date || isDate(value)) {
-        return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (8 + 1);
-      } else if (typeof Buffer !== 'undefined' && Buffer.isBuffer(value)) {
-        return (
-          (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (1 + 4 + 1) + value.length
-        );
-      } else if (
-        value instanceof Long ||
-        value instanceof Double ||
-        value instanceof Timestamp ||
-        value['_bsontype'] === 'Long' ||
-        value['_bsontype'] === 'Double' ||
-        value['_bsontype'] === 'Timestamp'
-      ) {
-        return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (8 + 1);
-      } else if (value instanceof Decimal128 || value['_bsontype'] === 'Decimal128') {
-        return (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (16 + 1);
-      } else if (value instanceof Code || value['_bsontype'] === 'Code') {
-        // Calculate size depending on the availability of a scope
-        if (value.scope != null && Object.keys(value.scope).length > 0) {
-          return (
-            (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) +
-            1 +
-            4 +
-            4 +
-            Buffer.byteLength(value.code.toString(), 'utf8') +
-            1 +
-            calculateObjectSize(value.scope, serializeFunctions, ignoreUndefined)
-          );
-        } else {
-          return (
-            (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) +
-            1 +
-            4 +
-            Buffer.byteLength(value.code.toString(), 'utf8') +
-            1
-          );
-        }
-      } else if (value instanceof Binary || value['_bsontype'] === 'Binary') {
-        // Check what kind of subtype we have
-        if (value.sub_type === Binary.SUBTYPE_BYTE_ARRAY) {
-          return (
-            (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) +
-            (value.position + 1 + 4 + 1 + 4)
-          );
-        } else {
-          return (
-            (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) + (value.position + 1 + 4 + 1)
-          );
-        }
-      } else if (value instanceof Symbol || value['_bsontype'] === 'Symbol') {
-        return (
-          (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) +
-          Buffer.byteLength(value.value, 'utf8') +
-          4 +
-          1 +
-          1
-        );
-      } else if (value instanceof DBRef || value['_bsontype'] === 'DBRef') {
-        // Set up correct object for serialization
-        var ordered_values = {
-          $ref: value.namespace,
-          $id: value.oid
-        };
-
-        // Add db reference if it exists
-        if (null != value.db) {
-          ordered_values['$db'] = value.db;
-        }
-
-        return (
-          (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) +
-          1 +
-          calculateObjectSize(ordered_values, serializeFunctions, ignoreUndefined)
-        );
-      } else if (
-        value instanceof RegExp ||
-        Object.prototype.toString.call(value) === '[object RegExp]'
-      ) {
-        return (
-          (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) +
-          1 +
-          Buffer.byteLength(value.source, 'utf8') +
-          1 +
-          (value.global ? 1 : 0) +
-          (value.ignoreCase ? 1 : 0) +
-          (value.multiline ? 1 : 0) +
-          1
-        );
-      } else if (value instanceof BSONRegExp || value['_bsontype'] === 'BSONRegExp') {
-        return (
-          (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) +
-          1 +
-          Buffer.byteLength(value.pattern, 'utf8') +
-          1 +
-          Buffer.byteLength(value.options, 'utf8') +
-          1
-        );
-      } else {
-        return (
-          (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) +
-          calculateObjectSize(value, serializeFunctions, ignoreUndefined) +
-          1
-        );
-      }
-    case 'function':
-      // WTF for 0.4.X where typeof /someregexp/ === 'function'
-      if (
-        value instanceof RegExp ||
-        Object.prototype.toString.call(value) === '[object RegExp]' ||
-        String.call(value) === '[object RegExp]'
-      ) {
-        return (
-          (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) +
-          1 +
-          Buffer.byteLength(value.source, 'utf8') +
-          1 +
-          (value.global ? 1 : 0) +
-          (value.ignoreCase ? 1 : 0) +
-          (value.multiline ? 1 : 0) +
-          1
-        );
-      } else {
-        if (serializeFunctions && value.scope != null && Object.keys(value.scope).length > 0) {
-          return (
-            (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) +
-            1 +
-            4 +
-            4 +
-            Buffer.byteLength(normalizedFunctionString(value), 'utf8') +
-            1 +
-            calculateObjectSize(value.scope, serializeFunctions, ignoreUndefined)
-          );
-        } else if (serializeFunctions) {
-          return (
-            (name != null ? Buffer.byteLength(name, 'utf8') + 1 : 0) +
-            1 +
-            4 +
-            Buffer.byteLength(normalizedFunctionString(value), 'utf8') +
-            1
-          );
-        }
-      }
-  }
-
-  return 0;
-}
-
-var BSON = {};
-
-// BSON MAX VALUES
-BSON.BSON_INT32_MAX = 0x7fffffff;
-BSON.BSON_INT32_MIN = -0x80000000;
-
-// JS MAX PRECISE VALUES
-BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double.
-BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double.
-
-module.exports = calculateObjectSize;

+ 0 - 782
node_modules/bson/lib/bson/parser/deserializer.js

@@ -1,782 +0,0 @@
-'use strict';
-
-var Long = require('../long').Long,
-  Double = require('../double').Double,
-  Timestamp = require('../timestamp').Timestamp,
-  ObjectID = require('../objectid').ObjectID,
-  Symbol = require('../symbol').Symbol,
-  Code = require('../code').Code,
-  MinKey = require('../min_key').MinKey,
-  MaxKey = require('../max_key').MaxKey,
-  Decimal128 = require('../decimal128'),
-  Int32 = require('../int_32'),
-  DBRef = require('../db_ref').DBRef,
-  BSONRegExp = require('../regexp').BSONRegExp,
-  Binary = require('../binary').Binary;
-
-var utils = require('./utils');
-
-var deserialize = function(buffer, options, isArray) {
-  options = options == null ? {} : options;
-  var index = options && options.index ? options.index : 0;
-  // Read the document size
-  var size =
-    buffer[index] |
-    (buffer[index + 1] << 8) |
-    (buffer[index + 2] << 16) |
-    (buffer[index + 3] << 24);
-
-  // Ensure buffer is valid size
-  if (size < 5 || buffer.length < size || size + index > buffer.length) {
-    throw new Error('corrupt bson message');
-  }
-
-  // Illegal end value
-  if (buffer[index + size - 1] !== 0) {
-    throw new Error("One object, sized correctly, with a spot for an EOO, but the EOO isn't 0x00");
-  }
-
-  // Start deserializtion
-  return deserializeObject(buffer, index, options, isArray);
-};
-
-var deserializeObject = function(buffer, index, options, isArray) {
-  var evalFunctions = options['evalFunctions'] == null ? false : options['evalFunctions'];
-  var cacheFunctions = options['cacheFunctions'] == null ? false : options['cacheFunctions'];
-  var cacheFunctionsCrc32 =
-    options['cacheFunctionsCrc32'] == null ? false : options['cacheFunctionsCrc32'];
-
-  if (!cacheFunctionsCrc32) var crc32 = null;
-
-  var fieldsAsRaw = options['fieldsAsRaw'] == null ? null : options['fieldsAsRaw'];
-
-  // Return raw bson buffer instead of parsing it
-  var raw = options['raw'] == null ? false : options['raw'];
-
-  // Return BSONRegExp objects instead of native regular expressions
-  var bsonRegExp = typeof options['bsonRegExp'] === 'boolean' ? options['bsonRegExp'] : false;
-
-  // Controls the promotion of values vs wrapper classes
-  var promoteBuffers = options['promoteBuffers'] == null ? false : options['promoteBuffers'];
-  var promoteLongs = options['promoteLongs'] == null ? true : options['promoteLongs'];
-  var promoteValues = options['promoteValues'] == null ? true : options['promoteValues'];
-
-  // Set the start index
-  var startIndex = index;
-
-  // Validate that we have at least 4 bytes of buffer
-  if (buffer.length < 5) throw new Error('corrupt bson message < 5 bytes long');
-
-  // Read the document size
-  var size =
-    buffer[index++] | (buffer[index++] << 8) | (buffer[index++] << 16) | (buffer[index++] << 24);
-
-  // Ensure buffer is valid size
-  if (size < 5 || size > buffer.length) throw new Error('corrupt bson message');
-
-  // Create holding object
-  var object = isArray ? [] : {};
-  // Used for arrays to skip having to perform utf8 decoding
-  var arrayIndex = 0;
-
-  var done = false;
-
-  // While we have more left data left keep parsing
-  // while (buffer[index + 1] !== 0) {
-  while (!done) {
-    // Read the type
-    var elementType = buffer[index++];
-    // If we get a zero it's the last byte, exit
-    if (elementType === 0) break;
-
-    // Get the start search index
-    var i = index;
-    // Locate the end of the c string
-    while (buffer[i] !== 0x00 && i < buffer.length) {
-      i++;
-    }
-
-    // If are at the end of the buffer there is a problem with the document
-    if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString');
-    var name = isArray ? arrayIndex++ : buffer.toString('utf8', index, i);
-
-    index = i + 1;
-
-    if (elementType === BSON.BSON_DATA_STRING) {
-      var stringSize =
-        buffer[index++] |
-        (buffer[index++] << 8) |
-        (buffer[index++] << 16) |
-        (buffer[index++] << 24);
-      if (
-        stringSize <= 0 ||
-        stringSize > buffer.length - index ||
-        buffer[index + stringSize - 1] !== 0
-      )
-        throw new Error('bad string length in bson');
-      object[name] = buffer.toString('utf8', index, index + stringSize - 1);
-      index = index + stringSize;
-    } else if (elementType === BSON.BSON_DATA_OID) {
-      var oid = utils.allocBuffer(12);
-      buffer.copy(oid, 0, index, index + 12);
-      object[name] = new ObjectID(oid);
-      index = index + 12;
-    } else if (elementType === BSON.BSON_DATA_INT && promoteValues === false) {
-      object[name] = new Int32(
-        buffer[index++] | (buffer[index++] << 8) | (buffer[index++] << 16) | (buffer[index++] << 24)
-      );
-    } else if (elementType === BSON.BSON_DATA_INT) {
-      object[name] =
-        buffer[index++] |
-        (buffer[index++] << 8) |
-        (buffer[index++] << 16) |
-        (buffer[index++] << 24);
-    } else if (elementType === BSON.BSON_DATA_NUMBER && promoteValues === false) {
-      object[name] = new Double(buffer.readDoubleLE(index));
-      index = index + 8;
-    } else if (elementType === BSON.BSON_DATA_NUMBER) {
-      object[name] = buffer.readDoubleLE(index);
-      index = index + 8;
-    } else if (elementType === BSON.BSON_DATA_DATE) {
-      var lowBits =
-        buffer[index++] |
-        (buffer[index++] << 8) |
-        (buffer[index++] << 16) |
-        (buffer[index++] << 24);
-      var highBits =
-        buffer[index++] |
-        (buffer[index++] << 8) |
-        (buffer[index++] << 16) |
-        (buffer[index++] << 24);
-      object[name] = new Date(new Long(lowBits, highBits).toNumber());
-    } else if (elementType === BSON.BSON_DATA_BOOLEAN) {
-      if (buffer[index] !== 0 && buffer[index] !== 1) throw new Error('illegal boolean type value');
-      object[name] = buffer[index++] === 1;
-    } else if (elementType === BSON.BSON_DATA_OBJECT) {
-      var _index = index;
-      var objectSize =
-        buffer[index] |
-        (buffer[index + 1] << 8) |
-        (buffer[index + 2] << 16) |
-        (buffer[index + 3] << 24);
-      if (objectSize <= 0 || objectSize > buffer.length - index)
-        throw new Error('bad embedded document length in bson');
-
-      // We have a raw value
-      if (raw) {
-        object[name] = buffer.slice(index, index + objectSize);
-      } else {
-        object[name] = deserializeObject(buffer, _index, options, false);
-      }
-
-      index = index + objectSize;
-    } else if (elementType === BSON.BSON_DATA_ARRAY) {
-      _index = index;
-      objectSize =
-        buffer[index] |
-        (buffer[index + 1] << 8) |
-        (buffer[index + 2] << 16) |
-        (buffer[index + 3] << 24);
-      var arrayOptions = options;
-
-      // Stop index
-      var stopIndex = index + objectSize;
-
-      // All elements of array to be returned as raw bson
-      if (fieldsAsRaw && fieldsAsRaw[name]) {
-        arrayOptions = {};
-        for (var n in options) arrayOptions[n] = options[n];
-        arrayOptions['raw'] = true;
-      }
-
-      object[name] = deserializeObject(buffer, _index, arrayOptions, true);
-      index = index + objectSize;
-
-      if (buffer[index - 1] !== 0) throw new Error('invalid array terminator byte');
-      if (index !== stopIndex) throw new Error('corrupted array bson');
-    } else if (elementType === BSON.BSON_DATA_UNDEFINED) {
-      object[name] = undefined;
-    } else if (elementType === BSON.BSON_DATA_NULL) {
-      object[name] = null;
-    } else if (elementType === BSON.BSON_DATA_LONG) {
-      // Unpack the low and high bits
-      lowBits =
-        buffer[index++] |
-        (buffer[index++] << 8) |
-        (buffer[index++] << 16) |
-        (buffer[index++] << 24);
-      highBits =
-        buffer[index++] |
-        (buffer[index++] << 8) |
-        (buffer[index++] << 16) |
-        (buffer[index++] << 24);
-      var long = new Long(lowBits, highBits);
-      // Promote the long if possible
-      if (promoteLongs && promoteValues === true) {
-        object[name] =
-          long.lessThanOrEqual(JS_INT_MAX_LONG) && long.greaterThanOrEqual(JS_INT_MIN_LONG)
-            ? long.toNumber()
-            : long;
-      } else {
-        object[name] = long;
-      }
-    } else if (elementType === BSON.BSON_DATA_DECIMAL128) {
-      // Buffer to contain the decimal bytes
-      var bytes = utils.allocBuffer(16);
-      // Copy the next 16 bytes into the bytes buffer
-      buffer.copy(bytes, 0, index, index + 16);
-      // Update index
-      index = index + 16;
-      // Assign the new Decimal128 value
-      var decimal128 = new Decimal128(bytes);
-      // If we have an alternative mapper use that
-      object[name] = decimal128.toObject ? decimal128.toObject() : decimal128;
-    } else if (elementType === BSON.BSON_DATA_BINARY) {
-      var binarySize =
-        buffer[index++] |
-        (buffer[index++] << 8) |
-        (buffer[index++] << 16) |
-        (buffer[index++] << 24);
-      var totalBinarySize = binarySize;
-      var subType = buffer[index++];
-
-      // Did we have a negative binary size, throw
-      if (binarySize < 0) throw new Error('Negative binary type element size found');
-
-      // Is the length longer than the document
-      if (binarySize > buffer.length) throw new Error('Binary type size larger than document size');
-
-      // Decode as raw Buffer object if options specifies it
-      if (buffer['slice'] != null) {
-        // If we have subtype 2 skip the 4 bytes for the size
-        if (subType === Binary.SUBTYPE_BYTE_ARRAY) {
-          binarySize =
-            buffer[index++] |
-            (buffer[index++] << 8) |
-            (buffer[index++] << 16) |
-            (buffer[index++] << 24);
-          if (binarySize < 0)
-            throw new Error('Negative binary type element size found for subtype 0x02');
-          if (binarySize > totalBinarySize - 4)
-            throw new Error('Binary type with subtype 0x02 contains to long binary size');
-          if (binarySize < totalBinarySize - 4)
-            throw new Error('Binary type with subtype 0x02 contains to short binary size');
-        }
-
-        if (promoteBuffers && promoteValues) {
-          object[name] = buffer.slice(index, index + binarySize);
-        } else {
-          object[name] = new Binary(buffer.slice(index, index + binarySize), subType);
-        }
-      } else {
-        var _buffer =
-          typeof Uint8Array !== 'undefined'
-            ? new Uint8Array(new ArrayBuffer(binarySize))
-            : new Array(binarySize);
-        // If we have subtype 2 skip the 4 bytes for the size
-        if (subType === Binary.SUBTYPE_BYTE_ARRAY) {
-          binarySize =
-            buffer[index++] |
-            (buffer[index++] << 8) |
-            (buffer[index++] << 16) |
-            (buffer[index++] << 24);
-          if (binarySize < 0)
-            throw new Error('Negative binary type element size found for subtype 0x02');
-          if (binarySize > totalBinarySize - 4)
-            throw new Error('Binary type with subtype 0x02 contains to long binary size');
-          if (binarySize < totalBinarySize - 4)
-            throw new Error('Binary type with subtype 0x02 contains to short binary size');
-        }
-
-        // Copy the data
-        for (i = 0; i < binarySize; i++) {
-          _buffer[i] = buffer[index + i];
-        }
-
-        if (promoteBuffers && promoteValues) {
-          object[name] = _buffer;
-        } else {
-          object[name] = new Binary(_buffer, subType);
-        }
-      }
-
-      // Update the index
-      index = index + binarySize;
-    } else if (elementType === BSON.BSON_DATA_REGEXP && bsonRegExp === false) {
-      // Get the start search index
-      i = index;
-      // Locate the end of the c string
-      while (buffer[i] !== 0x00 && i < buffer.length) {
-        i++;
-      }
-      // If are at the end of the buffer there is a problem with the document
-      if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString');
-      // Return the C string
-      var source = buffer.toString('utf8', index, i);
-      // Create the regexp
-      index = i + 1;
-
-      // Get the start search index
-      i = index;
-      // Locate the end of the c string
-      while (buffer[i] !== 0x00 && i < buffer.length) {
-        i++;
-      }
-      // If are at the end of the buffer there is a problem with the document
-      if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString');
-      // Return the C string
-      var regExpOptions = buffer.toString('utf8', index, i);
-      index = i + 1;
-
-      // For each option add the corresponding one for javascript
-      var optionsArray = new Array(regExpOptions.length);
-
-      // Parse options
-      for (i = 0; i < regExpOptions.length; i++) {
-        switch (regExpOptions[i]) {
-          case 'm':
-            optionsArray[i] = 'm';
-            break;
-          case 's':
-            optionsArray[i] = 'g';
-            break;
-          case 'i':
-            optionsArray[i] = 'i';
-            break;
-        }
-      }
-
-      object[name] = new RegExp(source, optionsArray.join(''));
-    } else if (elementType === BSON.BSON_DATA_REGEXP && bsonRegExp === true) {
-      // Get the start search index
-      i = index;
-      // Locate the end of the c string
-      while (buffer[i] !== 0x00 && i < buffer.length) {
-        i++;
-      }
-      // If are at the end of the buffer there is a problem with the document
-      if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString');
-      // Return the C string
-      source = buffer.toString('utf8', index, i);
-      index = i + 1;
-
-      // Get the start search index
-      i = index;
-      // Locate the end of the c string
-      while (buffer[i] !== 0x00 && i < buffer.length) {
-        i++;
-      }
-      // If are at the end of the buffer there is a problem with the document
-      if (i >= buffer.length) throw new Error('Bad BSON Document: illegal CString');
-      // Return the C string
-      regExpOptions = buffer.toString('utf8', index, i);
-      index = i + 1;
-
-      // Set the object
-      object[name] = new BSONRegExp(source, regExpOptions);
-    } else if (elementType === BSON.BSON_DATA_SYMBOL) {
-      stringSize =
-        buffer[index++] |
-        (buffer[index++] << 8) |
-        (buffer[index++] << 16) |
-        (buffer[index++] << 24);
-      if (
-        stringSize <= 0 ||
-        stringSize > buffer.length - index ||
-        buffer[index + stringSize - 1] !== 0
-      )
-        throw new Error('bad string length in bson');
-      object[name] = new Symbol(buffer.toString('utf8', index, index + stringSize - 1));
-      index = index + stringSize;
-    } else if (elementType === BSON.BSON_DATA_TIMESTAMP) {
-      lowBits =
-        buffer[index++] |
-        (buffer[index++] << 8) |
-        (buffer[index++] << 16) |
-        (buffer[index++] << 24);
-      highBits =
-        buffer[index++] |
-        (buffer[index++] << 8) |
-        (buffer[index++] << 16) |
-        (buffer[index++] << 24);
-      object[name] = new Timestamp(lowBits, highBits);
-    } else if (elementType === BSON.BSON_DATA_MIN_KEY) {
-      object[name] = new MinKey();
-    } else if (elementType === BSON.BSON_DATA_MAX_KEY) {
-      object[name] = new MaxKey();
-    } else if (elementType === BSON.BSON_DATA_CODE) {
-      stringSize =
-        buffer[index++] |
-        (buffer[index++] << 8) |
-        (buffer[index++] << 16) |
-        (buffer[index++] << 24);
-      if (
-        stringSize <= 0 ||
-        stringSize > buffer.length - index ||
-        buffer[index + stringSize - 1] !== 0
-      )
-        throw new Error('bad string length in bson');
-      var functionString = buffer.toString('utf8', index, index + stringSize - 1);
-
-      // If we are evaluating the functions
-      if (evalFunctions) {
-        // If we have cache enabled let's look for the md5 of the function in the cache
-        if (cacheFunctions) {
-          var hash = cacheFunctionsCrc32 ? crc32(functionString) : functionString;
-          // Got to do this to avoid V8 deoptimizing the call due to finding eval
-          object[name] = isolateEvalWithHash(functionCache, hash, functionString, object);
-        } else {
-          object[name] = isolateEval(functionString);
-        }
-      } else {
-        object[name] = new Code(functionString);
-      }
-
-      // Update parse index position
-      index = index + stringSize;
-    } else if (elementType === BSON.BSON_DATA_CODE_W_SCOPE) {
-      var totalSize =
-        buffer[index++] |
-        (buffer[index++] << 8) |
-        (buffer[index++] << 16) |
-        (buffer[index++] << 24);
-
-      // Element cannot be shorter than totalSize + stringSize + documentSize + terminator
-      if (totalSize < 4 + 4 + 4 + 1) {
-        throw new Error('code_w_scope total size shorter minimum expected length');
-      }
-
-      // Get the code string size
-      stringSize =
-        buffer[index++] |
-        (buffer[index++] << 8) |
-        (buffer[index++] << 16) |
-        (buffer[index++] << 24);
-      // Check if we have a valid string
-      if (
-        stringSize <= 0 ||
-        stringSize > buffer.length - index ||
-        buffer[index + stringSize - 1] !== 0
-      )
-        throw new Error('bad string length in bson');
-
-      // Javascript function
-      functionString = buffer.toString('utf8', index, index + stringSize - 1);
-      // Update parse index position
-      index = index + stringSize;
-      // Parse the element
-      _index = index;
-      // Decode the size of the object document
-      objectSize =
-        buffer[index] |
-        (buffer[index + 1] << 8) |
-        (buffer[index + 2] << 16) |
-        (buffer[index + 3] << 24);
-      // Decode the scope object
-      var scopeObject = deserializeObject(buffer, _index, options, false);
-      // Adjust the index
-      index = index + objectSize;
-
-      // Check if field length is to short
-      if (totalSize < 4 + 4 + objectSize + stringSize) {
-        throw new Error('code_w_scope total size is to short, truncating scope');
-      }
-
-      // Check if totalSize field is to long
-      if (totalSize > 4 + 4 + objectSize + stringSize) {
-        throw new Error('code_w_scope total size is to long, clips outer document');
-      }
-
-      // If we are evaluating the functions
-      if (evalFunctions) {
-        // If we have cache enabled let's look for the md5 of the function in the cache
-        if (cacheFunctions) {
-          hash = cacheFunctionsCrc32 ? crc32(functionString) : functionString;
-          // Got to do this to avoid V8 deoptimizing the call due to finding eval
-          object[name] = isolateEvalWithHash(functionCache, hash, functionString, object);
-        } else {
-          object[name] = isolateEval(functionString);
-        }
-
-        object[name].scope = scopeObject;
-      } else {
-        object[name] = new Code(functionString, scopeObject);
-      }
-    } else if (elementType === BSON.BSON_DATA_DBPOINTER) {
-      // Get the code string size
-      stringSize =
-        buffer[index++] |
-        (buffer[index++] << 8) |
-        (buffer[index++] << 16) |
-        (buffer[index++] << 24);
-      // Check if we have a valid string
-      if (
-        stringSize <= 0 ||
-        stringSize > buffer.length - index ||
-        buffer[index + stringSize - 1] !== 0
-      )
-        throw new Error('bad string length in bson');
-      // Namespace
-      var namespace = buffer.toString('utf8', index, index + stringSize - 1);
-      // Update parse index position
-      index = index + stringSize;
-
-      // Read the oid
-      var oidBuffer = utils.allocBuffer(12);
-      buffer.copy(oidBuffer, 0, index, index + 12);
-      oid = new ObjectID(oidBuffer);
-
-      // Update the index
-      index = index + 12;
-
-      // Split the namespace
-      var parts = namespace.split('.');
-      var db = parts.shift();
-      var collection = parts.join('.');
-      // Upgrade to DBRef type
-      object[name] = new DBRef(collection, oid, db);
-    } else {
-      throw new Error(
-        'Detected unknown BSON type ' +
-          elementType.toString(16) +
-          ' for fieldname "' +
-          name +
-          '", are you using the latest BSON parser'
-      );
-    }
-  }
-
-  // Check if the deserialization was against a valid array/object
-  if (size !== index - startIndex) {
-    if (isArray) throw new Error('corrupt array bson');
-    throw new Error('corrupt object bson');
-  }
-
-  // Check if we have a db ref object
-  if (object['$id'] != null) object = new DBRef(object['$ref'], object['$id'], object['$db']);
-  return object;
-};
-
-/**
- * Ensure eval is isolated.
- *
- * @ignore
- * @api private
- */
-var isolateEvalWithHash = function(functionCache, hash, functionString, object) {
-  // Contains the value we are going to set
-  var value = null;
-
-  // Check for cache hit, eval if missing and return cached function
-  if (functionCache[hash] == null) {
-    eval('value = ' + functionString);
-    functionCache[hash] = value;
-  }
-  // Set the object
-  return functionCache[hash].bind(object);
-};
-
-/**
- * Ensure eval is isolated.
- *
- * @ignore
- * @api private
- */
-var isolateEval = function(functionString) {
-  // Contains the value we are going to set
-  var value = null;
-  // Eval the function
-  eval('value = ' + functionString);
-  return value;
-};
-
-var BSON = {};
-
-/**
- * Contains the function cache if we have that enable to allow for avoiding the eval step on each deserialization, comparison is by md5
- *
- * @ignore
- * @api private
- */
-var functionCache = (BSON.functionCache = {});
-
-/**
- * Number BSON Type
- *
- * @classconstant BSON_DATA_NUMBER
- **/
-BSON.BSON_DATA_NUMBER = 1;
-/**
- * String BSON Type
- *
- * @classconstant BSON_DATA_STRING
- **/
-BSON.BSON_DATA_STRING = 2;
-/**
- * Object BSON Type
- *
- * @classconstant BSON_DATA_OBJECT
- **/
-BSON.BSON_DATA_OBJECT = 3;
-/**
- * Array BSON Type
- *
- * @classconstant BSON_DATA_ARRAY
- **/
-BSON.BSON_DATA_ARRAY = 4;
-/**
- * Binary BSON Type
- *
- * @classconstant BSON_DATA_BINARY
- **/
-BSON.BSON_DATA_BINARY = 5;
-/**
- * Binary BSON Type
- *
- * @classconstant BSON_DATA_UNDEFINED
- **/
-BSON.BSON_DATA_UNDEFINED = 6;
-/**
- * ObjectID BSON Type
- *
- * @classconstant BSON_DATA_OID
- **/
-BSON.BSON_DATA_OID = 7;
-/**
- * Boolean BSON Type
- *
- * @classconstant BSON_DATA_BOOLEAN
- **/
-BSON.BSON_DATA_BOOLEAN = 8;
-/**
- * Date BSON Type
- *
- * @classconstant BSON_DATA_DATE
- **/
-BSON.BSON_DATA_DATE = 9;
-/**
- * null BSON Type
- *
- * @classconstant BSON_DATA_NULL
- **/
-BSON.BSON_DATA_NULL = 10;
-/**
- * RegExp BSON Type
- *
- * @classconstant BSON_DATA_REGEXP
- **/
-BSON.BSON_DATA_REGEXP = 11;
-/**
- * Code BSON Type
- *
- * @classconstant BSON_DATA_DBPOINTER
- **/
-BSON.BSON_DATA_DBPOINTER = 12;
-/**
- * Code BSON Type
- *
- * @classconstant BSON_DATA_CODE
- **/
-BSON.BSON_DATA_CODE = 13;
-/**
- * Symbol BSON Type
- *
- * @classconstant BSON_DATA_SYMBOL
- **/
-BSON.BSON_DATA_SYMBOL = 14;
-/**
- * Code with Scope BSON Type
- *
- * @classconstant BSON_DATA_CODE_W_SCOPE
- **/
-BSON.BSON_DATA_CODE_W_SCOPE = 15;
-/**
- * 32 bit Integer BSON Type
- *
- * @classconstant BSON_DATA_INT
- **/
-BSON.BSON_DATA_INT = 16;
-/**
- * Timestamp BSON Type
- *
- * @classconstant BSON_DATA_TIMESTAMP
- **/
-BSON.BSON_DATA_TIMESTAMP = 17;
-/**
- * Long BSON Type
- *
- * @classconstant BSON_DATA_LONG
- **/
-BSON.BSON_DATA_LONG = 18;
-/**
- * Long BSON Type
- *
- * @classconstant BSON_DATA_DECIMAL128
- **/
-BSON.BSON_DATA_DECIMAL128 = 19;
-/**
- * MinKey BSON Type
- *
- * @classconstant BSON_DATA_MIN_KEY
- **/
-BSON.BSON_DATA_MIN_KEY = 0xff;
-/**
- * MaxKey BSON Type
- *
- * @classconstant BSON_DATA_MAX_KEY
- **/
-BSON.BSON_DATA_MAX_KEY = 0x7f;
-
-/**
- * Binary Default Type
- *
- * @classconstant BSON_BINARY_SUBTYPE_DEFAULT
- **/
-BSON.BSON_BINARY_SUBTYPE_DEFAULT = 0;
-/**
- * Binary Function Type
- *
- * @classconstant BSON_BINARY_SUBTYPE_FUNCTION
- **/
-BSON.BSON_BINARY_SUBTYPE_FUNCTION = 1;
-/**
- * Binary Byte Array Type
- *
- * @classconstant BSON_BINARY_SUBTYPE_BYTE_ARRAY
- **/
-BSON.BSON_BINARY_SUBTYPE_BYTE_ARRAY = 2;
-/**
- * Binary UUID Type
- *
- * @classconstant BSON_BINARY_SUBTYPE_UUID
- **/
-BSON.BSON_BINARY_SUBTYPE_UUID = 3;
-/**
- * Binary MD5 Type
- *
- * @classconstant BSON_BINARY_SUBTYPE_MD5
- **/
-BSON.BSON_BINARY_SUBTYPE_MD5 = 4;
-/**
- * Binary User Defined Type
- *
- * @classconstant BSON_BINARY_SUBTYPE_USER_DEFINED
- **/
-BSON.BSON_BINARY_SUBTYPE_USER_DEFINED = 128;
-
-// BSON MAX VALUES
-BSON.BSON_INT32_MAX = 0x7fffffff;
-BSON.BSON_INT32_MIN = -0x80000000;
-
-BSON.BSON_INT64_MAX = Math.pow(2, 63) - 1;
-BSON.BSON_INT64_MIN = -Math.pow(2, 63);
-
-// JS MAX PRECISE VALUES
-BSON.JS_INT_MAX = 0x20000000000000; // Any integer up to 2^53 can be precisely represented by a double.
-BSON.JS_INT_MIN = -0x20000000000000; // Any integer down to -2^53 can be precisely represented by a double.
-
-// Internal long versions
-var JS_INT_MAX_LONG = Long.fromNumber(0x20000000000000); // Any integer up to 2^53 can be precisely represented by a double.
-var JS_INT_MIN_LONG = Long.fromNumber(-0x20000000000000); // Any integer down to -2^53 can be precisely represented by a double.
-
-module.exports = deserialize;

File diff suppressed because it is too large
+ 0 - 1182
node_modules/bson/lib/bson/parser/serializer.js


+ 0 - 28
node_modules/bson/lib/bson/parser/utils.js

@@ -1,28 +0,0 @@
-'use strict';
-
-/**
- * Normalizes our expected stringified form of a function across versions of node
- * @param {Function} fn The function to stringify
- */
-function normalizedFunctionString(fn) {
-  return fn.toString().replace(/function *\(/, 'function (');
-}
-
-function newBuffer(item, encoding) {
-  return new Buffer(item, encoding);
-}
-
-function allocBuffer() {
-  return Buffer.alloc.apply(Buffer, arguments);
-}
-
-function toBuffer() {
-  return Buffer.from.apply(Buffer, arguments);
-}
-
-module.exports = {
-  normalizedFunctionString: normalizedFunctionString,
-  allocBuffer: typeof Buffer.alloc === 'function' ? allocBuffer : newBuffer,
-  toBuffer: typeof Buffer.from === 'function' ? toBuffer : newBuffer
-};
-

+ 0 - 33
node_modules/bson/lib/bson/regexp.js

@@ -1,33 +0,0 @@
-/**
- * A class representation of the BSON RegExp type.
- *
- * @class
- * @return {BSONRegExp} A MinKey instance
- */
-function BSONRegExp(pattern, options) {
-  if (!(this instanceof BSONRegExp)) return new BSONRegExp();
-
-  // Execute
-  this._bsontype = 'BSONRegExp';
-  this.pattern = pattern || '';
-  this.options = options || '';
-
-  // Validate options
-  for (var i = 0; i < this.options.length; i++) {
-    if (
-      !(
-        this.options[i] === 'i' ||
-        this.options[i] === 'm' ||
-        this.options[i] === 'x' ||
-        this.options[i] === 'l' ||
-        this.options[i] === 's' ||
-        this.options[i] === 'u'
-      )
-    ) {
-      throw new Error('the regular expression options [' + this.options[i] + '] is not supported');
-    }
-  }
-}
-
-module.exports = BSONRegExp;
-module.exports.BSONRegExp = BSONRegExp;

+ 0 - 50
node_modules/bson/lib/bson/symbol.js

@@ -1,50 +0,0 @@
-// Custom inspect property name / symbol.
-var inspect = Buffer ? require('util').inspect.custom || 'inspect' : 'inspect';
-
-/**
- * A class representation of the BSON Symbol type.
- *
- * @class
- * @deprecated
- * @param {string} value the string representing the symbol.
- * @return {Symbol}
- */
-function Symbol(value) {
-  if (!(this instanceof Symbol)) return new Symbol(value);
-  this._bsontype = 'Symbol';
-  this.value = value;
-}
-
-/**
- * Access the wrapped string value.
- *
- * @method
- * @return {String} returns the wrapped string.
- */
-Symbol.prototype.valueOf = function() {
-  return this.value;
-};
-
-/**
- * @ignore
- */
-Symbol.prototype.toString = function() {
-  return this.value;
-};
-
-/**
- * @ignore
- */
-Symbol.prototype[inspect] = function() {
-  return this.value;
-};
-
-/**
- * @ignore
- */
-Symbol.prototype.toJSON = function() {
-  return this.value;
-};
-
-module.exports = Symbol;
-module.exports.Symbol = Symbol;

+ 0 - 854
node_modules/bson/lib/bson/timestamp.js

@@ -1,854 +0,0 @@
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// Copyright 2009 Google Inc. All Rights Reserved
-
-/**
- * This type is for INTERNAL use in MongoDB only and should not be used in applications.
- * The appropriate corresponding type is the JavaScript Date type.
- * 
- * Defines a Timestamp class for representing a 64-bit two's-complement
- * integer value, which faithfully simulates the behavior of a Java "Timestamp". This
- * implementation is derived from TimestampLib in GWT.
- *
- * Constructs a 64-bit two's-complement integer, given its low and high 32-bit
- * values as *signed* integers.  See the from* functions below for more
- * convenient ways of constructing Timestamps.
- *
- * The internal representation of a Timestamp is the two given signed, 32-bit values.
- * We use 32-bit pieces because these are the size of integers on which
- * Javascript performs bit-operations.  For operations like addition and
- * multiplication, we split each number into 16-bit pieces, which can easily be
- * multiplied within Javascript's floating-point representation without overflow
- * or change in sign.
- *
- * In the algorithms below, we frequently reduce the negative case to the
- * positive case by negating the input(s) and then post-processing the result.
- * Note that we must ALWAYS check specially whether those values are MIN_VALUE
- * (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as
- * a positive number, it overflows back into a negative).  Not handling this
- * case would often result in infinite recursion.
- *
- * @class
- * @param {number} low  the low (signed) 32 bits of the Timestamp.
- * @param {number} high the high (signed) 32 bits of the Timestamp.
- */
-function Timestamp(low, high) {
-  if (!(this instanceof Timestamp)) return new Timestamp(low, high);
-  this._bsontype = 'Timestamp';
-  /**
-   * @type {number}
-   * @ignore
-   */
-  this.low_ = low | 0; // force into 32 signed bits.
-
-  /**
-   * @type {number}
-   * @ignore
-   */
-  this.high_ = high | 0; // force into 32 signed bits.
-}
-
-/**
- * Return the int value.
- *
- * @return {number} the value, assuming it is a 32-bit integer.
- */
-Timestamp.prototype.toInt = function() {
-  return this.low_;
-};
-
-/**
- * Return the Number value.
- *
- * @method
- * @return {number} the closest floating-point representation to this value.
- */
-Timestamp.prototype.toNumber = function() {
-  return this.high_ * Timestamp.TWO_PWR_32_DBL_ + this.getLowBitsUnsigned();
-};
-
-/**
- * Return the JSON value.
- *
- * @method
- * @return {string} the JSON representation.
- */
-Timestamp.prototype.toJSON = function() {
-  return this.toString();
-};
-
-/**
- * Return the String value.
- *
- * @method
- * @param {number} [opt_radix] the radix in which the text should be written.
- * @return {string} the textual representation of this value.
- */
-Timestamp.prototype.toString = function(opt_radix) {
-  var radix = opt_radix || 10;
-  if (radix < 2 || 36 < radix) {
-    throw Error('radix out of range: ' + radix);
-  }
-
-  if (this.isZero()) {
-    return '0';
-  }
-
-  if (this.isNegative()) {
-    if (this.equals(Timestamp.MIN_VALUE)) {
-      // We need to change the Timestamp value before it can be negated, so we remove
-      // the bottom-most digit in this base and then recurse to do the rest.
-      var radixTimestamp = Timestamp.fromNumber(radix);
-      var div = this.div(radixTimestamp);
-      var rem = div.multiply(radixTimestamp).subtract(this);
-      return div.toString(radix) + rem.toInt().toString(radix);
-    } else {
-      return '-' + this.negate().toString(radix);
-    }
-  }
-
-  // Do several (6) digits each time through the loop, so as to
-  // minimize the calls to the very expensive emulated div.
-  var radixToPower = Timestamp.fromNumber(Math.pow(radix, 6));
-
-  rem = this;
-  var result = '';
-
-  while (!rem.isZero()) {
-    var remDiv = rem.div(radixToPower);
-    var intval = rem.subtract(remDiv.multiply(radixToPower)).toInt();
-    var digits = intval.toString(radix);
-
-    rem = remDiv;
-    if (rem.isZero()) {
-      return digits + result;
-    } else {
-      while (digits.length < 6) {
-        digits = '0' + digits;
-      }
-      result = '' + digits + result;
-    }
-  }
-};
-
-/**
- * Return the high 32-bits value.
- *
- * @method
- * @return {number} the high 32-bits as a signed value.
- */
-Timestamp.prototype.getHighBits = function() {
-  return this.high_;
-};
-
-/**
- * Return the low 32-bits value.
- *
- * @method
- * @return {number} the low 32-bits as a signed value.
- */
-Timestamp.prototype.getLowBits = function() {
-  return this.low_;
-};
-
-/**
- * Return the low unsigned 32-bits value.
- *
- * @method
- * @return {number} the low 32-bits as an unsigned value.
- */
-Timestamp.prototype.getLowBitsUnsigned = function() {
-  return this.low_ >= 0 ? this.low_ : Timestamp.TWO_PWR_32_DBL_ + this.low_;
-};
-
-/**
- * Returns the number of bits needed to represent the absolute value of this Timestamp.
- *
- * @method
- * @return {number} Returns the number of bits needed to represent the absolute value of this Timestamp.
- */
-Timestamp.prototype.getNumBitsAbs = function() {
-  if (this.isNegative()) {
-    if (this.equals(Timestamp.MIN_VALUE)) {
-      return 64;
-    } else {
-      return this.negate().getNumBitsAbs();
-    }
-  } else {
-    var val = this.high_ !== 0 ? this.high_ : this.low_;
-    for (var bit = 31; bit > 0; bit--) {
-      if ((val & (1 << bit)) !== 0) {
-        break;
-      }
-    }
-    return this.high_ !== 0 ? bit + 33 : bit + 1;
-  }
-};
-
-/**
- * Return whether this value is zero.
- *
- * @method
- * @return {boolean} whether this value is zero.
- */
-Timestamp.prototype.isZero = function() {
-  return this.high_ === 0 && this.low_ === 0;
-};
-
-/**
- * Return whether this value is negative.
- *
- * @method
- * @return {boolean} whether this value is negative.
- */
-Timestamp.prototype.isNegative = function() {
-  return this.high_ < 0;
-};
-
-/**
- * Return whether this value is odd.
- *
- * @method
- * @return {boolean} whether this value is odd.
- */
-Timestamp.prototype.isOdd = function() {
-  return (this.low_ & 1) === 1;
-};
-
-/**
- * Return whether this Timestamp equals the other
- *
- * @method
- * @param {Timestamp} other Timestamp to compare against.
- * @return {boolean} whether this Timestamp equals the other
- */
-Timestamp.prototype.equals = function(other) {
-  return this.high_ === other.high_ && this.low_ === other.low_;
-};
-
-/**
- * Return whether this Timestamp does not equal the other.
- *
- * @method
- * @param {Timestamp} other Timestamp to compare against.
- * @return {boolean} whether this Timestamp does not equal the other.
- */
-Timestamp.prototype.notEquals = function(other) {
-  return this.high_ !== other.high_ || this.low_ !== other.low_;
-};
-
-/**
- * Return whether this Timestamp is less than the other.
- *
- * @method
- * @param {Timestamp} other Timestamp to compare against.
- * @return {boolean} whether this Timestamp is less than the other.
- */
-Timestamp.prototype.lessThan = function(other) {
-  return this.compare(other) < 0;
-};
-
-/**
- * Return whether this Timestamp is less than or equal to the other.
- *
- * @method
- * @param {Timestamp} other Timestamp to compare against.
- * @return {boolean} whether this Timestamp is less than or equal to the other.
- */
-Timestamp.prototype.lessThanOrEqual = function(other) {
-  return this.compare(other) <= 0;
-};
-
-/**
- * Return whether this Timestamp is greater than the other.
- *
- * @method
- * @param {Timestamp} other Timestamp to compare against.
- * @return {boolean} whether this Timestamp is greater than the other.
- */
-Timestamp.prototype.greaterThan = function(other) {
-  return this.compare(other) > 0;
-};
-
-/**
- * Return whether this Timestamp is greater than or equal to the other.
- *
- * @method
- * @param {Timestamp} other Timestamp to compare against.
- * @return {boolean} whether this Timestamp is greater than or equal to the other.
- */
-Timestamp.prototype.greaterThanOrEqual = function(other) {
-  return this.compare(other) >= 0;
-};
-
-/**
- * Compares this Timestamp with the given one.
- *
- * @method
- * @param {Timestamp} other Timestamp to compare against.
- * @return {boolean} 0 if they are the same, 1 if the this is greater, and -1 if the given one is greater.
- */
-Timestamp.prototype.compare = function(other) {
-  if (this.equals(other)) {
-    return 0;
-  }
-
-  var thisNeg = this.isNegative();
-  var otherNeg = other.isNegative();
-  if (thisNeg && !otherNeg) {
-    return -1;
-  }
-  if (!thisNeg && otherNeg) {
-    return 1;
-  }
-
-  // at this point, the signs are the same, so subtraction will not overflow
-  if (this.subtract(other).isNegative()) {
-    return -1;
-  } else {
-    return 1;
-  }
-};
-
-/**
- * The negation of this value.
- *
- * @method
- * @return {Timestamp} the negation of this value.
- */
-Timestamp.prototype.negate = function() {
-  if (this.equals(Timestamp.MIN_VALUE)) {
-    return Timestamp.MIN_VALUE;
-  } else {
-    return this.not().add(Timestamp.ONE);
-  }
-};
-
-/**
- * Returns the sum of this and the given Timestamp.
- *
- * @method
- * @param {Timestamp} other Timestamp to add to this one.
- * @return {Timestamp} the sum of this and the given Timestamp.
- */
-Timestamp.prototype.add = function(other) {
-  // Divide each number into 4 chunks of 16 bits, and then sum the chunks.
-
-  var a48 = this.high_ >>> 16;
-  var a32 = this.high_ & 0xffff;
-  var a16 = this.low_ >>> 16;
-  var a00 = this.low_ & 0xffff;
-
-  var b48 = other.high_ >>> 16;
-  var b32 = other.high_ & 0xffff;
-  var b16 = other.low_ >>> 16;
-  var b00 = other.low_ & 0xffff;
-
-  var c48 = 0,
-    c32 = 0,
-    c16 = 0,
-    c00 = 0;
-  c00 += a00 + b00;
-  c16 += c00 >>> 16;
-  c00 &= 0xffff;
-  c16 += a16 + b16;
-  c32 += c16 >>> 16;
-  c16 &= 0xffff;
-  c32 += a32 + b32;
-  c48 += c32 >>> 16;
-  c32 &= 0xffff;
-  c48 += a48 + b48;
-  c48 &= 0xffff;
-  return Timestamp.fromBits((c16 << 16) | c00, (c48 << 16) | c32);
-};
-
-/**
- * Returns the difference of this and the given Timestamp.
- *
- * @method
- * @param {Timestamp} other Timestamp to subtract from this.
- * @return {Timestamp} the difference of this and the given Timestamp.
- */
-Timestamp.prototype.subtract = function(other) {
-  return this.add(other.negate());
-};
-
-/**
- * Returns the product of this and the given Timestamp.
- *
- * @method
- * @param {Timestamp} other Timestamp to multiply with this.
- * @return {Timestamp} the product of this and the other.
- */
-Timestamp.prototype.multiply = function(other) {
-  if (this.isZero()) {
-    return Timestamp.ZERO;
-  } else if (other.isZero()) {
-    return Timestamp.ZERO;
-  }
-
-  if (this.equals(Timestamp.MIN_VALUE)) {
-    return other.isOdd() ? Timestamp.MIN_VALUE : Timestamp.ZERO;
-  } else if (other.equals(Timestamp.MIN_VALUE)) {
-    return this.isOdd() ? Timestamp.MIN_VALUE : Timestamp.ZERO;
-  }
-
-  if (this.isNegative()) {
-    if (other.isNegative()) {
-      return this.negate().multiply(other.negate());
-    } else {
-      return this.negate()
-        .multiply(other)
-        .negate();
-    }
-  } else if (other.isNegative()) {
-    return this.multiply(other.negate()).negate();
-  }
-
-  // If both Timestamps are small, use float multiplication
-  if (this.lessThan(Timestamp.TWO_PWR_24_) && other.lessThan(Timestamp.TWO_PWR_24_)) {
-    return Timestamp.fromNumber(this.toNumber() * other.toNumber());
-  }
-
-  // Divide each Timestamp into 4 chunks of 16 bits, and then add up 4x4 products.
-  // We can skip products that would overflow.
-
-  var a48 = this.high_ >>> 16;
-  var a32 = this.high_ & 0xffff;
-  var a16 = this.low_ >>> 16;
-  var a00 = this.low_ & 0xffff;
-
-  var b48 = other.high_ >>> 16;
-  var b32 = other.high_ & 0xffff;
-  var b16 = other.low_ >>> 16;
-  var b00 = other.low_ & 0xffff;
-
-  var c48 = 0,
-    c32 = 0,
-    c16 = 0,
-    c00 = 0;
-  c00 += a00 * b00;
-  c16 += c00 >>> 16;
-  c00 &= 0xffff;
-  c16 += a16 * b00;
-  c32 += c16 >>> 16;
-  c16 &= 0xffff;
-  c16 += a00 * b16;
-  c32 += c16 >>> 16;
-  c16 &= 0xffff;
-  c32 += a32 * b00;
-  c48 += c32 >>> 16;
-  c32 &= 0xffff;
-  c32 += a16 * b16;
-  c48 += c32 >>> 16;
-  c32 &= 0xffff;
-  c32 += a00 * b32;
-  c48 += c32 >>> 16;
-  c32 &= 0xffff;
-  c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;
-  c48 &= 0xffff;
-  return Timestamp.fromBits((c16 << 16) | c00, (c48 << 16) | c32);
-};
-
-/**
- * Returns this Timestamp divided by the given one.
- *
- * @method
- * @param {Timestamp} other Timestamp by which to divide.
- * @return {Timestamp} this Timestamp divided by the given one.
- */
-Timestamp.prototype.div = function(other) {
-  if (other.isZero()) {
-    throw Error('division by zero');
-  } else if (this.isZero()) {
-    return Timestamp.ZERO;
-  }
-
-  if (this.equals(Timestamp.MIN_VALUE)) {
-    if (other.equals(Timestamp.ONE) || other.equals(Timestamp.NEG_ONE)) {
-      return Timestamp.MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE
-    } else if (other.equals(Timestamp.MIN_VALUE)) {
-      return Timestamp.ONE;
-    } else {
-      // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.
-      var halfThis = this.shiftRight(1);
-      var approx = halfThis.div(other).shiftLeft(1);
-      if (approx.equals(Timestamp.ZERO)) {
-        return other.isNegative() ? Timestamp.ONE : Timestamp.NEG_ONE;
-      } else {
-        var rem = this.subtract(other.multiply(approx));
-        var result = approx.add(rem.div(other));
-        return result;
-      }
-    }
-  } else if (other.equals(Timestamp.MIN_VALUE)) {
-    return Timestamp.ZERO;
-  }
-
-  if (this.isNegative()) {
-    if (other.isNegative()) {
-      return this.negate().div(other.negate());
-    } else {
-      return this.negate()
-        .div(other)
-        .negate();
-    }
-  } else if (other.isNegative()) {
-    return this.div(other.negate()).negate();
-  }
-
-  // Repeat the following until the remainder is less than other:  find a
-  // floating-point that approximates remainder / other *from below*, add this
-  // into the result, and subtract it from the remainder.  It is critical that
-  // the approximate value is less than or equal to the real value so that the
-  // remainder never becomes negative.
-  var res = Timestamp.ZERO;
-  rem = this;
-  while (rem.greaterThanOrEqual(other)) {
-    // Approximate the result of division. This may be a little greater or
-    // smaller than the actual value.
-    approx = Math.max(1, Math.floor(rem.toNumber() / other.toNumber()));
-
-    // We will tweak the approximate result by changing it in the 48-th digit or
-    // the smallest non-fractional digit, whichever is larger.
-    var log2 = Math.ceil(Math.log(approx) / Math.LN2);
-    var delta = log2 <= 48 ? 1 : Math.pow(2, log2 - 48);
-
-    // Decrease the approximation until it is smaller than the remainder.  Note
-    // that if it is too large, the product overflows and is negative.
-    var approxRes = Timestamp.fromNumber(approx);
-    var approxRem = approxRes.multiply(other);
-    while (approxRem.isNegative() || approxRem.greaterThan(rem)) {
-      approx -= delta;
-      approxRes = Timestamp.fromNumber(approx);
-      approxRem = approxRes.multiply(other);
-    }
-
-    // We know the answer can't be zero... and actually, zero would cause
-    // infinite recursion since we would make no progress.
-    if (approxRes.isZero()) {
-      approxRes = Timestamp.ONE;
-    }
-
-    res = res.add(approxRes);
-    rem = rem.subtract(approxRem);
-  }
-  return res;
-};
-
-/**
- * Returns this Timestamp modulo the given one.
- *
- * @method
- * @param {Timestamp} other Timestamp by which to mod.
- * @return {Timestamp} this Timestamp modulo the given one.
- */
-Timestamp.prototype.modulo = function(other) {
-  return this.subtract(this.div(other).multiply(other));
-};
-
-/**
- * The bitwise-NOT of this value.
- *
- * @method
- * @return {Timestamp} the bitwise-NOT of this value.
- */
-Timestamp.prototype.not = function() {
-  return Timestamp.fromBits(~this.low_, ~this.high_);
-};
-
-/**
- * Returns the bitwise-AND of this Timestamp and the given one.
- *
- * @method
- * @param {Timestamp} other the Timestamp with which to AND.
- * @return {Timestamp} the bitwise-AND of this and the other.
- */
-Timestamp.prototype.and = function(other) {
-  return Timestamp.fromBits(this.low_ & other.low_, this.high_ & other.high_);
-};
-
-/**
- * Returns the bitwise-OR of this Timestamp and the given one.
- *
- * @method
- * @param {Timestamp} other the Timestamp with which to OR.
- * @return {Timestamp} the bitwise-OR of this and the other.
- */
-Timestamp.prototype.or = function(other) {
-  return Timestamp.fromBits(this.low_ | other.low_, this.high_ | other.high_);
-};
-
-/**
- * Returns the bitwise-XOR of this Timestamp and the given one.
- *
- * @method
- * @param {Timestamp} other the Timestamp with which to XOR.
- * @return {Timestamp} the bitwise-XOR of this and the other.
- */
-Timestamp.prototype.xor = function(other) {
-  return Timestamp.fromBits(this.low_ ^ other.low_, this.high_ ^ other.high_);
-};
-
-/**
- * Returns this Timestamp with bits shifted to the left by the given amount.
- *
- * @method
- * @param {number} numBits the number of bits by which to shift.
- * @return {Timestamp} this shifted to the left by the given amount.
- */
-Timestamp.prototype.shiftLeft = function(numBits) {
-  numBits &= 63;
-  if (numBits === 0) {
-    return this;
-  } else {
-    var low = this.low_;
-    if (numBits < 32) {
-      var high = this.high_;
-      return Timestamp.fromBits(low << numBits, (high << numBits) | (low >>> (32 - numBits)));
-    } else {
-      return Timestamp.fromBits(0, low << (numBits - 32));
-    }
-  }
-};
-
-/**
- * Returns this Timestamp with bits shifted to the right by the given amount.
- *
- * @method
- * @param {number} numBits the number of bits by which to shift.
- * @return {Timestamp} this shifted to the right by the given amount.
- */
-Timestamp.prototype.shiftRight = function(numBits) {
-  numBits &= 63;
-  if (numBits === 0) {
-    return this;
-  } else {
-    var high = this.high_;
-    if (numBits < 32) {
-      var low = this.low_;
-      return Timestamp.fromBits((low >>> numBits) | (high << (32 - numBits)), high >> numBits);
-    } else {
-      return Timestamp.fromBits(high >> (numBits - 32), high >= 0 ? 0 : -1);
-    }
-  }
-};
-
-/**
- * Returns this Timestamp with bits shifted to the right by the given amount, with the new top bits matching the current sign bit.
- *
- * @method
- * @param {number} numBits the number of bits by which to shift.
- * @return {Timestamp} this shifted to the right by the given amount, with zeros placed into the new leading bits.
- */
-Timestamp.prototype.shiftRightUnsigned = function(numBits) {
-  numBits &= 63;
-  if (numBits === 0) {
-    return this;
-  } else {
-    var high = this.high_;
-    if (numBits < 32) {
-      var low = this.low_;
-      return Timestamp.fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits);
-    } else if (numBits === 32) {
-      return Timestamp.fromBits(high, 0);
-    } else {
-      return Timestamp.fromBits(high >>> (numBits - 32), 0);
-    }
-  }
-};
-
-/**
- * Returns a Timestamp representing the given (32-bit) integer value.
- *
- * @method
- * @param {number} value the 32-bit integer in question.
- * @return {Timestamp} the corresponding Timestamp value.
- */
-Timestamp.fromInt = function(value) {
-  if (-128 <= value && value < 128) {
-    var cachedObj = Timestamp.INT_CACHE_[value];
-    if (cachedObj) {
-      return cachedObj;
-    }
-  }
-
-  var obj = new Timestamp(value | 0, value < 0 ? -1 : 0);
-  if (-128 <= value && value < 128) {
-    Timestamp.INT_CACHE_[value] = obj;
-  }
-  return obj;
-};
-
-/**
- * Returns a Timestamp representing the given value, provided that it is a finite number. Otherwise, zero is returned.
- *
- * @method
- * @param {number} value the number in question.
- * @return {Timestamp} the corresponding Timestamp value.
- */
-Timestamp.fromNumber = function(value) {
-  if (isNaN(value) || !isFinite(value)) {
-    return Timestamp.ZERO;
-  } else if (value <= -Timestamp.TWO_PWR_63_DBL_) {
-    return Timestamp.MIN_VALUE;
-  } else if (value + 1 >= Timestamp.TWO_PWR_63_DBL_) {
-    return Timestamp.MAX_VALUE;
-  } else if (value < 0) {
-    return Timestamp.fromNumber(-value).negate();
-  } else {
-    return new Timestamp(
-      (value % Timestamp.TWO_PWR_32_DBL_) | 0,
-      (value / Timestamp.TWO_PWR_32_DBL_) | 0
-    );
-  }
-};
-
-/**
- * Returns a Timestamp representing the 64-bit integer that comes by concatenating the given high and low bits. Each is assumed to use 32 bits.
- *
- * @method
- * @param {number} lowBits the low 32-bits.
- * @param {number} highBits the high 32-bits.
- * @return {Timestamp} the corresponding Timestamp value.
- */
-Timestamp.fromBits = function(lowBits, highBits) {
-  return new Timestamp(lowBits, highBits);
-};
-
-/**
- * Returns a Timestamp representation of the given string, written using the given radix.
- *
- * @method
- * @param {string} str the textual representation of the Timestamp.
- * @param {number} opt_radix the radix in which the text is written.
- * @return {Timestamp} the corresponding Timestamp value.
- */
-Timestamp.fromString = function(str, opt_radix) {
-  if (str.length === 0) {
-    throw Error('number format error: empty string');
-  }
-
-  var radix = opt_radix || 10;
-  if (radix < 2 || 36 < radix) {
-    throw Error('radix out of range: ' + radix);
-  }
-
-  if (str.charAt(0) === '-') {
-    return Timestamp.fromString(str.substring(1), radix).negate();
-  } else if (str.indexOf('-') >= 0) {
-    throw Error('number format error: interior "-" character: ' + str);
-  }
-
-  // Do several (8) digits each time through the loop, so as to
-  // minimize the calls to the very expensive emulated div.
-  var radixToPower = Timestamp.fromNumber(Math.pow(radix, 8));
-
-  var result = Timestamp.ZERO;
-  for (var i = 0; i < str.length; i += 8) {
-    var size = Math.min(8, str.length - i);
-    var value = parseInt(str.substring(i, i + size), radix);
-    if (size < 8) {
-      var power = Timestamp.fromNumber(Math.pow(radix, size));
-      result = result.multiply(power).add(Timestamp.fromNumber(value));
-    } else {
-      result = result.multiply(radixToPower);
-      result = result.add(Timestamp.fromNumber(value));
-    }
-  }
-  return result;
-};
-
-// NOTE: Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the
-// from* methods on which they depend.
-
-/**
- * A cache of the Timestamp representations of small integer values.
- * @type {Object}
- * @ignore
- */
-Timestamp.INT_CACHE_ = {};
-
-// NOTE: the compiler should inline these constant values below and then remove
-// these variables, so there should be no runtime penalty for these.
-
-/**
- * Number used repeated below in calculations.  This must appear before the
- * first call to any from* function below.
- * @type {number}
- * @ignore
- */
-Timestamp.TWO_PWR_16_DBL_ = 1 << 16;
-
-/**
- * @type {number}
- * @ignore
- */
-Timestamp.TWO_PWR_24_DBL_ = 1 << 24;
-
-/**
- * @type {number}
- * @ignore
- */
-Timestamp.TWO_PWR_32_DBL_ = Timestamp.TWO_PWR_16_DBL_ * Timestamp.TWO_PWR_16_DBL_;
-
-/**
- * @type {number}
- * @ignore
- */
-Timestamp.TWO_PWR_31_DBL_ = Timestamp.TWO_PWR_32_DBL_ / 2;
-
-/**
- * @type {number}
- * @ignore
- */
-Timestamp.TWO_PWR_48_DBL_ = Timestamp.TWO_PWR_32_DBL_ * Timestamp.TWO_PWR_16_DBL_;
-
-/**
- * @type {number}
- * @ignore
- */
-Timestamp.TWO_PWR_64_DBL_ = Timestamp.TWO_PWR_32_DBL_ * Timestamp.TWO_PWR_32_DBL_;
-
-/**
- * @type {number}
- * @ignore
- */
-Timestamp.TWO_PWR_63_DBL_ = Timestamp.TWO_PWR_64_DBL_ / 2;
-
-/** @type {Timestamp} */
-Timestamp.ZERO = Timestamp.fromInt(0);
-
-/** @type {Timestamp} */
-Timestamp.ONE = Timestamp.fromInt(1);
-
-/** @type {Timestamp} */
-Timestamp.NEG_ONE = Timestamp.fromInt(-1);
-
-/** @type {Timestamp} */
-Timestamp.MAX_VALUE = Timestamp.fromBits(0xffffffff | 0, 0x7fffffff | 0);
-
-/** @type {Timestamp} */
-Timestamp.MIN_VALUE = Timestamp.fromBits(0, 0x80000000 | 0);
-
-/**
- * @type {Timestamp}
- * @ignore
- */
-Timestamp.TWO_PWR_24_ = Timestamp.fromInt(1 << 24);
-
-/**
- * Expose.
- */
-module.exports = Timestamp;
-module.exports.Timestamp = Timestamp;

+ 0 - 90
node_modules/bson/package.json

@@ -1,90 +0,0 @@
-{
-  "_args": [
-    [
-      "bson@1.1.1",
-      "/home/asmer/work/alvl/mockbacks/shop"
-    ]
-  ],
-  "_from": "bson@1.1.1",
-  "_id": "bson@1.1.1",
-  "_inBundle": false,
-  "_integrity": "sha512-jCGVYLoYMHDkOsbwJZBCqwMHyH4c+wzgI9hG7Z6SZJRXWr+x58pdIbm2i9a/jFGCkRJqRUr8eoI7lDWa0hTkxg==",
-  "_location": "/bson",
-  "_phantomChildren": {},
-  "_requested": {
-    "type": "version",
-    "registry": true,
-    "raw": "bson@1.1.1",
-    "name": "bson",
-    "escapedName": "bson",
-    "rawSpec": "1.1.1",
-    "saveSpec": null,
-    "fetchSpec": "1.1.1"
-  },
-  "_requiredBy": [
-    "/mongodb"
-  ],
-  "_resolved": "https://registry.npmjs.org/bson/-/bson-1.1.1.tgz",
-  "_spec": "1.1.1",
-  "_where": "/home/asmer/work/alvl/mockbacks/shop",
-  "author": {
-    "name": "Christian Amor Kvalheim",
-    "email": "christkv@gmail.com"
-  },
-  "browser": "lib/bson/bson.js",
-  "bugs": {
-    "url": "https://github.com/mongodb/js-bson/issues"
-  },
-  "config": {
-    "native": false
-  },
-  "contributors": [],
-  "description": "A bson parser for node.js and the browser",
-  "devDependencies": {
-    "babel-core": "^6.14.0",
-    "babel-loader": "^6.2.5",
-    "babel-polyfill": "^6.13.0",
-    "babel-preset-es2015": "^6.14.0",
-    "babel-preset-stage-0": "^6.5.0",
-    "babel-register": "^6.14.0",
-    "benchmark": "1.0.0",
-    "colors": "1.1.0",
-    "conventional-changelog-cli": "^1.3.5",
-    "nodeunit": "0.9.0",
-    "webpack": "^1.13.2",
-    "webpack-polyfills-plugin": "0.0.9"
-  },
-  "directories": {
-    "lib": "./lib/bson"
-  },
-  "engines": {
-    "node": ">=0.6.19"
-  },
-  "files": [
-    "lib",
-    "index.js",
-    "browser_build",
-    "bower.json"
-  ],
-  "homepage": "https://github.com/mongodb/js-bson#readme",
-  "keywords": [
-    "mongodb",
-    "bson",
-    "parser"
-  ],
-  "license": "Apache-2.0",
-  "main": "./index",
-  "name": "bson",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/mongodb/js-bson.git"
-  },
-  "scripts": {
-    "build": "webpack --config ./webpack.dist.config.js",
-    "changelog": "conventional-changelog -p angular -i HISTORY.md -s",
-    "format": "prettier --print-width 100 --tab-width 2 --single-quote --write 'test/**/*.js' 'lib/**/*.js'",
-    "lint": "eslint lib test",
-    "test": "nodeunit ./test/node"
-  },
-  "version": "1.1.1"
-}

+ 0 - 2
node_modules/buffer-equal-constant-time/.npmignore

@@ -1,2 +0,0 @@
-.*.sw[mnop]
-node_modules/

+ 0 - 4
node_modules/buffer-equal-constant-time/.travis.yml

@@ -1,4 +0,0 @@
-language: node_js
-node_js:
-- "0.11"
-- "0.10"

File diff suppressed because it is too large
+ 0 - 12
node_modules/buffer-equal-constant-time/LICENSE.txt


+ 0 - 50
node_modules/buffer-equal-constant-time/README.md

@@ -1,50 +0,0 @@
-# buffer-equal-constant-time
-
-Constant-time `Buffer` comparison for node.js.  Should work with browserify too.
-
-[![Build Status](https://travis-ci.org/goinstant/buffer-equal-constant-time.png?branch=master)](https://travis-ci.org/goinstant/buffer-equal-constant-time)
-
-```sh
-  npm install buffer-equal-constant-time
-```
-
-# Usage
-
-```js
-  var bufferEq = require('buffer-equal-constant-time');
-
-  var a = new Buffer('asdf');
-  var b = new Buffer('asdf');
-  if (bufferEq(a,b)) {
-    // the same!
-  } else {
-    // different in at least one byte!
-  }
-```
-
-If you'd like to install an `.equal()` method onto the node.js `Buffer` and
-`SlowBuffer` prototypes:
-
-```js
-  require('buffer-equal-constant-time').install();
-
-  var a = new Buffer('asdf');
-  var b = new Buffer('asdf');
-  if (a.equal(b)) {
-    // the same!
-  } else {
-    // different in at least one byte!
-  }
-```
-
-To get rid of the installed `.equal()` method, call `.restore()`:
-
-```js
-  require('buffer-equal-constant-time').restore();
-```
-
-# Legal
-
-&copy; 2013 GoInstant Inc., a salesforce.com company
-
-Licensed under the BSD 3-clause license.

+ 0 - 41
node_modules/buffer-equal-constant-time/index.js

@@ -1,41 +0,0 @@
-/*jshint node:true */
-'use strict';
-var Buffer = require('buffer').Buffer; // browserify
-var SlowBuffer = require('buffer').SlowBuffer;
-
-module.exports = bufferEq;
-
-function bufferEq(a, b) {
-
-  // shortcutting on type is necessary for correctness
-  if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
-    return false;
-  }
-
-  // buffer sizes should be well-known information, so despite this
-  // shortcutting, it doesn't leak any information about the *contents* of the
-  // buffers.
-  if (a.length !== b.length) {
-    return false;
-  }
-
-  var c = 0;
-  for (var i = 0; i < a.length; i++) {
-    /*jshint bitwise:false */
-    c |= a[i] ^ b[i]; // XOR
-  }
-  return c === 0;
-}
-
-bufferEq.install = function() {
-  Buffer.prototype.equal = SlowBuffer.prototype.equal = function equal(that) {
-    return bufferEq(this, that);
-  };
-};
-
-var origBufEqual = Buffer.prototype.equal;
-var origSlowBufEqual = SlowBuffer.prototype.equal;
-bufferEq.restore = function() {
-  Buffer.prototype.equal = origBufEqual;
-  SlowBuffer.prototype.equal = origSlowBufEqual;
-};

+ 0 - 58
node_modules/buffer-equal-constant-time/package.json

@@ -1,58 +0,0 @@
-{
-  "_args": [
-    [
-      "buffer-equal-constant-time@1.0.1",
-      "/home/asmer/work/alvl/mockbacks/shop"
-    ]
-  ],
-  "_from": "buffer-equal-constant-time@1.0.1",
-  "_id": "buffer-equal-constant-time@1.0.1",
-  "_inBundle": false,
-  "_integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=",
-  "_location": "/buffer-equal-constant-time",
-  "_phantomChildren": {},
-  "_requested": {
-    "type": "version",
-    "registry": true,
-    "raw": "buffer-equal-constant-time@1.0.1",
-    "name": "buffer-equal-constant-time",
-    "escapedName": "buffer-equal-constant-time",
-    "rawSpec": "1.0.1",
-    "saveSpec": null,
-    "fetchSpec": "1.0.1"
-  },
-  "_requiredBy": [
-    "/jwa"
-  ],
-  "_resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
-  "_spec": "1.0.1",
-  "_where": "/home/asmer/work/alvl/mockbacks/shop",
-  "author": {
-    "name": "GoInstant Inc., a salesforce.com company"
-  },
-  "bugs": {
-    "url": "https://github.com/goinstant/buffer-equal-constant-time/issues"
-  },
-  "description": "Constant-time comparison of Buffers",
-  "devDependencies": {
-    "mocha": "~1.15.1"
-  },
-  "homepage": "https://github.com/goinstant/buffer-equal-constant-time#readme",
-  "keywords": [
-    "buffer",
-    "equal",
-    "constant-time",
-    "crypto"
-  ],
-  "license": "BSD-3-Clause",
-  "main": "index.js",
-  "name": "buffer-equal-constant-time",
-  "repository": {
-    "type": "git",
-    "url": "git+ssh://git@github.com/goinstant/buffer-equal-constant-time.git"
-  },
-  "scripts": {
-    "test": "mocha test.js"
-  },
-  "version": "1.0.1"
-}

+ 0 - 42
node_modules/buffer-equal-constant-time/test.js

@@ -1,42 +0,0 @@
-/*jshint node:true */
-'use strict';
-
-var bufferEq = require('./index');
-var assert = require('assert');
-
-describe('buffer-equal-constant-time', function() {
-  var a = new Buffer('asdfasdf123456');
-  var b = new Buffer('asdfasdf123456');
-  var c = new Buffer('asdfasdf');
-
-  describe('bufferEq', function() {
-    it('says a == b', function() {
-      assert.strictEqual(bufferEq(a, b), true);
-    });
-
-    it('says a != c', function() {
-      assert.strictEqual(bufferEq(a, c), false);
-    });
-  });
-
-  describe('install/restore', function() {
-    before(function() {
-      bufferEq.install();
-    });
-    after(function() {
-      bufferEq.restore();
-    });
-
-    it('installed an .equal method', function() {
-      var SlowBuffer = require('buffer').SlowBuffer;
-      assert.ok(Buffer.prototype.equal);
-      assert.ok(SlowBuffer.prototype.equal);
-    });
-
-    it('infected existing Buffers', function() {
-      assert.strictEqual(a.equal(b), true);
-      assert.strictEqual(a.equal(c), false);
-    });
-  });
-
-});

+ 0 - 21
node_modules/buffer-from/LICENSE

@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2016, 2018 Linus Unnebäck
-
-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.

+ 0 - 69
node_modules/buffer-from/index.js

@@ -1,69 +0,0 @@
-var toString = Object.prototype.toString
-
-var isModern = (
-  typeof Buffer.alloc === 'function' &&
-  typeof Buffer.allocUnsafe === 'function' &&
-  typeof Buffer.from === 'function'
-)
-
-function isArrayBuffer (input) {
-  return toString.call(input).slice(8, -1) === 'ArrayBuffer'
-}
-
-function fromArrayBuffer (obj, byteOffset, length) {
-  byteOffset >>>= 0
-
-  var maxLength = obj.byteLength - byteOffset
-
-  if (maxLength < 0) {
-    throw new RangeError("'offset' is out of bounds")
-  }
-
-  if (length === undefined) {
-    length = maxLength
-  } else {
-    length >>>= 0
-
-    if (length > maxLength) {
-      throw new RangeError("'length' is out of bounds")
-    }
-  }
-
-  return isModern
-    ? Buffer.from(obj.slice(byteOffset, byteOffset + length))
-    : new Buffer(new Uint8Array(obj.slice(byteOffset, byteOffset + length)))
-}
-
-function fromString (string, encoding) {
-  if (typeof encoding !== 'string' || encoding === '') {
-    encoding = 'utf8'
-  }
-
-  if (!Buffer.isEncoding(encoding)) {
-    throw new TypeError('"encoding" must be a valid string encoding')
-  }
-
-  return isModern
-    ? Buffer.from(string, encoding)
-    : new Buffer(string, encoding)
-}
-
-function bufferFrom (value, encodingOrOffset, length) {
-  if (typeof value === 'number') {
-    throw new TypeError('"value" argument must not be a number')
-  }
-
-  if (isArrayBuffer(value)) {
-    return fromArrayBuffer(value, encodingOrOffset, length)
-  }
-
-  if (typeof value === 'string') {
-    return fromString(value, encodingOrOffset)
-  }
-
-  return isModern
-    ? Buffer.from(value)
-    : new Buffer(value)
-}
-
-module.exports = bufferFrom

+ 0 - 55
node_modules/buffer-from/package.json

@@ -1,55 +0,0 @@
-{
-  "_args": [
-    [
-      "buffer-from@1.1.1",
-      "/home/asmer/work/alvl/mockbacks/shop"
-    ]
-  ],
-  "_from": "buffer-from@1.1.1",
-  "_id": "buffer-from@1.1.1",
-  "_inBundle": false,
-  "_integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
-  "_location": "/buffer-from",
-  "_phantomChildren": {},
-  "_requested": {
-    "type": "version",
-    "registry": true,
-    "raw": "buffer-from@1.1.1",
-    "name": "buffer-from",
-    "escapedName": "buffer-from",
-    "rawSpec": "1.1.1",
-    "saveSpec": null,
-    "fetchSpec": "1.1.1"
-  },
-  "_requiredBy": [
-    "/concat-stream"
-  ],
-  "_resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
-  "_spec": "1.1.1",
-  "_where": "/home/asmer/work/alvl/mockbacks/shop",
-  "bugs": {
-    "url": "https://github.com/LinusU/buffer-from/issues"
-  },
-  "description": "A [ponyfill](https://ponyfill.com) for `Buffer.from`, uses native implementation if available.",
-  "devDependencies": {
-    "standard": "^7.1.2"
-  },
-  "files": [
-    "index.js"
-  ],
-  "homepage": "https://github.com/LinusU/buffer-from#readme",
-  "keywords": [
-    "buffer",
-    "buffer from"
-  ],
-  "license": "MIT",
-  "name": "buffer-from",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/LinusU/buffer-from.git"
-  },
-  "scripts": {
-    "test": "standard && node test"
-  },
-  "version": "1.1.1"
-}

+ 0 - 69
node_modules/buffer-from/readme.md

@@ -1,69 +0,0 @@
-# Buffer From
-
-A [ponyfill](https://ponyfill.com) for `Buffer.from`, uses native implementation if available.
-
-## Installation
-
-```sh
-npm install --save buffer-from
-```
-
-## Usage
-
-```js
-const bufferFrom = require('buffer-from')
-
-console.log(bufferFrom([1, 2, 3, 4]))
-//=> <Buffer 01 02 03 04>
-
-const arr = new Uint8Array([1, 2, 3, 4])
-console.log(bufferFrom(arr.buffer, 1, 2))
-//=> <Buffer 02 03>
-
-console.log(bufferFrom('test', 'utf8'))
-//=> <Buffer 74 65 73 74>
-
-const buf = bufferFrom('test')
-console.log(bufferFrom(buf))
-//=> <Buffer 74 65 73 74>
-```
-
-## API
-
-### bufferFrom(array)
-
-- `array` &lt;Array&gt;
-
-Allocates a new `Buffer` using an `array` of octets.
-
-### bufferFrom(arrayBuffer[, byteOffset[, length]])
-
-- `arrayBuffer` &lt;ArrayBuffer&gt; The `.buffer` property of a TypedArray or ArrayBuffer
-- `byteOffset` &lt;Integer&gt; Where to start copying from `arrayBuffer`. **Default:** `0`
-- `length` &lt;Integer&gt; How many bytes to copy from `arrayBuffer`. **Default:** `arrayBuffer.length - byteOffset`
-
-When passed a reference to the `.buffer` property of a TypedArray instance, the
-newly created `Buffer` will share the same allocated memory as the TypedArray.
-
-The optional `byteOffset` and `length` arguments specify a memory range within
-the `arrayBuffer` that will be shared by the `Buffer`.
-
-### bufferFrom(buffer)
-
-- `buffer` &lt;Buffer&gt; An existing `Buffer` to copy data from
-
-Copies the passed `buffer` data onto a new `Buffer` instance.
-
-### bufferFrom(string[, encoding])
-
-- `string` &lt;String&gt; A string to encode.
-- `encoding` &lt;String&gt; The encoding of `string`. **Default:** `'utf8'`
-
-Creates a new `Buffer` containing the given JavaScript string `string`. If
-provided, the `encoding` parameter identifies the character encoding of
-`string`.
-
-## See also
-
-- [buffer-alloc](https://github.com/LinusU/buffer-alloc) A ponyfill for `Buffer.alloc`
-- [buffer-alloc-unsafe](https://github.com/LinusU/buffer-alloc-unsafe) A ponyfill for `Buffer.allocUnsafe`

+ 0 - 17
node_modules/busboy/.travis.yml

@@ -1,17 +0,0 @@
-sudo: false
-language: cpp
-notifications:
-  email: false
-env:
-  matrix:
-  - TRAVIS_NODE_VERSION="0.10"
-  - TRAVIS_NODE_VERSION="0.12"
-  - TRAVIS_NODE_VERSION="4"
-  - TRAVIS_NODE_VERSION="6"
-  - TRAVIS_NODE_VERSION="7"
-install:
-  - rm -rf ~/.nvm && git clone https://github.com/creationix/nvm.git ~/.nvm && source ~/.nvm/nvm.sh && nvm install $TRAVIS_NODE_VERSION
-  - node --version
-  - npm --version
-  - npm install
-script: npm test

+ 0 - 19
node_modules/busboy/LICENSE

@@ -1,19 +0,0 @@
-Copyright Brian White. All rights reserved.
-
-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.

File diff suppressed because it is too large
+ 0 - 225
node_modules/busboy/README.md


File diff suppressed because it is too large
+ 0 - 73
node_modules/busboy/deps/encoding/encoding-indexes.js


File diff suppressed because it is too large
+ 0 - 2391
node_modules/busboy/deps/encoding/encoding.js


+ 0 - 89
node_modules/busboy/lib/main.js

@@ -1,89 +0,0 @@
-var fs = require('fs'),
-    WritableStream = require('stream').Writable
-                     || require('readable-stream').Writable,
-    inherits = require('util').inherits;
-
-var parseParams = require('./utils').parseParams;
-
-function Busboy(opts) {
-  if (!(this instanceof Busboy))
-    return new Busboy(opts);
-  if (opts.highWaterMark !== undefined)
-    WritableStream.call(this, { highWaterMark: opts.highWaterMark });
-  else
-    WritableStream.call(this);
-
-  this._done = false;
-  this._parser = undefined;
-  this._finished = false;
-
-  this.opts = opts;
-  if (opts.headers && typeof opts.headers['content-type'] === 'string')
-    this.parseHeaders(opts.headers);
-  else
-    throw new Error('Missing Content-Type');
-}
-inherits(Busboy, WritableStream);
-
-Busboy.prototype.emit = function(ev) {
-  if (ev === 'finish') {
-    if (!this._done) {
-      this._parser && this._parser.end();
-      return;
-    } else if (this._finished) {
-      return;
-    }
-    this._finished = true;
-  }
-  WritableStream.prototype.emit.apply(this, arguments);
-};
-
-Busboy.prototype.parseHeaders = function(headers) {
-  this._parser = undefined;
-  if (headers['content-type']) {
-    var parsed = parseParams(headers['content-type']),
-        matched, type;
-    for (var i = 0; i < TYPES.length; ++i) {
-      type = TYPES[i];
-      if (typeof type.detect === 'function')
-        matched = type.detect(parsed);
-      else
-        matched = type.detect.test(parsed[0]);
-      if (matched)
-        break;
-    }
-    if (matched) {
-      var cfg = {
-        limits: this.opts.limits,
-        headers: headers,
-        parsedConType: parsed,
-        highWaterMark: undefined,
-        fileHwm: undefined,
-        defCharset: undefined,
-        preservePath: false
-      };
-      if (this.opts.highWaterMark)
-        cfg.highWaterMark = this.opts.highWaterMark;
-      if (this.opts.fileHwm)
-        cfg.fileHwm = this.opts.fileHwm;
-      cfg.defCharset = this.opts.defCharset;
-      cfg.preservePath = this.opts.preservePath;
-      this._parser = type(this, cfg);
-      return;
-    }
-  }
-  throw new Error('Unsupported content type: ' + headers['content-type']);
-};
-
-Busboy.prototype._write = function(chunk, encoding, cb) {
-  if (!this._parser)
-    return cb(new Error('Not ready to parse. Missing Content-Type?'));
-  this._parser.write(chunk, cb);
-};
-
-var TYPES = [
-  require('./types/multipart'),
-  require('./types/urlencoded'),
-];
-
-module.exports = Busboy;

+ 0 - 324
node_modules/busboy/lib/types/multipart.js

@@ -1,324 +0,0 @@
-// TODO:
-//  * support 1 nested multipart level
-//    (see second multipart example here:
-//     http://www.w3.org/TR/html401/interact/forms.html#didx-multipartform-data)
-//  * support limits.fieldNameSize
-//     -- this will require modifications to utils.parseParams
-
-var ReadableStream = require('stream').Readable || require('readable-stream'),
-    inherits = require('util').inherits;
-
-var Dicer = require('dicer');
-
-var parseParams = require('../utils').parseParams,
-    decodeText = require('../utils').decodeText,
-    basename = require('../utils').basename;
-
-var RE_BOUNDARY = /^boundary$/i,
-    RE_FIELD = /^form-data$/i,
-    RE_CHARSET = /^charset$/i,
-    RE_FILENAME = /^filename$/i,
-    RE_NAME = /^name$/i;
-
-Multipart.detect = /^multipart\/form-data/i;
-function Multipart(boy, cfg) {
-  if (!(this instanceof Multipart))
-    return new Multipart(boy, cfg);
-  var i,
-      len,
-      self = this,
-      boundary,
-      limits = cfg.limits,
-      parsedConType = cfg.parsedConType || [],
-      defCharset = cfg.defCharset || 'utf8',
-      preservePath = cfg.preservePath,
-      fileopts = (typeof cfg.fileHwm === 'number'
-                  ? { highWaterMark: cfg.fileHwm }
-                  : {});
-
-  for (i = 0, len = parsedConType.length; i < len; ++i) {
-    if (Array.isArray(parsedConType[i])
-        && RE_BOUNDARY.test(parsedConType[i][0])) {
-      boundary = parsedConType[i][1];
-      break;
-    }
-  }
-
-  function checkFinished() {
-    if (nends === 0 && finished && !boy._done) {
-      finished = false;
-      process.nextTick(function() {
-        boy._done = true;
-        boy.emit('finish');
-      });
-    }
-  }
-
-  if (typeof boundary !== 'string')
-    throw new Error('Multipart: Boundary not found');
-
-  var fieldSizeLimit = (limits && typeof limits.fieldSize === 'number'
-                        ? limits.fieldSize
-                        : 1 * 1024 * 1024),
-      fileSizeLimit = (limits && typeof limits.fileSize === 'number'
-                       ? limits.fileSize
-                       : Infinity),
-      filesLimit = (limits && typeof limits.files === 'number'
-                    ? limits.files
-                    : Infinity),
-      fieldsLimit = (limits && typeof limits.fields === 'number'
-                     ? limits.fields
-                     : Infinity),
-      partsLimit = (limits && typeof limits.parts === 'number'
-                    ? limits.parts
-                    : Infinity);
-
-  var nfiles = 0,
-      nfields = 0,
-      nends = 0,
-      curFile,
-      curField,
-      finished = false;
-
-  this._needDrain = false;
-  this._pause = false;
-  this._cb = undefined;
-  this._nparts = 0;
-  this._boy = boy;
-
-  var parserCfg = {
-    boundary: boundary,
-    maxHeaderPairs: (limits && limits.headerPairs)
-  };
-  if (fileopts.highWaterMark)
-    parserCfg.partHwm = fileopts.highWaterMark;
-  if (cfg.highWaterMark)
-    parserCfg.highWaterMark = cfg.highWaterMark;
-
-  this.parser = new Dicer(parserCfg);
-  this.parser.on('drain', function() {
-    self._needDrain = false;
-    if (self._cb && !self._pause) {
-      var cb = self._cb;
-      self._cb = undefined;
-      cb();
-    }
-  }).on('part', function onPart(part) {
-    if (++self._nparts > partsLimit) {
-      self.parser.removeListener('part', onPart);
-      self.parser.on('part', skipPart);
-      boy.hitPartsLimit = true;
-      boy.emit('partsLimit');
-      return skipPart(part);
-    }
-
-    // hack because streams2 _always_ doesn't emit 'end' until nextTick, so let
-    // us emit 'end' early since we know the part has ended if we are already
-    // seeing the next part
-    if (curField) {
-      var field = curField;
-      field.emit('end');
-      field.removeAllListeners('end');
-    }
-
-    part.on('header', function(header) {
-      var contype,
-          fieldname,
-          parsed,
-          charset,
-          encoding,
-          filename,
-          nsize = 0;
-
-      if (header['content-type']) {
-        parsed = parseParams(header['content-type'][0]);
-        if (parsed[0]) {
-          contype = parsed[0].toLowerCase();
-          for (i = 0, len = parsed.length; i < len; ++i) {
-            if (RE_CHARSET.test(parsed[i][0])) {
-              charset = parsed[i][1].toLowerCase();
-              break;
-            }
-          }
-        }
-      }
-
-      if (contype === undefined)
-        contype = 'text/plain';
-      if (charset === undefined)
-        charset = defCharset;
-
-      if (header['content-disposition']) {
-        parsed = parseParams(header['content-disposition'][0]);
-        if (!RE_FIELD.test(parsed[0]))
-          return skipPart(part);
-        for (i = 0, len = parsed.length; i < len; ++i) {
-          if (RE_NAME.test(parsed[i][0])) {
-            fieldname = decodeText(parsed[i][1], 'binary', 'utf8');
-          } else if (RE_FILENAME.test(parsed[i][0])) {
-            filename = decodeText(parsed[i][1], 'binary', 'utf8');
-            if (!preservePath)
-              filename = basename(filename);
-          }
-        }
-      } else
-        return skipPart(part);
-
-      if (header['content-transfer-encoding'])
-        encoding = header['content-transfer-encoding'][0].toLowerCase();
-      else
-        encoding = '7bit';
-
-      var onData,
-          onEnd;
-      if (contype === 'application/octet-stream' || filename !== undefined) {
-        // file/binary field
-        if (nfiles === filesLimit) {
-          if (!boy.hitFilesLimit) {
-            boy.hitFilesLimit = true;
-            boy.emit('filesLimit');
-          }
-          return skipPart(part);
-        }
-
-        ++nfiles;
-
-        if (!boy._events.file) {
-          self.parser._ignore();
-          return;
-        }
-
-        ++nends;
-        var file = new FileStream(fileopts);
-        curFile = file;
-        file.on('end', function() {
-          --nends;
-          checkFinished();
-          if (self._cb && !self._needDrain) {
-            var cb = self._cb;
-            self._cb = undefined;
-            cb();
-          }
-        });
-        file._read = function(n) {
-          if (!self._pause)
-            return;
-          self._pause = false;
-          if (self._cb && !self._needDrain) {
-            var cb = self._cb;
-            self._cb = undefined;
-            cb();
-          }
-        };
-        boy.emit('file', fieldname, file, filename, encoding, contype);
-
-        onData = function(data) {
-          if ((nsize += data.length) > fileSizeLimit) {
-            var extralen = (fileSizeLimit - (nsize - data.length));
-            if (extralen > 0)
-              file.push(data.slice(0, extralen));
-            file.emit('limit');
-            file.truncated = true;
-            part.removeAllListeners('data');
-          } else if (!file.push(data))
-            self._pause = true;
-        };
-
-        onEnd = function() {
-          curFile = undefined;
-          file.push(null);
-        };
-      } else {
-        // non-file field
-        if (nfields === fieldsLimit) {
-          if (!boy.hitFieldsLimit) {
-            boy.hitFieldsLimit = true;
-            boy.emit('fieldsLimit');
-          }
-          return skipPart(part);
-        }
-
-        ++nfields;
-        ++nends;
-        var buffer = '',
-            truncated = false;
-        curField = part;
-
-        onData = function(data) {
-          if ((nsize += data.length) > fieldSizeLimit) {
-            var extralen = (fieldSizeLimit - (nsize - data.length));
-            buffer += data.toString('binary', 0, extralen);
-            truncated = true;
-            part.removeAllListeners('data');
-          } else
-            buffer += data.toString('binary');
-        };
-
-        onEnd = function() {
-          curField = undefined;
-          if (buffer.length)
-            buffer = decodeText(buffer, 'binary', charset);
-          boy.emit('field', fieldname, buffer, false, truncated, encoding, contype);
-          --nends;
-          checkFinished();
-        };
-      }
-
-      /* As of node@2efe4ab761666 (v0.10.29+/v0.11.14+), busboy had become
-         broken. Streams2/streams3 is a huge black box of confusion, but
-         somehow overriding the sync state seems to fix things again (and still
-         seems to work for previous node versions).
-      */
-      part._readableState.sync = false;
-
-      part.on('data', onData);
-      part.on('end', onEnd);
-    }).on('error', function(err) {
-      if (curFile)
-        curFile.emit('error', err);
-    });
-  }).on('error', function(err) {
-    boy.emit('error', err);
-  }).on('finish', function() {
-    finished = true;
-    checkFinished();
-  });
-}
-
-Multipart.prototype.write = function(chunk, cb) {
-  var r;
-  if ((r = this.parser.write(chunk)) && !this._pause)
-    cb();
-  else {
-    this._needDrain = !r;
-    this._cb = cb;
-  }
-};
-
-Multipart.prototype.end = function() {
-  var self = this;
-  if (this._nparts === 0 && !self._boy._done) {
-    process.nextTick(function() {
-      self._boy._done = true;
-      self._boy.emit('finish');
-    });
-  } else if (this.parser.writable)
-    this.parser.end();
-};
-
-function skipPart(part) {
-  part.resume();
-}
-
-function FileStream(opts) {
-  if (!(this instanceof FileStream))
-    return new FileStream(opts);
-  ReadableStream.call(this, opts);
-
-  this.truncated = false;
-}
-inherits(FileStream, ReadableStream);
-
-FileStream.prototype._read = function(n) {};
-
-module.exports = Multipart;

+ 0 - 214
node_modules/busboy/lib/types/urlencoded.js

@@ -1,214 +0,0 @@
-var Decoder = require('../utils').Decoder,
-    decodeText = require('../utils').decodeText;
-
-var RE_CHARSET = /^charset$/i;
-
-UrlEncoded.detect = /^application\/x-www-form-urlencoded/i;
-function UrlEncoded(boy, cfg) {
-  if (!(this instanceof UrlEncoded))
-    return new UrlEncoded(boy, cfg);
-  var limits = cfg.limits,
-      headers = cfg.headers,
-      parsedConType = cfg.parsedConType;
-  this.boy = boy;
-
-  this.fieldSizeLimit = (limits && typeof limits.fieldSize === 'number'
-                         ? limits.fieldSize
-                         : 1 * 1024 * 1024);
-  this.fieldNameSizeLimit = (limits && typeof limits.fieldNameSize === 'number'
-                             ? limits.fieldNameSize
-                             : 100);
-  this.fieldsLimit = (limits && typeof limits.fields === 'number'
-                      ? limits.fields
-                      : Infinity);
-
-  var charset;
-  for (var i = 0, len = parsedConType.length; i < len; ++i) {
-    if (Array.isArray(parsedConType[i])
-        && RE_CHARSET.test(parsedConType[i][0])) {
-      charset = parsedConType[i][1].toLowerCase();
-      break;
-    }
-  }
-
-  if (charset === undefined)
-    charset = cfg.defCharset || 'utf8';
-
-  this.decoder = new Decoder();
-  this.charset = charset;
-  this._fields = 0;
-  this._state = 'key';
-  this._checkingBytes = true;
-  this._bytesKey = 0;
-  this._bytesVal = 0;
-  this._key = '';
-  this._val = '';
-  this._keyTrunc = false;
-  this._valTrunc = false;
-  this._hitlimit = false;
-}
-
-UrlEncoded.prototype.write = function(data, cb) {
-  if (this._fields === this.fieldsLimit) {
-    if (!this.boy.hitFieldsLimit) {
-      this.boy.hitFieldsLimit = true;
-      this.boy.emit('fieldsLimit');
-    }
-    return cb();
-  }
-
-  var idxeq, idxamp, i, p = 0, len = data.length;
-
-  while (p < len) {
-    if (this._state === 'key') {
-      idxeq = idxamp = undefined;
-      for (i = p; i < len; ++i) {
-        if (!this._checkingBytes)
-          ++p;
-        if (data[i] === 0x3D/*=*/) {
-          idxeq = i;
-          break;
-        } else if (data[i] === 0x26/*&*/) {
-          idxamp = i;
-          break;
-        }
-        if (this._checkingBytes && this._bytesKey === this.fieldNameSizeLimit) {
-          this._hitLimit = true;
-          break;
-        } else if (this._checkingBytes)
-          ++this._bytesKey;
-      }
-
-      if (idxeq !== undefined) {
-        // key with assignment
-        if (idxeq > p)
-          this._key += this.decoder.write(data.toString('binary', p, idxeq));
-        this._state = 'val';
-
-        this._hitLimit = false;
-        this._checkingBytes = true;
-        this._val = '';
-        this._bytesVal = 0;
-        this._valTrunc = false;
-        this.decoder.reset();
-
-        p = idxeq + 1;
-      } else if (idxamp !== undefined) {
-        // key with no assignment
-        ++this._fields;
-        var key, keyTrunc = this._keyTrunc;
-        if (idxamp > p)
-          key = (this._key += this.decoder.write(data.toString('binary', p, idxamp)));
-        else
-          key = this._key;
-
-        this._hitLimit = false;
-        this._checkingBytes = true;
-        this._key = '';
-        this._bytesKey = 0;
-        this._keyTrunc = false;
-        this.decoder.reset();
-
-        if (key.length) {
-          this.boy.emit('field', decodeText(key, 'binary', this.charset),
-                                 '',
-                                 keyTrunc,
-                                 false);
-        }
-
-        p = idxamp + 1;
-        if (this._fields === this.fieldsLimit)
-          return cb();
-      } else if (this._hitLimit) {
-        // we may not have hit the actual limit if there are encoded bytes...
-        if (i > p)
-          this._key += this.decoder.write(data.toString('binary', p, i));
-        p = i;
-        if ((this._bytesKey = this._key.length) === this.fieldNameSizeLimit) {
-          // yep, we actually did hit the limit
-          this._checkingBytes = false;
-          this._keyTrunc = true;
-        }
-      } else {
-        if (p < len)
-          this._key += this.decoder.write(data.toString('binary', p));
-        p = len;
-      }
-    } else {
-      idxamp = undefined;
-      for (i = p; i < len; ++i) {
-        if (!this._checkingBytes)
-          ++p;
-        if (data[i] === 0x26/*&*/) {
-          idxamp = i;
-          break;
-        }
-        if (this._checkingBytes && this._bytesVal === this.fieldSizeLimit) {
-          this._hitLimit = true;
-          break;
-        }
-        else if (this._checkingBytes)
-          ++this._bytesVal;
-      }
-
-      if (idxamp !== undefined) {
-        ++this._fields;
-        if (idxamp > p)
-          this._val += this.decoder.write(data.toString('binary', p, idxamp));
-        this.boy.emit('field', decodeText(this._key, 'binary', this.charset),
-                               decodeText(this._val, 'binary', this.charset),
-                               this._keyTrunc,
-                               this._valTrunc);
-        this._state = 'key';
-
-        this._hitLimit = false;
-        this._checkingBytes = true;
-        this._key = '';
-        this._bytesKey = 0;
-        this._keyTrunc = false;
-        this.decoder.reset();
-
-        p = idxamp + 1;
-        if (this._fields === this.fieldsLimit)
-          return cb();
-      } else if (this._hitLimit) {
-        // we may not have hit the actual limit if there are encoded bytes...
-        if (i > p)
-          this._val += this.decoder.write(data.toString('binary', p, i));
-        p = i;
-        if ((this._val === '' && this.fieldSizeLimit === 0)
-            || (this._bytesVal = this._val.length) === this.fieldSizeLimit) {
-          // yep, we actually did hit the limit
-          this._checkingBytes = false;
-          this._valTrunc = true;
-        }
-      } else {
-        if (p < len)
-          this._val += this.decoder.write(data.toString('binary', p));
-        p = len;
-      }
-    }
-  }
-  cb();
-};
-
-UrlEncoded.prototype.end = function() {
-  if (this.boy._done)
-    return;
-
-  if (this._state === 'key' && this._key.length > 0) {
-    this.boy.emit('field', decodeText(this._key, 'binary', this.charset),
-                           '',
-                           this._keyTrunc,
-                           false);
-  } else if (this._state === 'val') {
-    this.boy.emit('field', decodeText(this._key, 'binary', this.charset),
-                           decodeText(this._val, 'binary', this.charset),
-                           this._keyTrunc,
-                           this._valTrunc);
-  }
-  this.boy._done = true;
-  this.boy.emit('finish');
-};
-
-module.exports = UrlEncoded;

+ 0 - 186
node_modules/busboy/lib/utils.js

@@ -1,186 +0,0 @@
-var jsencoding = require('../deps/encoding/encoding');
-
-var RE_ENCODED = /%([a-fA-F0-9]{2})/g;
-function encodedReplacer(match, byte) {
-  return String.fromCharCode(parseInt(byte, 16));
-}
-function parseParams(str) {
-  var res = [],
-      state = 'key',
-      charset = '',
-      inquote = false,
-      escaping = false,
-      p = 0,
-      tmp = '';
-
-  for (var i = 0, len = str.length; i < len; ++i) {
-    if (str[i] === '\\' && inquote) {
-      if (escaping)
-        escaping = false;
-      else {
-        escaping = true;
-        continue;
-      }
-    } else if (str[i] === '"') {
-      if (!escaping) {
-        if (inquote) {
-          inquote = false;
-          state = 'key';
-        } else
-          inquote = true;
-        continue;
-      } else
-        escaping = false;
-    } else {
-      if (escaping && inquote)
-        tmp += '\\';
-      escaping = false;
-      if ((state === 'charset' || state === 'lang') && str[i] === "'") {
-        if (state === 'charset') {
-          state = 'lang';
-          charset = tmp.substring(1);
-        } else
-          state = 'value';
-        tmp = '';
-        continue;
-      } else if (state === 'key'
-                 && (str[i] === '*' || str[i] === '=')
-                 && res.length) {
-        if (str[i] === '*')
-          state = 'charset';
-        else
-          state = 'value';
-        res[p] = [tmp, undefined];
-        tmp = '';
-        continue;
-      } else if (!inquote && str[i] === ';') {
-        state = 'key';
-        if (charset) {
-          if (tmp.length) {
-            tmp = decodeText(tmp.replace(RE_ENCODED, encodedReplacer),
-                             'binary',
-                             charset);
-          }
-          charset = '';
-        }
-        if (res[p] === undefined)
-          res[p] = tmp;
-        else
-          res[p][1] = tmp;
-        tmp = '';
-        ++p;
-        continue;
-      } else if (!inquote && (str[i] === ' ' || str[i] === '\t'))
-        continue;
-    }
-    tmp += str[i];
-  }
-  if (charset && tmp.length) {
-    tmp = decodeText(tmp.replace(RE_ENCODED, encodedReplacer),
-                     'binary',
-                     charset);
-  }
-
-  if (res[p] === undefined) {
-    if (tmp)
-      res[p] = tmp;
-  } else
-    res[p][1] = tmp;
-
-  return res;
-};
-exports.parseParams = parseParams;
-
-
-function decodeText(text, textEncoding, destEncoding) {
-  var ret;
-  if (text && jsencoding.encodingExists(destEncoding)) {
-    try {
-      ret = jsencoding.TextDecoder(destEncoding)
-                      .decode(new Buffer(text, textEncoding));
-    } catch(e) {}
-  }
-  return (typeof ret === 'string' ? ret : text);
-}
-exports.decodeText = decodeText;
-
-
-var HEX = [
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0,
-  0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-  0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-], RE_PLUS = /\+/g;
-function Decoder() {
-  this.buffer = undefined;
-}
-Decoder.prototype.write = function(str) {
-  // Replace '+' with ' ' before decoding
-  str = str.replace(RE_PLUS, ' ');
-  var res = '';
-  var i = 0, p = 0, len = str.length;
-  for (; i < len; ++i) {
-    if (this.buffer !== undefined) {
-      if (!HEX[str.charCodeAt(i)]) {
-        res += '%' + this.buffer;
-        this.buffer = undefined;
-        --i; // retry character
-      } else {
-        this.buffer += str[i];
-        ++p;
-        if (this.buffer.length === 2) {
-          res += String.fromCharCode(parseInt(this.buffer, 16));
-          this.buffer = undefined;
-        }
-      }
-    } else if (str[i] === '%') {
-      if (i > p) {
-        res += str.substring(p, i);
-        p = i;
-      }
-      this.buffer = '';
-      ++p;
-    }
-  }
-  if (p < len && this.buffer === undefined)
-    res += str.substring(p);
-  return res;
-};
-Decoder.prototype.reset = function() {
-  this.buffer = undefined;
-};
-exports.Decoder = Decoder;
-
-
-var RE_SPLIT_POSIX =
-      /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,
-    RE_SPLIT_DEVICE =
-      /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/,
-    RE_SPLIT_WINDOWS =
-      /^([\s\S]*?)((?:\.{1,2}|[^\\\/]+?|)(\.[^.\/\\]*|))(?:[\\\/]*)$/;
-function splitPathPosix(filename) {
-  return RE_SPLIT_POSIX.exec(filename).slice(1);
-}
-function splitPathWindows(filename) {
-  // Separate device+slash from tail
-  var result = RE_SPLIT_DEVICE.exec(filename),
-      device = (result[1] || '') + (result[2] || ''),
-      tail = result[3] || '';
-  // Split the tail into dir, basename and extension
-  var result2 = RE_SPLIT_WINDOWS.exec(tail),
-      dir = result2[1],
-      basename = result2[2],
-      ext = result2[3];
-  return [device, dir, basename, ext];
-}
-function basename(path) {
-  var f = splitPathPosix(path)[2];
-  if (f === path)
-    f = splitPathWindows(path)[2];
-  return f;
-}
-exports.basename = basename;

+ 0 - 68
node_modules/busboy/package.json

@@ -1,68 +0,0 @@
-{
-  "_args": [
-    [
-      "busboy@0.2.14",
-      "/home/asmer/work/alvl/mockbacks/shop"
-    ]
-  ],
-  "_from": "busboy@0.2.14",
-  "_id": "busboy@0.2.14",
-  "_inBundle": false,
-  "_integrity": "sha1-bCpiLvz0fFe7vh4qnDetNseSVFM=",
-  "_location": "/busboy",
-  "_phantomChildren": {},
-  "_requested": {
-    "type": "version",
-    "registry": true,
-    "raw": "busboy@0.2.14",
-    "name": "busboy",
-    "escapedName": "busboy",
-    "rawSpec": "0.2.14",
-    "saveSpec": null,
-    "fetchSpec": "0.2.14"
-  },
-  "_requiredBy": [
-    "/multer"
-  ],
-  "_resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz",
-  "_spec": "0.2.14",
-  "_where": "/home/asmer/work/alvl/mockbacks/shop",
-  "author": {
-    "name": "Brian White",
-    "email": "mscdex@mscdex.net"
-  },
-  "bugs": {
-    "url": "https://github.com/mscdex/busboy/issues"
-  },
-  "dependencies": {
-    "dicer": "0.2.5",
-    "readable-stream": "1.1.x"
-  },
-  "description": "A streaming parser for HTML form data for node.js",
-  "engines": {
-    "node": ">=0.8.0"
-  },
-  "homepage": "https://github.com/mscdex/busboy#readme",
-  "keywords": [
-    "uploads",
-    "forms",
-    "multipart",
-    "form-data"
-  ],
-  "licenses": [
-    {
-      "type": "MIT",
-      "url": "http://github.com/mscdex/busboy/raw/master/LICENSE"
-    }
-  ],
-  "main": "./lib/main",
-  "name": "busboy",
-  "repository": {
-    "type": "git",
-    "url": "git+ssh://git@github.com/mscdex/busboy.git"
-  },
-  "scripts": {
-    "test": "node test/test.js"
-  },
-  "version": "0.2.14"
-}

File diff suppressed because it is too large
+ 0 - 343
node_modules/busboy/test/test-types-multipart.js


+ 0 - 183
node_modules/busboy/test/test-types-urlencoded.js

@@ -1,183 +0,0 @@
-var Busboy = require('..');
-
-var path = require('path'),
-    inspect = require('util').inspect,
-    assert = require('assert');
-
-var EMPTY_FN = function() {};
-
-var t = 0,
-    group = path.basename(__filename, '.js') + '/';
-
-var tests = [
-  { source: ['foo'],
-    expected: [['foo', '', false, false]],
-    what: 'Unassigned value'
-  },
-  { source: ['foo=bar'],
-    expected: [['foo', 'bar', false, false]],
-    what: 'Assigned value'
-  },
-  { source: ['foo&bar=baz'],
-    expected: [['foo', '', false, false],
-               ['bar', 'baz', false, false]],
-    what: 'Unassigned and assigned value'
-  },
-  { source: ['foo=bar&baz'],
-    expected: [['foo', 'bar', false, false],
-               ['baz', '', false, false]],
-    what: 'Assigned and unassigned value'
-  },
-  { source: ['foo=bar&baz=bla'],
-    expected: [['foo', 'bar', false, false],
-               ['baz', 'bla', false, false]],
-    what: 'Two assigned values'
-  },
-  { source: ['foo&bar'],
-    expected: [['foo', '', false, false],
-               ['bar', '', false, false]],
-    what: 'Two unassigned values'
-  },
-  { source: ['foo&bar&'],
-    expected: [['foo', '', false, false],
-               ['bar', '', false, false]],
-    what: 'Two unassigned values and ampersand'
-  },
-  { source: ['foo=bar+baz%2Bquux'],
-    expected: [['foo', 'bar baz+quux', false, false]],
-    what: 'Assigned value with (plus) space'
-  },
-  { source: ['foo=bar%20baz%21'],
-    expected: [['foo', 'bar baz!', false, false]],
-    what: 'Assigned value with encoded bytes'
-  },
-  { source: ['foo%20bar=baz%20bla%21'],
-    expected: [['foo bar', 'baz bla!', false, false]],
-    what: 'Assigned value with encoded bytes #2'
-  },
-  { source: ['foo=bar%20baz%21&num=1000'],
-    expected: [['foo', 'bar baz!', false, false],
-               ['num', '1000', false, false]],
-    what: 'Two assigned values, one with encoded bytes'
-  },
-  { source: ['foo=bar&baz=bla'],
-    expected: [],
-    what: 'Limits: zero fields',
-    limits: { fields: 0 }
-  },
-  { source: ['foo=bar&baz=bla'],
-    expected: [['foo', 'bar', false, false]],
-    what: 'Limits: one field',
-    limits: { fields: 1 }
-  },
-  { source: ['foo=bar&baz=bla'],
-    expected: [['foo', 'bar', false, false],
-               ['baz', 'bla', false, false]],
-    what: 'Limits: field part lengths match limits',
-    limits: { fieldNameSize: 3, fieldSize: 3 }
-  },
-  { source: ['foo=bar&baz=bla'],
-    expected: [['fo', 'bar', true, false],
-               ['ba', 'bla', true, false]],
-    what: 'Limits: truncated field name',
-    limits: { fieldNameSize: 2 }
-  },
-  { source: ['foo=bar&baz=bla'],
-    expected: [['foo', 'ba', false, true],
-               ['baz', 'bl', false, true]],
-    what: 'Limits: truncated field value',
-    limits: { fieldSize: 2 }
-  },
-  { source: ['foo=bar&baz=bla'],
-    expected: [['fo', 'ba', true, true],
-               ['ba', 'bl', true, true]],
-    what: 'Limits: truncated field name and value',
-    limits: { fieldNameSize: 2, fieldSize: 2 }
-  },
-  { source: ['foo=bar&baz=bla'],
-    expected: [['fo', '', true, true],
-               ['ba', '', true, true]],
-    what: 'Limits: truncated field name and zero value limit',
-    limits: { fieldNameSize: 2, fieldSize: 0 }
-  },
-  { source: ['foo=bar&baz=bla'],
-    expected: [['', '', true, true],
-               ['', '', true, true]],
-    what: 'Limits: truncated zero field name and zero value limit',
-    limits: { fieldNameSize: 0, fieldSize: 0 }
-  },
-  { source: ['&'],
-    expected: [],
-    what: 'Ampersand'
-  },
-  { source: ['&&&&&'],
-    expected: [],
-    what: 'Many ampersands'
-  },
-  { source: ['='],
-    expected: [['', '', false, false]],
-    what: 'Assigned value, empty name and value'
-  },
-  { source: [''],
-    expected: [],
-    what: 'Nothing'
-  },
-];
-
-function next() {
-  if (t === tests.length)
-    return;
-
-  var v = tests[t];
-
-  var busboy = new Busboy({
-        limits: v.limits,
-        headers: {
-          'content-type': 'application/x-www-form-urlencoded; charset=utf-8'
-        }
-      }),
-      finishes = 0,
-      results = [];
-
-  busboy.on('field', function(key, val, keyTrunc, valTrunc) {
-    results.push([key, val, keyTrunc, valTrunc]);
-  });
-  busboy.on('file', function() {
-    throw new Error(makeMsg(v.what, 'Unexpected file'));
-  });
-  busboy.on('finish', function() {
-    assert(finishes++ === 0, makeMsg(v.what, 'finish emitted multiple times'));
-    assert.deepEqual(results.length,
-                     v.expected.length,
-                     makeMsg(v.what, 'Parsed result count mismatch. Saw '
-                                     + results.length
-                                     + '. Expected: ' + v.expected.length));
-
-    var i = 0;
-    results.forEach(function(result) {
-      assert.deepEqual(result,
-                       v.expected[i],
-                       makeMsg(v.what,
-                               'Result mismatch:\nParsed: ' + inspect(result)
-                               + '\nExpected: ' + inspect(v.expected[i]))
-                      );
-      ++i;
-    });
-    ++t;
-    next();
-  });
-
-  v.source.forEach(function(s) {
-    busboy.write(new Buffer(s, 'utf8'), EMPTY_FN);
-  });
-  busboy.end();
-}
-next();
-
-function makeMsg(what, msg) {
-  return '[' + group + what + ']: ' + msg;
-}
-
-process.on('exit', function() {
-  assert(t === tests.length, makeMsg('_exit', 'Only finished ' + t + '/' + tests.length + ' tests'));
-});

+ 0 - 66
node_modules/busboy/test/test-utils-decoder.js

@@ -1,66 +0,0 @@
-var Decoder = require('../lib/utils').Decoder;
-
-var path = require('path'),
-    assert = require('assert');
-
-var group = path.basename(__filename, '.js') + '/';
-
-[
-  { source: ['Hello world'],
-    expected: 'Hello world',
-    what: 'No encoded bytes'
-  },
-  { source: ['Hello%20world'],
-    expected: 'Hello world',
-    what: 'One full encoded byte'
-  },
-  { source: ['Hello%20world%21'],
-    expected: 'Hello world!',
-    what: 'Two full encoded bytes'
-  },
-  { source: ['Hello%', '20world'],
-    expected: 'Hello world',
-    what: 'One full encoded byte split #1'
-  },
-  { source: ['Hello%2', '0world'],
-    expected: 'Hello world',
-    what: 'One full encoded byte split #2'
-  },
-  { source: ['Hello%20', 'world'],
-    expected: 'Hello world',
-    what: 'One full encoded byte (concat)'
-  },
-  { source: ['Hello%2Qworld'],
-    expected: 'Hello%2Qworld',
-    what: 'Malformed encoded byte #1'
-  },
-  { source: ['Hello%world'],
-    expected: 'Hello%world',
-    what: 'Malformed encoded byte #2'
-  },
-  { source: ['Hello+world'],
-    expected: 'Hello world',
-    what: 'Plus to space'
-  },
-  { source: ['Hello+world%21'],
-    expected: 'Hello world!',
-    what: 'Plus and encoded byte'
-  },
-  { source: ['5%2B5%3D10'],
-    expected: '5+5=10',
-    what: 'Encoded plus'
-  },
-  { source: ['5+%2B+5+%3D+10'],
-    expected: '5 + 5 = 10',
-    what: 'Spaces and encoded plus'
-  },
-].forEach(function(v) {
-  var dec = new Decoder(), result = '';
-  v.source.forEach(function(s) {
-    result += dec.write(s);
-  });
-  var msg = '[' + group + v.what + ']: decoded string mismatch.\n'
-            + 'Saw: ' + result + '\n'
-            + 'Expected: ' + v.expected;
-  assert.deepEqual(result, v.expected, msg);
-});

+ 0 - 96
node_modules/busboy/test/test-utils-parse-params.js

@@ -1,96 +0,0 @@
-var parseParams = require('../lib/utils').parseParams;
-
-var path = require('path'),
-    assert = require('assert'),
-    inspect = require('util').inspect;
-
-var group = path.basename(__filename, '.js') + '/';
-
-[
-  { source: 'video/ogg',
-    expected: ['video/ogg'],
-    what: 'No parameters'
-  },
-  { source: 'video/ogg;',
-    expected: ['video/ogg'],
-    what: 'No parameters (with separator)'
-  },
-  { source: 'video/ogg; ',
-    expected: ['video/ogg'],
-    what: 'No parameters (with separator followed by whitespace)'
-  },
-  { source: ';video/ogg',
-    expected: ['', 'video/ogg'],
-    what: 'Empty parameter'
-  },
-  { source: 'video/*',
-    expected: ['video/*'],
-    what: 'Subtype with asterisk'
-  },
-  { source: 'text/plain; encoding=utf8',
-    expected: ['text/plain', ['encoding', 'utf8']],
-    what: 'Unquoted'
-  },
-  { source: 'text/plain; encoding=',
-    expected: ['text/plain', ['encoding', '']],
-    what: 'Unquoted empty string'
-  },
-  { source: 'text/plain; encoding="utf8"',
-    expected: ['text/plain', ['encoding', 'utf8']],
-    what: 'Quoted'
-  },
-  { source: 'text/plain; greeting="hello \\"world\\""',
-    expected: ['text/plain', ['greeting', 'hello "world"']],
-    what: 'Quotes within quoted'
-  },
-  { source: 'text/plain; encoding=""',
-    expected: ['text/plain', ['encoding', '']],
-    what: 'Quoted empty string'
-  },
-  { source: 'text/plain; encoding="utf8";\t   foo=bar;test',
-    expected: ['text/plain', ['encoding', 'utf8'], ['foo', 'bar'], 'test'],
-    what: 'Multiple params with various spacing'
-  },
-  { source: "text/plain; filename*=iso-8859-1'en'%A3%20rates",
-    expected: ['text/plain', ['filename', '£ rates']],
-    what: 'Extended parameter (RFC 5987) with language'
-  },
-  { source: "text/plain; filename*=utf-8''%c2%a3%20and%20%e2%82%ac%20rates",
-    expected: ['text/plain', ['filename', '£ and € rates']],
-    what: 'Extended parameter (RFC 5987) without language'
-  },
-  { source: "text/plain; filename*=utf-8''%E6%B5%8B%E8%AF%95%E6%96%87%E6%A1%A3",
-    expected: ['text/plain', ['filename', '测试文档']],
-    what: 'Extended parameter (RFC 5987) without language #2'
-  },
-  { source: "text/plain; filename*=iso-8859-1'en'%A3%20rates; altfilename*=utf-8''%c2%a3%20and%20%e2%82%ac%20rates",
-    expected: ['text/plain', ['filename', '£ rates'], ['altfilename', '£ and € rates']],
-    what: 'Multiple extended parameters (RFC 5987) with mixed charsets'
-  },
-  { source: "text/plain; filename*=iso-8859-1'en'%A3%20rates; altfilename=\"foobarbaz\"",
-    expected: ['text/plain', ['filename', '£ rates'], ['altfilename', 'foobarbaz']],
-    what: 'Mixed regular and extended parameters (RFC 5987)'
-  },
-  { source: "text/plain; filename=\"foobarbaz\"; altfilename*=iso-8859-1'en'%A3%20rates",
-    expected: ['text/plain', ['filename', 'foobarbaz'], ['altfilename', '£ rates']],
-    what: 'Mixed regular and extended parameters (RFC 5987) #2'
-  },
-  { source: 'text/plain; filename="C:\\folder\\test.png"',
-    expected: ['text/plain', ['filename', 'C:\\folder\\test.png']],
-    what: 'Unescaped backslashes should be considered backslashes'
-  },
-  { source: 'text/plain; filename="John \\"Magic\\" Smith.png"',
-    expected: ['text/plain', ['filename', 'John "Magic" Smith.png']],
-    what: 'Escaped double-quotes should be considered double-quotes'
-  },
-  { source: 'multipart/form-data; charset=utf-8; boundary=0xKhTmLbOuNdArY',
-    expected: ['multipart/form-data', ['charset', 'utf-8'], ['boundary', '0xKhTmLbOuNdArY']],
-    what: 'Multiple non-quoted parameters'
-  },
-].forEach(function(v) {
-  var result = parseParams(v.source),
-      msg = '[' + group + v.what + ']: parsed parameters mismatch.\n'
-            + 'Saw: ' + inspect(result) + '\n'
-            + 'Expected: ' + inspect(v.expected);
-  assert.deepEqual(result, v.expected, msg);
-});

+ 0 - 4
node_modules/busboy/test/test.js

@@ -1,4 +0,0 @@
-require('fs').readdirSync(__dirname).forEach(function(f) {
-  if (f.substr(0, 5) === 'test-')
-    require('./' + f);
-});

+ 0 - 87
node_modules/bytes/History.md

@@ -1,87 +0,0 @@
-3.1.0 / 2019-01-22
-==================
-
-  * Add petabyte (`pb`) support
-
-3.0.0 / 2017-08-31
-==================
-
-  * Change "kB" to "KB" in format output
-  * Remove support for Node.js 0.6
-  * Remove support for ComponentJS
-
-2.5.0 / 2017-03-24
-==================
-
-  * Add option "unit"
-
-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]

+ 0 - 23
node_modules/bytes/LICENSE

@@ -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.

+ 0 - 126
node_modules/bytes/Readme.md

@@ -1,126 +0,0 @@
-# Bytes utility
-
-[![NPM Version][npm-image]][npm-url]
-[![NPM Downloads][downloads-image]][downloads-url]
-[![Build Status][travis-image]][travis-url]
-[![Test Coverage][coveralls-image]][coveralls-url]
-
-Utility to parse a string bytes (ex: `1TB`) to bytes (`1099511627776`) and vice-versa.
-
-## Installation
-
-This is a [Node.js](https://nodejs.org/en/) module available through the
-[npm registry](https://www.npmjs.com/). Installation is done using the
-[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):
-
-```bash
-$ npm install bytes
-```
-
-## 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 `''`. |
-| unit | `string`|`null` | The unit in which the result will be returned (B/KB/MB/GB/TB). Default value to `''` (which means auto detect). |
-| 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|number value): number|null
-
-Parse the string value into an integer in bytes. If no unit is given, or `value`
-is a number, 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
-  * `pb` for petabytes
-
-The units are in powers of two, not ten. This means 1kb = 1024b according to this parser.
-
-**Arguments**
-
-| Name          | Type   | Description        |
-|---------------|--------|--------------------|
-| value   | `string`|`number` | String to parse, or number in bytes.   |
-
-**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
-
-bytes(1024);
-// output: 1KB
-```
-
-## License 
-
-[MIT](LICENSE)
-
-[coveralls-image]: https://badgen.net/coveralls/c/github/visionmedia/bytes.js/master
-[coveralls-url]: https://coveralls.io/r/visionmedia/bytes.js?branch=master
-[downloads-image]: https://badgen.net/npm/dm/bytes
-[downloads-url]: https://npmjs.org/package/bytes
-[npm-image]: https://badgen.net/npm/node/bytes
-[npm-url]: https://npmjs.org/package/bytes
-[travis-image]: https://badgen.net/travis/visionmedia/bytes.js/master
-[travis-url]: https://travis-ci.org/visionmedia/bytes.js

+ 0 - 162
node_modules/bytes/index.js

@@ -1,162 +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: Math.pow(1024, 4),
-  pb: Math.pow(1024, 5),
-};
-
-var parseRegExp = /^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/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.unit=]
- * @param {string} [options.unitSeparator=]
- *
- * @returns {string|null}
- * @public
- */
-
-function format(value, options) {
-  if (!Number.isFinite(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 = (options && options.unit) || '';
-
-  if (!unit || !map[unit.toLowerCase()]) {
-    if (mag >= map.pb) {
-      unit = 'PB';
-    } else 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';
-    } else {
-      unit = 'B';
-    }
-  }
-
-  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);
-}

+ 0 - 88
node_modules/bytes/package.json

@@ -1,88 +0,0 @@
-{
-  "_args": [
-    [
-      "bytes@3.1.0",
-      "/home/asmer/work/alvl/mockbacks/shop"
-    ]
-  ],
-  "_from": "bytes@3.1.0",
-  "_id": "bytes@3.1.0",
-  "_inBundle": false,
-  "_integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
-  "_location": "/bytes",
-  "_phantomChildren": {},
-  "_requested": {
-    "type": "version",
-    "registry": true,
-    "raw": "bytes@3.1.0",
-    "name": "bytes",
-    "escapedName": "bytes",
-    "rawSpec": "3.1.0",
-    "saveSpec": null,
-    "fetchSpec": "3.1.0"
-  },
-  "_requiredBy": [
-    "/body-parser",
-    "/express-graphql/raw-body",
-    "/raw-body"
-  ],
-  "_resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
-  "_spec": "3.1.0",
-  "_where": "/home/asmer/work/alvl/mockbacks/shop",
-  "author": {
-    "name": "TJ Holowaychuk",
-    "email": "tj@vision-media.ca",
-    "url": "http://tjholowaychuk.com"
-  },
-  "bugs": {
-    "url": "https://github.com/visionmedia/bytes.js/issues"
-  },
-  "contributors": [
-    {
-      "name": "Jed Watson",
-      "email": "jed.watson@me.com"
-    },
-    {
-      "name": "Théo FIDRY",
-      "email": "theo.fidry@gmail.com"
-    }
-  ],
-  "description": "Utility to parse a string bytes to bytes and vice-versa",
-  "devDependencies": {
-    "eslint": "5.12.1",
-    "mocha": "5.2.0",
-    "nyc": "13.1.0"
-  },
-  "engines": {
-    "node": ">= 0.8"
-  },
-  "files": [
-    "History.md",
-    "LICENSE",
-    "Readme.md",
-    "index.js"
-  ],
-  "homepage": "https://github.com/visionmedia/bytes.js#readme",
-  "keywords": [
-    "byte",
-    "bytes",
-    "utility",
-    "parse",
-    "parser",
-    "convert",
-    "converter"
-  ],
-  "license": "MIT",
-  "name": "bytes",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/visionmedia/bytes.js.git"
-  },
-  "scripts": {
-    "lint": "eslint .",
-    "test": "mocha --check-leaks --reporter spec",
-    "test-ci": "nyc --reporter=text npm test",
-    "test-cov": "nyc --reporter=html --reporter=text npm test"
-  },
-  "version": "3.1.0"
-}

+ 0 - 24
node_modules/concat-stream/LICENSE

@@ -1,24 +0,0 @@
-The MIT License
-
-Copyright (c) 2013 Max Ogden
-
-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.

+ 0 - 144
node_modules/concat-stream/index.js

@@ -1,144 +0,0 @@
-var Writable = require('readable-stream').Writable
-var inherits = require('inherits')
-var bufferFrom = require('buffer-from')
-
-if (typeof Uint8Array === 'undefined') {
-  var U8 = require('typedarray').Uint8Array
-} else {
-  var U8 = Uint8Array
-}
-
-function ConcatStream(opts, cb) {
-  if (!(this instanceof ConcatStream)) return new ConcatStream(opts, cb)
-
-  if (typeof opts === 'function') {
-    cb = opts
-    opts = {}
-  }
-  if (!opts) opts = {}
-
-  var encoding = opts.encoding
-  var shouldInferEncoding = false
-
-  if (!encoding) {
-    shouldInferEncoding = true
-  } else {
-    encoding =  String(encoding).toLowerCase()
-    if (encoding === 'u8' || encoding === 'uint8') {
-      encoding = 'uint8array'
-    }
-  }
-
-  Writable.call(this, { objectMode: true })
-
-  this.encoding = encoding
-  this.shouldInferEncoding = shouldInferEncoding
-
-  if (cb) this.on('finish', function () { cb(this.getBody()) })
-  this.body = []
-}
-
-module.exports = ConcatStream
-inherits(ConcatStream, Writable)
-
-ConcatStream.prototype._write = function(chunk, enc, next) {
-  this.body.push(chunk)
-  next()
-}
-
-ConcatStream.prototype.inferEncoding = function (buff) {
-  var firstBuffer = buff === undefined ? this.body[0] : buff;
-  if (Buffer.isBuffer(firstBuffer)) return 'buffer'
-  if (typeof Uint8Array !== 'undefined' && firstBuffer instanceof Uint8Array) return 'uint8array'
-  if (Array.isArray(firstBuffer)) return 'array'
-  if (typeof firstBuffer === 'string') return 'string'
-  if (Object.prototype.toString.call(firstBuffer) === "[object Object]") return 'object'
-  return 'buffer'
-}
-
-ConcatStream.prototype.getBody = function () {
-  if (!this.encoding && this.body.length === 0) return []
-  if (this.shouldInferEncoding) this.encoding = this.inferEncoding()
-  if (this.encoding === 'array') return arrayConcat(this.body)
-  if (this.encoding === 'string') return stringConcat(this.body)
-  if (this.encoding === 'buffer') return bufferConcat(this.body)
-  if (this.encoding === 'uint8array') return u8Concat(this.body)
-  return this.body
-}
-
-var isArray = Array.isArray || function (arr) {
-  return Object.prototype.toString.call(arr) == '[object Array]'
-}
-
-function isArrayish (arr) {
-  return /Array\]$/.test(Object.prototype.toString.call(arr))
-}
-
-function isBufferish (p) {
-  return typeof p === 'string' || isArrayish(p) || (p && typeof p.subarray === 'function')
-}
-
-function stringConcat (parts) {
-  var strings = []
-  var needsToString = false
-  for (var i = 0; i < parts.length; i++) {
-    var p = parts[i]
-    if (typeof p === 'string') {
-      strings.push(p)
-    } else if (Buffer.isBuffer(p)) {
-      strings.push(p)
-    } else if (isBufferish(p)) {
-      strings.push(bufferFrom(p))
-    } else {
-      strings.push(bufferFrom(String(p)))
-    }
-  }
-  if (Buffer.isBuffer(parts[0])) {
-    strings = Buffer.concat(strings)
-    strings = strings.toString('utf8')
-  } else {
-    strings = strings.join('')
-  }
-  return strings
-}
-
-function bufferConcat (parts) {
-  var bufs = []
-  for (var i = 0; i < parts.length; i++) {
-    var p = parts[i]
-    if (Buffer.isBuffer(p)) {
-      bufs.push(p)
-    } else if (isBufferish(p)) {
-      bufs.push(bufferFrom(p))
-    } else {
-      bufs.push(bufferFrom(String(p)))
-    }
-  }
-  return Buffer.concat(bufs)
-}
-
-function arrayConcat (parts) {
-  var res = []
-  for (var i = 0; i < parts.length; i++) {
-    res.push.apply(res, parts[i])
-  }
-  return res
-}
-
-function u8Concat (parts) {
-  var len = 0
-  for (var i = 0; i < parts.length; i++) {
-    if (typeof parts[i] === 'string') {
-      parts[i] = bufferFrom(parts[i])
-    }
-    len += parts[i].length
-  }
-  var u8 = new U8(len)
-  for (var i = 0, offset = 0; i < parts.length; i++) {
-    var part = parts[i]
-    for (var j = 0; j < part.length; j++) {
-      u8[offset++] = part[j]
-    }
-  }
-  return u8
-}

+ 0 - 1
node_modules/concat-stream/node_modules/isarray/.npmignore

@@ -1 +0,0 @@
-node_modules

+ 0 - 4
node_modules/concat-stream/node_modules/isarray/.travis.yml

@@ -1,4 +0,0 @@
-language: node_js
-node_js:
-  - "0.8"
-  - "0.10"

+ 0 - 6
node_modules/concat-stream/node_modules/isarray/Makefile

@@ -1,6 +0,0 @@
-
-test:
-	@node_modules/.bin/tape test.js
-
-.PHONY: test
-

+ 0 - 60
node_modules/concat-stream/node_modules/isarray/README.md

@@ -1,60 +0,0 @@
-
-# isarray
-
-`Array#isArray` for older browsers.
-
-[![build status](https://secure.travis-ci.org/juliangruber/isarray.svg)](http://travis-ci.org/juliangruber/isarray)
-[![downloads](https://img.shields.io/npm/dm/isarray.svg)](https://www.npmjs.org/package/isarray)
-
-[![browser support](https://ci.testling.com/juliangruber/isarray.png)
-](https://ci.testling.com/juliangruber/isarray)
-
-## Usage
-
-```js
-var isArray = require('isarray');
-
-console.log(isArray([])); // => true
-console.log(isArray({})); // => false
-```
-
-## Installation
-
-With [npm](http://npmjs.org) do
-
-```bash
-$ npm install isarray
-```
-
-Then bundle for the browser with
-[browserify](https://github.com/substack/browserify).
-
-With [component](http://component.io) do
-
-```bash
-$ component install juliangruber/isarray
-```
-
-## License
-
-(MIT)
-
-Copyright (c) 2013 Julian Gruber &lt;julian@juliangruber.com&gt;
-
-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.

+ 0 - 19
node_modules/concat-stream/node_modules/isarray/component.json

@@ -1,19 +0,0 @@
-{
-  "name" : "isarray",
-  "description" : "Array#isArray for older browsers",
-  "version" : "0.0.1",
-  "repository" : "juliangruber/isarray",
-  "homepage": "https://github.com/juliangruber/isarray",
-  "main" : "index.js",
-  "scripts" : [
-    "index.js"
-  ],
-  "dependencies" : {},
-  "keywords": ["browser","isarray","array"],
-  "author": {
-    "name": "Julian Gruber",
-    "email": "mail@juliangruber.com",
-    "url": "http://juliangruber.com"
-  },
-  "license": "MIT"
-}

+ 0 - 5
node_modules/concat-stream/node_modules/isarray/index.js

@@ -1,5 +0,0 @@
-var toString = {}.toString;
-
-module.exports = Array.isArray || function (arr) {
-  return toString.call(arr) == '[object Array]';
-};

+ 0 - 76
node_modules/concat-stream/node_modules/isarray/package.json

@@ -1,76 +0,0 @@
-{
-  "_args": [
-    [
-      "isarray@1.0.0",
-      "/home/asmer/work/alvl/mockbacks/shop"
-    ]
-  ],
-  "_from": "isarray@1.0.0",
-  "_id": "isarray@1.0.0",
-  "_inBundle": false,
-  "_integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
-  "_location": "/concat-stream/isarray",
-  "_phantomChildren": {},
-  "_requested": {
-    "type": "version",
-    "registry": true,
-    "raw": "isarray@1.0.0",
-    "name": "isarray",
-    "escapedName": "isarray",
-    "rawSpec": "1.0.0",
-    "saveSpec": null,
-    "fetchSpec": "1.0.0"
-  },
-  "_requiredBy": [
-    "/concat-stream/readable-stream"
-  ],
-  "_resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
-  "_spec": "1.0.0",
-  "_where": "/home/asmer/work/alvl/mockbacks/shop",
-  "author": {
-    "name": "Julian Gruber",
-    "email": "mail@juliangruber.com",
-    "url": "http://juliangruber.com"
-  },
-  "bugs": {
-    "url": "https://github.com/juliangruber/isarray/issues"
-  },
-  "dependencies": {},
-  "description": "Array#isArray for older browsers",
-  "devDependencies": {
-    "tape": "~2.13.4"
-  },
-  "homepage": "https://github.com/juliangruber/isarray",
-  "keywords": [
-    "browser",
-    "isarray",
-    "array"
-  ],
-  "license": "MIT",
-  "main": "index.js",
-  "name": "isarray",
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/juliangruber/isarray.git"
-  },
-  "scripts": {
-    "test": "tape test.js"
-  },
-  "testling": {
-    "files": "test.js",
-    "browsers": [
-      "ie/8..latest",
-      "firefox/17..latest",
-      "firefox/nightly",
-      "chrome/22..latest",
-      "chrome/canary",
-      "opera/12..latest",
-      "opera/next",
-      "safari/5.1..latest",
-      "ipad/6.0..latest",
-      "iphone/6.0..latest",
-      "android-browser/4.2..latest"
-    ]
-  },
-  "version": "1.0.0"
-}

+ 0 - 20
node_modules/concat-stream/node_modules/isarray/test.js

@@ -1,20 +0,0 @@
-var isArray = require('./');
-var test = require('tape');
-
-test('is array', function(t){
-  t.ok(isArray([]));
-  t.notOk(isArray({}));
-  t.notOk(isArray(null));
-  t.notOk(isArray(false));
-
-  var obj = {};
-  obj[0] = true;
-  t.notOk(isArray(obj));
-
-  var arr = [];
-  arr.foo = 'bar';
-  t.ok(isArray(arr));
-
-  t.end();
-});
-

+ 0 - 0
node_modules/concat-stream/node_modules/readable-stream/.travis.yml


Some files were not shown because too many files changed in this diff