mirror of
				https://github.com/1disk/edp445.git
				synced 2024-08-14 22:47:02 +00:00 
			
		
		
		
	added a few messages that the bot would respond to
This commit is contained in:
		
							parent
							
								
									c63d9a6e13
								
							
						
					
					
						commit
						de29e2769c
					
				
					 384 changed files with 56249 additions and 43 deletions
				
			
		
							
								
								
									
										259
									
								
								node_modules/type-is/HISTORY.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										259
									
								
								node_modules/type-is/HISTORY.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,259 @@ | |||
| 1.6.18 / 2019-04-26 | ||||
| =================== | ||||
| 
 | ||||
|   * Fix regression passing request object to `typeis.is` | ||||
| 
 | ||||
| 1.6.17 / 2019-04-25 | ||||
| =================== | ||||
| 
 | ||||
|   * deps: mime-types@~2.1.24 | ||||
|     - Add Apple file extensions from IANA | ||||
|     - Add extension `.csl` to `application/vnd.citationstyles.style+xml` | ||||
|     - Add extension `.es` to `application/ecmascript` | ||||
|     - Add extension `.nq` to `application/n-quads` | ||||
|     - Add extension `.nt` to `application/n-triples` | ||||
|     - Add extension `.owl` to `application/rdf+xml` | ||||
|     - Add extensions `.siv` and `.sieve` to `application/sieve` | ||||
|     - Add extensions from IANA for `image/*` types | ||||
|     - Add extensions from IANA for `model/*` types | ||||
|     - Add extensions to HEIC image types | ||||
|     - Add new mime types | ||||
|     - Add `text/mdx` with extension `.mdx` | ||||
|   * perf: prevent internal `throw` on invalid type | ||||
| 
 | ||||
| 1.6.16 / 2018-02-16 | ||||
| =================== | ||||
| 
 | ||||
|   * deps: mime-types@~2.1.18 | ||||
|     - Add `application/raml+yaml` with extension `.raml` | ||||
|     - Add `application/wasm` with extension `.wasm` | ||||
|     - Add `text/shex` with extension `.shex` | ||||
|     - Add extensions for JPEG-2000 images | ||||
|     - Add extensions from IANA for `message/*` types | ||||
|     - Add extension `.mjs` to `application/javascript` | ||||
|     - Add extension `.wadl` to `application/vnd.sun.wadl+xml` | ||||
|     - Add extension `.gz` to `application/gzip` | ||||
|     - Add glTF types and extensions | ||||
|     - Add new mime types | ||||
|     - Update extensions `.md` and `.markdown` to be `text/markdown` | ||||
|     - Update font MIME types | ||||
|     - Update `text/hjson` to registered `application/hjson` | ||||
| 
 | ||||
| 1.6.15 / 2017-03-31 | ||||
| =================== | ||||
| 
 | ||||
|   * deps: mime-types@~2.1.15 | ||||
|     - Add new mime types | ||||
| 
 | ||||
| 1.6.14 / 2016-11-18 | ||||
| =================== | ||||
| 
 | ||||
|   * deps: mime-types@~2.1.13 | ||||
|     - Add new mime types | ||||
| 
 | ||||
| 1.6.13 / 2016-05-18 | ||||
| =================== | ||||
| 
 | ||||
|   * deps: mime-types@~2.1.11 | ||||
|     - Add new mime types | ||||
| 
 | ||||
| 1.6.12 / 2016-02-28 | ||||
| =================== | ||||
| 
 | ||||
|   * deps: mime-types@~2.1.10 | ||||
|     - Add new mime types | ||||
|     - Fix extension of `application/dash+xml` | ||||
|     - Update primary extension for `audio/mp4` | ||||
| 
 | ||||
| 1.6.11 / 2016-01-29 | ||||
| =================== | ||||
| 
 | ||||
|   * deps: mime-types@~2.1.9 | ||||
|     - Add new mime types | ||||
| 
 | ||||
| 1.6.10 / 2015-12-01 | ||||
| =================== | ||||
| 
 | ||||
|   * deps: mime-types@~2.1.8 | ||||
|     - Add new mime types | ||||
| 
 | ||||
| 1.6.9 / 2015-09-27 | ||||
| ================== | ||||
| 
 | ||||
|   * deps: mime-types@~2.1.7 | ||||
|     - Add new mime types | ||||
| 
 | ||||
| 1.6.8 / 2015-09-04 | ||||
| ================== | ||||
| 
 | ||||
