Skip to content

Commit f80b88c

Browse files
alan-agius4Bowden
authored andcommitted
feat(*): update several dependencies
1 parent 7631ad5 commit f80b88c

File tree

8 files changed

+5317
-4076
lines changed

8 files changed

+5317
-4076
lines changed

package-lock.json

Lines changed: 5131 additions & 4024 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -43,59 +43,59 @@
4343
"testEnvironment": "node"
4444
},
4545
"dependencies": {
46-
"async": "^2.1.2",
46+
"async": "^2.5.0",
4747
"bcrypt-nodejs": "^0.0.3",
48-
"body-parser": "^1.15.2",
49-
"compression": "^1.6.2",
48+
"body-parser": "^1.18.2",
49+
"compression": "^1.7.1",
5050
"connect-mongo": "^1.3.2",
5151
"dotenv": "^2.0.0",
52-
"errorhandler": "^1.4.3",
53-
"express": "^4.14.0",
54-
"express-flash": "^0.0.2",
55-
"express-session": "^1.14.2",
56-
"express-validator": "^3.1.3",
57-
"fbgraph": "^1.3.0",
52+
"errorhandler": "^1.5.0",
53+
"express": "^4.16.2",
54+
"express-flash": "0.0.2",
55+
"express-session": "^1.15.6",
56+
"express-validator": "^4.2.1",
57+
"fbgraph": "^1.4.1",
5858
"lodash": "^4.17.4",
59-
"lusca": "^1.4.1",
60-
"mongoose": "^4.6.6",
61-
"morgan": "^1.7.0",
62-
"nodemailer": "^2.6.4",
63-
"passport": "0.3.2",
59+
"lusca": "^1.5.2",
60+
"mongoose": "^4.12.4",
61+
"morgan": "^1.9.0",
62+
"nodemailer": "^2.7.2",
63+
"passport": "^0.4.0",
6464
"passport-facebook": "^2.1.1",
6565
"passport-local": "^1.0.0",
66-
"pug": "^2.0.0-beta6",
67-
"request": "^2.78.0"
66+
"pug": "^2.0.0-rc.4",
67+
"request": "^2.83.0"
6868
},
6969
"devDependencies": {
7070
"@types/async": "^2.0.40",
7171
"@types/bcrypt-nodejs": "0.0.30",
7272
"@types/body-parser": "^1.16.2",
7373
"@types/compression": "0.0.33",
74-
"@types/connect-mongo": "0.0.32",
74+
"@types/connect-mongo": "0.0.34",
7575
"@types/dotenv": "^2.0.20",
76-
"@types/errorhandler": "0.0.30",
76+
"@types/errorhandler": "0.0.32",
7777
"@types/express": "^4.0.35",
78-
"@types/express-session": "0.0.32",
79-
"@types/jest": "^19.2.2",
80-
"@types/jquery": "^2.0.41",
81-
"@types/lodash": "^4.14.63",
82-
"@types/mongodb": "^2.1.43",
78+
"@types/express-session": "^1.15.5",
79+
"@types/jest": "^21.1.5",
80+
"@types/jquery": "^3.2.15",
81+
"@types/lodash": "^4.14.80",
82+
"@types/mongodb": "^2.2.15",
8383
"@types/mongoose": "^4.7.9",
8484
"@types/morgan": "^1.7.32",
8585
"@types/node": "^7.0.12",
8686
"@types/nodemailer": "^1.3.32",
8787
"@types/passport": "^0.3.3",
8888
"@types/passport-facebook": "^2.1.3",
89-
"@types/request": "0.0.45",
89+
"@types/request": "^2.0.7",
9090
"@types/supertest": "^2.0.0",
9191
"concurrently": "^3.4.0",
92-
"jest": "^19.0.2",
92+
"jest": "^21.2.1",
9393
"node-sass": "^4.5.2",
9494
"nodemon": "^1.11.0",
9595
"shelljs": "^0.7.7",
9696
"supertest": "^2.0.1",
97-
"ts-jest": "^19.0.8",
98-
"tslint": "^5.0.0",
97+
"ts-jest": "^21.1.4",
98+
"tslint": "^5.8.0",
9999
"typescript": "^2.4.0"
100100
}
101101
}

