clean old files

This commit is contained in:
Daniel Rodriguez 2021-04-25 19:48:07 +02:00
parent 2d7b1e34d0
commit cc79cf906f
203 changed files with 12300 additions and 13288 deletions

View file

16
README.md Normal file
View file

@ -0,0 +1,16 @@
# TFTPaths
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.1.
### Install libraries
```bash
npm i
```
### Build
```bash
npm run build
```
### Open Pull Request
Make changes and create a merge request.

View file

@ -1,27 +0,0 @@
# TFTPaths
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.1.
## Development server
Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
## Code scaffolding
Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.
## Build
Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build.
## Running unit tests
Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
## Running end-to-end tests
Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).
## Further help
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).

11981
app/package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -1,48 +0,0 @@
{
"name": "tftpaths",
"version": "0.0.0",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/animations": "~8.2.0",
"@angular/common": "~8.2.0",
"@angular/compiler": "~8.2.0",
"@angular/core": "~8.2.0",
"@angular/forms": "~8.2.0",
"@angular/platform-browser": "~8.2.0",
"@angular/platform-browser-dynamic": "~8.2.0",
"@angular/router": "~8.2.0",
"lodash": "^4.17.15",
"rxjs": "~6.4.0",
"tslib": "^1.10.0",
"zone.js": "~0.9.1"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.802.1",
"@angular/cli": "~8.2.1",
"@angular/compiler-cli": "~8.2.0",
"@angular/language-service": "~8.2.0",
"@types/node": "~8.9.4",
"@types/jasmine": "~3.3.8",
"@types/jasminewd2": "~2.0.3",
"codelyzer": "^5.0.0",
"jasmine-core": "~3.4.0",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~4.1.0",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~2.0.1",
"karma-jasmine": "~2.0.1",
"karma-jasmine-html-reporter": "^1.4.0",
"protractor": "~5.4.0",
"ts-node": "~7.0.0",
"tslint": "~5.15.0",
"typescript": "~3.5.3"
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,16 +0,0 @@
//Install express server
const express = require('express');
const path = require('path');
var app = express();
app.use(express.static(__dirname + '/dist/TFTPaths'));
app.use(express.static(__dirname + '/dist/TFTPaths/assets'));
app.get('*',function(req,res){
res.sendFile(__dirname + '/dist/TFTPaths/index.html');
});
app.listen(process.env.PORT || 8080, function()
{
console.log("ok");
});

17
node_modules/accepts/package.json generated vendored
View file

@ -1,5 +1,5 @@
{ {
"_from": "accepts@~1.3.7", "_from": "accepts@~1.3.5",
"_id": "accepts@1.3.7", "_id": "accepts@1.3.7",
"_inBundle": false, "_inBundle": false,
"_integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", "_integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
@ -8,20 +8,23 @@
"_requested": { "_requested": {
"type": "range", "type": "range",
"registry": true, "registry": true,
"raw": "accepts@~1.3.7", "raw": "accepts@~1.3.5",
"name": "accepts", "name": "accepts",
"escapedName": "accepts", "escapedName": "accepts",
"rawSpec": "~1.3.7", "rawSpec": "~1.3.5",
"saveSpec": null, "saveSpec": null,
"fetchSpec": "~1.3.7" "fetchSpec": "~1.3.5"
}, },
"_requiredBy": [ "_requiredBy": [
"/express" "/compression",
"/engine.io",
"/express",
"/serve-index"
], ],
"_resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", "_resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
"_shasum": "531bc726517a3b2b41f850021c6cc15eaab507cd", "_shasum": "531bc726517a3b2b41f850021c6cc15eaab507cd",
"_spec": "accepts@~1.3.7", "_spec": "accepts@~1.3.5",
"_where": "D:\\tftapp\\node_modules\\express", "_where": "D:\\TFTPaths\\node_modules\\compression",
"bugs": { "bugs": {
"url": "https://github.com/jshttp/accepts/issues" "url": "https://github.com/jshttp/accepts/issues"
}, },

13
node_modules/array-flatten/README.md generated vendored
View file

@ -5,7 +5,7 @@
[![Build status][travis-image]][travis-url] [![Build status][travis-image]][travis-url]
[![Test coverage][coveralls-image]][coveralls-url] [![Test coverage][coveralls-image]][coveralls-url]
> Flatten an array of nested arrays into a single flat array. Accepts an optional depth. > Flatten nested arrays.
## Installation ## Installation
@ -21,14 +21,21 @@ var flatten = require('array-flatten')
flatten([1, [2, [3, [4, [5], 6], 7], 8], 9]) flatten([1, [2, [3, [4, [5], 6], 7], 8], 9])
//=> [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) flatten.depth([1, [2, [3, [4, [5], 6], 7], 8], 9], 2)
//=> [1, 2, 3, [4, [5], 6], 7, 8, 9] //=> [1, 2, 3, [4, [5], 6], 7, 8, 9]
(function () { (function () {
flatten(arguments) //=> [1, 2, 3] flatten.from(arguments) //=> [1, 2, 3]
})(1, [2, 3]) })(1, [2, 3])
``` ```
### Methods
* **flatten(array)** Flatten a nested array structure
* **flatten.from(arrayish)** Flatten an array-like structure (E.g. arguments)
* **flatten.depth(array, depth)** Flatten a nested array structure with a specific depth
* **flatten.fromDepth(arrayish, depth)** Flatten an array-like structure with a specific depth
## License ## License
MIT MIT

View file

@ -3,43 +3,78 @@
/** /**
* Expose `arrayFlatten`. * Expose `arrayFlatten`.
*/ */
module.exports = arrayFlatten module.exports = flatten
module.exports.from = flattenFrom
module.exports.depth = flattenDepth
module.exports.fromDepth = flattenFromDepth
/** /**
* Recursive flatten function with depth. * Flatten an array.
* *
* @param {Array} array * @param {Array} array
* @param {Array} result
* @param {Number} depth
* @return {Array} * @return {Array}
*/ */
function flattenWithDepth (array, result, depth) { function flatten (array) {
for (var i = 0; i < array.length; i++) { if (!Array.isArray(array)) {
var value = array[i] throw new TypeError('Expected value to be an array')
if (depth > 0 && Array.isArray(value)) {
flattenWithDepth(value, result, depth - 1)
} else {
result.push(value)
}
} }
return result return flattenFrom(array)
} }
/** /**
* Recursive flatten function. Omitting depth is slightly faster. * Flatten an array-like structure.
*
* @param {Array} array
* @return {Array}
*/
function flattenFrom (array) {
return flattenDown(array, [])
}
/**
* Flatten an array-like structure with depth.
*
* @param {Array} array
* @param {number} depth
* @return {Array}
*/
function flattenDepth (array, depth) {
if (!Array.isArray(array)) {
throw new TypeError('Expected value to be an array')
}
return flattenFromDepth(array, depth)
}
/**
* Flatten an array-like structure with depth.
*
* @param {Array} array
* @param {number} depth
* @return {Array}
*/
function flattenFromDepth (array, depth) {
if (typeof depth !== 'number') {
throw new TypeError('Expected the depth to be a number')
}
return flattenDownDepth(array, [], depth)
}
/**
* Flatten an array indefinitely.
* *
* @param {Array} array * @param {Array} array
* @param {Array} result * @param {Array} result
* @return {Array} * @return {Array}
*/ */
function flattenForever (array, result) { function flattenDown (array, result) {
for (var i = 0; i < array.length; i++) { for (var i = 0; i < array.length; i++) {
var value = array[i] var value = array[i]
if (Array.isArray(value)) { if (Array.isArray(value)) {
flattenForever(value, result) flattenDown(value, result)
} else { } else {
result.push(value) result.push(value)
} }
@ -49,16 +84,25 @@ function flattenForever (array, result) {
} }
/** /**
* Flatten an array, with the ability to define a depth. * Flatten an array with depth.
* *
* @param {Array} array * @param {Array} array
* @param {Number} depth * @param {Array} result
* @param {number} depth
* @return {Array} * @return {Array}
*/ */
function arrayFlatten (array, depth) { function flattenDownDepth (array, result, depth) {
if (depth == null) { depth--
return flattenForever(array, [])
for (var i = 0; i < array.length; i++) {
var value = array[i]
if (depth > -1 && Array.isArray(value)) {
flattenDownDepth(value, result, depth)
} else {
result.push(value)
}
} }
return flattenWithDepth(array, [], depth) return result
} }

View file

@ -1,27 +1,27 @@
{ {
"_from": "array-flatten@1.1.1", "_from": "array-flatten@^2.1.0",
"_id": "array-flatten@1.1.1", "_id": "array-flatten@2.1.2",
"_inBundle": false, "_inBundle": false,
"_integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", "_integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==",
"_location": "/array-flatten", "_location": "/array-flatten",
"_phantomChildren": {}, "_phantomChildren": {},
"_requested": { "_requested": {
"type": "version", "type": "range",
"registry": true, "registry": true,
"raw": "array-flatten@1.1.1", "raw": "array-flatten@^2.1.0",
"name": "array-flatten", "name": "array-flatten",
"escapedName": "array-flatten", "escapedName": "array-flatten",
"rawSpec": "1.1.1", "rawSpec": "^2.1.0",
"saveSpec": null, "saveSpec": null,
"fetchSpec": "1.1.1" "fetchSpec": "^2.1.0"
}, },
"_requiredBy": [ "_requiredBy": [
"/express" "/bonjour"
], ],
"_resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "_resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz",
"_shasum": "9a5f699051b1e7073328f2a008968b64ea2955d2", "_shasum": "24ef80a28c1a893617e2149b0c6d0d788293b099",
"_spec": "array-flatten@1.1.1", "_spec": "array-flatten@^2.1.0",
"_where": "D:\\tftapp\\node_modules\\express", "_where": "D:\\TFTPaths\\node_modules\\bonjour",
"author": { "author": {
"name": "Blake Embrey", "name": "Blake Embrey",
"email": "hello@blakeembrey.com", "email": "hello@blakeembrey.com",
@ -32,15 +32,16 @@
}, },
"bundleDependencies": false, "bundleDependencies": false,
"deprecated": false, "deprecated": false,
"description": "Flatten an array of nested arrays into a single flat array", "description": "Flatten nested arrays",
"devDependencies": { "devDependencies": {
"istanbul": "^0.3.13", "benchmarked": "^2.0.0",
"mocha": "^2.2.4", "istanbul": "^0.4.0",
"pre-commit": "^1.0.7", "mocha": "^3.1.2",
"standard": "^3.7.3" "standard": "^10.0.0"
}, },
"files": [ "files": [
"array-flatten.js", "array-flatten.js",
"array-flatten.d.ts",
"LICENSE" "LICENSE"
], ],
"homepage": "https://github.com/blakeembrey/array-flatten", "homepage": "https://github.com/blakeembrey/array-flatten",
@ -48,7 +49,9 @@
"array", "array",
"flatten", "flatten",
"arguments", "arguments",
"depth" "depth",
"fast",
"for"
], ],
"license": "MIT", "license": "MIT",
"main": "array-flatten.js", "main": "array-flatten.js",
@ -58,7 +61,12 @@
"url": "git://github.com/blakeembrey/array-flatten.git" "url": "git://github.com/blakeembrey/array-flatten.git"
}, },
"scripts": { "scripts": {
"test": "istanbul cover _mocha -- -R spec" "benchmark": "node benchmark",
"lint": "standard",
"test": "npm run lint && npm run test-cov",
"test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- -R spec --bail",
"test-spec": "mocha -R spec --bail"
}, },
"version": "1.1.1" "typings": "array-flatten.d.ts",
"version": "2.1.2"
} }

View file

@ -16,12 +16,13 @@
"fetchSpec": "1.19.0" "fetchSpec": "1.19.0"
}, },
"_requiredBy": [ "_requiredBy": [
"/express" "/express",
"/karma"
], ],
"_resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", "_resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
"_shasum": "96b2709e57c9c4e09a6fd66a8fd979844f69f08a", "_shasum": "96b2709e57c9c4e09a6fd66a8fd979844f69f08a",
"_spec": "body-parser@1.19.0", "_spec": "body-parser@1.19.0",
"_where": "D:\\tftapp\\node_modules\\express", "_where": "D:\\TFTPaths\\node_modules\\express",
"bugs": { "bugs": {
"url": "https://github.com/expressjs/body-parser/issues" "url": "https://github.com/expressjs/body-parser/issues"
}, },

5
node_modules/bytes/History.md generated vendored
View file

@ -1,8 +1,3 @@
3.1.0 / 2019-01-22
==================
* Add petabyte (`pb`) support
3.0.0 / 2017-08-31 3.0.0 / 2017-08-31
================== ==================

13
node_modules/bytes/Readme.md generated vendored
View file