|   * deps: mime-types@~2.1.6 | ||||
|     - Add new mime types | ||||
| 
 | ||||
| 1.6.7 / 2015-08-20 | ||||
| ================== | ||||
| 
 | ||||
|   * Fix type error when given invalid type to match against | ||||
|   * deps: mime-types@~2.1.5 | ||||
|     - Add new mime types | ||||
| 
 | ||||
| 1.6.6 / 2015-07-31 | ||||
| ================== | ||||
| 
 | ||||
|   * deps: mime-types@~2.1.4 | ||||
|     - Add new mime types | ||||
| 
 | ||||
| 1.6.5 / 2015-07-16 | ||||
| ================== | ||||
| 
 | ||||
|   * deps: mime-types@~2.1.3 | ||||
|     - Add new mime types | ||||
| 
 | ||||
| 1.6.4 / 2015-07-01 | ||||
| ================== | ||||
| 
 | ||||
|   * deps: mime-types@~2.1.2 | ||||
|     - Add new mime types | ||||
|   * perf: enable strict mode | ||||
|   * perf: remove argument reassignment | ||||
| 
 | ||||
| 1.6.3 / 2015-06-08 | ||||
| ================== | ||||
| 
 | ||||
|   * deps: mime-types@~2.1.1 | ||||
|     - Add new mime types | ||||
|   * perf: reduce try block size | ||||
|   * perf: remove bitwise operations | ||||
| 
 | ||||
| 1.6.2 / 2015-05-10 | ||||
| ================== | ||||
| 
 | ||||
|   * deps: mime-types@~2.0.11 | ||||
|     - Add new mime types | ||||
| 
 | ||||
| 1.6.1 / 2015-03-13 | ||||
| ================== | ||||
| 
 | ||||
|   * deps: mime-types@~2.0.10 | ||||
|     - Add new mime types | ||||
| 
 | ||||
| 1.6.0 / 2015-02-12 | ||||
| ================== | ||||
| 
 | ||||
|   * fix false-positives in `hasBody` `Transfer-Encoding` check | ||||
|   * support wildcard for both type and subtype (`*/*`) | ||||
| 
 | ||||
| 1.5.7 / 2015-02-09 | ||||
| ================== | ||||
| 
 | ||||
|   * fix argument reassignment | ||||
|   * deps: mime-types@~2.0.9 | ||||
|     - Add new mime types | ||||
| 
 | ||||
| 1.5.6 / 2015-01-29 | ||||
| ================== | ||||
| 
 | ||||
|   * deps: mime-types@~2.0.8 | ||||
|     - Add new mime types | ||||
| 
 | ||||
| 1.5.5 / 2014-12-30 | ||||
| ================== | ||||
| 
 | ||||
|   * deps: mime-types@~2.0.7 | ||||
|     - Add new mime types | ||||
|     - Fix missing extensions | ||||
|     - Fix various invalid MIME type entries | ||||
|     - Remove example template MIME types | ||||
|     - deps: mime-db@~1.5.0 | ||||
| 
 | ||||
| 1.5.4 / 2014-12-10 | ||||
| ================== | ||||
| 
 | ||||
|   * deps: mime-types@~2.0.4 | ||||
|     - Add new mime types | ||||
|     - deps: mime-db@~1.3.0 | ||||
| 
 | ||||
| 1.5.3 / 2014-11-09 | ||||
| ================== | ||||
| 
 | ||||
|   * deps: mime-types@~2.0.3 | ||||
|     - Add new mime types | ||||
|     - deps: mime-db@~1.2.0 | ||||
| 
 | ||||
| 1.5.2 / 2014-09-28 | ||||
| ================== | ||||
| 
 | ||||
|   * deps: mime-types@~2.0.2 | ||||
|     - Add new mime types | ||||
|     - deps: mime-db@~1.1.0 | ||||
| 
 | ||||
| 1.5.1 / 2014-09-07 | ||||
| ================== | ||||
| 
 | ||||
|   * Support Node.js 0.6 | ||||
|   * deps: media-typer@0.3.0 | ||||
|   * deps: mime-types@~2.0.1 | ||||
|     - Support Node.js 0.6 | ||||
| 
 | ||||
| 1.5.0 / 2014-09-05 | ||||
| ================== | ||||
| 
 | ||||
|  * fix `hasbody` to be true for `content-length: 0` | ||||
| 
 | ||||