src/server.ts

Lines changed: 136 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,141 @@
1+
/**
2+
* Module dependencies.
3+
*/
4+
import * as express from "express";
5+
import * as compression from "compression"; // compresses requests
6+
import * as session from "express-session";
7+
import * as expressValidator from "express-validator";
8+
import * as bodyParser from "body-parser";
9+
import * as logger from "morgan";
110
import * as errorHandler from "errorhandler";
11+
import * as lusca from "lusca";
12+
import * as dotenv from "dotenv";
13+
import * as mongo from "connect-mongo";
14+
import * as flash from "express-flash";
15+
import * as path from "path";
16+
import * as mongoose from "mongoose";
17+
import * as passport from "passport";
18+
19+
20+
const MongoStore = mongo(session);
21+
22+
/**
23+
* Load environment variables from .env file, where API keys and passwords are configured.
24+
*/
25+
dotenv.config({ path: ".env.example" });
26+
27+
28+
/**
29+
* Controllers (route handlers).
30+
*/
31+
import * as homeController from "./controllers/home";
32+
import * as userController from "./controllers/user";
33+
import * as apiController from "./controllers/api";
34+
import * as contactController from "./controllers/contact";
35+
36+
/**
37+
* API keys and Passport configuration.
38+
*/
39+
import * as passportConfig from "./config/passport";
40+
41+
/**
42+
* Create Express server.
43+
*/
44+
const app = express();
45+
46+
/**
47+
* Connect to MongoDB.
48+
*/
49+
// mongoose.Promise = global.Promise;
50+
mongoose.connect(process.env.MONGODB_URI || process.env.MONGOLAB_URI, {
51+
useMongoClient: true
52+
});
53+
mongoose.connection.on("error", () => {
54+
console.log("MongoDB connection error. Please make sure MongoDB is running.");
55+
process.exit();
56+
});
57+
58+
59+
60+
/**
61+
* Express configuration.
62+
*/
63+
app.set("port", process.env.PORT || 3000);
64+
app.set("views", path.join(__dirname, "../views"));
65+
app.set("view engine", "pug");
66+
app.use(compression());
67+
app.use(logger("dev"));
68+
app.use(bodyParser.json());
69+
app.use(bodyParser.urlencoded({ extended: true }));
70+
app.use(expressValidator());
71+
app.use(session({
72+
resave: true,
73+
saveUninitialized: true,
74+
secret: process.env.SESSION_SECRET,
75+
store: new MongoStore({
76+
url: process.env.MONGODB_URI || process.env.MONGOLAB_URI,
77+
autoReconnect: true
78+
})
79+
}));
80+
app.use(passport.initialize());
81+
app.use(passport.session());
82+
app.use(flash());
83+
app.use(lusca.xframe("SAMEORIGIN"));
84+
app.use(lusca.xssProtection(true));
85+
app.use((req, res, next) => {
86+
res.locals.user = req.user;
87+
next();
88+
});
89+
app.use((req, res, next) => {
90+
// After successful login, redirect back to the intended page
91+
if (!req.user &&
92+
req.path !== "/login" &&
93+
req.path !== "/signup" &&
94+
!req.path.match(/^\/auth/) &&
95+
!req.path.match(/\./)) {
96+
req.session.returnTo = req.path;
97+
} else if (req.user &&
98+
req.path == "/account") {
99+
req.session.returnTo = req.path;
100+
}
101+
next();
102+
});
103+
app.use(express.static(path.join(__dirname, "public"), { maxAge: 31557600000 }));
2104

