| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
 | | { |  |   "name": "express", |  |   "description": "Fast, unopinionated, minimalist web framework", |  |   "version": "4.18.2", |  |   "author": "TJ Holowaychuk <tj@vision-media.ca>", |  |   "contributors": [ |  |     "Aaron Heckmann <aaron.heckmann+github@gmail.com>", |  |     "Ciaran Jessup <ciaranj@gmail.com>", |  |     "Douglas Christopher Wilson <doug@somethingdoug.com>", |  |     "Guillermo Rauch <rauchg@gmail.com>", |  |     "Jonathan Ong <me@jongleberry.com>", |  |     "Roman Shtylman <shtylman+expressjs@gmail.com>", |  |     "Young Jae Sim <hanul@hanul.me>" |  |   ], |  |   "license": "MIT", |  |   "repository": "expressjs/express", |  |   "homepage": "http://expressjs.com/", |  |   "keywords": [ |  |     "express", |  |     "framework", |  |     "sinatra", |  |     "web", |  |     "http", |  |     "rest", |  |     "restful", |  |     "router", |  |     "app", |  |     "api" |  |   ], |  |   "dependencies": { |  |     "accepts": "~1.3.8", |  |     "array-flatten": "1.1.1", |  |     "body-parser": "1.20.1", |  |     "content-disposition": "0.5.4", |  |     "content-type": "~1.0.4", |  |     "cookie": "0.5.0", |  |     "cookie-signature": "1.0.6", |  |     "debug": "2.6.9", |  |     "depd": "2.0.0", |  |     "encodeurl": "~1.0.2", |  |     "escape-html": "~1.0.3", |  |     "etag": "~1.8.1", |  |     "finalhandler": "1.2.0", |  |     "fresh": "0.5.2", |  |     "http-errors": "2.0.0", |  |     "merge-descriptors": "1.0.1", |  |     "methods": "~1.1.2", |  |     "on-finished": "2.4.1", |  |     "parseurl": "~1.3.3", |  |     "path-to-regexp": "0.1.7", |  |     "proxy-addr": "~2.0.7", |  |     "qs": "6.11.0", |  |     "range-parser": "~1.2.1", |  |     "safe-buffer": "5.2.1", |  |     "send": "0.18.0", |  |     "serve-static": "1.15.0", |  |     "setprototypeof": "1.2.0", |  |     "statuses": "2.0.1", |  |     "type-is": "~1.6.18", |  |     "utils-merge": "1.0.1", |  |     "vary": "~1.1.2" |  |   }, |  |   "devDependencies": { |  |     "after": "0.8.2", |  |     "connect-redis": "3.4.2", |  |     "cookie-parser": "1.4.6", |  |     "cookie-session": "2.0.0", |  |     "ejs": "3.1.8", |  |     "eslint": "8.24.0", |  |     "express-session": "1.17.2", |  |     "hbs": "4.2.0", |  |     "marked": "0.7.0", |  |     "method-override": "3.0.0", |  |     "mocha": "10.0.0", |  |     "morgan": "1.10.0", |  |     "multiparty": "4.2.3", |  |     "nyc": "15.1.0", |  |     "pbkdf2-password": "1.2.1", |  |     "supertest": "6.3.0", |  |     "vhost": "~3.0.2" |  |   }, |  |   "engines": { |  |     "node": ">= 0.10.0" |  |   }, |  |   "files": [ |  |     "LICENSE", |  |     "History.md", |  |     "Readme.md", |  |     "index.js", |  |     "lib/" |  |   ], |  |   "scripts": { |  |     "lint": "eslint .", |  |     "test": "mocha --require test/support/env --reporter spec --bail --check-leaks test/ test/acceptance/", |  |     "test-ci": "nyc --reporter=lcovonly --reporter=text npm test", |  |     "test-cov": "nyc --reporter=html --reporter=text npm test", |  |     "test-tap": "mocha --require test/support/env --reporter tap --check-leaks test/ test/acceptance/" |  |   } |  | } | 
 |