diff --git a/components/HomeContent.js b/components/HomeContent.js index f32c8b2..350ce06 100644 --- a/components/HomeContent.js +++ b/components/HomeContent.js @@ -11,7 +11,7 @@ export default function HomeContent() { return ( =0.8" - } - }, "node_modules/cloudinary-build-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/cloudinary-build-url/-/cloudinary-build-url-0.2.1.tgz", @@ -5406,13 +5461,31 @@ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, - "node_modules/iron-store": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/iron-store/-/iron-store-1.3.5.tgz", - "integrity": "sha512-3RBkmVA6AZ3jezmLeX5H0lX1yS3fa90MFU9pL9vyhbpzXCRgAS7DLAfERXDPJEkT3jMZfxnVTTUwwfpB85ml7w==", + "node_modules/iron-session": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/iron-session/-/iron-session-6.0.5.tgz", + "integrity": "sha512-sxkymaQzPkgUnDRfxxstm4jKCKx+ElrdPKzk+uJWj98zk9EPBPHPMg4jJgd+p0ucj631bbrRL9Bjc+XTwxUzeg==", "dependencies": { "@hapi/iron": "^6.0.0", - "clone": "^2.1.2" + "@types/cookie": "^0.4.0", + "@types/express": "^4.17.13", + "@types/node": "^16.11.7", + "cookie": "^0.4.1" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "express": ">=4", + "next": ">=10" + }, + "peerDependenciesMeta": { + "express": { + "optional": true + }, + "next": { + "optional": true + } } }, "node_modules/is-arguments": { @@ -6309,23 +6382,6 @@ } } }, - "node_modules/next-iron-session": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/next-iron-session/-/next-iron-session-4.2.0.tgz", - "integrity": "sha512-RzdbAmB77HJYXPdWrOjsPPE/b6yiSDAwhXEnX5z6mSYUMh22vR1iJD/CeBjs3FWxL39qO78CsLtIjpcojFz4DA==", - "deprecated": "Nov 2021 update: The library was renamed to iron-session and fully rewritten in TypeScript, it includes lots of new features and fixes. Follow the migration guide here: https://github.com/vvo/iron-session/releases/tag/v6.0.0. Existing sessions will be kept when upgrading. Thanks for using iron-session :).", - "dependencies": { - "@types/cookie": "^0.4.0", - "array.prototype.flat": "^1.2.4", - "clone": "^2.1.2", - "cookie": "^0.4.1", - "debug": "^4.3.1", - "iron-store": "^1.3.0" - }, - "engines": { - "node": ">=0.11.0" - } - }, "node_modules/next-with-apollo": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/next-with-apollo/-/next-with-apollo-5.2.1.tgz", @@ -9825,11 +9881,49 @@ "tslib": "^2.3.0" } }, + "@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "requires": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "requires": { + "@types/node": "*" + } + }, "@types/cookie": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==" }, + "@types/express": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "requires": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "@types/express-serve-static-core": { + "version": "4.17.27", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.27.tgz", + "integrity": "sha512-e/sVallzUTPdyOTiqi8O8pMdBBphscvI6E4JYaKlja4Lm+zh7UFSSdW5VMkRbhDtmrONqOUHOXRguPsDckzxNA==", + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, "@types/json-schema": { "version": "7.0.9", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", @@ -9842,11 +9936,35 @@ "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", "dev": true }, + "@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" + }, "@types/node": { "version": "16.11.19", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.19.tgz", "integrity": "sha512-BPAcfDPoHlRQNKktbsbnpACGdypPFBuX4xQlsWDE7B8XXcfII+SpOLay3/qZmCLb39kV5S1RTYwXdkx2lwLYng==" }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + }, + "@types/serve-static": { + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "requires": { + "@types/mime": "^1", + "@types/node": "*" + } + }, "@types/webidl-conversions": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-6.1.1.tgz", @@ -10083,6 +10201,7 @@ "version": "1.2.5", "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", @@ -10699,11 +10818,6 @@ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" - }, "cloudinary-build-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/cloudinary-build-url/-/cloudinary-build-url-0.2.1.tgz", @@ -12159,13 +12273,16 @@ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" }, - "iron-store": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/iron-store/-/iron-store-1.3.5.tgz", - "integrity": "sha512-3RBkmVA6AZ3jezmLeX5H0lX1yS3fa90MFU9pL9vyhbpzXCRgAS7DLAfERXDPJEkT3jMZfxnVTTUwwfpB85ml7w==", + "iron-session": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/iron-session/-/iron-session-6.0.5.tgz", + "integrity": "sha512-sxkymaQzPkgUnDRfxxstm4jKCKx+ElrdPKzk+uJWj98zk9EPBPHPMg4jJgd+p0ucj631bbrRL9Bjc+XTwxUzeg==", "requires": { "@hapi/iron": "^6.0.0", - "clone": "^2.1.2" + "@types/cookie": "^0.4.0", + "@types/express": "^4.17.13", + "@types/node": "^16.11.7", + "cookie": "^0.4.1" } }, "is-arguments": { @@ -12885,19 +13002,6 @@ } } }, - "next-iron-session": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/next-iron-session/-/next-iron-session-4.2.0.tgz", - "integrity": "sha512-RzdbAmB77HJYXPdWrOjsPPE/b6yiSDAwhXEnX5z6mSYUMh22vR1iJD/CeBjs3FWxL39qO78CsLtIjpcojFz4DA==", - "requires": { - "@types/cookie": "^0.4.0", - "array.prototype.flat": "^1.2.4", - "clone": "^2.1.2", - "cookie": "^0.4.1", - "debug": "^4.3.1", - "iron-store": "^1.3.0" - } - }, "next-with-apollo": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/next-with-apollo/-/next-with-apollo-5.2.1.tgz", diff --git a/package.json b/package.json index a39d820..ce8daaa 100644 --- a/package.json +++ b/package.json @@ -18,11 +18,11 @@ "cloudinary-build-url": "^0.2.1", "dotenv": "^10.0.0", "escape-html": "^1.0.3", + "iron-session": "^6.0.5", "jsonwebtoken": "^8.5.1", "mongodb": "^4.3.0", "mongoose": "^6.1.5", "next": "^12.0.7", - "next-iron-session": "^4.2.0", "next-with-apollo": "^5.2.1", "normalize.css": "^8.0.1", "nprogress": "^0.2.0", @@ -64,7 +64,14 @@ "//": "This is our babel config, I prefer this over a .babelrc file", "babel": { "plugins": [ - ["styled-components", { "ssr": true, "displayName": true, "preprocess": false } ] + [ + "styled-components", + { + "ssr": true, + "displayName": true, + "preprocess": false + } + ] ], "env": { "development": { @@ -119,4 +126,4 @@ } } } -} \ No newline at end of file +} diff --git a/pages/api/login.js b/pages/api/login.js index 3524cec..d498305 100644 --- a/pages/api/login.js +++ b/pages/api/login.js @@ -21,7 +21,7 @@ export default withSession(async (req, res) => { // TODO: REMOVE THIS IF GOING TO PRODUCTION if (process.env.SITE_ENV === 'TEST_SITE') { const user = { isLoggedIn: true, id: 'TEST_SITE_ID_123456' }; - req.session.set('user', user); + req.session.user = user; await req.session.save(); res.json(user); } else { @@ -30,7 +30,7 @@ export default withSession(async (req, res) => { isAuthorized = await compare(password, savedPassword); if (isAuthorized) { const user = { isLoggedIn: isAuthorized, id: userData._id }; - req.session.set('user', user); + req.session.user = user; await req.session.save(); res.json(user); } else { diff --git a/pages/api/register.js b/pages/api/register.js index 27f45bd..08ed522 100644 --- a/pages/api/register.js +++ b/pages/api/register.js @@ -17,7 +17,7 @@ export default withSession(async (req, res) => { role: 'guest', }); const user = { isLoggedIn: true, id: result?._id }; - req.session.set('user', user); + req.session.user = user; await req.session.save(); res.status(201).json({ success: true }); } catch (error) { diff --git a/pages/api/rsvp.js b/pages/api/rsvp.js index a145ac2..2eb2def 100644 --- a/pages/api/rsvp.js +++ b/pages/api/rsvp.js @@ -10,7 +10,7 @@ export default withSession(async (req, res) => { session, } = req; - const user = session.get('user'); + const { user } = session; if (!user?.isLoggedIn) { res.status(401).end(); diff --git a/pages/api/user.js b/pages/api/user.js index 8763dd6..001ca68 100644 --- a/pages/api/user.js +++ b/pages/api/user.js @@ -1,7 +1,7 @@ import withSession from '../../lib/session'; export default withSession(async (req, res) => { - const user = req.session.get('user'); + const { user } = req.session; if (user) { // in a real world application you might read the user id from the session and then do a database request diff --git a/pages/party.js b/pages/party.js index ccc787a..5a9ddd5 100644 --- a/pages/party.js +++ b/pages/party.js @@ -40,42 +40,42 @@ const weddingParty = [ { name: 'Best Man', title: 'Best Man', - imageUrl: '', + imageUrl: 'https://picsum.photos/1200/1600', }, { name: 'Man/Maid of Honor', title: 'Man/Maid of Honor', - imageUrl: '', + imageUrl: 'https://picsum.photos/1200/1601', }, { name: 'Groomsman', title: 'Groomsman', - imageUrl: '', + imageUrl: 'https://picsum.photos/1200/1602', }, { name: 'Bridesmaid', title: 'Bridesmaid', - imageUrl: '', + imageUrl: 'https://picsum.photos/1200/1603', }, { name: 'Groomsman', title: 'Groomsman', - imageUrl: '', + imageUrl: 'https://picsum.photos/1200/1604', }, { name: 'Bridesmaid', title: 'Bridesmaid', - imageUrl: '', + imageUrl: 'https://picsum.photos/1200/1605', }, { name: 'Groomsman', title: 'Groomsman', - imageUrl: '', + imageUrl: 'https://picsum.photos/1200/1606', }, { name: 'Bridesmaid', title: 'Bridesmaid', - imageUrl: '', + imageUrl: 'https://picsum.photos/200/308', }, ]; @@ -98,7 +98,7 @@ export default function PartyPage() { >

Meet our Wedding Party

Officiant

{party.name}

Our Story