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
				
			
		
							
								
								
									
										521
									
								
								node_modules/send/HISTORY.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										521
									
								
								node_modules/send/HISTORY.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,521 @@ | |||
| 0.18.0 / 2022-03-23 | ||||
| =================== | ||||
| 
 | ||||
|   * Fix emitted 416 error missing headers property | ||||
|   * Limit the headers removed for 304 response | ||||
|   * deps: depd@2.0.0 | ||||
|     - Replace internal `eval` usage with `Function` constructor | ||||
|     - Use instance methods on `process` to check for listeners | ||||
|   * deps: destroy@1.2.0 | ||||
|   * deps: http-errors@2.0.0 | ||||
|     - deps: depd@2.0.0 | ||||
|     - deps: statuses@2.0.1 | ||||
|   * deps: on-finished@2.4.1 | ||||
|   * deps: statuses@2.0.1 | ||||
| 
 | ||||
| 0.17.2 / 2021-12-11 | ||||
| =================== | ||||
| 
 | ||||
|   * pref: ignore empty http tokens | ||||
|   * deps: http-errors@1.8.1 | ||||
|     - deps: inherits@2.0.4 | ||||
|     - deps: toidentifier@1.0.1 | ||||
|     - deps: setprototypeof@1.2.0 | ||||
|   * deps: ms@2.1.3 | ||||
| 
 | ||||
| 0.17.1 / 2019-05-10 | ||||
| =================== | ||||
| 
 | ||||
|   * Set stricter CSP header in redirect & error responses | ||||
|   * deps: range-parser@~1.2.1 | ||||
| 
 | ||||
| 0.17.0 / 2019-05-03 | ||||
| =================== | ||||
| 
 | ||||
|   * deps: http-errors@~1.7.2 | ||||
|     - Set constructor name when possible | ||||
|     - Use `toidentifier` module to make class names | ||||
|     - deps: depd@~1.1.2 | ||||
|     - deps: setprototypeof@1.1.1 | ||||
|     - deps: statuses@'>= 1.5.0 < 2' | ||||
|   * deps: mime@1.6.0 | ||||
|     - Add extensions for JPEG-2000 images | ||||
|     - Add new `font/*` types from IANA | ||||
|     - Add WASM mapping | ||||
|     - Update `.bdoc` to `application/bdoc` | ||||
|     - Update `.bmp` to `image/bmp` | ||||
|     - Update `.m4a` to `audio/mp4` | ||||
|     - Update `.rtf` to `application/rtf` | ||||
|     - Update `.wav` to `audio/wav` | ||||
|     - Update `.xml` to `application/xml` | ||||
|     - Update generic extensions to `application/octet-stream`: | ||||
|       `.deb`, `.dll`, `.dmg`, `.exe`, `.iso`, `.msi` | ||||
|     - Use mime-score module to resolve extension conflicts | ||||
|   * deps: ms@2.1.1 | ||||
|     - Add `week`/`w` support | ||||
|     - Fix negative number handling | ||||
|   * deps: statuses@~1.5.0 | ||||
|   * perf: remove redundant `path.normalize` call | ||||
| 
 | ||||
| 0.16.2 / 2018-02-07 | ||||
| =================== | ||||
| 
 | ||||
|   * Fix incorrect end tag in default error & redirects | ||||
|   * deps: depd@~1.1.2 | ||||
|     - perf: remove argument reassignment | ||||
|   * deps: encodeurl@~1.0.2 | ||||
|     - Fix encoding `%` as last character | ||||
|   * deps: statuses@~1.4.0 | ||||
| 
 | ||||
| 0.16.1 / 2017-09-29 | ||||
| =================== | ||||
| 
 | ||||
|   * Fix regression in edge-case behavior for empty `path` | ||||
| 
 | ||||
| 0.16.0 / 2017-09-27 | ||||
| =================== | ||||
| 
 | ||||
|   * Add `immutable` option | ||||
|   * Fix missing `</html>` in default error & redirects | ||||
|   * Use instance methods on steam to check for listeners | ||||
|   * deps: mime@1.4.1 | ||||
|     - Add 70 new types for file extensions | ||||
|     - Set charset as "UTF-8" for .js and .json | ||||
|   * perf: improve path validation speed | ||||
| 
 | ||||
| 0.15.6 / 2017-09-22 | ||||
| =================== | ||||
| 
 | ||||
|   * deps: debug@2.6.9 | ||||
|   * perf: improve `If-Match` token parsing | ||||
| 
 | ||||
| 0.15.5 / 2017-09-20 | ||||
| =================== | ||||
| 
 | ||||
|   * deps: etag@~1.8.1 | ||||
|     - perf: replace regular expression with substring | ||||
|   * deps: fresh@0.5.2 | ||||
|     - Fix handling of modified headers with invalid dates | ||||
|     - perf: improve ETag match loop | ||||
|     - perf: improve `If-None-Match` token parsing | ||||
| 
 | ||||
| 0.15.4 / 2017-08-05 | ||||
| =================== | ||||
| 
 | ||||
|   * deps: debug@2.6.8 | ||||
|   * deps: depd@~1.1.1 | ||||
|     - Remove unnecessary `Buffer` loading | ||||
|   * deps: http-errors@~1.6.2 | ||||
|     - deps: depd@1.1.1 | ||||
| 
 | ||||
| 0.15.3 / 2017-05-16 | ||||
| =================== | ||||
| 
 | ||||
|   * deps: debug@2.6.7 | ||||
|     - deps: ms@2.0.0 | ||||
|   * deps: ms@2.0.0 | ||||
| 
 | ||||
| 0.15.2 / 2017-04-26 | ||||
| =================== | ||||
| 
 | ||||
|   * deps: debug@2.6.4 | ||||
|     - Fix `DEBUG_MAX_ARRAY_LENGTH` | ||||
|     - deps: ms@0.7.3 | ||||
|   * deps: ms@1.0.0 | ||||
| 
 | ||||
| 0.15.1 / 2017-03-04 | ||||
| =================== | ||||
| 
 | ||||
|   * Fix issue when `Date.parse` does not return `NaN` on invalid date | ||||
|   * Fix strict violation in broken environments | ||||
| 
 | ||||
| 0.15.0 / 2017-02-25 | ||||
| =================== | ||||
| 
 | ||||
|   * Support `If-Match` and `If-Unmodified-Since` headers | ||||
|   * Add `res` and `path` arguments to `directory` event | ||||
|   * Remove usage of `res._headers` private field | ||||
|     - Improves compatibility with Node.js 8 nightly | ||||
|   * Send complete HTML document in redirect & error responses | ||||
|   * Set default CSP header in redirect & error responses | ||||
|   * Use `res.getHeaderNames()` when available | ||||
|   * Use `res.headersSent` when available | ||||
|   * deps: debug@2.6.1 | ||||
|     - Allow colors in workers | ||||
|     - Deprecated `DEBUG_FD` environment variable set to `3` or higher | ||||
|     - Fix error when running under React Native | ||||
|     - Use same color for same namespace | ||||
|     - deps: ms@0.7.2 | ||||
|   * deps: etag@~1.8.0 | ||||
|   * deps: fresh@0.5.0 | ||||
|     - Fix false detection of `no-cache` request directive | ||||
|     - Fix incorrect result when `If-None-Match` has both `*` and ETags | ||||
|     - Fix weak `ETag` matching to match spec | ||||
|     - perf: delay reading header values until needed | ||||
|     - perf: enable strict mode | ||||
|     - perf: hoist regular expressions | ||||
|     - perf: remove duplicate conditional | ||||
|     - perf: remove unnecessary boolean coercions | ||||
|     - perf: skip checking modified time if ETag check failed | ||||
|     - perf: skip parsing `If-None-Match` when no `ETag` header | ||||
|     - perf: use `Date.parse` instead of `new Date` | ||||
|   * deps: http-errors@~1.6.1 | ||||
|     - Make `message` property enumerable for `HttpError`s | ||||
|     - deps: setprototypeof@1.0.3 | ||||
| 
 | ||||
| 0.14.2 / 2017-01-23 | ||||
| =================== | ||||
| 
 | ||||
|   * deps: http-errors@~1.5.1 | ||||
|     - deps: inherits@2.0.3 | ||||
|     - deps: setprototypeof@1.0.2 | ||||
|     - deps: statuses@'>= 1.3.1 < 2' | ||||
|   * deps: ms@0.7.2 | ||||
|   * deps: statuses@~1.3.1 | ||||
| 
 | ||||
| 0.14.1 / 2016-06-09 | ||||
| =================== | ||||
| 
 | ||||
|   * Fix redirect error when `path` contains raw non-URL characters | ||||
|   * Fix redirect when `path` starts with multiple forward slashes | ||||
| 
 | ||||
| 0.14.0 / 2016-06-06 | ||||
| =================== | ||||
| 
 | ||||
|   * Add `acceptRanges` option | ||||
|   * Add `cacheControl` option | ||||
|   * Attempt to combine multiple ranges into single range | ||||
|   * Correctly inherit from `Stream` class | ||||
|   * Fix `Content-Range` header in 416 responses when using `start`/`end` options | ||||
|   * Fix `Content-Range` header missing from default 416 responses | ||||
|   * Ignore non-byte `Range` headers | ||||
|   * deps: http-errors@~1.5.0 | ||||
|     - Add `HttpError` export, for `err instanceof createError.HttpError` | ||||
|     - Support new code `421 Misdirected Request` | ||||
|     - Use `setprototypeof` module to replace `__proto__` setting | ||||
|     - deps: inherits@2.0.1 | ||||
|     - deps: statuses@'>= 1.3.0 < 2' | ||||
|     - perf: enable strict mode | ||||
|   * deps: range-parser@~1.2.0 | ||||
|     - Fix incorrectly returning -1 when there is at least one valid range | ||||
|     - perf: remove internal function | ||||
|   * deps: statuses@~1.3.0 | ||||
|     - Add `421 Misdirected Request` | ||||
|     - perf: enable strict mode | ||||
|   * perf: remove argument reassignment | ||||
| 
 | ||||
| 0.13.2 / 2016-03-05 | ||||
| =================== | ||||
| 
 | ||||
|   * Fix invalid `Content-Type` header when `send.mime.default_type` unset | ||||
| 
 | ||||
| 0.13.1 / 2016-01-16 | ||||
| =================== | ||||
| 
 | ||||
|   * deps: depd@~1.1.0 | ||||
|     - Support web browser loading | ||||
|     - perf: enable strict mode | ||||
|   * deps: destroy@~1.0.4 | ||||
|     - perf: enable strict mode | ||||
|   * deps: escape-html@~1.0.3 | ||||
|     - perf: enable strict mode | ||||
|     - perf: optimize string replacement | ||||
|     - perf: use faster string coercion | ||||
|   * deps: range-parser@~1.0.3 | ||||
|     - perf: enable strict mode | ||||
| 
 | ||||
| 0.13.0 / 2015-06-16 | ||||
| =================== | ||||
| 
 | ||||
|   * Allow Node.js HTTP server to set `Date` response header | ||||
|   * Fix incorrectly removing `Content-Location` on 304 response | ||||
|   * Improve the default redirect response headers | ||||
|   * Send appropriate headers on default error response | ||||
|   * Use `http-errors` for standard emitted errors | ||||
|   * Use `statuses` instead of `http` module for status messages | ||||
|   * deps: escape-html@1.0.2 | ||||
|   * deps: etag@~1.7.0 | ||||
|     - Improve stat performance by removing hashing | ||||
|   * deps: fresh@0.3.0 | ||||
|     - Add weak `ETag` matching support | ||||
|   * deps: on-finished@~2.3.0 | ||||
|     - Add defined behavior for HTTP `CONNECT` requests | ||||
|     - Add defined behavior for HTTP `Upgrade` requests | ||||
|     - deps: ee-first@1.1.1 | ||||
|   * perf: enable strict mode | ||||
|   * perf: remove unnecessary array allocations | ||||
| 
 | ||||
| 0.12.3 / 2015-05-13 | ||||
| =================== | ||||
| 
 | ||||
|   * deps: debug@~2.2.0 | ||||
|     - deps: ms@0.7.1 | ||||
|   * deps: depd@~1.0.1 | ||||
|   * deps: etag@~1.6.0 | ||||
|    - Improve support for JXcore | ||||
|    - Support "fake" stats objects in environments without `fs` | ||||
|   * deps: ms@0.7.1 | ||||
|     - Prevent extraordinarily long inputs | ||||
|   * deps: on-finished@~2.2.1 | ||||
| 
 | ||||
| 0.12.2 / 2015-03-13 | ||||
| =================== | ||||
| 
 | ||||
|   * Throw errors early for invalid `extensions` or `index` options | ||||
|   * deps: debug@~2.1.3 | ||||
|     - Fix high intensity foreground color for bold | ||||
|     - deps: ms@0.7.0 | ||||
| 
 | ||||
| 0.12.1 / 2015-02-17 | ||||
| =================== | ||||
| 
 | ||||
|   * Fix regression sending zero-length files | ||||
| 
 | ||||
| 0.12.0 / 2015-02-16 | ||||
| =================== | ||||
| 
 | ||||
|   * Always read the stat size from the file | ||||
|   * Fix mutating passed-in `options` | ||||
|   * deps: mime@1.3.4 | ||||
| 
 | ||||
| 0.11.1 / 2015-01-20 | ||||
| =================== | ||||
| 
 | ||||
|   * Fix `root` path disclosure | ||||
| 
 | ||||
| 0.11.0 / 2015-01-05 | ||||
| =================== | ||||
| 
 | ||||
|   * deps: debug@~2.1.1 | ||||
|   * deps: etag@~1.5.1 | ||||
|     - deps: crc@3.2.1 | ||||
|   * deps: ms@0.7.0 | ||||
|     - Add `milliseconds` | ||||
|     - Add `msecs` | ||||
|     - Add `secs` | ||||
|     - Add `mins` | ||||
|     - Add `hrs` | ||||
|     - Add `yrs` | ||||
|   * deps: on-finished@~2.2.0 | ||||
| 
 | ||||
| 0.10.1 / 2014-10-22 | ||||
| =================== | ||||
| 
 | ||||
|   * deps: on-finished@~2.1.1 | ||||
|     - Fix handling of pipelined requests | ||||
| 
 | ||||
| 0.10.0 / 2014-10-15 | ||||
| =================== | ||||
| 
 | ||||
|   * deps: debug@~2.1.0 | ||||
|     - Implement `DEBUG_FD` env variable support | ||||
|   * deps: depd@~1.0.0 | ||||
|   * deps: etag@~1.5.0 | ||||
|     - Improve string performance | ||||
|     - Slightly improve speed for weak ETags over 1KB | ||||
| 
 | ||||
| 0.9.3 / 2014-09-24 | ||||
| ================== | ||||
| 
 | ||||
|   * deps: etag@~1.4.0 | ||||
|     - Support "fake" stats objects | ||||
| 
 | ||||
| 0.9.2 / 2014-09-15 | ||||
| ================== | ||||
| 
 | ||||
|   * deps: depd@0.4.5 | ||||
|   * deps: etag@~1.3.1 | ||||
|   * deps: range-parser@~1.0.2 | ||||
| 
 | ||||
| 0.9.1 / 2014-09-07 | ||||
| ================== | ||||
| 
 | ||||
|   * deps: fresh@0.2.4 | ||||
| 
 | ||||
| 0.9.0 / 2014-09-07 | ||||
| ================== | ||||
| 
 | ||||
|   * Add `lastModified` option | ||||
|   * Use `etag` to generate `ETag` header | ||||
|   * deps: debug@~2.0.0 | ||||
| 
 | ||||
| 0.8.5 / 2014-09-04 | ||||
| ================== | ||||
| 
 | ||||
|   * Fix malicious path detection for empty string path | ||||
| 
 | ||||
| 0.8.4 / 2014-09-04 | ||||
| ================== | ||||
| 
 | ||||
|   * Fix a path traversal issue when using `root` | ||||
| 
 | ||||
| 0.8.3 / 2014-08-16 | ||||
| ================== | ||||
| 
 | ||||
|   * deps: destroy@1.0.3 | ||||
|     - renamed from dethroy | ||||
|   * deps: on-finished@2.1.0 | ||||
| 
 | ||||
| 0.8.2 / 2014-08-14 | ||||
| ================== | ||||
| 
 | ||||
|   * Work around `fd` leak in Node.js 0.10 for `fs.ReadStream` | ||||
|   * deps: dethroy@1.0.2 | ||||
| 
 | ||||
| 0.8.1 / 2014-08-05 | ||||
| ================== | ||||
| 
 | ||||
|   * Fix `extensions` behavior when file already has extension | ||||
| 
 | ||||
| 0.8.0 / 2014-08-05 | ||||
| ================== | ||||
| 
 | ||||
|   * Add `extensions` option | ||||
| 
 | ||||
| 0.7.4 / 2014-08-04 | ||||
| ================== | ||||
| 
 | ||||
|   * Fix serving index files without root dir | ||||
| 
 | ||||
| 0.7.3 / 2014-07-29 | ||||
| ================== | ||||
| 
 | ||||
|   * Fix incorrect 403 on Windows and Node.js 0.11 | ||||
| 
 | ||||
| 0.7.2 / 2014-07-27 | ||||
| ================== | ||||
| 
 | ||||
|   * deps: depd@0.4.4 | ||||
|     - Work-around v8 generating empty stack traces | ||||
| 
 | ||||
| 0.7.1 / 2014-07-26 | ||||
| ================== | ||||
| 
 | ||||
|  * deps: depd@0.4.3 | ||||
|    - Fix exception when global `Error.stackTraceLimit` is too low | ||||
| 
 | ||||
| 0.7.0 / 2014-07-20 | ||||
| ================== | ||||
| 
 | ||||
|  * Deprecate `hidden` option; use `dotfiles` option | ||||
|  * Add `dotfiles` option | ||||
|  * deps: debug@1.0.4 | ||||
|  * deps: depd@0.4.2 | ||||
|    - Add `TRACE_DEPRECATION` environment variable | ||||
|    - Remove non-standard grey color from color output | ||||
|    - Support `--no-deprecation` argument | ||||
|    - Support `--trace-deprecation` argument | ||||
| 
 | ||||
| 0.6.0 / 2014-07-11 | ||||
| ================== | ||||
| 
 | ||||
|  * Deprecate `from` option; use `root` option | ||||
|  * Deprecate `send.etag()` -- use `etag` in `options` | ||||
|  * Deprecate `send.hidden()` -- use `hidden` in `options` | ||||
|  * Deprecate `send.index()` -- use `index` in `options` | ||||
|  * Deprecate `send.maxage()` -- use `maxAge` in `options` | ||||
|  * Deprecate `send.root()` -- use `root` in `options` | ||||
|  * Cap `maxAge` value to 1 year | ||||
|  * deps: debug@1.0.3 | ||||
|    - Add support for multiple wildcards in namespaces | ||||
| 
 | ||||
| 0.5.0 / 2014-06-28 | ||||
| ================== | ||||
| 
 | ||||
|  * Accept string for `maxAge` (converted by `ms`) | ||||
|  * Add `headers` event | ||||
|  * Include link in default redirect response | ||||
|  * Use `EventEmitter.listenerCount` to count listeners | ||||
| 
 | ||||
| 0.4.3 / 2014-06-11 | ||||
| ================== | ||||
| 
 | ||||
|  * Do not throw un-catchable error on file open race condition | ||||
|  * Use `escape-html` for HTML escaping | ||||
|  * deps: debug@1.0.2 | ||||
|    - fix some debugging output colors on node.js 0.8 | ||||
|  * deps: finished@1.2.2 | ||||
|  * deps: fresh@0.2.2 | ||||
| 
 | ||||