| 1.4.0 / 2014-09-02 | ||||
| ================== | ||||
| 
 | ||||
|  * update mime-types | ||||
| 
 | ||||
| 1.3.2 / 2014-06-24 | ||||
| ================== | ||||
| 
 | ||||
|  * use `~` range on mime-types | ||||
| 
 | ||||
| 1.3.1 / 2014-06-19 | ||||
| ================== | ||||
| 
 | ||||
|  * fix global variable leak | ||||
| 
 | ||||
| 1.3.0 / 2014-06-19 | ||||
| ================== | ||||
| 
 | ||||
|  * improve type parsing | ||||
| 
 | ||||
|    - invalid media type never matches | ||||
|    - media type not case-sensitive | ||||
|    - extra LWS does not affect results | ||||
| 
 | ||||
| 1.2.2 / 2014-06-19 | ||||
| ================== | ||||
| 
 | ||||
|  * fix behavior on unknown type argument | ||||
| 
 | ||||
| 1.2.1 / 2014-06-03 | ||||
| ================== | ||||
| 
 | ||||
|  * switch dependency from `mime` to `mime-types@1.0.0` | ||||
| 
 | ||||
| 1.2.0 / 2014-05-11 | ||||
| ================== | ||||
| 
 | ||||
|  * support suffix matching: | ||||
| 
 | ||||
|    - `+json` matches `application/vnd+json` | ||||
|    - `*/vnd+json` matches `application/vnd+json` | ||||
|    - `application/*+json` matches `application/vnd+json` | ||||
| 
 | ||||
| 1.1.0 / 2014-04-12 | ||||
| ================== | ||||
| 
 | ||||
|  * add non-array values support | ||||
|  * expose internal utilities: | ||||
| 
 | ||||
|    - `.is()` | ||||
|    - `.hasBody()` | ||||
|    - `.normalize()` | ||||
|    - `.match()` | ||||
| 
 | ||||
| 1.0.1 / 2014-03-30 | ||||
| ================== | ||||
| 
 | ||||
|  * add `multipart` as a shorthand | ||||
							
								
								
									
										23
									
								
								node_modules/type-is/LICENSE
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								node_modules/type-is/LICENSE
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,23 @@ | |||
| (The MIT License) | ||||
| 
 | ||||
| Copyright (c) 2014 Jonathan Ong <me@jongleberry.com> | ||||
| Copyright (c) 2014-2015 Douglas Christopher Wilson <doug@somethingdoug.com> | ||||
| 
 | ||||
| Permission is hereby granted, free of charge, to any person obtaining | ||||
| a copy of this software and associated documentation files (the | ||||
| 'Software'), to deal in the Software without restriction, including | ||||
| without limitation the rights to use, copy, modify, merge, publish, | ||||
| distribute, sublicense, and/or sell copies of the Software, and to | ||||
| permit persons to whom the Software is furnished to do so, subject to | ||||
| the following conditions: | ||||
| 
 | ||||
| The above copyright notice and this permission notice shall be | ||||
| included in all copies or substantial portions of the Software. | ||||
| 
 | ||||
| THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, | ||||
| EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||||
| MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. | ||||
| IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY | ||||
| CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | ||||
| TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE | ||||
| SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||||
							
								
								
									
										170
									
								
								node_modules/type-is/README.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										170
									
								
								node_modules/type-is/README.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,170 @@ | |||
| # type-is | ||||
| 
 | ||||
| [![NPM Version][npm-version-image]][npm-url] | ||||
| [![NPM Downloads][npm-downloads-image]][npm-url] | ||||
| [![Node.js Version][node-version-image]][node-version-url] | ||||
| [![Build Status][travis-image]][travis-url] | ||||
| [![Test Coverage][coveralls-image]][coveralls-url] | ||||
| 
 | ||||
| Infer the content-type of a request. | ||||
| 
 | ||||
| ### Install | ||||
| 
 | ||||