@ -83,7 +83,6 @@ Supported units and abbreviations are as follows and are case-insensitive:
* `mb` for megabytes * `mb` for megabytes
* `gb` for gigabytes * `gb` for gigabytes
* `tb` for terabytes * `tb` for terabytes
* `pb` for petabytes
The units are in powers of two, not ten. This means 1kb = 1024b according to this parser. The units are in powers of two, not ten. This means 1kb = 1024b according to this parser.
@ -109,18 +108,18 @@ bytes('1024');
// output: 1024 // output: 1024
bytes(1024); bytes(1024);
// output: 1KB // output: 1024
``` ```
## License ## License
[MIT](LICENSE) [MIT](LICENSE)
[coveralls-image]: https://badgen.net/coveralls/c/github/visionmedia/bytes.js/master [downloads-image]: https://img.shields.io/npm/dm/bytes.svg
[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 [downloads-url]: https://npmjs.org/package/bytes
[npm-image]: https://badgen.net/npm/node/bytes [npm-image]: https://img.shields.io/npm/v/bytes.svg
[npm-url]: https://npmjs.org/package/bytes [npm-url]: https://npmjs.org/package/bytes
[travis-image]: https://badgen.net/travis/visionmedia/bytes.js/master [travis-image]: https://img.shields.io/travis/visionmedia/bytes.js/master.svg
[travis-url]: https://travis-ci.org/visionmedia/bytes.js [travis-url]: https://travis-ci.org/visionmedia/bytes.js
[coveralls-image]: https://img.shields.io/coveralls/visionmedia/bytes.js/master.svg
[coveralls-url]: https://coveralls.io/r/visionmedia/bytes.js?branch=master

9
node_modules/bytes/index.js generated vendored
View file

@ -30,11 +30,10 @@ var map = {
kb: 1 << 10, kb: 1 << 10,
mb: 1 << 20, mb: 1 << 20,
gb: 1 << 30, gb: 1 << 30,
tb: Math.pow(1024, 4), tb: ((1 << 30) * 1024)
pb: Math.pow(1024, 5),
}; };
var parseRegExp = /^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i; var parseRegExp = /^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb)$/i;
/** /**
* Convert the given value in bytes into a string or parse to string to an integer in bytes. * Convert the given value in bytes into a string or parse to string to an integer in bytes.
@ -94,9 +93,7 @@ function format(value, options) {
var unit = (options && options.unit) || ''; var unit = (options && options.unit) || '';
if (!unit || !map[unit.toLowerCase()]) { if (!unit || !map[unit.toLowerCase()]) {
if (mag >= map.pb) { if (mag >= map.tb) {
unit = 'PB';
} else if (mag >= map.tb) {
unit = 'TB'; unit = 'TB';
} else if (mag >= map.gb) { } else if (mag >= map.gb) {
unit = 'GB'; unit = 'GB';

31
node_modules/bytes/package.json generated vendored
View file

@ -1,28 +1,27 @@
{ {
"_from": "bytes@3.1.0", "_from": "bytes@3.0.0",
"_id": "bytes@3.1.0", "_id": "bytes@3.0.0",
"_inBundle": false, "_inBundle": false,
"_integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", "_integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=",
"_location": "/bytes", "_location": "/bytes",
"_phantomChildren": {}, "_phantomChildren": {},
"_requested": { "_requested": {
"type": "version", "type": "version",
"registry": true, "registry": true,
"raw": "bytes@3.1.0", "raw": "bytes@3.0.0",
"name": "bytes", "name": "bytes",
"escapedName": "bytes", "escapedName": "bytes",
"rawSpec": "3.1.0", "rawSpec": "3.0.0",
"saveSpec": null, "saveSpec": null,
"fetchSpec": "3.1.0" "fetchSpec": "3.0.0"
}, },
"_requiredBy": [ "_requiredBy": [
"/body-parser", "/compression"
"/raw-body"
], ],
"_resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", "_resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
"_shasum": "f6cf7933a360e0588fa9fde85651cdc7f805d1f6", "_shasum": "d32815404d689699f85a4ea4fa8755dd13a96048",
"_spec": "bytes@3.1.0", "_spec": "bytes@3.0.0",
"_where": "D:\\tftapp\\node_modules\\body-parser", "_where": "D:\\TFTPaths\\node_modules\\compression",
"author": { "author": {
"name": "TJ Holowaychuk", "name": "TJ Holowaychuk",
"email": "tj@vision-media.ca", "email": "tj@vision-media.ca",
@ -45,9 +44,8 @@
"deprecated": false, "deprecated": false,
"description": "Utility to parse a string bytes to bytes and vice-versa", "description": "Utility to parse a string bytes to bytes and vice-versa",
"devDependencies": { "devDependencies": {
"eslint": "5.12.1", "mocha": "2.5.3",
"mocha": "5.2.0", "nyc": "10.3.2"
"nyc": "13.1.0"
}, },
"engines": { "engines": {
"node": ">= 0.8" "node": ">= 0.8"
@ -75,10 +73,9 @@
"url": "git+https://github.com/visionmedia/bytes.js.git" "url": "git+https://github.com/visionmedia/bytes.js.git"
}, },
"scripts": { "scripts": {
"lint": "eslint .",
"test": "mocha --check-leaks --reporter spec", "test": "mocha --check-leaks --reporter spec",
"test-ci": "nyc --reporter=text npm test", "test-ci": "nyc --reporter=text npm test",
"test-cov": "nyc --reporter=html --reporter=text npm test" "test-cov": "nyc --reporter=html --reporter=text npm test"
}, },
"version": "3.1.0" "version": "3.0.0"
} }

View file

@ -21,7 +21,7 @@
"_resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", "_resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
"_shasum": "e130caf7e7279087c5616c2007d0485698984fbd", "_shasum": "e130caf7e7279087c5616c2007d0485698984fbd",
"_spec": "content-disposition@0.5.3", "_spec": "content-disposition@0.5.3",
"_where": "D:\\tftapp\\node_modules\\express", "_where": "D:\\TFTPaths\\node_modules\\express",
"author": { "author": {
"name": "Douglas Christopher Wilson", "name": "Douglas Christopher Wilson",
"email": "doug@somethingdoug.com" "email": "doug@somethingdoug.com"

View file

@ -22,7 +22,7 @@
"_resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", "_resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
"_shasum": "e138cc75e040c727b1966fe5e5f8c9aee256fe3b", "_shasum": "e138cc75e040c727b1966fe5e5f8c9aee256fe3b",
"_spec": "content-type@~1.0.4", "_spec": "content-type@~1.0.4",
"_where": "D:\\tftapp\\node_modules\\express", "_where": "D:\\TFTPaths\\node_modules\\express",
"author": { "author": {
"name": "Douglas Christopher Wilson", "name": "Douglas Christopher Wilson",
"email": "doug@somethingdoug.com" "email": "doug@somethingdoug.com"

View file

@ -21,7 +21,7 @@
"_resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "_resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
"_shasum": "e303a882b342cc3ee8ca513a79999734dab3ae2c", "_shasum": "e303a882b342cc3ee8ca513a79999734dab3ae2c",
"_spec": "cookie-signature@1.0.6", "_spec": "cookie-signature@1.0.6",
"_where": "D:\\tftapp\\node_modules\\express", "_where": "D:\\TFTPaths\\node_modules\\express",
"author": { "author": {
"name": "TJ Holowaychuk", "name": "TJ Holowaychuk",
"email": "tj@learnboost.com" "email": "tj@learnboost.com"

2
node_modules/cookie/package.json generated vendored
View file

@ -21,7 +21,7 @@
"_resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", "_resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
"_shasum": "beb437e7022b3b6d49019d088665303ebe9c14ba", "_shasum": "beb437e7022b3b6d49019d088665303ebe9c14ba",
"_spec": "cookie@0.4.0", "_spec": "cookie@0.4.0",
"_where": "D:\\tftapp\\node_modules\\express", "_where": "D:\\TFTPaths\\node_modules\\express",
"author": { "author": {
"name": "Roman Shtylman", "name": "Roman Shtylman",
"email": "shtylman@gmail.com" "email": "shtylman@gmail.com"

24
node_modules/debug/package.json generated vendored
View file

@ -1,30 +1,38 @@
{ {
"_from": "debug@2.6.9", "_from": "debug@^2.6.8",
"_id": "debug@2.6.9", "_id": "debug@2.6.9",
"_inBundle": false, "_inBundle": false,
"_integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "_integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"_location": "/debug", "_location": "/debug",
"_phantomChildren": {}, "_phantomChildren": {},
"_requested": { "_requested": {
"type": "version", "type": "range",
"registry": true, "registry": true,
"raw": "debug@2.6.9", "raw": "debug@^2.6.8",
"name": "debug", "name": "debug",
"escapedName": "debug", "escapedName": "debug",
"rawSpec": "2.6.9", "rawSpec": "^2.6.8",
"saveSpec": null, "saveSpec": null,
"fetchSpec": "2.6.9" "fetchSpec": "^2.6.8"
}, },
"_requiredBy": [ "_requiredBy": [
"/babel-traverse",
"/body-parser", "/body-parser",
"/compression",
"/connect",
"/expand-brackets",
"/express", "/express",
"/finalhandler", "/finalhandler",
"/send" "/portfinder",
"/send",
"/serve-index",
"/snapdragon",
"/stylus"
], ],
"_resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "_resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"_shasum": "5d128515df134ff327e90a4c93f4e077a536341f", "_shasum": "5d128515df134ff327e90a4c93f4e077a536341f",
"_spec": "debug@2.6.9", "_spec": "debug@^2.6.8",
"_where": "D:\\tftapp\\node_modules\\express", "_where": "D:\\TFTPaths\\node_modules\\babel-traverse",
"author": { "author": {
"name": "TJ Holowaychuk", "name": "TJ Holowaychuk",
"email": "tj@vision-media.ca" "email": "tj@vision-media.ca"

5
node_modules/depd/package.json generated vendored
View file

@ -19,12 +19,13 @@
"/body-parser", "/body-parser",
"/express", "/express",
"/http-errors", "/http-errors",
"/send" "/send",
"/serve-index/http-errors"
], ],
"_resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", "_resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
"_shasum": "9bcd52e14c097763e749b274c4346ed2e560b5a9", "_shasum": "9bcd52e14c097763e749b274c4346ed2e560b5a9",
"_spec": "depd@~1.1.2", "_spec": "depd@~1.1.2",
"_where": "D:\\tftapp\\node_modules\\express", "_where": "D:\\TFTPaths\\node_modules\\express",
"author": { "author": {
"name": "Douglas Christopher Wilson", "name": "Douglas Christopher Wilson",
"email": "doug@somethingdoug.com" "email": "doug@somethingdoug.com"

2
node_modules/destroy/package.json generated vendored
View file

@ -21,7 +21,7 @@
"_resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "_resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
"_shasum": "978857442c44749e4206613e37946205826abd80", "_shasum": "978857442c44749e4206613e37946205826abd80",
"_spec": "destroy@~1.0.4", "_spec": "destroy@~1.0.4",
"_where": "D:\\tftapp\\node_modules\\send", "_where": "D:\\TFTPaths\\node_modules\\send",
"author": { "author": {
"name": "Jonathan Ong", "name": "Jonathan Ong",
"email": "me@jongleberry.com", "email": "me@jongleberry.com",

2
node_modules/ee-first/package.json generated vendored
View file

@ -21,7 +21,7 @@
"_resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "_resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
"_shasum": "590c61156b0ae2f4f0255732a158b266bc56b21d", "_shasum": "590c61156b0ae2f4f0255732a158b266bc56b21d",
"_spec": "ee-first@1.1.1", "_spec": "ee-first@1.1.1",
"_where": "D:\\tftapp\\node_modules\\on-finished", "_where": "D:\\TFTPaths\\node_modules\\on-finished",
"author": { "author": {
"name": "Jonathan Ong", "name": "Jonathan Ong",
"email": "me@jongleberry.com", "email": "me@jongleberry.com",

View file

@ -24,7 +24,7 @@
"_resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "_resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
"_shasum": "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59", "_shasum": "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59",
"_spec": "encodeurl@~1.0.2", "_spec": "encodeurl@~1.0.2",
"_where": "D:\\tftapp\\node_modules\\express", "_where": "D:\\TFTPaths\\node_modules\\express",
"bugs": { "bugs": {
"url": "https://github.com/pillarjs/encodeurl/issues" "url": "https://github.com/pillarjs/encodeurl/issues"
}, },

View file

@ -19,12 +19,13 @@
"/express", "/express",
"/finalhandler", "/finalhandler",
"/send", "/send",
"/serve-index",
"/serve-static" "/serve-static"
], ],
"_resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "_resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
"_shasum": "0258eae4d3d0c0974de1c169188ef0051d1d1988", "_shasum": "0258eae4d3d0c0974de1c169188ef0051d1d1988",
"_spec": "escape-html@~1.0.3", "_spec": "escape-html@~1.0.3",
"_where": "D:\\tftapp\\node_modules\\express", "_where": "D:\\TFTPaths\\node_modules\\express",
"bugs": { "bugs": {
"url": "https://github.com/component/escape-html/issues" "url": "https://github.com/component/escape-html/issues"
}, },

2
node_modules/etag/package.json generated vendored
View file

@ -22,7 +22,7 @@
"_resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "_resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
"_shasum": "41ae2eeb65efa62268aebfea83ac7d79299b0887", "_shasum": "41ae2eeb65efa62268aebfea83ac7d79299b0887",
"_spec": "etag@~1.8.1", "_spec": "etag@~1.8.1",
"_where": "D:\\tftapp\\node_modules\\express", "_where": "D:\\TFTPaths\\node_modules\\express",
"bugs": { "bugs": {
"url": "https://github.com/jshttp/etag/issues" "url": "https://github.com/jshttp/etag/issues"
}, },

17
node_modules/express/package.json generated vendored
View file

@ -1,28 +1,27 @@
{ {
"_from": "express", "_from": "express@^4.17.1",
"_id": "express@4.17.1", "_id": "express@4.17.1",
"_inBundle": false, "_inBundle": false,
"_integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", "_integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
"_location": "/express", "_location": "/express",
"_phantomChildren": {}, "_phantomChildren": {},
"_requested": { "_requested": {
"type": "tag", "type": "range",
"registry": true, "registry": true,
"raw": "express", "raw": "express@^4.17.1",
"name": "express", "name": "express",
"escapedName": "express", "escapedName": "express",
"rawSpec": "", "rawSpec": "^4.17.1",
"saveSpec": null, "saveSpec": null,
"fetchSpec": "latest" "fetchSpec": "^4.17.1"
}, },
"_requiredBy": [ "_requiredBy": [
"#USER", "/webpack-dev-server"
"/"
], ],
"_resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", "_resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
"_shasum": "4491fc38605cf51f8629d39c2b5d026f98a4c134", "_shasum": "4491fc38605cf51f8629d39c2b5d026f98a4c134",
"_spec": "express", "_spec": "express@^4.17.1",
"_where": "D:\\tftapp", "_where": "D:\\TFTPaths\\node_modules\\webpack-dev-server",
"author": { "author": {
"name": "TJ Holowaychuk", "name": "TJ Holowaychuk",
"email": "tj@vision-media.ca" "email": "tj@vision-media.ca"

View file

@ -16,12 +16,13 @@
"fetchSpec": "~1.1.2" "fetchSpec": "~1.1.2"
}, },
"_requiredBy": [ "_requiredBy": [
"/connect",
"/express" "/express"
], ],
"_resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", "_resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
"_shasum": "b7e7d000ffd11938d0fdb053506f6ebabe9f587d", "_shasum": "b7e7d000ffd11938d0fdb053506f6ebabe9f587d",
"_spec": "finalhandler@~1.1.2", "_spec": "finalhandler@~1.1.2",
"_where": "D:\\tftapp\\node_modules\\express", "_where": "D:\\TFTPaths\\node_modules\\express",
"author": { "author": {
"name": "Douglas Christopher Wilson", "name": "Douglas Christopher Wilson",
"email": "doug@somethingdoug.com" "email": "doug@somethingdoug.com"

View file

@ -21,7 +21,7 @@
"_resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", "_resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
"_shasum": "98c23dab1175657b8c0573e8ceccd91b0ff18c84", "_shasum": "98c23dab1175657b8c0573e8ceccd91b0ff18c84",
"_spec": "forwarded@~0.1.2", "_spec": "forwarded@~0.1.2",
"_where": "D:\\tftapp\\node_modules\\proxy-addr", "_where": "D:\\TFTPaths\\node_modules\\proxy-addr",
"bugs": { "bugs": {
"url": "https://github.com/jshttp/forwarded/issues" "url": "https://github.com/jshttp/forwarded/issues"
}, },

2
node_modules/fresh/package.json generated vendored
View file

@ -22,7 +22,7 @@
"_resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "_resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
"_shasum": "3d8cadd90d976569fa835ab1f8e4b23a105605a7", "_shasum": "3d8cadd90d976569fa835ab1f8e4b23a105605a7",
"_spec": "fresh@0.5.2", "_spec": "fresh@0.5.2",
"_where": "D:\\tftapp\\node_modules\\express", "_where": "D:\\TFTPaths\\node_modules\\express",
"author": { "author": {
"name": "TJ Holowaychuk", "name": "TJ Holowaychuk",
"email": "tj@vision-media.ca", "email": "tj@vision-media.ca",

View file

@ -23,7 +23,7 @@
"_resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", "_resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
"_shasum": "4f5029cf13239f31036e5b2e55292bcfbcc85c8f", "_shasum": "4f5029cf13239f31036e5b2e55292bcfbcc85c8f",
"_spec": "http-errors@1.7.2", "_spec": "http-errors@1.7.2",
"_where": "D:\\tftapp\\node_modules\\body-parser", "_where": "D:\\TFTPaths\\node_modules\\body-parser",
"author": { "author": {
"name": "Jonathan Ong", "name": "Jonathan Ong",
"email": "me@jongleberry.com", "email": "me@jongleberry.com",

View file

@ -17,12 +17,14 @@
}, },
"_requiredBy": [ "_requiredBy": [
"/body-parser", "/body-parser",
"/encoding",
"/external-editor",
"/raw-body" "/raw-body"
], ],
"_resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "_resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
"_shasum": "2022b4b25fbddc21d2f524974a474aafe733908b", "_shasum": "2022b4b25fbddc21d2f524974a474aafe733908b",
"_spec": "iconv-lite@0.4.24", "_spec": "iconv-lite@0.4.24",
"_where": "D:\\tftapp\\node_modules\\body-parser", "_where": "D:\\TFTPaths\\node_modules\\body-parser",
"author": { "author": {
"name": "Alexander Shtuchkin", "name": "Alexander Shtuchkin",
"email": "ashtuchkin@gmail.com" "email": "ashtuchkin@gmail.com"

2
node_modules/inherits/inherits.js generated vendored
View file

@ -1,7 +1,9 @@
try { try {
var util = require('util'); var util = require('util');
/* istanbul ignore next */
if (typeof util.inherits !== 'function') throw ''; if (typeof util.inherits !== 'function') throw '';
module.exports = util.inherits; module.exports = util.inherits;
} catch (e) { } catch (e) {
/* istanbul ignore next */
module.exports = require('./inherits_browser.js'); module.exports = require('./inherits_browser.js');
} }

View file

@ -1,23 +1,27 @@
if (typeof Object.create === 'function') { if (typeof Object.create === 'function') {
// implementation from standard node.js 'util' module // implementation from standard node.js 'util' module
module.exports = function inherits(ctor, superCtor) { module.exports = function inherits(ctor, superCtor) {
ctor.super_ = superCtor if (superCtor) {
ctor.prototype = Object.create(superCtor.prototype, { ctor.super_ = superCtor
constructor: { ctor.prototype = Object.create(superCtor.prototype, {
value: ctor, constructor: {
enumerable: false, value: ctor,
writable: true, enumerable: false,
configurable: true writable: true,
} configurable: true
}); }
})
}
}; };
} else { } else {
// old school shim for old browsers // old school shim for old browsers
module.exports = function inherits(ctor, superCtor) { module.exports = function inherits(ctor, superCtor) {
ctor.super_ = superCtor if (superCtor) {
var TempCtor = function () {} ctor.super_ = superCtor
TempCtor.prototype = superCtor.prototype var TempCtor = function () {}
ctor.prototype = new TempCtor() TempCtor.prototype = superCtor.prototype
ctor.prototype.constructor = ctor ctor.prototype = new TempCtor()
ctor.prototype.constructor = ctor
}
} }
} }

62
node_modules/inherits/package.json generated vendored
View file