| 0.4.2 / 2014-06-09 | ||||
| ================== | ||||
| 
 | ||||
|  * fix "event emitter leak" warnings | ||||
|  * deps: debug@1.0.1 | ||||
|  * deps: finished@1.2.1 | ||||
| 
 | ||||
| 0.4.1 / 2014-06-02 | ||||
| ================== | ||||
| 
 | ||||
|  * Send `max-age` in `Cache-Control` in correct format | ||||
| 
 | ||||
| 0.4.0 / 2014-05-27 | ||||
| ================== | ||||
| 
 | ||||
|  * Calculate ETag with md5 for reduced collisions | ||||
|  * Fix wrong behavior when index file matches directory | ||||
|  * Ignore stream errors after request ends | ||||
|    - Goodbye `EBADF, read` | ||||
|  * Skip directories in index file search | ||||
|  * deps: debug@0.8.1 | ||||
| 
 | ||||
| 0.3.0 / 2014-04-24 | ||||
| ================== | ||||
| 
 | ||||
|  * Fix sending files with dots without root set | ||||
|  * Coerce option types | ||||
|  * Accept API options in options object | ||||
|  * Set etags to "weak" | ||||
|  * Include file path in etag | ||||
|  * Make "Can't set headers after they are sent." catchable | ||||
|  * Send full entity-body for multi range requests | ||||
|  * Default directory access to 403 when index disabled | ||||
|  * Support multiple index paths | ||||
|  * Support "If-Range" header | ||||
|  * Control whether to generate etags | ||||
|  * deps: mime@1.2.11 | ||||
| 
 | ||||
| 0.2.0 / 2014-01-29 | ||||
| ================== | ||||
| 
 | ||||
|  * update range-parser and fresh | ||||
| 
 | ||||
| 0.1.4 / 2013-08-11  | ||||
| ================== | ||||
| 
 | ||||
|  * update fresh | ||||
| 
 | ||||
| 0.1.3 / 2013-07-08  | ||||
| ================== | ||||
| 
 | ||||
|  * Revert "Fix fd leak" | ||||
| 
 | ||||
| 0.1.2 / 2013-07-03  | ||||
| ================== | ||||
| 
 | ||||
|  * Fix fd leak | ||||
| 
 | ||||
| 0.1.0 / 2012-08-25  | ||||
| ================== | ||||
| 
 | ||||
|   * add options parameter to send() that is passed to fs.createReadStream() [kanongil] | ||||
| 
 | ||||
| 0.0.4 / 2012-08-16  | ||||
| ================== | ||||
| 
 | ||||
|   * allow custom "Accept-Ranges" definition | ||||
| 
 | ||||
| 0.0.3 / 2012-07-16  | ||||
| ================== | ||||
| 
 | ||||
|   * fix normalization of the root directory. Closes #3 | ||||
| 
 | ||||
| 0.0.2 / 2012-07-09  | ||||
| ================== | ||||
| 
 | ||||
|   * add passing of req explicitly for now (YUCK) | ||||
| 
 | ||||
| 0.0.1 / 2010-01-03 | ||||
| ================== | ||||
| 
 | ||||
|   * Initial release | ||||
							
								
								
									
										23
									
								
								node_modules/send/LICENSE
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								node_modules/send/LICENSE
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,23 @@ | |||
| (The MIT License) | ||||
| 
 | ||||
| Copyright (c) 2012 TJ Holowaychuk | ||||
| Copyright (c) 2014-2022 Douglas Christopher Wilson | ||||
| 
 | ||||
| Permission is hereby granted, free of charge, to any person obtaining | ||||
| a copy of this software and associated documentation files (the | ||||
| 'Software'), to deal in the Software without restriction, including | ||||
| without limitation the rights to use, copy, modify, merge, publish, | ||||
| distribute, sublicense, and/or sell copies of the Software, and to | ||||
| permit persons to whom the Software is furnished to do so, subject to | ||||
| the following conditions: | ||||
| 
 | ||||
| The above copyright notice and this permission notice shall be | ||||
| included in all copies or substantial portions of the Software. | ||||
| 
 | ||||
| THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, | ||||
| EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||||
| MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. | ||||
| IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY | ||||
| CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | ||||
| TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE | ||||
| SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||||
							
								
								
									
										327
									
								
								node_modules/send/README.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										327
									
								
								node_modules/send/README.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,327 @@ | |||
| # send | ||||
| 
 | ||||
| [![NPM Version][npm-version-image]][npm-url] | ||||
| [![NPM Downloads][npm-downloads-image]][npm-url] | ||||
| [![Linux Build][github-actions-ci-image]][github-actions-ci-url] | ||||
| [![Windows Build][appveyor-image]][appveyor-url] | ||||
| [![Test Coverage][coveralls-image]][coveralls-url] | ||||
| 
 | ||||
| Send is a library for streaming files from the file system as a http response | ||||
| supporting partial responses (Ranges), conditional-GET negotiation (If-Match, | ||||
| If-Unmodified-Since, If-None-Match, If-Modified-Since), high test coverage, | ||||
| and granular events which may be leveraged to take appropriate actions in your | ||||
| application or framework. | ||||
| 
 | ||||