| This is a [Node.js](https://nodejs.org/en/) module available through the | ||||
| [npm registry](https://www.npmjs.com/). Installation is done using the | ||||
| [`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): | ||||
| 
 | ||||
| ```sh | ||||
| $ npm install type-is | ||||
| ``` | ||||
| 
 | ||||
| ## API | ||||
| 
 | ||||
| ```js | ||||
| var http = require('http') | ||||
| var typeis = require('type-is') | ||||
| 
 | ||||
| http.createServer(function (req, res) { | ||||
|   var istext = typeis(req, ['text/*']) | ||||
|   res.end('you ' + (istext ? 'sent' : 'did not send') + ' me text') | ||||
| }) | ||||
| ``` | ||||
| 
 | ||||
| ### typeis(request, types) | ||||
| 
 | ||||
| Checks if the `request` is one of the `types`. If the request has no body, | ||||
| even if there is a `Content-Type` header, then `null` is returned. If the | ||||
| `Content-Type` header is invalid or does not matches any of the `types`, then | ||||
| `false` is returned. Otherwise, a string of the type that matched is returned. | ||||
| 
 | ||||
| The `request` argument is expected to be a Node.js HTTP request. The `types` | ||||
| argument is an array of type strings. | ||||
| 
 | ||||
| Each type in the `types` array can be one of the following: | ||||
| 
 | ||||
| - A file extension name such as `json`. This name will be returned if matched. | ||||
| - A mime type such as `application/json`. | ||||
| - A mime type with a wildcard such as `*/*` or `*/json` or `application/*`. | ||||
|   The full mime type will be returned if matched. | ||||
| - A suffix such as `+json`. This can be combined with a wildcard such as | ||||
|   `*/vnd+json` or `application/*+json`. The full mime type will be returned | ||||
|   if matched. | ||||
| 
 | ||||
| Some examples to illustrate the inputs and returned value: | ||||
| 
 | ||||
| <!-- eslint-disable no-undef --> | ||||
| 
 | ||||
| ```js | ||||
| // req.headers.content-type = 'application/json' | ||||
| 
 | ||||
| typeis(req, ['json']) // => 'json' | ||||
| typeis(req, ['html', 'json']) // => 'json' | ||||
| typeis(req, ['application/*']) // => 'application/json' | ||||
| typeis(req, ['application/json']) // => 'application/json' | ||||
| 
 | ||||
| typeis(req, ['html']) // => false | ||||
| ``` | ||||
| 
 | ||||
| ### typeis.hasBody(request) | ||||
| 
 | ||||
| Returns a Boolean if the given `request` has a body, regardless of the | ||||
| `Content-Type` header. | ||||
| 
 | ||||
| Having a body has no relation to how large the body is (it may be 0 bytes). | ||||
| This is similar to how file existence works. If a body does exist, then this | ||||
| indicates that there is data to read from the Node.js request stream. | ||||
| 
 | ||||
| <!-- eslint-disable no-undef --> | ||||
| 
 | ||||
| ```js | ||||
| if (typeis.hasBody(req)) { | ||||
|   // read the body, since there is one | ||||
| 
 | ||||
|   req.on('data', function (chunk) { | ||||
|     // ... | ||||
|   }) | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| ### typeis.is(mediaType, types) | ||||
| 
 | ||||
| Checks if the `mediaType` is one of the `types`. If the `mediaType` is invalid | ||||
| or does not matches any of the `types`, then `false` is returned. Otherwise, a | ||||
| string of the type that matched is returned. | ||||
| 
 | ||||
| The `mediaType` argument is expected to be a | ||||
| [media type](https://tools.ietf.org/html/rfc6838) string. The `types` argument | ||||
| is an array of type strings. | ||||
| 
 | ||||
| Each type in the `types` array can be one of the following: | ||||
| 
 | ||||
| - A file extension name such as `json`. This name will be returned if matched. | ||||
| - A mime type such as `application/json`. | ||||
| - A mime type with a wildcard such as `*/*` or `*/json` or `application/*`. | ||||
|   The full mime type will be returned if matched. | ||||
| - A suffix such as `+json`. This can be combined with a wildcard such as | ||||
|   `*/vnd+json` or `application/*+json`. The full mime type will be returned | ||||
|   if matched. | ||||
| 
 | ||||
| Some examples to illustrate the inputs and returned value: | ||||
| 
 | ||||
| <!-- eslint-disable no-undef --> | ||||
| 
 | ||||
| ```js | ||||
| var mediaType = 'application/json' | ||||
| 
 | ||||
| typeis.is(mediaType, ['json']) // => 'json' | ||||
| typeis.is(mediaType, ['html', 'json']) // => 'json' | ||||
| typeis.is(mediaType, ['application/*']) // => 'application/json' | ||||
| typeis.is(mediaType, ['application/json']) // => 'application/json' | ||||
| 
 | ||||
| typeis.is(mediaType, ['html']) // => false | ||||
| ``` | ||||
| 
 | ||||
| ## Examples | ||||
| 
 | ||||
| ### Example body parser | ||||
| 
 | ||||
| ```js | ||||
| var express = require('express') | ||||
| var typeis = require('type-is') | ||||
| 
 | ||||
| var app = express() | ||||
| 
 | ||||
| app.use(function bodyParser (req, res, next) { | ||||
|   if (!typeis.hasBody(req)) { | ||||
|     return next() | ||||
|   } | ||||
| 
 | ||||
|   switch (typeis(req, ['urlencoded', 'json', 'multipart'])) { | ||||
|     case 'urlencoded': | ||||
|       // parse urlencoded body | ||||
|       throw new Error('implement urlencoded body parsing') | ||||
|     case 'json': | ||||
|       // parse json body | ||||
|       throw new Error('implement json body parsing') | ||||
|     case 'multipart': | ||||
|       // parse multipart body | ||||
|       throw new Error('implement multipart body parsing') | ||||
|     default: | ||||
|       // 415 error code | ||||
|       res.statusCode = 415 | ||||
|       res.end() | ||||
|       break | ||||
|   } | ||||
| }) | ||||
| ``` | ||||
| 
 | ||||
| ## License | ||||
| 
 | ||||
| [MIT](LICENSE) | ||||
| 
 | ||||
| [coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/type-is/master | ||||
| [coveralls-url]: https://coveralls.io/r/jshttp/type-is?branch=master | ||||
| [node-version-image]: https://badgen.net/npm/node/type-is | ||||
| [node-version-url]: https://nodejs.org/en/download | ||||
| [npm-downloads-image]: https://badgen.net/npm/dm/type-is | ||||
| [npm-url]: https://npmjs.org/package/type-is | ||||
| [npm-version-image]: https://badgen.net/npm/v/type-is | ||||
| [travis-image]: https://badgen.net/travis/jshttp/type-is/master | ||||
| [travis-url]: https://travis-ci.org/jshttp/type-is | ||||
							
								
								
									
										266
									
								
								node_modules/type-is/index.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										266
									
								
								node_modules/type-is/index.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,266 @@ | |||
| /*! | ||||
|  * type-is | ||||
|  * Copyright(c) 2014 Jonathan Ong | ||||
|  * Copyright(c) 2014-2015 Douglas Christopher Wilson | ||||
|  * MIT Licensed | ||||
|  */ | ||||
| 
 | ||||
| 'use strict' | ||||
| 
 | ||||
| /** | ||||
|  * Module dependencies. | ||||
|  * @private | ||||
|  */ | ||||
| 
 | ||||
| var typer = require('media-typer') | ||||
| var mime = require('mime-types') | ||||
| 
 | ||||
| /** | ||||
|  * Module exports. | ||||
|  * @public | ||||
|  */ | ||||
| 
 | ||||
| module.exports = typeofrequest | ||||
| module.exports.is = typeis | ||||
| module.exports.hasBody = hasbody | ||||
| module.exports.normalize = normalize | ||||
| module.exports.match = mimeMatch | ||||
| 
 | ||||
| /** | ||||
|  * Compare a `value` content-type with `types`. | ||||
|  * Each `type` can be an extension like `html`, | ||||
|  * a special shortcut like `multipart` or `urlencoded`, | ||||
|  * or a mime type. | ||||
|  * | ||||
|  * If no types match, `false` is returned. | ||||
|  * Otherwise, the first `type` that matches is returned. | ||||
|  * | ||||
|  * @param {String} value | ||||
|  * @param {Array} types | ||||
|  * @public | ||||
|  */ | ||||
| 
 | ||||
| function typeis (value, types_) { | ||||
|   var i | ||||
|   var types = types_ | ||||
| 
 | ||||
|   // remove parameters and normalize
 | ||||
|   var val = tryNormalizeType(value) | ||||
| 
 | ||||
|   // no type or invalid
 | ||||
|   if (!val) { | ||||
|     return false | ||||
|   } | ||||
| 
 | ||||
|   // support flattened arguments
 | ||||
|   if (types && !Array.isArray(types)) { | ||||
|     types = new Array(arguments.length - 1) | ||||
|     for (i = 0; i < types.length; i++) { | ||||
|       types[i] = arguments[i + 1] | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   // no types, return the content type
 | ||||
|   if (!types || !types.length) { | ||||
|     return val | ||||
|   } | ||||
| 
 | ||||
|   var type | ||||
|   for (i = 0; i < types.length; i++) { | ||||
|     if (mimeMatch(normalize(type = types[i]), val)) { | ||||
|       return type[0] === '+' || type.indexOf('*') !== -1 | ||||
|         ? val | ||||
|         : type | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   // no matches
 | ||||
|   return false | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Check if a request has a request body. | ||||
|  * A request with a body __must__ either have `transfer-encoding` | ||||
|  * or `content-length` headers set. | ||||
|  * http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.3
 | ||||
|  * | ||||
|  * @param {Object} request | ||||
|  * @return {Boolean} | ||||
|  * @public | ||||
|  */ | ||||
| 
 | ||||
| function hasbody (req) { | ||||
|   return req.headers['transfer-encoding'] !== undefined || | ||||
|     !isNaN(req.headers['content-length']) | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Check if the incoming request contains the "Content-Type" | ||||
|  * header field, and it contains any of the give mime `type`s. | ||||
|  * If there is no request body, `null` is returned. | ||||
|  * If there is no content type, `false` is returned. | ||||
|  * Otherwise, it returns the first `type` that matches. | ||||
|  * | ||||
|  * Examples: | ||||
|  * | ||||
|  *     // With Content-Type: text/html; charset=utf-8
 | ||||
|  *     this.is('html'); // => 'html'
 | ||||
|  *     this.is('text/html'); // => 'text/html'
 | ||||
|  *     this.is('text/*', 'application/json'); // => 'text/html'
 | ||||
|  * | ||||
|  *     // When Content-Type is application/json
 | ||||
|  *     this.is('json', 'urlencoded'); // => 'json'
 | ||||
|  *     this.is('application/json'); // => 'application/json'
 | ||||
|  *     this.is('html', 'application/*'); // => 'application/json'
 | ||||
|  * | ||||
|  *     this.is('html'); // => false
 | ||||
|  * | ||||
|  * @param {String|Array} types... | ||||
|  * @return {String|false|null} | ||||
|  * @public | ||||
|  */ | ||||
| 
 | ||||
| function typeofrequest (req, types_) { | ||||
|   var types = types_ | ||||
| 
 | ||||
|   // no body
 | ||||
|   if (!hasbody(req)) { | ||||
|     return null | ||||
|   } | ||||
| 
 | ||||
|   // support flattened arguments
 | ||||
|   if (arguments.length > 2) { | ||||
|     types = new Array(arguments.length - 1) | ||||
|     for (var i = 0; i < types.length; i++) { | ||||
|       types[i] = arguments[i + 1] | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   // request content type
 | ||||
|   var value = req.headers['content-type'] | ||||
| 
 | ||||
|   return typeis(value, types) | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Normalize a mime type. | ||||
|  * If it's a shorthand, expand it to a valid mime type. | ||||
|  * | ||||
|  * In general, you probably want: | ||||
|  * | ||||
|  *   var type = is(req, ['urlencoded', 'json', 'multipart']); | ||||
|  * | ||||
|  * Then use the appropriate body parsers. | ||||
|  * These three are the most common request body types | ||||
|  * and are thus ensured to work. | ||||
|  * | ||||
|  * @param {String} type | ||||
|  * @private | ||||
|  */ | ||||
| 
 | ||||
| function normalize (type) { | ||||
|   if (typeof type !== 'string') { | ||||
|     // invalid type
 | ||||
|     return false | ||||
|   } | ||||
| 
 | ||||
|   switch (type) { | ||||
|     case 'urlencoded': | ||||
|       return 'application/x-www-form-urlencoded' | ||||
|     case 'multipart': | ||||
|       return 'multipart/*' | ||||
|   } | ||||
| 
 | ||||
|   if (type[0] === '+') { | ||||
|     // "+json" -> "*/*+json" expando
 | ||||
|     return '*/*' + type | ||||
|   } | ||||
| 
 | ||||
|   return type.indexOf('/') === -1 | ||||
|     ? mime.lookup(type) | ||||
|     : type | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Check if `expected` mime type | ||||
|  * matches `actual` mime type with | ||||
|  * wildcard and +suffix support. | ||||
|  * | ||||
|  * @param {String} expected | ||||
|  * @param {String} actual | ||||
|  * @return {Boolean} | ||||
|  * @private | ||||
|  */ | ||||
| 
 | ||||
| function mimeMatch (expected, actual) { | ||||
|   // invalid type
 | ||||
|   if (expected === false) { | ||||
|     return false | ||||
|   } | ||||
| 
 | ||||
|   // split types
 | ||||
|   var actualParts = actual.split('/') | ||||
|   var expectedParts = expected.split('/') | ||||
| 
 | ||||
|   // invalid format
 | ||||
|   if (actualParts.length !== 2 || expectedParts.length !== 2) { | ||||
|     return false | ||||
|   } | ||||
| 
 | ||||
|   // validate type
 | ||||
|   if (expectedParts[0] !== '*' && expectedParts[0] !== actualParts[0]) { | ||||
|     return false | ||||
|   } | ||||
| 
 | ||||
|   // validate suffix wildcard
 | ||||
|   if (expectedParts[1].substr(0, 2) === '*+') { | ||||
|     return expectedParts[1].length <= actualParts[1].length + 1 && | ||||
|       expectedParts[1].substr(1) === actualParts[1].substr(1 - expectedParts[1].length) | ||||
|   } | ||||
| 
 | ||||
|   // validate subtype
 | ||||
|   if (expectedParts[1] !== '*' && expectedParts[1] !== actualParts[1]) { | ||||
|     return false | ||||
|   } | ||||
| 
 | ||||
|   return true | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Normalize a type and remove parameters. | ||||
|  * | ||||
|  * @param {string} value | ||||
|  * @return {string} | ||||
|  * @private | ||||
|  */ | ||||
| 
 | ||||
| function normalizeType (value) { | ||||
|   // parse the type
 | ||||
|   var type = typer.parse(value) | ||||
| 
 | ||||
|   // remove the parameters
 | ||||
|   type.parameters = undefined | ||||
| 
 | ||||
|   // reformat it
 | ||||
|   return typer.format(type) | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Try to normalize a type and remove parameters. | ||||
|  * | ||||
|  * @param {string} value | ||||
|  * @return {string} | ||||
|  * @private | ||||
|  */ | ||||
| 
 | ||||
| function tryNormalizeType (value) { | ||||
|   if (!value) { | ||||
|     return null | ||||
|   } | ||||
| 
 | ||||
|   try { | ||||
|     return normalizeType(value) | ||||
|   } catch (err) { | ||||
|     return null | ||||
|   } | ||||
| } | ||||
							
								
								
									
										45
									
								
								node_modules/type-is/package.json
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								node_modules/type-is/package.json
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,45 @@ | |||
| { | ||||
|   "name": "type-is", | ||||
|   "description": "Infer the content-type of a request.", | ||||
|   "version": "1.6.18", | ||||
|   "contributors": [ | ||||
|     "Douglas Christopher Wilson <doug@somethingdoug.com>", | ||||
|     "Jonathan Ong <me@jongleberry.com> (http://jongleberry.com)" | ||||
|   ], | ||||
|   "license": "MIT", | ||||
|   "repository": "jshttp/type-is", | ||||
|   "dependencies": { | ||||
|     "media-typer": "0.3.0", | ||||
|     "mime-types": "~2.1.24" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "eslint": "5.16.0", | ||||
|     "eslint-config-standard": "12.0.0", | ||||
|     "eslint-plugin-import": "2.17.2", | ||||
|     "eslint-plugin-markdown": "1.0.0", | ||||
|     "eslint-plugin-node": "8.0.1", | ||||
|     "eslint-plugin-promise": "4.1.1", | ||||
|     "eslint-plugin-standard": "4.0.0", | ||||
|     "mocha": "6.1.4", | ||||
|     "nyc": "14.0.0" | ||||
|   }, | ||||
|   "engines": { | ||||
|     "node": ">= 0.6" | ||||
|   }, | ||||
|   "files": [ | ||||
|     "LICENSE", | ||||
|     "HISTORY.md", | ||||
|     "index.js" | ||||
|   ], | ||||
|   "scripts": { | ||||
|     "lint": "eslint --plugin markdown --ext js,md .", | ||||
|     "test": "mocha --reporter spec --check-leaks --bail test/", | ||||
|     "test-cov": "nyc --reporter=html --reporter=text npm test", | ||||
|     "test-travis": "nyc --reporter=text npm test" | ||||
|   }, | ||||
|   "keywords": [ | ||||
|     "content", | ||||
|     "type", | ||||
|     "checking" | ||||
|   ] | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue