diff --git a/.nvmrc b/.nvmrc index 5edcff036..0828ab794 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v16 \ No newline at end of file +v18 \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 79602f796..42f8a1069 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM node:18.18-alpine3.18 +FROM node:20.9.0-alpine3.18 RUN npm install -g pnpm diff --git a/next.config.js b/next.config.js index 548eae68c..9c7db4804 100644 --- a/next.config.js +++ b/next.config.js @@ -1,14 +1,37 @@ -// const { fetchZestyRedirects } = require('./src/lib/zesty/fetchRedirects'); const zestyConfig = require('./zesty.config.json'); +const advancedHeaders = [ + { + key: 'X-DNS-Prefetch-Control', + value: 'on', + }, + { + key: 'Strict-Transport-Security', + value: 'max-age=63072000; includeSubDomains; preload', + }, + { + key: 'X-XSS-Protection', + value: '1; mode=block', + }, + { + key: 'X-Frame-Options', + value: 'SAMEORIGIN', + }, + { + key: 'X-Content-Type-Options', + value: 'nosniff', + }, + { + key: 'Referrer-Policy', + value: 'origin-when-cross-origin', + }, +]; module.exports = { trailingSlash: true, + reactStrictMode: true, env: { zesty: zestyConfig, }, - eslint: { - ignoreDuringBuilds: true, - }, images: { domains: [ 'be93523bd41e2e475e74-e4edef19ad51123442eaceed55c78461.ssl.cf2.rackcdn.com', @@ -17,4 +40,13 @@ module.exports = { ], }, swcMinify: true, + poweredByHeader: false, + async headers() { + return [ + { + source: '/:path*', + headers: advancedHeaders, + }, + ]; + }, }; diff --git a/package-lock.json b/package-lock.json index 99fc617c1..8fa6c6870 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,18 +30,14 @@ "axios": "^1.5.1", "cookies-next": "^4.0.0", "dayjs": "^1.11.10", - "eslint-plugin-unused-imports": "^3.0.0", "file-saver": "^2.0.5", "formik": "^2.4.5", - "himalaya": "^1.1.0", "jarallax": "^2.1.4", "markdown-it": "^13.0.2", "markdown-to-jsx": "^7.3.2", "material-ui-phone-number": "^3.0.0", - "next": "^13.5.6", - "node-fetch": "^3.3.2", + "next": "^14.0.1", "notistack": "^3.0.1", - "preact": "^10.18.1", "prop-types": "^15.8.1", "react": "^18.2.0", "react-confetti": "^6.1.0", @@ -68,13 +64,13 @@ "sweetalert2": "^11.7.31", "sweetalert2-react-content": "^5.0.7", "swiper": "^8.3.2", - "tape-async": "^2.3.0", "yup": "^1.3.2", "zustand": "^4.4.2" }, "devDependencies": { "@commitlint/cli": "^17.7.2", "@commitlint/config-conventional": "^17.7.0", + "@next/bundle-analyzer": "^14.0.1", "@testing-library/jest-dom": "^6.1.3", "@testing-library/react": "^14.0.0", "@typescript-eslint/eslint-plugin": "^6.7.4", @@ -91,6 +87,7 @@ "eslint-plugin-cypress": "^2.15.1", "eslint-plugin-import": "^2.28.1", "eslint-plugin-react": "^7.33.2", + "eslint-plugin-unused-imports": "^3.0.0", "husky": "^8.0.3", "isomorphic-fetch": "^3.0.0", "jest": "^29.7.0", @@ -101,10 +98,11 @@ "prettier-eslint-cli": "^7.1.0", "rimraf": "^5.0.5", "start-server-and-test": "^2.0.1", + "tape-async": "^2.3.0", "typescript": "^5.2.2" }, "engines": { - "node": ">=16" + "node": ">=18.18.0" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -478,85 +476,6 @@ "semver": "bin/semver.js" } }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz", - "integrity": "sha512-jKkwA59IXcvSaiK2UN45kKwSC9o+KuoXsBDvHvU/7BecYIp8GQ2UwrVvFgJASUT+hBnwJx6MhvMCuMzwZZ7jlg==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.15", - "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", - "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.22.5", - "regexpu-core": "^5.3.1", - "semver": "^6.3.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.3.tgz", - "integrity": "sha512-WBrLmuPP47n7PNwsZ57pqam6G/RGo1vw/87b0Blc53tZNGZ4x7YvZ6HgQe2vo1W/FR20OgjeZuGXzudPiXHFug==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.22.6", - "@babel/helper-plugin-utils": "^7.22.5", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, "node_modules/@babel/helper-environment-visitor": { "version": "7.22.20", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", @@ -1793,6 +1712,7 @@ "version": "13.23.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, "dependencies": { "type-fest": "^0.20.2" }, @@ -1825,6 +1745,7 @@ "version": "8.51.0", "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.51.0.tgz", "integrity": "sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==", + "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } @@ -2996,6 +2917,7 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/@ljharb/resumer/-/resumer-0.0.1.tgz", "integrity": "sha512-skQiAOrCfO7vRTq53cxznMpks7wS1va95UCidALlOVWqvBAzwPVErwizDwoMqNVMEn1mDq0utxZd02eIrvF1lw==", + "dev": true, "dependencies": { "@ljharb/through": "^2.3.9" }, @@ -3007,6 +2929,7 @@ "version": "2.3.10", "resolved": "https://registry.npmjs.org/@ljharb/through/-/through-2.3.10.tgz", "integrity": "sha512-NwkQ4+jf4tMpDSlRc1wlttHnC7KfII+SjdqDEwEuQ7W0IaTK5Ab1jxCJrH6pYsLbLXiQgRn+nFQsGmKowbAKkA==", + "dev": true, "engines": { "node": ">= 0.4" } @@ -3551,15 +3474,24 @@ "node": ">=6" } }, + "node_modules/@next/bundle-analyzer": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@next/bundle-analyzer/-/bundle-analyzer-14.0.1.tgz", + "integrity": "sha512-AbZZnj4gZ1ZQFppZxAC9e8+skj0rFiSvY6E6Ut+ydS1r6oizR7PMu/7o02psIm4ekAsmp2O1Eq8IowHQgPWPCQ==", + "dev": true, + "dependencies": { + "webpack-bundle-analyzer": "4.7.0" + } + }, "node_modules/@next/env": { - "version": "13.5.6", - "resolved": "https://registry.npmjs.org/@next/env/-/env-13.5.6.tgz", - "integrity": "sha512-Yac/bV5sBGkkEXmAX5FWPS9Mmo2rthrOPRQQNfycJPkjUAUclomCPH7QFVCDQ4Mp2k2K1SSM6m0zrxYrOwtFQw==" + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.0.1.tgz", + "integrity": "sha512-Ms8ZswqY65/YfcjrlcIwMPD7Rg/dVjdLapMcSHG26W6O67EJDF435ShW4H4LXi1xKO1oRc97tLXUpx8jpLe86A==" }, "node_modules/@next/swc-darwin-arm64": { - "version": "13.5.6", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.5.6.tgz", - "integrity": "sha512-5nvXMzKtZfvcu4BhtV0KH1oGv4XEW+B+jOfmBdpFI3C7FrB/MfujRpWYSBBO64+qbW8pkZiSyQv9eiwnn5VIQA==", + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.0.1.tgz", + "integrity": "sha512-JyxnGCS4qT67hdOKQ0CkgFTp+PXub5W1wsGvIq98TNbF3YEIN7iDekYhYsZzc8Ov0pWEsghQt+tANdidITCLaw==", "cpu": [ "arm64" ], @@ -3572,9 +3504,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "13.5.6", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.5.6.tgz", - "integrity": "sha512-6cgBfxg98oOCSr4BckWjLLgiVwlL3vlLj8hXg2b+nDgm4bC/qVXXLfpLB9FHdoDu4057hzywbxKvmYGmi7yUzA==", + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.0.1.tgz", + "integrity": "sha512-625Z7bb5AyIzswF9hvfZWa+HTwFZw+Jn3lOBNZB87lUS0iuCYDHqk3ujuHCkiyPtSC0xFBtYDLcrZ11mF/ap3w==", "cpu": [ "x64" ], @@ -3587,9 +3519,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "13.5.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.5.6.tgz", - "integrity": "sha512-txagBbj1e1w47YQjcKgSU4rRVQ7uF29YpnlHV5xuVUsgCUf2FmyfJ3CPjZUvpIeXCJAoMCFAoGnbtX86BK7+sg==", + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.0.1.tgz", + "integrity": "sha512-iVpn3KG3DprFXzVHM09kvb//4CNNXBQ9NB/pTm8LO+vnnnaObnzFdS5KM+w1okwa32xH0g8EvZIhoB3fI3mS1g==", "cpu": [ "arm64" ], @@ -3602,9 +3534,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "13.5.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.5.6.tgz", - "integrity": "sha512-cGd+H8amifT86ZldVJtAKDxUqeFyLWW+v2NlBULnLAdWsiuuN8TuhVBt8ZNpCqcAuoruoSWynvMWixTFcroq+Q==", + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.0.1.tgz", + "integrity": "sha512-mVsGyMxTLWZXyD5sen6kGOTYVOO67lZjLApIj/JsTEEohDDt1im2nkspzfV5MvhfS7diDw6Rp/xvAQaWZTv1Ww==", "cpu": [ "arm64" ], @@ -3617,9 +3549,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "13.5.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.5.6.tgz", - "integrity": "sha512-Mc2b4xiIWKXIhBy2NBTwOxGD3nHLmq4keFk+d4/WL5fMsB8XdJRdtUlL87SqVCTSaf1BRuQQf1HvXZcy+rq3Nw==", + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.0.1.tgz", + "integrity": "sha512-wMqf90uDWN001NqCM/auRl3+qVVeKfjJdT9XW+RMIOf+rhUzadmYJu++tp2y+hUbb6GTRhT+VjQzcgg/QTD9NQ==", "cpu": [ "x64" ], @@ -3632,9 +3564,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "13.5.6", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.5.6.tgz", - "integrity": "sha512-CFHvP9Qz98NruJiUnCe61O6GveKKHpJLloXbDSWRhqhkJdZD2zU5hG+gtVJR//tyW897izuHpM6Gtf6+sNgJPQ==", + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.0.1.tgz", + "integrity": "sha512-ol1X1e24w4j4QwdeNjfX0f+Nza25n+ymY0T2frTyalVczUmzkVD7QGgPTZMHfR1aLrO69hBs0G3QBYaj22J5GQ==", "cpu": [ "x64" ], @@ -3647,9 +3579,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "13.5.6", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.5.6.tgz", - "integrity": "sha512-aFv1ejfkbS7PUa1qVPwzDHjQWQtknzAZWGTKYIAaS4NMtBlk3VyA6AYn593pqNanlicewqyl2jUhQAaFV/qXsg==", + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.0.1.tgz", + "integrity": "sha512-WEmTEeWs6yRUEnUlahTgvZteh5RJc4sEjCQIodJlZZ5/VJwVP8p2L7l6VhzQhT4h7KvLx/Ed4UViBdne6zpIsw==", "cpu": [ "arm64" ], @@ -3662,9 +3594,9 @@ } }, "node_modules/@next/swc-win32-ia32-msvc": { - "version": "13.5.6", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.5.6.tgz", - "integrity": "sha512-XqqpHgEIlBHvzwG8sp/JXMFkLAfGLqkbVsyN+/Ih1mR8INb6YCc2x/Mbwi6hsAgUnqQztz8cvEbHJUbSl7RHDg==", + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.0.1.tgz", + "integrity": "sha512-oFpHphN4ygAgZUKjzga7SoH2VGbEJXZa/KL8bHCAwCjDWle6R1SpiGOdUdA8EJ9YsG1TYWpzY6FTbUA+iAJeww==", "cpu": [ "ia32" ], @@ -3677,9 +3609,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "13.5.6", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.5.6.tgz", - "integrity": "sha512-Cqfe1YmOS7k+5mGu92nl5ULkzpKuxJrP3+4AEuPmrpFZ3BHxTY3TnHmU1On3bFmFFs6FbTcdF58CCUProGpIGQ==", + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.0.1.tgz", + "integrity": "sha512-FFp3nOJ/5qSpeWT0BZQ+YE1pSMk4IMpkME/1DwKBwhg4mJLB9L+6EXuJi4JEwaJdl5iN+UUlmUD3IsR1kx5fAg==", "cpu": [ "x64" ], @@ -3736,6 +3668,12 @@ "node": ">=14" } }, + "node_modules/@polka/url": { + "version": "1.0.0-next.23", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.23.tgz", + "integrity": "sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==", + "dev": true + }, "node_modules/@popperjs/core": { "version": "2.11.8", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", @@ -4487,6 +4425,13 @@ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz", "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==" }, + "node_modules/@types/stylis": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.2.tgz", + "integrity": "sha512-Rm17MsTpQQP5Jq4BF7CdrxJsDufoiL/q5IbJZYZmOZAJALyijgF7BzLgobXUqraNcQdqFYLYGeglDp6QzaxPpg==", + "dev": true, + "peer": true + }, "node_modules/@types/tough-cookie": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.3.tgz", @@ -4523,7 +4468,7 @@ "version": "6.7.5", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.7.5.tgz", "integrity": "sha512-JhtAwTRhOUcP96D0Y6KYnwig/MRQbOoLGXTON2+LlyB/N35SP9j1boai2zzwXb7ypKELXMx3DVk9UTaEq1vHEw==", - "devOptional": true, + "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", "@typescript-eslint/scope-manager": "6.7.5", @@ -4558,7 +4503,7 @@ "version": "6.7.5", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.7.5.tgz", "integrity": "sha512-bIZVSGx2UME/lmhLcjdVc7ePBwn7CLqKarUBL4me1C5feOd663liTGjMBGVcGr+BhnSLeP4SgwdvNnnkbIdkCw==", - "devOptional": true, + "dev": true, "dependencies": { "@typescript-eslint/scope-manager": "6.7.5", "@typescript-eslint/types": "6.7.5", @@ -4586,7 +4531,7 @@ "version": "6.7.5", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.7.5.tgz", "integrity": "sha512-GAlk3eQIwWOJeb9F7MKQ6Jbah/vx1zETSDw8likab/eFcqkjSD7BI75SDAeC5N2L0MmConMoPvTsmkrg71+B1A==", - "devOptional": true, + "dev": true, "dependencies": { "@typescript-eslint/types": "6.7.5", "@typescript-eslint/visitor-keys": "6.7.5" @@ -4603,7 +4548,7 @@ "version": "6.7.5", "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.7.5.tgz", "integrity": "sha512-Gs0qos5wqxnQrvpYv+pf3XfcRXW6jiAn9zE/K+DlmYf6FcpxeNYN0AIETaPR7rHO4K2UY+D0CIbDP9Ut0U4m1g==", - "devOptional": true, + "dev": true, "dependencies": { "@typescript-eslint/typescript-estree": "6.7.5", "@typescript-eslint/utils": "6.7.5", @@ -4630,7 +4575,7 @@ "version": "6.7.5", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.7.5.tgz", "integrity": "sha512-WboQBlOXtdj1tDFPyIthpKrUb+kZf2VroLZhxKa/VlwLlLyqv/PwUNgL30BlTVZV1Wu4Asu2mMYPqarSO4L5ZQ==", - "devOptional": true, + "dev": true, "engines": { "node": "^16.0.0 || >=18.0.0" }, @@ -4643,7 +4588,7 @@ "version": "6.7.5", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.7.5.tgz", "integrity": "sha512-NhJiJ4KdtwBIxrKl0BqG1Ur+uw7FiOnOThcYx9DpOGJ/Abc9z2xNzLeirCG02Ig3vkvrc2qFLmYSSsaITbKjlg==", - "devOptional": true, + "dev": true, "dependencies": { "@typescript-eslint/types": "6.7.5", "@typescript-eslint/visitor-keys": "6.7.5", @@ -4670,7 +4615,7 @@ "version": "6.7.5", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.7.5.tgz", "integrity": "sha512-pfRRrH20thJbzPPlPc4j0UNGvH1PjPlhlCMq4Yx7EGjV7lvEeGX0U6MJYe8+SyFutWgSHsdbJ3BXzZccYggezA==", - "devOptional": true, + "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", "@types/json-schema": "^7.0.12", @@ -4695,7 +4640,7 @@ "version": "6.7.5", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.7.5.tgz", "integrity": "sha512-3MaWdDZtLlsexZzDSdQWsFQ9l9nL8B80Z4fImSpyllFC/KLqWQRdEcB+gGGO+N3Q2uL40EsG66wZLsohPxNXvg==", - "devOptional": true, + "dev": true, "dependencies": { "@typescript-eslint/types": "6.7.5", "eslint-visitor-keys": "^3.4.1" @@ -5536,6 +5481,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "is-array-buffer": "^3.0.1" @@ -5650,6 +5596,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.0", "call-bind": "^1.0.2", @@ -5757,6 +5704,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, "engines": { "node": ">= 0.4" }, @@ -5923,58 +5871,6 @@ "node": ">=10" } }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.6.tgz", - "integrity": "sha512-jhHiWVZIlnPbEUKSSNb9YoWcQGdlTLq7z1GHL4AjFxaoOUMuuEVJ+Y4pAaQUGOGk93YsVCKPbqbfw3m0SM6H8Q==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/compat-data": "^7.22.6", - "@babel/helper-define-polyfill-provider": "^0.4.3", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "peer": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.5.tgz", - "integrity": "sha512-Q6CdATeAvbScWPNLB8lzSO7fgUVBkQt6zLgNlfyeCr/EQaEQR+bWiBYYPYAFyE528BMjRhL+1QBMOI4jc/c5TA==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3", - "core-js-compat": "^3.32.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.3.tgz", - "integrity": "sha512-8sHeDOmXC8csczMrYEOf0UTNa4yE2SxV5JGeT/LP1n0OYVDUUFPxG9vdk2AlDlIit4t+Kf0xCtpgXPBwnn/9pw==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.4.3" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, "node_modules/babel-plugin-styled-components": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.4.tgz", @@ -6389,6 +6285,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/camelize": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", + "dev": true, + "peer": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001547", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001547.tgz", @@ -6635,6 +6541,7 @@ "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "dev": true, "engines": { "iojs": ">= 1.0.0", "node": ">= 0.12.0" @@ -7120,6 +7027,38 @@ "node": "*" } }, + "node_modules/css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-to-react-native": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", + "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", + "dev": true, + "peer": true, + "dependencies": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, + "node_modules/css-vendor": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.8.tgz", + "integrity": "sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.8.3", + "is-in-browser": "^1.0.2" + } + }, "node_modules/css.escape": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", @@ -7487,14 +7426,6 @@ "node": ">=0.10" } }, - "node_modules/data-uri-to-buffer": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", - "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", - "engines": { - "node": ">= 12" - } - }, "node_modules/data-urls": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", @@ -7614,6 +7545,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dev": true, "dependencies": { "is-arguments": "^1.0.4", "is-date-object": "^1.0.1", @@ -7656,6 +7588,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.0.tgz", "integrity": "sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g==", + "dev": true, "dependencies": { "get-intrinsic": "^1.2.1", "gopd": "^1.0.1", @@ -7669,6 +7602,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, "dependencies": { "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", @@ -7685,6 +7619,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", + "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -7874,6 +7809,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz", "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", + "dev": true, "dependencies": { "minimatch": "^3.0.4" }, @@ -8147,6 +8083,7 @@ "version": "1.22.2", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", + "dev": true, "dependencies": { "array-buffer-byte-length": "^1.0.0", "arraybuffer.prototype.slice": "^1.0.2", @@ -8241,6 +8178,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, "dependencies": { "get-intrinsic": "^1.1.3", "has": "^1.0.3", @@ -8263,6 +8201,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, "dependencies": { "is-callable": "^1.1.4", "is-date-object": "^1.0.1", @@ -8328,6 +8267,7 @@ "version": "8.51.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.51.0.tgz", "integrity": "sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==", + "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -8619,6 +8559,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-3.0.0.tgz", "integrity": "sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw==", + "dev": true, "dependencies": { "eslint-rule-composer": "^0.3.0" }, @@ -8639,6 +8580,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz", "integrity": "sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==", + "dev": true, "engines": { "node": ">=4.0.0" } @@ -8691,6 +8633,7 @@ "version": "13.23.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, "dependencies": { "type-fest": "^0.20.2" }, @@ -9081,28 +9024,6 @@ "pend": "~1.2.0" } }, - "node_modules/fetch-blob": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", - "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "paypal", - "url": "https://paypal.me/jimmywarting" - } - ], - "dependencies": { - "node-domexception": "^1.0.0", - "web-streams-polyfill": "^3.0.3" - }, - "engines": { - "node": "^12.20 || >= 14.13" - } - }, "node_modules/figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -9218,6 +9139,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", + "dev": true, "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.3", @@ -9271,6 +9193,7 @@ "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, "dependencies": { "is-callable": "^1.1.3" } @@ -9332,17 +9255,6 @@ "node": ">=0.4.x" } }, - "node_modules/formdata-polyfill": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", - "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", - "dependencies": { - "fetch-blob": "^3.1.2" - }, - "engines": { - "node": ">=12.20.0" - } - }, "node_modules/formik": { "version": "2.4.5", "resolved": "https://registry.npmjs.org/formik/-/formik-2.4.5.tgz", @@ -9456,6 +9368,7 @@ "version": "1.1.6", "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -9473,6 +9386,7 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -9545,6 +9459,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.1" @@ -9711,6 +9626,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, "dependencies": { "define-properties": "^1.1.3" }, @@ -9753,6 +9669,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, "dependencies": { "get-intrinsic": "^1.1.3" }, @@ -9771,6 +9688,21 @@ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dev": true, + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/hard-rejection": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", @@ -9813,6 +9745,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -9850,6 +9783,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, "dependencies": { "get-intrinsic": "^1.1.1" }, @@ -9883,6 +9817,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, "dependencies": { "has-symbols": "^1.0.2" }, @@ -9992,11 +9927,6 @@ "node": "*" } }, - "node_modules/himalaya": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/himalaya/-/himalaya-1.1.0.tgz", - "integrity": "sha512-LLase1dHCRMel68/HZTFft0N0wti0epHr3nNY7ynpLbyZpmrKMQ8YIpiOV77TM97cNpC8Wb2n6f66IRggwdWPw==" - }, "node_modules/hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", @@ -10214,6 +10144,12 @@ "url": "https://github.com/sponsors/typicode" } }, + "node_modules/hyphenate-style-name": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz", + "integrity": "sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ==", + "peer": true + }, "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -10388,6 +10324,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, "dependencies": { "get-intrinsic": "^1.2.0", "has": "^1.0.3", @@ -10423,6 +10360,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -10438,6 +10376,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.0", @@ -10471,6 +10410,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, "dependencies": { "has-bigints": "^1.0.1" }, @@ -10482,6 +10422,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -10519,6 +10460,7 @@ "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, "engines": { "node": ">= 0.4" }, @@ -10552,6 +10494,7 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -10609,7 +10552,8 @@ "node_modules/is-generator": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-generator/-/is-generator-1.0.3.tgz", - "integrity": "sha512-G56jBpbJeg7ds83HW1LuShNs8J73Fv3CPz/bmROHOHlnKkN8sWb9ujiagjmxxMUywftgq48HlBZELKKqFLk0oA==" + "integrity": "sha512-G56jBpbJeg7ds83HW1LuShNs8J73Fv3CPz/bmROHOHlnKkN8sWb9ujiagjmxxMUywftgq48HlBZELKKqFLk0oA==", + "dev": true }, "node_modules/is-generator-fn": { "version": "2.1.0", @@ -10656,6 +10600,12 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/is-in-browser": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz", + "integrity": "sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g==", + "peer": true + }, "node_modules/is-installed-globally": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz", @@ -10693,6 +10643,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, "engines": { "node": ">= 0.4" }, @@ -10712,6 +10663,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -10756,12 +10708,14 @@ "node_modules/is-promise": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true }, "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-tostringtag": "^1.0.0" @@ -10786,6 +10740,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, "dependencies": { "call-bind": "^1.0.2" }, @@ -10808,6 +10763,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" }, @@ -10822,6 +10778,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, "dependencies": { "has-symbols": "^1.0.2" }, @@ -10848,6 +10805,7 @@ "version": "1.1.12", "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, "dependencies": { "which-typed-array": "^1.1.11" }, @@ -10893,6 +10851,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, "dependencies": { "call-bind": "^1.0.2" }, @@ -10925,7 +10884,8 @@ "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true }, "node_modules/isexe": { "version": "2.0.0", @@ -12012,6 +11972,12 @@ "integrity": "sha512-9IXdWudL61npZjvLuVe/ktHiA41iE8qFyLB+4VDTblEsWBzeg8WQTlktdUK4CdncUqtUgUg0bbOmTE2bKBKaBQ==", "dev": true }, + "node_modules/jquery": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", + "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==", + "peer": true + }, "node_modules/js-base64": { "version": "2.6.4", "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", @@ -12229,6 +12195,96 @@ "verror": "1.10.0" } }, + "node_modules/jss": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss/-/jss-10.10.0.tgz", + "integrity": "sha512-cqsOTS7jqPsPMjtKYDUpdFC0AbhYFLTcuGRqymgmdJIeQ8cH7+AgX7YSgQy79wXloZq2VvATYxUOUQEvS1V/Zw==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.3.1", + "csstype": "^3.0.2", + "is-in-browser": "^1.1.3", + "tiny-warning": "^1.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/jss" + } + }, + "node_modules/jss-plugin-camel-case": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.10.0.tgz", + "integrity": "sha512-z+HETfj5IYgFxh1wJnUAU8jByI48ED+v0fuTuhKrPR+pRBYS2EDwbusU8aFOpCdYhtRc9zhN+PJ7iNE8pAWyPw==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.3.1", + "hyphenate-style-name": "^1.0.3", + "jss": "10.10.0" + } + }, + "node_modules/jss-plugin-default-unit": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.10.0.tgz", + "integrity": "sha512-SvpajxIECi4JDUbGLefvNckmI+c2VWmP43qnEy/0eiwzRUsafg5DVSIWSzZe4d2vFX1u9nRDP46WCFV/PXVBGQ==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.3.1", + "jss": "10.10.0" + } + }, + "node_modules/jss-plugin-global": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.10.0.tgz", + "integrity": "sha512-icXEYbMufiNuWfuazLeN+BNJO16Ge88OcXU5ZDC2vLqElmMybA31Wi7lZ3lf+vgufRocvPj8443irhYRgWxP+A==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.3.1", + "jss": "10.10.0" + } + }, + "node_modules/jss-plugin-nested": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.10.0.tgz", + "integrity": "sha512-9R4JHxxGgiZhurDo3q7LdIiDEgtA1bTGzAbhSPyIOWb7ZubrjQe8acwhEQ6OEKydzpl8XHMtTnEwHXCARLYqYA==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.3.1", + "jss": "10.10.0", + "tiny-warning": "^1.0.2" + } + }, + "node_modules/jss-plugin-props-sort": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.10.0.tgz", + "integrity": "sha512-5VNJvQJbnq/vRfje6uZLe/FyaOpzP/IH1LP+0fr88QamVrGJa0hpRRyAa0ea4U/3LcorJfBFVyC4yN2QC73lJg==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.3.1", + "jss": "10.10.0" + } + }, + "node_modules/jss-plugin-rule-value-function": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.10.0.tgz", + "integrity": "sha512-uEFJFgaCtkXeIPgki8ICw3Y7VMkL9GEan6SqmT9tqpwM+/t+hxfMUdU4wQ0MtOiMNWhwnckBV0IebrKcZM9C0g==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.3.1", + "jss": "10.10.0", + "tiny-warning": "^1.0.2" + } + }, + "node_modules/jss-plugin-vendor-prefixer": { + "version": "10.10.0", + "resolved": "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.10.0.tgz", + "integrity": "sha512-UY/41WumgjW8r1qMCO8l1ARg7NHnfRVWRhZ2E2m0DMYsr2DD91qIXLyNhiX83hHswR7Wm4D+oDYNC1zWCJWtqg==", + "peer": true, + "dependencies": { + "@babel/runtime": "^7.3.1", + "css-vendor": "^2.0.8", + "jss": "10.10.0" + } + }, "node_modules/jsx-ast-utils": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", @@ -12248,6 +12304,7 @@ "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, "dependencies": { "json-buffer": "3.0.1" } @@ -13774,6 +13831,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/mock-property/-/mock-property-1.0.0.tgz", "integrity": "sha512-imC60k5A55GPUU43PqczbubOyyxCudIgneACKzL3PKfsBk08dc1HgNNU8siQbEIAPPjVUhc+gb0v0ypZ/iP9pw==", + "dev": true, "dependencies": { "functions-have-names": "^1.2.2", "has": "^1.0.3", @@ -13798,6 +13856,15 @@ "node": ">=4" } }, + "node_modules/mrmime": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", + "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -13851,11 +13918,11 @@ } }, "node_modules/next": { - "version": "13.5.6", - "resolved": "https://registry.npmjs.org/next/-/next-13.5.6.tgz", - "integrity": "sha512-Y2wTcTbO4WwEsVb4A8VSnOsG1I9ok+h74q0ZdxkwM3EODqrs4pasq7O0iUxbcS9VtWMicG7f3+HAj0r1+NtKSw==", + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/next/-/next-14.0.1.tgz", + "integrity": "sha512-s4YaLpE4b0gmb3ggtmpmV+wt+lPRuGtANzojMQ2+gmBpgX9w5fTbjsy6dXByBuENsdCX5pukZH/GxdFgO62+pA==", "dependencies": { - "@next/env": "13.5.6", + "@next/env": "14.0.1", "@swc/helpers": "0.5.2", "busboy": "1.6.0", "caniuse-lite": "^1.0.30001406", @@ -13867,18 +13934,18 @@ "next": "dist/bin/next" }, "engines": { - "node": ">=16.14.0" + "node": ">=18.17.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "13.5.6", - "@next/swc-darwin-x64": "13.5.6", - "@next/swc-linux-arm64-gnu": "13.5.6", - "@next/swc-linux-arm64-musl": "13.5.6", - "@next/swc-linux-x64-gnu": "13.5.6", - "@next/swc-linux-x64-musl": "13.5.6", - "@next/swc-win32-arm64-msvc": "13.5.6", - "@next/swc-win32-ia32-msvc": "13.5.6", - "@next/swc-win32-x64-msvc": "13.5.6" + "@next/swc-darwin-arm64": "14.0.1", + "@next/swc-darwin-x64": "14.0.1", + "@next/swc-linux-arm64-gnu": "14.0.1", + "@next/swc-linux-arm64-musl": "14.0.1", + "@next/swc-linux-x64-gnu": "14.0.1", + "@next/swc-linux-x64-musl": "14.0.1", + "@next/swc-win32-arm64-msvc": "14.0.1", + "@next/swc-win32-ia32-msvc": "14.0.1", + "@next/swc-win32-x64-msvc": "14.0.1" }, "peerDependencies": { "@opentelemetry/api": "^1.1.0", @@ -13895,41 +13962,6 @@ } } }, - "node_modules/node-domexception": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", - "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/jimmywarting" - }, - { - "type": "github", - "url": "https://paypal.me/jimmywarting" - } - ], - "engines": { - "node": ">=10.5.0" - } - }, - "node_modules/node-fetch": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", - "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", - "dependencies": { - "data-uri-to-buffer": "^4.0.0", - "fetch-blob": "^3.1.4", - "formdata-polyfill": "^4.0.10" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/node-fetch" - } - }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -14038,6 +14070,7 @@ "version": "1.1.5", "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" @@ -14053,6 +14086,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, "engines": { "node": ">= 0.4" } @@ -14061,6 +14095,7 @@ "version": "4.1.4", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", @@ -14175,6 +14210,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true, + "bin": { + "opener": "bin/opener-bin.js" + } + }, "node_modules/optionator": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", @@ -14676,6 +14720,13 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true, + "peer": true + }, "node_modules/preact": { "version": "10.18.1", "resolved": "https://registry.npmjs.org/preact/-/preact-10.18.1.tgz", @@ -16167,6 +16218,7 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -16528,6 +16580,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.1", @@ -16570,6 +16623,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.1.3", @@ -16619,6 +16673,12 @@ "loose-envify": "^1.1.0" } }, + "node_modules/search-insights": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.9.0.tgz", + "integrity": "sha512-bkWW9nIHOFkLwjQ1xqVaMbjjO5vhP26ERsH9Y3pKr8imthofEFIxlnOabkmGcw6ksRj9jWidcI65vvjJH/nTGg==", + "peer": true + }, "node_modules/semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", @@ -16659,6 +16719,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, "dependencies": { "define-data-property": "^1.0.1", "functions-have-names": "^1.2.3", @@ -16685,6 +16746,13 @@ "sha.js": "bin.js" } }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==", + "dev": true, + "peer": true + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -16722,6 +16790,20 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, + "node_modules/sirv": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/sirv/-/sirv-1.0.19.tgz", + "integrity": "sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ==", + "dev": true, + "dependencies": { + "@polka/url": "^1.0.0-next.20", + "mrmime": "^1.0.0", + "totalist": "^1.0.0" + }, + "engines": { + "node": ">= 10" + } + }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -17160,6 +17242,7 @@ "version": "1.2.8", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -17176,6 +17259,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -17189,6 +17273,7 @@ "version": "1.0.7", "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.2.0", @@ -17285,6 +17370,42 @@ "tslib": "^2.1.0" } }, + "node_modules/styled-components": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.0.tgz", + "integrity": "sha512-VWNfYYBuXzuLS/QYEeoPgMErP26WL+dX9//rEh80B2mmlS1yRxRxuL5eax4m6ybYEUoHWlTy2XOU32767mlMkg==", + "dev": true, + "peer": true, + "dependencies": { + "@emotion/is-prop-valid": "^1.2.1", + "@emotion/unitless": "^0.8.0", + "@types/stylis": "^4.0.2", + "css-to-react-native": "^3.2.0", + "csstype": "^3.1.2", + "postcss": "^8.4.31", + "shallowequal": "^1.1.0", + "stylis": "^4.3.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/styled-components" + }, + "peerDependencies": { + "react": ">= 16.8.0", + "react-dom": ">= 16.8.0" + } + }, + "node_modules/styled-components/node_modules/stylis": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.0.tgz", + "integrity": "sha512-E87pIogpwUsUwXw7dNyU4QDjdgVMy52m+XEOPEKUn161cCzWjjhPSQhByfd1CcNvrOLnXQ6OnnZDwnJrz/Z4YQ==", + "dev": true, + "peer": true + }, "node_modules/styled-jsx": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", @@ -17385,6 +17506,7 @@ "version": "4.17.0", "resolved": "https://registry.npmjs.org/tape/-/tape-4.17.0.tgz", "integrity": "sha512-KCuXjYxCZ3ru40dmND+oCLsXyuA8hoseu2SS404Px5ouyS0A99v8X/mdiLqsR5MTAyamMBN7PRwt2Dv3+xGIxw==", + "dev": true, "dependencies": { "@ljharb/resumer": "~0.0.1", "@ljharb/through": "~2.3.9", @@ -17414,6 +17536,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/tape-async/-/tape-async-2.3.0.tgz", "integrity": "sha512-1trExEdVgQPsjPC0L6c/49eMYZGj4dJuGOX49uiQl6P8nOdFpJvYzbbepR6d9jnhFMlsAy8tUafY/GjGdLNtvA==", + "dev": true, "dependencies": { "co": "^4.6.0", "is-generator": "^1.0.2", @@ -17560,6 +17683,15 @@ "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==" }, + "node_modules/totalist": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/totalist/-/totalist-1.1.0.tgz", + "integrity": "sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/tough-cookie": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", @@ -17805,6 +17937,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "get-intrinsic": "^1.2.1", @@ -17818,6 +17951,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "for-each": "^0.3.3", @@ -17835,6 +17969,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", @@ -17853,6 +17988,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "for-each": "^0.3.3", @@ -17906,6 +18042,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, "dependencies": { "call-bind": "^1.0.2", "has-bigints": "^1.0.2", @@ -18433,14 +18570,6 @@ "defaults": "^1.0.3" } }, - "node_modules/web-streams-polyfill": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", - "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==", - "engines": { - "node": ">= 8" - } - }, "node_modules/webidl-conversions": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", @@ -18449,6 +18578,59 @@ "node": ">=12" } }, + "node_modules/webpack-bundle-analyzer": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.7.0.tgz", + "integrity": "sha512-j9b8ynpJS4K+zfO5GGwsAcQX4ZHpWV+yRiHDiL+bE0XHJ8NiPYLTNVQdlFYWxtpg9lfAQNlwJg16J9AJtFSXRg==", + "dev": true, + "dependencies": { + "acorn": "^8.0.4", + "acorn-walk": "^8.0.0", + "chalk": "^4.1.0", + "commander": "^7.2.0", + "gzip-size": "^6.0.0", + "lodash": "^4.17.20", + "opener": "^1.5.2", + "sirv": "^1.0.7", + "ws": "^7.3.1" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/whatwg-encoding": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", @@ -18515,6 +18697,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, "dependencies": { "is-bigint": "^1.0.1", "is-boolean-object": "^1.1.0", @@ -18577,6 +18760,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "dev": true, "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", diff --git a/package.json b/package.json index fcd639cda..350c8ee34 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "cy:run": "cypress run --headless --browser chrome", "cy:open": "cypress open --browser chrome", "cy:test": "start-cy:run 3000", + "analyze": "ANALYZE=true npm run build", "test:e2e:ci": "start-server-and-test dev http://test.zesty.io:3000/ cy:run", "test:e2e:ci:prod": "start-server-and-test build-start http://test.zesty.io:3000/ cy:run", "test:e2e:ci:prod:bun": "start-server-and-test build-start:bun http://test.zesty.io:3000/ cy:run" @@ -79,18 +80,14 @@ "axios": "^1.5.1", "cookies-next": "^4.0.0", "dayjs": "^1.11.10", - "eslint-plugin-unused-imports": "^3.0.0", "file-saver": "^2.0.5", "formik": "^2.4.5", - "himalaya": "^1.1.0", "jarallax": "^2.1.4", "markdown-it": "^13.0.2", "markdown-to-jsx": "^7.3.2", "material-ui-phone-number": "^3.0.0", - "next": "^13.5.6", - "node-fetch": "^3.3.2", + "next": "^14.0.1", "notistack": "^3.0.1", - "preact": "^10.18.1", "prop-types": "^15.8.1", "react": "^18.2.0", "react-confetti": "^6.1.0", @@ -117,13 +114,14 @@ "sweetalert2": "^11.7.31", "sweetalert2-react-content": "^5.0.7", "swiper": "^8.3.2", - "tape-async": "^2.3.0", "yup": "^1.3.2", "zustand": "^4.4.2" }, "devDependencies": { + "tape-async": "^2.3.0", "@commitlint/cli": "^17.7.2", "@commitlint/config-conventional": "^17.7.0", + "@next/bundle-analyzer": "^14.0.1", "@testing-library/jest-dom": "^6.1.3", "@testing-library/react": "^14.0.0", "@typescript-eslint/eslint-plugin": "^6.7.4", @@ -140,6 +138,7 @@ "eslint-plugin-cypress": "^2.15.1", "eslint-plugin-import": "^2.28.1", "eslint-plugin-react": "^7.33.2", + "eslint-plugin-unused-imports": "^3.0.0", "husky": "^8.0.3", "isomorphic-fetch": "^3.0.0", "jest": "^29.7.0", @@ -153,7 +152,7 @@ "typescript": "^5.2.2" }, "engines": { - "node": ">=16" + "node": ">=18.18.0" }, "config": { "commitizen": { diff --git a/public/fonts/Mulish-Black.woff2 b/public/fonts/Mulish-Black.woff2 new file mode 100644 index 000000000..e2f8b7b2d Binary files /dev/null and b/public/fonts/Mulish-Black.woff2 differ diff --git a/public/fonts/Mulish-Bold.woff2 b/public/fonts/Mulish-Bold.woff2 new file mode 100644 index 000000000..03a5855d5 Binary files /dev/null and b/public/fonts/Mulish-Bold.woff2 differ diff --git a/public/fonts/Mulish-ExtraBold.woff2 b/public/fonts/Mulish-ExtraBold.woff2 new file mode 100644 index 000000000..d58c1d75e Binary files /dev/null and b/public/fonts/Mulish-ExtraBold.woff2 differ diff --git a/public/fonts/Mulish-ExtraLight.woff2 b/public/fonts/Mulish-ExtraLight.woff2 new file mode 100644 index 000000000..0c531dac1 Binary files /dev/null and b/public/fonts/Mulish-ExtraLight.woff2 differ diff --git a/public/fonts/Mulish-Italic.woff2 b/public/fonts/Mulish-Italic.woff2 new file mode 100644 index 000000000..7646438b7 Binary files /dev/null and b/public/fonts/Mulish-Italic.woff2 differ diff --git a/public/fonts/Mulish-Light.woff2 b/public/fonts/Mulish-Light.woff2 new file mode 100644 index 000000000..55a35f59f Binary files /dev/null and b/public/fonts/Mulish-Light.woff2 differ diff --git a/public/fonts/Mulish-Medium.woff2 b/public/fonts/Mulish-Medium.woff2 new file mode 100644 index 000000000..9b4ff419e Binary files /dev/null and b/public/fonts/Mulish-Medium.woff2 differ diff --git a/public/fonts/Mulish-Regular.woff2 b/public/fonts/Mulish-Regular.woff2 index 0238d6d40..0c47f010e 100644 Binary files a/public/fonts/Mulish-Regular.woff2 and b/public/fonts/Mulish-Regular.woff2 differ diff --git a/public/fonts/Mulish-SemiBold.woff2 b/public/fonts/Mulish-SemiBold.woff2 new file mode 100644 index 000000000..a80dafb1e Binary files /dev/null and b/public/fonts/Mulish-SemiBold.woff2 differ diff --git a/public/styles/custom.css b/public/styles/custom.css index 02930c98c..446ce4c64 100644 --- a/public/styles/custom.css +++ b/public/styles/custom.css @@ -46,3 +46,44 @@ h2 span { margin-right: 10px; } +@font-face { + font-family: 'Mulish'; + src: url(../fonts/Mulish-Regular.woff2) format(woff2); + font-style: normal; + font-weight: 400; +} + + +@font-face { + font-family: 'Mulish'; + src: url(../fonts/Mulish-Medium.woff2) format(woff2); + font-style: normal; + font-weight: 500; +} + +@font-face { + font-family: 'Mulish'; + src: url(../fonts/Mulish-SemiBold.woff2) format(woff2); + font-style: normal; + font-weight: 600; +} + +@font-face { + font-family: 'Mulish'; + src: url(../fonts/Mulish-Bold.woff2) format(woff2); + font-style: normal; + font-weight: 700; +} + +@font-face { + font-family: 'Mulish'; + src: url(../fonts/Mulish-ExtraBold.woff2) format(woff2); + font-style: normal; + font-weight: 800; +} +@font-face { + font-family: 'Mulish'; + src: url(../fonts/Mulish-Black.woff2) format(woff2); + font-style: normal; + font-weight: 900; +} \ No newline at end of file diff --git a/src/blocks/Image/ZestyImage.js b/src/blocks/Image/ZestyImage.js index 4b76042a3..1759a043b 100644 --- a/src/blocks/Image/ZestyImage.js +++ b/src/blocks/Image/ZestyImage.js @@ -1,4 +1,5 @@ import FillerContent from 'components/globals/FillerContent'; +import { LazyLoadImage } from 'react-lazy-load-image-component'; /** * diff --git a/src/components/accounts/domains/DomainListings.js b/src/components/accounts/domains/DomainListings.js index d6bab68a2..9aa0ef5a8 100644 --- a/src/components/accounts/domains/DomainListings.js +++ b/src/components/accounts/domains/DomainListings.js @@ -3,13 +3,15 @@ import { Link, Stack, Typography } from '@mui/material'; import { useRouter } from 'next/router'; import Button from '@mui/material/Button'; import MoreVertIcon from '@mui/icons-material/MoreVert'; -import { - AccountsPopover, - AccountsTable, - AccountsTableHead, -} from 'components/accounts'; +import { AccountsPopover, AccountsTableHead } from 'components/accounts'; import dayjs from 'dayjs'; +import dynamic from 'next/dynamic'; + +const AccountsTable = dynamic(() => + import('components/accounts').then((e) => e.AccountsTable), +); + export default function DomainListings({ liveDomains, instance, diff --git a/src/components/accounts/support/TicketsTable.js b/src/components/accounts/support/TicketsTable.js index 0fc80d029..bf2371c8e 100644 --- a/src/components/accounts/support/TicketsTable.js +++ b/src/components/accounts/support/TicketsTable.js @@ -1,8 +1,14 @@ import React, { useMemo } from 'react'; import { Button, Typography, Stack } from '@mui/material'; -import { AccountsTable, AccountsTableHead } from 'components/accounts'; +import { AccountsTableHead } from 'components/accounts'; import { useRouter } from 'next/router'; +import dynamic from 'next/dynamic'; + +const AccountsTable = dynamic(() => + import('components/accounts').then((e) => e.AccountsTable), +); + const TicketsTable = ({ setsearch, filteredTicket, isLoading }) => { const router = useRouter(); diff --git a/src/components/accounts/ui/table/AccountsTable.js b/src/components/accounts/ui/table/AccountsTable.js index 4699a3e5d..883f69573 100644 --- a/src/components/accounts/ui/table/AccountsTable.js +++ b/src/components/accounts/ui/table/AccountsTable.js @@ -1,9 +1,17 @@ import * as React from 'react'; import Box from '@mui/material/Box'; -import { DataGrid, GridToolbar } from '@mui/x-data-grid'; import { grey } from '@mui/material/colors'; import { Stack, Typography } from '@mui/material'; +import dynamic from 'next/dynamic'; + +const DataGrid = dynamic(() => + import('@mui/x-data-grid').then((e) => e.DataGrid), +); + +const GridToolbar = dynamic(() => + import('@mui/x-data-grid').then((e) => e.GridToolbar), +); // const NoResultsOverlay = () => { // return ( // diff --git a/src/components/console/DocsAppbar.js b/src/components/console/DocsAppbar.js index 15ca1cb62..b9de775d6 100644 --- a/src/components/console/DocsAppbar.js +++ b/src/components/console/DocsAppbar.js @@ -8,16 +8,29 @@ import { useTheme, } from '@mui/material'; import { grey } from '@mui/material/colors'; -import { AccountsComboBox } from 'components/accounts'; import useIsLoggedIn from 'components/hooks/useIsLoggedIn'; import { getCookie, setCookie } from 'cookies-next'; import { useRouter } from 'next/router'; import React, { useEffect } from 'react'; import { useZestyStore } from 'store'; -import { DocsComboBox } from 'views/Docs/DocsComboBox'; -import { DocsPopover } from 'views/Docs/DocsPopover'; -import { SearchModal } from 'views/Docs/SearchModal'; -import { AlgoSearch } from 'views/Docs/AlgoSearch'; + +import dynamic from 'next/dynamic'; + +const DocsPopover = dynamic(() => + import('views/Docs/DocsPopover').then((e) => e.DocsPopover), +); +const SearchModal = dynamic(() => + import('views/Docs/SearchModal').then((e) => e.SearchModal), +); +const AlgoSearch = dynamic(() => + import('views/Docs/AlgoSearch').then((e) => e.AlgoSearch), +); +const AccountsComboBox = dynamic(() => + import('components/accounts').then((e) => e.AccountsComboBox), +); +const DocsComboBox = dynamic(() => + import('views/Docs/DocsComboBox').then((e) => e.DocsComboBox), +); const allowedSections = [ 'docs/media', @@ -26,28 +39,9 @@ const allowedSections = [ 'docs/accounts', ]; -const tabs = [ - { label: 'API Reference', value: '/docs/parsley/api-reference/' }, - { label: 'Tour', value: '/docs/parsley/tour/' }, - { label: 'Guides', value: '/docs/parsley/guides/' }, -]; - export const DocsAppbar = React.memo(() => { const router = useRouter(); - // setting of active tabs - const getInitialTab = () => { - if (router.asPath.includes(tabs[0].value)) { - return tabs[0].value; - } else if (router.asPath.includes(tabs[1].value)) { - return tabs[1].value; - } else if (router.asPath.includes(tabs[2].value)) { - return tabs[2].value; - } else { - return ''; - } - }; - const currentPath = router?.asPath?.split('/')?.filter((e) => e)[1] || ''; const { @@ -78,19 +72,11 @@ export const DocsAppbar = React.memo(() => { setSelectedDocsCategory: e.setSelectedDocsCategory, })); - const { - algoliaApiKey: apiKey, - algoliaAppId: appId, - algoliaIndex: index, - } = useZestyStore((e) => e); - const isLoggedIn = useIsLoggedIn(); const instanceZUID = getCookie('ZESTY_WORKING_INSTANCE') || workingInstance; - // const [currentTab, setcurrentTab] = React.useState(getInitialTab()); const theme = useTheme(); const isDarkMode = theme.palette.mode === 'dark'; const isMobile = useMediaQuery(theme.breakpoints.down('sm')); - const isXl = useMediaQuery(theme.breakpoints.up('xl')); const onChangeDropdown = (data) => { let category = data.label; @@ -147,7 +133,6 @@ export const DocsAppbar = React.memo(() => { } }, [workingInstance]); - const isDocs = router.asPath.includes('/docs'); const isApiReference = router.asPath.includes('api-reference'); const showApiReferenceBtn = allowedSections.some((path) => router.asPath.includes(path), diff --git a/src/components/console/DocsPopover.js b/src/components/console/DocsPopover.js index ab802f358..1a723438d 100644 --- a/src/components/console/DocsPopover.js +++ b/src/components/console/DocsPopover.js @@ -5,7 +5,7 @@ import Button from '@mui/material/Button'; import { Stack } from '@mui/material'; import LanguageIcon from '@mui/icons-material/Language'; -export function DocsPopover({ name, options, onSelect }) { +export function DocsPopover({ name, options }) { const [anchorEl, setAnchorEl] = React.useState(null); const handleClick = (event) => { @@ -16,7 +16,7 @@ export function DocsPopover({ name, options, onSelect }) { setAnchorEl(null); }; - const handleSelect = (e) => { + const handleSelect = () => { handleClose(); }; const open = Boolean(anchorEl); diff --git a/src/components/cta/StandardFormWithSelect.js b/src/components/cta/StandardFormWithSelect.js index de6c38a74..135d30ba6 100644 --- a/src/components/cta/StandardFormWithSelect.js +++ b/src/components/cta/StandardFormWithSelect.js @@ -96,8 +96,6 @@ const postToZOHO = async (payloadJSON) => { throw new Error(`HTTP error: ${error}`); }); }; -const phoneRegExp = - /^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$/im; const subscribeToZoho = async (payload) => { const { Email, First_Name, Last_Name } = payload; @@ -115,13 +113,8 @@ const subscribeToZoho = async (payload) => { }; function StandardFormWithSelect({ - leadDetail = 'Contact Us', - leadSource = 'Website', - businessType = 'Direct', modalTitle = 'Thank you', modalMessage = 'Have a great day.', - downloadLink = '', - capterraTracking = null, cmsModel, }) { const [open, setOpen] = useState(false); diff --git a/src/components/cta/standardFormWithSelectOld.js b/src/components/cta/standardFormWithSelectOld.js index 0fb0a9863..9c7285633 100644 --- a/src/components/cta/standardFormWithSelectOld.js +++ b/src/components/cta/standardFormWithSelectOld.js @@ -16,8 +16,6 @@ import MenuItem from '@mui/material/MenuItem'; import FormControl from '@mui/material/FormControl'; import Select from '@mui/material/Select'; import TransitionsModal from './TransitionModal'; -import { inputLabelClasses } from '@mui/material/InputLabel'; -import { styled } from '@mui/material/styles'; import { getCookie } from 'cookies-next'; /** @@ -26,13 +24,6 @@ import { getCookie } from 'cookies-next'; * For testing new changes, please work with katie.moser@zesty.io */ -// for hiding of ellipis in message in mobile -const StyledTextField = styled(TextField)({ - [`& .${inputLabelClasses.outlined}`]: { - whiteSpace: 'normal', - }, -}); - /* validation for form component */ const getLeadObjectZOHO = ( @@ -200,18 +191,13 @@ function StandardFormWithSelectOld({ businessType = 'Direct', modalTitle = 'Thank you', modalMessage = 'Have a great day.', - displayMsgUnderButton = `We'll get back to you in 1-2 business days.`, additionalTextfield = {}, buttonFullWidth = false, hidePrivacySection = false, - messageLabel = 'Message', customButtonStyle = { display: 'flex', justifyContent: 'initial' }, - bottomCheckbox = false, - bottomCheckboxLabel = '', validationType = '', ctaButton = 'Submit', downloadLink = '', - // onClickBtn = null, phoneNumber = false, capterraTracking = null, cmsModel, diff --git a/src/components/docs/AiSearch.js b/src/components/docs/AiSearch.js index ea08b6da0..56ff6e396 100644 --- a/src/components/docs/AiSearch.js +++ b/src/components/docs/AiSearch.js @@ -182,7 +182,7 @@ export const AiSearch = () => { sx={{ mt: 4, maxHeight: 500, overflow: 'auto', pb: 2 }} > - {chatHistory.map((item, idx) => { + {chatHistory.map((item, _idx) => { const message = item.type === 'bot' ? item.message : ''; return ( diff --git a/src/components/globals/LiveEditor.js b/src/components/globals/LiveEditor.js new file mode 100644 index 000000000..a8ace85d6 --- /dev/null +++ b/src/components/globals/LiveEditor.js @@ -0,0 +1,13 @@ +import { ZestyLiveEditor } from '@zesty-io/live-editor'; + +import React, { useEffect } from 'react'; + +const LiveEditor = ({ data }) => { + useEffect(() => { + ZestyLiveEditor(data); + }, []); + + return
; +}; + +export default LiveEditor; diff --git a/src/components/marketing/Join/DancingLogo.jsx b/src/components/marketing/Join/DancingLogo.jsx index 939e68ec5..e9b0a3588 100644 --- a/src/components/marketing/Join/DancingLogo.jsx +++ b/src/components/marketing/Join/DancingLogo.jsx @@ -2,15 +2,12 @@ import React from 'react'; import styles from './DancingLogo.module.css'; import { Box } from '@mui/material'; -import { useTheme } from '@mui/material/styles'; export const DancingLogo = ({ animation = 'hello' }) => { // ANI?! https://memegenerator.net/img/instances/58837555.jpg const ani = () => undefined !== styles[animation] ? styles[animation] : styles.still; - // import zesty theme - const theme = useTheme(); return (
- {/* - - - - */} {role == 'Marketer' && } {role == 'Developer' && } {role == 'Manager' && } @@ -71,30 +66,6 @@ export default function Onboarding({ role }) { ); } -const ScheduleOnboardingSpecialist = ({ - link = 'https://www.zesty.io/meet/', -}) => ( - - handleClick(link)}> - - - - Community Chat - - - Intereact with the community and Zesty.io developers. Ask questions, - share ideas and projects. Click here to be invited. - - - - -); - const DiscordCard = () => ( { ); }; -const CaseStudiesCard = ({ developer, marketer }) => { +const CaseStudiesCard = ({ marketer }) => { const theme = useTheme(); return ( diff --git a/src/components/marketing/Join/SlideQuestions.jsx b/src/components/marketing/Join/SlideQuestions.jsx index cf8a01912..2e23139da 100644 --- a/src/components/marketing/Join/SlideQuestions.jsx +++ b/src/components/marketing/Join/SlideQuestions.jsx @@ -1,20 +1,15 @@ import React from 'react'; -import { Container, Stack, Button, Box, Typography } from '@mui/material'; +import { Container, Stack, Box, Typography } from '@mui/material'; import Card from '@mui/material/Card'; import CardContent from '@mui/material/CardContent'; -import CardMedia from '@mui/material/CardMedia'; import { CardActionArea } from '@mui/material'; -function random_boolean(seed) { - return seed < 0.5; -} - function ActionAreaCard({ question, - title = '', + _title = '', asset = '', storeValue, - animation, + _animation, answer, callback, cardStyles = {}, diff --git a/src/components/marketing/Start/Signup.jsx b/src/components/marketing/Start/Signup.jsx index 254160dfa..bc0b7b276 100644 --- a/src/components/marketing/Start/Signup.jsx +++ b/src/components/marketing/Start/Signup.jsx @@ -30,7 +30,7 @@ import { import { EmailOutlined } from '@mui/icons-material'; export const Signup = ({ - message = 'What team are you from?', + _message = 'What team are you from?', callback = {}, production = false, settoken, diff --git a/src/components/marketing/Start/SlideQuestions.jsx b/src/components/marketing/Start/SlideQuestions.jsx index 61692f621..38f8b87ba 100644 --- a/src/components/marketing/Start/SlideQuestions.jsx +++ b/src/components/marketing/Start/SlideQuestions.jsx @@ -4,16 +4,12 @@ import Card from '@mui/material/Card'; import CardContent from '@mui/material/CardContent'; import { CardActionArea } from '@mui/material'; -function random_boolean(seed) { - return seed < 0.5; -} - function ActionAreaCard({ question, - title = '', + _title = '', asset = '', storeValue, - animation, + _animation, answer, callback, cardStyles = {}, @@ -73,10 +69,6 @@ export const SlideQuestions = ({ hoverAnimation, storeValue = false, }) => { - React.useEffect(() => { - // setCurrentStep(1); - }, []); - return ( import('./components/Footer/FooterDynamic')); +const Sidebar = dynamic(() => import('./components').then((e) => e.Sidebar)); const TopNav = dynamic(() => import('components/globals/TopNav')); const SiteBanner = dynamic( () => import('components/marketing/SiteBanner/SiteBanner'), @@ -33,7 +35,6 @@ const MarketingMain = ({ children, customRouting, nav = [], - colorInvert = false, bgcolor = 'transparent', model = '', flyoutNavigation, @@ -75,11 +76,7 @@ const MarketingMain = ({ isPpcShortPage || isCapterraPage || isDxpTemplatePage || isDiscover; const isLoggedIn = useIsLoggedIn(); const pageNavColorRegex = new RegExp(/\bmindshare\b|article\b|category/gi); - const blogMain = new RegExp(/\bmindshare\b/gi); const isBlogPage = model?.match(pageNavColorRegex) !== null ? true : false; - const isBlogHome = model?.match(blogMain) !== null ? true : false; - const headerColorInvert = - model?.match(pageNavColorRegex) !== null ? true : false; const bgColorSwitch = () => { if (isExplorePage) { @@ -115,7 +112,7 @@ const MarketingMain = ({ display={router?.query?.slug?.[0] === 'login' && 'none'} > ({ + sx={() => ({ paddingTop: hideNav || isExplorePage ? '0px !important' : '8px !important', paddingBottom: '0 !important', @@ -149,7 +146,7 @@ const MarketingMain = ({ elevation={trigger ? 1 : 0} > ({ + sx={() => ({ maxWidth: '1440px !important', mx: 'auto', paddingY: isExplorePage ? 2 : 1, diff --git a/src/layouts/Main/components/Footer/Footer.js b/src/layouts/Main/components/Footer/Footer.js index 1110b0114..3aa9b6704 100644 --- a/src/layouts/Main/components/Footer/Footer.js +++ b/src/layouts/Main/components/Footer/Footer.js @@ -62,6 +62,7 @@ const Footer = ({ customRouting, colorInvert = false }) => { width={150} height={150} alt="zesty.io logo" + loading="lazy" src={ mode === 'light' && !colorInvert ? 'https://brand.zesty.io/zesty-io-logo-vertical.svg' diff --git a/src/layouts/Main/components/Footer/FooterDynamic.js b/src/layouts/Main/components/Footer/FooterDynamic.js new file mode 100644 index 000000000..5875f97d0 --- /dev/null +++ b/src/layouts/Main/components/Footer/FooterDynamic.js @@ -0,0 +1,17 @@ +import dynamic from 'next/dynamic'; +import { useInView } from 'react-intersection-observer'; + +const Child = dynamic(() => import('./Footer'), { + loading: () => <>, +}); + +const Index = (props) => { + const { ref, inView } = useInView({ + triggerOnce: true, + threshold: 0, + rootMargin: '500px', + }); + return
{inView && }
; +}; + +export default Index; diff --git a/src/layouts/Main/components/Topbar/Topbar.js b/src/layouts/Main/components/Topbar/Topbar.js index d7040c379..158c931c0 100644 --- a/src/layouts/Main/components/Topbar/Topbar.js +++ b/src/layouts/Main/components/Topbar/Topbar.js @@ -4,13 +4,14 @@ import Box from '@mui/material/Box'; import Button from '@mui/material/Button'; import { alpha, useTheme } from '@mui/material/styles'; import MenuIcon from '@mui/icons-material/Menu'; -import { NavItem } from './components'; import TryFreeButton from 'components/cta/TryFreeButton'; import { useRouter } from 'next/router'; import { Skeleton, Typography } from '@mui/material'; import { setCookie } from 'cookies-next'; -import SingleNavItem from './components/NavItem/SingleNavItem.js'; import { ClickAwayListener } from '@mui/base/ClickAwayListener'; +import dynamic from 'next/dynamic'; + +const FlyoutNav = dynamic(() => import('./components/FlyoutNav')); const hashString = (str = '') => { let hash = 0, @@ -96,6 +97,16 @@ const Topbar = ({ ); }; + const flyoutNavProps = { + hideNav, + flyoutNavigation, + hashString, + router, + activeNav, + navHandler, + colorInvert, + }; + return ( - - {flyoutNavigation.map((route) => ( - - {/* If link in the cms is empty and column one is not equal to zero it must be a parent navigation with flyout navigation */} - {route.link === null && route.column_1_items.length != 0 && ( - - item.isActive === true)[0] - } - navHandler={navHandler} - route={route} - id={hashString(route.nav_title)} - colorInvert={colorInvert} - /> - - )} - {/* if link is set in the cms and column one items is empty its a single item navigation without flyout */} - {route.link != null && !route.column_1_items && ( - - - - )} - - ))} - + {loading && } {!loading && ( diff --git a/src/layouts/Main/components/Topbar/components/FlyoutNav.js b/src/layouts/Main/components/Topbar/components/FlyoutNav.js new file mode 100644 index 000000000..73230df31 --- /dev/null +++ b/src/layouts/Main/components/Topbar/components/FlyoutNav.js @@ -0,0 +1,68 @@ +import { Box } from '@mui/material'; +import { memo } from 'react'; +import dynamic from 'next/dynamic'; + +const NavItem = dynamic(() => import('./NavItem')); +const SingleNavItem = dynamic(() => import('./NavItem/SingleNavItem')); + +function FlyoutNav({ + hideNav, + flyoutNavigation, + hashString, + router, + activeNav, + navHandler, + colorInvert, +}) { + return ( + + {flyoutNavigation.map((route) => ( + + {/* If link in the cms is empty and column one is not equal to zero it must be a parent navigation with flyout navigation */} + {route.link === null && route.column_1_items.length != 0 && ( + + item.isActive === true)[0] + } + navHandler={navHandler} + route={route} + id={hashString(route.nav_title)} + colorInvert={colorInvert} + /> + + )} + {/* if link is set in the cms and column one items is empty its a single item navigation without flyout */} + {route.link != null && !route.column_1_items && ( + + + + )} + + ))} + + ); +} + +export default memo(FlyoutNav); diff --git a/src/layouts/Main/components/Topbar/components/NavItem/NavItem.js b/src/layouts/Main/components/Topbar/components/NavItem/NavItem.js index a90043fa5..e259cc163 100644 --- a/src/layouts/Main/components/Topbar/components/NavItem/NavItem.js +++ b/src/layouts/Main/components/Topbar/components/NavItem/NavItem.js @@ -102,27 +102,29 @@ const NavItem = ({ navHandler, activeNav, id, route, colorInvert = false }) => { }} > {/* Grid container that holds left and rigt column of the flyout navigation*/} - - - + {activeNav?.isActive && ( + + + + + + + - - - - + )}
@@ -131,7 +133,7 @@ const NavItem = ({ navHandler, activeNav, id, route, colorInvert = false }) => { NavItem.propTypes = { route: PropTypes.object.isRequired, - id: PropTypes.string.isRequired, + id: PropTypes.number.isRequired, colorInvert: PropTypes.bool, }; diff --git a/src/layouts/Main/components/Topbar/components/NavItem/SingleNavItem.js b/src/layouts/Main/components/Topbar/components/NavItem/SingleNavItem.js index 3b7e7bf20..b186d414a 100644 --- a/src/layouts/Main/components/Topbar/components/NavItem/SingleNavItem.js +++ b/src/layouts/Main/components/Topbar/components/NavItem/SingleNavItem.js @@ -32,7 +32,7 @@ const SingleNavItem = ({ title, url, colorInvert = false }) => { color={linkColor} href={url} underline="none" - sx={(theme) => ({ + sx={() => ({ fontWeight: 600, })} title={title} diff --git a/src/lib/ZestyView.js b/src/lib/ZestyView.js index 14846f229..3d13cd8e1 100644 --- a/src/lib/ZestyView.js +++ b/src/lib/ZestyView.js @@ -6,6 +6,9 @@ import * as Zesty from '../views/zesty'; import dynamic from 'next/dynamic'; +const LiveEditor = dynamic(() => import('components/globals/LiveEditor'), { + ssr: false, +}); const ErrorPage = dynamic(() => import('../pages/_error')); const AutoLayoutComponent = dynamic(() => import('../views/zesty/AutoLayoutComponent'), @@ -61,19 +64,13 @@ export function ZestyView(props) { : Zesty[props.content.meta.model_alternate_name]; // outside the component near imports - const initLiveEditor = async (data) => { - const { ZestyLiveEditor } = await import('@zesty-io/live-editor'); - ZestyLiveEditor(data); - }; // inside the component's function just before the return statement - React.useEffect(() => { - if (props.content.zestyProductionMode !== true) { - initLiveEditor(props.content); - } - }, []); return ( <> + {props.content.zestyProductionMode !== true && ( + + )} ); diff --git a/src/lib/api.js b/src/lib/api.js index 7c2ca203b..8bfa04e71 100644 --- a/src/lib/api.js +++ b/src/lib/api.js @@ -1,3 +1,4 @@ +/* eslint-disable unused-imports/no-unused-vars */ import axios from 'axios'; import FillerContent from 'components/globals/FillerContent'; import zestyConfig from '../../zesty.config.json'; diff --git a/src/pages/[[...zesty]].js b/src/pages/[[...zesty]].js index 1a6cae7fe..41561e42f 100644 --- a/src/pages/[[...zesty]].js +++ b/src/pages/[[...zesty]].js @@ -112,9 +112,9 @@ export async function getServerSideProps({ req, res, resolvedUrl }) { let productGlossary = []; let docs = []; - productGlossary = await fetchData({ isProd, dataType: 'product_glossary' }); if (req.url.includes('/product')) { products = await fetchData({ isProd, dataType: 'product' }); + productGlossary = await fetchData({ isProd, dataType: 'product_glossary' }); } if (req.url.includes('/docs')) { docs = await fetchData({ isProd, dataType: 'zesty_docs' }); diff --git a/src/pages/_app.js b/src/pages/_app.js index 65c7f9790..a4c4a9e08 100644 --- a/src/pages/_app.js +++ b/src/pages/_app.js @@ -11,15 +11,15 @@ import 'react-image-lightbox/style.css'; import 'aos/dist/aos.css'; import '../../public/styles/custom.css'; import { SnackbarProvider } from 'notistack'; -import Head from 'next/head'; import AuthProvider from 'components/context/AuthProvider'; import '/public/styles/app.css'; import '/public/styles/docs.css'; +import Script from 'next/script'; +import Head from 'next/head'; if (process.env.NODE_ENV === 'production') { console.log = () => {}; - console.error = () => {}; console.debug = () => {}; } @@ -68,6 +68,7 @@ export default function App({ Component, pageProps }) { {GTM_ID && (