| Looking to serve up entire folders mapped to URLs? Try [serve-static](https://www.npmjs.org/package/serve-static). | ||||
| 
 | ||||
| ## Installation | ||||
| 
 | ||||
| This is a [Node.js](https://nodejs.org/en/) module available through the | ||||
| [npm registry](https://www.npmjs.com/). Installation is done using the | ||||
| [`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): | ||||
| 
 | ||||
| ```bash | ||||
| $ npm install send | ||||
| ``` | ||||
| 
 | ||||
| ## API | ||||
| 
 | ||||
| ```js | ||||
| var send = require('send') | ||||
| ``` | ||||
| 
 | ||||
| ### send(req, path, [options]) | ||||
| 
 | ||||
| Create a new `SendStream` for the given path to send to a `res`. The `req` is | ||||
| the Node.js HTTP request and the `path` is a urlencoded path to send (urlencoded, | ||||
| not the actual file-system path). | ||||
| 
 | ||||
| #### Options | ||||
| 
 | ||||
| ##### acceptRanges | ||||
| 
 | ||||
| Enable or disable accepting ranged requests, defaults to true. | ||||
| Disabling this will not send `Accept-Ranges` and ignore the contents | ||||
| of the `Range` request header. | ||||
| 
 | ||||
| ##### cacheControl | ||||
| 
 | ||||
| Enable or disable setting `Cache-Control` response header, defaults to | ||||
| true. Disabling this will ignore the `immutable` and `maxAge` options. | ||||
| 
 | ||||
| ##### dotfiles | ||||
| 
 | ||||
| Set how "dotfiles" are treated when encountered. A dotfile is a file | ||||
| or directory that begins with a dot ("."). Note this check is done on | ||||
| the path itself without checking if the path actually exists on the | ||||
| disk. If `root` is specified, only the dotfiles above the root are | ||||
| checked (i.e. the root itself can be within a dotfile when when set | ||||
| to "deny"). | ||||
| 
 | ||||
|   - `'allow'` No special treatment for dotfiles. | ||||
|   - `'deny'` Send a 403 for any request for a dotfile. | ||||
|   - `'ignore'` Pretend like the dotfile does not exist and 404. | ||||
| 
 | ||||
| The default value is _similar_ to `'ignore'`, with the exception that | ||||
| this default will not ignore the files within a directory that begins | ||||
| with a dot, for backward-compatibility. | ||||
| 
 | ||||
| ##### end | ||||
| 
 | ||||
| Byte offset at which the stream ends, defaults to the length of the file | ||||
| minus 1. The end is inclusive in the stream, meaning `end: 3` will include | ||||
| the 4th byte in the stream. | ||||
| 
 | ||||
| ##### etag | ||||
| 
 | ||||
| Enable or disable etag generation, defaults to true. | ||||
| 
 | ||||
| ##### extensions | ||||
| 
 | ||||
| If a given file doesn't exist, try appending one of the given extensions, | ||||
| in the given order. By default, this is disabled (set to `false`). An | ||||
| example value that will serve extension-less HTML files: `['html', 'htm']`. | ||||
| This is skipped if the requested file already has an extension. | ||||
| 
 | ||||
| ##### immutable | ||||
| 
 | ||||
| Enable or disable the `immutable` directive in the `Cache-Control` response | ||||
| header, defaults to `false`. If set to `true`, the `maxAge` option should | ||||
| also be specified to enable caching. The `immutable` directive will prevent | ||||
| supported clients from making conditional requests during the life of the | ||||
| `maxAge` option to check if the file has changed. | ||||
| 
 | ||||
| ##### index | ||||
| 
 | ||||
| By default send supports "index.html" files, to disable this | ||||
| set `false` or to supply a new index pass a string or an array | ||||
| in preferred order. | ||||
| 
 | ||||
| ##### lastModified | ||||
| 
 | ||||
| Enable or disable `Last-Modified` header, defaults to true. Uses the file | ||||
| system's last modified value. | ||||
| 
 | ||||
| ##### maxAge | ||||
| 
 | ||||
| Provide a max-age in milliseconds for http caching, defaults to 0. | ||||
| This can also be a string accepted by the | ||||
| [ms](https://www.npmjs.org/package/ms#readme) module. | ||||
| 
 | ||||
| ##### root | ||||
| 
 | ||||
| Serve files relative to `path`. | ||||
| 
 | ||||
| ##### start | ||||
| 
 | ||||
| Byte offset at which the stream starts, defaults to 0. The start is inclusive, | ||||
| meaning `start: 2` will include the 3rd byte in the stream. | ||||
| 
 | ||||
| #### Events | ||||
| 
 | ||||
| The `SendStream` is an event emitter and will emit the following events: | ||||
| 
 | ||||
|   - `error` an error occurred `(err)` | ||||
|   - `directory` a directory was requested `(res, path)` | ||||
|   - `file` a file was requested `(path, stat)` | ||||
|   - `headers` the headers are about to be set on a file `(res, path, stat)` | ||||
|   - `stream` file streaming has started `(stream)` | ||||
|   - `end` streaming has completed | ||||
| 
 | ||||
| #### .pipe | ||||
| 
 | ||||
| The `pipe` method is used to pipe the response into the Node.js HTTP response | ||||
| object, typically `send(req, path, options).pipe(res)`. | ||||
| 
 | ||||
| ### .mime | ||||
| 
 | ||||
| The `mime` export is the global instance of of the | ||||
| [`mime` npm module](https://www.npmjs.com/package/mime). | ||||
| 
 | ||||
| This is used to configure the MIME types that are associated with file extensions | ||||
| as well as other options for how to resolve the MIME type of a file (like the | ||||
| default type to use for an unknown file extension). | ||||
| 
 | ||||
| ## Error-handling | ||||
| 
 | ||||
| By default when no `error` listeners are present an automatic response will be | ||||
| made, otherwise you have full control over the response, aka you may show a 5xx | ||||
| page etc. | ||||
| 
 | ||||
| ## Caching | ||||
| 
 | ||||
| It does _not_ perform internal caching, you should use a reverse proxy cache | ||||
| such as Varnish for this, or those fancy things called CDNs. If your | ||||
| application is small enough that it would benefit from single-node memory | ||||
| caching, it's small enough that it does not need caching at all ;). | ||||
| 
 | ||||
| ## Debugging | ||||
| 
 | ||||
| To enable `debug()` instrumentation output export __DEBUG__: | ||||
| 
 | ||||
| ``` | ||||
| $ DEBUG=send node app | ||||
| ``` | ||||
| 
 | ||||
| ## Running tests | ||||
| 
 | ||||
| ``` | ||||
| $ npm install | ||||
| $ npm test | ||||
| ``` | ||||
| 
 | ||||
| ## Examples | ||||
| 
 | ||||
| ### Serve a specific file | ||||
| 
 | ||||
| This simple example will send a specific file to all requests. | ||||
| 
 | ||||
| ```js | ||||
| var http = require('http') | ||||
| var send = require('send') | ||||
| 
 | ||||
| var server = http.createServer(function onRequest (req, res) { | ||||
|   send(req, '/path/to/index.html') | ||||
|     .pipe(res) | ||||
| }) | ||||
| 
 | ||||
| server.listen(3000) | ||||
| ``` | ||||
| 
 | ||||
| ### Serve all files from a directory | ||||
| 
 | ||||
| This simple example will just serve up all the files in a | ||||
| given directory as the top-level. For example, a request | ||||
| `GET /foo.txt` will send back `/www/public/foo.txt`. | ||||
| 
 | ||||
| ```js | ||||
| var http = require('http') | ||||
| var parseUrl = require('parseurl') | ||||
| var send = require('send') | ||||
| 
 | ||||
| var server = http.createServer(function onRequest (req, res) { | ||||
|   send(req, parseUrl(req).pathname, { root: '/www/public' }) | ||||
|     .pipe(res) | ||||
| }) | ||||
| 
 | ||||
| server.listen(3000) | ||||
| ``` | ||||
| 
 | ||||
| ### Custom file types | ||||
| 
 | ||||
| ```js | ||||
| var http = require('http') | ||||
| var parseUrl = require('parseurl') | ||||
| var send = require('send') | ||||
| 
 | ||||
| // Default unknown types to text/plain | ||||
| send.mime.default_type = 'text/plain' | ||||
| 
 | ||||
| // Add a custom type | ||||
| send.mime.define({ | ||||
|   'application/x-my-type': ['x-mt', 'x-mtt'] | ||||
| }) | ||||
| 
 | ||||
| var server = http.createServer(function onRequest (req, res) { | ||||
|   send(req, parseUrl(req).pathname, { root: '/www/public' }) | ||||
|     .pipe(res) | ||||
| }) | ||||
| 
 | ||||
| server.listen(3000) | ||||
| ``` | ||||
| 
 | ||||
| ### Custom directory index view | ||||
| 
 | ||||
| This is a example of serving up a structure of directories with a | ||||
| custom function to render a listing of a directory. | ||||
| 
 | ||||
| ```js | ||||
| var http = require('http') | ||||
| var fs = require('fs') | ||||
| var parseUrl = require('parseurl') | ||||
| var send = require('send') | ||||
| 
 | ||||
| // Transfer arbitrary files from within /www/example.com/public/* | ||||
| // with a custom handler for directory listing | ||||
| var server = http.createServer(function onRequest (req, res) { | ||||
|   send(req, parseUrl(req).pathname, { index: false, root: '/www/public' }) | ||||
|     .once('directory', directory) | ||||
|     .pipe(res) | ||||
| }) | ||||
| 
 | ||||
| server.listen(3000) | ||||
| 
 | ||||
| // Custom directory handler | ||||
| function directory (res, path) { | ||||
|   var stream = this | ||||
| 
 | ||||
|   // redirect to trailing slash for consistent url | ||||
|   if (!stream.hasTrailingSlash()) { | ||||
|     return stream.redirect(path) | ||||
|   } | ||||
| 
 | ||||
|   // get directory list | ||||
|   fs.readdir(path, function onReaddir (err, list) { | ||||
|     if (err) return stream.error(err) | ||||
| 
 | ||||
|     // render an index for the directory | ||||
|     res.setHeader('Content-Type', 'text/plain; charset=UTF-8') | ||||
|     res.end(list.join('\n') + '\n') | ||||
|   }) | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| ### Serving from a root directory with custom error-handling | ||||
| 
 | ||||
| ```js | ||||
| var http = require('http') | ||||
| var parseUrl = require('parseurl') | ||||
| var send = require('send') | ||||
| 
 | ||||
| var server = http.createServer(function onRequest (req, res) { | ||||
|   // your custom error-handling logic: | ||||
|   function error (err) { | ||||
|     res.statusCode = err.status || 500 | ||||
|     res.end(err.message) | ||||
|   } | ||||
| 
 | ||||
|   // your custom headers | ||||
|   function headers (res, path, stat) { | ||||
|     // serve all files for download | ||||
|     res.setHeader('Content-Disposition', 'attachment') | ||||
|   } | ||||
| 
 | ||||
|   // your custom directory handling logic: | ||||
|   function redirect () { | ||||
|     res.statusCode = 301 | ||||
|     res.setHeader('Location', req.url + '/') | ||||
|     res.end('Redirecting to ' + req.url + '/') | ||||
|   } | ||||
| 
 | ||||
|   // transfer arbitrary files from within | ||||
|   // /www/example.com/public/* | ||||
|   send(req, parseUrl(req).pathname, { root: '/www/public' }) | ||||
|     .on('error', error) | ||||
|     .on('directory', redirect) | ||||
|     .on('headers', headers) | ||||
|     .pipe(res) | ||||
| }) | ||||
| 
 | ||||
| server.listen(3000) | ||||
| ``` | ||||
| 
 | ||||
| ## License | ||||
| 
 | ||||
| [MIT](LICENSE) | ||||
| 
 | ||||
| [appveyor-image]: https://badgen.net/appveyor/ci/dougwilson/send/master?label=windows | ||||
| [appveyor-url]: https://ci.appveyor.com/project/dougwilson/send | ||||
| [coveralls-image]: https://badgen.net/coveralls/c/github/pillarjs/send/master | ||||
| [coveralls-url]: https://coveralls.io/r/pillarjs/send?branch=master | ||||
| [github-actions-ci-image]: https://badgen.net/github/checks/pillarjs/send/master?label=linux | ||||
| [github-actions-ci-url]: https://github.com/pillarjs/send/actions/workflows/ci.yml | ||||
| [node-image]: https://badgen.net/npm/node/send | ||||
| [node-url]: https://nodejs.org/en/download/ | ||||
| [npm-downloads-image]: https://badgen.net/npm/dm/send | ||||
| [npm-url]: https://npmjs.org/package/send | ||||
| [npm-version-image]: https://badgen.net/npm/v/send | ||||
							
								
								
									
										24
									
								
								node_modules/send/SECURITY.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								node_modules/send/SECURITY.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,24 @@ | |||
| # Security Policies and Procedures | ||||
| 
 | ||||
| ## Reporting a Bug | ||||
| 
 | ||||
| The `send` team and community take all security bugs seriously. Thank you | ||||
| for improving the security of Express. We appreciate your efforts and | ||||
| responsible disclosure and will make every effort to acknowledge your | ||||
| contributions. | ||||
| 
 | ||||
| Report security bugs by emailing the current owner(s) of `send`. This information | ||||
| can be found in the npm registry using the command `npm owner ls send`. | ||||
| If unsure or unable to get the information from the above, open an issue | ||||
| in the [project issue tracker](https://github.com/pillarjs/send/issues) | ||||
| asking for the current contact information. | ||||
| 
 | ||||
| To ensure the timely response to your report, please ensure that the entirety | ||||
| of the report is contained within the email body and not solely behind a web | ||||
| link or an attachment. | ||||
| 
 | ||||
| At least one owner will acknowledge your email within 48 hours, and will send a | ||||
| more detailed response within 48 hours indicating the next steps in handling | ||||
| your report. After the initial reply to your report, the owners will | ||||
| endeavor to keep you informed of the progress towards a fix and full | ||||
| announcement, and may ask for additional information or guidance. | ||||
							
								
								
									
										1143
									
								
								node_modules/send/index.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1143
									
								
								node_modules/send/index.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										1
									
								
								node_modules/send/node_modules/.bin/mime
									
										
									
										generated
									
									
										vendored
									
									
										Symbolic link
									
								
							
							
						
						
									
										1
									
								
								node_modules/send/node_modules/.bin/mime
									
										
									
										generated
									
									
										vendored
									
									
										Symbolic link
									
								
							|  | @ -0,0 +1 @@ | |||
| ../mime/cli.js | ||||
							
								
								
									
										1
									
								
								node_modules/send/node_modules/debug/.coveralls.yml
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/send/node_modules/debug/.coveralls.yml
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | |||
| repo_token: SIAeZjKYlHK74rbcFvNHMUzjRiMpflxve | ||||
							
								
								
									
										11
									
								
								node_modules/send/node_modules/debug/.eslintrc
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								node_modules/send/node_modules/debug/.eslintrc
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,11 @@ | |||
| { | ||||
|   "env": { | ||||
|     "browser": true, | ||||
|     "node": true | ||||
|   }, | ||||
|   "rules": { | ||||
|     "no-console": 0, | ||||
|     "no-empty": [1, { "allowEmptyCatch": true }] | ||||
|   }, | ||||
|   "extends": "eslint:recommended" | ||||
| } | ||||
							
								
								
									
										9
									
								
								node_modules/send/node_modules/debug/.npmignore
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								node_modules/send/node_modules/debug/.npmignore
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,9 @@ | |||
| support | ||||
| test | ||||
| examples | ||||
| example | ||||
| *.sock | ||||
| dist | ||||
| yarn.lock | ||||
| coverage | ||||
| bower.json | ||||
							
								
								
									
										14
									
								
								node_modules/send/node_modules/debug/.travis.yml
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								node_modules/send/node_modules/debug/.travis.yml
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,14 @@ | |||
| 
 | ||||
| language: node_js | ||||
| node_js: | ||||
|   - "6" | ||||
|   - "5" | ||||
|   - "4" | ||||
| 
 | ||||
| install: | ||||
|   - make node_modules | ||||
| 
 | ||||
| script: | ||||
|   - make lint | ||||
|   - make test | ||||
|   - make coveralls | ||||
							
								
								
									
										362
									
								
								node_modules/send/node_modules/debug/CHANGELOG.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										362
									
								
								node_modules/send/node_modules/debug/CHANGELOG.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,362 @@ | |||
| 
 | ||||
| 2.6.9 / 2017-09-22 | ||||
| ================== | ||||
| 
 | ||||
|   * remove ReDoS regexp in %o formatter (#504) | ||||
| 
 | ||||
| 2.6.8 / 2017-05-18 | ||||
| ================== | ||||
| 
 | ||||
|   * Fix: Check for undefined on browser globals (#462, @marbemac) | ||||
| 
 | ||||
| 2.6.7 / 2017-05-16 | ||||
| ================== | ||||
| 
 | ||||
|   * Fix: Update ms to 2.0.0 to fix regular expression denial of service vulnerability (#458, @hubdotcom) | ||||
|   * Fix: Inline extend function in node implementation (#452, @dougwilson) | ||||
|   * Docs: Fix typo (#455, @msasad) | ||||
| 
 | ||||
| 2.6.5 / 2017-04-27 | ||||
| ================== | ||||
|    | ||||
|   * Fix: null reference check on window.documentElement.style.WebkitAppearance (#447, @thebigredgeek) | ||||
|   * Misc: clean up browser reference checks (#447, @thebigredgeek) | ||||
|   * Misc: add npm-debug.log to .gitignore (@thebigredgeek) | ||||
| 
 | ||||
| 
 | ||||
| 2.6.4 / 2017-04-20 | ||||
| ================== | ||||
| 
 | ||||
|   * Fix: bug that would occure if process.env.DEBUG is a non-string value. (#444, @LucianBuzzo) | ||||
|   * Chore: ignore bower.json in npm installations. (#437, @joaovieira) | ||||
|   * Misc: update "ms" to v0.7.3 (@tootallnate) | ||||
| 
 | ||||
| 2.6.3 / 2017-03-13 | ||||
| ================== | ||||
| 
 | ||||
|   * Fix: Electron reference to `process.env.DEBUG` (#431, @paulcbetts) | ||||
|   * Docs: Changelog fix (@thebigredgeek) | ||||
| 
 | ||||
| 2.6.2 / 2017-03-10 | ||||
| ================== | ||||
| 
 | ||||
|   * Fix: DEBUG_MAX_ARRAY_LENGTH (#420, @slavaGanzin) | ||||
|   * Docs: Add backers and sponsors from Open Collective (#422, @piamancini) | ||||
|   * Docs: Add Slackin invite badge (@tootallnate) | ||||
| 
 | ||||
| 2.6.1 / 2017-02-10 | ||||
| ================== | ||||
| 
 | ||||
|   * Fix: Module's `export default` syntax fix for IE8 `Expected identifier` error | ||||
|   * Fix: Whitelist DEBUG_FD for values 1 and 2 only (#415, @pi0) | ||||
|   * Fix: IE8 "Expected identifier" error (#414, @vgoma) | ||||
|   * Fix: Namespaces would not disable once enabled (#409, @musikov) | ||||
| 
 | ||||
| 2.6.0 / 2016-12-28 | ||||
| ================== | ||||
| 
 | ||||
|   * Fix: added better null pointer checks for browser useColors (@thebigredgeek) | ||||
|   * Improvement: removed explicit `window.debug` export (#404, @tootallnate) | ||||
|   * Improvement: deprecated `DEBUG_FD` environment variable (#405, @tootallnate) | ||||
| 
 | ||||
| 2.5.2 / 2016-12-25 | ||||
| ================== | ||||
| 
 | ||||
|   * Fix: reference error on window within webworkers (#393, @KlausTrainer) | ||||
|   * Docs: fixed README typo (#391, @lurch) | ||||
|   * Docs: added notice about v3 api discussion (@thebigredgeek) | ||||
| 
 | ||||
| 2.5.1 / 2016-12-20 | ||||
| ================== | ||||
| 
 | ||||
|   * Fix: babel-core compatibility | ||||
| 
 | ||||
| 2.5.0 / 2016-12-20 | ||||
| ================== | ||||
| 
 | ||||
|   * Fix: wrong reference in bower file (@thebigredgeek) | ||||
|   * Fix: webworker compatibility (@thebigredgeek) | ||||
|   * Fix: output formatting issue (#388, @kribblo) | ||||
|   * Fix: babel-loader compatibility (#383, @escwald) | ||||
|   * Misc: removed built asset from repo and publications (@thebigredgeek) | ||||
|   * Misc: moved source files to /src (#378, @yamikuronue) | ||||
|   * Test: added karma integration and replaced babel with browserify for browser tests (#378, @yamikuronue) | ||||
|   * Test: coveralls integration (#378, @yamikuronue) | ||||
|   * Docs: simplified language in the opening paragraph (#373, @yamikuronue) | ||||
| 
 | ||||
| 2.4.5 / 2016-12-17 | ||||
| ================== | ||||
| 
 | ||||
|   * Fix: `navigator` undefined in Rhino (#376, @jochenberger) | ||||
|   * Fix: custom log function (#379, @hsiliev) | ||||
|   * Improvement: bit of cleanup + linting fixes (@thebigredgeek) | ||||
|   * Improvement: rm non-maintainted `dist/` dir (#375, @freewil) | ||||
|   * Docs: simplified language in the opening paragraph. (#373, @yamikuronue) | ||||
| 
 | ||||
| 2.4.4 / 2016-12-14 | ||||
| ================== | ||||
| 
 | ||||
|   * Fix: work around debug being loaded in preload scripts for electron (#368, @paulcbetts) | ||||
| 
 | ||||
| 2.4.3 / 2016-12-14 | ||||
| ================== | ||||
| 
 | ||||
|   * Fix: navigation.userAgent error for react native (#364, @escwald) | ||||
| 
 | ||||
| 2.4.2 / 2016-12-14 | ||||
| ================== | ||||
| 
 | ||||
|   * Fix: browser colors (#367, @tootallnate) | ||||
|   * Misc: travis ci integration (@thebigredgeek) | ||||
|   * Misc: added linting and testing boilerplate with sanity check (@thebigredgeek) | ||||
| 
 | ||||
| 2.4.1 / 2016-12-13 | ||||
| ================== | ||||
| 
 | ||||
|   * Fix: typo that broke the package (#356) | ||||
| 
 | ||||
| 2.4.0 / 2016-12-13 | ||||
| ================== | ||||
| 
 | ||||
|   * Fix: bower.json references unbuilt src entry point (#342, @justmatt) | ||||
|   * Fix: revert "handle regex special characters" (@tootallnate) | ||||
|   * Feature: configurable util.inspect()`options for NodeJS (#327, @tootallnate) | ||||
|   * Feature: %O`(big O) pretty-prints objects (#322, @tootallnate) | ||||
|   * Improvement: allow colors in workers (#335, @botverse) | ||||
|   * Improvement: use same color for same namespace. (#338, @lchenay) | ||||
| 
 | ||||
| 2.3.3 / 2016-11-09 | ||||
| ================== | ||||
| 
 | ||||
|   * Fix: Catch `JSON.stringify()` errors (#195, Jovan Alleyne) | ||||
|   * Fix: Returning `localStorage` saved values (#331, Levi Thomason) | ||||
|   * Improvement: Don't create an empty object when no `process` (Nathan Rajlich) | ||||
| 
 | ||||
| 2.3.2 / 2016-11-09 | ||||
| ================== | ||||
| 
 | ||||
|   * Fix: be super-safe in index.js as well (@TooTallNate) | ||||
|   * Fix: should check whether process exists (Tom Newby) | ||||
| 
 | ||||
| 2.3.1 / 2016-11-09 | ||||
| ================== | ||||
| 
 | ||||
|   * Fix: Added electron compatibility (#324, @paulcbetts) | ||||
|   * Improvement: Added performance optimizations (@tootallnate) | ||||
|   * Readme: Corrected PowerShell environment variable example (#252, @gimre) | ||||
|   * Misc: Removed yarn lock file from source control (#321, @fengmk2) | ||||
| 
 | ||||
| 2.3.0 / 2016-11-07 | ||||
| ================== | ||||
| 
 | ||||
|   * Fix: Consistent placement of ms diff at end of output (#215, @gorangajic) | ||||
|   * Fix: Escaping of regex special characters in namespace strings (#250, @zacronos) | ||||
|   * Fix: Fixed bug causing crash on react-native (#282, @vkarpov15) | ||||
|   * Feature: Enabled ES6+ compatible import via default export (#212 @bucaran) | ||||
|   * Feature: Added %O formatter to reflect Chrome's console.log capability (#279, @oncletom) | ||||
|   * Package: Update "ms" to 0.7.2 (#315, @DevSide) | ||||
|   * Package: removed superfluous version property from bower.json (#207 @kkirsche) | ||||
|   * Readme: fix USE_COLORS to DEBUG_COLORS | ||||
|   * Readme: Doc fixes for format string sugar (#269, @mlucool) | ||||
|   * Readme: Updated docs for DEBUG_FD and DEBUG_COLORS environment variables (#232, @mattlyons0) | ||||
|   * Readme: doc fixes for PowerShell (#271 #243, @exoticknight @unreadable) | ||||
|   * Readme: better docs for browser support (#224, @matthewmueller) | ||||
|   * Tooling: Added yarn integration for development (#317, @thebigredgeek) | ||||
|   * Misc: Renamed History.md to CHANGELOG.md (@thebigredgeek) | ||||
|   * Misc: Added license file (#226 #274, @CantemoInternal @sdaitzman) | ||||
|   * Misc: Updated contributors (@thebigredgeek) | ||||
| 
 | ||||
| 2.2.0 / 2015-05-09 | ||||
| ================== | ||||
| 
 | ||||
|   * package: update "ms" to v0.7.1 (#202, @dougwilson) | ||||
|   * README: add logging to file example (#193, @DanielOchoa) | ||||
|   * README: fixed a typo (#191, @amir-s) | ||||
|   * browser: expose `storage` (#190, @stephenmathieson) | ||||
|   * Makefile: add a `distclean` target (#189, @stephenmathieson) | ||||
| 
 | ||||
| 2.1.3 / 2015-03-13 | ||||
| ================== | ||||
| 
 | ||||
|   * Updated stdout/stderr example (#186) | ||||
|   * Updated example/stdout.js to match debug current behaviour | ||||
|   * Renamed example/stderr.js to stdout.js | ||||
|   * Update Readme.md (#184) | ||||
|   * replace high intensity foreground color for bold (#182, #183) | ||||
| 
 | ||||
| 2.1.2 / 2015-03-01 | ||||
| ================== | ||||
| 
 | ||||
|   * dist: recompile | ||||
|   * update "ms" to v0.7.0 | ||||
|   * package: update "browserify" to v9.0.3 | ||||
|   * component: fix "ms.js" repo location | ||||
|   * changed bower package name | ||||
|   * updated documentation about using debug in a browser | ||||
|   * fix: security error on safari (#167, #168, @yields) | ||||
| 
 | ||||
| 2.1.1 / 2014-12-29 | ||||
| ================== | ||||
| 
 | ||||
|   * browser: use `typeof` to check for `console` existence | ||||
|   * browser: check for `console.log` truthiness (fix IE 8/9) | ||||
|   * browser: add support for Chrome apps | ||||
|   * Readme: added Windows usage remarks | ||||
|   * Add `bower.json` to properly support bower install | ||||
| 
 | ||||
| 2.1.0 / 2014-10-15 | ||||
| ================== | ||||
| 
 | ||||
|   * node: implement `DEBUG_FD` env variable support | ||||
|   * package: update "browserify" to v6.1.0 | ||||
|   * package: add "license" field to package.json (#135, @panuhorsmalahti) | ||||
| 
 | ||||
| 2.0.0 / 2014-09-01 | ||||
| ================== | ||||
| 
 | ||||
|   * package: update "browserify" to v5.11.0 | ||||
|   * node: use stderr rather than stdout for logging (#29, @stephenmathieson) | ||||
| 
 | ||||
| 1.0.4 / 2014-07-15 | ||||
| ================== | ||||
| 
 | ||||
|   * dist: recompile | ||||
|   * example: remove `console.info()` log usage | ||||
|   * example: add "Content-Type" UTF-8 header to browser example | ||||
|   * browser: place %c marker after the space character | ||||
|   * browser: reset the "content" color via `color: inherit` | ||||
|   * browser: add colors support for Firefox >= v31 | ||||
|   * debug: prefer an instance `log()` function over the global one (#119) | ||||
|   * Readme: update documentation about styled console logs for FF v31 (#116, @wryk) | ||||
| 
 | ||||
| 1.0.3 / 2014-07-09 | ||||
| ================== | ||||
| 
 | ||||
|   * Add support for multiple wildcards in namespaces (#122, @seegno) | ||||
|   * browser: fix lint | ||||
| 
 | ||||
| 1.0.2 / 2014-06-10 | ||||
| ================== | ||||
| 
 | ||||
|   * browser: update color palette (#113, @gscottolson) | ||||
|   * common: make console logging function configurable (#108, @timoxley) | ||||
|   * node: fix %o colors on old node <= 0.8.x | ||||
|   * Makefile: find node path using shell/which (#109, @timoxley) | ||||
| 
 | ||||
| 1.0.1 / 2014-06-06 | ||||
| ================== | ||||
| 
 | ||||
|   * browser: use `removeItem()` to clear localStorage | ||||
|   * browser, node: don't set DEBUG if namespaces is undefined (#107, @leedm777) | ||||
|   * package: add "contributors" section | ||||
|   * node: fix comment typo | ||||
|   * README: list authors | ||||
| 
 | ||||
| 1.0.0 / 2014-06-04 | ||||
| ================== | ||||
| 
 | ||||
|   * make ms diff be global, not be scope | ||||
|   * debug: ignore empty strings in enable() | ||||
|   * node: make DEBUG_COLORS able to disable coloring | ||||
|   * *: export the `colors` array | ||||
|   * npmignore: don't publish the `dist` dir | ||||
|   * Makefile: refactor to use browserify | ||||
|   * package: add "browserify" as a dev dependency | ||||
|   * Readme: add Web Inspector Colors section | ||||
|   * node: reset terminal color for the debug content | ||||
|   * node: map "%o" to `util.inspect()` | ||||
|   * browser: map "%j" to `JSON.stringify()` | ||||
|   * debug: add custom "formatters" | ||||
|   * debug: use "ms" module for humanizing the diff | ||||
|   * Readme: add "bash" syntax highlighting | ||||
|   * browser: add Firebug color support | ||||
|   * browser: add colors for WebKit browsers | ||||
|   * node: apply log to `console` | ||||
|   * rewrite: abstract common logic for Node & browsers | ||||
|   * add .jshintrc file | ||||
| 
 | ||||
| 0.8.1 / 2014-04-14 | ||||
| ================== | ||||
| 
 | ||||
|   * package: re-add the "component" section | ||||
| 
 | ||||
| 0.8.0 / 2014-03-30 | ||||
| ================== | ||||
| 
 | ||||
|   * add `enable()` method for nodejs. Closes #27 | ||||
|   * change from stderr to stdout | ||||
|   * remove unnecessary index.js file | ||||
| 
 | ||||
| 0.7.4 / 2013-11-13 | ||||
| ================== | ||||
| 
 | ||||
|   * remove "browserify" key from package.json (fixes something in browserify) | ||||
| 
 | ||||
| 0.7.3 / 2013-10-30 | ||||
| ================== | ||||
| 
 | ||||
|   * fix: catch localStorage security error when cookies are blocked (Chrome) | ||||
|   * add debug(err) support. Closes #46 | ||||
|   * add .browser prop to package.json. Closes #42 | ||||
| 
 | ||||
| 0.7.2 / 2013-02-06 | ||||
| ================== | ||||
| 
 | ||||
|   * fix package.json | ||||
|   * fix: Mobile Safari (private mode) is broken with debug | ||||
|   * fix: Use unicode to send escape character to shell instead of octal to work with strict mode javascript | ||||
| 
 | ||||
| 0.7.1 / 2013-02-05 | ||||
| ================== | ||||
| 
 | ||||
|   * add repository URL to package.json | ||||
|   * add DEBUG_COLORED to force colored output | ||||
|   * add browserify support | ||||
|   * fix component. Closes #24 | ||||
| 
 | ||||
| 0.7.0 / 2012-05-04 | ||||
| ================== | ||||
| 
 | ||||
|   * Added .component to package.json | ||||
|   * Added debug.component.js build | ||||
| 
 | ||||
| 0.6.0 / 2012-03-16 | ||||
| ================== | ||||
| 
 | ||||
|   * Added support for "-" prefix in DEBUG [Vinay Pulim] | ||||
|   * Added `.enabled` flag to the node version [TooTallNate] | ||||
| 
 | ||||
| 0.5.0 / 2012-02-02 | ||||
| ================== | ||||
| 
 | ||||
|   * Added: humanize diffs. Closes #8 | ||||
|   * Added `debug.disable()` to the CS variant | ||||
|   * Removed padding. Closes #10 | ||||
|   * Fixed: persist client-side variant again. Closes #9 | ||||
| 
 | ||||
| 0.4.0 / 2012-02-01 | ||||
| ================== | ||||
| 
 | ||||
|   * Added browser variant support for older browsers [TooTallNate] | ||||
|   * Added `debug.enable('project:*')` to browser variant [TooTallNate] | ||||
|   * Added padding to diff (moved it to the right) | ||||
| 
 | ||||
| 0.3.0 / 2012-01-26 | ||||
| ================== | ||||
| 
 | ||||
|   * Added millisecond diff when isatty, otherwise UTC string | ||||
| 
 | ||||
| 0.2.0 / 2012-01-22 | ||||
| ================== | ||||
| 
 | ||||
|   * Added wildcard support | ||||
| 
 | ||||
| 0.1.0 / 2011-12-02 | ||||
| ================== | ||||
| 
 | ||||
|   * Added: remove colors unless stderr isatty [TooTallNate] | ||||
| 
 | ||||
| 0.0.1 / 2010-01-03 | ||||
| ================== | ||||
| 
 | ||||
|   * Initial release | ||||
							
								
								
									
										19
									
								
								node_modules/send/node_modules/debug/LICENSE
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								node_modules/send/node_modules/debug/LICENSE
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,19 @@ | |||
| (The MIT License) | ||||
| 
 | ||||
| Copyright (c) 2014 TJ Holowaychuk <tj@vision-media.ca> | ||||
| 
 | ||||
| Permission is hereby granted, free of charge, to any person obtaining a copy of this software  | ||||
| and associated documentation files (the 'Software'), to deal in the Software without restriction,  | ||||
| including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,  | ||||
| and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, | ||||
| subject to the following conditions: | ||||
| 
 | ||||
| The above copyright notice and this permission notice shall be included in all copies or substantial  | ||||
| portions of the Software. | ||||
| 
 | ||||
| THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT  | ||||
| LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  | ||||
| IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,  | ||||
| WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE  | ||||
| SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||||
| 
 | ||||
							
								
								
									
										50
									
								
								node_modules/send/node_modules/debug/Makefile
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								node_modules/send/node_modules/debug/Makefile
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,50 @@ | |||
| # get Makefile directory name: http://stackoverflow.com/a/5982798/376773
 | ||||
| THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) | ||||
| THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd) | ||||
| 
 | ||||
| # BIN directory
 | ||||
| BIN := $(THIS_DIR)/node_modules/.bin | ||||
| 
 | ||||
| # Path
 | ||||
| PATH := node_modules/.bin:$(PATH) | ||||
| SHELL := /bin/bash | ||||
| 
 | ||||
| # applications
 | ||||
| NODE ?= $(shell which node) | ||||
| YARN ?= $(shell which yarn) | ||||
| PKG ?= $(if $(YARN),$(YARN),$(NODE) $(shell which npm)) | ||||
| BROWSERIFY ?= $(NODE) $(BIN)/browserify | ||||
| 
 | ||||
| .FORCE: | ||||
| 
 | ||||
| install: node_modules | ||||
| 
 | ||||
| node_modules: package.json | ||||
| 	@NODE_ENV= $(PKG) install | ||||
| 	@touch node_modules | ||||
| 
 | ||||
| lint: .FORCE | ||||
| 	eslint browser.js debug.js index.js node.js | ||||
| 
 | ||||
| test-node: .FORCE | ||||
| 	istanbul cover node_modules/mocha/bin/_mocha -- test/**.js | ||||
| 
 | ||||
| test-browser: .FORCE | ||||
| 	mkdir -p dist | ||||
| 
 | ||||
| 	@$(BROWSERIFY) \
 | ||||
| 		--standalone debug \
 | ||||
| 		. > dist/debug.js | ||||
| 
 | ||||
| 	karma start --single-run | ||||
| 	rimraf dist | ||||
| 
 | ||||
| test: .FORCE | ||||
| 	concurrently \
 | ||||
| 		"make test-node" \
 | ||||
| 		"make test-browser" | ||||
| 
 | ||||
| coveralls: | ||||
| 	cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js | ||||
| 
 | ||||
| .PHONY: all install clean distclean | ||||
							
								
								
									
										312
									
								
								node_modules/send/node_modules/debug/README.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										312
									
								
								node_modules/send/node_modules/debug/README.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,312 @@ | |||
| # debug | ||||
| [](https://travis-ci.org/visionmedia/debug)  [](https://coveralls.io/github/visionmedia/debug?branch=master)  [](https://visionmedia-community-slackin.now.sh/) [](#backers)  | ||||
| [](#sponsors) | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| A tiny node.js debugging utility modelled after node core's debugging technique. | ||||
| 
 | ||||
| **Discussion around the V3 API is under way [here](https://github.com/visionmedia/debug/issues/370)** | ||||
| 
 | ||||
| ## Installation | ||||
| 
 | ||||
| ```bash | ||||
| $ npm install debug | ||||
| ``` | ||||
| 
 | ||||
| ## Usage | ||||
| 
 | ||||
| `debug` exposes a function; simply pass this function the name of your module, and it will return a decorated version of `console.error` for you to pass debug statements to. This will allow you to toggle the debug output for different parts of your module as well as the module as a whole. | ||||
| 
 | ||||
| Example _app.js_: | ||||
| 
 | ||||
| ```js | ||||
| var debug = require('debug')('http') | ||||
|   , http = require('http') | ||||
|   , name = 'My App'; | ||||
| 
 | ||||
| // fake app | ||||
| 
 | ||||
| debug('booting %s', name); | ||||
| 
 | ||||
| http.createServer(function(req, res){ | ||||
|   debug(req.method + ' ' + req.url); | ||||
|   res.end('hello\n'); | ||||
| }).listen(3000, function(){ | ||||
|   debug('listening'); | ||||
| }); | ||||
| 
 | ||||
| // fake worker of some kind | ||||
| 
 | ||||
| require('./worker'); | ||||
| ``` | ||||
| 
 | ||||
| Example _worker.js_: | ||||
| 
 | ||||
| ```js | ||||
| var debug = require('debug')('worker'); | ||||
| 
 | ||||
| setInterval(function(){ | ||||
|   debug('doing some work'); | ||||
| }, 1000); | ||||
| ``` | ||||
| 
 | ||||
|  The __DEBUG__ environment variable is then used to enable these based on space or comma-delimited names. Here are some examples: | ||||
| 
 | ||||
|    | ||||
| 
 | ||||
|    | ||||
| 
 | ||||
| #### Windows note | ||||
| 
 | ||||
|  On Windows the environment variable is set using the `set` command. | ||||
| 
 | ||||
|  ```cmd | ||||
|  set DEBUG=*,-not_this | ||||
|  ``` | ||||
| 
 | ||||
|  Note that PowerShell uses different syntax to set environment variables. | ||||
| 
 | ||||
|  ```cmd | ||||
|  $env:DEBUG = "*,-not_this" | ||||
|   ``` | ||||
| 
 | ||||
| Then, run the program to be debugged as usual. | ||||
| 
 | ||||
| ## Millisecond diff | ||||
| 
 | ||||
|   When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls. | ||||
| 
 | ||||
|    | ||||
| 
 | ||||
|   When stdout is not a TTY, `Date#toUTCString()` is used, making it more useful for logging the debug information as shown below: | ||||
| 
 | ||||
|    | ||||
| 
 | ||||
| ## Conventions | ||||
| 
 | ||||
|   If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser". | ||||
| 
 | ||||
| ## Wildcards | ||||
| 
 | ||||
|   The `*` character may be used as a wildcard. Suppose for example your library has debuggers named "connect:bodyParser", "connect:compress", "connect:session", instead of listing all three with `DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do `DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`. | ||||
| 
 | ||||
|   You can also exclude specific debuggers by prefixing them with a "-" character.  For example, `DEBUG=*,-connect:*` would include all debuggers except those starting with "connect:". | ||||
| 
 | ||||
| ## Environment Variables | ||||
| 
 | ||||
|   When running through Node.js, you can set a few environment variables that will | ||||
|   change the behavior of the debug logging: | ||||
| 
 | ||||
| | Name      | Purpose                                         | | ||||
| |-----------|-------------------------------------------------| | ||||
| | `DEBUG`   | Enables/disables specific debugging namespaces. | | ||||
| | `DEBUG_COLORS`| Whether or not to use colors in the debug output. | | ||||
| | `DEBUG_DEPTH` | Object inspection depth. | | ||||
| | `DEBUG_SHOW_HIDDEN` | Shows hidden properties on inspected objects. | | ||||
| 
 | ||||
| 
 | ||||
|   __Note:__ The environment variables beginning with `DEBUG_` end up being | ||||
|   converted into an Options object that gets used with `%o`/`%O` formatters. | ||||
|   See the Node.js documentation for | ||||
|   [`util.inspect()`](https://nodejs.org/api/util.html#util_util_inspect_object_options) | ||||
|   for the complete list. | ||||
| 
 | ||||
| ## Formatters | ||||
| 
 | ||||
| 
 | ||||
|   Debug uses [printf-style](https://wikipedia.org/wiki/Printf_format_string) formatting. Below are the officially supported formatters: | ||||
| 
 | ||||
| | Formatter | Representation | | ||||
| |-----------|----------------| | ||||
| | `%O`      | Pretty-print an Object on multiple lines. | | ||||
| | `%o`      | Pretty-print an Object all on a single line. | | ||||
| | `%s`      | String. | | ||||
| | `%d`      | Number (both integer and float). | | ||||
| | `%j`      | JSON. Replaced with the string '[Circular]' if the argument contains circular references. | | ||||
| | `%%`      | Single percent sign ('%'). This does not consume an argument. | | ||||
| 
 | ||||
| ### Custom formatters | ||||
| 
 | ||||
|   You can add custom formatters by extending the `debug.formatters` object. For example, if you wanted to add support for rendering a Buffer as hex with `%h`, you could do something like: | ||||
| 
 | ||||
| ```js | ||||
| const createDebug = require('debug') | ||||
| createDebug.formatters.h = (v) => { | ||||
|   return v.toString('hex') | ||||
| } | ||||
| 
 | ||||
| // …elsewhere | ||||
| const debug = createDebug('foo') | ||||
| debug('this is hex: %h', new Buffer('hello world')) | ||||
| //   foo this is hex: 68656c6c6f20776f726c6421 +0ms | ||||
| ``` | ||||
| 
 | ||||
| ## Browser support | ||||
|   You can build a browser-ready script using [browserify](https://github.com/substack/node-browserify), | ||||
|   or just use the [browserify-as-a-service](https://wzrd.in/) [build](https://wzrd.in/standalone/debug@latest), | ||||
|   if you don't want to build it yourself. | ||||
| 
 | ||||
|   Debug's enable state is currently persisted by `localStorage`. | ||||
|   Consider the situation shown below where you have `worker:a` and `worker:b`, | ||||
|   and wish to debug both. You can enable this using `localStorage.debug`: | ||||
| 
 | ||||
| ```js | ||||
| localStorage.debug = 'worker:*' | ||||
| ``` | ||||
| 
 | ||||
| And then refresh the page. | ||||
| 
 | ||||
| ```js | ||||
| a = debug('worker:a'); | ||||
| b = debug('worker:b'); | ||||
| 
 | ||||
| setInterval(function(){ | ||||
|   a('doing some work'); | ||||
| }, 1000); | ||||
| 
 | ||||
| setInterval(function(){ | ||||
|   b('doing some work'); | ||||
| }, 1200); | ||||
| ``` | ||||
| 
 | ||||
| #### Web Inspector Colors | ||||
| 
 | ||||
|   Colors are also enabled on "Web Inspectors" that understand the `%c` formatting | ||||
|   option. These are WebKit web inspectors, Firefox ([since version | ||||
|   31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/)) | ||||
|   and the Firebug plugin for Firefox (any version). | ||||
| 
 | ||||
|   Colored output looks something like: | ||||
| 
 | ||||
|    | ||||
| 
 | ||||
| 
 | ||||
| ## Output streams | ||||
| 
 | ||||
|   By default `debug` will log to stderr, however this can be configured per-namespace by overriding the `log` method: | ||||
| 
 | ||||
| Example _stdout.js_: | ||||
| 
 | ||||
| ```js | ||||
| var debug = require('debug'); | ||||
| var error = debug('app:error'); | ||||
| 
 | ||||
| // by default stderr is used | ||||
| error('goes to stderr!'); | ||||
| 
 | ||||
| var log = debug('app:log'); | ||||
| // set this namespace to log via console.log | ||||
| log.log = console.log.bind(console); // don't forget to bind to console! | ||||
| log('goes to stdout'); | ||||
| error('still goes to stderr!'); | ||||
| 
 | ||||
| // set all output to go via console.info | ||||
| // overrides all per-namespace log settings | ||||
| debug.log = console.info.bind(console); | ||||
| error('now goes to stdout via console.info'); | ||||
| log('still goes to stdout, but via console.info now'); | ||||
| ``` | ||||
| 
 | ||||
| 
 | ||||
| ## Authors | ||||
| 
 | ||||
|  - TJ Holowaychuk | ||||
|  - Nathan Rajlich | ||||
|  - Andrew Rhyne | ||||
|   | ||||
| ## Backers | ||||
| 
 | ||||
| Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/debug#backer)] | ||||
| 
 | ||||
| <a href="https://opencollective.com/debug/backer/0/website" target="_blank"><img src="https://opencollective.com/debug/backer/0/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/backer/1/website" target="_blank"><img src="https://opencollective.com/debug/backer/1/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/backer/2/website" target="_blank"><img src="https://opencollective.com/debug/backer/2/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/backer/3/website" target="_blank"><img src="https://opencollective.com/debug/backer/3/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/backer/4/website" target="_blank"><img src="https://opencollective.com/debug/backer/4/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/backer/5/website" target="_blank"><img src="https://opencollective.com/debug/backer/5/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/backer/6/website" target="_blank"><img src="https://opencollective.com/debug/backer/6/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/backer/7/website" target="_blank"><img src="https://opencollective.com/debug/backer/7/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/backer/8/website" target="_blank"><img src="https://opencollective.com/debug/backer/8/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/backer/9/website" target="_blank"><img src="https://opencollective.com/debug/backer/9/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/backer/10/website" target="_blank"><img src="https://opencollective.com/debug/backer/10/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/backer/11/website" target="_blank"><img src="https://opencollective.com/debug/backer/11/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/backer/12/website" target="_blank"><img src="https://opencollective.com/debug/backer/12/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/backer/13/website" target="_blank"><img src="https://opencollective.com/debug/backer/13/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/backer/14/website" target="_blank"><img src="https://opencollective.com/debug/backer/14/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/backer/15/website" target="_blank"><img src="https://opencollective.com/debug/backer/15/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/backer/16/website" target="_blank"><img src="https://opencollective.com/debug/backer/16/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/backer/17/website" target="_blank"><img src="https://opencollective.com/debug/backer/17/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/backer/18/website" target="_blank"><img src="https://opencollective.com/debug/backer/18/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/backer/19/website" target="_blank"><img src="https://opencollective.com/debug/backer/19/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/backer/20/website" target="_blank"><img src="https://opencollective.com/debug/backer/20/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/backer/21/website" target="_blank"><img src="https://opencollective.com/debug/backer/21/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/backer/22/website" target="_blank"><img src="https://opencollective.com/debug/backer/22/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/backer/23/website" target="_blank"><img src="https://opencollective.com/debug/backer/23/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/backer/24/website" target="_blank"><img src="https://opencollective.com/debug/backer/24/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/backer/25/website" target="_blank"><img src="https://opencollective.com/debug/backer/25/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/backer/26/website" target="_blank"><img src="https://opencollective.com/debug/backer/26/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/backer/27/website" target="_blank"><img src="https://opencollective.com/debug/backer/27/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/backer/28/website" target="_blank"><img src="https://opencollective.com/debug/backer/28/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/backer/29/website" target="_blank"><img src="https://opencollective.com/debug/backer/29/avatar.svg"></a> | ||||
| 
 | ||||
| 
 | ||||
| ## Sponsors | ||||
| 
 | ||||
| Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/debug#sponsor)] | ||||
| 
 | ||||
| <a href="https://opencollective.com/debug/sponsor/0/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/0/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/sponsor/1/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/1/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/sponsor/2/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/2/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/sponsor/3/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/3/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/sponsor/4/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/4/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/sponsor/5/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/5/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/sponsor/6/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/6/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/sponsor/7/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/7/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/sponsor/8/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/8/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/sponsor/9/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/9/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/sponsor/10/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/10/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/sponsor/11/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/11/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/sponsor/12/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/12/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/sponsor/13/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/13/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/sponsor/14/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/14/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/sponsor/15/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/15/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/sponsor/16/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/16/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/sponsor/17/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/17/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/sponsor/18/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/18/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/sponsor/19/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/19/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/sponsor/20/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/20/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/sponsor/21/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/21/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/sponsor/22/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/22/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/sponsor/23/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/23/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/sponsor/24/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/24/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/sponsor/25/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/25/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/sponsor/26/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/26/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/sponsor/27/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/27/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/sponsor/28/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/28/avatar.svg"></a> | ||||
| <a href="https://opencollective.com/debug/sponsor/29/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/29/avatar.svg"></a> | ||||
| 
 | ||||
| ## License | ||||
| 
 | ||||
| (The MIT License) | ||||
| 
 | ||||
| Copyright (c) 2014-2016 TJ Holowaychuk <tj@vision-media.ca> | ||||
| 
 | ||||
| Permission is hereby granted, free of charge, to any person obtaining | ||||
| a copy of this software and associated documentation files (the | ||||
| 'Software'), to deal in the Software without restriction, including | ||||
| without limitation the rights to use, copy, modify, merge, publish, | ||||
| distribute, sublicense, and/or sell copies of the Software, and to | ||||
| permit persons to whom the Software is furnished to do so, subject to | ||||
| the following conditions: | ||||
| 
 | ||||
| The above copyright notice and this permission notice shall be | ||||
| included in all copies or substantial portions of the Software. | ||||
| 
 | ||||
| THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, | ||||
| EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||||
| MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. | ||||
| IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY | ||||
| CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | ||||
| TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE | ||||
| SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||||
							
								
								
									
										19
									
								
								node_modules/send/node_modules/debug/component.json
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								node_modules/send/node_modules/debug/component.json
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,19 @@ | |||
| { | ||||
|   "name": "debug", | ||||
|   "repo": "visionmedia/debug", | ||||
|   "description": "small debugging utility", | ||||
|   "version": "2.6.9", | ||||
|   "keywords": [ | ||||
|     "debug", | ||||
|     "log", | ||||
|     "debugger" | ||||
|   ], | ||||
|   "main": "src/browser.js", | ||||
|   "scripts": [ | ||||
|     "src/browser.js", | ||||
|     "src/debug.js" | ||||
|   ], | ||||
|   "dependencies": { | ||||
|     "rauchg/ms.js": "0.7.1" | ||||
|   } | ||||
| } | ||||
							
								
								
									
										70
									
								
								node_modules/send/node_modules/debug/karma.conf.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								node_modules/send/node_modules/debug/karma.conf.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,70 @@ | |||
| // Karma configuration
 | ||||
| // Generated on Fri Dec 16 2016 13:09:51 GMT+0000 (UTC)
 | ||||
| 
 | ||||
| module.exports = function(config) { | ||||
|   config.set({ | ||||
| 
 | ||||
|     // base path that will be used to resolve all patterns (eg. files, exclude)
 | ||||
|     basePath: '', | ||||
| 
 | ||||
| 
 | ||||
|     // frameworks to use
 | ||||
|     // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
 | ||||
|     frameworks: ['mocha', 'chai', 'sinon'], | ||||
| 
 | ||||
| 
 | ||||
|     // list of files / patterns to load in the browser
 | ||||
|     files: [ | ||||
|       'dist/debug.js', | ||||
|       'test/*spec.js' | ||||
|     ], | ||||
| 
 | ||||
| 
 | ||||
|     // list of files to exclude
 | ||||
|     exclude: [ | ||||
|       'src/node.js' | ||||
|     ], | ||||
| 
 | ||||
| 
 | ||||
|     // preprocess matching files before serving them to the browser
 | ||||
|     // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
 | ||||
|     preprocessors: { | ||||
|     }, | ||||
| 
 | ||||
|     // test results reporter to use
 | ||||
|     // possible values: 'dots', 'progress'
 | ||||
|     // available reporters: https://npmjs.org/browse/keyword/karma-reporter
 | ||||
|     reporters: ['progress'], | ||||
| 
 | ||||
| 
 | ||||
|     // web server port
 | ||||
|     port: 9876, | ||||
| 
 | ||||
| 
 | ||||
|     // enable / disable colors in the output (reporters and logs)
 | ||||
|     colors: true, | ||||
| 
 | ||||
| 
 | ||||
|     // level of logging
 | ||||
|     // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
 | ||||
|     logLevel: config.LOG_INFO, | ||||
| 
 | ||||
| 
 | ||||
|     // enable / disable watching file and executing tests whenever any file changes
 | ||||
|     autoWatch: true, | ||||
| 
 | ||||
| 
 | ||||
|     // start these browsers
 | ||||
|     // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
 | ||||
|     browsers: ['PhantomJS'], | ||||
| 
 | ||||
| 
 | ||||
|     // Continuous Integration mode
 | ||||
|     // if true, Karma captures browsers, runs the tests and exits
 | ||||
|     singleRun: false, | ||||
| 
 | ||||
|     // Concurrency level
 | ||||
|     // how many browser should be started simultaneous
 | ||||
|     concurrency: Infinity | ||||
|   }) | ||||
| } | ||||
							
								
								
									
										1
									
								
								node_modules/send/node_modules/debug/node.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/send/node_modules/debug/node.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1 @@ | |||
| module.exports = require('./src/node'); | ||||
							
								
								
									
										152
									
								
								node_modules/send/node_modules/debug/node_modules/ms/index.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										152
									
								
								node_modules/send/node_modules/debug/node_modules/ms/index.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,152 @@ | |||
| /** | ||||
|  * Helpers. | ||||
|  */ | ||||
| 
 | ||||
| var s = 1000; | ||||
| var m = s * 60; | ||||
| var h = m * 60; | ||||
| var d = h * 24; | ||||
| var y = d * 365.25; | ||||
| 
 | ||||
| /** | ||||
|  * Parse or format the given `val`. | ||||
|  * | ||||
|  * Options: | ||||
|  * | ||||
|  *  - `long` verbose formatting [false] | ||||
|  * | ||||
|  * @param {String|Number} val | ||||
|  * @param {Object} [options] | ||||
|  * @throws {Error} throw an error if val is not a non-empty string or a number | ||||
|  * @return {String|Number} | ||||
|  * @api public | ||||
|  */ | ||||
| 
 | ||||
| module.exports = function(val, options) { | ||||
|   options = options || {}; | ||||
|   var type = typeof val; | ||||
|   if (type === 'string' && val.length > 0) { | ||||
|     return parse(val); | ||||
|   } else if (type === 'number' && isNaN(val) === false) { | ||||
|     return options.long ? fmtLong(val) : fmtShort(val); | ||||
|   } | ||||
|   throw new Error( | ||||
|     'val is not a non-empty string or a valid number. val=' + | ||||
|       JSON.stringify(val) | ||||
|   ); | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
|  * Parse the given `str` and return milliseconds. | ||||
|  * | ||||
|  * @param {String} str | ||||
|  * @return {Number} | ||||
|  * @api private | ||||
|  */ | ||||
| 
 | ||||
| function parse(str) { | ||||
|   str = String(str); | ||||
|   if (str.length > 100) { | ||||
|     return; | ||||
|   } | ||||
|   var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec( | ||||
|     str | ||||
|   ); | ||||
|   if (!match) { | ||||
|     return; | ||||
|   } | ||||
|   var n = parseFloat(match[1]); | ||||
|   var type = (match[2] || 'ms').toLowerCase(); | ||||
|   switch (type) { | ||||
|     case 'years': | ||||
|     case 'year': | ||||
|     case 'yrs': | ||||
|     case 'yr': | ||||
|     case 'y': | ||||
|       return n * y; | ||||
|     case 'days': | ||||
|     case 'day': | ||||
|     case 'd': | ||||
|       return n * d; | ||||
|     case 'hours': | ||||
|     case 'hour': | ||||
|     case 'hrs': | ||||
|     case 'hr': | ||||
|     case 'h': | ||||
|       return n * h; | ||||
|     case 'minutes': | ||||
|     case 'minute': | ||||
|     case 'mins': | ||||
|     case 'min': | ||||
|     case 'm': | ||||
|       return n * m; | ||||
|     case 'seconds': | ||||
|     case 'second': | ||||
|     case 'secs': | ||||
|     case 'sec': | ||||
|     case 's': | ||||
|       return n * s; | ||||
|     case 'milliseconds': | ||||
|     case 'millisecond': | ||||
|     case 'msecs': | ||||
|     case 'msec': | ||||
|     case 'ms': | ||||
|       return n; | ||||
|     default: | ||||
|       return undefined; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Short format for `ms`. | ||||
|  * | ||||
|  * @param {Number} ms | ||||
|  * @return {String} | ||||
|  * @api private | ||||
|  */ | ||||
| 
 | ||||
| function fmtShort(ms) { | ||||
|   if (ms >= d) { | ||||
|     return Math.round(ms / d) + 'd'; | ||||
|   } | ||||
|   if (ms >= h) { | ||||
|     return Math.round(ms / h) + 'h'; | ||||
|   } | ||||
|   if (ms >= m) { | ||||
|     return Math.round(ms / m) + 'm'; | ||||
|   } | ||||
|   if (ms >= s) { | ||||
|     return Math.round(ms / s) + 's'; | ||||
|   } | ||||
|   return ms + 'ms'; | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Long format for `ms`. | ||||
|  * | ||||
|  * @param {Number} ms | ||||
|  * @return {String} | ||||
|  * @api private | ||||
|  */ | ||||
| 
 | ||||
| function fmtLong(ms) { | ||||
|   return plural(ms, d, 'day') || | ||||
|     plural(ms, h, 'hour') || | ||||
|     plural(ms, m, 'minute') || | ||||
|     plural(ms, s, 'second') || | ||||
|     ms + ' ms'; | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Pluralization helper. | ||||
|  */ | ||||
| 
 | ||||
| function plural(ms, n, name) { | ||||
|   if (ms < n) { | ||||
|     return; | ||||
|   } | ||||
|   if (ms < n * 1.5) { | ||||
|     return Math.floor(ms / n) + ' ' + name; | ||||
|   } | ||||
|   return Math.ceil(ms / n) + ' ' + name + 's'; | ||||
| } | ||||
							
								
								
									
										21
									
								
								node_modules/send/node_modules/debug/node_modules/ms/license.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								node_modules/send/node_modules/debug/node_modules/ms/license.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,21 @@ | |||
| The MIT License (MIT) | ||||
| 
 | ||||
| Copyright (c) 2016 Zeit, Inc. | ||||
| 
 | ||||
| Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
| of this software and associated documentation files (the "Software"), to deal | ||||
| in the Software without restriction, including without limitation the rights | ||||
| to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
| copies of the Software, and to permit persons to whom the Software is | ||||
| furnished to do so, subject to the following conditions: | ||||
| 
 | ||||
| The above copyright notice and this permission notice shall be included in all | ||||
| copies or substantial portions of the Software. | ||||
| 
 | ||||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
| AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
| LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
| OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||||
| SOFTWARE. | ||||
							
								
								
									
										37
									
								
								node_modules/send/node_modules/debug/node_modules/ms/package.json
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								node_modules/send/node_modules/debug/node_modules/ms/package.json
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,37 @@ | |||
| { | ||||
|   "name": "ms", | ||||
|   "version": "2.0.0", | ||||
|   "description": "Tiny milisecond conversion utility", | ||||
|   "repository": "zeit/ms", | ||||
|   "main": "./index", | ||||
|   "files": [ | ||||
|     "index.js" | ||||
|   ], | ||||
|   "scripts": { | ||||
|     "precommit": "lint-staged", | ||||
|     "lint": "eslint lib/* bin/*", | ||||
|     "test": "mocha tests.js" | ||||
|   }, | ||||
|   "eslintConfig": { | ||||
|     "extends": "eslint:recommended", | ||||
|     "env": { | ||||
|       "node": true, | ||||
|       "es6": true | ||||
|     } | ||||
|   }, | ||||
|   "lint-staged": { | ||||
|     "*.js": [ | ||||
|       "npm run lint", | ||||
|       "prettier --single-quote --write", | ||||
|       "git add" | ||||
|     ] | ||||
|   }, | ||||
|   "license": "MIT", | ||||
|   "devDependencies": { | ||||
|     "eslint": "3.19.0", | ||||
|     "expect.js": "0.3.1", | ||||
|     "husky": "0.13.3", | ||||
|     "lint-staged": "3.4.1", | ||||
|     "mocha": "3.4.1" | ||||
|   } | ||||
| } | ||||
							
								
								
									
										51
									
								
								node_modules/send/node_modules/debug/node_modules/ms/readme.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								node_modules/send/node_modules/debug/node_modules/ms/readme.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,51 @@ | |||
| # ms | ||||
| 
 | ||||
| [](https://travis-ci.org/zeit/ms) | ||||
| [](https://zeit.chat/) | ||||
| 
 | ||||
| Use this package to easily convert various time formats to milliseconds. | ||||
| 
 | ||||
| ## Examples | ||||
| 
 | ||||
| ```js | ||||
| ms('2 days')  // 172800000 | ||||
| ms('1d')      // 86400000 | ||||
| ms('10h')     // 36000000 | ||||
| ms('2.5 hrs') // 9000000 | ||||
| ms('2h')      // 7200000 | ||||
| ms('1m')      // 60000 | ||||
| ms('5s')      // 5000 | ||||
| ms('1y')      // 31557600000 | ||||
| ms('100')     // 100 | ||||
| ``` | ||||
| 
 | ||||
| ### Convert from milliseconds | ||||
| 
 | ||||
| ```js | ||||
| ms(60000)             // "1m" | ||||
| ms(2 * 60000)         // "2m" | ||||
| ms(ms('10 hours'))    // "10h" | ||||
| ``` | ||||
| 
 | ||||
| ### Time format written-out | ||||
| 
 | ||||
| ```js | ||||
| ms(60000, { long: true })             // "1 minute" | ||||
| ms(2 * 60000, { long: true })         // "2 minutes" | ||||
| ms(ms('10 hours'), { long: true })    // "10 hours" | ||||
| ``` | ||||
| 
 | ||||
| ## Features | ||||
| 
 | ||||
| - Works both in [node](https://nodejs.org) and in the browser. | ||||
| - If a number is supplied to `ms`, a string with a unit is returned. | ||||
| - If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`). | ||||
| - If you pass a string with a number and a valid unit, the number of equivalent ms is returned. | ||||
| 
 | ||||
| ## Caught a bug? | ||||
| 
 | ||||
| 1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device | ||||
| 2. Link the package to the global module directory: `npm link` | ||||
| 3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, node will now use your clone of ms! | ||||
| 
 | ||||
| As always, you can run the tests using: `npm test` | ||||
							
								
								
									
										49
									
								
								node_modules/send/node_modules/debug/package.json
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								node_modules/send/node_modules/debug/package.json
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,49 @@ | |||
| { | ||||
|   "name": "debug", | ||||
|   "version": "2.6.9", | ||||
|   "repository": { | ||||
|     "type": "git", | ||||
|     "url": "git://github.com/visionmedia/debug.git" | ||||
|   }, | ||||
|   "description": "small debugging utility", | ||||
|   "keywords": [ | ||||
|     "debug", | ||||
|     "log", | ||||
|     "debugger" | ||||
|   ], | ||||
|   "author": "TJ Holowaychuk <tj@vision-media.ca>", | ||||
|   "contributors": [ | ||||
|     "Nathan Rajlich <nathan@tootallnate.net> (http://n8.io)", | ||||
|     "Andrew Rhyne <rhyneandrew@gmail.com>" | ||||
|   ], | ||||
|   "license": "MIT", | ||||
|   "dependencies": { | ||||
|     "ms": "2.0.0" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "browserify": "9.0.3", | ||||
|     "chai": "^3.5.0", | ||||
|     "concurrently": "^3.1.0", | ||||
|     "coveralls": "^2.11.15", | ||||
|     "eslint": "^3.12.1", | ||||
|     "istanbul": "^0.4.5", | ||||
|     "karma": "^1.3.0", | ||||
|     "karma-chai": "^0.1.0", | ||||
|     "karma-mocha": "^1.3.0", | ||||
|     "karma-phantomjs-launcher": "^1.0.2", | ||||
|     "karma-sinon": "^1.0.5", | ||||
|     "mocha": "^3.2.0", | ||||
|     "mocha-lcov-reporter": "^1.2.0", | ||||
|     "rimraf": "^2.5.4", | ||||
|     "sinon": "^1.17.6", | ||||
|     "sinon-chai": "^2.8.0" | ||||
|   }, | ||||
|   "main": "./src/index.js", | ||||
|   "browser": "./src/browser.js", | ||||
|   "component": { | ||||
|     "scripts": { | ||||
|       "debug/index.js": "browser.js", | ||||
|       "debug/debug.js": "debug.js" | ||||
|     } | ||||
|   } | ||||
| } | ||||
							
								
								
									
										185
									
								
								node_modules/send/node_modules/debug/src/browser.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										185
									
								
								node_modules/send/node_modules/debug/src/browser.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,185 @@ | |||
| /** | ||||
|  * This is the web browser implementation of `debug()`. | ||||
|  * | ||||
|  * Expose `debug()` as the module. | ||||
|  */ | ||||
| 
 | ||||
| exports = module.exports = require('./debug'); | ||||
| exports.log = log; | ||||
| exports.formatArgs = formatArgs; | ||||
| exports.save = save; | ||||
| exports.load = load; | ||||
| exports.useColors = useColors; | ||||
| exports.storage = 'undefined' != typeof chrome | ||||
|                && 'undefined' != typeof chrome.storage | ||||
|                   ? chrome.storage.local | ||||
|                   : localstorage(); | ||||
| 
 | ||||
| /** | ||||
|  * Colors. | ||||
|  */ | ||||
| 
 | ||||
| exports.colors = [ | ||||
|   'lightseagreen', | ||||
|   'forestgreen', | ||||
|   'goldenrod', | ||||
|   'dodgerblue', | ||||
|   'darkorchid', | ||||
|   'crimson' | ||||
| ]; | ||||
| 
 | ||||
| /** | ||||
|  * Currently only WebKit-based Web Inspectors, Firefox >= v31, | ||||
|  * and the Firebug extension (any Firefox version) are known | ||||
|  * to support "%c" CSS customizations. | ||||
|  * | ||||
|  * TODO: add a `localStorage` variable to explicitly enable/disable colors | ||||
|  */ | ||||
| 
 | ||||
| function useColors() { | ||||
|   // NB: In an Electron preload script, document will be defined but not fully
 | ||||
|   // initialized. Since we know we're in Chrome, we'll just detect this case
 | ||||
|   // explicitly
 | ||||
|   if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') { | ||||
|     return true; | ||||
|   } | ||||
| 
 | ||||
|   // is webkit? http://stackoverflow.com/a/16459606/376773
 | ||||
|   // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
 | ||||
|   return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || | ||||
|     // is firebug? http://stackoverflow.com/a/398120/376773
 | ||||
|     (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || | ||||
|     // is firefox >= v31?
 | ||||
|     // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
 | ||||
|     (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) || | ||||
|     // double check webkit in userAgent just in case we are in a worker
 | ||||
|     (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. | ||||
|  */ | ||||
| 
 | ||||
| exports.formatters.j = function(v) { | ||||
|   try { | ||||
|     return JSON.stringify(v); | ||||
|   } catch (err) { | ||||
|     return '[UnexpectedJSONParseError]: ' + err.message; | ||||
|   } | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| /** | ||||
|  * Colorize log arguments if enabled. | ||||
|  * | ||||
|  * @api public | ||||
|  */ | ||||
| 
 | ||||
| function formatArgs(args) { | ||||
|   var useColors = this.useColors; | ||||
| 
 | ||||
|   args[0] = (useColors ? '%c' : '') | ||||
|     + this.namespace | ||||
|     + (useColors ? ' %c' : ' ') | ||||
|     + args[0] | ||||
|     + (useColors ? '%c ' : ' ') | ||||
|     + '+' + exports.humanize(this.diff); | ||||
| 
 | ||||
|   if (!useColors) return; | ||||
| 
 | ||||
|   var c = 'color: ' + this.color; | ||||
|   args.splice(1, 0, c, 'color: inherit') | ||||
| 
 | ||||
|   // the final "%c" is somewhat tricky, because there could be other
 | ||||
|   // arguments passed either before or after the %c, so we need to
 | ||||
|   // figure out the correct index to insert the CSS into
 | ||||
|   var index = 0; | ||||
|   var lastC = 0; | ||||
|   args[0].replace(/%[a-zA-Z%]/g, function(match) { | ||||
|     if ('%%' === match) return; | ||||
|     index++; | ||||
|     if ('%c' === match) { | ||||
|       // we only are interested in the *last* %c
 | ||||
|       // (the user may have provided their own)
 | ||||
|       lastC = index; | ||||
|     } | ||||
|   }); | ||||
| 
 | ||||
|   args.splice(lastC, 0, c); | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Invokes `console.log()` when available. | ||||
|  * No-op when `console.log` is not a "function". | ||||
|  * | ||||
|  * @api public | ||||
|  */ | ||||
| 
 | ||||
| function log() { | ||||
|   // this hackery is required for IE8/9, where
 | ||||
|   // the `console.log` function doesn't have 'apply'
 | ||||
|   return 'object' === typeof console | ||||
|     && console.log | ||||
|     && Function.prototype.apply.call(console.log, console, arguments); | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Save `namespaces`. | ||||
|  * | ||||
|  * @param {String} namespaces | ||||
|  * @api private | ||||
|  */ | ||||
| 
 | ||||
| function save(namespaces) { | ||||
|   try { | ||||
|     if (null == namespaces) { | ||||
|       exports.storage.removeItem('debug'); | ||||
|     } else { | ||||
|       exports.storage.debug = namespaces; | ||||
|     } | ||||
|   } catch(e) {} | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Load `namespaces`. | ||||
|  * | ||||
|  * @return {String} returns the previously persisted debug modes | ||||
|  * @api private | ||||
|  */ | ||||
| 
 | ||||
| function load() { | ||||
|   var r; | ||||
|   try { | ||||
|     r = exports.storage.debug; | ||||
|   } catch(e) {} | ||||
| 
 | ||||
|   // If debug isn't set in LS, and we're in Electron, try to load $DEBUG
 | ||||
|   if (!r && typeof process !== 'undefined' && 'env' in process) { | ||||
|     r = process.env.DEBUG; | ||||
|   } | ||||
| 
 | ||||
|   return r; | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Enable namespaces listed in `localStorage.debug` initially. | ||||
|  */ | ||||
| 
 | ||||
| exports.enable(load()); | ||||
| 
 | ||||
| /** | ||||
|  * Localstorage attempts to return the localstorage. | ||||
|  * | ||||
|  * This is necessary because safari throws | ||||
|  * when a user disables cookies/localstorage | ||||
|  * and you attempt to access it. | ||||
|  * | ||||
|  * @return {LocalStorage} | ||||
|  * @api private | ||||
|  */ | ||||
| 
 | ||||
| function localstorage() { | ||||
|   try { | ||||
|     return window.localStorage; | ||||
|   } catch (e) {} | ||||
| } | ||||
							
								
								
									
										202
									
								
								node_modules/send/node_modules/debug/src/debug.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										202
									
								
								node_modules/send/node_modules/debug/src/debug.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,202 @@ | |||
| 
 | ||||
| /** | ||||
|  * This is the common logic for both the Node.js and web browser | ||||
|  * implementations of `debug()`. | ||||
|  * | ||||
|  * Expose `debug()` as the module. | ||||
|  */ | ||||
| 
 | ||||
| exports = module.exports = createDebug.debug = createDebug['default'] = createDebug; | ||||
| exports.coerce = coerce; | ||||
| exports.disable = disable; | ||||
| exports.enable = enable; | ||||
| exports.enabled = enabled; | ||||
| exports.humanize = require('ms'); | ||||
| 
 | ||||
| /** | ||||
|  * The currently active debug mode names, and names to skip. | ||||
|  */ | ||||
| 
 | ||||
| exports.names = []; | ||||
| exports.skips = []; | ||||
| 
 | ||||
| /** | ||||
|  * Map of special "%n" handling functions, for the debug "format" argument. | ||||
|  * | ||||
|  * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". | ||||
|  */ | ||||
| 
 | ||||
| exports.formatters = {}; | ||||
| 
 | ||||
| /** | ||||
|  * Previous log timestamp. | ||||
|  */ | ||||
| 
 | ||||
| var prevTime; | ||||
| 
 | ||||
| /** | ||||
|  * Select a color. | ||||
|  * @param {String} namespace | ||||
|  * @return {Number} | ||||
|  * @api private | ||||
|  */ | ||||
| 
 | ||||
| function selectColor(namespace) { | ||||
|   var hash = 0, i; | ||||
| 
 | ||||
|   for (i in namespace) { | ||||
|     hash  = ((hash << 5) - hash) + namespace.charCodeAt(i); | ||||
|     hash |= 0; // Convert to 32bit integer
 | ||||
|   } | ||||
| 
 | ||||
|   return exports.colors[Math.abs(hash) % exports.colors.length]; | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Create a debugger with the given `namespace`. | ||||
|  * | ||||
|  * @param {String} namespace | ||||
|  * @return {Function} | ||||
|  * @api public | ||||
|  */ | ||||
| 
 | ||||
| function createDebug(namespace) { | ||||
| 
 | ||||
|   function debug() { | ||||
|     // disabled?
 | ||||
|     if (!debug.enabled) return; | ||||
| 
 | ||||
|     var self = debug; | ||||
| 
 | ||||
|     // set `diff` timestamp
 | ||||
|     var curr = +new Date(); | ||||
|     var ms = curr - (prevTime || curr); | ||||
|     self.diff = ms; | ||||
|     self.prev = prevTime; | ||||
|     self.curr = curr; | ||||
|     prevTime = curr; | ||||
| 
 | ||||
|     // turn the `arguments` into a proper Array
 | ||||
|     var args = new Array(arguments.length); | ||||
|     for (var i = 0; i < args.length; i++) { | ||||
|       args[i] = arguments[i]; | ||||
|     } | ||||
| 
 | ||||
|     args[0] = exports.coerce(args[0]); | ||||
| 
 | ||||
|     if ('string' !== typeof args[0]) { | ||||
|       // anything else let's inspect with %O
 | ||||
|       args.unshift('%O'); | ||||
|     } | ||||
| 
 | ||||
|     // apply any `formatters` transformations
 | ||||
|     var index = 0; | ||||
|     args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) { | ||||
|       // if we encounter an escaped % then don't increase the array index
 | ||||
|       if (match === '%%') return match; | ||||
|       index++; | ||||
|       var formatter = exports.formatters[format]; | ||||
|       if ('function' === typeof formatter) { | ||||
|         var val = args[index]; | ||||
|         match = formatter.call(self, val); | ||||
| 
 | ||||
|         // now we need to remove `args[index]` since it's inlined in the `format`
 | ||||
|         args.splice(index, 1); | ||||
|         index--; | ||||
|       } | ||||
|       return match; | ||||
|     }); | ||||
| 
 | ||||
|     // apply env-specific formatting (colors, etc.)
 | ||||
|     exports.formatArgs.call(self, args); | ||||
| 
 | ||||
|     var logFn = debug.log || exports.log || console.log.bind(console); | ||||
|     logFn.apply(self, args); | ||||
|   } | ||||
| 
 | ||||
|   debug.namespace = namespace; | ||||
|   debug.enabled = exports.enabled(namespace); | ||||
|   debug.useColors = exports.useColors(); | ||||
|   debug.color = selectColor(namespace); | ||||
| 
 | ||||
|   // env-specific initialization logic for debug instances
 | ||||
|   if ('function' === typeof exports.init) { | ||||
|     exports.init(debug); | ||||
|   } | ||||
| 
 | ||||
|   return debug; | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Enables a debug mode by namespaces. This can include modes | ||||
|  * separated by a colon and wildcards. | ||||
|  * | ||||
|  * @param {String} namespaces | ||||
|  * @api public | ||||
|  */ | ||||
| 
 | ||||
| function enable(namespaces) { | ||||
|   exports.save(namespaces); | ||||
| 
 | ||||
|   exports.names = []; | ||||
|   exports.skips = []; | ||||
| 
 | ||||
|   var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); | ||||
|   var len = split.length; | ||||
| 
 | ||||
|   for (var i = 0; i < len; i++) { | ||||
|     if (!split[i]) continue; // ignore empty strings
 | ||||
|     namespaces = split[i].replace(/\*/g, '.*?'); | ||||
|     if (namespaces[0] === '-') { | ||||
|       exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); | ||||
|     } else { | ||||
|       exports.names.push(new RegExp('^' + namespaces + '$')); | ||||
|     } | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Disable debug output. | ||||
|  * | ||||
|  * @api public | ||||
|  */ | ||||
| 
 | ||||
| function disable() { | ||||
|   exports.enable(''); | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Returns true if the given mode name is enabled, false otherwise. | ||||
|  * | ||||
|  * @param {String} name | ||||
|  * @return {Boolean} | ||||
|  * @api public | ||||
|  */ | ||||
| 
 | ||||
| function enabled(name) { | ||||
|   var i, len; | ||||
|   for (i = 0, len = exports.skips.length; i < len; i++) { | ||||
|     if (exports.skips[i].test(name)) { | ||||
|       return false; | ||||
|     } | ||||
|   } | ||||
|   for (i = 0, len = exports.names.length; i < len; i++) { | ||||
|     if (exports.names[i].test(name)) { | ||||
|       return true; | ||||
|     } | ||||
|   } | ||||
|   return false; | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Coerce `val`. | ||||
|  * | ||||
|  * @param {Mixed} val | ||||
|  * @return {Mixed} | ||||
|  * @api private | ||||
|  */ | ||||
| 
 | ||||
| function coerce(val) { | ||||
|   if (val instanceof Error) return val.stack || val.message; | ||||
|   return val; | ||||
| } | ||||
							
								
								
									
										10
									
								
								node_modules/send/node_modules/debug/src/index.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								node_modules/send/node_modules/debug/src/index.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,10 @@ | |||
| /** | ||||
|  * Detect Electron renderer process, which is node, but we should | ||||
|  * treat as a browser. | ||||
|  */ | ||||
| 
 | ||||
| if (typeof process !== 'undefined' && process.type === 'renderer') { | ||||
|   module.exports = require('./browser.js'); | ||||
| } else { | ||||
|   module.exports = require('./node.js'); | ||||
| } | ||||
							
								
								
									
										15
									
								
								node_modules/send/node_modules/debug/src/inspector-log.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								node_modules/send/node_modules/debug/src/inspector-log.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,15 @@ | |||
| module.exports = inspectorLog; | ||||
| 
 | ||||
| // black hole
 | ||||
| const nullStream = new (require('stream').Writable)(); | ||||
| nullStream._write = () => {}; | ||||
| 
 | ||||
| /** | ||||
|  * Outputs a `console.log()` to the Node.js Inspector console *only*. | ||||
|  */ | ||||
| function inspectorLog() { | ||||
|   const stdout = console._stdout; | ||||
|   console._stdout = nullStream; | ||||
|   console.log.apply(console, arguments); | ||||
|   console._stdout = stdout; | ||||
| } | ||||
							
								
								
									
										248
									
								
								node_modules/send/node_modules/debug/src/node.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										248
									
								
								node_modules/send/node_modules/debug/src/node.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,248 @@ | |||
| /** | ||||
|  * Module dependencies. | ||||
|  */ | ||||
| 
 | ||||
| var tty = require('tty'); | ||||
| var util = require('util'); | ||||
| 
 | ||||
| /** | ||||
|  * This is the Node.js implementation of `debug()`. | ||||
|  * | ||||
|  * Expose `debug()` as the module. | ||||
|  */ | ||||
| 
 | ||||
| exports = module.exports = require('./debug'); | ||||
| exports.init = init; | ||||
| exports.log = log; | ||||
| exports.formatArgs = formatArgs; | ||||
| exports.save = save; | ||||
| exports.load = load; | ||||
| exports.useColors = useColors; | ||||
| 
 | ||||
| /** | ||||
|  * Colors. | ||||
|  */ | ||||
| 
 | ||||
| exports.colors = [6, 2, 3, 4, 5, 1]; | ||||
| 
 | ||||
| /** | ||||
|  * Build up the default `inspectOpts` object from the environment variables. | ||||
|  * | ||||
|  *   $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js | ||||
|  */ | ||||
| 
 | ||||
| exports.inspectOpts = Object.keys(process.env).filter(function (key) { | ||||
|   return /^debug_/i.test(key); | ||||
| }).reduce(function (obj, key) { | ||||
|   // camel-case
 | ||||
|   var prop = key | ||||
|     .substring(6) | ||||
|     .toLowerCase() | ||||
|     .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() }); | ||||
| 
 | ||||
|   // coerce string value into JS value
 | ||||
|   var val = process.env[key]; | ||||
|   if (/^(yes|on|true|enabled)$/i.test(val)) val = true; | ||||
|   else if (/^(no|off|false|disabled)$/i.test(val)) val = false; | ||||
|   else if (val === 'null') val = null; | ||||
|   else val = Number(val); | ||||
| 
 | ||||
|   obj[prop] = val; | ||||
|   return obj; | ||||
| }, {}); | ||||
| 
 | ||||
| /** | ||||
|  * The file descriptor to write the `debug()` calls to. | ||||
|  * Set the `DEBUG_FD` env variable to override with another value. i.e.: | ||||
|  * | ||||
|  *   $ DEBUG_FD=3 node script.js 3>debug.log | ||||
|  */ | ||||
| 
 | ||||
| var fd = parseInt(process.env.DEBUG_FD, 10) || 2; | ||||
| 
 | ||||
| if (1 !== fd && 2 !== fd) { | ||||
|   util.deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')() | ||||
| } | ||||
| 
 | ||||
| var stream = 1 === fd ? process.stdout : | ||||
|              2 === fd ? process.stderr : | ||||
|              createWritableStdioStream(fd); | ||||
| 
 | ||||
| /** | ||||
|  * Is stdout a TTY? Colored output is enabled when `true`. | ||||
|  */ | ||||
| 
 | ||||
| function useColors() { | ||||
|   return 'colors' in exports.inspectOpts | ||||
|     ? Boolean(exports.inspectOpts.colors) | ||||
|     : tty.isatty(fd); | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Map %o to `util.inspect()`, all on a single line. | ||||
|  */ | ||||
| 
 | ||||
| exports.formatters.o = function(v) { | ||||
|   this.inspectOpts.colors = this.useColors; | ||||
|   return util.inspect(v, this.inspectOpts) | ||||
|     .split('\n').map(function(str) { | ||||
|       return str.trim() | ||||
|     }).join(' '); | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
|  * Map %o to `util.inspect()`, allowing multiple lines if needed. | ||||
|  */ | ||||
| 
 | ||||
| exports.formatters.O = function(v) { | ||||
|   this.inspectOpts.colors = this.useColors; | ||||
|   return util.inspect(v, this.inspectOpts); | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
|  * Adds ANSI color escape codes if enabled. | ||||
|  * | ||||
|  * @api public | ||||
|  */ | ||||
| 
 | ||||
| function formatArgs(args) { | ||||
|   var name = this.namespace; | ||||
|   var useColors = this.useColors; | ||||
| 
 | ||||
|   if (useColors) { | ||||
|     var c = this.color; | ||||
|     var prefix = '  \u001b[3' + c + ';1m' + name + ' ' + '\u001b[0m'; | ||||
| 
 | ||||
|     args[0] = prefix + args[0].split('\n').join('\n' + prefix); | ||||
|     args.push('\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\u001b[0m'); | ||||
|   } else { | ||||
|     args[0] = new Date().toUTCString() | ||||
|       + ' ' + name + ' ' + args[0]; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Invokes `util.format()` with the specified arguments and writes to `stream`. | ||||
|  */ | ||||
| 
 | ||||
| function log() { | ||||
|   return stream.write(util.format.apply(util, arguments) + '\n'); | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Save `namespaces`. | ||||
|  * | ||||
|  * @param {String} namespaces | ||||
|  * @api private | ||||
|  */ | ||||
| 
 | ||||
| function save(namespaces) { | ||||
|   if (null == namespaces) { | ||||
|     // If you set a process.env field to null or undefined, it gets cast to the
 | ||||
|     // string 'null' or 'undefined'. Just delete instead.
 | ||||
|     delete process.env.DEBUG; | ||||
|   } else { | ||||
|     process.env.DEBUG = namespaces; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Load `namespaces`. | ||||
|  * | ||||
|  * @return {String} returns the previously persisted debug modes | ||||
|  * @api private | ||||
|  */ | ||||
| 
 | ||||
| function load() { | ||||
|   return process.env.DEBUG; | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Copied from `node/src/node.js`. | ||||
|  * | ||||
|  * XXX: It's lame that node doesn't expose this API out-of-the-box. It also | ||||
|  * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame. | ||||
|  */ | ||||
| 
 | ||||
| function createWritableStdioStream (fd) { | ||||
|   var stream; | ||||
|   var tty_wrap = process.binding('tty_wrap'); | ||||
| 
 | ||||
|   // Note stream._type is used for test-module-load-list.js
 | ||||
| 
 | ||||
|   switch (tty_wrap.guessHandleType(fd)) { | ||||
|     case 'TTY': | ||||
|       stream = new tty.WriteStream(fd); | ||||
|       stream._type = 'tty'; | ||||
| 
 | ||||
|       // Hack to have stream not keep the event loop alive.
 | ||||
|       // See https://github.com/joyent/node/issues/1726
 | ||||
|       if (stream._handle && stream._handle.unref) { | ||||
|         stream._handle.unref(); | ||||
|       } | ||||
|       break; | ||||
| 
 | ||||
|     case 'FILE': | ||||
|       var fs = require('fs'); | ||||
|       stream = new fs.SyncWriteStream(fd, { autoClose: false }); | ||||
|       stream._type = 'fs'; | ||||
|       break; | ||||
| 
 | ||||
|     case 'PIPE': | ||||
|     case 'TCP': | ||||
|       var net = require('net'); | ||||
|       stream = new net.Socket({ | ||||
|         fd: fd, | ||||
|         readable: false, | ||||
|         writable: true | ||||
|       }); | ||||
| 
 | ||||
|       // FIXME Should probably have an option in net.Socket to create a
 | ||||
|       // stream from an existing fd which is writable only. But for now
 | ||||
|       // we'll just add this hack and set the `readable` member to false.
 | ||||
|       // Test: ./node test/fixtures/echo.js < /etc/passwd
 | ||||
|       stream.readable = false; | ||||
|       stream.read = null; | ||||
|       stream._type = 'pipe'; | ||||
| 
 | ||||
|       // FIXME Hack to have stream not keep the event loop alive.
 | ||||
|       // See https://github.com/joyent/node/issues/1726
 | ||||
|       if (stream._handle && stream._handle.unref) { | ||||
|         stream._handle.unref(); | ||||
|       } | ||||
|       break; | ||||
| 
 | ||||
|     default: | ||||
|       // Probably an error on in uv_guess_handle()
 | ||||
|       throw new Error('Implement me. Unknown stream file type!'); | ||||
|   } | ||||
| 
 | ||||
|   // For supporting legacy API we put the FD here.
 | ||||
|   stream.fd = fd; | ||||
| 
 | ||||
|   stream._isStdio = true; | ||||
| 
 | ||||
|   return stream; | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Init logic for `debug` instances. | ||||
|  * | ||||
|  * Create a new `inspectOpts` object in case `useColors` is set | ||||
|  * differently for a particular `debug` instance. | ||||
|  */ | ||||
| 
 | ||||
| function init (debug) { | ||||
|   debug.inspectOpts = {}; | ||||
| 
 | ||||
|   var keys = Object.keys(exports.inspectOpts); | ||||
|   for (var i = 0; i < keys.length; i++) { | ||||
|     debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Enable namespaces listed in `process.env.DEBUG` initially. | ||||
|  */ | ||||
| 
 | ||||
| exports.enable(load()); | ||||
							
								
								
									
										0
									
								
								node_modules/send/node_modules/mime/.npmignore
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								node_modules/send/node_modules/mime/.npmignore
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
								
								
									
										164
									
								
								node_modules/send/node_modules/mime/CHANGELOG.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										164
									
								
								node_modules/send/node_modules/mime/CHANGELOG.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,164 @@ | |||
| # Changelog | ||||
| 
 | ||||
| ## v1.6.0 (24/11/2017) | ||||
| *No changelog for this release.* | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| ## v2.0.4 (24/11/2017) | ||||
| - [**closed**] Switch to mime-score module for resolving extension contention issues. [#182](https://github.com/broofa/node-mime/issues/182) | ||||
| - [**closed**] Update mime-db to 1.31.0 in v1.x branch [#181](https://github.com/broofa/node-mime/issues/181) | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| ## v1.5.0 (22/11/2017) | ||||
| - [**closed**] need ES5 version ready in npm package [#179](https://github.com/broofa/node-mime/issues/179) | ||||
| - [**closed**] mime-db no trace of iWork - pages / numbers / etc. [#178](https://github.com/broofa/node-mime/issues/178) | ||||
| - [**closed**] How it works in brownser ? [#176](https://github.com/broofa/node-mime/issues/176) | ||||
| - [**closed**] Missing `./Mime` [#175](https://github.com/broofa/node-mime/issues/175) | ||||
| - [**closed**] Vulnerable Regular Expression [#167](https://github.com/broofa/node-mime/issues/167) | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| ## v2.0.3 (25/09/2017) | ||||
| *No changelog for this release.* | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| ## v1.4.1 (25/09/2017) | ||||
| - [**closed**] Issue when bundling with webpack [#172](https://github.com/broofa/node-mime/issues/172) | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| ## v2.0.2 (15/09/2017) | ||||
| - [**V2**] fs.readFileSync is not a function [#165](https://github.com/broofa/node-mime/issues/165) | ||||
| - [**closed**] The extension for video/quicktime should map to .mov, not .qt [#164](https://github.com/broofa/node-mime/issues/164) | ||||
| - [**V2**] [v2 Feedback request] Mime class API [#163](https://github.com/broofa/node-mime/issues/163) | ||||
| - [**V2**] [v2 Feedback request] Resolving conflicts over extensions [#162](https://github.com/broofa/node-mime/issues/162) | ||||
| - [**V2**] Allow callers to load module with official, full, or no defined types.  [#161](https://github.com/broofa/node-mime/issues/161) | ||||
| - [**V2**] Use "facets" to resolve extension conflicts [#160](https://github.com/broofa/node-mime/issues/160) | ||||
| - [**V2**] Remove fs and path dependencies [#152](https://github.com/broofa/node-mime/issues/152) | ||||
| - [**V2**] Default content-type should not be application/octet-stream [#139](https://github.com/broofa/node-mime/issues/139) | ||||
| - [**V2**] reset mime-types [#124](https://github.com/broofa/node-mime/issues/124) | ||||
| - [**V2**] Extensionless paths should return null or false [#113](https://github.com/broofa/node-mime/issues/113) | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| ## v2.0.1 (14/09/2017) | ||||
| - [**closed**] Changelog for v2.0 does not mention breaking changes [#171](https://github.com/broofa/node-mime/issues/171) | ||||
| - [**closed**] MIME breaking with 'class' declaration as it is without 'use strict mode' [#170](https://github.com/broofa/node-mime/issues/170) | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| ## v2.0.0 (12/09/2017) | ||||
| - [**closed**] woff and woff2 [#168](https://github.com/broofa/node-mime/issues/168) | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| ## v1.4.0 (28/08/2017) | ||||
| - [**closed**] support for ac3 voc files [#159](https://github.com/broofa/node-mime/issues/159) | ||||
| - [**closed**] Help understanding change from application/xml to text/xml [#158](https://github.com/broofa/node-mime/issues/158) | ||||
| - [**closed**] no longer able to override mimetype [#157](https://github.com/broofa/node-mime/issues/157) | ||||
| - [**closed**] application/vnd.adobe.photoshop [#147](https://github.com/broofa/node-mime/issues/147) | ||||
| - [**closed**] Directories should appear as something other than application/octet-stream [#135](https://github.com/broofa/node-mime/issues/135) | ||||
| - [**closed**] requested features [#131](https://github.com/broofa/node-mime/issues/131) | ||||
| - [**closed**] Make types.json loading optional? [#129](https://github.com/broofa/node-mime/issues/129) | ||||
| - [**closed**] Cannot find module './types.json' [#120](https://github.com/broofa/node-mime/issues/120) | ||||
| - [**V2**] .wav files show up as "audio/x-wav" instead of "audio/x-wave" [#118](https://github.com/broofa/node-mime/issues/118) | ||||
| - [**closed**] Don't be a pain in the ass for node community [#108](https://github.com/broofa/node-mime/issues/108) | ||||
| - [**closed**] don't make default_type global [#78](https://github.com/broofa/node-mime/issues/78) | ||||
| - [**closed**] mime.extension() fails if the content-type is parameterized [#74](https://github.com/broofa/node-mime/issues/74) | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| ## v1.3.6 (11/05/2017) | ||||
| - [**closed**] .md should be text/markdown as of March 2016 [#154](https://github.com/broofa/node-mime/issues/154) | ||||
| - [**closed**] Error while installing mime [#153](https://github.com/broofa/node-mime/issues/153) | ||||
| - [**closed**] application/manifest+json [#149](https://github.com/broofa/node-mime/issues/149) | ||||
| - [**closed**] Dynamic adaptive streaming over HTTP (DASH) file extension typo [#141](https://github.com/broofa/node-mime/issues/141) | ||||
| - [**closed**] charsets image/png undefined [#140](https://github.com/broofa/node-mime/issues/140) | ||||
| - [**closed**] Mime-db dependency out of date [#130](https://github.com/broofa/node-mime/issues/130) | ||||
| - [**closed**] how to support plist? [#126](https://github.com/broofa/node-mime/issues/126) | ||||
| - [**closed**] how does .types file format look like? [#123](https://github.com/broofa/node-mime/issues/123) | ||||
| - [**closed**] Feature: support for expanding MIME patterns [#121](https://github.com/broofa/node-mime/issues/121) | ||||
| - [**closed**] DEBUG_MIME doesn't work [#117](https://github.com/broofa/node-mime/issues/117) | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| ## v1.3.4 (06/02/2015) | ||||
| *No changelog for this release.* | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| ## v1.3.3 (06/02/2015) | ||||
| *No changelog for this release.* | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| ## v1.3.1 (05/02/2015) | ||||
| - [**closed**] Consider adding support for Handlebars .hbs file ending [#111](https://github.com/broofa/node-mime/issues/111) | ||||
| - [**closed**] Consider adding support for hjson. [#110](https://github.com/broofa/node-mime/issues/110) | ||||
| - [**closed**] Add mime type for Opus audio files [#94](https://github.com/broofa/node-mime/issues/94) | ||||
| - [**closed**] Consider making the `Requesting New Types` information more visible [#77](https://github.com/broofa/node-mime/issues/77) | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| ## v1.3.0 (05/02/2015) | ||||
| - [**closed**] Add common name? [#114](https://github.com/broofa/node-mime/issues/114) | ||||
| - [**closed**] application/x-yaml [#104](https://github.com/broofa/node-mime/issues/104) | ||||
| - [**closed**] Add mime type for WOFF file format 2.0 [#102](https://github.com/broofa/node-mime/issues/102) | ||||
| - [**closed**] application/x-msi for .msi [#99](https://github.com/broofa/node-mime/issues/99) | ||||
| - [**closed**] Add mimetype for gettext translation files [#98](https://github.com/broofa/node-mime/issues/98) | ||||
| - [**closed**] collaborators [#88](https://github.com/broofa/node-mime/issues/88) | ||||
| - [**closed**] getting errot in installation of mime module...any1 can help? [#87](https://github.com/broofa/node-mime/issues/87) | ||||
| - [**closed**] should application/json's charset be utf8? [#86](https://github.com/broofa/node-mime/issues/86) | ||||
| - [**closed**] Add "license" and "licenses" to package.json [#81](https://github.com/broofa/node-mime/issues/81) | ||||
| - [**closed**] lookup with extension-less file on Windows returns wrong type [#68](https://github.com/broofa/node-mime/issues/68) | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| ## v1.2.11 (15/08/2013) | ||||
| - [**closed**] Update mime.types [#65](https://github.com/broofa/node-mime/issues/65) | ||||
| - [**closed**] Publish a new version [#63](https://github.com/broofa/node-mime/issues/63) | ||||
| - [**closed**] README should state upfront that "application/octet-stream" is default for unknown extension [#55](https://github.com/broofa/node-mime/issues/55) | ||||
| - [**closed**] Suggested improvement to the charset API [#52](https://github.com/broofa/node-mime/issues/52) | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| ## v1.2.10 (25/07/2013) | ||||
| - [**closed**] Mime type for woff files should be application/font-woff and not application/x-font-woff [#62](https://github.com/broofa/node-mime/issues/62) | ||||
| - [**closed**] node.types in conflict with mime.types [#51](https://github.com/broofa/node-mime/issues/51) | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| ## v1.2.9 (17/01/2013) | ||||
| - [**closed**] Please update "mime" NPM [#49](https://github.com/broofa/node-mime/issues/49) | ||||
| - [**closed**] Please add semicolon [#46](https://github.com/broofa/node-mime/issues/46) | ||||
| - [**closed**] parse full mime types [#43](https://github.com/broofa/node-mime/issues/43) | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| ## v1.2.8 (10/01/2013) | ||||
| - [**closed**] /js directory mime is application/javascript. Is it correct? [#47](https://github.com/broofa/node-mime/issues/47) | ||||
| - [**closed**] Add mime types for lua code. [#45](https://github.com/broofa/node-mime/issues/45) | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| ## v1.2.7 (19/10/2012) | ||||
| - [**closed**] cannot install 1.2.7 via npm [#41](https://github.com/broofa/node-mime/issues/41) | ||||
| - [**closed**] Transfer ownership to @broofa [#36](https://github.com/broofa/node-mime/issues/36) | ||||
| - [**closed**] it's wrong to set charset to UTF-8 for text [#30](https://github.com/broofa/node-mime/issues/30) | ||||
| - [**closed**] Allow multiple instances of MIME types container [#27](https://github.com/broofa/node-mime/issues/27) | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| ## v1.2.5 (16/02/2012) | ||||
| - [**closed**] When looking up a types, check hasOwnProperty [#23](https://github.com/broofa/node-mime/issues/23) | ||||
| - [**closed**] Bump version to 1.2.2 [#18](https://github.com/broofa/node-mime/issues/18) | ||||
| - [**closed**] No license [#16](https://github.com/broofa/node-mime/issues/16) | ||||
| - [**closed**] Some types missing that are used by html5/css3 [#13](https://github.com/broofa/node-mime/issues/13) | ||||
| - [**closed**] npm install fails for 1.2.1 [#12](https://github.com/broofa/node-mime/issues/12) | ||||
| - [**closed**] image/pjpeg + image/x-png [#10](https://github.com/broofa/node-mime/issues/10) | ||||
| - [**closed**] symlink [#8](https://github.com/broofa/node-mime/issues/8) | ||||
| - [**closed**] gzip [#2](https://github.com/broofa/node-mime/issues/2) | ||||
| - [**closed**] ALL CAPS filenames return incorrect mime type [#1](https://github.com/broofa/node-mime/issues/1) | ||||
							
								
								
									
										21
									
								
								node_modules/send/node_modules/mime/LICENSE
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								node_modules/send/node_modules/mime/LICENSE
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,21 @@ | |||
| The MIT License (MIT) | ||||
| 
 | ||||
| Copyright (c) 2010 Benjamin Thomas, Robert Kieffer | ||||
| 
 | ||||
| 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. | ||||
							
								
								
									
										90
									
								
								node_modules/send/node_modules/mime/README.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								node_modules/send/node_modules/mime/README.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,90 @@ | |||
| # mime | ||||
| 
 | ||||
| Comprehensive MIME type mapping API based on mime-db module. | ||||
| 
 | ||||
| ## Install | ||||
| 
 | ||||
| Install with [npm](http://github.com/isaacs/npm): | ||||
| 
 | ||||
|     npm install mime | ||||
| 
 | ||||
| ## Contributing / Testing | ||||
| 
 | ||||
|     npm run test | ||||
| 
 | ||||
| ## Command Line | ||||
| 
 | ||||
|     mime [path_string] | ||||
| 
 | ||||
| E.g. | ||||
| 
 | ||||
|     > mime scripts/jquery.js | ||||
|     application/javascript | ||||
| 
 | ||||
| ## API - Queries | ||||
| 
 | ||||
| ### mime.lookup(path) | ||||
| Get the mime type associated with a file, if no mime type is found `application/octet-stream` is returned. Performs a case-insensitive lookup using the extension in `path` (the substring after the last '/' or '.').  E.g. | ||||
| 
 | ||||
| ```js | ||||
| var mime = require('mime'); | ||||
| 
 | ||||
| mime.lookup('/path/to/file.txt');         // => 'text/plain' | ||||
| mime.lookup('file.txt');                  // => 'text/plain' | ||||
| mime.lookup('.TXT');                      // => 'text/plain' | ||||
| mime.lookup('htm');                       // => 'text/html' | ||||
| ``` | ||||
| 
 | ||||
| ### mime.default_type | ||||
| Sets the mime type returned when `mime.lookup` fails to find the extension searched for. (Default is `application/octet-stream`.) | ||||
| 
 | ||||
| ### mime.extension(type) | ||||
| Get the default extension for `type` | ||||
| 
 | ||||
| ```js | ||||
| mime.extension('text/html');                 // => 'html' | ||||
| mime.extension('application/octet-stream');  // => 'bin' | ||||
| ``` | ||||
| 
 | ||||
| ### mime.charsets.lookup() | ||||
| 
 | ||||
| Map mime-type to charset | ||||
| 
 | ||||
| ```js | ||||
| mime.charsets.lookup('text/plain');        // => 'UTF-8' | ||||
| ``` | ||||
| 
 | ||||
| (The logic for charset lookups is pretty rudimentary.  Feel free to suggest improvements.) | ||||
| 
 | ||||
| ## API - Defining Custom Types | ||||
| 
 | ||||
| Custom type mappings can be added on a per-project basis via the following APIs. | ||||
| 
 | ||||
| ### mime.define() | ||||
| 
 | ||||
| Add custom mime/extension mappings | ||||
| 
 | ||||
| ```js | ||||
| mime.define({ | ||||
|     'text/x-some-format': ['x-sf', 'x-sft', 'x-sfml'], | ||||
|     'application/x-my-type': ['x-mt', 'x-mtt'], | ||||
|     // etc ... | ||||
| }); | ||||
| 
 | ||||
| mime.lookup('x-sft');                 // => 'text/x-some-format' | ||||
| ``` | ||||
| 
 | ||||
| The first entry in the extensions array is returned by `mime.extension()`. E.g. | ||||
| 
 | ||||
| ```js | ||||
| mime.extension('text/x-some-format'); // => 'x-sf' | ||||
| ``` | ||||
| 
 | ||||
| ### mime.load(filepath) | ||||
| 
 | ||||
| Load mappings from an Apache ".types" format file | ||||
| 
 | ||||
| ```js | ||||
| mime.load('./my_project.types'); | ||||
| ``` | ||||
| The .types file format is simple -  See the `types` dir for examples. | ||||
							
								
								
									
										8
									
								
								node_modules/send/node_modules/mime/cli.js
									
										
									
										generated
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										8
									
								
								node_modules/send/node_modules/mime/cli.js
									
										
									
										generated
									
									
										vendored
									
									
										Executable file
									
								
							|  | @ -0,0 +1,8 @@ | |||
| #!/usr/bin/env node
 | ||||
| 
 | ||||
| var mime = require('./mime.js'); | ||||
| var file = process.argv[2]; | ||||
| var type = mime.lookup(file); | ||||
| 
 | ||||
| process.stdout.write(type + '\n'); | ||||
| 
 | ||||
							
								
								
									
										108
									
								
								node_modules/send/node_modules/mime/mime.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										108
									
								
								node_modules/send/node_modules/mime/mime.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,108 @@ | |||
| var path = require('path'); | ||||
| var fs = require('fs'); | ||||
| 
 | ||||
| function Mime() { | ||||
|   // Map of extension -> mime type
 | ||||
|   this.types = Object.create(null); | ||||
| 
 | ||||
|   // Map of mime type -> extension
 | ||||
|   this.extensions = Object.create(null); | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Define mimetype -> extension mappings.  Each key is a mime-type that maps | ||||
|  * to an array of extensions associated with the type.  The first extension is | ||||
|  * used as the default extension for the type. | ||||
|  * | ||||
|  * e.g. mime.define({'audio/ogg', ['oga', 'ogg', 'spx']}); | ||||
|  * | ||||
|  * @param map (Object) type definitions | ||||
|  */ | ||||
| Mime.prototype.define = function (map) { | ||||
|   for (var type in map) { | ||||
|     var exts = map[type]; | ||||
|     for (var i = 0; i < exts.length; i++) { | ||||
|       if (process.env.DEBUG_MIME && this.types[exts[i]]) { | ||||
|         console.warn((this._loading || "define()").replace(/.*\//, ''), 'changes "' + exts[i] + '" extension type from ' + | ||||
|           this.types[exts[i]] + ' to ' + type); | ||||
|       } | ||||
| 
 | ||||
|       this.types[exts[i]] = type; | ||||
|     } | ||||
| 
 | ||||
|     // Default extension is the first one we encounter
 | ||||
|     if (!this.extensions[type]) { | ||||
|       this.extensions[type] = exts[0]; | ||||
|     } | ||||
|   } | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
|  * Load an Apache2-style ".types" file | ||||
|  * | ||||
|  * This may be called multiple times (it's expected).  Where files declare | ||||
|  * overlapping types/extensions, the last file wins. | ||||
|  * | ||||
|  * @param file (String) path of file to load. | ||||
|  */ | ||||
| Mime.prototype.load = function(file) { | ||||
|   this._loading = file; | ||||
|   // Read file and split into lines
 | ||||
|   var map = {}, | ||||
|       content = fs.readFileSync(file, 'ascii'), | ||||
|       lines = content.split(/[\r\n]+/); | ||||
| 
 | ||||
|   lines.forEach(function(line) { | ||||
|     // Clean up whitespace/comments, and split into fields
 | ||||
|     var fields = line.replace(/\s*#.*|^\s*|\s*$/g, '').split(/\s+/); | ||||
|     map[fields.shift()] = fields; | ||||
|   }); | ||||
| 
 | ||||
|   this.define(map); | ||||
| 
 | ||||
|   this._loading = null; | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
|  * Lookup a mime type based on extension | ||||
|  */ | ||||
| Mime.prototype.lookup = function(path, fallback) { | ||||
|   var ext = path.replace(/^.*[\.\/\\]/, '').toLowerCase(); | ||||
| 
 | ||||
|   return this.types[ext] || fallback || this.default_type; | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
|  * Return file extension associated with a mime type | ||||
|  */ | ||||
| Mime.prototype.extension = function(mimeType) { | ||||
|   var type = mimeType.match(/^\s*([^;\s]*)(?:;|\s|$)/)[1].toLowerCase(); | ||||
|   return this.extensions[type]; | ||||
| }; | ||||
| 
 | ||||
| // Default instance
 | ||||
| var mime = new Mime(); | ||||
| 
 | ||||
| // Define built-in types
 | ||||
| mime.define(require('./types.json')); | ||||
| 
 | ||||
| // Default type
 | ||||
| mime.default_type = mime.lookup('bin'); | ||||
| 
 | ||||
| //
 | ||||
| // Additional API specific to the default instance
 | ||||
| //
 | ||||
| 
 | ||||
| mime.Mime = Mime; | ||||
| 
 | ||||
| /** | ||||
|  * Lookup a charset based on mime type. | ||||
|  */ | ||||
| mime.charsets = { | ||||
|   lookup: function(mimeType, fallback) { | ||||
|     // Assume text types are utf8
 | ||||
|     return (/^text\/|^application\/(javascript|json)/).test(mimeType) ? 'UTF-8' : fallback; | ||||
|   } | ||||
| }; | ||||
| 
 | ||||
| module.exports = mime; | ||||
							
								
								
									
										44
									
								
								node_modules/send/node_modules/mime/package.json
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								node_modules/send/node_modules/mime/package.json
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,44 @@ | |||
| { | ||||
|   "author": { | ||||
|     "name": "Robert Kieffer", | ||||
|     "url": "http://github.com/broofa", | ||||
|     "email": "robert@broofa.com" | ||||
|   }, | ||||
|   "bin": { | ||||
|     "mime": "cli.js" | ||||
|   }, | ||||
|   "engines": { | ||||
|     "node": ">=4" | ||||
|   }, | ||||
|   "contributors": [ | ||||
|     { | ||||
|       "name": "Benjamin Thomas", | ||||
|       "url": "http://github.com/bentomas", | ||||
|       "email": "benjamin@benjaminthomas.org" | ||||
|     } | ||||
|   ], | ||||
|   "description": "A comprehensive library for mime-type mapping", | ||||
|   "license": "MIT", | ||||
|   "dependencies": {}, | ||||
|   "devDependencies": { | ||||
|     "github-release-notes": "0.13.1", | ||||
|     "mime-db": "1.31.0", | ||||
|     "mime-score": "1.1.0" | ||||
|   }, | ||||
|   "scripts": { | ||||
|     "prepare": "node src/build.js", | ||||
|     "changelog": "gren changelog --tags=all --generate --override", | ||||
|     "test": "node src/test.js" | ||||
|   }, | ||||
|   "keywords": [ | ||||
|     "util", | ||||
|     "mime" | ||||
|   ], | ||||
|   "main": "mime.js", | ||||
|   "name": "mime", | ||||
|   "repository": { | ||||
|     "url": "https://github.com/broofa/node-mime", | ||||
|     "type": "git" | ||||
|   }, | ||||
|   "version": "1.6.0" | ||||
| } | ||||
							
								
								
									
										53
									
								
								node_modules/send/node_modules/mime/src/build.js
									
										
									
										generated
									
									
										vendored
									
									
										Executable file
									
								
							
							
						
						
									
										53
									
								
								node_modules/send/node_modules/mime/src/build.js
									
										
									
										generated
									
									
										vendored
									
									
										Executable file
									
								
							|  | @ -0,0 +1,53 @@ | |||
| #!/usr/bin/env node
 | ||||
| 
 | ||||
| 'use strict'; | ||||
| 
 | ||||
| const fs = require('fs'); | ||||
| const path = require('path'); | ||||
| const mimeScore = require('mime-score'); | ||||
| 
 | ||||
| let db = require('mime-db'); | ||||
| let chalk = require('chalk'); | ||||
| 
 | ||||
| const STANDARD_FACET_SCORE = 900; | ||||
| 
 | ||||
| const byExtension = {}; | ||||
| 
 | ||||
| // Clear out any conflict extensions in mime-db
 | ||||
| for (let type in db) { | ||||
|   let entry = db[type]; | ||||
|   entry.type = type; | ||||
| 
 | ||||
|   if (!entry.extensions) continue; | ||||
| 
 | ||||
|   entry.extensions.forEach(ext => { | ||||
|     if (ext in byExtension) { | ||||
|       const e0 = entry; | ||||
|       const e1 = byExtension[ext]; | ||||
|       e0.pri = mimeScore(e0.type, e0.source); | ||||
|       e1.pri = mimeScore(e1.type, e1.source); | ||||
| 
 | ||||
|       let drop = e0.pri < e1.pri ? e0 : e1; | ||||
|       let keep = e0.pri >= e1.pri ? e0 : e1; | ||||
|       drop.extensions = drop.extensions.filter(e => e !== ext); | ||||
| 
 | ||||
|       console.log(`${ext}: Keeping ${chalk.green(keep.type)} (${keep.pri}), dropping ${chalk.red(drop.type)} (${drop.pri})`); | ||||
|     } | ||||
|     byExtension[ext] = entry; | ||||
|   }); | ||||
| } | ||||
| 
 | ||||
| function writeTypesFile(types, path) { | ||||
|   fs.writeFileSync(path, JSON.stringify(types)); | ||||
| } | ||||
| 
 | ||||
| // Segregate into standard and non-standard types based on facet per
 | ||||
| // https://tools.ietf.org/html/rfc6838#section-3.1
 | ||||
| const types = {}; | ||||
| 
 | ||||
| Object.keys(db).sort().forEach(k => { | ||||
|   const entry = db[k]; | ||||
|   types[entry.type] = entry.extensions; | ||||
| }); | ||||
| 
 | ||||
| writeTypesFile(types, path.join(__dirname, '..', 'types.json')); | ||||
							
								
								
									
										60
									
								
								node_modules/send/node_modules/mime/src/test.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								node_modules/send/node_modules/mime/src/test.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,60 @@ | |||
| /** | ||||
|  * Usage: node test.js | ||||
|  */ | ||||
| 
 | ||||
| var mime = require('../mime'); | ||||
| var assert = require('assert'); | ||||
| var path = require('path'); | ||||
| 
 | ||||
| //
 | ||||
| // Test mime lookups
 | ||||
| //
 | ||||
| 
 | ||||
| assert.equal('text/plain', mime.lookup('text.txt'));     // normal file
 | ||||
| assert.equal('text/plain', mime.lookup('TEXT.TXT'));     // uppercase
 | ||||
| assert.equal('text/plain', mime.lookup('dir/text.txt')); // dir + file
 | ||||
| assert.equal('text/plain', mime.lookup('.text.txt'));    // hidden file
 | ||||
| assert.equal('text/plain', mime.lookup('.txt'));         // nameless
 | ||||
| assert.equal('text/plain', mime.lookup('txt'));          // extension-only
 | ||||
| assert.equal('text/plain', mime.lookup('/txt'));         // extension-less ()
 | ||||
| assert.equal('text/plain', mime.lookup('\\txt'));        // Windows, extension-less
 | ||||
| assert.equal('application/octet-stream', mime.lookup('text.nope')); // unrecognized
 | ||||
| assert.equal('fallback', mime.lookup('text.fallback', 'fallback')); // alternate default
 | ||||
| 
 | ||||
| //
 | ||||
| // Test extensions
 | ||||
| //
 | ||||
| 
 | ||||
| assert.equal('txt', mime.extension(mime.types.text)); | ||||
| assert.equal('html', mime.extension(mime.types.htm)); | ||||
| assert.equal('bin', mime.extension('application/octet-stream')); | ||||
| assert.equal('bin', mime.extension('application/octet-stream ')); | ||||
| assert.equal('html', mime.extension(' text/html; charset=UTF-8')); | ||||
| assert.equal('html', mime.extension('text/html; charset=UTF-8 ')); | ||||
| assert.equal('html', mime.extension('text/html; charset=UTF-8')); | ||||
| assert.equal('html', mime.extension('text/html ; charset=UTF-8')); | ||||
| assert.equal('html', mime.extension('text/html;charset=UTF-8')); | ||||
| assert.equal('html', mime.extension('text/Html;charset=UTF-8')); | ||||
| assert.equal(undefined, mime.extension('unrecognized')); | ||||
| 
 | ||||
| //
 | ||||
| // Test node.types lookups
 | ||||
| //
 | ||||
| 
 | ||||
| assert.equal('font/woff', mime.lookup('file.woff')); | ||||
| assert.equal('application/octet-stream', mime.lookup('file.buffer')); | ||||
| // TODO: Uncomment once #157 is resolved
 | ||||
| // assert.equal('audio/mp4', mime.lookup('file.m4a'));
 | ||||
| assert.equal('font/otf', mime.lookup('file.otf')); | ||||
| 
 | ||||
| //
 | ||||
| // Test charsets
 | ||||
| //
 | ||||
| 
 | ||||
| assert.equal('UTF-8', mime.charsets.lookup('text/plain')); | ||||
| assert.equal('UTF-8', mime.charsets.lookup(mime.types.js)); | ||||
| assert.equal('UTF-8', mime.charsets.lookup(mime.types.json)); | ||||
| assert.equal(undefined, mime.charsets.lookup(mime.types.bin)); | ||||
| assert.equal('fallback', mime.charsets.lookup('application/octet-stream', 'fallback')); | ||||
| 
 | ||||
| console.log('\nAll tests passed'); | ||||
							
								
								
									
										1
									
								
								node_modules/send/node_modules/mime/types.json
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								node_modules/send/node_modules/mime/types.json
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										162
									
								
								node_modules/send/node_modules/ms/index.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										162
									
								
								node_modules/send/node_modules/ms/index.js
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,162 @@ | |||
| /** | ||||
|  * Helpers. | ||||
|  */ | ||||
| 
 | ||||
| var s = 1000; | ||||
| var m = s * 60; | ||||
| var h = m * 60; | ||||
| var d = h * 24; | ||||
| var w = d * 7; | ||||
| var y = d * 365.25; | ||||
| 
 | ||||
| /** | ||||
|  * Parse or format the given `val`. | ||||
|  * | ||||
|  * Options: | ||||
|  * | ||||
|  *  - `long` verbose formatting [false] | ||||
|  * | ||||
|  * @param {String|Number} val | ||||
|  * @param {Object} [options] | ||||
|  * @throws {Error} throw an error if val is not a non-empty string or a number | ||||
|  * @return {String|Number} | ||||
|  * @api public | ||||
|  */ | ||||
| 
 | ||||
| module.exports = function (val, options) { | ||||
|   options = options || {}; | ||||
|   var type = typeof val; | ||||
|   if (type === 'string' && val.length > 0) { | ||||
|     return parse(val); | ||||
|   } else if (type === 'number' && isFinite(val)) { | ||||
|     return options.long ? fmtLong(val) : fmtShort(val); | ||||
|   } | ||||
|   throw new Error( | ||||
|     'val is not a non-empty string or a valid number. val=' + | ||||
|       JSON.stringify(val) | ||||
|   ); | ||||
| }; | ||||
| 
 | ||||
| /** | ||||
|  * Parse the given `str` and return milliseconds. | ||||
|  * | ||||
|  * @param {String} str | ||||
|  * @return {Number} | ||||
|  * @api private | ||||
|  */ | ||||
| 
 | ||||
| function parse(str) { | ||||
|   str = String(str); | ||||
|   if (str.length > 100) { | ||||
|     return; | ||||
|   } | ||||
|   var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( | ||||
|     str | ||||
|   ); | ||||
|   if (!match) { | ||||
|     return; | ||||
|   } | ||||
|   var n = parseFloat(match[1]); | ||||
|   var type = (match[2] || 'ms').toLowerCase(); | ||||
|   switch (type) { | ||||
|     case 'years': | ||||
|     case 'year': | ||||
|     case 'yrs': | ||||
|     case 'yr': | ||||
|     case 'y': | ||||
|       return n * y; | ||||
|     case 'weeks': | ||||
|     case 'week': | ||||
|     case 'w': | ||||
|       return n * w; | ||||
|     case 'days': | ||||
|     case 'day': | ||||
|     case 'd': | ||||
|       return n * d; | ||||
|     case 'hours': | ||||
|     case 'hour': | ||||
|     case 'hrs': | ||||
|     case 'hr': | ||||
|     case 'h': | ||||
|       return n * h; | ||||
|     case 'minutes': | ||||
|     case 'minute': | ||||
|     case 'mins': | ||||
|     case 'min': | ||||
|     case 'm': | ||||
|       return n * m; | ||||
|     case 'seconds': | ||||
|     case 'second': | ||||
|     case 'secs': | ||||
|     case 'sec': | ||||
|     case 's': | ||||
|       return n * s; | ||||
|     case 'milliseconds': | ||||
|     case 'millisecond': | ||||
|     case 'msecs': | ||||
|     case 'msec': | ||||
|     case 'ms': | ||||
|       return n; | ||||
|     default: | ||||
|       return undefined; | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Short format for `ms`. | ||||
|  * | ||||
|  * @param {Number} ms | ||||
|  * @return {String} | ||||
|  * @api private | ||||
|  */ | ||||
| 
 | ||||
| function fmtShort(ms) { | ||||
|   var msAbs = Math.abs(ms); | ||||
|   if (msAbs >= d) { | ||||
|     return Math.round(ms / d) + 'd'; | ||||
|   } | ||||
|   if (msAbs >= h) { | ||||
|     return Math.round(ms / h) + 'h'; | ||||
|   } | ||||
|   if (msAbs >= m) { | ||||
|     return Math.round(ms / m) + 'm'; | ||||
|   } | ||||
|   if (msAbs >= s) { | ||||
|     return Math.round(ms / s) + 's'; | ||||
|   } | ||||
|   return ms + 'ms'; | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Long format for `ms`. | ||||
|  * | ||||
|  * @param {Number} ms | ||||
|  * @return {String} | ||||
|  * @api private | ||||
|  */ | ||||
| 
 | ||||
| function fmtLong(ms) { | ||||
|   var msAbs = Math.abs(ms); | ||||
|   if (msAbs >= d) { | ||||
|     return plural(ms, msAbs, d, 'day'); | ||||
|   } | ||||
|   if (msAbs >= h) { | ||||
|     return plural(ms, msAbs, h, 'hour'); | ||||
|   } | ||||
|   if (msAbs >= m) { | ||||
|     return plural(ms, msAbs, m, 'minute'); | ||||
|   } | ||||
|   if (msAbs >= s) { | ||||
|     return plural(ms, msAbs, s, 'second'); | ||||
|   } | ||||
|   return ms + ' ms'; | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  * Pluralization helper. | ||||
|  */ | ||||
| 
 | ||||
| function plural(ms, msAbs, n, name) { | ||||
|   var isPlural = msAbs >= n * 1.5; | ||||
|   return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : ''); | ||||
| } | ||||
							
								
								
									
										21
									
								
								node_modules/send/node_modules/ms/license.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								node_modules/send/node_modules/ms/license.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,21 @@ | |||
| The MIT License (MIT) | ||||
| 
 | ||||
| Copyright (c) 2020 Vercel, Inc. | ||||
| 
 | ||||
| Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
| of this software and associated documentation files (the "Software"), to deal | ||||
| in the Software without restriction, including without limitation the rights | ||||
| to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
| copies of the Software, and to permit persons to whom the Software is | ||||
| furnished to do so, subject to the following conditions: | ||||
| 
 | ||||
| The above copyright notice and this permission notice shall be included in all | ||||
| copies or substantial portions of the Software. | ||||
| 
 | ||||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
| FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
| AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
| LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
| OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||||
| SOFTWARE. | ||||
							
								
								
									
										38
									
								
								node_modules/send/node_modules/ms/package.json
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								node_modules/send/node_modules/ms/package.json
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,38 @@ | |||
| { | ||||
|   "name": "ms", | ||||
|   "version": "2.1.3", | ||||
|   "description": "Tiny millisecond conversion utility", | ||||
|   "repository": "vercel/ms", | ||||
|   "main": "./index", | ||||
|   "files": [ | ||||
|     "index.js" | ||||
|   ], | ||||
|   "scripts": { | ||||
|     "precommit": "lint-staged", | ||||
|     "lint": "eslint lib/* bin/*", | ||||
|     "test": "mocha tests.js" | ||||
|   }, | ||||
|   "eslintConfig": { | ||||
|     "extends": "eslint:recommended", | ||||
|     "env": { | ||||
|       "node": true, | ||||
|       "es6": true | ||||
|     } | ||||
|   }, | ||||
|   "lint-staged": { | ||||
|     "*.js": [ | ||||
|       "npm run lint", | ||||
|       "prettier --single-quote --write", | ||||
|       "git add" | ||||
|     ] | ||||
|   }, | ||||
|   "license": "MIT", | ||||
|   "devDependencies": { | ||||
|     "eslint": "4.18.2", | ||||
|     "expect.js": "0.3.1", | ||||
|     "husky": "0.14.3", | ||||
|     "lint-staged": "5.0.0", | ||||
|     "mocha": "4.0.1", | ||||
|     "prettier": "2.0.5" | ||||
|   } | ||||
| } | ||||
							
								
								
									
										59
									
								
								node_modules/send/node_modules/ms/readme.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								node_modules/send/node_modules/ms/readme.md
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,59 @@ | |||
| # ms | ||||
| 
 | ||||
|  | ||||
| 
 | ||||
| Use this package to easily convert various time formats to milliseconds. | ||||
| 
 | ||||
| ## Examples | ||||
| 
 | ||||
| ```js | ||||
| ms('2 days')  // 172800000 | ||||
| ms('1d')      // 86400000 | ||||
| ms('10h')     // 36000000 | ||||
| ms('2.5 hrs') // 9000000 | ||||
| ms('2h')      // 7200000 | ||||
| ms('1m')      // 60000 | ||||
| ms('5s')      // 5000 | ||||
| ms('1y')      // 31557600000 | ||||
| ms('100')     // 100 | ||||
| ms('-3 days') // -259200000 | ||||
| ms('-1h')     // -3600000 | ||||
| ms('-200')    // -200 | ||||
| ``` | ||||
| 
 | ||||
| ### Convert from Milliseconds | ||||
| 
 | ||||
| ```js | ||||
| ms(60000)             // "1m" | ||||
| ms(2 * 60000)         // "2m" | ||||
| ms(-3 * 60000)        // "-3m" | ||||
| ms(ms('10 hours'))    // "10h" | ||||
| ``` | ||||
| 
 | ||||
| ### Time Format Written-Out | ||||
| 
 | ||||
| ```js | ||||
| ms(60000, { long: true })             // "1 minute" | ||||
| ms(2 * 60000, { long: true })         // "2 minutes" | ||||
| ms(-3 * 60000, { long: true })        // "-3 minutes" | ||||
| ms(ms('10 hours'), { long: true })    // "10 hours" | ||||
| ``` | ||||
| 
 | ||||
| ## Features | ||||
| 
 | ||||
| - Works both in [Node.js](https://nodejs.org) and in the browser | ||||
| - If a number is supplied to `ms`, a string with a unit is returned | ||||
| - If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`) | ||||
| - If you pass a string with a number and a valid unit, the number of equivalent milliseconds is returned | ||||
| 
 | ||||
| ## Related Packages | ||||
| 
 | ||||
| - [ms.macro](https://github.com/knpwrs/ms.macro) - Run `ms` as a macro at build-time. | ||||
| 
 | ||||
| ## Caught a Bug? | ||||
| 
 | ||||
| 1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device | ||||
| 2. Link the package to the global module directory: `npm link` | ||||
| 3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, Node.js will now use your clone of ms! | ||||
| 
 | ||||
| As always, you can run the tests using: `npm test` | ||||
							
								
								
									
										62
									
								
								node_modules/send/package.json
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								node_modules/send/package.json
									
										
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							|  | @ -0,0 +1,62 @@ | |||
| { | ||||
|   "name": "send", | ||||
|   "description": "Better streaming static file server with Range and conditional-GET support", | ||||
|   "version": "0.18.0", | ||||
|   "author": "TJ Holowaychuk <tj@vision-media.ca>", | ||||
|   "contributors": [ | ||||
|     "Douglas Christopher Wilson <doug@somethingdoug.com>", | ||||
|     "James Wyatt Cready <jcready@gmail.com>", | ||||
|     "Jesús Leganés Combarro <piranna@gmail.com>" | ||||
|   ], | ||||
|   "license": "MIT", | ||||
|   "repository": "pillarjs/send", | ||||
|   "keywords": [ | ||||
|     "static", | ||||
|     "file", | ||||
|     "server" | ||||
|   ], | ||||
|   "dependencies": { | ||||
|     "debug": "2.6.9", | ||||
|     "depd": "2.0.0", | ||||
|     "destroy": "1.2.0", | ||||
|     "encodeurl": "~1.0.2", | ||||
|     "escape-html": "~1.0.3", | ||||
|     "etag": "~1.8.1", | ||||
|     "fresh": "0.5.2", | ||||
|     "http-errors": "2.0.0", | ||||
|     "mime": "1.6.0", | ||||
|     "ms": "2.1.3", | ||||
|     "on-finished": "2.4.1", | ||||
|     "range-parser": "~1.2.1", | ||||
|     "statuses": "2.0.1" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "after": "0.8.2", | ||||
|     "eslint": "7.32.0", | ||||
|     "eslint-config-standard": "14.1.1", | ||||
|     "eslint-plugin-import": "2.25.4", | ||||
|     "eslint-plugin-markdown": "2.2.1", | ||||
|     "eslint-plugin-node": "11.1.0", | ||||
|     "eslint-plugin-promise": "5.2.0", | ||||
|     "eslint-plugin-standard": "4.1.0", | ||||
|     "mocha": "9.2.2", | ||||
|     "nyc": "15.1.0", | ||||
|     "supertest": "6.2.2" | ||||
|   }, | ||||
|   "files": [ | ||||
|     "HISTORY.md", | ||||
|     "LICENSE", | ||||
|     "README.md", | ||||
|     "SECURITY.md", | ||||
|     "index.js" | ||||
|   ], | ||||
|   "engines": { | ||||
|     "node": ">= 0.8.0" | ||||
|   }, | ||||
|   "scripts": { | ||||
|     "lint": "eslint .", | ||||
|     "test": "mocha --check-leaks --reporter spec --bail", | ||||
|     "test-ci": "nyc --reporter=lcov --reporter=text npm test", | ||||
|     "test-cov": "nyc --reporter=html --reporter=text npm test" | ||||
|   } | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue