diff --git a/package-lock.json b/package-lock.json index 7c52b6f..6025974 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,19 +6,19 @@ "": { "name": "beatricecox.com", "dependencies": { - "@apollo/client": "^3.9.0", + "@apollo/client": "^3.9.5", "@apollo/experimental-nextjs-app-support": "^0.8.0", "@contentful/rich-text-plain-text-renderer": "^16.0.11", "@contentful/rich-text-react-renderer": "^15.19.4", "@next/third-parties": "^14.1.0", - "@prisma/client": "^5.9.1", - "@vercel/analytics": "^1.1.3", - "@vercel/speed-insights": "^1.0.9", + "@prisma/client": "^5.10.1", + "@vercel/analytics": "^1.2.2", + "@vercel/speed-insights": "^1.0.10", "classnames": "^2.5.1", "contentful": "^10.6.21", - "framer-motion": "^11.0.3", + "framer-motion": "^11.0.5", "next": "^14.1.0", - "prisma": "^5.9.1", + "prisma": "^5.10.1", "react": "^18.2.0", "react-dom": "^18.2.0", "react-responsive-carousel": "^3.2.23", @@ -27,18 +27,18 @@ }, "devDependencies": { "@graphql-codegen/cli": "^5.0.2", - "@graphql-codegen/client-preset": "^4.2.2", - "@graphql-codegen/typescript": "^4.0.4", - "@types/node": "^20.11.13", - "@types/react": "^18.2.55", - "@types/react-dom": "^18.2.18", + "@graphql-codegen/client-preset": "^4.2.3", + "@graphql-codegen/typescript": "^4.0.5", + "@types/node": "^20.11.19", + "@types/react": "^18.2.57", + "@types/react-dom": "^18.2.19", "autoprefixer": "^10.4.17", "eslint": "^8.56.0", "eslint-config-next": "^14.1.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.29.1", - "eslint-plugin-simple-import-sort": "^10.0.0", - "postcss": "^8.4.34", + "eslint-plugin-simple-import-sort": "^12.0.0", + "postcss": "^8.4.35", "prettier": "^3.2.5", "tailwindcss": "^3.4.1", "typescript": "^5.3.3" @@ -83,9 +83,9 @@ } }, "node_modules/@apollo/client": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.9.2.tgz", - "integrity": "sha512-Zw9WvXjqhpbgkvAvnj52vstOWwM0iedKWtn1hSq1cODQyoe1CF2uFwMYFI7l56BrAY9CzLi6MQA0AhxpgJgvxw==", + "version": "3.9.5", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.9.5.tgz", + "integrity": "sha512-7y+c8MTPU+hhTwvcGVtMMGIgWduzrvG1mz5yJMRyqYbheBkkky3Lki6ADWVSBXG1lZoOtPYvB2zDgVfKb2HSsw==", "dependencies": { "@graphql-typed-document-node/core": "^3.1.1", "@wry/caches": "^1.0.0", @@ -95,7 +95,7 @@ "hoist-non-react-statics": "^3.3.2", "optimism": "^0.18.0", "prop-types": "^15.7.2", - "rehackt": "0.0.3", + "rehackt": "0.0.5", "response-iterator": "^0.2.6", "symbol-observable": "^4.0.0", "ts-invariant": "^0.10.3", @@ -1455,20 +1455,20 @@ } }, "node_modules/@graphql-codegen/client-preset": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@graphql-codegen/client-preset/-/client-preset-4.2.2.tgz", - "integrity": "sha512-DF9pNWj3TEdA90E9FH5SsUIqiZfr872vqaQOspLVuVXGsaDx8F/JLLzaN+7ucmoo0ff/bLW8munVXYXTmgwwEA==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/@graphql-codegen/client-preset/-/client-preset-4.2.3.tgz", + "integrity": "sha512-ygfIKMtjoPY4iISYfNpvuVvV2e6BYAzHnC+MfDul7kZwY1pvv0P+IhezOaTHOheoTiah1BA7USFEOE5Nzp3Gdw==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.20.2", "@babel/template": "^7.20.7", "@graphql-codegen/add": "^5.0.2", - "@graphql-codegen/gql-tag-operations": "4.0.4", + "@graphql-codegen/gql-tag-operations": "4.0.5", "@graphql-codegen/plugin-helpers": "^5.0.3", - "@graphql-codegen/typed-document-node": "^5.0.4", - "@graphql-codegen/typescript": "^4.0.4", - "@graphql-codegen/typescript-operations": "^4.1.2", - "@graphql-codegen/visitor-plugin-common": "^4.1.2", + "@graphql-codegen/typed-document-node": "^5.0.5", + "@graphql-codegen/typescript": "^4.0.5", + "@graphql-codegen/typescript-operations": "^4.1.3", + "@graphql-codegen/visitor-plugin-common": "^5.0.0", "@graphql-tools/documents": "^1.0.0", "@graphql-tools/utils": "^10.0.0", "@graphql-typed-document-node/core": "3.2.0", @@ -1494,13 +1494,13 @@ } }, "node_modules/@graphql-codegen/gql-tag-operations": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@graphql-codegen/gql-tag-operations/-/gql-tag-operations-4.0.4.tgz", - "integrity": "sha512-dypul0iDLjb07yv+/cRb6qPbn42cFPcwlsJertVl9G6qkS4+3V4806WwSfUht4QVMWnvGfgDkJJqG0yUVKOHwA==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@graphql-codegen/gql-tag-operations/-/gql-tag-operations-4.0.5.tgz", + "integrity": "sha512-FDiL1/fdP60Y10yQD+SsYoaApGLoirF4ATfi4eFklXu7GGosJzZBxni2D3+f99Qxd0iK368O3Dtbe38Z+Vd8Vg==", "dev": true, "dependencies": { "@graphql-codegen/plugin-helpers": "^5.0.3", - "@graphql-codegen/visitor-plugin-common": "4.1.2", + "@graphql-codegen/visitor-plugin-common": "5.0.0", "@graphql-tools/utils": "^10.0.0", "auto-bind": "~4.0.0", "tslib": "~2.6.0" @@ -1541,13 +1541,13 @@ } }, "node_modules/@graphql-codegen/typed-document-node": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/@graphql-codegen/typed-document-node/-/typed-document-node-5.0.4.tgz", - "integrity": "sha512-t66Z6erQ4Dh1j6f9pRZmc8uYtHoUI3A49tLmJAlg9/3IV0kCmwrWKJut/G8SeOefDLG8cXBTVtI/YuZOe1Te+w==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typed-document-node/-/typed-document-node-5.0.5.tgz", + "integrity": "sha512-1bWoHYL8673zqq/yyp3L93JKTYrDNLymvibaldWn90PASI770gJ4fzH71RhkGaJDq0F43wmQk0sjz3s/RoKsLA==", "dev": true, "dependencies": { "@graphql-codegen/plugin-helpers": "^5.0.3", - "@graphql-codegen/visitor-plugin-common": "4.1.2", + "@graphql-codegen/visitor-plugin-common": "5.0.0", "auto-bind": "~4.0.0", "change-case-all": "1.0.15", "tslib": "~2.6.0" @@ -1557,14 +1557,14 @@ } }, "node_modules/@graphql-codegen/typescript": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-4.0.4.tgz", - "integrity": "sha512-x79CKLfP9UQCX+/I78qxQlMs2Mmq3pF1lKafZo7lAno0f/fvJ+qWUduzdgjRNz+YL+5blGeWcC0pWEDxniO7hw==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript/-/typescript-4.0.5.tgz", + "integrity": "sha512-PCS6LovGhyNfnmZ2AJ8rN5wGUhysWNsFwCPrZccuwBVCCvcet8/GNKStY5cHiDqG0B5Q+6g8OXVbffhxkkytLA==", "dev": true, "dependencies": { "@graphql-codegen/plugin-helpers": "^5.0.3", "@graphql-codegen/schema-ast": "^4.0.2", - "@graphql-codegen/visitor-plugin-common": "4.1.2", + "@graphql-codegen/visitor-plugin-common": "5.0.0", "auto-bind": "~4.0.0", "tslib": "~2.6.0" }, @@ -1573,14 +1573,14 @@ } }, "node_modules/@graphql-codegen/typescript-operations": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript-operations/-/typescript-operations-4.1.2.tgz", - "integrity": "sha512-CtCWK+gW7hS+Ely3lohr8CL1HVLswQzMcaUk3k1sxdWCWKTNq7abMsWa31rTVwRCJ+WNEkM/7S8sIBTpEG683A==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/@graphql-codegen/typescript-operations/-/typescript-operations-4.1.3.tgz", + "integrity": "sha512-Goga2ISgicr/PLgK2NH5kwyQFctoGKpV+nv4Dr9II0xjHuuNvC6cqA66y/p8zKx6eS9p2GV87/IafqxV8r6K5Q==", "dev": true, "dependencies": { "@graphql-codegen/plugin-helpers": "^5.0.3", - "@graphql-codegen/typescript": "^4.0.4", - "@graphql-codegen/visitor-plugin-common": "4.1.2", + "@graphql-codegen/typescript": "^4.0.5", + "@graphql-codegen/visitor-plugin-common": "5.0.0", "auto-bind": "~4.0.0", "tslib": "~2.6.0" }, @@ -1589,9 +1589,9 @@ } }, "node_modules/@graphql-codegen/visitor-plugin-common": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-4.1.2.tgz", - "integrity": "sha512-yk7iEAL1kYZ2Gi/pvVjdsZhul5WsYEM4Zcgh2Ev15VicMdJmPHsMhNUsZWyVJV0CaQCYpNOFlGD/11Ea3pn4GA==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-5.0.0.tgz", + "integrity": "sha512-qQOZZZ2MxmBEyd0Lm3lVh7zgauLXVBsg3ToucQJHmbk2WUxLMOcaf/+BOBIkrDjvWA8L+JU6COUT6uZc57DBcw==", "dev": true, "dependencies": { "@graphql-codegen/plugin-helpers": "^5.0.3", @@ -2772,9 +2772,9 @@ } }, "node_modules/@prisma/client": { - "version": "5.9.1", - "resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.9.1.tgz", - "integrity": "sha512-caSOnG4kxcSkhqC/2ShV7rEoWwd3XrftokxJqOCMVvia4NYV/TPtJlS9C2os3Igxw/Qyxumj9GBQzcStzECvtQ==", + "version": "5.10.1", + "resolved": "https://registry.npmjs.org/@prisma/client/-/client-5.10.1.tgz", + "integrity": "sha512-4R8Vp6sSwVJSnOxw8WU1WSLqE/G3WJy1xA05XvW87cINoB1hEY7endw5Ppy6TrIBCCtHQim2lqfHkbPvv+i7bQ==", "hasInstallScript": true, "engines": { "node": ">=16.13" @@ -2789,43 +2789,43 @@ } }, "node_modules/@prisma/debug": { - "version": "5.9.1", - "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-5.9.1.tgz", - "integrity": "sha512-yAHFSFCg8KVoL0oRUno3m60GAjsUKYUDkQ+9BA2X2JfVR3kRVSJFc/GpQ2fSORi4pSHZR9orfM4UC9OVXIFFTA==" + "version": "5.10.1", + "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-5.10.1.tgz", + "integrity": "sha512-Ipo9y/lCMzedXMtEBe4YCdvVVivSy6MdG7aYTM15t86g4CRzwdlEsw8Czxnw20w9Qgzdx0MX2iLsCCIG4JoHbA==" }, "node_modules/@prisma/engines": { - "version": "5.9.1", - "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-5.9.1.tgz", - "integrity": "sha512-gkdXmjxQ5jktxWNdDA5aZZ6R8rH74JkoKq6LD5mACSvxd2vbqWeWIOV0Py5wFC8vofOYShbt6XUeCIUmrOzOnQ==", + "version": "5.10.1", + "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-5.10.1.tgz", + "integrity": "sha512-75oJa900Pw+GAXjPJmKZqsD7bgSgQbpeGLxCwchrbgPIM70y3h0FbjIsiSAjuhwIGUCCNWzctUNv67rvSmoQAQ==", "hasInstallScript": true, "dependencies": { - "@prisma/debug": "5.9.1", - "@prisma/engines-version": "5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64", - "@prisma/fetch-engine": "5.9.1", - "@prisma/get-platform": "5.9.1" + "@prisma/debug": "5.10.1", + "@prisma/engines-version": "5.10.0-34.5a9203d0590c951969e85a7d07215503f4672eb9", + "@prisma/fetch-engine": "5.10.1", + "@prisma/get-platform": "5.10.1" } }, "node_modules/@prisma/engines-version": { - "version": "5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64", - "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64.tgz", - "integrity": "sha512-HFl7275yF0FWbdcNvcSRbbu9JCBSLMcurYwvWc8WGDnpu7APxQo2ONtZrUggU3WxLxUJ2uBX+0GOFIcJeVeOOQ==" + "version": "5.10.0-34.5a9203d0590c951969e85a7d07215503f4672eb9", + "resolved": "https://registry.npmjs.org/@prisma/engines-version/-/engines-version-5.10.0-34.5a9203d0590c951969e85a7d07215503f4672eb9.tgz", + "integrity": "sha512-uCy/++3Jx/O3ufM+qv2H1L4tOemTNqcP/gyEVOlZqTpBvYJUe0tWtW0y3o2Ueq04mll4aM5X3f6ugQftOSLdFQ==" }, "node_modules/@prisma/fetch-engine": { - "version": "5.9.1", - "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-5.9.1.tgz", - "integrity": "sha512-l0goQOMcNVOJs1kAcwqpKq3ylvkD9F04Ioe1oJoCqmz05mw22bNAKKGWuDd3zTUoUZr97va0c/UfLNru+PDmNA==", + "version": "5.10.1", + "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-5.10.1.tgz", + "integrity": "sha512-xg3I3RM/qENykZNGBna+14gBkkZL2TVkyX3OX2GWI8MV23Meq5jYdqvlgBrZne25ZxiulctSEA2D6Y5fq1eLog==", "dependencies": { - "@prisma/debug": "5.9.1", - "@prisma/engines-version": "5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64", - "@prisma/get-platform": "5.9.1" + "@prisma/debug": "5.10.1", + "@prisma/engines-version": "5.10.0-34.5a9203d0590c951969e85a7d07215503f4672eb9", + "@prisma/get-platform": "5.10.1" } }, "node_modules/@prisma/get-platform": { - "version": "5.9.1", - "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-5.9.1.tgz", - "integrity": "sha512-6OQsNxTyhvG+T2Ksr8FPFpuPeL4r9u0JF0OZHUBI/Uy9SS43sPyAIutt4ZEAyqWQt104ERh70EZedkHZKsnNbg==", + "version": "5.10.1", + "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-5.10.1.tgz", + "integrity": "sha512-0rE8lSE3y+Ua3LaOcXlWADz21+kGkf9NWmGNuh8n9I6uaCq90LQxM002l4NSYg6ELtiJXyDgJ4nRhM0x0OXjDQ==", "dependencies": { - "@prisma/debug": "5.9.1" + "@prisma/debug": "5.10.1" } }, "node_modules/@repeaterjs/repeater": { @@ -2867,9 +2867,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.11.16", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.16.tgz", - "integrity": "sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==", + "version": "20.11.19", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.19.tgz", + "integrity": "sha512-7xMnVEcZFu0DikYjWOlRq7NTPETrm7teqUT2WkQjrTIkEgUyyGdWsj/Zg8bEJt5TNklzbPD1X3fqfsHw3SpapQ==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -2882,9 +2882,9 @@ "devOptional": true }, "node_modules/@types/react": { - "version": "18.2.55", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.55.tgz", - "integrity": "sha512-Y2Tz5P4yz23brwm2d7jNon39qoAtMMmalOQv6+fEFt1mT+FcM3D841wDpoUvFXhaYenuROCy3FZYqdTjM7qVyA==", + "version": "18.2.57", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.57.tgz", + "integrity": "sha512-ZvQsktJgSYrQiMirAN60y4O/LRevIV8hUzSOSNB6gfR3/o3wCBFQx3sPwIYtuDMeiVgsSS3UzCV26tEzgnfvQw==", "devOptional": true, "dependencies": { "@types/prop-types": "*", @@ -2893,9 +2893,9 @@ } }, "node_modules/@types/react-dom": { - "version": "18.2.18", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.18.tgz", - "integrity": "sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==", + "version": "18.2.19", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.19.tgz", + "integrity": "sha512-aZvQL6uUbIJpjZk4U8JZGbau9KDeAwMfmhyWorxgBkqDIEf6ROjRozcmPIicqsUwPUjbkDfHKgGee1Lq65APcA==", "dev": true, "dependencies": { "@types/react": "*" @@ -3083,17 +3083,29 @@ "dev": true }, "node_modules/@vercel/analytics": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@vercel/analytics/-/analytics-1.1.3.tgz", - "integrity": "sha512-Z0l0y8TnUnnxr+on7oIMB9qQOoSJIniYMzUng6+NU8VVDkZ+kt2QGD5hzODwsuiRJAsjW528iUEtbWCEGkSCCg==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@vercel/analytics/-/analytics-1.2.2.tgz", + "integrity": "sha512-X0rctVWkQV1e5Y300ehVNqpOfSOufo7ieA5PIdna8yX/U7Vjz0GFsGf4qvAhxV02uQ2CVt7GYcrFfddXXK2Y4A==", "dependencies": { "server-only": "^0.0.1" + }, + "peerDependencies": { + "next": ">= 13", + "react": "^18 || ^19" + }, + "peerDependenciesMeta": { + "next": { + "optional": true + }, + "react": { + "optional": true + } } }, "node_modules/@vercel/speed-insights": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@vercel/speed-insights/-/speed-insights-1.0.9.tgz", - "integrity": "sha512-f+XFP0O+aZ4Olj9h+BitkB1b4NJQaxtyCb69wWuDxytJHY6Pa4QtZPdBUftHOcajUCHRVeq062fk3MKXKtjNVQ==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/@vercel/speed-insights/-/speed-insights-1.0.10.tgz", + "integrity": "sha512-4uzdKB0RW6Ff2FkzshzjZ+RlJfLPxgm/00i0XXgxfMPhwnnsk92YgtqsxT9OcPLdJUyVU1DqFlSWWjIQMPkh0g==", "hasInstallScript": true, "peerDependencies": { "@sveltejs/kit": "^1 || ^2", @@ -5032,9 +5044,9 @@ } }, "node_modules/eslint-plugin-simple-import-sort": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-10.0.0.tgz", - "integrity": "sha512-AeTvO9UCMSNzIHRkg8S6c3RPy5YEwKWSQPx3DYghLedo2ZQxowPFLGDN1AZ2evfg6r6mjBSZSLxLFsWSu3acsw==", + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-12.0.0.tgz", + "integrity": "sha512-8o0dVEdAkYap0Cn5kNeklaKcT1nUsa3LITWEuFk3nJifOoD+5JQGoyDUW2W/iPWwBsNBJpyJS9y4je/BgxLcyQ==", "dev": true, "peerDependencies": { "eslint": ">=5.0.0" @@ -5461,9 +5473,9 @@ } }, "node_modules/framer-motion": { - "version": "11.0.3", - "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.0.3.tgz", - "integrity": "sha512-6x2poQpIWBdbZwLd73w6cKZ1I9IEPIU94C6/Swp1Zt3LJ+sB5bPe1E2wC6EH5hSISXNkMJ4afH7AdwS7MrtkWw==", + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-11.0.5.tgz", + "integrity": "sha512-Lb0EYbQcSK/pgyQUJm+KzsQrKrJRX9sFRyzl9hSr9gFG4Mk8yP7BjhuxvRXzblOM/+JxycrJdCDVmOQBsjpYlw==", "dependencies": { "tslib": "^2.4.0" }, @@ -7721,9 +7733,9 @@ } }, "node_modules/postcss": { - "version": "8.4.34", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.34.tgz", - "integrity": "sha512-4eLTO36woPSocqZ1zIrFD2K1v6wH7pY1uBh0JIM2KKfrVtGvPFiAku6aNOP0W1Wr9qwnaCsF0Z+CrVnryB2A8Q==", + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", "dev": true, "funding": [ { @@ -7891,12 +7903,12 @@ } }, "node_modules/prisma": { - "version": "5.9.1", - "resolved": "https://registry.npmjs.org/prisma/-/prisma-5.9.1.tgz", - "integrity": "sha512-Hy/8KJZz0ELtkw4FnG9MS9rNWlXcJhf98Z2QMqi0QiVMoS8PzsBkpla0/Y5hTlob8F3HeECYphBjqmBxrluUrQ==", + "version": "5.10.1", + "resolved": "https://registry.npmjs.org/prisma/-/prisma-5.10.1.tgz", + "integrity": "sha512-2VLQ8dMXZGd5qS6XIDyAzK2W4xdPJDt/E3IBcjByn64Fnp33llqq/HBxx0EroZO7ezKiw1gS3BOrkpyzPfeFhA==", "hasInstallScript": true, "dependencies": { - "@prisma/engines": "5.9.1" + "@prisma/engines": "5.10.1" }, "bin": { "prisma": "build/index.js" @@ -8116,9 +8128,9 @@ } }, "node_modules/rehackt": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/rehackt/-/rehackt-0.0.3.tgz", - "integrity": "sha512-aBRHudKhOWwsTvCbSoinzq+Lej/7R8e8UoPvLZo5HirZIIBLGAgdG7SL9QpdcBoQ7+3QYPi3lRLknAzXBlhZ7g==", + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/rehackt/-/rehackt-0.0.5.tgz", + "integrity": "sha512-BI1rV+miEkaHj8zd2n+gaMgzu/fKz7BGlb4zZ6HAiY9adDmJMkaDcmuXlJFv0eyKUob+oszs3/2gdnXUrzx2Tg==", "peerDependencies": { "@types/react": "*", "react": "*" diff --git a/package.json b/package.json index e6eb686..47162d6 100644 --- a/package.json +++ b/package.json @@ -20,19 +20,19 @@ "node": ">=20.0.0" }, "dependencies": { - "@apollo/client": "^3.9.0", + "@apollo/client": "^3.9.5", "@apollo/experimental-nextjs-app-support": "^0.8.0", "@contentful/rich-text-plain-text-renderer": "^16.0.11", "@contentful/rich-text-react-renderer": "^15.19.4", "@next/third-parties": "^14.1.0", - "@prisma/client": "^5.9.1", - "@vercel/analytics": "^1.1.3", - "@vercel/speed-insights": "^1.0.9", + "@prisma/client": "^5.10.1", + "@vercel/analytics": "^1.2.2", + "@vercel/speed-insights": "^1.0.10", "classnames": "^2.5.1", "contentful": "^10.6.21", - "framer-motion": "^11.0.3", + "framer-motion": "^11.0.5", "next": "^14.1.0", - "prisma": "^5.9.1", + "prisma": "^5.10.1", "react": "^18.2.0", "react-dom": "^18.2.0", "react-responsive-carousel": "^3.2.23", @@ -41,18 +41,18 @@ }, "devDependencies": { "@graphql-codegen/cli": "^5.0.2", - "@graphql-codegen/client-preset": "^4.2.2", - "@graphql-codegen/typescript": "^4.0.4", - "@types/node": "^20.11.13", - "@types/react": "^18.2.55", - "@types/react-dom": "^18.2.18", + "@graphql-codegen/client-preset": "^4.2.3", + "@graphql-codegen/typescript": "^4.0.5", + "@types/node": "^20.11.19", + "@types/react": "^18.2.57", + "@types/react-dom": "^18.2.19", "autoprefixer": "^10.4.17", "eslint": "^8.56.0", "eslint-config-next": "^14.1.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.29.1", - "eslint-plugin-simple-import-sort": "^10.0.0", - "postcss": "^8.4.34", + "eslint-plugin-simple-import-sort": "^12.0.0", + "postcss": "^8.4.35", "prettier": "^3.2.5", "tailwindcss": "^3.4.1", "typescript": "^5.3.3" diff --git a/src/app/projects/[slug]/page.tsx b/src/app/projects/[slug]/page.tsx index 28fde95..8742a45 100644 --- a/src/app/projects/[slug]/page.tsx +++ b/src/app/projects/[slug]/page.tsx @@ -13,13 +13,15 @@ interface ProjectPageProps { slug: string; }; } - +export const dynamicParams = true; export async function generateStaticParams() { const { projects } = await getProjects({ isPreview: false }); - return projects.map((project) => ({ - slug: project.slug, - })); + return projects + .filter(({ isPasswordProtected }) => !isPasswordProtected) + .map((project) => ({ + slug: project.slug, + })); } export async function generateMetadata({ @@ -86,14 +88,14 @@ export default async function ProjectPage({ return notFound(); } - if (project.isPasswordProtected) { - const cookie = cookies().get(reveleadProjectCookie(slug)); - const isValidCookie = validateSignedCookie({ - signedCookie: cookie?.value || "", - secretKey: process.env.PROJECT_PASSWORD_COOKIE_SECRET as string, - }); + const cookie = cookies().get(reveleadProjectCookie(slug)); + const isValidCookie = validateSignedCookie({ + signedCookie: cookie?.value || "", + secretKey: process.env.PROJECT_PASSWORD_COOKIE_SECRET as string, + }); - if (!isValidCookie) return redirect(`/projects/${project.slug}/password`); + if (project.isPasswordProtected && !isValidCookie) { + return redirect(`/projects/${project.slug}/password`); } return ; diff --git a/src/graphql/queries/get-projects-list.ts b/src/graphql/queries/get-projects-list.ts index e9766c7..7afd88d 100644 --- a/src/graphql/queries/get-projects-list.ts +++ b/src/graphql/queries/get-projects-list.ts @@ -21,6 +21,7 @@ interface ProjectQueryResposne { | "categoryText" | "thumbnailImage" | "order" + | "isPasswordProtected" > >; }; @@ -37,6 +38,7 @@ interface GetProjectResponse { | "categoryText" | "thumbnailImage" | "order" + | "isPasswordProtected" > >; } @@ -51,6 +53,7 @@ const GET_PROJECTS_QUERY = gql` categoryText category order + isPasswordProtected thumbnailImage { title description