3-
const app = require("./app");
105+
/**
106+
* Primary app routes.
107+
*/
108+
app.get("/", homeController.index);
109+
app.get("/login", userController.getLogin);
110+
app.post("/login", userController.postLogin);
111+
app.get("/logout", userController.logout);
112+
app.get("/forgot", userController.getForgot);
113+
app.post("/forgot", userController.postForgot);
114+
app.get("/reset/:token", userController.getReset);
115+
app.post("/reset/:token", userController.postReset);
116+
app.get("/signup", userController.getSignup);
117+
app.post("/signup", userController.postSignup);
118+
app.get("/contact", contactController.getContact);
119+
app.post("/contact", contactController.postContact);
120+
app.get("/account", passportConfig.isAuthenticated, userController.getAccount);
121+
app.post("/account/profile", passportConfig.isAuthenticated, userController.postUpdateProfile);
122+
app.post("/account/password", passportConfig.isAuthenticated, userController.postUpdatePassword);
123+
app.post("/account/delete", passportConfig.isAuthenticated, userController.postDeleteAccount);
124+
app.get("/account/unlink/:provider", passportConfig.isAuthenticated, userController.getOauthUnlink);
125+
126+
/**
127+
* API examples routes.
128+
*/
129+
app.get("/api", apiController.getApi);
130+
app.get("/api/facebook", passportConfig.isAuthenticated, passportConfig.isAuthorized, apiController.getFacebook);
131+
132+
/**
133+
* OAuth authentication routes. (Sign in)
134+
*/
135+
app.get("/auth/facebook", passport.authenticate("facebook", { scope: ["email", "public_profile"] }));
136+
app.get("/auth/facebook/callback", passport.authenticate("facebook", { failureRedirect: "/login" }), (req, res) => {
137+
res.redirect(req.session.returnTo || "/");
138+
});
4139

5140
/**
6141
* Error Handler. Provides full stack - remove for production

test/api.test.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
import {} from "jest";
21
import * as supertest from "supertest";
3-
4-
const app = require("../src/app");
5-
const request = supertest(app);
2+
import * as app from "../src/server";
63

74
describe("GET /api", () => {
5+
const request = supertest(app);
6+
87
it("should return 200 OK", () => {
98
return request
109
.get("/api")

test/app.test.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import {} from "jest";
21
import * as supertest from "supertest";
3-
const app = require("../src/app");
4-
const request = supertest(app);
2+
import * as app from "../src/server";
53

64
describe("GET /random-url", () => {
7-
it("should return 404", () => {
8-
return request.get("/reset")
9-
.expect(404);
5+
const request = supertest(app);
6+
7+
it("should return 404", (done) => {
8+
request.get("/reset")
9+
.expect(404, done);
1010
});
1111
});

test/contact.test.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import {} from "jest";
21
import * as supertest from "supertest";
3-
const app = require("../src/app");
4-
const request = supertest(app);
2+
import * as app from "../src/server";
53

64
describe("GET /contact", () => {
7-
it("should return 200 OK", () => {
8-
return request.get("/contact")
9-
.expect(200);
5+
const request = supertest(app);
6+
7+
it("should return 200 OK", (done) => {
8+
request.get("/contact")
9+
.expect(200, done);
1010
});
1111
});

test/home.test.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import {} from "jest";
21
import * as supertest from "supertest";
3-
const app = require("../src/app");
4-
const request = supertest(app);
2+
import * as app from "../src/server";
53

64
describe("GET /", () => {
7-
it("should return 200 OK", () => {
8-
return request.get("/")
9-
.expect(200);
5+
const request = supertest(app);
6+
7+
it("should return 200 OK", (done) => {
8+
request.get("/")
9+
.expect(200, done);
1010
});
1111
});

test/user.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import {} from "jest";
21
import * as supertest from "supertest";
3-
const app = require("../src/app");
2+
import * as app from "../src/server";
3+
44
const request = supertest(app);
55

66
describe("GET /login", () => {

0 commit comments

Comments
 (0)