@ -1,27 +1,59 @@
{ {
"_from": "inherits@2.0.3", "_from": "inherits@~2.0.3",
"_id": "inherits@2.0.3", "_id": "inherits@2.0.4",
"_inBundle": false, "_inBundle": false,
"_integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "_integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"_location": "/inherits", "_location": "/inherits",
"_phantomChildren": {}, "_phantomChildren": {},
"_requested": { "_requested": {
"type": "version", "type": "range",
"registry": true, "registry": true,
"raw": "inherits@2.0.3", "raw": "inherits@~2.0.3",
"name": "inherits", "name": "inherits",
"escapedName": "inherits", "escapedName": "inherits",
"rawSpec": "2.0.3", "rawSpec": "~2.0.3",
"saveSpec": null, "saveSpec": null,
"fetchSpec": "2.0.3" "fetchSpec": "~2.0.3"
}, },
"_requiredBy": [ "_requiredBy": [
"/http-errors" "/@angular/compiler-cli/chokidar",
"/asn1.js",
"/browserify-aes",
"/browserify-des",
"/browserify-sign",
"/cipher-base",
"/concat-stream",
"/create-hash",
"/create-hmac",
"/crypto-browserify",
"/des.js",
"/duplexify",
"/elliptic",
"/flush-write-stream",
"/from2",
"/glob",
"/hash-base",
"/hash.js",
"/hpack.js",
"/karma/chokidar",
"/md5.js",
"/parallel-transform",
"/pumpify",
"/readable-stream",
"/ripemd160",
"/sha.js",
"/sockjs-client",
"/spdy-transport/readable-stream",
"/stream-browserify",
"/stream-http",
"/stylus/glob",
"/watchpack/chokidar",
"/webpack-dev-server/chokidar"
], ],
"_resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "_resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"_shasum": "633c2c83e3da42a502f52466022480f4208261de", "_shasum": "0fa2c64f932917c3433a0ded55363aae37416b7c",
"_spec": "inherits@2.0.3", "_spec": "inherits@~2.0.3",
"_where": "D:\\tftapp\\node_modules\\http-errors", "_where": "D:\\TFTPaths\\node_modules\\readable-stream",
"browser": "./inherits_browser.js", "browser": "./inherits_browser.js",
"bugs": { "bugs": {
"url": "https://github.com/isaacs/inherits/issues" "url": "https://github.com/isaacs/inherits/issues"
@ -30,7 +62,7 @@
"deprecated": false, "deprecated": false,
"description": "Browser-friendly inheritance fully compatible with standard node.js inherits()", "description": "Browser-friendly inheritance fully compatible with standard node.js inherits()",
"devDependencies": { "devDependencies": {
"tap": "^7.1.0" "tap": "^14.2.4"
}, },
"files": [ "files": [
"inherits.js", "inherits.js",
@ -55,7 +87,7 @@
"url": "git://github.com/isaacs/inherits.git" "url": "git://github.com/isaacs/inherits.git"
}, },
"scripts": { "scripts": {
"test": "node test" "test": "tap"
}, },
"version": "2.0.3" "version": "2.0.4"
} }

View file

@ -16,12 +16,13 @@
"fetchSpec": "1.9.0" "fetchSpec": "1.9.0"
}, },
"_requiredBy": [ "_requiredBy": [
"/internal-ip",
"/proxy-addr" "/proxy-addr"
], ],
"_resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", "_resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
"_shasum": "37df74e430a0e47550fe54a2defe30d8acd95f65", "_shasum": "37df74e430a0e47550fe54a2defe30d8acd95f65",
"_spec": "ipaddr.js@1.9.0", "_spec": "ipaddr.js@1.9.0",
"_where": "D:\\tftapp\\node_modules\\proxy-addr", "_where": "D:\\TFTPaths\\node_modules\\proxy-addr",
"author": { "author": {
"name": "whitequark", "name": "whitequark",
"email": "whitequark@whitequark.org" "email": "whitequark@whitequark.org"

View file

@ -21,7 +21,7 @@
"_resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "_resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
"_shasum": "8710d7af0aa626f8fffa1ce00168545263255748", "_shasum": "8710d7af0aa626f8fffa1ce00168545263255748",
"_spec": "media-typer@0.3.0", "_spec": "media-typer@0.3.0",
"_where": "D:\\tftapp\\node_modules\\type-is", "_where": "D:\\TFTPaths\\node_modules\\type-is",
"author": { "author": {
"name": "Douglas Christopher Wilson", "name": "Douglas Christopher Wilson",
"email": "doug@somethingdoug.com" "email": "doug@somethingdoug.com"

View file

@ -21,7 +21,7 @@
"_resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", "_resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
"_shasum": "b00aaa556dd8b44568150ec9d1b953f3f90cbb61", "_shasum": "b00aaa556dd8b44568150ec9d1b953f3f90cbb61",
"_spec": "merge-descriptors@1.0.1", "_spec": "merge-descriptors@1.0.1",
"_where": "D:\\tftapp\\node_modules\\express", "_where": "D:\\TFTPaths\\node_modules\\express",
"author": { "author": {
"name": "Jonathan Ong", "name": "Jonathan Ong",
"email": "me@jongleberry.com", "email": "me@jongleberry.com",

2
node_modules/methods/package.json generated vendored
View file

@ -21,7 +21,7 @@
"_resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "_resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
"_shasum": "5529a4d67654134edcc5266656835b0f851afcee", "_shasum": "5529a4d67654134edcc5266656835b0f851afcee",
"_spec": "methods@~1.1.2", "_spec": "methods@~1.1.2",
"_where": "D:\\tftapp\\node_modules\\express", "_where": "D:\\TFTPaths\\node_modules\\express",
"browser": { "browser": {
"http": false "http": false
}, },

3
node_modules/mime-db/package.json generated vendored
View file

@ -16,12 +16,13 @@
"fetchSpec": "1.40.0" "fetchSpec": "1.40.0"
}, },
"_requiredBy": [ "_requiredBy": [
"/compressible",
"/mime-types" "/mime-types"
], ],
"_resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", "_resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
"_shasum": "a65057e998db090f732a68f6c276d387d4126c32", "_shasum": "a65057e998db090f732a68f6c276d387d4126c32",
"_spec": "mime-db@1.40.0", "_spec": "mime-db@1.40.0",
"_where": "D:\\tftapp\\node_modules\\mime-types", "_where": "D:\\TFTPaths\\node_modules\\mime-types",
"bugs": { "bugs": {
"url": "https://github.com/jshttp/mime-db/issues" "url": "https://github.com/jshttp/mime-db/issues"
}, },

15
node_modules/mime-types/package.json generated vendored
View file

@ -1,5 +1,5 @@
{ {
"_from": "mime-types@~2.1.24", "_from": "mime-types@~2.1.19",
"_id": "mime-types@2.1.24", "_id": "mime-types@2.1.24",
"_inBundle": false, "_inBundle": false,
"_integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", "_integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
@ -8,21 +8,24 @@
"_requested": { "_requested": {
"type": "range", "type": "range",
"registry": true, "registry": true,
"raw": "mime-types@~2.1.24", "raw": "mime-types@~2.1.19",
"name": "mime-types", "name": "mime-types",
"escapedName": "mime-types", "escapedName": "mime-types",
"rawSpec": "~2.1.24", "rawSpec": "~2.1.19",
"saveSpec": null, "saveSpec": null,
"fetchSpec": "~2.1.24" "fetchSpec": "~2.1.19"
}, },
"_requiredBy": [ "_requiredBy": [
"/accepts", "/accepts",
"/form-data",
"/request",
"/serve-index",
"/type-is" "/type-is"
], ],
"_resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", "_resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
"_shasum": "b6f8d0b3e951efb77dedeca194cff6d16f676f81", "_shasum": "b6f8d0b3e951efb77dedeca194cff6d16f676f81",
"_spec": "mime-types@~2.1.24", "_spec": "mime-types@~2.1.19",
"_where": "D:\\tftapp\\node_modules\\accepts", "_where": "D:\\TFTPaths\\node_modules\\request",
"bugs": { "bugs": {
"url": "https://github.com/jshttp/mime-types/issues" "url": "https://github.com/jshttp/mime-types/issues"
}, },

15
node_modules/mime/package.json generated vendored
View file

@ -1,27 +1,28 @@
{ {
"_from": "mime@1.6.0", "_from": "mime@^1.4.1",
"_id": "mime@1.6.0", "_id": "mime@1.6.0",
"_inBundle": false, "_inBundle": false,
"_integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "_integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
"_location": "/mime", "_location": "/mime",
"_phantomChildren": {}, "_phantomChildren": {},
"_requested": { "_requested": {
"type": "version", "type": "range",
"registry": true, "registry": true,
"raw": "mime@1.6.0", "raw": "mime@^1.4.1",
"name": "mime", "name": "mime",
"escapedName": "mime", "escapedName": "mime",
"rawSpec": "1.6.0", "rawSpec": "^1.4.1",
"saveSpec": null, "saveSpec": null,
"fetchSpec": "1.6.0" "fetchSpec": "^1.4.1"
}, },
"_requiredBy": [ "_requiredBy": [
"/less",
"/send" "/send"
], ],
"_resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "_resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
"_shasum": "32cd9e5c64553bd58d19a568af452acff04981b1", "_shasum": "32cd9e5c64553bd58d19a568af452acff04981b1",
"_spec": "mime@1.6.0", "_spec": "mime@^1.4.1",
"_where": "D:\\tftapp\\node_modules\\send", "_where": "D:\\TFTPaths\\node_modules\\less",
"author": { "author": {
"name": "Robert Kieffer", "name": "Robert Kieffer",
"email": "robert@broofa.com", "email": "robert@broofa.com",

11
node_modules/ms/package.json generated vendored
View file

@ -16,12 +16,19 @@
"fetchSpec": "2.0.0" "fetchSpec": "2.0.0"
}, },
"_requiredBy": [ "_requiredBy": [
"/debug" "/debug",
"/engine.io-client/debug",
"/engine.io/debug",
"/http-proxy-agent/debug",
"/humanize-ms",
"/socket.io-client/debug",
"/socket.io-parser/debug",
"/socket.io/debug"
], ],
"_resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "_resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"_shasum": "5608aeadfc00be6c2901df5f9861788de0d597c8", "_shasum": "5608aeadfc00be6c2901df5f9861788de0d597c8",
"_spec": "ms@2.0.0", "_spec": "ms@2.0.0",
"_where": "D:\\tftapp\\node_modules\\debug", "_where": "D:\\TFTPaths\\node_modules\\debug",
"bugs": { "bugs": {
"url": "https://github.com/zeit/ms/issues" "url": "https://github.com/zeit/ms/issues"
}, },

View file

@ -21,7 +21,7 @@
"_resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", "_resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
"_shasum": "feacf7ccf525a77ae9634436a64883ffeca346fb", "_shasum": "feacf7ccf525a77ae9634436a64883ffeca346fb",
"_spec": "negotiator@0.6.2", "_spec": "negotiator@0.6.2",
"_where": "D:\\tftapp\\node_modules\\accepts", "_where": "D:\\TFTPaths\\node_modules\\accepts",
"bugs": { "bugs": {
"url": "https://github.com/jshttp/negotiator/issues" "url": "https://github.com/jshttp/negotiator/issues"
}, },

View file

@ -24,7 +24,7 @@
"_resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", "_resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
"_shasum": "20f1336481b083cd75337992a16971aa2d906947", "_shasum": "20f1336481b083cd75337992a16971aa2d906947",
"_spec": "on-finished@~2.3.0", "_spec": "on-finished@~2.3.0",
"_where": "D:\\tftapp\\node_modules\\express", "_where": "D:\\TFTPaths\\node_modules\\express",
"bugs": { "bugs": {
"url": "https://github.com/jshttp/on-finished/issues" "url": "https://github.com/jshttp/on-finished/issues"
}, },

4
node_modules/parseurl/package.json generated vendored
View file

@ -16,14 +16,16 @@
"fetchSpec": "~1.3.3" "fetchSpec": "~1.3.3"
}, },
"_requiredBy": [ "_requiredBy": [
"/connect",
"/express", "/express",
"/finalhandler", "/finalhandler",
"/serve-index",
"/serve-static" "/serve-static"
], ],
"_resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "_resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
"_shasum": "9da19e7bee8d12dff0513ed5b76957793bc2e8d4", "_shasum": "9da19e7bee8d12dff0513ed5b76957793bc2e8d4",
"_spec": "parseurl@~1.3.3", "_spec": "parseurl@~1.3.3",
"_where": "D:\\tftapp\\node_modules\\express", "_where": "D:\\TFTPaths\\node_modules\\express",
"bugs": { "bugs": {
"url": "https://github.com/pillarjs/parseurl/issues" "url": "https://github.com/pillarjs/parseurl/issues"
}, },

View file

@ -21,7 +21,7 @@
"_resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "_resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
"_shasum": "df604178005f522f15eb4490e7247a1bfaa67f8c", "_shasum": "df604178005f522f15eb4490e7247a1bfaa67f8c",
"_spec": "path-to-regexp@0.1.7", "_spec": "path-to-regexp@0.1.7",
"_where": "D:\\tftapp\\node_modules\\express", "_where": "D:\\TFTPaths\\node_modules\\express",
"bugs": { "bugs": {
"url": "https://github.com/component/path-to-regexp/issues" "url": "https://github.com/component/path-to-regexp/issues"
}, },

View file

@ -21,7 +21,7 @@
"_resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", "_resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
"_shasum": "34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34", "_shasum": "34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34",
"_spec": "proxy-addr@~2.0.5", "_spec": "proxy-addr@~2.0.5",
"_where": "D:\\tftapp\\node_modules\\express", "_where": "D:\\TFTPaths\\node_modules\\express",
"author": { "author": {
"name": "Douglas Christopher Wilson", "name": "Douglas Christopher Wilson",
"email": "doug@somethingdoug.com" "email": "doug@somethingdoug.com"

2
node_modules/qs/.editorconfig generated vendored
View file

@ -7,7 +7,7 @@ end_of_line = lf
charset = utf-8 charset = utf-8
trim_trailing_whitespace = true trim_trailing_whitespace = true
insert_final_newline = true insert_final_newline = true
max_line_length = 160 max_line_length = 140
[test/*] [test/*]
max_line_length = off max_line_length = off

6
node_modules/qs/.eslintrc generated vendored
View file

@ -9,10 +9,8 @@
"func-name-matching": 0, "func-name-matching": 0,
"id-length": [2, { "min": 1, "max": 25, "properties": "never" }], "id-length": [2, { "min": 1, "max": 25, "properties": "never" }],
"indent": [2, 4], "indent": [2, 4],
"max-lines-per-function": [2, { "max": 150 }], "max-params": [2, 12],
"max-params": [2, 14], "max-statements": [2, 45],
"max-statements": [2, 52],
"multiline-comment-style": 0,
"no-continue": 1, "no-continue": 1,
"no-magic-numbers": 0, "no-magic-numbers": 0,
"no-restricted-syntax": [2, "BreakStatement", "DebuggerStatement", "ForInStatement", "LabeledStatement", "WithStatement"], "no-restricted-syntax": [2, "BreakStatement", "DebuggerStatement", "ForInStatement", "LabeledStatement", "WithStatement"],

30
node_modules/qs/CHANGELOG.md generated vendored
View file

@ -1,33 +1,3 @@
## **6.7.0**
- [New] `stringify`/`parse`: add `comma` as an `arrayFormat` option (#276, #219)
- [Fix] correctly parse nested arrays (#212)
- [Fix] `utils.merge`: avoid a crash with a null target and a truthy non-array source, also with an array source
- [Robustness] `stringify`: cache `Object.prototype.hasOwnProperty`
- [Refactor] `utils`: `isBuffer`: small tweak; add tests
- [Refactor] use cached `Array.isArray`
- [Refactor] `parse`/`stringify`: make a function to normalize the options
- [Refactor] `utils`: reduce observable [[Get]]s
- [Refactor] `stringify`/`utils`: cache `Array.isArray`
- [Tests] always use `String(x)` over `x.toString()`
- [Tests] fix Buffer tests to work in node < 4.5 and node < 5.10
- [Tests] temporarily allow coverage to fail
## **6.6.0**
- [New] Add support for iso-8859-1, utf8 "sentinel" and numeric entities (#268)
- [New] move two-value combine to a `utils` function (#189)
- [Fix] `stringify`: fix a crash with `strictNullHandling` and a custom `filter`/`serializeDate` (#279)
- [Fix] when `parseArrays` is false, properly handle keys ending in `[]` (#260)
- [Fix] `stringify`: do not crash in an obscure combo of `interpretNumericEntities`, a bad custom `decoder`, & `iso-8859-1`
- [Fix] `utils`: `merge`: fix crash when `source` is a truthy primitive & no options are provided
- [refactor] `stringify`: Avoid arr = arr.concat(...), push to the existing instance (#269)
- [Refactor] `parse`: only need to reassign the var once
- [Refactor] `parse`/`stringify`: clean up `charset` options checking; fix defaults
- [Refactor] add missing defaults
- [Refactor] `parse`: one less `concat` call
- [Refactor] `utils`: `compactQueue`: make it explicitly side-effecting
- [Dev Deps] update `browserify`, `eslint`, `@ljharb/eslint-config`, `iconv-lite`, `safe-publish-latest`, `tape`
- [Tests] up to `node` `v10.10`, `v9.11`, `v8.12`, `v6.14`, `v4.9`; pin included builds to LTS
## **6.5.2** ## **6.5.2**
- [Fix] use `safer-buffer` instead of `Buffer` constructor - [Fix] use `safer-buffer` instead of `Buffer` constructor
- [Refactor] utils: `module.exports` one thing, instead of mutating `exports` (#230) - [Refactor] utils: `module.exports` one thing, instead of mutating `exports` (#230)

101
node_modules/qs/README.md generated vendored
View file

@ -146,62 +146,6 @@ var withDots = qs.parse('a.b=c', { allowDots: true });
assert.deepEqual(withDots, { a: { b: 'c' } }); assert.deepEqual(withDots, { a: { b: 'c' } });
``` ```
If you have to deal with legacy browsers or services, there's
also support for decoding percent-encoded octets as iso-8859-1:
```javascript
var oldCharset = qs.parse('a=%A7', { charset: 'iso-8859-1' });
assert.deepEqual(oldCharset, { a: '§' });
```
Some services add an initial `utf8=✓` value to forms so that old
Internet Explorer versions are more likely to submit the form as
utf-8. Additionally, the server can check the value against wrong
encodings of the checkmark character and detect that a query string
or `application/x-www-form-urlencoded` body was *not* sent as
utf-8, eg. if the form had an `accept-charset` parameter or the
containing page had a different character set.
**qs** supports this mechanism via the `charsetSentinel` option.
If specified, the `utf8` parameter will be omitted from the
returned object. It will be used to switch to `iso-8859-1`/`utf-8`
mode depending on how the checkmark is encoded.
**Important**: When you specify both the `charset` option and the
`charsetSentinel` option, the `charset` will be overridden when
the request contains a `utf8` parameter from which the actual
charset can be deduced. In that sense the `charset` will behave
as the default charset rather than the authoritative charset.
```javascript
var detectedAsUtf8 = qs.parse('utf8=%E2%9C%93&a=%C3%B8', {
charset: 'iso-8859-1',
charsetSentinel: true
});
assert.deepEqual(detectedAsUtf8, { a: 'ø' });
// Browsers encode the checkmark as &#10003; when submitting as iso-8859-1:
var detectedAsIso8859_1 = qs.parse('utf8=%26%2310003%3B&a=%F8', {
charset: 'utf-8',
charsetSentinel: true
});
assert.deepEqual(detectedAsIso8859_1, { a: 'ø' });
```
If you want to decode the `&#...;` syntax to the actual character,
you can specify the `interpretNumericEntities` option as well:
```javascript
var detectedAsIso8859_1 = qs.parse('a=%26%239786%3B', {
charset: 'iso-8859-1',
interpretNumericEntities: true
});
assert.deepEqual(detectedAsIso8859_1, { a: '☺' });
```
It also works when the charset has been detected in `charsetSentinel`
mode.
### Parsing Arrays ### Parsing Arrays
**qs** can also parse arrays using a similar `[]` notation: **qs** can also parse arrays using a similar `[]` notation:
@ -238,7 +182,7 @@ assert.deepEqual(withIndexedEmptyString, { a: ['b', '', 'c'] });
``` ```
**qs** will also limit specifying indices in an array to a maximum index of `20`. Any array members with an index of greater than `20` will **qs** will also limit specifying indices in an array to a maximum index of `20`. Any array members with an index of greater than `20` will
instead be converted to an object with the index as the key. This is needed to handle cases when someone sent, for example, `a[999999999]` and it will take significant time to iterate over this huge array. instead be converted to an object with the index as the key:
```javascript ```javascript
var withMaxIndex = qs.parse('a[100]=b'); var withMaxIndex = qs.parse('a[100]=b');
@ -273,13 +217,6 @@ var arraysOfObjects = qs.parse('a[][b]=c');
assert.deepEqual(arraysOfObjects, { a: [{ b: 'c' }] }); assert.deepEqual(arraysOfObjects, { a: [{ b: 'c' }] });
``` ```
Some people use comma to join array, **qs** can parse it:
```javascript
var arraysOfObjects = qs.parse('a=b,c', { comma: true })
assert.deepEqual(arraysOfObjects, { a: ['b', 'c'] })
```
(_this cannot convert nested objects, such as `a={b:1},{c:d}`_)
### Stringifying ### Stringifying
[](#preventEval) [](#preventEval)
@ -355,8 +292,6 @@ qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' })
// 'a[]=b&a[]=c' // 'a[]=b&a[]=c'
qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' }) qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' })
// 'a=b&a=c' // 'a=b&a=c'
qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'comma' })
// 'a=b,c'
``` ```
When objects are stringified, by default they use bracket notation: When objects are stringified, by default they use bracket notation:
@ -491,40 +426,10 @@ var nullsSkipped = qs.stringify({ a: 'b', c: null}, { skipNulls: true });
assert.equal(nullsSkipped, 'a=b'); assert.equal(nullsSkipped, 'a=b');
``` ```
If you're communicating with legacy systems, you can switch to `iso-8859-1`
using the `charset` option:
```javascript
var iso = qs.stringify({ æ: 'æ' }, { charset: 'iso-8859-1' });
assert.equal(iso, '%E6=%E6');
```
Characters that don't exist in `iso-8859-1` will be converted to numeric
entities, similar to what browsers do:
```javascript
var numeric = qs.stringify({ a: '☺' }, { charset: 'iso-8859-1' });
assert.equal(numeric, 'a=%26%239786%3B');
```
You can use the `charsetSentinel` option to announce the character by
including an `utf8=✓` parameter with the proper encoding if the checkmark,
similar to what Ruby on Rails and others do when submitting forms.
```javascript
var sentinel = qs.stringify({ a: '☺' }, { charsetSentinel: true });
assert.equal(sentinel, 'utf8=%E2%9C%93&a=%E2%98%BA');
var isoSentinel = qs.stringify({ a: 'æ' }, { charsetSentinel: true, charset: 'iso-8859-1' });
assert.equal(isoSentinel, 'utf8=%26%2310003%3B&a=%E6');
```
### Dealing with special character sets ### Dealing with special character sets
By default the encoding and decoding of characters is done in `utf-8`, By default the encoding and decoding of characters is done in `utf-8`. If you
and `iso-8859-1` support is also built in via the `charset` parameter. wish to encode querystrings to a different character set (i.e.
If you wish to encode querystrings to a different character set (i.e.
[Shift JIS](https://en.wikipedia.org/wiki/Shift_JIS)) you can use the [Shift JIS](https://en.wikipedia.org/wiki/Shift_JIS)) you can use the
[`qs-iconv`](https://github.com/martinheidegger/qs-iconv) library: [`qs-iconv`](https://github.com/martinheidegger/qs-iconv) library:

338
node_modules/qs/dist/qs.js generated vendored
View file

@ -42,63 +42,21 @@ var defaults = {
allowDots: false, allowDots: false,
allowPrototypes: false, allowPrototypes: false,
arrayLimit: 20, arrayLimit: 20,
charset: 'utf-8',
charsetSentinel: false,
comma: false,
decoder: utils.decode, decoder: utils.decode,
delimiter: '&', delimiter: '&',
depth: 5, depth: 5,
ignoreQueryPrefix: false,
interpretNumericEntities: false,
parameterLimit: 1000, parameterLimit: 1000,
parseArrays: true,
plainObjects: false, plainObjects: false,
strictNullHandling: false strictNullHandling: false
}; };
var interpretNumericEntities = function (str) {
return str.replace(/&#(\d+);/g, function ($0, numberStr) {
return String.fromCharCode(parseInt(numberStr, 10));
});
};
// This is what browsers will submit when the ✓ character occurs in an
// application/x-www-form-urlencoded body and the encoding of the page containing
// the form is iso-8859-1, or when the submitted form has an accept-charset
// attribute of iso-8859-1. Presumably also with other charsets that do not contain
// the ✓ character, such as us-ascii.
var isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('&#10003;')
// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.
var charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')
var parseValues = function parseQueryStringValues(str, options) { var parseValues = function parseQueryStringValues(str, options) {
var obj = {}; var obj = {};
var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, '') : str; var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, '') : str;
var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit; var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;
var parts = cleanStr.split(options.delimiter, limit); var parts = cleanStr.split(options.delimiter, limit);
var skipIndex = -1; // Keep track of where the utf8 sentinel was found
var i;
var charset = options.charset; for (var i = 0; i < parts.length; ++i) {
if (options.charsetSentinel) {
for (i = 0; i < parts.length; ++i) {
if (parts[i].indexOf('utf8=') === 0) {
if (parts[i] === charsetSentinel) {
charset = 'utf-8';
} else if (parts[i] === isoSentinel) {
charset = 'iso-8859-1';
}
skipIndex = i;
i = parts.length; // The eslint settings do not allow break;
}
}
}
for (i = 0; i < parts.length; ++i) {
if (i === skipIndex) {
continue;
}
var part = parts[i]; var part = parts[i];
var bracketEqualsPos = part.indexOf(']='); var bracketEqualsPos = part.indexOf(']=');
@ -106,23 +64,14 @@ var parseValues = function parseQueryStringValues(str, options) {
var key, val; var key, val;
if (pos === -1) { if (pos === -1) {
key = options.decoder(part, defaults.decoder, charset); key = options.decoder(part, defaults.decoder);
val = options.strictNullHandling ? null : ''; val = options.strictNullHandling ? null : '';
} else { } else {
key = options.decoder(part.slice(0, pos), defaults.decoder, charset); key = options.decoder(part.slice(0, pos), defaults.decoder);
val = options.decoder(part.slice(pos + 1), defaults.decoder, charset); val = options.decoder(part.slice(pos + 1), defaults.decoder);
} }
if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {
val = interpretNumericEntities(val);
}
if (val && options.comma && val.indexOf(',') > -1) {
val = val.split(',');
}
if (has.call(obj, key)) { if (has.call(obj, key)) {
obj[key] = utils.combine(obj[key], val); obj[key] = [].concat(obj[key]).concat(val);
} else { } else {
obj[key] = val; obj[key] = val;
} }
@ -138,15 +87,14 @@ var parseObject = function (chain, val, options) {
var obj; var obj;
var root = chain[i]; var root = chain[i];
if (root === '[]' && options.parseArrays) { if (root === '[]') {
obj = [].concat(leaf); obj = [];
obj = obj.concat(leaf);
} else { } else {
obj = options.plainObjects ? Object.create(null) : {}; obj = options.plainObjects ? Object.create(null) : {};
var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root; var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;
var index = parseInt(cleanRoot, 10); var index = parseInt(cleanRoot, 10);
if (!options.parseArrays && cleanRoot === '') { if (
obj = { 0: leaf };
} else if (
!isNaN(index) !isNaN(index)
&& root !== cleanRoot && root !== cleanRoot
&& String(index) === cleanRoot && String(index) === cleanRoot
@ -188,7 +136,8 @@ var parseKeys = function parseQueryStringKeys(givenKey, val, options) {
var keys = []; var keys = [];
if (parent) { if (parent) {
// If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties // If we aren't using plain objects, optionally prefix keys
// that would overwrite object prototype properties
if (!options.plainObjects && has.call(Object.prototype, parent)) { if (!options.plainObjects && has.call(Object.prototype, parent)) {
if (!options.allowPrototypes) { if (!options.allowPrototypes) {
return; return;
@ -220,41 +169,24 @@ var parseKeys = function parseQueryStringKeys(givenKey, val, options) {
return parseObject(keys, val, options); return parseObject(keys, val, options);
}; };
var normalizeParseOptions = function normalizeParseOptions(opts) { module.exports = function (str, opts) {
if (!opts) { var options = opts ? utils.assign({}, opts) : {};
return defaults;
}
if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') { if (options.decoder !== null && options.decoder !== undefined && typeof options.decoder !== 'function') {
throw new TypeError('Decoder has to be a function.'); throw new TypeError('Decoder has to be a function.');
} }
if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') { options.ignoreQueryPrefix = options.ignoreQueryPrefix === true;
throw new Error('The charset option must be either utf-8, iso-8859-1, or undefined'); options.delimiter = typeof options.delimiter === 'string' || utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter;
} options.depth = typeof options.depth === 'number' ? options.depth : defaults.depth;
var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset; options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : defaults.arrayLimit;
options.parseArrays = options.parseArrays !== false;
return { options.decoder = typeof options.decoder === 'function' ? options.decoder : defaults.decoder;
allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots, options.allowDots = typeof options.allowDots === 'boolean' ? options.allowDots : defaults.allowDots;
allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes, options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : defaults.plainObjects;
arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit, options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : defaults.allowPrototypes;
charset: charset, options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : defaults.parameterLimit;
charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel, options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;
comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,
decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,
delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,
depth: typeof opts.depth === 'number' ? opts.depth : defaults.depth,
ignoreQueryPrefix: opts.ignoreQueryPrefix === true,
interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,
parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,
parseArrays: opts.parseArrays !== false,
plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,
strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling
};
};
module.exports = function (str, opts) {
var options = normalizeParseOptions(opts);
if (str === '' || str === null || typeof str === 'undefined') { if (str === '' || str === null || typeof str === 'undefined') {
return options.plainObjects ? Object.create(null) : {}; return options.plainObjects ? Object.create(null) : {};
@ -280,13 +212,11 @@ module.exports = function (str, opts) {
var utils = require('./utils'); var utils = require('./utils');
var formats = require('./formats'); var formats = require('./formats');
var has = Object.prototype.hasOwnProperty;
var arrayPrefixGenerators = { var arrayPrefixGenerators = {
brackets: function brackets(prefix) { // eslint-disable-line func-name-matching brackets: function brackets(prefix) { // eslint-disable-line func-name-matching
return prefix + '[]'; return prefix + '[]';
}, },
comma: 'comma',
indices: function indices(prefix, key) { // eslint-disable-line func-name-matching indices: function indices(prefix, key) { // eslint-disable-line func-name-matching
return prefix + '[' + key + ']'; return prefix + '[' + key + ']';
}, },
@ -295,26 +225,13 @@ var arrayPrefixGenerators = {
} }
}; };
var isArray = Array.isArray;
var push = Array.prototype.push;
var pushToArray = function (arr, valueOrArray) {
push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);
};
var toISO = Date.prototype.toISOString; var toISO = Date.prototype.toISOString;
var defaults = { var defaults = {
addQueryPrefix: false,
allowDots: false,
charset: 'utf-8',
charsetSentinel: false,
delimiter: '&', delimiter: '&',
encode: true, encode: true,
encoder: utils.encode, encoder: utils.encode,
encodeValuesOnly: false, encodeValuesOnly: false,
formatter: formats.formatters[formats['default']],
// deprecated
indices: false,
serializeDate: function serializeDate(date) { // eslint-disable-line func-name-matching serializeDate: function serializeDate(date) { // eslint-disable-line func-name-matching
return toISO.call(date); return toISO.call(date);
}, },
@ -334,21 +251,16 @@ var stringify = function stringify( // eslint-disable-line func-name-matching
allowDots, allowDots,
serializeDate, serializeDate,
formatter, formatter,
encodeValuesOnly, encodeValuesOnly
charset
) { ) {
var obj = object; var obj = object;
if (typeof filter === 'function') { if (typeof filter === 'function') {
obj = filter(prefix, obj); obj = filter(prefix, obj);
} else if (obj instanceof Date) { } else if (obj instanceof Date) {
obj = serializeDate(obj); obj = serializeDate(obj);
} else if (generateArrayPrefix === 'comma' && isArray(obj)) { } else if (obj === null) {
obj = obj.join(',');
}
if (obj === null) {
if (strictNullHandling) { if (strictNullHandling) {
return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset) : prefix; return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder) : prefix;
} }
obj = ''; obj = '';
@ -356,8 +268,8 @@ var stringify = function stringify( // eslint-disable-line func-name-matching
if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) { if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) {
if (encoder) { if (encoder) {
var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset); var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder);
return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset))]; return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder))];
} }
return [formatter(prefix) + '=' + formatter(String(obj))]; return [formatter(prefix) + '=' + formatter(String(obj))];
} }
@ -369,7 +281,7 @@ var stringify = function stringify( // eslint-disable-line func-name-matching
} }
var objKeys; var objKeys;
if (isArray(filter)) { if (Array.isArray(filter)) {
objKeys = filter; objKeys = filter;
} else { } else {
var keys = Object.keys(obj); var keys = Object.keys(obj);
@ -383,10 +295,10 @@ var stringify = function stringify( // eslint-disable-line func-name-matching
continue; continue;
} }
if (isArray(obj)) { if (Array.isArray(obj)) {
pushToArray(values, stringify( values = values.concat(stringify(
obj[key], obj[key],
typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix, generateArrayPrefix(prefix, key),
generateArrayPrefix, generateArrayPrefix,
strictNullHandling, strictNullHandling,
skipNulls, skipNulls,
@ -396,11 +308,10 @@ var stringify = function stringify( // eslint-disable-line func-name-matching
allowDots, allowDots,
serializeDate, serializeDate,
formatter, formatter,
encodeValuesOnly, encodeValuesOnly
charset
)); ));
} else { } else {
pushToArray(values, stringify( values = values.concat(stringify(
obj[key], obj[key],
prefix + (allowDots ? '.' + key : '[' + key + ']'), prefix + (allowDots ? '.' + key : '[' + key + ']'),
generateArrayPrefix, generateArrayPrefix,
@ -412,8 +323,7 @@ var stringify = function stringify( // eslint-disable-line func-name-matching
allowDots, allowDots,
serializeDate, serializeDate,
formatter, formatter,
encodeValuesOnly, encodeValuesOnly
charset
)); ));
} }
} }
@ -421,63 +331,36 @@ var stringify = function stringify( // eslint-disable-line func-name-matching
return values; return values;
}; };
var normalizeStringifyOptions = function normalizeStringifyOptions(opts) { module.exports = function (object, opts) {
if (!opts) { var obj = object;
return defaults; var options = opts ? utils.assign({}, opts) : {};
}
if (opts.encoder !== null && opts.encoder !== undefined && typeof opts.encoder !== 'function') { if (options.encoder !== null && options.encoder !== undefined && typeof options.encoder !== 'function') {
throw new TypeError('Encoder has to be a function.'); throw new TypeError('Encoder has to be a function.');
} }
var charset = opts.charset || defaults.charset; var delimiter = typeof options.delimiter === 'undefined' ? defaults.delimiter : options.delimiter;
if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') { var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;
throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined'); var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : defaults.skipNulls;
var encode = typeof options.encode === 'boolean' ? options.encode : defaults.encode;
var encoder = typeof options.encoder === 'function' ? options.encoder : defaults.encoder;
var sort = typeof options.sort === 'function' ? options.sort : null;
var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots;
var serializeDate = typeof options.serializeDate === 'function' ? options.serializeDate : defaults.serializeDate;
var encodeValuesOnly = typeof options.encodeValuesOnly === 'boolean' ? options.encodeValuesOnly : defaults.encodeValuesOnly;
if (typeof options.format === 'undefined') {
options.format = formats['default'];
} else if (!Object.prototype.hasOwnProperty.call(formats.formatters, options.format)) {
throw new TypeError('Unknown format option provided.');
} }
var formatter = formats.formatters[options.format];
var format = formats['default'];
if (typeof opts.format !== 'undefined') {
if (!has.call(formats.formatters, opts.format)) {
throw new TypeError('Unknown format option provided.');
}
format = opts.format;
}
var formatter = formats.formatters[format];
var filter = defaults.filter;
if (typeof opts.filter === 'function' || isArray(opts.filter)) {
filter = opts.filter;
}
return {
addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,
allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,
charset: charset,
charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,
delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,
encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,
encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,
encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,
filter: filter,
formatter: formatter,
serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,
skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,
sort: typeof opts.sort === 'function' ? opts.sort : null,
strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling
};
};
module.exports = function (object, opts) {
var obj = object;
var options = normalizeStringifyOptions(opts);
var objKeys; var objKeys;
var filter; var filter;
if (typeof options.filter === 'function') { if (typeof options.filter === 'function') {
filter = options.filter; filter = options.filter;
obj = filter('', obj); obj = filter('', obj);
} else if (isArray(options.filter)) { } else if (Array.isArray(options.filter)) {
filter = options.filter; filter = options.filter;
objKeys = filter; objKeys = filter;
} }
@ -489,10 +372,10 @@ module.exports = function (object, opts) {
} }
var arrayFormat; var arrayFormat;
if (opts && opts.arrayFormat in arrayPrefixGenerators) { if (options.arrayFormat in arrayPrefixGenerators) {
arrayFormat = opts.arrayFormat; arrayFormat = options.arrayFormat;
} else if (opts && 'indices' in opts) { } else if ('indices' in options) {
arrayFormat = opts.indices ? 'indices' : 'repeat'; arrayFormat = options.indices ? 'indices' : 'repeat';
} else { } else {
arrayFormat = 'indices'; arrayFormat = 'indices';
} }
@ -503,46 +386,36 @@ module.exports = function (object, opts) {
objKeys = Object.keys(obj); objKeys = Object.keys(obj);
} }
if (options.sort) { if (sort) {
objKeys.sort(options.sort); objKeys.sort(sort);
} }
for (var i = 0; i < objKeys.length; ++i) { for (var i = 0; i < objKeys.length; ++i) {
var key = objKeys[i]; var key = objKeys[i];
if (options.skipNulls && obj[key] === null) { if (skipNulls && obj[key] === null) {
continue; continue;
} }
pushToArray(keys, stringify(
keys = keys.concat(stringify(
obj[key], obj[key],
key, key,
generateArrayPrefix, generateArrayPrefix,
options.strictNullHandling, strictNullHandling,
options.skipNulls, skipNulls,
options.encode ? options.encoder : null, encode ? encoder : null,
options.filter, filter,
options.sort, sort,
options.allowDots, allowDots,
options.serializeDate, serializeDate,
options.formatter, formatter,
options.encodeValuesOnly, encodeValuesOnly
options.charset
)); ));
} }
var joined = keys.join(options.delimiter); var joined = keys.join(delimiter);
var prefix = options.addQueryPrefix === true ? '?' : ''; var prefix = options.addQueryPrefix === true ? '?' : '';
if (options.charsetSentinel) {
if (options.charset === 'iso-8859-1') {
// encodeURIComponent('&#10003;'), the "numeric entity" representation of a checkmark
prefix += 'utf8=%26%2310003%3B&';
} else {
// encodeURIComponent('✓')
prefix += 'utf8=%E2%9C%93&';
}
}
return joined.length > 0 ? prefix + joined : ''; return joined.length > 0 ? prefix + joined : '';
}; };
@ -550,7 +423,6 @@ module.exports = function (object, opts) {
'use strict'; 'use strict';
var has = Object.prototype.hasOwnProperty; var has = Object.prototype.hasOwnProperty;
var isArray = Array.isArray;
var hexTable = (function () { var hexTable = (function () {
var array = []; var array = [];
@ -562,11 +434,13 @@ var hexTable = (function () {
}()); }());
var compactQueue = function compactQueue(queue) { var compactQueue = function compactQueue(queue) {
while (queue.length > 1) { var obj;
var item = queue.pop();
var obj = item.obj[item.prop];
if (isArray(obj)) { while (queue.length) {
var item = queue.pop();
obj = item.obj[item.prop];
if (Array.isArray(obj)) {
var compacted = []; var compacted = [];
for (var j = 0; j < obj.length; ++j) { for (var j = 0; j < obj.length; ++j) {
@ -578,6 +452,8 @@ var compactQueue = function compactQueue(queue) {
item.obj[item.prop] = compacted; item.obj[item.prop] = compacted;
} }
} }
return obj;
}; };
var arrayToObject = function arrayToObject(source, options) { var arrayToObject = function arrayToObject(source, options) {
@ -597,10 +473,10 @@ var merge = function merge(target, source, options) {
} }
if (typeof source !== 'object') { if (typeof source !== 'object') {
if (isArray(target)) { if (Array.isArray(target)) {
target.push(source); target.push(source);
} else if (target && typeof target === 'object') { } else if (typeof target === 'object') {
if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) { if (options.plainObjects || options.allowPrototypes || !has.call(Object.prototype, source)) {
target[source] = true; target[source] = true;
} }
} else { } else {
@ -610,21 +486,20 @@ var merge = function merge(target, source, options) {
return target; return target;
} }
if (!target || typeof target !== 'object') { if (typeof target !== 'object') {
return [target].concat(source); return [target].concat(source);
} }
var mergeTarget = target; var mergeTarget = target;
if (isArray(target) && !isArray(source)) { if (Array.isArray(target) && !Array.isArray(source)) {
mergeTarget = arrayToObject(target, options); mergeTarget = arrayToObject(target, options);
} }
if (isArray(target) && isArray(source)) { if (Array.isArray(target) && Array.isArray(source)) {
source.forEach(function (item, i) { source.forEach(function (item, i) {
if (has.call(target, i)) { if (has.call(target, i)) {
var targetItem = target[i]; if (target[i] && typeof target[i] === 'object') {
if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') { target[i] = merge(target[i], item, options);
target[i] = merge(targetItem, item, options);
} else { } else {
target.push(item); target.push(item);
} }
@ -654,21 +529,15 @@ var assign = function assignSingleSource(target, source) {
}, target); }, target);
}; };
var decode = function (str, decoder, charset) { var decode = function (str) {
var strWithoutPlus = str.replace(/\+/g, ' ');
if (charset === 'iso-8859-1') {
// unescape never throws, no try...catch needed:
return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);
}
// utf-8
try { try {
return decodeURIComponent(strWithoutPlus); return decodeURIComponent(str.replace(/\+/g, ' '));
} catch (e) { } catch (e) {
return strWithoutPlus; return str;
} }
}; };
var encode = function encode(str, defaultEncoder, charset) { var encode = function encode(str) {
// This code was originally written by Brian White (mscdex) for the io.js core querystring library. // This code was originally written by Brian White (mscdex) for the io.js core querystring library.
// It has been adapted here for stricter adherence to RFC 3986 // It has been adapted here for stricter adherence to RFC 3986
if (str.length === 0) { if (str.length === 0) {
@ -677,12 +546,6 @@ var encode = function encode(str, defaultEncoder, charset) {
var string = typeof str === 'string' ? str : String(str); var string = typeof str === 'string' ? str : String(str);
if (charset === 'iso-8859-1') {
return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {
return '%26%23' + parseInt($0.slice(2), 16) + '%3B';
});
}
var out = ''; var out = '';
for (var i = 0; i < string.length; ++i) { for (var i = 0; i < string.length; ++i) {
var c = string.charCodeAt(i); var c = string.charCodeAt(i);
@ -745,9 +608,7 @@ var compact = function compact(value) {
} }
} }
compactQueue(queue); return compactQueue(queue);
return value;
}; };
var isRegExp = function isRegExp(obj) { var isRegExp = function isRegExp(obj) {
@ -755,21 +616,16 @@ var isRegExp = function isRegExp(obj) {
}; };
var isBuffer = function isBuffer(obj) { var isBuffer = function isBuffer(obj) {
if (!obj || typeof obj !== 'object') { if (obj === null || typeof obj === 'undefined') {
return false; return false;
} }
return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj)); return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));
}; };
var combine = function combine(a, b) {
return [].concat(a, b);
};
module.exports = { module.exports = {
arrayToObject: arrayToObject, arrayToObject: arrayToObject,
assign: assign, assign: assign,
combine: combine,
compact: compact, compact: compact,
decode: decode, decode: decode,
encode: encode, encode: encode,

118
node_modules/qs/lib/parse.js generated vendored
View file

@ -8,63 +8,21 @@ var defaults = {
allowDots: false, allowDots: false,
allowPrototypes: false, allowPrototypes: false,
arrayLimit: 20, arrayLimit: 20,
charset: 'utf-8',
charsetSentinel: false,
comma: false,
decoder: utils.decode, decoder: utils.decode,
delimiter: '&', delimiter: '&',
depth: 5, depth: 5,
ignoreQueryPrefix: false,
interpretNumericEntities: false,
parameterLimit: 1000, parameterLimit: 1000,
parseArrays: true,
plainObjects: false, plainObjects: false,
strictNullHandling: false strictNullHandling: false
}; };
var interpretNumericEntities = function (str) {
return str.replace(/&#(\d+);/g, function ($0, numberStr) {
return String.fromCharCode(parseInt(numberStr, 10));
});
};
// This is what browsers will submit when the ✓ character occurs in an
// application/x-www-form-urlencoded body and the encoding of the page containing
// the form is iso-8859-1, or when the submitted form has an accept-charset
// attribute of iso-8859-1. Presumably also with other charsets that do not contain
// the ✓ character, such as us-ascii.
var isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('&#10003;')
// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.
var charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')
var parseValues = function parseQueryStringValues(str, options) { var parseValues = function parseQueryStringValues(str, options) {
var obj = {}; var obj = {};
var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, '') : str; var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, '') : str;
var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit; var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;
var parts = cleanStr.split(options.delimiter, limit); var parts = cleanStr.split(options.delimiter, limit);
var skipIndex = -1; // Keep track of where the utf8 sentinel was found
var i;
var charset = options.charset; for (var i = 0; i < parts.length; ++i) {
if (options.charsetSentinel) {
for (i = 0; i < parts.length; ++i) {
if (parts[i].indexOf('utf8=') === 0) {
if (parts[i] === charsetSentinel) {
charset = 'utf-8';
} else if (parts[i] === isoSentinel) {
charset = 'iso-8859-1';
}
skipIndex = i;
i = parts.length; // The eslint settings do not allow break;
}
}
}
for (i = 0; i < parts.length; ++i) {
if (i === skipIndex) {
continue;
}
var part = parts[i]; var part = parts[i];
var bracketEqualsPos = part.indexOf(']='); var bracketEqualsPos = part.indexOf(']=');
@ -72,23 +30,14 @@ var parseValues = function parseQueryStringValues(str, options) {
var key, val; var key, val;
if (pos === -1) { if (pos === -1) {
key = options.decoder(part, defaults.decoder, charset); key = options.decoder(part, defaults.decoder);
val = options.strictNullHandling ? null : ''; val = options.strictNullHandling ? null : '';
} else { } else {
key = options.decoder(part.slice(0, pos), defaults.decoder, charset); key = options.decoder(part.slice(0, pos), defaults.decoder);
val = options.decoder(part.slice(pos + 1), defaults.decoder, charset); val = options.decoder(part.slice(pos + 1), defaults.decoder);
} }
if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {
val = interpretNumericEntities(val);
}
if (val && options.comma && val.indexOf(',') > -1) {
val = val.split(',');
}
if (has.call(obj, key)) { if (has.call(obj, key)) {
obj[key] = utils.combine(obj[key], val); obj[key] = [].concat(obj[key]).concat(val);
} else { } else {
obj[key] = val; obj[key] = val;
} }
@ -104,15 +53,14 @@ var parseObject = function (chain, val, options) {
var obj; var obj;
var root = chain[i]; var root = chain[i];
if (root === '[]' && options.parseArrays) { if (root === '[]') {
obj = [].concat(leaf); obj = [];
obj = obj.concat(leaf);
} else { } else {
obj = options.plainObjects ? Object.create(null) : {}; obj = options.plainObjects ? Object.create(null) : {};
var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root; var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;
var index = parseInt(cleanRoot, 10); var index = parseInt(cleanRoot, 10);
if (!options.parseArrays && cleanRoot === '') { if (
obj = { 0: leaf };
} else if (
!isNaN(index) !isNaN(index)
&& root !== cleanRoot && root !== cleanRoot
&& String(index) === cleanRoot && String(index) === cleanRoot
@ -154,7 +102,8 @@ var parseKeys = function parseQueryStringKeys(givenKey, val, options) {
var keys = []; var keys = [];
if (parent) { if (parent) {
// If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties // If we aren't using plain objects, optionally prefix keys
// that would overwrite object prototype properties
if (!options.plainObjects && has.call(Object.prototype, parent)) { if (!options.plainObjects && has.call(Object.prototype, parent)) {
if (!options.allowPrototypes) { if (!options.allowPrototypes) {
return; return;
@ -186,41 +135,24 @@ var parseKeys = function parseQueryStringKeys(givenKey, val, options) {
return parseObject(keys, val, options); return parseObject(keys, val, options);
}; };
var normalizeParseOptions = function normalizeParseOptions(opts) { module.exports = function (str, opts) {
if (!opts) { var options = opts ? utils.assign({}, opts) : {};
return defaults;
}
if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') { if (options.decoder !== null && options.decoder !== undefined && typeof options.decoder !== 'function') {
throw new TypeError('Decoder has to be a function.'); throw new TypeError('Decoder has to be a function.');
} }
if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') { options.ignoreQueryPrefix = options.ignoreQueryPrefix === true;
throw new Error('The charset option must be either utf-8, iso-8859-1, or undefined'); options.delimiter = typeof options.delimiter === 'string' || utils.isRegExp(options.delimiter) ? options.delimiter : defaults.delimiter;
} options.depth = typeof options.depth === 'number' ? options.depth : defaults.depth;
var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset; options.arrayLimit = typeof options.arrayLimit === 'number' ? options.arrayLimit : defaults.arrayLimit;
options.parseArrays = options.parseArrays !== false;
return { options.decoder = typeof options.decoder === 'function' ? options.decoder : defaults.decoder;
allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots, options.allowDots = typeof options.allowDots === 'boolean' ? options.allowDots : defaults.allowDots;
allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes, options.plainObjects = typeof options.plainObjects === 'boolean' ? options.plainObjects : defaults.plainObjects;
arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit, options.allowPrototypes = typeof options.allowPrototypes === 'boolean' ? options.allowPrototypes : defaults.allowPrototypes;
charset: charset, options.parameterLimit = typeof options.parameterLimit === 'number' ? options.parameterLimit : defaults.parameterLimit;
charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel, options.strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;
comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,
decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,
delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,
depth: typeof opts.depth === 'number' ? opts.depth : defaults.depth,
ignoreQueryPrefix: opts.ignoreQueryPrefix === true,
interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,
parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,
parseArrays: opts.parseArrays !== false,
plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,
strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling
};
};
module.exports = function (str, opts) {
var options = normalizeParseOptions(opts);
if (str === '' || str === null || typeof str === 'undefined') { if (str === '' || str === null || typeof str === 'undefined') {
return options.plainObjects ? Object.create(null) : {}; return options.plainObjects ? Object.create(null) : {};

159
node_modules/qs/lib/stringify.js generated vendored
View file

@ -2,13 +2,11 @@
var utils = require('./utils'); var utils = require('./utils');
var formats = require('./formats'); var formats = require('./formats');
var has = Object.prototype.hasOwnProperty;
var arrayPrefixGenerators = { var arrayPrefixGenerators = {
brackets: function brackets(prefix) { // eslint-disable-line func-name-matching brackets: function brackets(prefix) { // eslint-disable-line func-name-matching
return prefix + '[]'; return prefix + '[]';
}, },
comma: 'comma',
indices: function indices(prefix, key) { // eslint-disable-line func-name-matching indices: function indices(prefix, key) { // eslint-disable-line func-name-matching
return prefix + '[' + key + ']'; return prefix + '[' + key + ']';
}, },
@ -17,26 +15,13 @@ var arrayPrefixGenerators = {
} }
}; };
var isArray = Array.isArray;
var push = Array.prototype.push;
var pushToArray = function (arr, valueOrArray) {
push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);
};
var toISO = Date.prototype.toISOString; var toISO = Date.prototype.toISOString;
var defaults = { var defaults = {
addQueryPrefix: false,
allowDots: false,
charset: 'utf-8',
charsetSentinel: false,
delimiter: '&', delimiter: '&',
encode: true, encode: true,
encoder: utils.encode, encoder: utils.encode,
encodeValuesOnly: false, encodeValuesOnly: false,
formatter: formats.formatters[formats['default']],
// deprecated
indices: false,
serializeDate: function serializeDate(date) { // eslint-disable-line func-name-matching serializeDate: function serializeDate(date) { // eslint-disable-line func-name-matching
return toISO.call(date); return toISO.call(date);
}, },
@ -56,21 +41,16 @@ var stringify = function stringify( // eslint-disable-line func-name-matching
allowDots, allowDots,
serializeDate, serializeDate,
formatter, formatter,
encodeValuesOnly, encodeValuesOnly
charset
) { ) {
var obj = object; var obj = object;
if (typeof filter === 'function') { if (typeof filter === 'function') {
obj = filter(prefix, obj); obj = filter(prefix, obj);
} else if (obj instanceof Date) { } else if (obj instanceof Date) {
obj = serializeDate(obj); obj = serializeDate(obj);
} else if (generateArrayPrefix === 'comma' && isArray(obj)) { } else if (obj === null) {
obj = obj.join(',');
}
if (obj === null) {
if (strictNullHandling) { if (strictNullHandling) {
return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset) : prefix; return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder) : prefix;
} }
obj = ''; obj = '';
@ -78,8 +58,8 @@ var stringify = function stringify( // eslint-disable-line func-name-matching
if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) { if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) {
if (encoder) { if (encoder) {
var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset); var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder);
return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset))]; return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder))];
} }
return [formatter(prefix) + '=' + formatter(String(obj))]; return [formatter(prefix) + '=' + formatter(String(obj))];
} }
@ -91,7 +71,7 @@ var stringify = function stringify( // eslint-disable-line func-name-matching
} }
var objKeys; var objKeys;
if (isArray(filter)) { if (Array.isArray(filter)) {
objKeys = filter; objKeys = filter;
} else { } else {
var keys = Object.keys(obj); var keys = Object.keys(obj);
@ -105,10 +85,10 @@ var stringify = function stringify( // eslint-disable-line func-name-matching
continue; continue;
} }
if (isArray(obj)) { if (Array.isArray(obj)) {
pushToArray(values, stringify( values = values.concat(stringify(
obj[key], obj[key],
typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix, generateArrayPrefix(prefix, key),
generateArrayPrefix, generateArrayPrefix,
strictNullHandling, strictNullHandling,
skipNulls, skipNulls,
@ -118,11 +98,10 @@ var stringify = function stringify( // eslint-disable-line func-name-matching
allowDots, allowDots,
serializeDate, serializeDate,
formatter, formatter,
encodeValuesOnly, encodeValuesOnly
charset
)); ));
} else { } else {
pushToArray(values, stringify( values = values.concat(stringify(
obj[key], obj[key],
prefix + (allowDots ? '.' + key : '[' + key + ']'), prefix + (allowDots ? '.' + key : '[' + key + ']'),
generateArrayPrefix, generateArrayPrefix,
@ -134,8 +113,7 @@ var stringify = function stringify( // eslint-disable-line func-name-matching
allowDots, allowDots,
serializeDate, serializeDate,
formatter, formatter,
encodeValuesOnly, encodeValuesOnly
charset
)); ));
} }
} }
@ -143,63 +121,36 @@ var stringify = function stringify( // eslint-disable-line func-name-matching
return values; return values;
}; };
var normalizeStringifyOptions = function normalizeStringifyOptions(opts) { module.exports = function (object, opts) {
if (!opts) { var obj = object;
return defaults; var options = opts ? utils.assign({}, opts) : {};
}
if (opts.encoder !== null && opts.encoder !== undefined && typeof opts.encoder !== 'function') { if (options.encoder !== null && options.encoder !== undefined && typeof options.encoder !== 'function') {
throw new TypeError('Encoder has to be a function.'); throw new TypeError('Encoder has to be a function.');
} }
var charset = opts.charset || defaults.charset; var delimiter = typeof options.delimiter === 'undefined' ? defaults.delimiter : options.delimiter;
if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') { var strictNullHandling = typeof options.strictNullHandling === 'boolean' ? options.strictNullHandling : defaults.strictNullHandling;
throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined'); var skipNulls = typeof options.skipNulls === 'boolean' ? options.skipNulls : defaults.skipNulls;
var encode = typeof options.encode === 'boolean' ? options.encode : defaults.encode;
var encoder = typeof options.encoder === 'function' ? options.encoder : defaults.encoder;
var sort = typeof options.sort === 'function' ? options.sort : null;
var allowDots = typeof options.allowDots === 'undefined' ? false : options.allowDots;
var serializeDate = typeof options.serializeDate === 'function' ? options.serializeDate : defaults.serializeDate;
var encodeValuesOnly = typeof options.encodeValuesOnly === 'boolean' ? options.encodeValuesOnly : defaults.encodeValuesOnly;
if (typeof options.format === 'undefined') {
options.format = formats['default'];
} else if (!Object.prototype.hasOwnProperty.call(formats.formatters, options.format)) {
throw new TypeError('Unknown format option provided.');
} }
var formatter = formats.formatters[options.format];
var format = formats['default'];
if (typeof opts.format !== 'undefined') {
if (!has.call(formats.formatters, opts.format)) {
throw new TypeError('Unknown format option provided.');
}
format = opts.format;
}
var formatter = formats.formatters[format];
var filter = defaults.filter;
if (typeof opts.filter === 'function' || isArray(opts.filter)) {
filter = opts.filter;
}
return {
addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,
allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,
charset: charset,
charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,
delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,
encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,
encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,
encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,
filter: filter,
formatter: formatter,
serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,
skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,
sort: typeof opts.sort === 'function' ? opts.sort : null,
strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling
};
};
module.exports = function (object, opts) {
var obj = object;
var options = normalizeStringifyOptions(opts);
var objKeys; var objKeys;
var filter; var filter;
if (typeof options.filter === 'function') { if (typeof options.filter === 'function') {
filter = options.filter; filter = options.filter;
obj = filter('', obj); obj = filter('', obj);
} else if (isArray(options.filter)) { } else if (Array.isArray(options.filter)) {
filter = options.filter; filter = options.filter;
objKeys = filter; objKeys = filter;
} }
@ -211,10 +162,10 @@ module.exports = function (object, opts) {
} }
var arrayFormat; var arrayFormat;
if (opts && opts.arrayFormat in arrayPrefixGenerators) { if (options.arrayFormat in arrayPrefixGenerators) {
arrayFormat = opts.arrayFormat; arrayFormat = options.arrayFormat;
} else if (opts && 'indices' in opts) { } else if ('indices' in options) {
arrayFormat = opts.indices ? 'indices' : 'repeat'; arrayFormat = options.indices ? 'indices' : 'repeat';
} else { } else {
arrayFormat = 'indices'; arrayFormat = 'indices';
} }
@ -225,45 +176,35 @@ module.exports = function (object, opts) {
objKeys = Object.keys(obj); objKeys = Object.keys(obj);
} }
if (options.sort) { if (sort) {
objKeys.sort(options.sort); objKeys.sort(sort);
} }
for (var i = 0; i < objKeys.length; ++i) { for (var i = 0; i < objKeys.length; ++i) {
var key = objKeys[i]; var key = objKeys[i];
if (options.skipNulls && obj[key] === null) { if (skipNulls && obj[key] === null) {
continue; continue;
} }
pushToArray(keys, stringify(
keys = keys.concat(stringify(
obj[key], obj[key],
key, key,
generateArrayPrefix, generateArrayPrefix,
options.strictNullHandling, strictNullHandling,
options.skipNulls, skipNulls,
options.encode ? options.encoder : null, encode ? encoder : null,
options.filter, filter,
options.sort, sort,
options.allowDots, allowDots,
options.serializeDate, serializeDate,
options.formatter, formatter,
options.encodeValuesOnly, encodeValuesOnly
options.charset
)); ));
} }
var joined = keys.join(options.delimiter); var joined = keys.join(delimiter);
var prefix = options.addQueryPrefix === true ? '?' : ''; var prefix = options.addQueryPrefix === true ? '?' : '';
if (options.charsetSentinel) {
if (options.charset === 'iso-8859-1') {
// encodeURIComponent('&#10003;'), the "numeric entity" representation of a checkmark
prefix += 'utf8=%26%2310003%3B&';
} else {
// encodeURIComponent('✓')
prefix += 'utf8=%E2%9C%93&';
}
}
return joined.length > 0 ? prefix + joined : ''; return joined.length > 0 ? prefix + joined : '';
}; };

61
node_modules/qs/lib/utils.js generated vendored
View file

@ -1,7 +1,6 @@
'use strict'; 'use strict';
var has = Object.prototype.hasOwnProperty; var has = Object.prototype.hasOwnProperty;
var isArray = Array.isArray;
var hexTable = (function () { var hexTable = (function () {
var array = []; var array = [];
@ -13,11 +12,13 @@ var hexTable = (function () {
}()); }());
var compactQueue = function compactQueue(queue) { var compactQueue = function compactQueue(queue) {
while (queue.length > 1) { var obj;
var item = queue.pop();
var obj = item.obj[item.prop];
if (isArray(obj)) { while (queue.length) {
var item = queue.pop();
obj = item.obj[item.prop];
if (Array.isArray(obj)) {
var compacted = []; var compacted = [];
for (var j = 0; j < obj.length; ++j) { for (var j = 0; j < obj.length; ++j) {
@ -29,6 +30,8 @@ var compactQueue = function compactQueue(queue) {
item.obj[item.prop] = compacted; item.obj[item.prop] = compacted;
} }
} }
return obj;
}; };
var arrayToObject = function arrayToObject(source, options) { var arrayToObject = function arrayToObject(source, options) {
@ -48,10 +51,10 @@ var merge = function merge(target, source, options) {
} }
if (typeof source !== 'object') { if (typeof source !== 'object') {
if (isArray(target)) { if (Array.isArray(target)) {
target.push(source); target.push(source);
} else if (target && typeof target === 'object') { } else if (typeof target === 'object') {
if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) { if (options.plainObjects || options.allowPrototypes || !has.call(Object.prototype, source)) {
target[source] = true; target[source] = true;
} }
} else { } else {
@ -61,21 +64,20 @@ var merge = function merge(target, source, options) {
return target; return target;
} }
if (!target || typeof target !== 'object') { if (typeof target !== 'object') {
return [target].concat(source); return [target].concat(source);
} }
var mergeTarget = target; var mergeTarget = target;
if (isArray(target) && !isArray(source)) { if (Array.isArray(target) && !Array.isArray(source)) {
mergeTarget = arrayToObject(target, options); mergeTarget = arrayToObject(target, options);
} }
if (isArray(target) && isArray(source)) { if (Array.isArray(target) && Array.isArray(source)) {
source.forEach(function (item, i) { source.forEach(function (item, i) {
if (has.call(target, i)) { if (has.call(target, i)) {
var targetItem = target[i]; if (target[i] && typeof target[i] === 'object') {
if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') { target[i] = merge(target[i], item, options);
target[i] = merge(targetItem, item, options);
} else { } else {
target.push(item); target.push(item);
} }
@ -105,21 +107,15 @@ var assign = function assignSingleSource(target, source) {
}, target); }, target);
}; };
var decode = function (str, decoder, charset) { var decode = function (str) {
var strWithoutPlus = str.replace(/\+/g, ' ');
if (charset === 'iso-8859-1') {
// unescape never throws, no try...catch needed:
return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);
}
// utf-8
try { try {
return decodeURIComponent(strWithoutPlus); return decodeURIComponent(str.replace(/\+/g, ' '));
} catch (e) { } catch (e) {
return strWithoutPlus; return str;
} }
}; };
var encode = function encode(str, defaultEncoder, charset) { var encode = function encode(str) {
// This code was originally written by Brian White (mscdex) for the io.js core querystring library. // This code was originally written by Brian White (mscdex) for the io.js core querystring library.
// It has been adapted here for stricter adherence to RFC 3986 // It has been adapted here for stricter adherence to RFC 3986
if (str.length === 0) { if (str.length === 0) {
@ -128,12 +124,6 @@ var encode = function encode(str, defaultEncoder, charset) {
var string = typeof str === 'string' ? str : String(str); var string = typeof str === 'string' ? str : String(str);
if (charset === 'iso-8859-1') {
return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {
return '%26%23' + parseInt($0.slice(2), 16) + '%3B';
});
}
var out = ''; var out = '';
for (var i = 0; i < string.length; ++i) { for (var i = 0; i < string.length; ++i) {
var c = string.charCodeAt(i); var c = string.charCodeAt(i);
@ -196,9 +186,7 @@ var compact = function compact(value) {
} }
} }
compactQueue(queue); return compactQueue(queue);
return value;
}; };
var isRegExp = function isRegExp(obj) { var isRegExp = function isRegExp(obj) {
@ -206,21 +194,16 @@ var isRegExp = function isRegExp(obj) {
}; };
var isBuffer = function isBuffer(obj) { var isBuffer = function isBuffer(obj) {
if (!obj || typeof obj !== 'object') { if (obj === null || typeof obj === 'undefined') {
return false; return false;
} }
return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj)); return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));
}; };
var combine = function combine(a, b) {
return [].concat(a, b);
};
module.exports = { module.exports = {
arrayToObject: arrayToObject, arrayToObject: arrayToObject,
assign: assign, assign: assign,
combine: combine,
compact: compact, compact: compact,
decode: decode, decode: decode,
encode: encode, encode: encode,

51
node_modules/qs/package.json generated vendored
View file

@ -1,28 +1,27 @@
{ {
"_from": "qs@6.7.0", "_from": "qs@~6.5.2",
"_id": "qs@6.7.0", "_id": "qs@6.5.2",
"_inBundle": false, "_inBundle": false,
"_integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", "_integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
"_location": "/qs", "_location": "/qs",
"_phantomChildren": {}, "_phantomChildren": {},
"_requested": { "_requested": {
"type": "version", "type": "range",
"registry": true, "registry": true,
"raw": "qs@6.7.0", "raw": "qs@~6.5.2",
"name": "qs", "name": "qs",
"escapedName": "qs", "escapedName": "qs",
"rawSpec": "6.7.0", "rawSpec": "~6.5.2",
"saveSpec": null, "saveSpec": null,
"fetchSpec": "6.7.0" "fetchSpec": "~6.5.2"
}, },
"_requiredBy": [ "_requiredBy": [
"/body-parser", "/request"
"/express"
], ],
"_resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", "_resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
"_shasum": "41dc1a015e3d581f1621776be31afb2876a9b1bc", "_shasum": "cb3ae806e8740444584ef154ce8ee98d403f3e36",
"_spec": "qs@6.7.0", "_spec": "qs@~6.5.2",
"_where": "D:\\tftapp\\node_modules\\express", "_where": "D:\\TFTPaths\\node_modules\\request",
"bugs": { "bugs": {
"url": "https://github.com/ljharb/qs/issues" "url": "https://github.com/ljharb/qs/issues"
}, },
@ -38,20 +37,18 @@
"deprecated": false, "deprecated": false,
"description": "A querystring parser that supports nesting and arrays, with a depth limit", "description": "A querystring parser that supports nesting and arrays, with a depth limit",
"devDependencies": { "devDependencies": {
"@ljharb/eslint-config": "^13.1.1", "@ljharb/eslint-config": "^12.2.1",
"browserify": "^16.2.3", "browserify": "^16.2.0",
"covert": "^1.1.1", "covert": "^1.1.0",
"editorconfig-tools": "^0.1.1", "editorconfig-tools": "^0.1.1",
"eslint": "^5.15.3", "eslint": "^4.19.1",
"evalmd": "^0.0.17", "evalmd": "^0.0.17",
"for-each": "^0.3.3", "iconv-lite": "^0.4.21",
"iconv-lite": "^0.4.24",
"mkdirp": "^0.5.1", "mkdirp": "^0.5.1",
"object-inspect": "^1.6.0",
"qs-iconv": "^1.0.4", "qs-iconv": "^1.0.4",
"safe-publish-latest": "^1.1.2", "safe-publish-latest": "^1.1.1",
"safer-buffer": "^2.1.2", "safer-buffer": "^2.1.2",
"tape": "^4.10.1" "tape": "^4.9.0"
}, },
"engines": { "engines": {
"node": ">=0.6" "node": ">=0.6"
@ -59,11 +56,7 @@
"homepage": "https://github.com/ljharb/qs", "homepage": "https://github.com/ljharb/qs",
"keywords": [ "keywords": [
"querystring", "querystring",
"qs", "qs"
"query",
"url",
"parse",
"stringify"
], ],
"license": "BSD-3-Clause", "license": "BSD-3-Clause",
"main": "lib/index.js", "main": "lib/index.js",
@ -76,12 +69,12 @@
"coverage": "covert test", "coverage": "covert test",
"dist": "mkdirp dist && browserify --standalone Qs lib/index.js > dist/qs.js", "dist": "mkdirp dist && browserify --standalone Qs lib/index.js > dist/qs.js",
"lint": "eslint lib/*.js test/*.js", "lint": "eslint lib/*.js test/*.js",
"postlint": "editorconfig-tools check * lib/* test/*", "prelint": "editorconfig-tools check * lib/* test/*",
"prepublish": "safe-publish-latest && npm run dist", "prepublish": "safe-publish-latest && npm run dist",
"pretest": "npm run --silent readme && npm run --silent lint", "pretest": "npm run --silent readme && npm run --silent lint",
"readme": "evalmd README.md", "readme": "evalmd README.md",
"test": "npm run --silent coverage", "test": "npm run --silent coverage",
"tests-only": "node test" "tests-only": "node test"
}, },
"version": "6.7.0" "version": "6.5.2"
} }

2
node_modules/qs/test/.eslintrc generated vendored
View file

@ -3,9 +3,7 @@
"array-bracket-newline": 0, "array-bracket-newline": 0,
"array-element-newline": 0, "array-element-newline": 0,
"consistent-return": 2, "consistent-return": 2,
"function-paren-newline": 0,
"max-lines": 0, "max-lines": 0,
"max-lines-per-function": 0,
"max-nested-callbacks": [2, 3], "max-nested-callbacks": [2, 3],
"max-statements": 0, "max-statements": 0,
"no-buffer-constructor": 0, "no-buffer-constructor": 0,

108
node_modules/qs/test/parse.js generated vendored
View file

@ -237,14 +237,6 @@ test('parse()', function (t) {
st.end(); st.end();
}); });
t.test('parses jquery-param strings', function (st) {
// readable = 'filter[0][]=int1&filter[0][]==&filter[0][]=77&filter[]=and&filter[2][]=int2&filter[2][]==&filter[2][]=8'
var encoded = 'filter%5B0%5D%5B%5D=int1&filter%5B0%5D%5B%5D=%3D&filter%5B0%5D%5B%5D=77&filter%5B%5D=and&filter%5B2%5D%5B%5D=int2&filter%5B2%5D%5B%5D=%3D&filter%5B2%5D%5B%5D=8';
var expected = { filter: [['int1', '=', '77'], 'and', ['int2', '=', '8']] };
st.deepEqual(qs.parse(encoded), expected);
st.end();
});
t.test('continues parsing when no parent is found', function (st) { t.test('continues parsing when no parent is found', function (st) {
st.deepEqual(qs.parse('[]=&a=b'), { 0: '', a: 'b' }); st.deepEqual(qs.parse('[]=&a=b'), { 0: '', a: 'b' });
st.deepEqual(qs.parse('[]&a=b', { strictNullHandling: true }), { 0: null, a: 'b' }); st.deepEqual(qs.parse('[]&a=b', { strictNullHandling: true }), { 0: null, a: 'b' });
@ -265,7 +257,7 @@ test('parse()', function (t) {
st.end(); st.end();
}); });
t.test('should not throw when a native prototype has an enumerable property', function (st) { t.test('should not throw when a native prototype has an enumerable property', { parallel: false }, function (st) {
Object.prototype.crash = ''; Object.prototype.crash = '';
Array.prototype.crash = ''; Array.prototype.crash = '';
st.doesNotThrow(qs.parse.bind(null, 'a=b')); st.doesNotThrow(qs.parse.bind(null, 'a=b'));
@ -310,14 +302,7 @@ test('parse()', function (t) {
}); });
t.test('allows disabling array parsing', function (st) { t.test('allows disabling array parsing', function (st) {
var indices = qs.parse('a[0]=b&a[1]=c', { parseArrays: false }); st.deepEqual(qs.parse('a[0]=b&a[1]=c', { parseArrays: false }), { a: { 0: 'b', 1: 'c' } });
st.deepEqual(indices, { a: { 0: 'b', 1: 'c' } });
st.equal(Array.isArray(indices.a), false, 'parseArrays:false, indices case is not an array');
var emptyBrackets = qs.parse('a[]=b', { parseArrays: false });
st.deepEqual(emptyBrackets, { a: { 0: 'b' } });
st.equal(Array.isArray(emptyBrackets.a), false, 'parseArrays:false, empty brackets case is not an array');
st.end(); st.end();
}); });
@ -347,15 +332,6 @@ test('parse()', function (t) {
st.end(); st.end();
}); });
t.test('parses string with comma as array divider', function (st) {
st.deepEqual(qs.parse('foo=bar,tee', { comma: true }), { foo: ['bar', 'tee'] });
st.deepEqual(qs.parse('foo[bar]=coffee,tee', { comma: true }), { foo: { bar: ['coffee', 'tee'] } });
st.deepEqual(qs.parse('foo=', { comma: true }), { foo: '' });
st.deepEqual(qs.parse('foo', { comma: true }), { foo: '' });
st.deepEqual(qs.parse('foo', { comma: true, strictNullHandling: true }), { foo: null });
st.end();
});
t.test('parses an object in dot notation', function (st) { t.test('parses an object in dot notation', function (st) {
var input = { var input = {
'user.name': { 'pop[bob]': 3 }, 'user.name': { 'pop[bob]': 3 },
@ -564,7 +540,7 @@ test('parse()', function (t) {
result.push(parseInt(parts[1], 16)); result.push(parseInt(parts[1], 16));
parts = reg.exec(str); parts = reg.exec(str);
} }
return String(iconv.decode(SaferBuffer.from(result), 'shift_jis')); return iconv.decode(SaferBuffer.from(result), 'shift_jis').toString();
} }
}), { : '大阪府' }); }), { : '大阪府' });
st.end(); st.end();
@ -594,83 +570,5 @@ test('parse()', function (t) {
st.end(); st.end();
}); });
t.test('throws if an invalid charset is specified', function (st) {
st['throws'](function () {
qs.parse('a=b', { charset: 'foobar' });
}, new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined'));
st.end();
});
t.test('parses an iso-8859-1 string if asked to', function (st) {
st.deepEqual(qs.parse('%A2=%BD', { charset: 'iso-8859-1' }), { '¢': '½' });
st.end();
});
var urlEncodedCheckmarkInUtf8 = '%E2%9C%93';
var urlEncodedOSlashInUtf8 = '%C3%B8';
var urlEncodedNumCheckmark = '%26%2310003%3B';
var urlEncodedNumSmiley = '%26%239786%3B';
t.test('prefers an utf-8 charset specified by the utf8 sentinel to a default charset of iso-8859-1', function (st) {
st.deepEqual(qs.parse('utf8=' + urlEncodedCheckmarkInUtf8 + '&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true, charset: 'iso-8859-1' }), { ø: 'ø' });
st.end();
});
t.test('prefers an iso-8859-1 charset specified by the utf8 sentinel to a default charset of utf-8', function (st) {
st.deepEqual(qs.parse('utf8=' + urlEncodedNumCheckmark + '&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true, charset: 'utf-8' }), { 'ø': 'ø' });
st.end();
});
t.test('does not require the utf8 sentinel to be defined before the parameters whose decoding it affects', function (st) {
st.deepEqual(qs.parse('a=' + urlEncodedOSlashInUtf8 + '&utf8=' + urlEncodedNumCheckmark, { charsetSentinel: true, charset: 'utf-8' }), { a: 'ø' });
st.end();
});
t.test('should ignore an utf8 sentinel with an unknown value', function (st) {
st.deepEqual(qs.parse('utf8=foo&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true, charset: 'utf-8' }), { ø: 'ø' });
st.end();
});
t.test('uses the utf8 sentinel to switch to utf-8 when no default charset is given', function (st) {
st.deepEqual(qs.parse('utf8=' + urlEncodedCheckmarkInUtf8 + '&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true }), { ø: 'ø' });
st.end();
});
t.test('uses the utf8 sentinel to switch to iso-8859-1 when no default charset is given', function (st) {
st.deepEqual(qs.parse('utf8=' + urlEncodedNumCheckmark + '&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true }), { 'ø': 'ø' });
st.end();
});
t.test('interprets numeric entities in iso-8859-1 when `interpretNumericEntities`', function (st) {
st.deepEqual(qs.parse('foo=' + urlEncodedNumSmiley, { charset: 'iso-8859-1', interpretNumericEntities: true }), { foo: '☺' });
st.end();
});
t.test('handles a custom decoder returning `null`, in the `iso-8859-1` charset, when `interpretNumericEntities`', function (st) {
st.deepEqual(qs.parse('foo=&bar=' + urlEncodedNumSmiley, {
charset: 'iso-8859-1',
decoder: function (str, defaultDecoder, charset) {
return str ? defaultDecoder(str, defaultDecoder, charset) : null;
},
interpretNumericEntities: true
}), { foo: null, bar: '☺' });
st.end();
});
t.test('does not interpret numeric entities in iso-8859-1 when `interpretNumericEntities` is absent', function (st) {
st.deepEqual(qs.parse('foo=' + urlEncodedNumSmiley, { charset: 'iso-8859-1' }), { foo: '&#9786;' });
st.end();
});
t.test('does not interpret numeric entities when the charset is utf-8, even when `interpretNumericEntities`', function (st) {
st.deepEqual(qs.parse('foo=' + urlEncodedNumSmiley, { charset: 'utf-8', interpretNumericEntities: true }), { foo: '&#9786;' });
st.end();
});
t.test('does not interpret %uXXXX syntax in iso-8859-1 mode', function (st) {
st.deepEqual(qs.parse('%u263A=%u263A', { charset: 'iso-8859-1' }), { '%u263A': '%u263A' });
st.end();
});
t.end(); t.end();
}); });

86
node_modules/qs/test/stringify.js generated vendored
View file

@ -19,15 +19,6 @@ test('stringify()', function (t) {
st.end(); st.end();
}); });
t.test('stringifies falsy values', function (st) {
st.equal(qs.stringify(undefined), '');
st.equal(qs.stringify(null), '');
st.equal(qs.stringify(null, { strictNullHandling: true }), '');
st.equal(qs.stringify(false), '');
st.equal(qs.stringify(0), '');
st.end();
});
t.test('adds query prefix', function (st) { t.test('adds query prefix', function (st) {
st.equal(qs.stringify({ a: 'b' }, { addQueryPrefix: true }), '?a=b'); st.equal(qs.stringify({ a: 'b' }, { addQueryPrefix: true }), '?a=b');
st.end(); st.end();
@ -38,13 +29,6 @@ test('stringify()', function (t) {
st.end(); st.end();
}); });
t.test('stringifies nested falsy values', function (st) {
st.equal(qs.stringify({ a: { b: { c: null } } }), 'a%5Bb%5D%5Bc%5D=');
st.equal(qs.stringify({ a: { b: { c: null } } }, { strictNullHandling: true }), 'a%5Bb%5D%5Bc%5D');
st.equal(qs.stringify({ a: { b: { c: false } } }), 'a%5Bb%5D%5Bc%5D=false');
st.end();
});
t.test('stringifies a nested object', function (st) { t.test('stringifies a nested object', function (st) {
st.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c'); st.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c');
st.equal(qs.stringify({ a: { b: { c: { d: 'e' } } } }), 'a%5Bb%5D%5Bc%5D%5Bd%5D=e'); st.equal(qs.stringify({ a: { b: { c: { d: 'e' } } } }), 'a%5Bb%5D%5Bc%5D%5Bd%5D=e');
@ -68,11 +52,6 @@ test('stringify()', function (t) {
'a%5B%5D=b&a%5B%5D=c&a%5B%5D=d', 'a%5B%5D=b&a%5B%5D=c&a%5B%5D=d',
'brackets => brackets' 'brackets => brackets'
); );
st.equal(
qs.stringify({ a: ['b', 'c', 'd'] }, { arrayFormat: 'comma' }),
'a=b%2Cc%2Cd',
'comma => comma'
);
st.equal( st.equal(
qs.stringify({ a: ['b', 'c', 'd'] }), qs.stringify({ a: ['b', 'c', 'd'] }),
'a%5B0%5D=b&a%5B1%5D=c&a%5B2%5D=d', 'a%5B0%5D=b&a%5B1%5D=c&a%5B2%5D=d',
@ -99,7 +78,6 @@ test('stringify()', function (t) {
t.test('stringifies a nested array value', function (st) { t.test('stringifies a nested array value', function (st) {
st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { arrayFormat: 'indices' }), 'a%5Bb%5D%5B0%5D=c&a%5Bb%5D%5B1%5D=d'); st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { arrayFormat: 'indices' }), 'a%5Bb%5D%5B0%5D=c&a%5Bb%5D%5B1%5D=d');
st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { arrayFormat: 'brackets' }), 'a%5Bb%5D%5B%5D=c&a%5Bb%5D%5B%5D=d'); st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { arrayFormat: 'brackets' }), 'a%5Bb%5D%5B%5D=c&a%5Bb%5D%5B%5D=d');
st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { arrayFormat: 'comma' }), 'a%5Bb%5D=c%2Cd'); // a[b]=c,d
st.equal(qs.stringify({ a: { b: ['c', 'd'] } }), 'a%5Bb%5D%5B0%5D=c&a%5Bb%5D%5B1%5D=d'); st.equal(qs.stringify({ a: { b: ['c', 'd'] } }), 'a%5Bb%5D%5B0%5D=c&a%5Bb%5D%5B1%5D=d');
st.end(); st.end();
}); });
@ -121,14 +99,6 @@ test('stringify()', function (t) {
'a.b[]=c&a.b[]=d', 'a.b[]=c&a.b[]=d',
'brackets: stringifies with dots + brackets' 'brackets: stringifies with dots + brackets'
); );
st.equal(
qs.stringify(
{ a: { b: ['c', 'd'] } },
{ allowDots: true, encode: false, arrayFormat: 'comma' }
),
'a.b=c,d',
'comma: stringifies with dots + comma'
);
st.equal( st.equal(
qs.stringify( qs.stringify(
{ a: { b: ['c', 'd'] } }, { a: { b: ['c', 'd'] } },
@ -143,12 +113,12 @@ test('stringify()', function (t) {
t.test('stringifies an object inside an array', function (st) { t.test('stringifies an object inside an array', function (st) {
st.equal( st.equal(
qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'indices' }), qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'indices' }),
'a%5B0%5D%5Bb%5D=c', // a[0][b]=c 'a%5B0%5D%5Bb%5D=c',
'indices => brackets' 'indices => brackets'
); );
st.equal( st.equal(
qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'brackets' }), qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'brackets' }),
'a%5B%5D%5Bb%5D=c', // a[][b]=c 'a%5B%5D%5Bb%5D=c',
'brackets => brackets' 'brackets => brackets'
); );
st.equal( st.equal(
@ -616,38 +586,6 @@ test('stringify()', function (t) {
st.end(); st.end();
}); });
t.test('throws if an invalid charset is specified', function (st) {
st['throws'](function () {
qs.stringify({ a: 'b' }, { charset: 'foobar' });
}, new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined'));
st.end();
});
t.test('respects a charset of iso-8859-1', function (st) {
st.equal(qs.stringify({ æ: 'æ' }, { charset: 'iso-8859-1' }), '%E6=%E6');
st.end();
});
t.test('encodes unrepresentable chars as numeric entities in iso-8859-1 mode', function (st) {
st.equal(qs.stringify({ a: '☺' }, { charset: 'iso-8859-1' }), 'a=%26%239786%3B');
st.end();
});
t.test('respects an explicit charset of utf-8 (the default)', function (st) {
st.equal(qs.stringify({ a: 'æ' }, { charset: 'utf-8' }), 'a=%C3%A6');
st.end();
});
t.test('adds the right sentinel when instructed to and the charset is utf-8', function (st) {
st.equal(qs.stringify({ a: 'æ' }, { charsetSentinel: true, charset: 'utf-8' }), 'utf8=%E2%9C%93&a=%C3%A6');
st.end();
});
t.test('adds the right sentinel when instructed to and the charset is iso-8859-1', function (st) {
st.equal(qs.stringify({ a: 'æ' }, { charsetSentinel: true, charset: 'iso-8859-1' }), 'utf8=%26%2310003%3B&a=%E6');
st.end();
});
t.test('does not mutate the options argument', function (st) { t.test('does not mutate the options argument', function (st) {
var options = {}; var options = {};
qs.stringify({}, options); qs.stringify({}, options);
@ -655,25 +593,5 @@ test('stringify()', function (t) {
st.end(); st.end();
}); });
t.test('strictNullHandling works with custom filter', function (st) {
var filter = function (prefix, value) {
return value;
};
var options = { strictNullHandling: true, filter: filter };
st.equal(qs.stringify({ key: null }, options), 'key');
st.end();
});
t.test('strictNullHandling works with null serializeDate', function (st) {
var serializeDate = function () {
return null;
};
var options = { strictNullHandling: true, serializeDate: serializeDate };
var date = new Date();
st.equal(qs.stringify({ key: date }, options), 'key');
st.end();
});
t.end(); t.end();
}); });

102
node_modules/qs/test/utils.js generated vendored
View file

@ -1,16 +1,9 @@
'use strict'; 'use strict';
var test = require('tape'); var test = require('tape');
var inspect = require('object-inspect');
var SaferBuffer = require('safer-buffer').Buffer;
var forEach = require('for-each');
var utils = require('../lib/utils'); var utils = require('../lib/utils');
test('merge()', function (t) { test('merge()', function (t) {
t.deepEqual(utils.merge(null, true), [null, true], 'merges true into null');
t.deepEqual(utils.merge(null, [42]), [null, 42], 'merges null into an array');
t.deepEqual(utils.merge({ a: 'b' }, { a: 'c' }), { a: ['b', 'c'] }, 'merges two objects with the same key'); t.deepEqual(utils.merge({ a: 'b' }, { a: 'c' }), { a: ['b', 'c'] }, 'merges two objects with the same key');
var oneMerged = utils.merge({ foo: 'bar' }, { foo: { first: '123' } }); var oneMerged = utils.merge({ foo: 'bar' }, { foo: { first: '123' } });
@ -25,33 +18,6 @@ test('merge()', function (t) {
var nestedArrays = utils.merge({ foo: ['baz'] }, { foo: ['bar', 'xyzzy'] }); var nestedArrays = utils.merge({ foo: ['baz'] }, { foo: ['bar', 'xyzzy'] });
t.deepEqual(nestedArrays, { foo: ['baz', 'bar', 'xyzzy'] }); t.deepEqual(nestedArrays, { foo: ['baz', 'bar', 'xyzzy'] });
var noOptionsNonObjectSource = utils.merge({ foo: 'baz' }, 'bar');
t.deepEqual(noOptionsNonObjectSource, { foo: 'baz', bar: true });
t.test(
'avoids invoking array setters unnecessarily',
{ skip: typeof Object.defineProperty !== 'function' },
function (st) {
var setCount = 0;
var getCount = 0;
var observed = [];
Object.defineProperty(observed, 0, {
get: function () {
getCount += 1;
return { bar: 'baz' };
},
set: function () { setCount += 1; }
});
utils.merge(observed, [null]);
st.equal(setCount, 0);
st.equal(getCount, 1);
observed[0] = observed[0]; // eslint-disable-line no-self-assign
st.equal(setCount, 1);
st.equal(getCount, 2);
st.end();
}
);
t.end(); t.end();
}); });
@ -66,71 +32,3 @@ test('assign()', function (t) {
t.end(); t.end();
}); });
test('combine()', function (t) {
t.test('both arrays', function (st) {
var a = [1];
var b = [2];
var combined = utils.combine(a, b);
st.deepEqual(a, [1], 'a is not mutated');
st.deepEqual(b, [2], 'b is not mutated');
st.notEqual(a, combined, 'a !== combined');
st.notEqual(b, combined, 'b !== combined');
st.deepEqual(combined, [1, 2], 'combined is a + b');
st.end();
});
t.test('one array, one non-array', function (st) {
var aN = 1;
var a = [aN];
var bN = 2;
var b = [bN];
var combinedAnB = utils.combine(aN, b);
st.deepEqual(b, [bN], 'b is not mutated');
st.notEqual(aN, combinedAnB, 'aN + b !== aN');
st.notEqual(a, combinedAnB, 'aN + b !== a');
st.notEqual(bN, combinedAnB, 'aN + b !== bN');
st.notEqual(b, combinedAnB, 'aN + b !== b');
st.deepEqual([1, 2], combinedAnB, 'first argument is array-wrapped when not an array');
var combinedABn = utils.combine(a, bN);
st.deepEqual(a, [aN], 'a is not mutated');
st.notEqual(aN, combinedABn, 'a + bN !== aN');
st.notEqual(a, combinedABn, 'a + bN !== a');
st.notEqual(bN, combinedABn, 'a + bN !== bN');
st.notEqual(b, combinedABn, 'a + bN !== b');
st.deepEqual([1, 2], combinedABn, 'second argument is array-wrapped when not an array');
st.end();
});
t.test('neither is an array', function (st) {
var combined = utils.combine(1, 2);
st.notEqual(1, combined, '1 + 2 !== 1');
st.notEqual(2, combined, '1 + 2 !== 2');
st.deepEqual([1, 2], combined, 'both arguments are array-wrapped when not an array');
st.end();
});
t.end();
});
test('isBuffer()', function (t) {
forEach([null, undefined, true, false, '', 'abc', 42, 0, NaN, {}, [], function () {}, /a/g], function (x) {
t.equal(utils.isBuffer(x), false, inspect(x) + ' is not a buffer');
});
var fakeBuffer = { constructor: Buffer };
t.equal(utils.isBuffer(fakeBuffer), false, 'fake buffer is not a buffer');
var saferBuffer = SaferBuffer.from('abc');
t.equal(utils.isBuffer(saferBuffer), true, 'SaferBuffer instance is a buffer');
var buffer = Buffer.from ? Buffer.from('abc') : new Buffer('abc');
t.equal(utils.isBuffer(buffer), true, 'real Buffer instance is a buffer');
t.end();
});

View file

@ -1,5 +1,5 @@
{ {
"_from": "range-parser@~1.2.1", "_from": "range-parser@^1.2.1",
"_id": "range-parser@1.2.1", "_id": "range-parser@1.2.1",
"_inBundle": false, "_inBundle": false,
"_integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "_integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
@ -8,21 +8,23 @@
"_requested": { "_requested": {
"type": "range", "type": "range",
"registry": true, "registry": true,
"raw": "range-parser@~1.2.1", "raw": "range-parser@^1.2.1",
"name": "range-parser", "name": "range-parser",
"escapedName": "range-parser", "escapedName": "range-parser",
"rawSpec": "~1.2.1", "rawSpec": "^1.2.1",
"saveSpec": null, "saveSpec": null,
"fetchSpec": "~1.2.1" "fetchSpec": "^1.2.1"
}, },
"_requiredBy": [ "_requiredBy": [
"/express", "/express",
"/send" "/karma",
"/send",
"/webpack-dev-middleware"
], ],
"_resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "_resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
"_shasum": "3cf37023d199e1c24d1a55b84800c2f3e6468031", "_shasum": "3cf37023d199e1c24d1a55b84800c2f3e6468031",
"_spec": "range-parser@~1.2.1", "_spec": "range-parser@^1.2.1",
"_where": "D:\\tftapp\\node_modules\\express", "_where": "D:\\TFTPaths\\node_modules\\webpack-dev-middleware",
"author": { "author": {
"name": "TJ Holowaychuk", "name": "TJ Holowaychuk",
"email": "tj@vision-media.ca", "email": "tj@vision-media.ca",

2
node_modules/raw-body/package.json generated vendored
View file

@ -21,7 +21,7 @@
"_resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", "_resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
"_shasum": "a1ce6fb9c9bc356ca52e89256ab59059e13d0332", "_shasum": "a1ce6fb9c9bc356ca52e89256ab59059e13d0332",
"_spec": "raw-body@2.4.0", "_spec": "raw-body@2.4.0",
"_where": "D:\\tftapp\\node_modules\\body-parser", "_where": "D:\\TFTPaths\\node_modules\\body-parser",
"author": { "author": {
"name": "Jonathan Ong", "name": "Jonathan Ong",
"email": "me@jongleberry.com", "email": "me@jongleberry.com",

View file

@ -1,28 +1,55 @@
{ {
"_from": "safe-buffer@5.1.2", "_from": "safe-buffer@~5.1.1",
"_id": "safe-buffer@5.1.2", "_id": "safe-buffer@5.1.2",
"_inBundle": false, "_inBundle": false,
"_integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "_integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"_location": "/safe-buffer", "_location": "/safe-buffer",
"_phantomChildren": {}, "_phantomChildren": {},
"_requested": { "_requested": {
"type": "version", "type": "range",
"registry": true, "registry": true,
"raw": "safe-buffer@5.1.2", "raw": "safe-buffer@~5.1.1",
"name": "safe-buffer", "name": "safe-buffer",
"escapedName": "safe-buffer", "escapedName": "safe-buffer",
"rawSpec": "5.1.2", "rawSpec": "~5.1.1",
"saveSpec": null, "saveSpec": null,
"fetchSpec": "5.1.2" "fetchSpec": "~5.1.1"
}, },
"_requiredBy": [ "_requiredBy": [
"/browserify-aes",
"/browserify-des",
"/cipher-base",
"/compression",
"/content-disposition", "/content-disposition",
"/express" "/convert-source-map",
"/create-hmac",
"/dns-packet",
"/evp_bytestokey",
"/express",
"/hash-base",
"/karma",
"/md5.js",
"/minipass",
"/node-fetch-npm",
"/pacote",
"/parse-asn1",
"/pbkdf2",
"/public-encrypt",
"/randombytes",
"/randomfill",
"/readable-stream",
"/request",
"/sha.js",
"/string_decoder",
"/tar",
"/tunnel-agent",
"/websocket-driver",
"/ws"
], ],
"_resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "_resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"_shasum": "991ec69d296e0313747d59bdfd2b745c35f8828d", "_shasum": "991ec69d296e0313747d59bdfd2b745c35f8828d",
"_spec": "safe-buffer@5.1.2", "_spec": "safe-buffer@~5.1.1",
"_where": "D:\\tftapp\\node_modules\\express", "_where": "D:\\TFTPaths\\node_modules\\readable-stream",
"author": { "author": {
"name": "Feross Aboukhadijeh", "name": "Feross Aboukhadijeh",
"email": "feross@feross.org", "email": "feross@feross.org",

View file

@ -1,5 +1,5 @@
{ {
"_from": "safer-buffer@>= 2.1.2 < 3", "_from": "safer-buffer@^2.0.2",
"_id": "safer-buffer@2.1.2", "_id": "safer-buffer@2.1.2",
"_inBundle": false, "_inBundle": false,
"_integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "_integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
@ -8,20 +8,23 @@
"_requested": { "_requested": {
"type": "range", "type": "range",
"registry": true, "registry": true,
"raw": "safer-buffer@>= 2.1.2 < 3", "raw": "safer-buffer@^2.0.2",
"name": "safer-buffer", "name": "safer-buffer",
"escapedName": "safer-buffer", "escapedName": "safer-buffer",
"rawSpec": ">= 2.1.2 < 3", "rawSpec": "^2.0.2",
"saveSpec": null, "saveSpec": null,
"fetchSpec": ">= 2.1.2 < 3" "fetchSpec": "^2.0.2"
}, },
"_requiredBy": [ "_requiredBy": [
"/iconv-lite" "/asn1",
"/ecc-jsbn",
"/iconv-lite",
"/sshpk"
], ],
"_resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "_resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"_shasum": "44fa161b0187b9549dd84bb91802f9bd8385cd6a", "_shasum": "44fa161b0187b9549dd84bb91802f9bd8385cd6a",
"_spec": "safer-buffer@>= 2.1.2 < 3", "_spec": "safer-buffer@^2.0.2",
"_where": "D:\\tftapp\\node_modules\\iconv-lite", "_where": "D:\\TFTPaths\\node_modules\\sshpk",
"author": { "author": {
"name": "Nikita Skovoroda", "name": "Nikita Skovoroda",
"email": "chalkerx@gmail.com", "email": "chalkerx@gmail.com",

View file

@ -21,7 +21,7 @@
"_resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", "_resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
"_shasum": "30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a", "_shasum": "30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a",
"_spec": "ms@2.1.1", "_spec": "ms@2.1.1",
"_where": "D:\\tftapp\\node_modules\\send", "_where": "D:\\TFTPaths\\node_modules\\send",
"bugs": { "bugs": {
"url": "https://github.com/zeit/ms/issues" "url": "https://github.com/zeit/ms/issues"
}, },

2
node_modules/send/package.json generated vendored
View file

@ -22,7 +22,7 @@
"_resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", "_resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
"_shasum": "c1d8b059f7900f7466dd4938bdc44e11ddb376c8", "_shasum": "c1d8b059f7900f7466dd4938bdc44e11ddb376c8",
"_spec": "send@0.17.1", "_spec": "send@0.17.1",
"_where": "D:\\tftapp\\node_modules\\express", "_where": "D:\\TFTPaths\\node_modules\\express",
"author": { "author": {
"name": "TJ Holowaychuk", "name": "TJ Holowaychuk",
"email": "tj@vision-media.ca" "email": "tj@vision-media.ca"

View file

@ -21,7 +21,7 @@
"_resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", "_resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
"_shasum": "666e636dc4f010f7ef29970a88a674320898b2f9", "_shasum": "666e636dc4f010f7ef29970a88a674320898b2f9",
"_spec": "serve-static@1.14.1", "_spec": "serve-static@1.14.1",
"_where": "D:\\tftapp\\node_modules\\express", "_where": "D:\\TFTPaths\\node_modules\\express",
"author": { "author": {
"name": "Douglas Christopher Wilson", "name": "Douglas Christopher Wilson",
"email": "doug@somethingdoug.com" "email": "doug@somethingdoug.com"

View file

@ -22,7 +22,7 @@
"_resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", "_resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
"_shasum": "7e95acb24aa92f5885e0abef5ba131330d4ae683", "_shasum": "7e95acb24aa92f5885e0abef5ba131330d4ae683",
"_spec": "setprototypeof@1.1.1", "_spec": "setprototypeof@1.1.1",
"_where": "D:\\tftapp\\node_modules\\express", "_where": "D:\\TFTPaths\\node_modules\\express",
"author": { "author": {
"name": "Wes Todd" "name": "Wes Todd"
}, },

5
node_modules/statuses/package.json generated vendored
View file

@ -19,12 +19,13 @@
"/express", "/express",
"/finalhandler", "/finalhandler",
"/http-errors", "/http-errors",
"/send" "/send",
"/serve-index/http-errors"
], ],
"_resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", "_resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
"_shasum": "161c7dac177659fd9811f43771fa99381478628c", "_shasum": "161c7dac177659fd9811f43771fa99381478628c",
"_spec": "statuses@~1.5.0", "_spec": "statuses@~1.5.0",
"_where": "D:\\tftapp\\node_modules\\express", "_where": "D:\\TFTPaths\\node_modules\\express",
"bugs": { "bugs": {
"url": "https://github.com/jshttp/statuses/issues" "url": "https://github.com/jshttp/statuses/issues"
}, },

View file

@ -21,7 +21,7 @@
"_resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", "_resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
"_shasum": "7e1be3470f1e77948bc43d94a3c8f4d7752ba553", "_shasum": "7e1be3470f1e77948bc43d94a3c8f4d7752ba553",
"_spec": "toidentifier@1.0.0", "_spec": "toidentifier@1.0.0",
"_where": "D:\\tftapp\\node_modules\\http-errors", "_where": "D:\\TFTPaths\\node_modules\\http-errors",
"author": { "author": {
"name": "Douglas Christopher Wilson", "name": "Douglas Christopher Wilson",
"email": "doug@somethingdoug.com" "email": "doug@somethingdoug.com"

2
node_modules/type-is/package.json generated vendored
View file

@ -22,7 +22,7 @@
"_resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "_resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
"_shasum": "4e552cd05df09467dcbc4ef739de89f2cf37c131", "_shasum": "4e552cd05df09467dcbc4ef739de89f2cf37c131",
"_spec": "type-is@~1.6.18", "_spec": "type-is@~1.6.18",
"_where": "D:\\tftapp\\node_modules\\express", "_where": "D:\\TFTPaths\\node_modules\\express",
"bugs": { "bugs": {
"url": "https://github.com/jshttp/type-is/issues" "url": "https://github.com/jshttp/type-is/issues"
}, },

2
node_modules/unpipe/package.json generated vendored
View file

@ -22,7 +22,7 @@
"_resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "_resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
"_shasum": "b2bf4ee8514aae6165b4817829d21b2ef49904ec", "_shasum": "b2bf4ee8514aae6165b4817829d21b2ef49904ec",
"_spec": "unpipe@1.0.0", "_spec": "unpipe@1.0.0",
"_where": "D:\\tftapp\\node_modules\\raw-body", "_where": "D:\\TFTPaths\\node_modules\\raw-body",
"author": { "author": {
"name": "Douglas Christopher Wilson", "name": "Douglas Christopher Wilson",
"email": "doug@somethingdoug.com" "email": "doug@somethingdoug.com"

View file

@ -16,12 +16,13 @@
"fetchSpec": "1.0.1" "fetchSpec": "1.0.1"
}, },
"_requiredBy": [ "_requiredBy": [
"/connect",
"/express" "/express"
], ],
"_resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "_resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
"_shasum": "9f95710f50a267947b2ccc124741c1028427e713", "_shasum": "9f95710f50a267947b2ccc124741c1028427e713",
"_spec": "utils-merge@1.0.1", "_spec": "utils-merge@1.0.1",
"_where": "D:\\tftapp\\node_modules\\express", "_where": "D:\\TFTPaths\\node_modules\\express",
"author": { "author": {
"name": "Jared Hanson", "name": "Jared Hanson",
"email": "jaredhanson@gmail.com", "email": "jaredhanson@gmail.com",

3
node_modules/vary/package.json generated vendored
View file

@ -16,12 +16,13 @@
"fetchSpec": "~1.1.2" "fetchSpec": "~1.1.2"
}, },
"_requiredBy": [ "_requiredBy": [
"/compression",
"/express" "/express"
], ],
"_resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "_resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
"_shasum": "2299f02c6ded30d4a5961b0b9f74524a18f634fc", "_shasum": "2299f02c6ded30d4a5961b0b9f74524a18f634fc",
"_spec": "vary@~1.1.2", "_spec": "vary@~1.1.2",
"_where": "D:\\tftapp\\node_modules\\express", "_where": "D:\\TFTPaths\\node_modules\\compression",
"author": { "author": {
"name": "Douglas Christopher Wilson", "name": "Douglas Christopher Wilson",
"email": "doug@somethingdoug.com" "email": "doug@somethingdoug.com"

11697
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -1,20 +1,48 @@
{ {
"name": "TFTpaths", "name": "tftpaths",
"version": "1.0.0", "version": "0.0.0",
"description": "TFT Compositions Paths",
"main": "index.js",
"scripts": { "scripts": {
"test": "echo \"Error: no test specified\" && exit 1", "ng": "ng",
"start": "node index" "start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
}, },
"keywords": [ "private": true,
"TFT",
"TeamFight",
"Tacticts"
],
"author": "Daniel Rodríguez Gómez",
"license": "ISC",
"dependencies": { "dependencies": {
"express": "^4.17.1" "@angular/animations": "~8.2.0",
"@angular/common": "~8.2.0",
"@angular/compiler": "~8.2.0",
"@angular/core": "~8.2.0",
"@angular/forms": "~8.2.0",
"@angular/platform-browser": "~8.2.0",
"@angular/platform-browser-dynamic": "~8.2.0",
"@angular/router": "~8.2.0",
"lodash": "^4.17.15",
"rxjs": "~6.4.0",
"tslib": "^1.10.0",
"zone.js": "~0.9.1"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.802.1",
"@angular/cli": "~8.2.1",
"@angular/compiler-cli": "~8.2.0",
"@angular/language-service": "~8.2.0",
"@types/node": "~8.9.4",
"@types/jasmine": "~3.3.8",
"@types/jasminewd2": "~2.0.3",
"codelyzer": "^5.0.0",
"jasmine-core": "~3.4.0",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~4.1.0",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~2.0.1",
"karma-jasmine": "~2.0.1",
"karma-jasmine-html-reporter": "^1.4.0",
"protractor": "~5.4.0",
"ts-node": "~7.0.0",
"tslint": "~5.15.0",
"typescript": "~3.5.3"
} }
} }

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