From 751d7292427b02dc76f13e7b214c0fe163491e87 Mon Sep 17 00:00:00 2001 From: Piyush Gupta Date: Tue, 4 Jul 2023 13:54:40 +0530 Subject: [PATCH 01/41] feat: Added prefill for consent question type and fixed the loader bug --- apps/web/lib/linkSurvey/linkSurvey.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/apps/web/lib/linkSurvey/linkSurvey.ts b/apps/web/lib/linkSurvey/linkSurvey.ts index 5692dd50c9..8c251209de 100644 --- a/apps/web/lib/linkSurvey/linkSurvey.ts +++ b/apps/web/lib/linkSurvey/linkSurvey.ts @@ -22,7 +22,7 @@ export const useLinkSurvey = (surveyId: string) => { export const useLinkSurveyUtils = (survey: Survey) => { const [currentQuestion, setCurrentQuestion] = useState(null); - const [prefilling, setPrefilling] = useState(false); + const [prefilling, setPrefilling] = useState(true); const [progress, setProgress] = useState(0); // [0, 1] const [finished, setFinished] = useState(false); const [loadingElement, setLoadingElement] = useState(false); @@ -166,7 +166,6 @@ export const useLinkSurveyUtils = (survey: Survey) => { if (!currentQuestion) return; const firstQuestionId = survey.questions[0].id; if (currentQuestion.id !== firstQuestionId) return; - setPrefilling(true); const question = survey.questions.find((q) => q.id === firstQuestionId); if (!question) throw new Error("Question not found"); @@ -239,6 +238,11 @@ const checkValidity = (question: Question, answer: any): boolean => { if (answer !== "clicked" && answer !== "dismissed") return false; return true; } + case QuestionType.Consent: { + if (question.required && answer === "dismissed") return false; + if (answer !== "accepted" && answer !== "dismissed") return false; + return true; + } case QuestionType.Rating: { answer = answer.replace(/&/g, ";"); const answerNumber = Number(JSON.parse(answer)); @@ -257,6 +261,7 @@ const createAnswer = (question: Question, answer: string): string | number | str switch (question.type) { case QuestionType.OpenText: case QuestionType.MultipleChoiceSingle: + case QuestionType.Consent: case QuestionType.CTA: { return answer; } From a9f4d4e28b377d19224eaf4cc75c1c66a9626e9e Mon Sep 17 00:00:00 2001 From: Matti Nannt Date: Tue, 4 Jul 2023 20:54:41 +0200 Subject: [PATCH 02/41] Dev Experience Performance Improvements (#481) * only add packages once to their main package and remove them from other packages to avoid version conflicts * update package versions * update package versions, clean packages * remove old vscode settings * exclude formbricks-com from pnpm dev * narrow down tsconfig includes, pnpm-lock update * add pnpm test to github action --- .github/workflows/checks.yml | 6 + apps/demo/package.json | 17 +- apps/formbricks-com/package.json | 24 +- apps/web/.vscode/settings.json | 4 - .../settings/members/AddMemberModal.tsx | 2 +- .../surveys/[surveyId]/responses/page.tsx | 1 - .../[surveyId]/summary/SummaryList.tsx | 3 +- .../surveys/[surveyId]/summary/page.tsx | 3 - apps/web/next.config.js | 13 +- apps/web/package.json | 44 +- package.json | 12 +- packages/api/package.json | 4 +- packages/database/package.json | 14 +- packages/ee/package.json | 7 +- packages/errors/package.json | 4 +- .../eslint-config-formbricks/package.json | 5 +- packages/js/package.json | 7 +- packages/js/tsconfig.json | 2 +- packages/lib/package.json | 6 +- packages/prettier-config/package.json | 3 +- packages/tailwind-config/package.json | 12 +- packages/tsconfig/base.json | 2 +- packages/tsconfig/nextjs.json | 19 +- packages/tsconfig/package.json | 11 +- packages/tsconfig/react-library.json | 6 +- packages/types/package.json | 3 +- packages/ui/package.json | 19 +- pnpm-lock.yaml | 3339 +++++------------ 28 files changed, 967 insertions(+), 2625 deletions(-) delete mode 100644 apps/web/.vscode/settings.json diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index bf30e30d46..460b6a344c 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -24,5 +24,11 @@ jobs: - name: Install dependencies run: pnpm install --config.platform=linux --config.architecture=x64 + - name: Build formbricks-js dependencies + run: pnpm build --filter=js + - name: Lint run: pnpm lint + + - name: Test + run: pnpm test diff --git a/apps/demo/package.json b/apps/demo/package.json index 6548a5484c..16420a7348 100644 --- a/apps/demo/package.json +++ b/apps/demo/package.json @@ -4,28 +4,19 @@ "private": true, "scripts": { "clean": "rimraf .turbo node_modules .next", - "dev": "next dev -p 3002", + "dev": "next dev -p 3002 --turbo", "build": "next build", "start": "next start", "lint": "next lint" }, "dependencies": { "@formbricks/js": "workspace:*", - "@heroicons/react": "^2.0.17", - "eslint-config-formbricks": "workspace:*", - "next": "13.2.4", + "@heroicons/react": "^2.0.18", + "next": "13.4.8", "react": "18.2.0", "react-dom": "18.2.0" }, "devDependencies": { - "@tailwindcss/forms": "^0.5.3", - "@types/node": "18.15.11", - "@types/react": "18.0.33", - "@types/react-dom": "18.0.11", - "autoprefixer": "^10.4.14", - "postcss": "^8.4.21", - "rimraf": "^5.0.0", - "tailwindcss": "^3.3.1", - "typescript": "5.0.3" + "eslint-config-formbricks": "workspace:*" } } diff --git a/apps/formbricks-com/package.json b/apps/formbricks-com/package.json index ff595434a8..39c811cde2 100644 --- a/apps/formbricks-com/package.json +++ b/apps/formbricks-com/package.json @@ -11,7 +11,7 @@ "lint": "next lint" }, "dependencies": { - "@calcom/embed-react": "^1.1.1", + "@calcom/embed-react": "^1.2.2", "@docsearch/react": "^3.5.1", "@formbricks/lib": "workspace:*", "@formbricks/types": "workspace:*", @@ -21,35 +21,25 @@ "@mapbox/rehype-prism": "^0.8.0", "@mdx-js/loader": "^2.3.0", "@mdx-js/react": "^2.3.0", - "@next/mdx": "^13.4.7", - "@paralleldrive/cuid2": "^2.2.0", + "@next/mdx": "^13.4.8", + "@paralleldrive/cuid2": "^2.2.1", "clsx": "^1.2.1", "lottie-web": "^5.12.2", - "next": "13.4.7", + "next": "13.4.8", "next-plausible": "^3.8.0", - "next-sitemap": "^4.1.3", + "next-sitemap": "^4.1.8", "prism-react-renderer": "^2.0.6", "prismjs": "^1.29.0", "react": "18.2.0", "react-dom": "18.2.0", - "react-icons": "^4.8.0", + "react-icons": "^4.10.1", "react-responsive-embed": "^2.1.0", "remark-gfm": "^3.0.1", "sharp": "^0.32.1" }, "devDependencies": { "@formbricks/tsconfig": "workspace:*", - "@tailwindcss/forms": "^0.5.3", - "@tailwindcss/typography": "^0.5.9", - "@types/node": "20.3.2", "@types/prismjs": "^1.26.0", - "@types/react": "18.2.7", - "@types/react-dom": "18.2.4", - "autoprefixer": "^10.4.14", - "eslint-config-formbricks": "workspace:*", - "postcss": "^8.4.24", - "rimraf": "^5.0.1", - "tailwindcss": "^3.3.2", - "typescript": "5.0.4" + "eslint-config-formbricks": "workspace:*" } } diff --git a/apps/web/.vscode/settings.json b/apps/web/.vscode/settings.json deleted file mode 100644 index b0ef59cf95..0000000000 --- a/apps/web/.vscode/settings.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "typescript.tsdk": "../../node_modules/.pnpm/typescript@4.9.5/node_modules/typescript/lib", - "typescript.enablePromptUseWorkspaceTsdk": true -} \ No newline at end of file diff --git a/apps/web/app/environments/[environmentId]/settings/members/AddMemberModal.tsx b/apps/web/app/environments/[environmentId]/settings/members/AddMemberModal.tsx index 0e6ad11202..52f486edb5 100644 --- a/apps/web/app/environments/[environmentId]/settings/members/AddMemberModal.tsx +++ b/apps/web/app/environments/[environmentId]/settings/members/AddMemberModal.tsx @@ -67,7 +67,7 @@ export default function AddMemberModal({ open, setOpen, onSubmit }: MemberModalP render={({ field: { onChange, value } }) => (
- onChange(v as MembershipRole)}> Select role} /> diff --git a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/responses/page.tsx b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/responses/page.tsx index 30f6492a87..e02be9caab 100644 --- a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/responses/page.tsx +++ b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/responses/page.tsx @@ -21,7 +21,6 @@ export default async function ResponsesPage({ params }) { environmentId={params.environmentId} surveyId={params.surveyId} /> - {/* @ts-expect-error Server Component */} - {/* @ts-expect-error Server Component */} - {/* @ts-expect-error Server Component */} - {/* @ts-expect-error Server Component */} diff --git a/apps/web/next.config.js b/apps/web/next.config.js index 604faf605f..b33110ae67 100644 --- a/apps/web/next.config.js +++ b/apps/web/next.config.js @@ -1,9 +1,6 @@ /** @type {import('next').NextConfig} */ -const path = require("path"); -const Dotenv = require("dotenv-webpack"); - -const rootPath = path.join(__dirname, "..", ".."); +require("@next/env").loadEnvConfig("../../"); const { createId } = require("@paralleldrive/cuid2"); @@ -63,14 +60,6 @@ const nextConfig = { }, ]; }, - webpack: (config) => { - config.plugins.push( - new Dotenv({ - path: path.resolve(rootPath, ".env"), - }) - ); - return config; - }, env: { INSTANCE_ID: createId(), INTERNAL_SECRET: createId(), diff --git a/apps/web/package.json b/apps/web/package.json index 7731dc277e..6dcba59c01 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -10,55 +10,45 @@ "lint": "next lint" }, "dependencies": { + "@formbricks/api": "workspace:*", + "@formbricks/database": "workspace:*", "@formbricks/ee": "workspace:*", "@formbricks/errors": "workspace:*", "@formbricks/js": "workspace:*", "@formbricks/lib": "workspace:*", + "@formbricks/types": "workspace:*", "@formbricks/ui": "workspace:*", "@headlessui/react": "^1.7.15", "@heroicons/react": "^2.0.18", "@json2csv/node": "^7.0.1", - "@paralleldrive/cuid2": "^2.2.0", - "@radix-ui/react-collapsible": "^1.0.2", - "@radix-ui/react-dropdown-menu": "^2.0.4", + "@next/env": "^13.4.8", + "@paralleldrive/cuid2": "^2.2.1", + "@radix-ui/react-collapsible": "^1.0.3", + "@radix-ui/react-dropdown-menu": "^2.0.5", "bcryptjs": "^2.4.3", - "dotenv-webpack": "^8.0.1", - "eslint-config-next": "^13.4.3", + "eslint-config-next": "^13.4.8", "jsonwebtoken": "^9.0.0", "lodash": "^4.17.21", - "lucide-react": "^0.221.0", - "next": "13.4.3", + "lucide-react": "^0.258.0", + "next": "13.4.8", "next-auth": "^4.22.1", - "nodemailer": "^6.9.2", - "posthog-js": "^1.57.3", + "nodemailer": "^6.9.3", + "posthog-js": "^1.68.5", "prismjs": "^1.29.0", "react": "18.2.0", "react-beautiful-dnd": "^13.1.1", "react-dom": "18.2.0", - "react-hook-form": "^7.43.9", + "react-hook-form": "^7.45.1", "react-hot-toast": "^2.4.1", - "react-icons": "^4.8.0", - "swr": "^2.1.5", - "ua-parser-js": "^1.0.35", - "zod": "^3.21.4" + "react-icons": "^4.10.1", + "swr": "^2.2.0", + "ua-parser-js": "^1.0.35" }, "devDependencies": { - "@formbricks/database": "workspace:*", "@formbricks/tsconfig": "workspace:*", - "@formbricks/types": "workspace:*", - "@tailwindcss/forms": "^0.5.3", - "@tailwindcss/typography": "^0.5.9", "@types/bcryptjs": "^2.4.2", "@types/lodash": "^4.14.195", "@types/markdown-it": "^12.2.3", - "@types/node": "20.2.3", - "@types/react": "18.2.7", - "@types/react-dom": "18.2.4", - "autoprefixer": "^10.4.14", - "eslint-config-formbricks": "workspace:*", - "postcss": "^8.4.23", - "rimraf": "^5.0.1", - "tailwindcss": "^3.3.2", - "typescript": "5.0.4" + "eslint-config-formbricks": "workspace:*" } } diff --git a/package.json b/package.json index aa6e4f2f7d..8b5ae93c3c 100644 --- a/package.json +++ b/package.json @@ -17,24 +17,22 @@ "db:migrate:deploy": "turbo run db:migrate:deploy", "db:migrate:vercel": "turbo run db:migrate:vercel", "db:push": "turbo run db:push", - "dev": "turbo run dev --parallel", + "dev": "turbo run dev --parallel --filter=!formbricks-com", "start": "turbo run start --parallel", "format": "prettier --write \"**/*.{ts,tsx,md}\"", "generate": "turbo run generate", "lint": "turbo run lint", "release": "turbo run build --filter=react^... && changeset publish", - "nuke": "rm -r node_modules; for d in **/node_modules; do echo $d; rm -r $d; done", "test": "turbo run test" }, "devDependencies": { - "@changesets/cli": "^2.26.1", - "prettier": "latest", - "rimraf": "^5.0.0", - "tsx": "^3.12.6", + "@changesets/cli": "^2.26.2", + "rimraf": "^5.0.1", + "tsx": "^3.12.7", "turbo": "latest" }, "engines": { - "node": ">=14.0.0" + "node": ">=16.0.0" }, "packageManager": "pnpm@8.1.1" } diff --git a/packages/api/package.json b/packages/api/package.json index 821b5b7ad1..78e5fbfa8e 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -22,9 +22,7 @@ "devDependencies": { "@formbricks/types": "workspace:*", "@formbricks/tsconfig": "workspace:*", - "eslint": "^8.41.0", "eslint-config-formbricks": "workspace:*", - "rimraf": "^5.0.1", - "tsup": "^6.7.0" + "tsup": "^7.1.0" } } diff --git a/packages/database/package.json b/packages/database/package.json index a771df8850..1e0cc2cd6c 100644 --- a/packages/database/package.json +++ b/packages/database/package.json @@ -23,21 +23,17 @@ "predev": "npm run generate" }, "dependencies": { - "@prisma/client": "^4.16.1", - "prisma-json-types-generator": "^2.5.0", - "zod": "^3.21.4", - "zod-prisma": "^0.5.4" + "@prisma/client": "^4.16.2" }, "devDependencies": { "@formbricks/tsconfig": "workspace:*", "@formbricks/types": "workspace:*", - "eslint": "^8.43.0", "eslint-config-formbricks": "workspace:*", - "prisma": "^4.16.1", + "prisma": "^4.16.2", + "prisma-json-types-generator": "^2.5.0", "prisma-dbml-generator": "^0.10.0", - "rimraf": "^5.0.1", "tsup": "^7.1.0", - "tsx": "^3.12.7", - "typescript": "^5.1.3" + "zod": "^3.21.4", + "zod-prisma": "^0.5.4" } } diff --git a/packages/ee/package.json b/packages/ee/package.json index 7476c532e5..e6da1d8dc2 100644 --- a/packages/ee/package.json +++ b/packages/ee/package.json @@ -12,14 +12,11 @@ "devDependencies": { "@formbricks/tsconfig": "*", "@formbricks/types": "*", - "eslint": "^8.41.0", - "eslint-config-formbricks": "workspace:*", - "rimraf": "^5.0.1", - "typescript": "^5.0.4" + "eslint-config-formbricks": "workspace:*" }, "dependencies": { "@formbricks/database": "workspace:*", - "next": "^13.4.4", + "next": "13.4.8", "stripe": "^12.6.0" } } diff --git a/packages/errors/package.json b/packages/errors/package.json index 7d6d46d19c..88e0c10d67 100644 --- a/packages/errors/package.json +++ b/packages/errors/package.json @@ -18,9 +18,7 @@ }, "devDependencies": { "@formbricks/tsconfig": "workspace:*", - "eslint": "^8.41.0", "eslint-config-formbricks": "workspace:*", - "rimraf": "^5.0.1", - "tsup": "^6.7.0" + "tsup": "^7.1.0" } } diff --git a/packages/eslint-config-formbricks/package.json b/packages/eslint-config-formbricks/package.json index 31024f89ce..aed6c00f55 100644 --- a/packages/eslint-config-formbricks/package.json +++ b/packages/eslint-config-formbricks/package.json @@ -7,14 +7,11 @@ "scripts": { "clean": "rimraf node_modules .turbo" }, - "dependencies": { + "devDependencies": { "eslint": "^8.41.0", "eslint-config-next": "^13.4.4", "eslint-config-prettier": "^8.8.0", "eslint-plugin-react": "7.32.2", "eslint-config-turbo": "latest" - }, - "devDependencies": { - "rimraf": "^5.0.1" } } diff --git a/packages/js/package.json b/packages/js/package.json index 599b5f22eb..7316de3d7b 100644 --- a/packages/js/package.json +++ b/packages/js/package.json @@ -54,7 +54,6 @@ "autoprefixer": "^10.4.14", "babel-jest": "^29.5.0", "cross-env": "^7.0.3", - "eslint": "^8.42.0", "eslint-config-formbricks": "workspace:*", "eslint-config-preact": "^1.3.0", "isomorphic-fetch": "^3.0.0", @@ -63,14 +62,10 @@ "jest-fetch-mock": "^3.0.3", "jest-preset-preact": "^4.0.5", "microbundle": "^0.15.1", - "postcss": "^8.4.24", "preact": "10.15.1", "preact-cli": "^3.4.5", "preact-render-to-string": "^6.1.0", - "regenerator-runtime": "^0.13.11", - "rimraf": "^5.0.1", - "tailwindcss": "^3.3.2", - "typescript": "^5.1.3" + "regenerator-runtime": "^0.13.11" }, "jest": { "transformIgnorePatterns": [ diff --git a/packages/js/tsconfig.json b/packages/js/tsconfig.json index b88de68d4e..2b12fcf17e 100644 --- a/packages/js/tsconfig.json +++ b/packages/js/tsconfig.json @@ -58,6 +58,6 @@ "references": [ { "path": "../../../types/tsconfig.json" } // Add this line, adjust the path to the actual location ], - "include": ["src", "../types", "../lib/client"], + "include": ["src", "../types/**/*.ts"], "exclude": ["node_modules", "dist", "coverage"] } diff --git a/packages/lib/package.json b/packages/lib/package.json index b366a619e0..e22022cab1 100644 --- a/packages/lib/package.json +++ b/packages/lib/package.json @@ -19,12 +19,10 @@ "markdown-it": "^13.0.1", "posthog-node": "^3.1.1", "server-only": "^0.0.1", - "tailwind-merge": "^1.12.0" + "tailwind-merge": "^1.13.2" }, "devDependencies": { "@formbricks/tsconfig": "*", - "eslint": "^8.41.0", - "eslint-config-formbricks": "workspace:*", - "typescript": "^5.0.4" + "eslint-config-formbricks": "workspace:*" } } diff --git a/packages/prettier-config/package.json b/packages/prettier-config/package.json index 847b740e7a..8b9e231655 100644 --- a/packages/prettier-config/package.json +++ b/packages/prettier-config/package.json @@ -8,7 +8,6 @@ }, "devDependencies": { "prettier": "^2.8.8", - "prettier-plugin-tailwindcss": "^0.3.0", - "rimraf": "^5.0.1" + "prettier-plugin-tailwindcss": "^0.3.0" } } diff --git a/packages/tailwind-config/package.json b/packages/tailwind-config/package.json index 94d0bce066..4024f1ca8c 100644 --- a/packages/tailwind-config/package.json +++ b/packages/tailwind-config/package.json @@ -2,5 +2,15 @@ "name": "@formbricks/tailwind-config", "version": "0.0.0", "private": true, - "main": "index.js" + "main": "index.js", + "scripts": { + "clean": "rimraf node_modules" + }, + "devDependencies": { + "@tailwindcss/forms": "^0.5.3", + "@tailwindcss/typography": "^0.5.9", + "autoprefixer": "^10.4.14", + "postcss": "^8.4.24", + "tailwindcss": "^3.3.2" + } } diff --git a/packages/tsconfig/base.json b/packages/tsconfig/base.json index 81fda4da0a..b34de39a12 100644 --- a/packages/tsconfig/base.json +++ b/packages/tsconfig/base.json @@ -16,5 +16,5 @@ "skipLibCheck": true, "strict": true }, - "exclude": ["node_modules"] + "exclude": ["node_modules", "dist"] } diff --git a/packages/tsconfig/nextjs.json b/packages/tsconfig/nextjs.json index 51f3ba0c5d..d5010a1bbc 100644 --- a/packages/tsconfig/nextjs.json +++ b/packages/tsconfig/nextjs.json @@ -3,20 +3,19 @@ "display": "Next.js", "extends": "./base.json", "compilerOptions": { - "target": "es5", - "lib": ["DOM", "DOM.iterable", "ESNext"], + "plugins": [{ "name": "next" }], "allowJs": true, - "skipLibCheck": true, - "strict": false, - "forceConsistentCasingInFileNames": true, - "noEmit": true, + "declaration": false, + "declarationMap": false, "incremental": true, - "esModuleInterop": true, + "jsx": "preserve", + "lib": ["dom", "dom.iterable", "esnext"], "module": "esnext", + "noEmit": true, "resolveJsonModule": true, - "isolatedModules": true, - "jsx": "preserve" + "strict": false, + "target": "es5" }, - "include": ["**/*.ts", "**/*.tsx", "next-env.d.ts"], + "include": ["src", "next-env.d.ts"], "exclude": ["node_modules"] } diff --git a/packages/tsconfig/package.json b/packages/tsconfig/package.json index a899adaf9b..77bba2c741 100644 --- a/packages/tsconfig/package.json +++ b/packages/tsconfig/package.json @@ -1,5 +1,14 @@ { "name": "@formbricks/tsconfig", "version": "1.0.0", - "private": true + "private": true, + "scripts": { + "clean": "rimraf node_modules" + }, + "devDependencies": { + "@types/node": "20.3.3", + "@types/react": "18.2.14", + "@types/react-dom": "18.2.6", + "typescript": "5.1.6" + } } diff --git a/packages/tsconfig/react-library.json b/packages/tsconfig/react-library.json index 6a281dbaf6..36b62be389 100644 --- a/packages/tsconfig/react-library.json +++ b/packages/tsconfig/react-library.json @@ -3,11 +3,9 @@ "display": "React Library", "extends": "./base.json", "compilerOptions": { + "jsx": "react-jsx", "lib": ["ES2015", "DOM"], "module": "ESNext", - "target": "ES6", - "jsx": "react-jsx", - "noUnusedLocals": true, - "noUnusedParameters": true + "target": "es6" } } diff --git a/packages/types/package.json b/packages/types/package.json index 4f851f0208..f34100cb1f 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -7,8 +7,7 @@ "clean": "rimraf node_modules .turbo" }, "devDependencies": { - "@formbricks/tsconfig": "workspace:*", - "rimraf": "^5.0.1" + "@formbricks/tsconfig": "workspace:*" }, "dependencies": { "zod": "^3.21.4" diff --git a/packages/ui/package.json b/packages/ui/package.json index 2a62c8a17c..2a168fdfe3 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -14,15 +14,10 @@ }, "devDependencies": { "@formbricks/tsconfig": "workspace:*", - "@types/react": "^18.2.7", - "@types/react-dom": "^18.2.4", - "concurrently": "^8.1.0", - "eslint": "^8.41.0", + "concurrently": "^8.2.0", "eslint-config-formbricks": "workspace:*", "postcss": "^8.4.24", - "react": "^18.2.0", - "rimraf": "^5.0.1", - "typescript": "^5.0.4" + "react": "18.2.0" }, "dependencies": { "@formbricks/lib": "workspace:*", @@ -43,15 +38,15 @@ "@radix-ui/react-select": "^1.2.2", "@radix-ui/react-switch": "^1.0.3", "@radix-ui/react-tooltip": "^1.0.6", - "boring-avatars": "^1.7.0", - "class-variance-authority": "^0.6.0", + "boring-avatars": "^1.10.1", + "class-variance-authority": "^0.6.1", "clsx": "^1.2.1", "cmdk": "^0.2.0", - "lucide-react": "^0.233.0", - "next": "^13.4.4", + "lucide-react": "^0.258.0", + "next": "13.4.8", "react-colorful": "^5.6.1", "react-confetti": "^6.1.0", - "react-dom": "^18.2.0", + "react-dom": "18.2.0", "react-radio-group": "^3.0.3", "react-use": "^17.4.0" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 230d834d02..c509b5881b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,20 +9,17 @@ importers: .: devDependencies: '@changesets/cli': - specifier: ^2.26.1 - version: 2.26.1 - prettier: - specifier: latest - version: 2.8.8 + specifier: ^2.26.2 + version: 2.26.2 rimraf: - specifier: ^5.0.0 - version: 5.0.0 + specifier: ^5.0.1 + version: 5.0.1 tsx: - specifier: ^3.12.6 - version: 3.12.6 + specifier: ^3.12.7 + version: 3.12.7 turbo: specifier: latest - version: 1.10.3 + version: 1.10.7 apps/demo: dependencies: @@ -30,14 +27,11 @@ importers: specifier: workspace:* version: link:../../packages/js '@heroicons/react': - specifier: ^2.0.17 - version: 2.0.17(react@18.2.0) - eslint-config-formbricks: - specifier: workspace:* - version: link:../../packages/eslint-config-formbricks + specifier: ^2.0.18 + version: 2.0.18(react@18.2.0) next: - specifier: 13.2.4 - version: 13.2.4(react-dom@18.2.0)(react@18.2.0) + specifier: 13.4.8 + version: 13.4.8(react-dom@18.2.0)(react@18.2.0) react: specifier: 18.2.0 version: 18.2.0 @@ -45,42 +39,18 @@ importers: specifier: 18.2.0 version: 18.2.0(react@18.2.0) devDependencies: - '@tailwindcss/forms': - specifier: ^0.5.3 - version: 0.5.3(tailwindcss@3.3.1) - '@types/node': - specifier: 18.15.11 - version: 18.15.11 - '@types/react': - specifier: 18.0.33 - version: 18.0.33 - '@types/react-dom': - specifier: 18.0.11 - version: 18.0.11 - autoprefixer: - specifier: ^10.4.14 - version: 10.4.14(postcss@8.4.21) - postcss: - specifier: ^8.4.21 - version: 8.4.21 - rimraf: - specifier: ^5.0.0 - version: 5.0.0 - tailwindcss: - specifier: ^3.3.1 - version: 3.3.1(postcss@8.4.21) - typescript: - specifier: 5.0.3 - version: 5.0.3 + eslint-config-formbricks: + specifier: workspace:* + version: link:../../packages/eslint-config-formbricks apps/formbricks-com: dependencies: '@calcom/embed-react': - specifier: ^1.1.1 - version: 1.1.1(react-dom@18.2.0)(react@18.2.0) + specifier: ^1.2.2 + version: 1.2.2(react-dom@18.2.0)(react@18.2.0) '@docsearch/react': specifier: ^3.5.1 - version: 3.5.1(@algolia/client-search@4.14.2)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.6.0) + version: 3.5.1(@algolia/client-search@4.14.2)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.6.0) '@formbricks/lib': specifier: workspace:* version: link:../../packages/lib @@ -106,11 +76,11 @@ importers: specifier: ^2.3.0 version: 2.3.0(react@18.2.0) '@next/mdx': - specifier: ^13.4.7 - version: 13.4.7(@mdx-js/loader@2.3.0)(@mdx-js/react@2.3.0) + specifier: ^13.4.8 + version: 13.4.8(@mdx-js/loader@2.3.0)(@mdx-js/react@2.3.0) '@paralleldrive/cuid2': - specifier: ^2.2.0 - version: 2.2.0 + specifier: ^2.2.1 + version: 2.2.1 clsx: specifier: ^1.2.1 version: 1.2.1 @@ -118,14 +88,14 @@ importers: specifier: ^5.12.2 version: 5.12.2 next: - specifier: 13.4.7 - version: 13.4.7(react-dom@18.2.0)(react@18.2.0) + specifier: 13.4.8 + version: 13.4.8(react-dom@18.2.0)(react@18.2.0) next-plausible: specifier: ^3.8.0 - version: 3.8.0(next@13.4.7)(react-dom@18.2.0)(react@18.2.0) + version: 3.8.0(next@13.4.8)(react-dom@18.2.0)(react@18.2.0) next-sitemap: - specifier: ^4.1.3 - version: 4.1.3(@next/env@13.4.7)(next@13.4.7) + specifier: ^4.1.8 + version: 4.1.8(next@13.4.8) prism-react-renderer: specifier: ^2.0.6 version: 2.0.6(react@18.2.0) @@ -139,8 +109,8 @@ importers: specifier: 18.2.0 version: 18.2.0(react@18.2.0) react-icons: - specifier: ^4.8.0 - version: 4.8.0(react@18.2.0) + specifier: ^4.10.1 + version: 4.10.1(react@18.2.0) react-responsive-embed: specifier: ^2.1.0 version: 2.1.0(prop-types@15.8.1)(react@18.2.0) @@ -154,45 +124,21 @@ importers: '@formbricks/tsconfig': specifier: workspace:* version: link:../../packages/tsconfig - '@tailwindcss/forms': - specifier: ^0.5.3 - version: 0.5.3(tailwindcss@3.3.2) - '@tailwindcss/typography': - specifier: ^0.5.9 - version: 0.5.9(tailwindcss@3.3.2) - '@types/node': - specifier: 20.3.2 - version: 20.3.2 '@types/prismjs': specifier: ^1.26.0 version: 1.26.0 - '@types/react': - specifier: 18.2.7 - version: 18.2.7 - '@types/react-dom': - specifier: 18.2.4 - version: 18.2.4 - autoprefixer: - specifier: ^10.4.14 - version: 10.4.14(postcss@8.4.24) eslint-config-formbricks: specifier: workspace:* version: link:../../packages/eslint-config-formbricks - postcss: - specifier: ^8.4.24 - version: 8.4.24 - rimraf: - specifier: ^5.0.1 - version: 5.0.1 - tailwindcss: - specifier: ^3.3.2 - version: 3.3.2 - typescript: - specifier: 5.0.4 - version: 5.0.4 apps/web: dependencies: + '@formbricks/api': + specifier: workspace:* + version: link:../../packages/api + '@formbricks/database': + specifier: workspace:* + version: link:../../packages/database '@formbricks/ee': specifier: workspace:* version: link:../../packages/ee @@ -205,6 +151,9 @@ importers: '@formbricks/lib': specifier: workspace:* version: link:../../packages/lib + '@formbricks/types': + specifier: workspace:* + version: link:../../packages/types '@formbricks/ui': specifier: workspace:* version: link:../../packages/ui @@ -217,24 +166,24 @@ importers: '@json2csv/node': specifier: ^7.0.1 version: 7.0.1 + '@next/env': + specifier: ^13.4.8 + version: 13.4.8 '@paralleldrive/cuid2': - specifier: ^2.2.0 - version: 2.2.0 + specifier: ^2.2.1 + version: 2.2.1 '@radix-ui/react-collapsible': - specifier: ^1.0.2 - version: 1.0.2(react-dom@18.2.0)(react@18.2.0) + specifier: ^1.0.3 + version: 1.0.3(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-dropdown-menu': - specifier: ^2.0.4 - version: 2.0.4(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) + specifier: ^2.0.5 + version: 2.0.5(react-dom@18.2.0)(react@18.2.0) bcryptjs: specifier: ^2.4.3 version: 2.4.3 - dotenv-webpack: - specifier: ^8.0.1 - version: 8.0.1(webpack@5.75.0) eslint-config-next: - specifier: ^13.4.3 - version: 13.4.3(eslint@8.43.0)(typescript@5.0.4) + specifier: ^13.4.8 + version: 13.4.8(eslint@8.44.0)(typescript@5.1.6) jsonwebtoken: specifier: ^9.0.0 version: 9.0.0 @@ -242,20 +191,20 @@ importers: specifier: ^4.17.21 version: 4.17.21 lucide-react: - specifier: ^0.221.0 - version: 0.221.0(react@18.2.0) + specifier: ^0.258.0 + version: 0.258.0(react@18.2.0) next: - specifier: 13.4.3 - version: 13.4.3(react-dom@18.2.0)(react@18.2.0) + specifier: 13.4.8 + version: 13.4.8(react-dom@18.2.0)(react@18.2.0) next-auth: specifier: ^4.22.1 - version: 4.22.1(next@13.4.3)(nodemailer@6.9.2)(react-dom@18.2.0)(react@18.2.0) + version: 4.22.1(next@13.4.8)(nodemailer@6.9.3)(react-dom@18.2.0)(react@18.2.0) nodemailer: - specifier: ^6.9.2 - version: 6.9.2 + specifier: ^6.9.3 + version: 6.9.3 posthog-js: - specifier: ^1.57.3 - version: 1.57.3 + specifier: ^1.68.5 + version: 1.68.5 prismjs: specifier: ^1.29.0 version: 1.29.0 @@ -269,39 +218,24 @@ importers: specifier: 18.2.0 version: 18.2.0(react@18.2.0) react-hook-form: - specifier: ^7.43.9 - version: 7.43.9(react@18.2.0) + specifier: ^7.45.1 + version: 7.45.1(react@18.2.0) react-hot-toast: specifier: ^2.4.1 version: 2.4.1(csstype@3.1.1)(react-dom@18.2.0)(react@18.2.0) react-icons: - specifier: ^4.8.0 - version: 4.8.0(react@18.2.0) + specifier: ^4.10.1 + version: 4.10.1(react@18.2.0) swr: - specifier: ^2.1.5 - version: 2.1.5(react@18.2.0) + specifier: ^2.2.0 + version: 2.2.0(react@18.2.0) ua-parser-js: specifier: ^1.0.35 version: 1.0.35 - zod: - specifier: ^3.21.4 - version: 3.21.4 devDependencies: - '@formbricks/database': - specifier: workspace:* - version: link:../../packages/database '@formbricks/tsconfig': specifier: workspace:* version: link:../../packages/tsconfig - '@formbricks/types': - specifier: workspace:* - version: link:../../packages/types - '@tailwindcss/forms': - specifier: ^0.5.3 - version: 0.5.3(tailwindcss@3.3.2) - '@tailwindcss/typography': - specifier: ^0.5.9 - version: 0.5.9(tailwindcss@3.3.2) '@types/bcryptjs': specifier: ^2.4.2 version: 2.4.2 @@ -311,33 +245,9 @@ importers: '@types/markdown-it': specifier: ^12.2.3 version: 12.2.3 - '@types/node': - specifier: 20.2.3 - version: 20.2.3 - '@types/react': - specifier: 18.2.7 - version: 18.2.7 - '@types/react-dom': - specifier: 18.2.4 - version: 18.2.4 - autoprefixer: - specifier: ^10.4.14 - version: 10.4.14(postcss@8.4.23) eslint-config-formbricks: specifier: workspace:* version: link:../../packages/eslint-config-formbricks - postcss: - specifier: ^8.4.23 - version: 8.4.23 - rimraf: - specifier: ^5.0.1 - version: 5.0.1 - tailwindcss: - specifier: ^3.3.2 - version: 3.3.2 - typescript: - specifier: 5.0.4 - version: 5.0.4 packages/api: dependencies: @@ -351,33 +261,18 @@ importers: '@formbricks/types': specifier: workspace:* version: link:../types - eslint: - specifier: ^8.41.0 - version: 8.41.0 eslint-config-formbricks: specifier: workspace:* version: link:../eslint-config-formbricks - rimraf: - specifier: ^5.0.1 - version: 5.0.1 tsup: - specifier: ^6.7.0 - version: 6.7.0 + specifier: ^7.1.0 + version: 7.1.0 packages/database: dependencies: '@prisma/client': - specifier: ^4.16.1 - version: 4.16.1(prisma@4.16.1) - prisma-json-types-generator: - specifier: ^2.5.0 - version: 2.5.0(prisma@4.16.1) - zod: - specifier: ^3.21.4 - version: 3.21.4 - zod-prisma: - specifier: ^0.5.4 - version: 0.5.4(prisma@4.16.1)(zod@3.21.4) + specifier: ^4.16.2 + version: 4.16.2(prisma@4.16.2) devDependencies: '@formbricks/tsconfig': specifier: workspace:* @@ -385,30 +280,27 @@ importers: '@formbricks/types': specifier: workspace:* version: link:../types - eslint: - specifier: ^8.43.0 - version: 8.43.0 eslint-config-formbricks: specifier: workspace:* version: link:../eslint-config-formbricks prisma: - specifier: ^4.16.1 - version: 4.16.1 + specifier: ^4.16.2 + version: 4.16.2 prisma-dbml-generator: specifier: ^0.10.0 version: 0.10.0 - rimraf: - specifier: ^5.0.1 - version: 5.0.1 + prisma-json-types-generator: + specifier: ^2.5.0 + version: 2.5.0(prisma@4.16.2) tsup: specifier: ^7.1.0 - version: 7.1.0(typescript@5.1.3) - tsx: - specifier: ^3.12.7 - version: 3.12.7 - typescript: - specifier: ^5.1.3 - version: 5.1.3 + version: 7.1.0 + zod: + specifier: ^3.21.4 + version: 3.21.4 + zod-prisma: + specifier: ^0.5.4 + version: 0.5.4(prisma@4.16.2)(zod@3.21.4) packages/ee: dependencies: @@ -416,8 +308,8 @@ importers: specifier: workspace:* version: link:../database next: - specifier: ^13.4.4 - version: 13.4.4(react-dom@18.2.0)(react@18.2.0) + specifier: 13.4.8 + version: 13.4.8(react-dom@18.2.0)(react@18.2.0) stripe: specifier: ^12.6.0 version: 12.6.0 @@ -428,45 +320,30 @@ importers: '@formbricks/types': specifier: '*' version: link:../types - eslint: - specifier: ^8.41.0 - version: 8.41.0 eslint-config-formbricks: specifier: workspace:* version: link:../eslint-config-formbricks - rimraf: - specifier: ^5.0.1 - version: 5.0.1 - typescript: - specifier: ^5.0.4 - version: 5.0.4 packages/errors: devDependencies: '@formbricks/tsconfig': specifier: workspace:* version: link:../tsconfig - eslint: - specifier: ^8.41.0 - version: 8.41.0 eslint-config-formbricks: specifier: workspace:* version: link:../eslint-config-formbricks - rimraf: - specifier: ^5.0.1 - version: 5.0.1 tsup: - specifier: ^6.7.0 - version: 6.7.0 + specifier: ^7.1.0 + version: 7.1.0 packages/eslint-config-formbricks: - dependencies: + devDependencies: eslint: specifier: ^8.41.0 version: 8.41.0 eslint-config-next: specifier: ^13.4.4 - version: 13.4.4(eslint@8.41.0)(typescript@5.1.3) + version: 13.4.4(eslint@8.41.0)(typescript@5.1.6) eslint-config-prettier: specifier: ^8.8.0 version: 8.8.0(eslint@8.41.0) @@ -476,10 +353,6 @@ importers: eslint-plugin-react: specifier: 7.32.2 version: 7.32.2(eslint@8.41.0) - devDependencies: - rimraf: - specifier: ^5.0.1 - version: 5.0.1 packages/js: devDependencies: @@ -503,10 +376,10 @@ importers: version: 29.5.2 '@typescript-eslint/eslint-plugin': specifier: ^5.59.9 - version: 5.59.9(@typescript-eslint/parser@5.59.9)(eslint@8.42.0)(typescript@5.1.3) + version: 5.59.9(@typescript-eslint/parser@5.59.9)(eslint@8.44.0)(typescript@5.1.6) '@typescript-eslint/parser': specifier: ^5.59.9 - version: 5.59.9(eslint@8.42.0)(typescript@5.1.3) + version: 5.59.9(eslint@8.44.0)(typescript@5.1.6) autoprefixer: specifier: ^10.4.14 version: 10.4.14(postcss@8.4.24) @@ -516,15 +389,12 @@ importers: cross-env: specifier: ^7.0.3 version: 7.0.3 - eslint: - specifier: ^8.42.0 - version: 8.42.0 eslint-config-formbricks: specifier: workspace:* version: link:../eslint-config-formbricks eslint-config-preact: specifier: ^1.3.0 - version: 1.3.0(@typescript-eslint/eslint-plugin@5.59.9)(eslint@8.42.0)(jest@29.5.0)(typescript@5.1.3) + version: 1.3.0(@typescript-eslint/eslint-plugin@5.59.9)(eslint@8.44.0)(jest@29.5.0)(typescript@5.1.6) isomorphic-fetch: specifier: ^3.0.0 version: 3.0.0 @@ -543,30 +413,18 @@ importers: microbundle: specifier: ^0.15.1 version: 0.15.1 - postcss: - specifier: ^8.4.24 - version: 8.4.24 preact: specifier: 10.15.1 version: 10.15.1 preact-cli: specifier: ^3.4.5 - version: 3.4.5(eslint@8.42.0)(preact-render-to-string@6.1.0)(preact@10.15.1) + version: 3.4.5(eslint@8.44.0)(preact-render-to-string@6.1.0)(preact@10.15.1) preact-render-to-string: specifier: ^6.1.0 version: 6.1.0(preact@10.15.1) regenerator-runtime: specifier: ^0.13.11 version: 0.13.11 - rimraf: - specifier: ^5.0.1 - version: 5.0.1 - tailwindcss: - specifier: ^3.3.2 - version: 3.3.2 - typescript: - specifier: ^5.1.3 - version: 5.1.3 packages/lib: dependencies: @@ -592,21 +450,15 @@ importers: specifier: ^0.0.1 version: 0.0.1 tailwind-merge: - specifier: ^1.12.0 - version: 1.12.0 + specifier: ^1.13.2 + version: 1.13.2 devDependencies: '@formbricks/tsconfig': specifier: '*' version: link:../tsconfig - eslint: - specifier: ^8.41.0 - version: 8.41.0 eslint-config-formbricks: specifier: workspace:* version: link:../eslint-config-formbricks - typescript: - specifier: ^5.0.4 - version: 5.0.4 packages/prettier-config: devDependencies: @@ -616,13 +468,39 @@ importers: prettier-plugin-tailwindcss: specifier: ^0.3.0 version: 0.3.0(prettier@2.8.8) - rimraf: - specifier: ^5.0.1 - version: 5.0.1 - packages/tailwind-config: {} + packages/tailwind-config: + devDependencies: + '@tailwindcss/forms': + specifier: ^0.5.3 + version: 0.5.3(tailwindcss@3.3.2) + '@tailwindcss/typography': + specifier: ^0.5.9 + version: 0.5.9(tailwindcss@3.3.2) + autoprefixer: + specifier: ^10.4.14 + version: 10.4.14(postcss@8.4.24) + postcss: + specifier: ^8.4.24 + version: 8.4.24 + tailwindcss: + specifier: ^3.3.2 + version: 3.3.2 - packages/tsconfig: {} + packages/tsconfig: + devDependencies: + '@types/node': + specifier: 20.3.3 + version: 20.3.3 + '@types/react': + specifier: 18.2.14 + version: 18.2.14 + '@types/react-dom': + specifier: 18.2.6 + version: 18.2.6 + typescript: + specifier: 5.1.6 + version: 5.1.6 packages/types: dependencies: @@ -633,9 +511,6 @@ importers: '@formbricks/tsconfig': specifier: workspace:* version: link:../tsconfig - rimraf: - specifier: ^5.0.1 - version: 5.0.1 packages/ui: dependencies: @@ -668,49 +543,49 @@ importers: version: 0.11.1(lexical@0.11.1) '@radix-ui/react-checkbox': specifier: ^1.0.4 - version: 1.0.4(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.4(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-dialog': specifier: ^1.0.4 - version: 1.0.4(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.4(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-dropdown-menu': specifier: ^2.0.5 - version: 2.0.5(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) + version: 2.0.5(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-label': specifier: ^2.0.2 - version: 2.0.2(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) + version: 2.0.2(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-popover': specifier: ^1.0.6 - version: 1.0.6(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.6(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-radio-group': specifier: ^1.1.3 - version: 1.1.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) + version: 1.1.3(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-select': specifier: ^1.2.2 - version: 1.2.2(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) + version: 1.2.2(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-switch': specifier: ^1.0.3 - version: 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.3(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-tooltip': specifier: ^1.0.6 - version: 1.0.6(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) + version: 1.0.6(react-dom@18.2.0)(react@18.2.0) boring-avatars: - specifier: ^1.7.0 - version: 1.7.0 + specifier: ^1.10.1 + version: 1.10.1 class-variance-authority: - specifier: ^0.6.0 - version: 0.6.0(typescript@5.0.4) + specifier: ^0.6.1 + version: 0.6.1 clsx: specifier: ^1.2.1 version: 1.2.1 cmdk: specifier: ^0.2.0 - version: 0.2.0(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) + version: 0.2.0(react-dom@18.2.0)(react@18.2.0) lucide-react: - specifier: ^0.233.0 - version: 0.233.0(react@18.2.0) + specifier: ^0.258.0 + version: 0.258.0(react@18.2.0) next: - specifier: ^13.4.4 - version: 13.4.4(react-dom@18.2.0)(react@18.2.0) + specifier: 13.4.8 + version: 13.4.8(react-dom@18.2.0)(react@18.2.0) react-colorful: specifier: ^5.6.1 version: 5.6.1(react-dom@18.2.0)(react@18.2.0) @@ -718,7 +593,7 @@ importers: specifier: ^6.1.0 version: 6.1.0(react@18.2.0) react-dom: - specifier: ^18.2.0 + specifier: 18.2.0 version: 18.2.0(react@18.2.0) react-radio-group: specifier: ^3.0.3 @@ -730,18 +605,9 @@ importers: '@formbricks/tsconfig': specifier: workspace:* version: link:../tsconfig - '@types/react': - specifier: ^18.2.7 - version: 18.2.7 - '@types/react-dom': - specifier: ^18.2.4 - version: 18.2.4 concurrently: - specifier: ^8.1.0 - version: 8.1.0 - eslint: - specifier: ^8.41.0 - version: 8.41.0 + specifier: ^8.2.0 + version: 8.2.0 eslint-config-formbricks: specifier: workspace:* version: link:../eslint-config-formbricks @@ -749,17 +615,15 @@ importers: specifier: ^8.4.24 version: 8.4.24 react: - specifier: ^18.2.0 + specifier: 18.2.0 version: 18.2.0 - rimraf: - specifier: ^5.0.1 - version: 5.0.1 - typescript: - specifier: ^5.0.4 - version: 5.0.4 packages: + /@aashutoshrathi/word-wrap@1.2.6: + resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} + engines: {node: '>=0.10.0'} + /@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.14.2)(algoliasearch@4.14.2)(search-insights@2.6.0): resolution: {integrity: sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==} dependencies: @@ -959,7 +823,7 @@ packages: - supports-color dev: true - /@babel/eslint-parser@7.19.1(@babel/core@7.22.5)(eslint@8.42.0): + /@babel/eslint-parser@7.19.1(@babel/core@7.22.5)(eslint@8.44.0): resolution: {integrity: sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==} engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} peerDependencies: @@ -968,7 +832,7 @@ packages: dependencies: '@babel/core': 7.22.5 '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.42.0 + eslint: 8.44.0 eslint-visitor-keys: 2.1.0 semver: 6.3.0 dev: true @@ -2429,7 +2293,6 @@ packages: dependencies: core-js-pure: 3.26.1 regenerator-runtime: 0.13.11 - dev: false /@babel/runtime@7.21.0: resolution: {integrity: sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==} @@ -2477,33 +2340,33 @@ packages: resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true - /@calcom/embed-core@1.2.1: - resolution: {integrity: sha512-KDL1gjWiixDmaLRT/Ps7Y2MgXfe1NPkVr9UG/VkkJnIVxBz8M0tLBdGTRZpLzwVpsN7VsK/Wb1p9dZ8SYTKitw==} + /@calcom/embed-core@1.3.2: + resolution: {integrity: sha512-qxVfWpmPcYN5hTnwoKTP9QAlhEAHy4TFh+Xu+IoCnJma/uI2BjqsUWJ0BXsmm0m8sTFthaBkGiFomS1LeMYO+Q==} dev: false - /@calcom/embed-react@1.1.1(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-K27CYyrHKzkc7kWNhLnrZPh0+uJy2VAab9Z8e6jKylYNWBraiAb9zyx8hOFcAMpHHOHXb1XBN76HLm3Ug7Js3A==} + /@calcom/embed-react@1.2.2(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-pFQBEUTvRNrf82ASV5dg26VDsBkmVOW4RUb9djEnOwD2cESz9cVewAOq2HbkdXzlhRuIHduNyTYUOpSQDS2vvQ==} peerDependencies: react: ^18.2.0 react-dom: ^18.2.0 dependencies: - '@calcom/embed-core': 1.2.1 - '@calcom/embed-snippet': 1.0.9 + '@calcom/embed-core': 1.3.2 + '@calcom/embed-snippet': 1.1.2 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@calcom/embed-snippet@1.0.9: - resolution: {integrity: sha512-x8/RZxYUQ3uPZButjHWiZ5Kz00+Y9v+NK2XEklnKC2JslDEzRU+KV/g8Lk5aF/xweHSioKwVLa5xBmrfR9deKg==} + /@calcom/embed-snippet@1.1.2: + resolution: {integrity: sha512-UKz4BRyxWLPfCIr7FfZP2Aa8w3ZMXcfwc3frCjNfWphJvJjaCLi0nAUBXFx6ooIPhVkbzvelnkllbqigZRZPiA==} dependencies: - '@calcom/embed-core': 1.2.1 + '@calcom/embed-core': 1.3.2 dev: false - /@changesets/apply-release-plan@6.1.3: - resolution: {integrity: sha512-ECDNeoc3nfeAe1jqJb5aFQX7CqzQhD2klXRez2JDb/aVpGUbX673HgKrnrgJRuQR/9f2TtLoYIzrGB9qwD77mg==} + /@changesets/apply-release-plan@6.1.4: + resolution: {integrity: sha512-FMpKF1fRlJyCZVYHr3CbinpZZ+6MwvOtWUuO8uo+svcATEoc1zRDcj23pAurJ2TZ/uVz1wFHH6K3NlACy0PLew==} dependencies: '@babel/runtime': 7.21.0 - '@changesets/config': 2.3.0 + '@changesets/config': 2.3.1 '@changesets/get-version-range-type': 0.3.2 '@changesets/git': 2.0.0 '@changesets/types': 5.2.1 @@ -2514,18 +2377,18 @@ packages: outdent: 0.5.0 prettier: 2.8.8 resolve-from: 5.0.0 - semver: 5.7.1 + semver: 7.5.3 dev: true - /@changesets/assemble-release-plan@5.2.3: - resolution: {integrity: sha512-g7EVZCmnWz3zMBAdrcKhid4hkHT+Ft1n0mLussFMcB1dE2zCuwcvGoy9ec3yOgPGF4hoMtgHaMIk3T3TBdvU9g==} + /@changesets/assemble-release-plan@5.2.4: + resolution: {integrity: sha512-xJkWX+1/CUaOUWTguXEbCDTyWJFECEhmdtbkjhn5GVBGxdP/JwaHBIU9sW3FR6gD07UwZ7ovpiPclQZs+j+mvg==} dependencies: '@babel/runtime': 7.21.0 '@changesets/errors': 0.1.4 - '@changesets/get-dependents-graph': 1.3.5 + '@changesets/get-dependents-graph': 1.3.6 '@changesets/types': 5.2.1 '@manypkg/get-packages': 1.1.3 - semver: 5.7.1 + semver: 7.5.3 dev: true /@changesets/changelog-git@0.1.14: @@ -2534,18 +2397,18 @@ packages: '@changesets/types': 5.2.1 dev: true - /@changesets/cli@2.26.1: - resolution: {integrity: sha512-XnTa+b51vt057fyAudvDKGB0Sh72xutQZNAdXkCqPBKO2zvs2yYZx5hFZj1u9cbtpwM6Sxtcr02/FQJfZOzemQ==} + /@changesets/cli@2.26.2: + resolution: {integrity: sha512-dnWrJTmRR8bCHikJHl9b9HW3gXACCehz4OasrXpMp7sx97ECuBGGNjJhjPhdZNCvMy9mn4BWdplI323IbqsRig==} hasBin: true dependencies: '@babel/runtime': 7.21.0 - '@changesets/apply-release-plan': 6.1.3 - '@changesets/assemble-release-plan': 5.2.3 + '@changesets/apply-release-plan': 6.1.4 + '@changesets/assemble-release-plan': 5.2.4 '@changesets/changelog-git': 0.1.14 - '@changesets/config': 2.3.0 + '@changesets/config': 2.3.1 '@changesets/errors': 0.1.4 - '@changesets/get-dependents-graph': 1.3.5 - '@changesets/get-release-plan': 3.0.16 + '@changesets/get-dependents-graph': 1.3.6 + '@changesets/get-release-plan': 3.0.17 '@changesets/git': 2.0.0 '@changesets/logger': 0.0.5 '@changesets/pre': 1.0.14 @@ -2554,7 +2417,7 @@ packages: '@changesets/write': 0.2.3 '@manypkg/get-packages': 1.1.3 '@types/is-ci': 3.0.0 - '@types/semver': 6.2.3 + '@types/semver': 7.5.0 ansi-colors: 4.1.3 chalk: 2.4.2 enquirer: 2.3.6 @@ -2567,17 +2430,17 @@ packages: p-limit: 2.3.0 preferred-pm: 3.0.3 resolve-from: 5.0.0 - semver: 5.7.1 + semver: 7.5.3 spawndamnit: 2.0.0 term-size: 2.2.1 tty-table: 4.1.6 dev: true - /@changesets/config@2.3.0: - resolution: {integrity: sha512-EgP/px6mhCx8QeaMAvWtRrgyxW08k/Bx2tpGT+M84jEdX37v3VKfh4Cz1BkwrYKuMV2HZKeHOh8sHvja/HcXfQ==} + /@changesets/config@2.3.1: + resolution: {integrity: sha512-PQXaJl82CfIXddUOppj4zWu+987GCw2M+eQcOepxN5s+kvnsZOwjEJO3DH9eVy+OP6Pg/KFEWdsECFEYTtbg6w==} dependencies: '@changesets/errors': 0.1.4 - '@changesets/get-dependents-graph': 1.3.5 + '@changesets/get-dependents-graph': 1.3.6 '@changesets/logger': 0.0.5 '@changesets/types': 5.2.1 '@manypkg/get-packages': 1.1.3 @@ -2591,22 +2454,22 @@ packages: extendable-error: 0.1.7 dev: true - /@changesets/get-dependents-graph@1.3.5: - resolution: {integrity: sha512-w1eEvnWlbVDIY8mWXqWuYE9oKhvIaBhzqzo4ITSJY9hgoqQ3RoBqwlcAzg11qHxv/b8ReDWnMrpjpKrW6m1ZTA==} + /@changesets/get-dependents-graph@1.3.6: + resolution: {integrity: sha512-Q/sLgBANmkvUm09GgRsAvEtY3p1/5OCzgBE5vX3vgb5CvW0j7CEljocx5oPXeQSNph6FXulJlXV3Re/v3K3P3Q==} dependencies: '@changesets/types': 5.2.1 '@manypkg/get-packages': 1.1.3 chalk: 2.4.2 fs-extra: 7.0.1 - semver: 5.7.1 + semver: 7.5.3 dev: true - /@changesets/get-release-plan@3.0.16: - resolution: {integrity: sha512-OpP9QILpBp1bY2YNIKFzwigKh7Qe9KizRsZomzLe6pK8IUo8onkAAVUD8+JRKSr8R7d4+JRuQrfSSNlEwKyPYg==} + /@changesets/get-release-plan@3.0.17: + resolution: {integrity: sha512-6IwKTubNEgoOZwDontYc2x2cWXfr6IKxP3IhKeK+WjyD6y3M4Gl/jdQvBw+m/5zWILSOCAaGLu2ZF6Q+WiPniw==} dependencies: '@babel/runtime': 7.21.0 - '@changesets/assemble-release-plan': 5.2.3 - '@changesets/config': 2.3.0 + '@changesets/assemble-release-plan': 5.2.4 + '@changesets/config': 2.3.1 '@changesets/pre': 1.0.14 '@changesets/read': 0.5.9 '@changesets/types': 5.2.1 @@ -2696,7 +2559,7 @@ packages: resolution: {integrity: sha512-2Pu9HDg/uP/IT10rbQ+4OrTQuxIWdKVUEdcw9/w7kZJv9NeHS6skJx1xuRiFyoGKwAzcHXnLp7csE99sj+O1YA==} dev: false - /@docsearch/react@3.5.1(@algolia/client-search@4.14.2)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.6.0): + /@docsearch/react@3.5.1(@algolia/client-search@4.14.2)(react-dom@18.2.0)(react@18.2.0)(search-insights@2.6.0): resolution: {integrity: sha512-t5mEODdLzZq4PTFAm/dvqcvZFdPDMdfPE5rJS5SC8OUq9mPzxEy6b+9THIqNM9P0ocCb4UC5jqBrxKclnuIbzQ==} peerDependencies: '@types/react': '>= 16.8.0 < 19.0.0' @@ -2713,7 +2576,6 @@ packages: '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.14.2)(algoliasearch@4.14.2)(search-insights@2.6.0) '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.14.2)(algoliasearch@4.14.2) '@docsearch/css': 3.5.1 - '@types/react': 18.2.7 algoliasearch: 4.14.2 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -2743,15 +2605,6 @@ packages: get-tsconfig: 4.4.0 dev: true - /@esbuild/android-arm64@0.17.11: - resolution: {integrity: sha512-QnK4d/zhVTuV4/pRM4HUjcsbl43POALU2zvBynmrrqZt9LPcLA3x1fTZPBg2RRguBQnJcnU059yKr+bydkntjg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-arm64@0.18.10: resolution: {integrity: sha512-ynm4naLbNbK0ajf9LUWtQB+6Vfg1Z/AplArqr4tGebC00Z6m9Y91OVIcjDa461wGcZwcaHYaZAab4yJxfhisTQ==} engines: {node: '>=12'} @@ -2770,15 +2623,6 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.17.11: - resolution: {integrity: sha512-CdyX6sRVh1NzFCsf5vw3kULwlAhfy9wVt8SZlrhQ7eL2qBjGbFhRBWkkAzuZm9IIEOCKJw4DXA6R85g+qc8RDw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-arm@0.18.10: resolution: {integrity: sha512-3KClmVNd+Fku82uZJz5C4Rx8m1PPmWUFz5Zkw8jkpZPOmsq+EG1TTOtw1OXkHuX3WczOFQigrtf60B1ijKwNsg==} engines: {node: '>=12'} @@ -2788,15 +2632,6 @@ packages: dev: true optional: true - /@esbuild/android-x64@0.17.11: - resolution: {integrity: sha512-3PL3HKtsDIXGQcSCKtWD/dy+mgc4p2Tvo2qKgKHj9Yf+eniwFnuoQ0OUhlSfAEpKAFzF9N21Nwgnap6zy3L3MQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - /@esbuild/android-x64@0.18.10: resolution: {integrity: sha512-vFfXj8P9Yfjh54yqUDEHKzqzYuEfPyAOl3z7R9hjkwt+NCvbn9VMxX+IILnAfdImRBfYVItgSUsqGKhJFnBwZw==} engines: {node: '>=12'} @@ -2806,15 +2641,6 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.17.11: - resolution: {integrity: sha512-pJ950bNKgzhkGNO3Z9TeHzIFtEyC2GDQL3wxkMApDEghYx5Qers84UTNc1bAxWbRkuJOgmOha5V0WUeh8G+YGw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - /@esbuild/darwin-arm64@0.18.10: resolution: {integrity: sha512-k2OJQ7ZxE6sVc91+MQeZH9gFeDAH2uIYALPAwTjTCvcPy9Dzrf7V7gFUQPYkn09zloWhQ+nvxWHia2x2ZLR0sQ==} engines: {node: '>=12'} @@ -2824,15 +2650,6 @@ packages: dev: true optional: true - /@esbuild/darwin-x64@0.17.11: - resolution: {integrity: sha512-iB0dQkIHXyczK3BZtzw1tqegf0F0Ab5texX2TvMQjiJIWXAfM4FQl7D909YfXWnB92OQz4ivBYQ2RlxBJrMJOw==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - /@esbuild/darwin-x64@0.18.10: resolution: {integrity: sha512-tnz/mdZk1L1Z3WpGjin/L2bKTe8/AKZpI8fcCLtH+gq8WXWsCNJSxlesAObV4qbtTl6pG5vmqFXfWUQ5hV8PAQ==} engines: {node: '>=12'} @@ -2842,15 +2659,6 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64@0.17.11: - resolution: {integrity: sha512-7EFzUADmI1jCHeDRGKgbnF5sDIceZsQGapoO6dmw7r/ZBEKX7CCDnIz8m9yEclzr7mFsd+DyasHzpjfJnmBB1Q==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/freebsd-arm64@0.18.10: resolution: {integrity: sha512-QJluV0LwBrbHnYYwSKC+K8RGz0g/EyhpQH1IxdoFT0nM7PfgjE+aS8wxq/KFEsU0JkL7U/EEKd3O8xVBxXb2aA==} engines: {node: '>=12'} @@ -2860,15 +2668,6 @@ packages: dev: true optional: true - /@esbuild/freebsd-x64@0.17.11: - resolution: {integrity: sha512-iPgenptC8i8pdvkHQvXJFzc1eVMR7W2lBPrTE6GbhR54sLcF42mk3zBOjKPOodezzuAz/KSu8CPyFSjcBMkE9g==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/freebsd-x64@0.18.10: resolution: {integrity: sha512-Hi/ycUkS6KTw+U9G5PK5NoK7CZboicaKUSVs0FSiPNtuCTzK6HNM4DIgniH7hFaeuszDS9T4dhAHWiLSt/Y5Ng==} engines: {node: '>=12'} @@ -2878,15 +2677,6 @@ packages: dev: true optional: true - /@esbuild/linux-arm64@0.17.11: - resolution: {integrity: sha512-Qxth3gsWWGKz2/qG2d5DsW/57SeA2AmpSMhdg9TSB5Svn2KDob3qxfQSkdnWjSd42kqoxIPy3EJFs+6w1+6Qjg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-arm64@0.18.10: resolution: {integrity: sha512-Nz6XcfRBOO7jSrVpKAyEyFOPGhySPNlgumSDhWAspdQQ11ub/7/NZDMhWDFReE9QH/SsCOCLQbdj0atAk/HMOQ==} engines: {node: '>=12'} @@ -2896,15 +2686,6 @@ packages: dev: true optional: true - /@esbuild/linux-arm@0.17.11: - resolution: {integrity: sha512-M9iK/d4lgZH0U5M1R2p2gqhPV/7JPJcRz+8O8GBKVgqndTzydQ7B2XGDbxtbvFkvIs53uXTobOhv+RyaqhUiMg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-arm@0.18.10: resolution: {integrity: sha512-HfFoxY172tVHPIvJy+FHxzB4l8xU7e5cxmNS11cQ2jt4JWAukn/7LXaPdZid41UyTweqa4P/1zs201gRGCTwHw==} engines: {node: '>=12'} @@ -2914,15 +2695,6 @@ packages: dev: true optional: true - /@esbuild/linux-ia32@0.17.11: - resolution: {integrity: sha512-dB1nGaVWtUlb/rRDHmuDQhfqazWE0LMro/AIbT2lWM3CDMHJNpLckH+gCddQyhhcLac2OYw69ikUMO34JLt3wA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-ia32@0.18.10: resolution: {integrity: sha512-otMdmSmkMe+pmiP/bZBjfphyAsTsngyT9RCYwoFzqrveAbux9nYitDTpdgToG0Z0U55+PnH654gCH2GQ1aB6Yw==} engines: {node: '>=12'} @@ -2941,15 +2713,6 @@ packages: dev: true optional: true - /@esbuild/linux-loong64@0.17.11: - resolution: {integrity: sha512-aCWlq70Q7Nc9WDnormntGS1ar6ZFvUpqr8gXtO+HRejRYPweAFQN615PcgaSJkZjhHp61+MNLhzyVALSF2/Q0g==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-loong64@0.18.10: resolution: {integrity: sha512-t8tjFuON1koxskzQ4VFoh0T5UDUMiLYjwf9Wktd0tx8AoK6xgU+5ubKOpWpcnhEQ2tESS5u0v6QuN8PX/ftwcQ==} engines: {node: '>=12'} @@ -2959,15 +2722,6 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el@0.17.11: - resolution: {integrity: sha512-cGeGNdQxqY8qJwlYH1BP6rjIIiEcrM05H7k3tR7WxOLmD1ZxRMd6/QIOWMb8mD2s2YJFNRuNQ+wjMhgEL2oCEw==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-mips64el@0.18.10: resolution: {integrity: sha512-+dUkcVzcfEJHz3HEnVpIJu8z8Wdn2n/nWMWdl6FVPFGJAVySO4g3+XPzNKFytVFwf8hPVDwYXzVcu8GMFqsqZw==} engines: {node: '>=12'} @@ -2977,15 +2731,6 @@ packages: dev: true optional: true - /@esbuild/linux-ppc64@0.17.11: - resolution: {integrity: sha512-BdlziJQPW/bNe0E8eYsHB40mYOluS+jULPCjlWiHzDgr+ZBRXPtgMV1nkLEGdpjrwgmtkZHEGEPaKdS/8faLDA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-ppc64@0.18.10: resolution: {integrity: sha512-sO3PjjxEGy+PY2qkGe2gwJbXdZN9wAYpVBZWFD0AwAoKuXRkWK0/zaMQ5ekUFJDRDCRm8x5U0Axaub7ynH/wVg==} engines: {node: '>=12'} @@ -2995,15 +2740,6 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64@0.17.11: - resolution: {integrity: sha512-MDLwQbtF+83oJCI1Cixn68Et/ME6gelmhssPebC40RdJaect+IM+l7o/CuG0ZlDs6tZTEIoxUe53H3GmMn8oMA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-riscv64@0.18.10: resolution: {integrity: sha512-JDtdbJg3yjDeXLv4lZYE1kiTnxv73/8cbPHY9T/dUKi8rYOM/k5b3W4UJLMUksuQ6nTm5c89W1nADsql6FW75A==} engines: {node: '>=12'} @@ -3013,15 +2749,6 @@ packages: dev: true optional: true - /@esbuild/linux-s390x@0.17.11: - resolution: {integrity: sha512-4N5EMESvws0Ozr2J94VoUD8HIRi7X0uvUv4c0wpTHZyZY9qpaaN7THjosdiW56irQ4qnJ6Lsc+i+5zGWnyqWqQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-s390x@0.18.10: resolution: {integrity: sha512-NLuSKcp8WckjD2a7z5kzLiCywFwBTMlIxDNuud1AUGVuwBBJSkuubp6cNjJ0p5c6CZaA3QqUGwjHJBiG1SoOFw==} engines: {node: '>=12'} @@ -3031,15 +2758,6 @@ packages: dev: true optional: true - /@esbuild/linux-x64@0.17.11: - resolution: {integrity: sha512-rM/v8UlluxpytFSmVdbCe1yyKQd/e+FmIJE2oPJvbBo+D0XVWi1y/NQ4iTNx+436WmDHQBjVLrbnAQLQ6U7wlw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - /@esbuild/linux-x64@0.18.10: resolution: {integrity: sha512-wj2KRsCsFusli+6yFgNO/zmmLslislAWryJnodteRmGej7ZzinIbMdsyp13rVGde88zxJd5vercNYK9kuvlZaQ==} engines: {node: '>=12'} @@ -3049,15 +2767,6 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.17.11: - resolution: {integrity: sha512-4WaAhuz5f91h3/g43VBGdto1Q+X7VEZfpcWGtOFXnggEuLvjV+cP6DyLRU15IjiU9fKLLk41OoJfBFN5DhPvag==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/netbsd-x64@0.18.10: resolution: {integrity: sha512-pQ9QqxEPI3cVRZyUtCoZxhZK3If+7RzR8L2yz2+TDzdygofIPOJFaAPkEJ5rYIbUO101RaiYxfdOBahYexLk5A==} engines: {node: '>=12'} @@ -3067,15 +2776,6 @@ packages: dev: true optional: true - /@esbuild/openbsd-x64@0.17.11: - resolution: {integrity: sha512-UBj135Nx4FpnvtE+C8TWGp98oUgBcmNmdYgl5ToKc0mBHxVVqVE7FUS5/ELMImOp205qDAittL6Ezhasc2Ev/w==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - /@esbuild/openbsd-x64@0.18.10: resolution: {integrity: sha512-k8GTIIW9I8pEEfoOUm32TpPMgSg06JhL5DO+ql66aLTkOQUs0TxCA67Wi7pv6z8iF8STCGcNbm3UWFHLuci+ag==} engines: {node: '>=12'} @@ -3085,15 +2785,6 @@ packages: dev: true optional: true - /@esbuild/sunos-x64@0.17.11: - resolution: {integrity: sha512-1/gxTifDC9aXbV2xOfCbOceh5AlIidUrPsMpivgzo8P8zUtczlq1ncFpeN1ZyQJ9lVs2hILy1PG5KPp+w8QPPg==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - /@esbuild/sunos-x64@0.18.10: resolution: {integrity: sha512-vIGYJIdEI6d4JBucAx8py792G8J0GP40qSH+EvSt80A4zvGd6jph+5t1g+eEXcS2aRpgZw6CrssNCFZxTdEsxw==} engines: {node: '>=12'} @@ -3103,15 +2794,6 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.17.11: - resolution: {integrity: sha512-vtSfyx5yRdpiOW9yp6Ax0zyNOv9HjOAw8WaZg3dF5djEHKKm3UnoohftVvIJtRh0Ec7Hso0RIdTqZvPXJ7FdvQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-arm64@0.18.10: resolution: {integrity: sha512-kRhNcMZFGMW+ZHCarAM1ypr8OZs0k688ViUCetVCef9p3enFxzWeBg9h/575Y0nsFu0ZItluCVF5gMR2pwOEpA==} engines: {node: '>=12'} @@ -3121,15 +2803,6 @@ packages: dev: true optional: true - /@esbuild/win32-ia32@0.17.11: - resolution: {integrity: sha512-GFPSLEGQr4wHFTiIUJQrnJKZhZjjq4Sphf+mM76nQR6WkQn73vm7IsacmBRPkALfpOCHsopSvLgqdd4iUW2mYw==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-ia32@0.18.10: resolution: {integrity: sha512-AR9PX1whYaYh9p0EOaKna0h48F/A101Mt/ag72+kMkkBZXPQ7cjbz2syXI/HI3OlBdUytSdHneljfjvUoqwqiQ==} engines: {node: '>=12'} @@ -3139,15 +2812,6 @@ packages: dev: true optional: true - /@esbuild/win32-x64@0.17.11: - resolution: {integrity: sha512-N9vXqLP3eRL8BqSy8yn4Y98cZI2pZ8fyuHx6lKjiG2WABpT2l01TXdzq5Ma2ZUBzfB7tx5dXVhge8X9u0S70ZQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - /@esbuild/win32-x64@0.18.10: resolution: {integrity: sha512-5sTkYhAGHNRr6bVf4RM0PsscqVr6/DBYdrlMh168oph3usid3lKHcHEEHmr34iZ9GHeeg2juFOxtpl6XyC3tpw==} engines: {node: '>=12'} @@ -3165,24 +2829,15 @@ packages: dependencies: eslint: 8.41.0 eslint-visitor-keys: 3.4.1 - - /@eslint-community/eslint-utils@4.2.0(eslint@8.42.0): - resolution: {integrity: sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint: 8.42.0 - eslint-visitor-keys: 3.4.1 dev: true - /@eslint-community/eslint-utils@4.2.0(eslint@8.43.0): + /@eslint-community/eslint-utils@4.2.0(eslint@8.44.0): resolution: {integrity: sha512-gB8T4H4DEfX2IV9zGDJPOBgP1e/DbfCPDTtEqUMckpvzS1OYtva8JdFYBqMwYk7xAQ429WGF/UPqn8uQ//h2vQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.43.0 + eslint: 8.44.0 eslint-visitor-keys: 3.4.1 /@eslint-community/regexpp@4.4.0: @@ -3204,54 +2859,43 @@ packages: strip-json-comments: 3.1.1 transitivePeerDependencies: - supports-color + dev: true + + /@eslint/eslintrc@2.1.0: + resolution: {integrity: sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.0 + globals: 13.19.0 + ignore: 5.2.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color /@eslint/js@8.41.0: resolution: {integrity: sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - - /@eslint/js@8.42.0: - resolution: {integrity: sha512-6SWlXpWU5AvId8Ac7zjzmIOqMOba/JWY8XZ4A7q7Gn1Vlfg/SFFIlrtHXt9nPn4op9ZPAkl91Jao+QQv3r/ukw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@eslint/js@8.43.0: - resolution: {integrity: sha512-s2UHCoiXfxMvmfzqoN+vrQ84ahUSYde9qNO1MdxmoEhyHWsfmwOpFlwYV+ePJEVc7gFnATGUi376WowX1N7tFg==} + /@eslint/js@8.44.0: + resolution: {integrity: sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - /@floating-ui/core@0.7.3: - resolution: {integrity: sha512-buc8BXHmG9l82+OQXOFU3Kr2XQx9ys01U/Q9HMIrZ300iLc8HLMgh7dcCqgYzAzf4BkoQvDcXf5Y+CuEZ5JBYg==} - dev: false - /@floating-ui/core@1.2.6: resolution: {integrity: sha512-EvYTiXet5XqweYGClEmpu3BoxmsQ4hkj3QaYA6qEnigCWffTP3vNRwBReTdrwDwo7OoJ3wM8Uoe9Uk4n+d4hfg==} dev: false - /@floating-ui/dom@0.5.4: - resolution: {integrity: sha512-419BMceRLq0RrmTSDxn8hf9R3VCJv2K9PUfugh5JyEFmdjzDo+e8U5EdR8nzKq8Yj1htzLm3b6eQEEam3/rrtg==} - dependencies: - '@floating-ui/core': 0.7.3 - dev: false - /@floating-ui/dom@1.2.9: resolution: {integrity: sha512-sosQxsqgxMNkV3C+3UqTS6LxP7isRLwX8WMepp843Rb3/b0Wz8+MdUkxJksByip3C2WwLugLHN1b4ibn//zKwQ==} dependencies: '@floating-ui/core': 1.2.6 dev: false - /@floating-ui/react-dom@0.7.2(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-1T0sJcpHgX/u4I1OzIEhlcrvkUN8ln39nz7fMoE/2HDHrPiMFoOGR7++GYyfUmIQHkkrTinaeQsO3XWubjSvGg==} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - dependencies: - '@floating-ui/dom': 0.5.4 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - use-isomorphic-layout-effect: 1.1.2(@types/react@18.2.7)(react@18.2.0) - transitivePeerDependencies: - - '@types/react' - dev: false - /@floating-ui/react-dom@2.0.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Ke0oU3SeuABC2C4OFu2mSAwHIP5WUiV98O9YWoHV4Q5aT6E9k06DV0Khi5uYspR8xmmBk08t8ZDcz3TR3ARkEg==} peerDependencies: @@ -3279,14 +2923,6 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@heroicons/react@2.0.17(react@18.2.0): - resolution: {integrity: sha512-90GMZktkA53YbNzHp6asVEDevUQCMtxWH+2UK2S8OpnLEu7qckTJPhNxNQG52xIR1WFTwFqtH6bt7a60ZNcLLA==} - peerDependencies: - react: '>= 16' - dependencies: - react: 18.2.0 - dev: false - /@heroicons/react@2.0.18(react@18.2.0): resolution: {integrity: sha512-7TyMjRrZZMBPa+/5Y8lN0iyvUU/01PeMGX2+RE7cQWpEUIcb4QotzUObFkJDejj/HUH4qjP/eQ0gzzKs2f+6Yw==} peerDependencies: @@ -3314,6 +2950,7 @@ packages: minimatch: 3.1.2 transitivePeerDependencies: - supports-color + dev: true /@humanwhocodes/module-importer@1.0.1: resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} @@ -3328,7 +2965,7 @@ packages: dependencies: string-width: 5.1.2 string-width-cjs: /string-width@4.2.3 - strip-ansi: 7.0.1 + strip-ansi: 7.1.0 strip-ansi-cjs: /strip-ansi@6.0.1 wrap-ansi: 8.1.0 wrap-ansi-cjs: /wrap-ansi@7.0.0 @@ -3355,7 +2992,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 20.3.2 + '@types/node': 20.3.3 chalk: 4.1.2 jest-message-util: 27.5.1 jest-util: 27.5.1 @@ -3367,7 +3004,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.5.0 - '@types/node': 20.3.2 + '@types/node': 20.3.3 chalk: 4.1.2 jest-message-util: 29.5.0 jest-util: 29.5.0 @@ -3388,14 +3025,14 @@ packages: '@jest/test-result': 29.5.0 '@jest/transform': 29.5.0 '@jest/types': 29.5.0 - '@types/node': 20.3.2 + '@types/node': 20.3.3 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.7.0 exit: 0.1.2 graceful-fs: 4.2.10 jest-changed-files: 29.5.0 - jest-config: 29.5.0(@types/node@20.3.2) + jest-config: 29.5.0(@types/node@20.3.3) jest-haste-map: 29.5.0 jest-message-util: 29.5.0 jest-regex-util: 29.4.3 @@ -3422,7 +3059,7 @@ packages: dependencies: '@jest/fake-timers': 29.5.0 '@jest/types': 29.5.0 - '@types/node': 20.3.2 + '@types/node': 20.3.3 jest-mock: 29.5.0 dev: true @@ -3449,7 +3086,7 @@ packages: dependencies: '@jest/types': 29.5.0 '@sinonjs/fake-timers': 10.0.2 - '@types/node': 20.3.2 + '@types/node': 20.3.3 jest-message-util: 29.5.0 jest-mock: 29.5.0 jest-util: 29.5.0 @@ -3482,7 +3119,7 @@ packages: '@jest/transform': 29.5.0 '@jest/types': 29.5.0 '@jridgewell/trace-mapping': 0.3.17 - '@types/node': 20.3.2 + '@types/node': 20.3.3 chalk: 4.1.2 collect-v8-coverage: 1.0.1 exit: 0.1.2 @@ -3602,7 +3239,7 @@ packages: dependencies: '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 20.3.2 + '@types/node': 20.3.3 '@types/yargs': 16.0.5 chalk: 4.1.2 dev: true @@ -3614,7 +3251,7 @@ packages: '@jest/schemas': 29.4.3 '@types/istanbul-lib-coverage': 2.0.4 '@types/istanbul-reports': 3.0.1 - '@types/node': 20.3.2 + '@types/node': 20.3.3 '@types/yargs': 17.0.24 chalk: 4.1.2 dev: true @@ -3984,40 +3621,28 @@ packages: react: '>=16' dependencies: '@types/mdx': 2.0.3 - '@types/react': 18.2.7 + '@types/react': 18.2.14 react: 18.2.0 dev: false - /@next/env@13.2.4: - resolution: {integrity: sha512-+Mq3TtpkeeKFZanPturjcXt+KHfKYnLlX6jMLyCrmpq6OOs4i1GqBOAauSkii9QeKCMTYzGppar21JU57b/GEA==} - dev: false - - /@next/env@13.4.3: - resolution: {integrity: sha512-pa1ErjyFensznttAk3EIv77vFbfSYT6cLzVRK5jx4uiRuCQo+m2wCFAREaHKIy63dlgvOyMlzh6R8Inu8H3KrQ==} - dev: false - - /@next/env@13.4.4: - resolution: {integrity: sha512-q/y7VZj/9YpgzDe64Zi6rY1xPizx80JjlU2BTevlajtaE3w1LqweH1gGgxou2N7hdFosXHjGrI4OUvtFXXhGLg==} - dev: false - - /@next/env@13.4.7: - resolution: {integrity: sha512-ZlbiFulnwiFsW9UV1ku1OvX/oyIPLtMk9p/nnvDSwI0s7vSoZdRtxXNsaO+ZXrLv/pMbXVGq4lL8TbY9iuGmVw==} - dev: false - - /@next/eslint-plugin-next@13.4.3: - resolution: {integrity: sha512-5B0uOnh7wyUY9vNNdIA6NUvWozhrZaTMZOzdirYAefqD0ZBK5C/h3+KMYdCKrR7JrXGvVpWnHtv54b3dCzwICA==} - dependencies: - glob: 7.1.7 + /@next/env@13.4.8: + resolution: {integrity: sha512-twuSf1klb3k9wXI7IZhbZGtFCWvGD4wXTY2rmvzIgVhXhs7ISThrbNyutBx3jWIL8Y/Hk9+woytFz5QsgtcRKQ==} dev: false /@next/eslint-plugin-next@13.4.4: resolution: {integrity: sha512-5jnh7q6I15efnjR/rR+/TGTc9hn53g3JTbEjAMjmeQiExKqEUgIXqrHI5zlTNlNyzCPkBB860/ctxXheZaF2Vw==} + dependencies: + glob: 7.1.7 + dev: true + + /@next/eslint-plugin-next@13.4.8: + resolution: {integrity: sha512-cmfVHpxWjjcETFt2WHnoFU6EmY69QcPJRlRNAooQlNe53Ke90vg1Ci/dkPffryJZaxxiRziP9bQrV8lDVCn3Fw==} dependencies: glob: 7.1.7 dev: false - /@next/mdx@13.4.7(@mdx-js/loader@2.3.0)(@mdx-js/react@2.3.0): - resolution: {integrity: sha512-btb4ym4Gz72ACQjSlK+AsJRx5IYcS9O0FgUWK4/+9AJxLQtr5XNOAfpy1ioLqXG7REVvwWAea4z6Hp0agwc+Vg==} + /@next/mdx@13.4.8(@mdx-js/loader@2.3.0)(@mdx-js/react@2.3.0): + resolution: {integrity: sha512-8h0mjPlSKC/KpREJOVhVht6cjXDp5oGBiJw6lYVbRBlFcGSLEt4aehHw8y/aZ2a5o2SThAjh5QOlVbeCz2N1ug==} peerDependencies: '@mdx-js/loader': '>=0.15.0' '@mdx-js/react': '>=0.15.0' @@ -4032,26 +3657,8 @@ packages: source-map: 0.7.4 dev: false - /@next/swc-android-arm-eabi@13.2.4: - resolution: {integrity: sha512-DWlalTSkLjDU11MY11jg17O1gGQzpRccM9Oes2yTqj2DpHndajrXHGxj9HGtJ+idq2k7ImUdJVWS2h2l/EDJOw==} - engines: {node: '>= 10'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: false - optional: true - - /@next/swc-android-arm64@13.2.4: - resolution: {integrity: sha512-sRavmUImUCf332Gy+PjIfLkMhiRX1Ez4SI+3vFDRs1N5eXp+uNzjFUK/oLMMOzk6KFSkbiK/3Wt8+dHQR/flNg==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: false - optional: true - - /@next/swc-darwin-arm64@13.2.4: - resolution: {integrity: sha512-S6vBl+OrInP47TM3LlYx65betocKUUlTZDDKzTiRDbsRESeyIkBtZ6Qi5uT2zQs4imqllJznVjFd1bXLx3Aa6A==} + /@next/swc-darwin-arm64@13.4.8: + resolution: {integrity: sha512-MSFplVM4dTWOuKAUv0XR9gY7AWtMSBu9os9f+kp+s5rWhM1I2CdR3obFttd6366nS/W/VZxbPM5oEIdlIa46zA==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -4059,35 +3666,8 @@ packages: dev: false optional: true - /@next/swc-darwin-arm64@13.4.3: - resolution: {integrity: sha512-yx18udH/ZmR4Bw4M6lIIPE3JxsAZwo04iaucEfA2GMt1unXr2iodHUX/LAKNyi6xoLP2ghi0E+Xi1f4Qb8f1LQ==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@next/swc-darwin-arm64@13.4.4: - resolution: {integrity: sha512-xfjgXvp4KalNUKZMHmsFxr1Ug+aGmmO6NWP0uoh4G3WFqP/mJ1xxfww0gMOeMeSq/Jyr5k7DvoZ2Pv+XOITTtw==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@next/swc-darwin-arm64@13.4.7: - resolution: {integrity: sha512-VZTxPv1b59KGiv/pZHTO5Gbsdeoxcj2rU2cqJu03btMhHpn3vwzEK0gUSVC/XW96aeGO67X+cMahhwHzef24/w==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@next/swc-darwin-x64@13.2.4: - resolution: {integrity: sha512-a6LBuoYGcFOPGd4o8TPo7wmv5FnMr+Prz+vYHopEDuhDoMSHOnC+v+Ab4D7F0NMZkvQjEJQdJS3rqgFhlZmKlw==} + /@next/swc-darwin-x64@13.4.8: + resolution: {integrity: sha512-Reox+UXgonon9P0WNDE6w85DGtyBqGitl/ryznOvn6TvfxEaZIpTgeu3ZrJLU9dHSMhiK7YAM793mE/Zii2/Qw==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -4095,53 +3675,8 @@ packages: dev: false optional: true - /@next/swc-darwin-x64@13.4.3: - resolution: {integrity: sha512-Mi8xJWh2IOjryAM1mx18vwmal9eokJ2njY4nDh04scy37F0LEGJ/diL6JL6kTXi0UfUCGbMsOItf7vpReNiD2A==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@next/swc-darwin-x64@13.4.4: - resolution: {integrity: sha512-ZY9Ti1hkIwJsxGus3nlubIkvYyB0gNOYxKrfsOrLEqD0I2iCX8D7w8v6QQZ2H+dDl6UT29oeEUdDUNGk4UEpfg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@next/swc-darwin-x64@13.4.7: - resolution: {integrity: sha512-gO2bw+2Ymmga+QYujjvDz9955xvYGrWofmxTq7m70b9pDPvl7aDFABJOZ2a8SRCuSNB5mXU8eTOmVVwyp/nAew==} - engines: {node: '>= 10'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /@next/swc-freebsd-x64@13.2.4: - resolution: {integrity: sha512-kkbzKVZGPaXRBPisoAQkh3xh22r+TD+5HwoC5bOkALraJ0dsOQgSMAvzMXKsN3tMzJUPS0tjtRf1cTzrQ0I5vQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: false - optional: true - - /@next/swc-linux-arm-gnueabihf@13.2.4: - resolution: {integrity: sha512-7qA1++UY0fjprqtjBZaOA6cas/7GekpjVsZn/0uHvquuITFCdKGFCsKNBx3S0Rpxmx6WYo0GcmhNRM9ru08BGg==} - engines: {node: '>= 10'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@next/swc-linux-arm64-gnu@13.2.4: - resolution: {integrity: sha512-xzYZdAeq883MwXgcwc72hqo/F/dwUxCukpDOkx/j1HTq/J0wJthMGjinN9wH5bPR98Mfeh1MZJ91WWPnZOedOg==} + /@next/swc-linux-arm64-gnu@13.4.8: + resolution: {integrity: sha512-kdyzYvAYtqQVgzIKNN7e1rLU8aZv86FDSRqPlOkKZlvqudvTO0iohuTPmnEEDlECeBM6qRPShNffotDcU/R2KA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -4149,8 +3684,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-gnu@13.4.3: - resolution: {integrity: sha512-aBvtry4bxJ1xwKZ/LVPeBGBwWVwxa4bTnNkRRw6YffJnn/f4Tv4EGDPaVeYHZGQVA56wsGbtA6nZMuWs/EIk4Q==} + /@next/swc-linux-arm64-musl@13.4.8: + resolution: {integrity: sha512-oWxx4yRkUGcR81XwbI+T0zhZ3bDF6V1aVLpG+C7hSG50ULpV8gC39UxVO22/bv93ZlcfMY4zl8xkz9Klct6dpQ==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -4158,62 +3693,8 @@ packages: dev: false optional: true - /@next/swc-linux-arm64-gnu@13.4.4: - resolution: {integrity: sha512-+KZnDeMShYkpkqAvGCEDeqYTRADJXc6SY1jWXz+Uo6qWQO/Jd9CoyhTJwRSxvQA16MoYzvILkGaDqirkRNctyA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@next/swc-linux-arm64-gnu@13.4.7: - resolution: {integrity: sha512-6cqp3vf1eHxjIDhEOc7Mh/s8z1cwc/l5B6ZNkOofmZVyu1zsbEM5Hmx64s12Rd9AYgGoiCz4OJ4M/oRnkE16/Q==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@next/swc-linux-arm64-musl@13.2.4: - resolution: {integrity: sha512-8rXr3WfmqSiYkb71qzuDP6I6R2T2tpkmf83elDN8z783N9nvTJf2E7eLx86wu2OJCi4T05nuxCsh4IOU3LQ5xw==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@next/swc-linux-arm64-musl@13.4.3: - resolution: {integrity: sha512-krT+2G3kEsEUvZoYte3/2IscscDraYPc2B+fDJFipPktJmrv088Pei/RjrhWm5TMIy5URYjZUoDZdh5k940Dyw==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@next/swc-linux-arm64-musl@13.4.4: - resolution: {integrity: sha512-evC1twrny2XDT4uOftoubZvW3EG0zs0ZxMwEtu/dDGVRO5n5pT48S8qqEIBGBUZYu/Xx4zzpOkIxx1vpWdE+9A==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@next/swc-linux-arm64-musl@13.4.7: - resolution: {integrity: sha512-T1kD2FWOEy5WPidOn1si0rYmWORNch4a/NR52Ghyp4q7KyxOCuiOfZzyhVC5tsLIBDH3+cNdB5DkD9afpNDaOw==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@next/swc-linux-x64-gnu@13.2.4: - resolution: {integrity: sha512-Ngxh51zGSlYJ4EfpKG4LI6WfquulNdtmHg1yuOYlaAr33KyPJp4HeN/tivBnAHcZkoNy0hh/SbwDyCnz5PFJQQ==} + /@next/swc-linux-x64-gnu@13.4.8: + resolution: {integrity: sha512-anhtvuO6eE9YRhYnaEGTfbpH3L5gT/9qPFcNoi6xS432r/4DAtpJY8kNktqkTVevVIC/pVumqO8tV59PR3zbNg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -4221,8 +3702,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-gnu@13.4.3: - resolution: {integrity: sha512-AMdFX6EKJjC0G/CM6hJvkY8wUjCcbdj3Qg7uAQJ7PVejRWaVt0sDTMavbRfgMchx8h8KsAudUCtdFkG9hlEClw==} + /@next/swc-linux-x64-musl@13.4.8: + resolution: {integrity: sha512-aR+J4wWfNgH1DwCCBNjan7Iumx0lLtn+2/rEYuhIrYLY4vnxqSVGz9u3fXcgUwo6Q9LT8NFkaqK1vPprdq+BXg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -4230,62 +3711,8 @@ packages: dev: false optional: true - /@next/swc-linux-x64-gnu@13.4.4: - resolution: {integrity: sha512-PX706XcCHr2FfkyhP2lpf+pX/tUvq6/ke7JYnnr0ykNdEMo+sb7cC/o91gnURh4sPYSiZJhsF2gbIqg9rciOHQ==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@next/swc-linux-x64-gnu@13.4.7: - resolution: {integrity: sha512-zaEC+iEiAHNdhl6fuwl0H0shnTzQoAoJiDYBUze8QTntE/GNPfTYpYboxF5LRYIjBwETUatvE0T64W6SKDipvg==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@next/swc-linux-x64-musl@13.2.4: - resolution: {integrity: sha512-gOvwIYoSxd+j14LOcvJr+ekd9fwYT1RyMAHOp7znA10+l40wkFiMONPLWiZuHxfRk+Dy7YdNdDh3ImumvL6VwA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@next/swc-linux-x64-musl@13.4.3: - resolution: {integrity: sha512-jySgSXE48shaLtcQbiFO9ajE9mqz7pcAVLnVLvRIlUHyQYR/WyZdK8ehLs65Mz6j9cLrJM+YdmdJPyV4WDaz2g==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@next/swc-linux-x64-musl@13.4.4: - resolution: {integrity: sha512-TKUUx3Ftd95JlHV6XagEnqpT204Y+IsEa3awaYIjayn0MOGjgKZMZibqarK3B1FsMSPaieJf2FEAcu9z0yT5aA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@next/swc-linux-x64-musl@13.4.7: - resolution: {integrity: sha512-X6r12F8d8SKAtYJqLZBBMIwEqcTRvUdVm+xIq+l6pJqlgT2tNsLLf2i5Cl88xSsIytBICGsCNNHd+siD2fbWBA==} - engines: {node: '>= 10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /@next/swc-win32-arm64-msvc@13.2.4: - resolution: {integrity: sha512-q3NJzcfClgBm4HvdcnoEncmztxrA5GXqKeiZ/hADvC56pwNALt3ngDC6t6qr1YW9V/EPDxCYeaX4zYxHciW4Dw==} + /@next/swc-win32-arm64-msvc@13.4.8: + resolution: {integrity: sha512-OWBKIrJwQBTqrat0xhxEB/jcsjJR3+diD9nc/Y8F1mRdQzsn4bPsomgJyuqPVZs6Lz3K18qdIkvywmfSq75SsQ==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -4293,35 +3720,8 @@ packages: dev: false optional: true - /@next/swc-win32-arm64-msvc@13.4.3: - resolution: {integrity: sha512-5DxHo8uYcaADiE9pHrg8o28VMt/1kR8voDehmfs9AqS0qSClxAAl+CchjdboUvbCjdNWL1MISCvEfKY2InJ3JA==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@next/swc-win32-arm64-msvc@13.4.4: - resolution: {integrity: sha512-FP8AadgSq4+HPtim7WBkCMGbhr5vh9FePXiWx9+YOdjwdQocwoCK5ZVC3OW8oh3TWth6iJ0AXJ/yQ1q1cwSZ3A==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@next/swc-win32-arm64-msvc@13.4.7: - resolution: {integrity: sha512-NPnmnV+vEIxnu6SUvjnuaWRglZzw4ox5n/MQTxeUhb5iwVWFedolPFebMNwgrWu4AELwvTdGtWjqof53AiWHcw==} - engines: {node: '>= 10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@next/swc-win32-ia32-msvc@13.2.4: - resolution: {integrity: sha512-/eZ5ncmHUYtD2fc6EUmAIZlAJnVT2YmxDsKs1Ourx0ttTtvtma/WKlMV5NoUsyOez0f9ExLyOpeCoz5aj+MPXw==} + /@next/swc-win32-ia32-msvc@13.4.8: + resolution: {integrity: sha512-agiPWGjUndXGTOn4ChbKipQXRA6/UPkywAWIkx7BhgGv48TiJfHTK6MGfBoL9tS6B4mtW39++uy0wFPnfD0JWg==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -4329,62 +3729,8 @@ packages: dev: false optional: true - /@next/swc-win32-ia32-msvc@13.4.3: - resolution: {integrity: sha512-LaqkF3d+GXRA5X6zrUjQUrXm2MN/3E2arXBtn5C7avBCNYfm9G3Xc646AmmmpN3DJZVaMYliMyCIQCMDEzk80w==} - engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@next/swc-win32-ia32-msvc@13.4.4: - resolution: {integrity: sha512-3WekVmtuA2MCdcAOrgrI+PuFiFURtSyyrN1I3UPtS0ckR2HtLqyqmS334Eulf15g1/bdwMteePdK363X/Y9JMg==} - engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@next/swc-win32-ia32-msvc@13.4.7: - resolution: {integrity: sha512-6Hxijm6/a8XqLQpOOf/XuwWRhcuc/g4rBB2oxjgCMuV9Xlr2bLs5+lXyh8w9YbAUMYR3iC9mgOlXbHa79elmXw==} - engines: {node: '>= 10'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@next/swc-win32-x64-msvc@13.2.4: - resolution: {integrity: sha512-0MffFmyv7tBLlji01qc0IaPP/LVExzvj7/R5x1Jph1bTAIj4Vu81yFQWHHQAP6r4ff9Ukj1mBK6MDNVXm7Tcvw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@next/swc-win32-x64-msvc@13.4.3: - resolution: {integrity: sha512-jglUk/x7ZWeOJWlVoKyIAkHLTI+qEkOriOOV+3hr1GyiywzcqfI7TpFSiwC7kk1scOiH7NTFKp8mA3XPNO9bDw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@next/swc-win32-x64-msvc@13.4.4: - resolution: {integrity: sha512-AHRITu/CrlQ+qzoqQtEMfaTu7GHaQ6bziQln/pVWpOYC1wU+Mq6VQQFlsDtMCnDztPZtppAXdvvbNS7pcfRzlw==} - engines: {node: '>= 10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /@next/swc-win32-x64-msvc@13.4.7: - resolution: {integrity: sha512-sW9Yt36Db1nXJL+mTr2Wo0y+VkPWeYhygvcHj1FF0srVtV+VoDjxleKtny21QHaG05zdeZnw2fCtf2+dEqgwqA==} + /@next/swc-win32-x64-msvc@13.4.8: + resolution: {integrity: sha512-UIRKoByVKbuR6SnFG4JM8EMFlJrfEGuUQ1ihxzEleWcNwRMMiVaCj1KyqfTOW8VTQhJ0u8P1Ngg6q1RwnIBTtw==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -4483,8 +3829,8 @@ packages: resolution: {integrity: sha512-MSAs9t3Go7GUkMhpKC44T58DJ5KGk2vBo+h1cqQeqlMfdGkxaVB78ZWpv9gYi/g2fa4sopag9gJsNvS8XGgWJA==} dev: false - /@paralleldrive/cuid2@2.2.0: - resolution: {integrity: sha512-CVQDpPIUHrUGGLdrMGz1NmqZvqmsB2j2rCIQEu1EvxWjlFh4fhvEGmgR409cY20/67/WlJsggenq0no3p3kYsw==} + /@paralleldrive/cuid2@2.2.1: + resolution: {integrity: sha512-GJhHYlMhyT2gWemDL7BGMWfTNhspJKkikLKh9wAy3z4GTTINvTYALkUd+eGQK7aLeVkVzPuSA0VCT3H5eEWbbw==} dependencies: '@noble/hashes': 1.2.0 dev: false @@ -4506,7 +3852,6 @@ packages: picocolors: 1.0.0 tiny-glob: 0.2.9 tslib: 2.5.3 - dev: false /@polka/url@1.0.0-next.21: resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==} @@ -4553,8 +3898,8 @@ packages: webpack: 4.46.0 dev: true - /@prisma/client@4.16.1(prisma@4.16.1): - resolution: {integrity: sha512-CoDHu7Bt+NuDo40ijoeHP79EHtECsPBTy3yte5Yo3op8TqXt/kV0OT5OrsWewKvQGKFMHhYQ+ePed3zzjYdGAw==} + /@prisma/client@4.16.2(prisma@4.16.2): + resolution: {integrity: sha512-qCoEyxv1ZrQ4bKy39GnylE8Zq31IRmm8bNhNbZx7bF2cU5aiCCnSa93J2imF88MBjn7J9eUQneNxUQVJdl/rPQ==} engines: {node: '>=14.17'} requiresBuild: true peerDependencies: @@ -4563,8 +3908,8 @@ packages: prisma: optional: true dependencies: - '@prisma/engines-version': 4.16.0-66.b20ead4d3ab9e78ac112966e242ded703f4a052c - prisma: 4.16.1 + '@prisma/engines-version': 4.16.1-1.4bc8b6e1b66cb932731fb1bdbbc550d1e010de81 + prisma: 4.16.2 dev: false /@prisma/debug@3.8.1: @@ -4573,7 +3918,7 @@ packages: '@types/debug': 4.1.7 ms: 2.1.3 strip-ansi: 6.0.1 - dev: false + dev: true /@prisma/debug@4.16.0: resolution: {integrity: sha512-9xKz+5BXjnHDgPKtjTEbP6vNPeYMOqId2IIHCxfpouhSpSUHOA3FVzCRpZ0er/RV6y/MZUPLQbltVUvPncBDlg==} @@ -4583,7 +3928,7 @@ packages: strip-ansi: 6.0.1 transitivePeerDependencies: - supports-color - dev: false + dev: true /@prisma/debug@4.6.1: resolution: {integrity: sha512-BezDvSenTgQDQ6WA3TdTDGcrt0Oh4vmpZtmSOYm1KaSZiSVIL2xT0P9TFM3vtOa4wn7sn/003PyTSxyHS3mShg==} @@ -4616,12 +3961,12 @@ packages: - supports-color dev: true - /@prisma/engines-version@4.16.0-66.b20ead4d3ab9e78ac112966e242ded703f4a052c: - resolution: {integrity: sha512-tMWAF/qF00fbUH1HB4Yjmz6bjh7fzkb7Y3NRoUfMlHu6V+O45MGvqwYxqwBjn1BIUXkl3r04W351D4qdJjrgvA==} + /@prisma/engines-version@4.16.1-1.4bc8b6e1b66cb932731fb1bdbbc550d1e010de81: + resolution: {integrity: sha512-q617EUWfRIDTriWADZ4YiWRZXCa/WuhNgLTVd+HqWLffjMSPzyM5uOWoauX91wvQClSKZU4pzI4JJLQ9Kl62Qg==} dev: false - /@prisma/engines@4.16.1: - resolution: {integrity: sha512-gpZG0kGGxfemgvK/LghHdBIz+crHkZjzszja94xp4oytpsXrgt/Ice82MvPsWMleVIniKuARrowtsIsim0PFJQ==} + /@prisma/engines@4.16.2: + resolution: {integrity: sha512-vx1nxVvN4QeT/cepQce68deh/Turxy5Mr+4L4zClFuK1GlxN3+ivxfuv+ej/gvidWn1cE1uAhW7ALLNlYbRUAw==} requiresBuild: true /@prisma/engines@4.6.1: @@ -4661,7 +4006,7 @@ packages: '@types/cross-spawn': 6.0.2 chalk: 4.1.2 cross-spawn: 7.0.3 - dev: false + dev: true /@prisma/generator-helper@4.16.0: resolution: {integrity: sha512-4rDLzQPpCz2FbYjW07j7BDkKVs4MiPbyxAeYoLheQj0Ubj7ihoK1hecrIEocULxjMwVJOLt8mj575bguNQ4DWA==} @@ -4672,7 +4017,7 @@ packages: kleur: 4.1.5 transitivePeerDependencies: - supports-color - dev: false + dev: true /@prisma/generator-helper@4.6.1: resolution: {integrity: sha512-70XBmqDhmpe8H35ttOJOgyg1OpppO/uelILB1SIwjeSI7PHHdU2+Y/+LkpnifkCEpSZKIhxEIPbHx17m2neAsA==} @@ -4767,19 +4112,7 @@ packages: '@babel/runtime': 7.21.0 dev: false - /@radix-ui/react-arrow@1.0.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-fqYwhhI9IarZ0ll2cUSfKuXHlJK0qE4AfnRrPBbRwEH/4mGQn04/QFGomLi8TXWIdv9WJk//KgGm+aDxVIr1wA==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.21.0 - '@radix-ui/react-primitive': 1.0.2(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /@radix-ui/react-arrow@1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-arrow@1.0.3(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==} peerDependencies: '@types/react': '*' @@ -4793,14 +4126,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.21.0 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.7 - '@types/react-dom': 18.2.4 + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-checkbox@1.0.4(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-checkbox@1.0.4(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-CBuGQa52aAYnADZVt/KBQzXrwx6TqnlwtcIPGtVt5JkkzQwMOLJjPukimhfKEr4GQNd43C+djUh5Ikopj8pSLg==} peerDependencies: '@types/react': '*' @@ -4815,54 +4146,44 @@ packages: dependencies: '@babel/runtime': 7.21.0 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@types/react': 18.2.7 - '@types/react-dom': 18.2.4 + '@radix-ui/react-compose-refs': 1.0.1(react@18.2.0) + '@radix-ui/react-context': 1.0.1(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.1(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-collapsible@1.0.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-QNiDT6Au8jUU0K1WV+HEd4loH7C5CKQjeXxskwqyiyAkyCmW7qlQM5vSSJCIoQC+OVPyhgafSmGudRP8Qm1/gA==} + /@radix-ui/react-collapsible@1.0.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-UBmVDkmR6IvDsloHVN+3rtx4Mi5TFvylYXpluuv0f37dtaz3H99bp8No0LGXRigVpl3UAT4l9j6bIchh42S/Gg==} peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' react: ^16.8 || ^17.0 || ^18.0 react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true dependencies: '@babel/runtime': 7.21.0 - '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-id': 1.0.0(react@18.2.0) - '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(react@18.2.0) + '@radix-ui/react-context': 1.0.1(react@18.2.0) + '@radix-ui/react-id': 1.0.1(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-collection@1.0.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-s8WdQQ6wNXpaxdZ308KSr8fEWGrg4un8i4r/w7fhiS4ElRNjk5rRcl0/C6TANG2LvLOGIxtzo/jAg6Qf73TEBw==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.21.0 - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-primitive': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.1(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /@radix-ui/react-collection@1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-collection@1.0.3(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==} peerDependencies: '@types/react': '*' @@ -4876,12 +4197,10 @@ packages: optional: true dependencies: '@babel/runtime': 7.21.0 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.7)(react@18.2.0) - '@types/react': 18.2.7 - '@types/react-dom': 18.2.4 + '@radix-ui/react-compose-refs': 1.0.1(react@18.2.0) + '@radix-ui/react-context': 1.0.1(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -4895,7 +4214,7 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-compose-refs@1.0.1(@types/react@18.2.7)(react@18.2.0): + /@radix-ui/react-compose-refs@1.0.1(react@18.2.0): resolution: {integrity: sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==} peerDependencies: '@types/react': '*' @@ -4905,7 +4224,6 @@ packages: optional: true dependencies: '@babel/runtime': 7.21.0 - '@types/react': 18.2.7 react: 18.2.0 dev: false @@ -4918,7 +4236,7 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-context@1.0.1(@types/react@18.2.7)(react@18.2.0): + /@radix-ui/react-context@1.0.1(react@18.2.0): resolution: {integrity: sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==} peerDependencies: '@types/react': '*' @@ -4928,11 +4246,10 @@ packages: optional: true dependencies: '@babel/runtime': 7.21.0 - '@types/react': 18.2.7 react: 18.2.0 dev: false - /@radix-ui/react-dialog@1.0.0(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-dialog@1.0.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Yn9YU+QlHYLWwV1XfKiqnGVpWYWk6MeBVM6x/bcoyPvxgjQGoeT35482viLPctTMWoMw0PoHgqfSox7Ig+957Q==} peerDependencies: react: ^16.8 || ^17.0 || ^18.0 @@ -4954,12 +4271,12 @@ packages: aria-hidden: 1.2.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.4(@types/react@18.2.7)(react@18.2.0) + react-remove-scroll: 2.5.4(react@18.2.0) transitivePeerDependencies: - '@types/react' dev: false - /@radix-ui/react-dialog@1.0.4(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-dialog@1.0.4(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-hJtRy/jPULGQZceSAP2Re6/4NpKo8im6V8P2hUqZsdFiSL8l35kYsw3qbRI6Ay5mQd2+wlLqje770eq+RJ3yZg==} peerDependencies: '@types/react': '*' @@ -4974,35 +4291,24 @@ packages: dependencies: '@babel/runtime': 7.21.0 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-portal': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@types/react': 18.2.7 - '@types/react-dom': 18.2.4 + '@radix-ui/react-compose-refs': 1.0.1(react@18.2.0) + '@radix-ui/react-context': 1.0.1(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.4(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(react@18.2.0) + '@radix-ui/react-portal': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(react@18.2.0) aria-hidden: 1.2.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.5(@types/react@18.2.7)(react@18.2.0) + react-remove-scroll: 2.5.5(react@18.2.0) dev: false - /@radix-ui/react-direction@1.0.0(react@18.2.0): - resolution: {integrity: sha512-2HV05lGUgYcA6xgLQ4BKPDmtL+QbIZYH5fCOTAOOcJ5O0QbWS3i9lKaurLzliYUDhORI2Qr3pyjhJh44lKA3rQ==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.21.0 - react: 18.2.0 - dev: false - - /@radix-ui/react-direction@1.0.1(@types/react@18.2.7)(react@18.2.0): + /@radix-ui/react-direction@1.0.1(react@18.2.0): resolution: {integrity: sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==} peerDependencies: '@types/react': '*' @@ -5012,7 +4318,6 @@ packages: optional: true dependencies: '@babel/runtime': 7.21.0 - '@types/react': 18.2.7 react: 18.2.0 dev: false @@ -5032,23 +4337,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-dismissable-layer@1.0.3(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-nXZOvFjOuHS1ovumntGV7NNoLaEp9JEvTht3MBjP44NSW5hUKj/8OnfN3+8WmB+CEhN44XaGhpHoSsUIEl5P7Q==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.21.0 - '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-primitive': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) - '@radix-ui/react-use-escape-keydown': 1.0.2(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /@radix-ui/react-dismissable-layer@1.0.4(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-dismissable-layer@1.0.4(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-7UpBa/RKMoHJYjie1gkF1DlK8l1fdU/VKDpoS3rCCo8YBJR294GwcEHyxHw72yvphJ7ld0AXEcSLAzY2F/WyCg==} peerDependencies: '@types/react': '*' @@ -5063,37 +4352,15 @@ packages: dependencies: '@babel/runtime': 7.21.0 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-use-escape-keydown': 1.0.3(@types/react@18.2.7)(react@18.2.0) - '@types/react': 18.2.7 - '@types/react-dom': 18.2.4 + '@radix-ui/react-compose-refs': 1.0.1(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(react@18.2.0) + '@radix-ui/react-use-escape-keydown': 1.0.3(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-dropdown-menu@2.0.4(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-y6AT9+MydyXcByivdK1+QpjWoKaC7MLjkS/cH1Q3keEyMvDkiY85m8o2Bi6+Z1PPUlCsMULopxagQOSfN0wahg==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.21.0 - '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-id': 1.0.0(react@18.2.0) - '@radix-ui/react-menu': 2.0.4(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - transitivePeerDependencies: - - '@types/react' - dev: false - - /@radix-ui/react-dropdown-menu@2.0.5(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-dropdown-menu@2.0.5(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-xdOrZzOTocqqkCkYo8yRPCib5OkTkqN7lqNCdxwPOdE466DOaNl4N8PkUIlsXthQvW5Wwkd+aEmWpfWlBoDPEw==} peerDependencies: '@types/react': '*' @@ -5108,14 +4375,12 @@ packages: dependencies: '@babel/runtime': 7.21.0 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-menu': 2.0.5(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@types/react': 18.2.7 - '@types/react-dom': 18.2.4 + '@radix-ui/react-compose-refs': 1.0.1(react@18.2.0) + '@radix-ui/react-context': 1.0.1(react@18.2.0) + '@radix-ui/react-id': 1.0.1(react@18.2.0) + '@radix-ui/react-menu': 2.0.5(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -5129,7 +4394,7 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-focus-guards@1.0.1(@types/react@18.2.7)(react@18.2.0): + /@radix-ui/react-focus-guards@1.0.1(react@18.2.0): resolution: {integrity: sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==} peerDependencies: '@types/react': '*' @@ -5139,7 +4404,6 @@ packages: optional: true dependencies: '@babel/runtime': 7.21.0 - '@types/react': 18.2.7 react: 18.2.0 dev: false @@ -5157,21 +4421,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-focus-scope@1.0.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-spwXlNTfeIprt+kaEWE/qYuYT3ZAqJiAGjN/JgdvgVDTu8yc+HuX+WOWXrKliKnLnwck0F6JDkqIERncnih+4A==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.21.0 - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-primitive': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /@radix-ui/react-focus-scope@1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-focus-scope@1.0.3(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-upXdPfqI4islj2CslyfUBNlaJCPybbqRHAi1KER7Isel9Q2AtSJ0zRBZv8mWQiFXD2nyAJ4BhC3yXgZ6kMBSrQ==} peerDependencies: '@types/react': '*' @@ -5185,11 +4435,9 @@ packages: optional: true dependencies: '@babel/runtime': 7.21.0 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@types/react': 18.2.7 - '@types/react-dom': 18.2.4 + '@radix-ui/react-compose-refs': 1.0.1(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -5204,7 +4452,7 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-id@1.0.1(@types/react@18.2.7)(react@18.2.0): + /@radix-ui/react-id@1.0.1(react@18.2.0): resolution: {integrity: sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==} peerDependencies: '@types/react': '*' @@ -5214,12 +4462,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.21.0 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@types/react': 18.2.7 + '@radix-ui/react-use-layout-effect': 1.0.1(react@18.2.0) react: 18.2.0 dev: false - /@radix-ui/react-label@2.0.2(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-label@2.0.2(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-N5ehvlM7qoTLx7nWPodsPYPgMzA5WM8zZChQg8nyFJKnDO5WHdba1vv5/H6IO5LtJMfD2Q3wh1qHFGNtK0w3bQ==} peerDependencies: '@types/react': '*' @@ -5233,45 +4480,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.21.0 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.7 - '@types/react-dom': 18.2.4 + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-menu@2.0.4(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-mzKR47tZ1t193trEqlQoJvzY4u9vYfVH16ryBrVrCAGZzkgyWnMQYEZdUkM7y8ak9mrkKtJiqB47TlEnubeOFQ==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.21.0 - '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-collection': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-direction': 1.0.0(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.3(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-focus-guards': 1.0.0(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.0(react@18.2.0) - '@radix-ui/react-popper': 1.1.1(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-roving-focus': 1.0.3(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.1(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) - aria-hidden: 1.2.3 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.5(@types/react@18.2.7)(react@18.2.0) - transitivePeerDependencies: - - '@types/react' - dev: false - - /@radix-ui/react-menu@2.0.5(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-menu@2.0.5(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Gw4f9pwdH+w5w+49k0gLjN0PfRDHvxmAgG16AbyJZ7zhwZ6PBHKtWohvnSwfusfnK3L68dpBREHpVkj8wEM7ZA==} peerDependencies: '@types/react': '*' @@ -5286,30 +4500,28 @@ packages: dependencies: '@babel/runtime': 7.21.0 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-popper': 1.1.2(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@types/react': 18.2.7 - '@types/react-dom': 18.2.4 + '@radix-ui/react-collection': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(react@18.2.0) + '@radix-ui/react-context': 1.0.1(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.4(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(react@18.2.0) + '@radix-ui/react-popper': 1.1.2(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(react@18.2.0) aria-hidden: 1.2.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.5(@types/react@18.2.7)(react@18.2.0) + react-remove-scroll: 2.5.5(react@18.2.0) dev: false - /@radix-ui/react-popover@1.0.6(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-popover@1.0.6(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-cZ4defGpkZ0qTRtlIBzJLSzL6ht7ofhhW4i1+pkemjV1IKXm0wgCRnee154qlV6r9Ttunmh2TNZhMfV2bavUyA==} peerDependencies: '@types/react': '*' @@ -5324,50 +4536,25 @@ packages: dependencies: '@babel/runtime': 7.21.0 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-popper': 1.1.2(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@types/react': 18.2.7 - '@types/react-dom': 18.2.4 + '@radix-ui/react-compose-refs': 1.0.1(react@18.2.0) + '@radix-ui/react-context': 1.0.1(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.4(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(react@18.2.0) + '@radix-ui/react-popper': 1.1.2(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(react@18.2.0) aria-hidden: 1.2.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.5(@types/react@18.2.7)(react@18.2.0) + react-remove-scroll: 2.5.5(react@18.2.0) dev: false - /@radix-ui/react-popper@1.1.1(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-keYDcdMPNMjSC8zTsZ8wezUMiWM9Yj14wtF3s0PTIs9srnEPC9Kt2Gny1T3T81mmSeyDjZxsD9N5WCwNNb712w==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.21.0 - '@floating-ui/react-dom': 0.7.2(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-arrow': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-primitive': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) - '@radix-ui/react-use-rect': 1.0.0(react@18.2.0) - '@radix-ui/react-use-size': 1.0.0(react@18.2.0) - '@radix-ui/rect': 1.0.0 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - transitivePeerDependencies: - - '@types/react' - dev: false - - /@radix-ui/react-popper@1.1.2(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-popper@1.1.2(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-1CnGGfFi/bbqtJZZ0P/NQY20xdG3E0LALJaLUEoKwPLwl6PPPfbeiCqMVQnhoFRAxjJj4RpBRJzDmUgsex2tSg==} peerDependencies: '@types/react': '*' @@ -5382,17 +4569,15 @@ packages: dependencies: '@babel/runtime': 7.21.0 '@floating-ui/react-dom': 2.0.0(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.7)(react@18.2.0) + '@radix-ui/react-arrow': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(react@18.2.0) + '@radix-ui/react-context': 1.0.1(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(react@18.2.0) + '@radix-ui/react-use-rect': 1.0.1(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(react@18.2.0) '@radix-ui/rect': 1.0.1 - '@types/react': 18.2.7 - '@types/react-dom': 18.2.4 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -5409,19 +4594,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-portal@1.0.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-swu32idoCW7KA2VEiUZGBSu9nB6qwGdV6k6HYhUoOo3M1FFpD+VgLzUqtt3mwL1ssz7r2x8MggpLSQach2Xy/Q==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.21.0 - '@radix-ui/react-primitive': 1.0.2(react-dom@18.2.0)(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /@radix-ui/react-portal@1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-portal@1.0.3(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-xLYZeHrWoPmA5mEKEfZZevoVRK/Q43GfzRXkWV6qawIWWK8t6ifIiLQdd7rmQ4Vk1bmI21XhqF9BN3jWf+phpA==} peerDependencies: '@types/react': '*' @@ -5435,9 +4608,7 @@ packages: optional: true dependencies: '@babel/runtime': 7.21.0 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.7 - '@types/react-dom': 18.2.4 + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -5455,7 +4626,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-presence@1.0.1(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-presence@1.0.1(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==} peerDependencies: '@types/react': '*' @@ -5469,10 +4640,8 @@ packages: optional: true dependencies: '@babel/runtime': 7.21.0 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@types/react': 18.2.7 - '@types/react-dom': 18.2.4 + '@radix-ui/react-compose-refs': 1.0.1(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -5489,19 +4658,7 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-primitive@1.0.2(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-zY6G5Qq4R8diFPNwtyoLRZBxzu1Z+SXMlfYpChN7Dv8gvmx9X3qhDqiLWvKseKVJMuedFeU/Sa0Sy/Ia+t06Dw==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.21.0 - '@radix-ui/react-slot': 1.0.1(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /@radix-ui/react-primitive@1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-primitive@1.0.3(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==} peerDependencies: '@types/react': '*' @@ -5515,14 +4672,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.21.0 - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.7)(react@18.2.0) - '@types/react': 18.2.7 - '@types/react-dom': 18.2.4 + '@radix-ui/react-slot': 1.0.2(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-radio-group@1.1.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-radio-group@1.1.3(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-x+yELayyefNeKeTx4fjK6j99Fs6c4qKm3aY38G3swQVTN6xMpsrbigC0uHs2L//g8q4qR7qOcww8430jJmi2ag==} peerDependencies: '@types/react': '*' @@ -5537,42 +4692,20 @@ packages: dependencies: '@babel/runtime': 7.21.0 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-roving-focus': 1.0.4(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@types/react': 18.2.7 - '@types/react-dom': 18.2.4 + '@radix-ui/react-compose-refs': 1.0.1(react@18.2.0) + '@radix-ui/react-context': 1.0.1(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-roving-focus': 1.0.4(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.1(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-roving-focus@1.0.3(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-stjCkIoMe6h+1fWtXlA6cRfikdBzCLp3SnVk7c48cv/uy3DTGoXhN76YaOYUJuy3aEDvDIKwKR5KSmvrtPvQPQ==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - react-dom: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.21.0 - '@radix-ui/primitive': 1.0.0 - '@radix-ui/react-collection': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - '@radix-ui/react-context': 1.0.0(react@18.2.0) - '@radix-ui/react-direction': 1.0.0(react@18.2.0) - '@radix-ui/react-id': 1.0.0(react@18.2.0) - '@radix-ui/react-primitive': 1.0.2(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.0(react@18.2.0) - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - dev: false - - /@radix-ui/react-roving-focus@1.0.4(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-roving-focus@1.0.4(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==} peerDependencies: '@types/react': '*' @@ -5587,21 +4720,19 @@ packages: dependencies: '@babel/runtime': 7.21.0 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@types/react': 18.2.7 - '@types/react-dom': 18.2.4 + '@radix-ui/react-collection': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(react@18.2.0) + '@radix-ui/react-context': 1.0.1(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(react@18.2.0) + '@radix-ui/react-id': 1.0.1(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-select@1.2.2(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-select@1.2.2(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-zI7McXr8fNaSrUY9mZe4x/HC0jTLY9fWNhO1oLWYMQGDXuV4UCivIGTxwioSzO0ZCYX9iSLyWmAh/1TOmX3Cnw==} peerDependencies: '@types/react': '*' @@ -5617,29 +4748,27 @@ packages: '@babel/runtime': 7.21.0 '@radix-ui/number': 1.0.1 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-collection': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-direction': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-focus-scope': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-popper': 1.1.2(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.7 - '@types/react-dom': 18.2.4 + '@radix-ui/react-collection': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(react@18.2.0) + '@radix-ui/react-context': 1.0.1(react@18.2.0) + '@radix-ui/react-direction': 1.0.1(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.4(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(react@18.2.0) + '@radix-ui/react-popper': 1.1.2(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.1(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.3(react-dom@18.2.0)(react@18.2.0) aria-hidden: 1.2.3 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - react-remove-scroll: 2.5.5(@types/react@18.2.7)(react@18.2.0) + react-remove-scroll: 2.5.5(react@18.2.0) dev: false /@radix-ui/react-slot@1.0.0(react@18.2.0): @@ -5652,17 +4781,7 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-slot@1.0.1(react@18.2.0): - resolution: {integrity: sha512-avutXAFL1ehGvAXtPquu0YK5oz6ctS474iM3vNGQIkswrVhdrS52e3uoMQBzZhNRAIE0jBnUyXWNmSjGHhCFcw==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.21.0 - '@radix-ui/react-compose-refs': 1.0.0(react@18.2.0) - react: 18.2.0 - dev: false - - /@radix-ui/react-slot@1.0.2(@types/react@18.2.7)(react@18.2.0): + /@radix-ui/react-slot@1.0.2(react@18.2.0): resolution: {integrity: sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==} peerDependencies: '@types/react': '*' @@ -5672,12 +4791,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.21.0 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@types/react': 18.2.7 + '@radix-ui/react-compose-refs': 1.0.1(react@18.2.0) react: 18.2.0 dev: false - /@radix-ui/react-switch@1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-switch@1.0.3(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-mxm87F88HyHztsI7N+ZUmEoARGkC22YVW5CaC+Byc+HRpuvCrOBPTAnXgf+tZ/7i0Sg/eOePGdMhUKhPaQEqow==} peerDependencies: '@types/react': '*' @@ -5692,19 +4810,17 @@ packages: dependencies: '@babel/runtime': 7.21.0 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-use-previous': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@types/react': 18.2.7 - '@types/react-dom': 18.2.4 + '@radix-ui/react-compose-refs': 1.0.1(react@18.2.0) + '@radix-ui/react-context': 1.0.1(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(react@18.2.0) + '@radix-ui/react-use-previous': 1.0.1(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/react-tooltip@1.0.6(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-tooltip@1.0.6(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-DmNFOiwEc2UDigsYj6clJENma58OelxD24O4IODoZ+3sQc3Zb+L8w1EP+y9laTuKCLAysPw4fD6/v0j4KNV8rg==} peerDependencies: '@types/react': '*' @@ -5719,19 +4835,17 @@ packages: dependencies: '@babel/runtime': 7.21.0 '@radix-ui/primitive': 1.0.1 - '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-context': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-dismissable-layer': 1.0.4(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-id': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-popper': 1.1.2(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-portal': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@radix-ui/react-slot': 1.0.2(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@radix-ui/react-visually-hidden': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.7 - '@types/react-dom': 18.2.4 + '@radix-ui/react-compose-refs': 1.0.1(react@18.2.0) + '@radix-ui/react-context': 1.0.1(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.4(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(react@18.2.0) + '@radix-ui/react-popper': 1.1.2(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(react@18.2.0) + '@radix-ui/react-visually-hidden': 1.0.3(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -5745,7 +4859,7 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-use-callback-ref@1.0.1(@types/react@18.2.7)(react@18.2.0): + /@radix-ui/react-use-callback-ref@1.0.1(react@18.2.0): resolution: {integrity: sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==} peerDependencies: '@types/react': '*' @@ -5755,7 +4869,6 @@ packages: optional: true dependencies: '@babel/runtime': 7.21.0 - '@types/react': 18.2.7 react: 18.2.0 dev: false @@ -5769,7 +4882,7 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-use-controllable-state@1.0.1(@types/react@18.2.7)(react@18.2.0): + /@radix-ui/react-use-controllable-state@1.0.1(react@18.2.0): resolution: {integrity: sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==} peerDependencies: '@types/react': '*' @@ -5779,8 +4892,7 @@ packages: optional: true dependencies: '@babel/runtime': 7.21.0 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@types/react': 18.2.7 + '@radix-ui/react-use-callback-ref': 1.0.1(react@18.2.0) react: 18.2.0 dev: false @@ -5794,17 +4906,7 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-use-escape-keydown@1.0.2(react@18.2.0): - resolution: {integrity: sha512-DXGim3x74WgUv+iMNCF+cAo8xUHHeqvjx8zs7trKf+FkQKPQXLk2sX7Gx1ysH7Q76xCpZuxIJE7HLPxRE+Q+GA==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.21.0 - '@radix-ui/react-use-callback-ref': 1.0.0(react@18.2.0) - react: 18.2.0 - dev: false - - /@radix-ui/react-use-escape-keydown@1.0.3(@types/react@18.2.7)(react@18.2.0): + /@radix-ui/react-use-escape-keydown@1.0.3(react@18.2.0): resolution: {integrity: sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==} peerDependencies: '@types/react': '*' @@ -5814,8 +4916,7 @@ packages: optional: true dependencies: '@babel/runtime': 7.21.0 - '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@types/react': 18.2.7 + '@radix-ui/react-use-callback-ref': 1.0.1(react@18.2.0) react: 18.2.0 dev: false @@ -5828,7 +4929,7 @@ packages: react: 18.2.0 dev: false - /@radix-ui/react-use-layout-effect@1.0.1(@types/react@18.2.7)(react@18.2.0): + /@radix-ui/react-use-layout-effect@1.0.1(react@18.2.0): resolution: {integrity: sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==} peerDependencies: '@types/react': '*' @@ -5838,11 +4939,10 @@ packages: optional: true dependencies: '@babel/runtime': 7.21.0 - '@types/react': 18.2.7 react: 18.2.0 dev: false - /@radix-ui/react-use-previous@1.0.1(@types/react@18.2.7)(react@18.2.0): + /@radix-ui/react-use-previous@1.0.1(react@18.2.0): resolution: {integrity: sha512-cV5La9DPwiQ7S0gf/0qiD6YgNqM5Fk97Kdrlc5yBcrF3jyEZQwm7vYFqMo4IfeHgJXsRaMvLABFtd0OVEmZhDw==} peerDependencies: '@types/react': '*' @@ -5852,21 +4952,10 @@ packages: optional: true dependencies: '@babel/runtime': 7.21.0 - '@types/react': 18.2.7 react: 18.2.0 dev: false - /@radix-ui/react-use-rect@1.0.0(react@18.2.0): - resolution: {integrity: sha512-TB7pID8NRMEHxb/qQJpvSt3hQU4sqNPM1VCTjTRjEOa7cEop/QMuq8S6fb/5Tsz64kqSvB9WnwsDHtjnrM9qew==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.21.0 - '@radix-ui/rect': 1.0.0 - react: 18.2.0 - dev: false - - /@radix-ui/react-use-rect@1.0.1(@types/react@18.2.7)(react@18.2.0): + /@radix-ui/react-use-rect@1.0.1(react@18.2.0): resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==} peerDependencies: '@types/react': '*' @@ -5877,21 +4966,10 @@ packages: dependencies: '@babel/runtime': 7.21.0 '@radix-ui/rect': 1.0.1 - '@types/react': 18.2.7 react: 18.2.0 dev: false - /@radix-ui/react-use-size@1.0.0(react@18.2.0): - resolution: {integrity: sha512-imZ3aYcoYCKhhgNpkNDh/aTiU05qw9hX+HHI1QDBTyIlcFjgeFlKKySNGMwTp7nYFLQg/j0VA2FmCY4WPDDHMg==} - peerDependencies: - react: ^16.8 || ^17.0 || ^18.0 - dependencies: - '@babel/runtime': 7.21.0 - '@radix-ui/react-use-layout-effect': 1.0.0(react@18.2.0) - react: 18.2.0 - dev: false - - /@radix-ui/react-use-size@1.0.1(@types/react@18.2.7)(react@18.2.0): + /@radix-ui/react-use-size@1.0.1(react@18.2.0): resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==} peerDependencies: '@types/react': '*' @@ -5901,12 +4979,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.21.0 - '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.7)(react@18.2.0) - '@types/react': 18.2.7 + '@radix-ui/react-use-layout-effect': 1.0.1(react@18.2.0) react: 18.2.0 dev: false - /@radix-ui/react-visually-hidden@1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0): + /@radix-ui/react-visually-hidden@1.0.3(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-D4w41yN5YRKtu464TLnByKzMDG/JlMPHtfZgQAu9v6mNakUqGUI9vUrfQKz8NK41VMm/xbZbh76NUTVtIYqOMA==} peerDependencies: '@types/react': '*' @@ -5920,19 +4997,11 @@ packages: optional: true dependencies: '@babel/runtime': 7.21.0 - '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.4)(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.7 - '@types/react-dom': 18.2.4 + '@radix-ui/react-primitive': 1.0.3(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@radix-ui/rect@1.0.0: - resolution: {integrity: sha512-d0O68AYy/9oeEy1DdC07bz1/ZXX+DqCskRd3i4JzLSTXwefzaepQrKjXC7aNM8lTHjFLDO0pDgaEiQ7jEk+HVg==} - dependencies: - '@babel/runtime': 7.21.0 - dev: false - /@radix-ui/rect@1.0.1: resolution: {integrity: sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==} dependencies: @@ -6038,7 +5107,6 @@ packages: /@rushstack/eslint-patch@1.2.0: resolution: {integrity: sha512-sXo/qW2/pAcmT43VoRKOJbDOfV3cYpq3szSVfIThQXNt+E4DfKj361vaAt3c88U5tPUxzEswam7GW48PJqtKAg==} - dev: false /@sinclair/typebox@0.25.24: resolution: {integrity: sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ==} @@ -6073,12 +5141,6 @@ packages: string.prototype.matchall: 4.0.8 dev: true - /@swc/helpers@0.4.14: - resolution: {integrity: sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==} - dependencies: - tslib: 2.5.3 - dev: false - /@swc/helpers@0.5.1: resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==} dependencies: @@ -6091,15 +5153,6 @@ packages: dependencies: defer-to-connect: 1.1.3 - /@tailwindcss/forms@0.5.3(tailwindcss@3.3.1): - resolution: {integrity: sha512-y5mb86JUoiUgBjY/o6FJSFZSEttfb3Q5gllE4xoKjAAD+vBrnIhE4dViwUuow3va8mpH4s9jyUbUbrRGoRdc2Q==} - peerDependencies: - tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1' - dependencies: - mini-svg-data-uri: 1.4.4 - tailwindcss: 3.3.1(postcss@8.4.21) - dev: true - /@tailwindcss/forms@0.5.3(tailwindcss@3.3.2): resolution: {integrity: sha512-y5mb86JUoiUgBjY/o6FJSFZSEttfb3Q5gllE4xoKjAAD+vBrnIhE4dViwUuow3va8mpH4s9jyUbUbrRGoRdc2Q==} peerDependencies: @@ -6138,7 +5191,7 @@ packages: minimatch: 3.1.2 mkdirp: 1.0.4 path-browserify: 1.0.1 - dev: false + dev: true /@types/acorn@4.0.6: resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} @@ -6183,43 +5236,44 @@ packages: resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} dependencies: '@types/connect': 3.4.35 - '@types/node': 20.3.2 + '@types/node': 20.3.3 dev: true /@types/bonjour@3.5.10: resolution: {integrity: sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==} dependencies: - '@types/node': 20.3.2 + '@types/node': 20.3.3 dev: true /@types/connect-history-api-fallback@1.3.5: resolution: {integrity: sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==} dependencies: '@types/express-serve-static-core': 4.17.33 - '@types/node': 20.3.2 + '@types/node': 20.3.3 dev: true /@types/connect@3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 20.3.2 + '@types/node': 20.3.3 dev: true /@types/cross-spawn@6.0.2: resolution: {integrity: sha512-KuwNhp3eza+Rhu8IFI5HUXRP0LIhqH5cAjubUvGXXthh4YYBuP2ntwEX+Cz8GJoZUHlKo247wPWOfA9LYEq4cw==} dependencies: - '@types/node': 20.3.2 + '@types/node': 20.3.3 + dev: true /@types/debug@4.1.7: resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==} dependencies: '@types/ms': 0.7.31 + dev: true /@types/debug@4.1.8: resolution: {integrity: sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==} dependencies: '@types/ms': 0.7.31 - dev: false /@types/eslint-scope@3.7.4: resolution: {integrity: sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==} @@ -6255,7 +5309,7 @@ packages: /@types/express-serve-static-core@4.17.33: resolution: {integrity: sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==} dependencies: - '@types/node': 20.3.2 + '@types/node': 20.3.3 '@types/qs': 6.9.7 '@types/range-parser': 1.2.4 dev: true @@ -6272,7 +5326,7 @@ packages: /@types/graceful-fs@4.1.5: resolution: {integrity: sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==} dependencies: - '@types/node': 20.3.2 + '@types/node': 20.3.3 dev: true /@types/hast@2.3.4: @@ -6284,14 +5338,14 @@ packages: /@types/hoist-non-react-statics@3.3.1: resolution: {integrity: sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==} dependencies: - '@types/react': 18.2.7 + '@types/react': 18.2.14 hoist-non-react-statics: 3.3.2 dev: false /@types/http-proxy@1.17.10: resolution: {integrity: sha512-Qs5aULi+zV1bwKAg5z1PWnDXWmsn+LxIvUGv6E2+OOMYhclZMO+OXd9pYVf2gLykf2I7IV2u7oTHwChPNsvJ7g==} dependencies: - '@types/node': 20.3.2 + '@types/node': 20.3.3 dev: true /@types/is-ci@3.0.0: @@ -6330,7 +5384,7 @@ packages: /@types/jsdom@20.0.1: resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} dependencies: - '@types/node': 20.3.2 + '@types/node': 20.3.3 '@types/tough-cookie': 4.0.2 parse5: 7.1.2 dev: true @@ -6340,12 +5394,11 @@ packages: /@types/json5@0.0.29: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - dev: false /@types/keyv@3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 20.3.2 + '@types/node': 20.3.3 /@types/linkify-it@3.0.2: resolution: {integrity: sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==} @@ -6391,16 +5444,8 @@ packages: resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} dev: true - /@types/node@18.15.11: - resolution: {integrity: sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q==} - dev: true - - /@types/node@20.2.3: - resolution: {integrity: sha512-pg9d0yC4rVNWQzX8U7xb4olIOFuuVL9za3bzMT2pu2SU0SNEi66i2qrvhE2qt0HvkhuCaWJu7pLNOt/Pj8BIrw==} - dev: true - - /@types/node@20.3.2: - resolution: {integrity: sha512-vOBLVQeCQfIcF/2Y7eKFTqrMnizK5lRNQ7ykML/5RuwVXVWxYkgwS7xbt4B6fKCUPgbSL5FSsjHQpaGQP/dQmw==} + /@types/node@20.3.3: + resolution: {integrity: sha512-wheIYdr4NYML61AjC8MKj/2jrR/kDQri/CIpVoZwldwhnIrD/j9jIU5bJ8yBKuB2VhpFV7Ab6G2XkBjv9r9Zzw==} /@types/normalize-package-data@2.4.1: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} @@ -6432,44 +5477,23 @@ packages: resolution: {integrity: sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==} dev: true - /@types/react-dom@18.0.11: - resolution: {integrity: sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==} + /@types/react-dom@18.2.6: + resolution: {integrity: sha512-2et4PDvg6PVCyS7fuTc4gPoksV58bW0RwSxWKcPRcHZf0PRUGq03TKcD/rUHe3azfV6/5/biUBJw+HhCQjaP0A==} dependencies: - '@types/react': 18.0.37 + '@types/react': 18.2.14 dev: true - /@types/react-dom@18.2.4: - resolution: {integrity: sha512-G2mHoTMTL4yoydITgOGwWdWMVd8sNgyEP85xVmMKAPUBwQWm9wBPQUmvbeF4V3WBY1P7mmL4BkjQ0SqUpf1snw==} - dependencies: - '@types/react': 18.2.7 - /@types/react-redux@7.1.25: resolution: {integrity: sha512-bAGh4e+w5D8dajd6InASVIyCo4pZLJ66oLb80F9OBLO1gKESbZcRCJpTT6uLXX+HAB57zw1WTdwJdAsewuTweg==} dependencies: '@types/hoist-non-react-statics': 3.3.1 - '@types/react': 18.2.7 + '@types/react': 18.2.14 hoist-non-react-statics: 3.3.2 redux: 4.2.1 dev: false - /@types/react@18.0.33: - resolution: {integrity: sha512-sHxzVxeanvQyQ1lr8NSHaj0kDzcNiGpILEVt69g9S31/7PfMvNCKLKcsHw4lYKjs3cGNJjXSP4mYzX43QlnjNA==} - dependencies: - '@types/prop-types': 15.7.5 - '@types/scheduler': 0.16.2 - csstype: 3.1.1 - dev: true - - /@types/react@18.0.37: - resolution: {integrity: sha512-4yaZZtkRN3ZIQD3KSEwkfcik8s0SWV+82dlJot1AbGYHCzJkWP3ENBY6wYeDRmKZ6HkrgoGAmR2HqdwYGp6OEw==} - dependencies: - '@types/prop-types': 15.7.5 - '@types/scheduler': 0.16.2 - csstype: 3.1.1 - dev: true - - /@types/react@18.2.7: - resolution: {integrity: sha512-ojrXpSH2XFCmHm7Jy3q44nXDyN54+EYKP2lBhJ2bqfyPj6cIUW/FZW/Csdia34NQgq7KYcAlHi5184m4X88+yw==} + /@types/react@18.2.14: + resolution: {integrity: sha512-A0zjq+QN/O0Kpe30hA1GidzyFjatVvrpIvWLxD+xv67Vt91TWWgco9IvrJBkeyHm1trGaFS/FSGqPlhyeZRm0g==} dependencies: '@types/prop-types': 15.7.5 '@types/scheduler': 0.16.2 @@ -6478,13 +5502,13 @@ packages: /@types/resolve@1.17.1: resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} dependencies: - '@types/node': 20.3.2 + '@types/node': 20.3.3 dev: true /@types/responselike@1.0.0: resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} dependencies: - '@types/node': 20.3.2 + '@types/node': 20.3.3 /@types/retry@0.12.0: resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} @@ -6493,12 +5517,8 @@ packages: /@types/scheduler@0.16.2: resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} - /@types/semver@6.2.3: - resolution: {integrity: sha512-KQf+QAMWKMrtBMsB8/24w53tEsxllMj6TuA80TT/5igJalLI/zm0L3oXRbIAl4Ohfc85gyHX/jhMwsVkmhLU4A==} - dev: true - - /@types/semver@7.3.13: - resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} + /@types/semver@7.5.0: + resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} dev: true /@types/serve-index@1.9.1: @@ -6511,13 +5531,13 @@ packages: resolution: {integrity: sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==} dependencies: '@types/mime': 3.0.1 - '@types/node': 20.3.2 + '@types/node': 20.3.3 dev: true /@types/sockjs@0.3.33: resolution: {integrity: sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==} dependencies: - '@types/node': 20.3.2 + '@types/node': 20.3.3 dev: true /@types/source-list-map@0.1.2: @@ -6553,7 +5573,7 @@ packages: /@types/webpack-sources@3.2.0: resolution: {integrity: sha512-Ft7YH3lEVRQ6ls8k4Ff1oB4jN6oy/XmU6tQISKdhfh+1mR+viZFphS6WL0IrtDOzvefmJg5a0s7ZQoRXwqTEFg==} dependencies: - '@types/node': 20.3.2 + '@types/node': 20.3.3 '@types/source-list-map': 0.1.2 source-map: 0.7.4 dev: true @@ -6561,7 +5581,7 @@ packages: /@types/webpack@4.41.33: resolution: {integrity: sha512-PPajH64Ft2vWevkerISMtnZ8rTs4YmRbs+23c402J0INmxDKCrhZNvwZYtzx96gY2wAtXdrK1BS2fiC8MlLr3g==} dependencies: - '@types/node': 20.3.2 + '@types/node': 20.3.3 '@types/tapable': 1.0.8 '@types/uglify-js': 3.17.1 '@types/webpack-sources': 3.2.0 @@ -6572,7 +5592,7 @@ packages: /@types/ws@8.5.4: resolution: {integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==} dependencies: - '@types/node': 20.3.2 + '@types/node': 20.3.3 dev: true /@types/yargs-parser@21.0.0: @@ -6591,7 +5611,7 @@ packages: '@types/yargs-parser': 21.0.0 dev: true - /@typescript-eslint/eslint-plugin@5.59.9(@typescript-eslint/parser@5.59.9)(eslint@8.42.0)(typescript@5.1.3): + /@typescript-eslint/eslint-plugin@5.59.9(@typescript-eslint/parser@5.59.9)(eslint@8.44.0)(typescript@5.1.6): resolution: {integrity: sha512-4uQIBq1ffXd2YvF7MAvehWKW3zVv/w+mSfRAu+8cKbfj3nwzyqJLNcZJpQ/WZ1HLbJDiowwmQ6NO+63nCA+fqA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -6603,56 +5623,36 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.4.0 - '@typescript-eslint/parser': 5.59.9(eslint@8.42.0)(typescript@5.1.3) + '@typescript-eslint/parser': 5.59.9(eslint@8.44.0)(typescript@5.1.6) '@typescript-eslint/scope-manager': 5.59.9 - '@typescript-eslint/type-utils': 5.59.9(eslint@8.42.0)(typescript@5.1.3) - '@typescript-eslint/utils': 5.59.9(eslint@8.42.0)(typescript@5.1.3) + '@typescript-eslint/type-utils': 5.59.9(eslint@8.44.0)(typescript@5.1.6) + '@typescript-eslint/utils': 5.59.9(eslint@8.44.0)(typescript@5.1.6) debug: 4.3.4 - eslint: 8.42.0 + eslint: 8.44.0 grapheme-splitter: 1.0.4 ignore: 5.2.1 natural-compare-lite: 1.4.0 semver: 7.3.8 - tsutils: 3.21.0(typescript@5.1.3) - typescript: 5.1.3 + tsutils: 3.21.0(typescript@5.1.6) + typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/experimental-utils@5.54.0(eslint@8.42.0)(typescript@5.1.3): + /@typescript-eslint/experimental-utils@5.54.0(eslint@8.44.0)(typescript@5.1.6): resolution: {integrity: sha512-rRYECOTh5V3iWsrOzXi7h1jp3Bi9OkJHrb3wECi3DVqMGTilo9wAYmCbT+6cGdrzUY3MWcAa2mESM6FMik6tVw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@typescript-eslint/utils': 5.54.0(eslint@8.42.0)(typescript@5.1.3) - eslint: 8.42.0 + '@typescript-eslint/utils': 5.54.0(eslint@8.44.0)(typescript@5.1.6) + eslint: 8.44.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/parser@5.59.2(eslint@8.43.0)(typescript@5.0.4): - resolution: {integrity: sha512-uq0sKyw6ao1iFOZZGk9F8Nro/8+gfB5ezl1cA06SrqbgJAt0SRoFhb9pXaHvkrxUpZaoLxt8KlovHNk8Gp6/HQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/scope-manager': 5.59.2 - '@typescript-eslint/types': 5.59.2 - '@typescript-eslint/typescript-estree': 5.59.2(typescript@5.0.4) - debug: 4.3.4 - eslint: 8.43.0 - typescript: 5.0.4 - transitivePeerDependencies: - - supports-color - dev: false - - /@typescript-eslint/parser@5.59.8(eslint@8.41.0)(typescript@5.1.3): + /@typescript-eslint/parser@5.59.8(eslint@8.41.0)(typescript@5.1.6): resolution: {integrity: sha512-AnR19RjJcpjoeGojmwZtCwBX/RidqDZtzcbG3xHrmz0aHHoOcbWnpDllenRDmDvsV0RQ6+tbb09/kyc+UT9Orw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -6664,15 +5664,15 @@ packages: dependencies: '@typescript-eslint/scope-manager': 5.59.8 '@typescript-eslint/types': 5.59.8 - '@typescript-eslint/typescript-estree': 5.59.8(typescript@5.1.3) + '@typescript-eslint/typescript-estree': 5.59.8(typescript@5.1.6) debug: 4.3.4 eslint: 8.41.0 - typescript: 5.1.3 + typescript: 5.1.6 transitivePeerDependencies: - supports-color - dev: false + dev: true - /@typescript-eslint/parser@5.59.9(eslint@8.42.0)(typescript@5.1.3): + /@typescript-eslint/parser@5.59.9(eslint@8.44.0)(typescript@5.1.6): resolution: {integrity: sha512-FsPkRvBtcLQ/eVK1ivDiNYBjn3TGJdXy2fhXX+rc7czWl4ARwnpArwbihSOHI2Peg9WbtGHrbThfBUkZZGTtvQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -6684,13 +5684,12 @@ packages: dependencies: '@typescript-eslint/scope-manager': 5.59.9 '@typescript-eslint/types': 5.59.9 - '@typescript-eslint/typescript-estree': 5.59.9(typescript@5.1.3) + '@typescript-eslint/typescript-estree': 5.59.9(typescript@5.1.6) debug: 4.3.4 - eslint: 8.42.0 - typescript: 5.1.3 + eslint: 8.44.0 + typescript: 5.1.6 transitivePeerDependencies: - supports-color - dev: true /@typescript-eslint/scope-manager@5.54.0: resolution: {integrity: sha512-VTPYNZ7vaWtYna9M4oD42zENOBrb+ZYyCNdFs949GcN8Miwn37b8b7eMj+EZaq7VK9fx0Jd+JhmkhjFhvnovhg==} @@ -6700,21 +5699,13 @@ packages: '@typescript-eslint/visitor-keys': 5.54.0 dev: true - /@typescript-eslint/scope-manager@5.59.2: - resolution: {integrity: sha512-dB1v7ROySwQWKqQ8rEWcdbTsFjh2G0vn8KUyvTXdPoyzSL6lLGkiXEV5CvpJsEe9xIdKV+8Zqb7wif2issoOFA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.59.2 - '@typescript-eslint/visitor-keys': 5.59.2 - dev: false - /@typescript-eslint/scope-manager@5.59.8: resolution: {integrity: sha512-/w08ndCYI8gxGf+9zKf1vtx/16y8MHrZs5/tnjHhMLNSixuNcJavSX4wAiPf4aS5x41Es9YPCn44MIe4cxIlig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: '@typescript-eslint/types': 5.59.8 '@typescript-eslint/visitor-keys': 5.59.8 - dev: false + dev: true /@typescript-eslint/scope-manager@5.59.9: resolution: {integrity: sha512-8RA+E+w78z1+2dzvK/tGZ2cpGigBZ58VMEHDZtpE1v+LLjzrYGc8mMaTONSxKyEkz3IuXFM0IqYiGHlCsmlZxQ==} @@ -6722,9 +5713,8 @@ packages: dependencies: '@typescript-eslint/types': 5.59.9 '@typescript-eslint/visitor-keys': 5.59.9 - dev: true - /@typescript-eslint/type-utils@5.59.9(eslint@8.42.0)(typescript@5.1.3): + /@typescript-eslint/type-utils@5.59.9(eslint@8.44.0)(typescript@5.1.6): resolution: {integrity: sha512-ksEsT0/mEHg9e3qZu98AlSrONAQtrSTljL3ow9CGej8eRo7pe+yaC/mvTjptp23Xo/xIf2mLZKC6KPv4Sji26Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -6734,12 +5724,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.59.9(typescript@5.1.3) - '@typescript-eslint/utils': 5.59.9(eslint@8.42.0)(typescript@5.1.3) + '@typescript-eslint/typescript-estree': 5.59.9(typescript@5.1.6) + '@typescript-eslint/utils': 5.59.9(eslint@8.44.0)(typescript@5.1.6) debug: 4.3.4 - eslint: 8.42.0 - tsutils: 3.21.0(typescript@5.1.3) - typescript: 5.1.3 + eslint: 8.44.0 + tsutils: 3.21.0(typescript@5.1.6) + typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true @@ -6749,22 +5739,16 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/types@5.59.2: - resolution: {integrity: sha512-LbJ/HqoVs2XTGq5shkiKaNTuVv5tTejdHgfdjqRUGdYhjW1crm/M7og2jhVskMt8/4wS3T1+PfFvL1K3wqYj4w==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: false - /@typescript-eslint/types@5.59.8: resolution: {integrity: sha512-+uWuOhBTj/L6awoWIg0BlWy0u9TyFpCHrAuQ5bNfxDaZ1Ppb3mx6tUigc74LHcbHpOHuOTOJrBoAnhdHdaea1w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: false + dev: true /@typescript-eslint/types@5.59.9: resolution: {integrity: sha512-uW8H5NRgTVneSVTfiCVffBb8AbwWSKg7qcA4Ot3JI3MPCJGsB4Db4BhvAODIIYE5mNj7Q+VJkK7JxmRhk2Lyjw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: true - /@typescript-eslint/typescript-estree@5.54.0(typescript@5.1.3): + /@typescript-eslint/typescript-estree@5.54.0(typescript@5.1.6): resolution: {integrity: sha512-X2rJG97Wj/VRo5YxJ8Qx26Zqf0RRKsVHd4sav8NElhbZzhpBI8jU54i6hfo9eheumj4oO4dcRN1B/zIVEqR/MQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -6779,34 +5763,13 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.3 - tsutils: 3.21.0(typescript@5.1.3) - typescript: 5.1.3 + tsutils: 3.21.0(typescript@5.1.6) + typescript: 5.1.6 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/typescript-estree@5.59.2(typescript@5.0.4): - resolution: {integrity: sha512-+j4SmbwVmZsQ9jEyBMgpuBD0rKwi9RxRpjX71Brr73RsYnEr3Lt5QZ624Bxphp8HUkSKfqGnPJp1kA5nl0Sh7Q==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@typescript-eslint/types': 5.59.2 - '@typescript-eslint/visitor-keys': 5.59.2 - debug: 4.3.4 - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.5.3 - tsutils: 3.21.0(typescript@5.0.4) - typescript: 5.0.4 - transitivePeerDependencies: - - supports-color - dev: false - - /@typescript-eslint/typescript-estree@5.59.8(typescript@5.1.3): + /@typescript-eslint/typescript-estree@5.59.8(typescript@5.1.6): resolution: {integrity: sha512-Jy/lPSDJGNow14vYu6IrW790p7HIf/SOV1Bb6lZ7NUkLc2iB2Z9elESmsaUtLw8kVqogSbtLH9tut5GCX1RLDg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -6821,13 +5784,13 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.3 - tsutils: 3.21.0(typescript@5.1.3) - typescript: 5.1.3 + tsutils: 3.21.0(typescript@5.1.6) + typescript: 5.1.6 transitivePeerDependencies: - supports-color - dev: false + dev: true - /@typescript-eslint/typescript-estree@5.59.9(typescript@5.1.3): + /@typescript-eslint/typescript-estree@5.59.9(typescript@5.1.6): resolution: {integrity: sha512-pmM0/VQ7kUhd1QyIxgS+aRvMgw+ZljB3eDb+jYyp6d2bC0mQWLzUDF+DLwCTkQ3tlNyVsvZRXjFyV0LkU/aXjA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -6842,45 +5805,44 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.3 - tsutils: 3.21.0(typescript@5.1.3) - typescript: 5.1.3 + tsutils: 3.21.0(typescript@5.1.6) + typescript: 5.1.6 transitivePeerDependencies: - supports-color - dev: true - /@typescript-eslint/utils@5.54.0(eslint@8.42.0)(typescript@5.1.3): + /@typescript-eslint/utils@5.54.0(eslint@8.44.0)(typescript@5.1.6): resolution: {integrity: sha512-cuwm8D/Z/7AuyAeJ+T0r4WZmlnlxQ8wt7C7fLpFlKMR+dY6QO79Cq1WpJhvZbMA4ZeZGHiRWnht7ZJ8qkdAunw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: '@types/json-schema': 7.0.11 - '@types/semver': 7.3.13 + '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 5.54.0 '@typescript-eslint/types': 5.54.0 - '@typescript-eslint/typescript-estree': 5.54.0(typescript@5.1.3) - eslint: 8.42.0 + '@typescript-eslint/typescript-estree': 5.54.0(typescript@5.1.6) + eslint: 8.44.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0(eslint@8.42.0) + eslint-utils: 3.0.0(eslint@8.44.0) semver: 7.5.3 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/utils@5.59.9(eslint@8.42.0)(typescript@5.1.3): + /@typescript-eslint/utils@5.59.9(eslint@8.44.0)(typescript@5.1.6): resolution: {integrity: sha512-1PuMYsju/38I5Ggblaeb98TOoUvjhRvLpLa1DoTOFaLWqaXl/1iQ1eGurTXgBY58NUdtfTXKP5xBq7q9NDaLKg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - '@eslint-community/eslint-utils': 4.2.0(eslint@8.42.0) + '@eslint-community/eslint-utils': 4.2.0(eslint@8.44.0) '@types/json-schema': 7.0.11 - '@types/semver': 7.3.13 + '@types/semver': 7.5.0 '@typescript-eslint/scope-manager': 5.59.9 '@typescript-eslint/types': 5.59.9 - '@typescript-eslint/typescript-estree': 5.59.9(typescript@5.1.3) - eslint: 8.42.0 + '@typescript-eslint/typescript-estree': 5.59.9(typescript@5.1.6) + eslint: 8.44.0 eslint-scope: 5.1.1 semver: 7.5.3 transitivePeerDependencies: @@ -6896,21 +5858,13 @@ packages: eslint-visitor-keys: 3.4.1 dev: true - /@typescript-eslint/visitor-keys@5.59.2: - resolution: {integrity: sha512-EEpsO8m3RASrKAHI9jpavNv9NlEUebV4qmF1OWxSTtKSFBpC1NCmWazDQHFivRf0O1DV11BA645yrLEVQ0/Lig==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - '@typescript-eslint/types': 5.59.2 - eslint-visitor-keys: 3.4.1 - dev: false - /@typescript-eslint/visitor-keys@5.59.8: resolution: {integrity: sha512-pJhi2ms0x0xgloT7xYabil3SGGlojNNKjK/q6dB3Ey0uJLMjK2UDGJvHieiyJVW/7C3KI+Z4Q3pEHkm4ejA+xQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: '@typescript-eslint/types': 5.59.8 eslint-visitor-keys: 3.4.1 - dev: false + dev: true /@typescript-eslint/visitor-keys@5.59.9: resolution: {integrity: sha512-bT7s0td97KMaLwpEBckbzj/YohnvXtqbe2XgqNvTl6RJVakY5mvENOTPvw5u66nljfZxthESpDozs86U+oLY8Q==} @@ -6918,7 +5872,6 @@ packages: dependencies: '@typescript-eslint/types': 5.59.9 eslint-visitor-keys: 3.4.1 - dev: true /@webassemblyjs/ast@1.11.1: resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==} @@ -7185,16 +6138,16 @@ packages: /acorn-globals@7.0.1: resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} dependencies: - acorn: 8.8.1 + acorn: 8.9.0 acorn-walk: 8.2.0 dev: true - /acorn-import-assertions@1.8.0(acorn@8.8.1): + /acorn-import-assertions@1.8.0(acorn@8.9.0): resolution: {integrity: sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==} peerDependencies: acorn: ^8 dependencies: - acorn: 8.8.1 + acorn: 8.9.0 dev: false /acorn-jsx@5.3.2(acorn@8.8.1): @@ -7203,6 +6156,14 @@ packages: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: acorn: 8.8.1 + dev: true + + /acorn-jsx@5.3.2(acorn@8.9.0): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.9.0 /acorn-walk@6.2.0: resolution: {integrity: sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==} @@ -7224,6 +6185,12 @@ packages: resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==} engines: {node: '>=0.4.0'} hasBin: true + dev: true + + /acorn@8.9.0: + resolution: {integrity: sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==} + engines: {node: '>=0.4.0'} + hasBin: true /agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} @@ -7480,7 +6447,6 @@ packages: dependencies: '@babel/runtime': 7.21.0 '@babel/runtime-corejs3': 7.20.6 - dev: false /arr-diff@4.0.0: resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==} @@ -7611,7 +6577,6 @@ packages: /ast-types-flow@0.0.7: resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} - dev: false /astral-regex@2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} @@ -7654,38 +6619,6 @@ packages: hasBin: true dev: true - /autoprefixer@10.4.14(postcss@8.4.21): - resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - dependencies: - browserslist: 4.21.5 - caniuse-lite: 1.0.30001466 - fraction.js: 4.2.0 - normalize-range: 0.1.2 - picocolors: 1.0.0 - postcss: 8.4.21 - postcss-value-parser: 4.2.0 - dev: true - - /autoprefixer@10.4.14(postcss@8.4.23): - resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==} - engines: {node: ^10 || ^12 || >=14} - hasBin: true - peerDependencies: - postcss: ^8.1.0 - dependencies: - browserslist: 4.21.5 - caniuse-lite: 1.0.30001466 - fraction.js: 4.2.0 - normalize-range: 0.1.2 - picocolors: 1.0.0 - postcss: 8.4.23 - postcss-value-parser: 4.2.0 - dev: true - /autoprefixer@10.4.14(postcss@8.4.24): resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==} engines: {node: ^10 || ^12 || >=14} @@ -7713,7 +6646,6 @@ packages: /axe-core@4.5.2: resolution: {integrity: sha512-u2MVsXfew5HBvjsczCv+xlwdNnB1oQR9HlAcsejZttNjKKSkeDNVwB1vMThIUIFI9GoT57Vtk8iQLwqOfAkboA==} engines: {node: '>=4'} - dev: false /axios@0.21.4: resolution: {integrity: sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==} @@ -7734,7 +6666,6 @@ packages: /axobject-query@2.2.0: resolution: {integrity: sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==} - dev: false /babel-code-frame@6.26.0: resolution: {integrity: sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==} @@ -8066,8 +6997,8 @@ packages: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} dev: true - /boring-avatars@1.7.0: - resolution: {integrity: sha512-ZNHd8J7C/V0IjQMGQowLJ5rScEFU23WxePigH6rqKcT2Esf0qhYvYxw8s9i3srmlfCnCV00ddBjaoGey1eNOfA==} + /boring-avatars@1.10.1: + resolution: {integrity: sha512-WcgHDeLrazCR03CDPEvCchLsUecZAZvs4F6FnMiGlTEjyQQf15Q5TRl4EUaAQ1dacvhPq7lC9EOTWkCojQ6few==} dev: false /boxen@1.3.0: @@ -8287,16 +7218,6 @@ packages: semver: 7.5.3 dev: true - /bundle-require@4.0.1(esbuild@0.17.11): - resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - peerDependencies: - esbuild: '>=0.17' - dependencies: - esbuild: 0.17.11 - load-tsconfig: 0.2.3 - dev: true - /bundle-require@4.0.1(esbuild@0.18.10): resolution: {integrity: sha512-9NQkRHlNdNpDBGmLpngF3EFDcwodhMUuLz9PaWYciVcQF9SE4LFjM2DB/xV1Li5JiuDMv7ZUWuC3rGbqR0MAXQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -8671,16 +7592,10 @@ packages: static-extend: 0.1.2 dev: true - /class-variance-authority@0.6.0(typescript@5.0.4): - resolution: {integrity: sha512-qdRDgfjx3GRb9fpwpSvn+YaidnT7IUJNe4wt5/SWwM+PmUwJUhQRk/8zAyNro0PmVfmen2635UboTjIBXXxy5A==} - peerDependencies: - typescript: '>= 4.5.5 < 6' - peerDependenciesMeta: - typescript: - optional: true + /class-variance-authority@0.6.1: + resolution: {integrity: sha512-eurOEGc7YVx3majOrOb099PNKgO3KnKSApOprXI4BTq6bcfbqbQXPN2u+rPPmIJ2di23bMwhk0SxCCthBmszEQ==} dependencies: clsx: 1.2.1 - typescript: 5.0.4 dev: false /clean-css@4.2.4: @@ -8781,13 +7696,13 @@ packages: engines: {node: '>=6'} dev: false - /cmdk@0.2.0(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0): + /cmdk@0.2.0(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-JQpKvEOb86SnvMZbYaFKYhvzFntWBeSZdyii0rZPhKJj9uwJBxu4DaVYDrRN7r3mPop56oPhRw+JYWTKs66TYw==} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@radix-ui/react-dialog': 1.0.0(@types/react@18.2.7)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-dialog': 1.0.0(react-dom@18.2.0)(react@18.2.0) command-score: 0.1.2 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -8811,7 +7726,7 @@ packages: /code-block-writer@11.0.3: resolution: {integrity: sha512-NiujjUFB4SwScJq2bwbYUtXbZhBSlY6vYzm++3Q6oC+U+injTqfPYFK8wS9COOmb2lueqp0ZRB4nK1VYeHgNyw==} - dev: false + dev: true /collect-v8-coverage@1.0.1: resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==} @@ -9000,20 +7915,20 @@ packages: source-map: 0.6.1 dev: true - /concurrently@8.1.0: - resolution: {integrity: sha512-0AB6eOAtaW/r/kX2lCdolaWtT191ICeuJjEJvI9hT3zbPFuZ/iZaJwMRKwbuwADome7OKxk73L7od+fsveZ7tA==} + /concurrently@8.2.0: + resolution: {integrity: sha512-nnLMxO2LU492mTUj9qX/az/lESonSZu81UznYDoXtz1IQf996ixVqPAgHXwvHiHCAef/7S8HIK+fTFK7Ifk8YA==} engines: {node: ^14.13.0 || >=16.0.0} hasBin: true dependencies: chalk: 4.1.2 date-fns: 2.30.0 lodash: 4.17.21 - rxjs: 7.8.0 - shell-quote: 1.8.0 - spawn-command: 0.0.2-1 + rxjs: 7.8.1 + shell-quote: 1.8.1 + spawn-command: 0.0.2 supports-color: 8.1.1 tree-kill: 1.2.2 - yargs: 17.7.1 + yargs: 17.7.2 dev: true /configstore@3.1.5: @@ -9138,7 +8053,6 @@ packages: /core-js-pure@3.26.1: resolution: {integrity: sha512-VVXcDpp/xJ21KdULRq/lXdLzQAtX7+37LzpyfFM973il0tWSsDEoyzG38G14AjTpK9VTfiNM9jnFauq/CpaWGQ==} requiresBuild: true - dev: false /core-util-is@1.0.2: resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==} @@ -9604,7 +8518,6 @@ packages: /damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} - dev: false /dashdash@1.14.1: resolution: {integrity: sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==} @@ -9655,7 +8568,6 @@ packages: optional: true dependencies: ms: 2.1.3 - dev: false /debug@4.3.4: resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} @@ -9983,22 +8895,6 @@ packages: dependencies: is-obj: 2.0.0 - /dotenv-defaults@2.0.2: - resolution: {integrity: sha512-iOIzovWfsUHU91L5i8bJce3NYK5JXeAwH50Jh6+ARUdLiiGlYWfGw6UkzsYqaXZH/hjE/eCd/PlfM/qqyK0AMg==} - dependencies: - dotenv: 8.6.0 - dev: false - - /dotenv-webpack@8.0.1(webpack@5.75.0): - resolution: {integrity: sha512-CdrgfhZOnx4uB18SgaoP9XHRN2v48BbjuXQsZY5ixs5A8579NxQkmMxRtI7aTwSiSQcM2ao12Fdu+L3ZS3bG4w==} - engines: {node: '>=10'} - peerDependencies: - webpack: ^4 || ^5 - dependencies: - dotenv-defaults: 2.0.2 - webpack: 5.75.0 - dev: false - /dotenv@16.0.3: resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} engines: {node: '>=12'} @@ -10009,11 +8905,6 @@ packages: engines: {node: '>=4.6.0'} dev: false - /dotenv@8.6.0: - resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} - engines: {node: '>=10'} - dev: false - /duplexer3@0.1.5: resolution: {integrity: sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==} @@ -10145,7 +9036,6 @@ packages: dependencies: graceful-fs: 4.2.10 tapable: 2.2.1 - dev: false /enquirer@2.3.6: resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==} @@ -10458,36 +9348,6 @@ packages: esbuild-windows-arm64: 0.15.16 dev: true - /esbuild@0.17.11: - resolution: {integrity: sha512-pAMImyokbWDtnA/ufPxjQg0fYo2DDuzAlqwnDvbXqHLphe+m80eF++perYKVm8LeTuj2zUuFXC+xgSVxyoHUdg==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.17.11 - '@esbuild/android-arm64': 0.17.11 - '@esbuild/android-x64': 0.17.11 - '@esbuild/darwin-arm64': 0.17.11 - '@esbuild/darwin-x64': 0.17.11 - '@esbuild/freebsd-arm64': 0.17.11 - '@esbuild/freebsd-x64': 0.17.11 - '@esbuild/linux-arm': 0.17.11 - '@esbuild/linux-arm64': 0.17.11 - '@esbuild/linux-ia32': 0.17.11 - '@esbuild/linux-loong64': 0.17.11 - '@esbuild/linux-mips64el': 0.17.11 - '@esbuild/linux-ppc64': 0.17.11 - '@esbuild/linux-riscv64': 0.17.11 - '@esbuild/linux-s390x': 0.17.11 - '@esbuild/linux-x64': 0.17.11 - '@esbuild/netbsd-x64': 0.17.11 - '@esbuild/openbsd-x64': 0.17.11 - '@esbuild/sunos-x64': 0.17.11 - '@esbuild/win32-arm64': 0.17.11 - '@esbuild/win32-ia32': 0.17.11 - '@esbuild/win32-x64': 0.17.11 - dev: true - /esbuild@0.18.10: resolution: {integrity: sha512-33WKo67auOXzZHBY/9DTJRo7kIvfU12S+D4sp2wIz39N88MDIaCGyCwbW01RR70pK6Iya0I74lHEpyLfFqOHPA==} engines: {node: '>=12'} @@ -10574,32 +9434,7 @@ packages: source-map: 0.6.1 dev: true - /eslint-config-next@13.4.3(eslint@8.43.0)(typescript@5.0.4): - resolution: {integrity: sha512-1lXwdFi29fKxzeugof/TUE7lpHyJQt5+U4LaUHyvQfHjvsWO77vFNicJv5sX6k0VDVSbnfz0lw+avxI+CinbMg==} - peerDependencies: - eslint: ^7.23.0 || ^8.0.0 - typescript: '>=3.3.1' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - '@next/eslint-plugin-next': 13.4.3 - '@rushstack/eslint-patch': 1.2.0 - '@typescript-eslint/parser': 5.59.2(eslint@8.43.0)(typescript@5.0.4) - eslint: 8.43.0 - eslint-import-resolver-node: 0.3.6 - eslint-import-resolver-typescript: 3.5.2(eslint-plugin-import@2.26.0)(eslint@8.43.0) - eslint-plugin-import: 2.26.0(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-typescript@3.5.2)(eslint@8.43.0) - eslint-plugin-jsx-a11y: 6.6.1(eslint@8.43.0) - eslint-plugin-react: 7.32.2(eslint@8.43.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.43.0) - typescript: 5.0.4 - transitivePeerDependencies: - - eslint-import-resolver-webpack - - supports-color - dev: false - - /eslint-config-next@13.4.4(eslint@8.41.0)(typescript@5.1.3): + /eslint-config-next@13.4.4(eslint@8.41.0)(typescript@5.1.6): resolution: {integrity: sha512-z/PMbm6L0iC/fwISULxe8IVy4DtNqZk2wQY711o35klenq70O6ns82A8yuMVCFjHC0DIyB2lyugesRtuk9u8dQ==} peerDependencies: eslint: ^7.23.0 || ^8.0.0 @@ -10610,7 +9445,7 @@ packages: dependencies: '@next/eslint-plugin-next': 13.4.4 '@rushstack/eslint-patch': 1.2.0 - '@typescript-eslint/parser': 5.59.8(eslint@8.41.0)(typescript@5.1.3) + '@typescript-eslint/parser': 5.59.8(eslint@8.41.0)(typescript@5.1.6) eslint: 8.41.0 eslint-import-resolver-node: 0.3.6 eslint-import-resolver-typescript: 3.5.2(eslint-plugin-import@2.26.0)(eslint@8.41.0) @@ -10618,27 +9453,52 @@ packages: eslint-plugin-jsx-a11y: 6.6.1(eslint@8.41.0) eslint-plugin-react: 7.32.2(eslint@8.41.0) eslint-plugin-react-hooks: 4.6.0(eslint@8.41.0) - typescript: 5.1.3 + typescript: 5.1.6 + transitivePeerDependencies: + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-config-next@13.4.8(eslint@8.44.0)(typescript@5.1.6): + resolution: {integrity: sha512-2hE0b6lHuhtHBX8VgEXi8v4G8PVrPUBMOSLCTq8qtcQ2qQOX7+uBOLK2kU4FD2qDZzyXNlhmuH+WLT5ptY4XLA==} + peerDependencies: + eslint: ^7.23.0 || ^8.0.0 + typescript: '>=3.3.1' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@next/eslint-plugin-next': 13.4.8 + '@rushstack/eslint-patch': 1.2.0 + '@typescript-eslint/parser': 5.59.9(eslint@8.44.0)(typescript@5.1.6) + eslint: 8.44.0 + eslint-import-resolver-node: 0.3.6 + eslint-import-resolver-typescript: 3.5.2(eslint-plugin-import@2.26.0)(eslint@8.44.0) + eslint-plugin-import: 2.26.0(@typescript-eslint/parser@5.59.9)(eslint-import-resolver-typescript@3.5.2)(eslint@8.44.0) + eslint-plugin-jsx-a11y: 6.6.1(eslint@8.44.0) + eslint-plugin-react: 7.32.2(eslint@8.44.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.44.0) + typescript: 5.1.6 transitivePeerDependencies: - eslint-import-resolver-webpack - supports-color dev: false - /eslint-config-preact@1.3.0(@typescript-eslint/eslint-plugin@5.59.9)(eslint@8.42.0)(jest@29.5.0)(typescript@5.1.3): + /eslint-config-preact@1.3.0(@typescript-eslint/eslint-plugin@5.59.9)(eslint@8.44.0)(jest@29.5.0)(typescript@5.1.6): resolution: {integrity: sha512-yHYXg5qNzEJd3D/30AmsIW0W8MuY858KpApXp7xxBF08IYUljSKCOqMx+dVucXHQnAm7+11wOnMkgVHIBAechw==} peerDependencies: eslint: 6.x || 7.x || 8.x dependencies: '@babel/core': 7.22.5 - '@babel/eslint-parser': 7.19.1(@babel/core@7.22.5)(eslint@8.42.0) + '@babel/eslint-parser': 7.19.1(@babel/core@7.22.5)(eslint@8.44.0) '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.22.5) '@babel/plugin-syntax-decorators': 7.19.0(@babel/core@7.22.5) '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.22.5) - eslint: 8.42.0 - eslint-plugin-compat: 4.1.2(eslint@8.42.0) - eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.59.9)(eslint@8.42.0)(jest@29.5.0)(typescript@5.1.3) - eslint-plugin-react: 7.32.2(eslint@8.42.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.42.0) + eslint: 8.44.0 + eslint-plugin-compat: 4.1.2(eslint@8.44.0) + eslint-plugin-jest: 25.7.0(@typescript-eslint/eslint-plugin@5.59.9)(eslint@8.44.0)(jest@29.5.0)(typescript@5.1.6) + eslint-plugin-react: 7.32.2(eslint@8.44.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.44.0) transitivePeerDependencies: - '@typescript-eslint/eslint-plugin' - jest @@ -10653,7 +9513,7 @@ packages: eslint: '>=7.0.0' dependencies: eslint: 8.41.0 - dev: false + dev: true /eslint-config-turbo@1.8.8(eslint@8.41.0): resolution: {integrity: sha512-+yT22sHOT5iC1sbBXfLIdXfbZuiv9bAyOXsxTxFCWelTeFFnANqmuKB3x274CFvf7WRuZ/vYP/VMjzU9xnFnxA==} @@ -10662,7 +9522,7 @@ packages: dependencies: eslint: 8.41.0 eslint-plugin-turbo: 1.8.8(eslint@8.41.0) - dev: false + dev: true /eslint-import-resolver-node@0.3.6: resolution: {integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==} @@ -10671,7 +9531,6 @@ packages: resolve: 1.22.2 transitivePeerDependencies: - supports-color - dev: false /eslint-import-resolver-typescript@3.5.2(eslint-plugin-import@2.26.0)(eslint@8.41.0): resolution: {integrity: sha512-zX4ebnnyXiykjhcBvKIf5TNvt8K7yX6bllTRZ14MiurKPjDpCAZujlszTdB8pcNXhZcOf+god4s9SjQa5GnytQ==} @@ -10691,9 +9550,9 @@ packages: synckit: 0.8.4 transitivePeerDependencies: - supports-color - dev: false + dev: true - /eslint-import-resolver-typescript@3.5.2(eslint-plugin-import@2.26.0)(eslint@8.43.0): + /eslint-import-resolver-typescript@3.5.2(eslint-plugin-import@2.26.0)(eslint@8.44.0): resolution: {integrity: sha512-zX4ebnnyXiykjhcBvKIf5TNvt8K7yX6bllTRZ14MiurKPjDpCAZujlszTdB8pcNXhZcOf+god4s9SjQa5GnytQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -10702,8 +9561,8 @@ packages: dependencies: debug: 4.3.4 enhanced-resolve: 5.12.0 - eslint: 8.43.0 - eslint-plugin-import: 2.26.0(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-typescript@3.5.2)(eslint@8.43.0) + eslint: 8.44.0 + eslint-plugin-import: 2.26.0(@typescript-eslint/parser@5.59.9)(eslint-import-resolver-typescript@3.5.2)(eslint@8.44.0) get-tsconfig: 4.4.0 globby: 13.1.2 is-core-module: 2.11.0 @@ -10713,36 +9572,6 @@ packages: - supports-color dev: false - /eslint-module-utils@2.7.4(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.6)(eslint-import-resolver-typescript@3.5.2)(eslint@8.43.0): - resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: '*' - eslint-import-resolver-node: '*' - eslint-import-resolver-typescript: '*' - eslint-import-resolver-webpack: '*' - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - eslint: - optional: true - eslint-import-resolver-node: - optional: true - eslint-import-resolver-typescript: - optional: true - eslint-import-resolver-webpack: - optional: true - dependencies: - '@typescript-eslint/parser': 5.59.2(eslint@8.43.0)(typescript@5.0.4) - debug: 3.2.7 - eslint: 8.43.0 - eslint-import-resolver-node: 0.3.6 - eslint-import-resolver-typescript: 3.5.2(eslint-plugin-import@2.26.0)(eslint@8.43.0) - transitivePeerDependencies: - - supports-color - dev: false - /eslint-module-utils@2.7.4(@typescript-eslint/parser@5.59.8)(eslint-import-resolver-node@0.3.6)(eslint-import-resolver-typescript@3.5.2)(eslint@8.41.0): resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} engines: {node: '>=4'} @@ -10764,16 +9593,46 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.59.8(eslint@8.41.0)(typescript@5.1.3) + '@typescript-eslint/parser': 5.59.8(eslint@8.41.0)(typescript@5.1.6) debug: 3.2.7 eslint: 8.41.0 eslint-import-resolver-node: 0.3.6 eslint-import-resolver-typescript: 3.5.2(eslint-plugin-import@2.26.0)(eslint@8.41.0) transitivePeerDependencies: - supports-color + dev: true + + /eslint-module-utils@2.7.4(@typescript-eslint/parser@5.59.9)(eslint-import-resolver-node@0.3.6)(eslint-import-resolver-typescript@3.5.2)(eslint@8.44.0): + resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 5.59.9(eslint@8.44.0)(typescript@5.1.6) + debug: 3.2.7 + eslint: 8.44.0 + eslint-import-resolver-node: 0.3.6 + eslint-import-resolver-typescript: 3.5.2(eslint-plugin-import@2.26.0)(eslint@8.44.0) + transitivePeerDependencies: + - supports-color dev: false - /eslint-plugin-compat@4.1.2(eslint@8.42.0): + /eslint-plugin-compat@4.1.2(eslint@8.44.0): resolution: {integrity: sha512-DNrQgDi5L4mAL4FdFboKBlSRg6MWfd75eA7K91lMjtP5ryN+O11qT2FDn7Z6zqy6sZ4sJawUR5V75qzB6l0CBg==} engines: {node: '>=16.x'} peerDependencies: @@ -10783,43 +9642,12 @@ packages: ast-metadata-inferer: 0.7.0 browserslist: 4.21.5 caniuse-lite: 1.0.30001466 - eslint: 8.42.0 + eslint: 8.44.0 find-up: 5.0.0 lodash.memoize: 4.1.2 semver: 7.3.8 dev: true - /eslint-plugin-import@2.26.0(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-typescript@3.5.2)(eslint@8.43.0): - resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} - engines: {node: '>=4'} - peerDependencies: - '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - peerDependenciesMeta: - '@typescript-eslint/parser': - optional: true - dependencies: - '@typescript-eslint/parser': 5.59.2(eslint@8.43.0)(typescript@5.0.4) - array-includes: 3.1.6 - array.prototype.flat: 1.3.1 - debug: 2.6.9 - doctrine: 2.1.0 - eslint: 8.43.0 - eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.6)(eslint-import-resolver-typescript@3.5.2)(eslint@8.43.0) - has: 1.0.3 - is-core-module: 2.11.0 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.values: 1.1.6 - resolve: 1.22.2 - tsconfig-paths: 3.14.1 - transitivePeerDependencies: - - eslint-import-resolver-typescript - - eslint-import-resolver-webpack - - supports-color - dev: false - /eslint-plugin-import@2.26.0(@typescript-eslint/parser@5.59.8)(eslint-import-resolver-typescript@3.5.2)(eslint@8.41.0): resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} engines: {node: '>=4'} @@ -10830,7 +9658,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.59.8(eslint@8.41.0)(typescript@5.1.3) + '@typescript-eslint/parser': 5.59.8(eslint@8.41.0)(typescript@5.1.6) array-includes: 3.1.6 array.prototype.flat: 1.3.1 debug: 2.6.9 @@ -10849,9 +9677,40 @@ packages: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color + dev: true + + /eslint-plugin-import@2.26.0(@typescript-eslint/parser@5.59.9)(eslint-import-resolver-typescript@3.5.2)(eslint@8.44.0): + resolution: {integrity: sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 5.59.9(eslint@8.44.0)(typescript@5.1.6) + array-includes: 3.1.6 + array.prototype.flat: 1.3.1 + debug: 2.6.9 + doctrine: 2.1.0 + eslint: 8.44.0 + eslint-import-resolver-node: 0.3.6 + eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.59.9)(eslint-import-resolver-node@0.3.6)(eslint-import-resolver-typescript@3.5.2)(eslint@8.44.0) + has: 1.0.3 + is-core-module: 2.11.0 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.values: 1.1.6 + resolve: 1.22.2 + tsconfig-paths: 3.14.1 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color dev: false - /eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.59.9)(eslint@8.42.0)(jest@29.5.0)(typescript@5.1.3): + /eslint-plugin-jest@25.7.0(@typescript-eslint/eslint-plugin@5.59.9)(eslint@8.44.0)(jest@29.5.0)(typescript@5.1.6): resolution: {integrity: sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} peerDependencies: @@ -10864,9 +9723,9 @@ packages: jest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 5.59.9(@typescript-eslint/parser@5.59.9)(eslint@8.42.0)(typescript@5.1.3) - '@typescript-eslint/experimental-utils': 5.54.0(eslint@8.42.0)(typescript@5.1.3) - eslint: 8.42.0 + '@typescript-eslint/eslint-plugin': 5.59.9(@typescript-eslint/parser@5.59.9)(eslint@8.44.0)(typescript@5.1.6) + '@typescript-eslint/experimental-utils': 5.54.0(eslint@8.44.0)(typescript@5.1.6) + eslint: 8.44.0 jest: 29.5.0 transitivePeerDependencies: - supports-color @@ -10893,9 +9752,9 @@ packages: language-tags: 1.0.5 minimatch: 3.1.2 semver: 6.3.0 - dev: false + dev: true - /eslint-plugin-jsx-a11y@6.6.1(eslint@8.43.0): + /eslint-plugin-jsx-a11y@6.6.1(eslint@8.44.0): resolution: {integrity: sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==} engines: {node: '>=4.0'} peerDependencies: @@ -10909,7 +9768,7 @@ packages: axobject-query: 2.2.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.43.0 + eslint: 8.44.0 has: 1.0.3 jsx-ast-utils: 3.3.3 language-tags: 1.0.5 @@ -10924,25 +9783,15 @@ packages: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: eslint: 8.41.0 - dev: false - - /eslint-plugin-react-hooks@4.6.0(eslint@8.42.0): - resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} - engines: {node: '>=10'} - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - dependencies: - eslint: 8.42.0 dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.43.0): + /eslint-plugin-react-hooks@4.6.0(eslint@8.44.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.43.0 - dev: false + eslint: 8.44.0 /eslint-plugin-react@7.32.2(eslint@8.41.0): resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} @@ -10966,33 +9815,9 @@ packages: resolve: 2.0.0-next.4 semver: 6.3.0 string.prototype.matchall: 4.0.8 - dev: false - - /eslint-plugin-react@7.32.2(eslint@8.42.0): - resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} - engines: {node: '>=4'} - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - dependencies: - array-includes: 3.1.6 - array.prototype.flatmap: 1.3.1 - array.prototype.tosorted: 1.1.1 - doctrine: 2.1.0 - eslint: 8.42.0 - estraverse: 5.3.0 - jsx-ast-utils: 3.3.3 - minimatch: 3.1.2 - object.entries: 1.1.6 - object.fromentries: 2.0.6 - object.hasown: 1.1.2 - object.values: 1.1.6 - prop-types: 15.8.1 - resolve: 2.0.0-next.4 - semver: 6.3.0 - string.prototype.matchall: 4.0.8 dev: true - /eslint-plugin-react@7.32.2(eslint@8.43.0): + /eslint-plugin-react@7.32.2(eslint@8.44.0): resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} engines: {node: '>=4'} peerDependencies: @@ -11002,7 +9827,7 @@ packages: array.prototype.flatmap: 1.3.1 array.prototype.tosorted: 1.1.1 doctrine: 2.1.0 - eslint: 8.43.0 + eslint: 8.44.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.3 minimatch: 3.1.2 @@ -11014,7 +9839,6 @@ packages: resolve: 2.0.0-next.4 semver: 6.3.0 string.prototype.matchall: 4.0.8 - dev: false /eslint-plugin-turbo@1.8.8(eslint@8.41.0): resolution: {integrity: sha512-zqyTIvveOY4YU5jviDWw9GXHd4RiKmfEgwsjBrV/a965w0PpDwJgEUoSMB/C/dU310Sv9mF3DSdEjxjJLaw6rA==} @@ -11022,7 +9846,7 @@ packages: eslint: '>6.6.0' dependencies: eslint: 8.41.0 - dev: false + dev: true /eslint-scope@4.0.3: resolution: {integrity: sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==} @@ -11046,13 +9870,13 @@ packages: esrecurse: 4.3.0 estraverse: 5.3.0 - /eslint-utils@3.0.0(eslint@8.42.0): + /eslint-utils@3.0.0(eslint@8.44.0): resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} peerDependencies: eslint: '>=5' dependencies: - eslint: 8.42.0 + eslint: 8.44.0 eslint-visitor-keys: 2.1.0 dev: true @@ -11111,64 +9935,17 @@ packages: text-table: 0.2.0 transitivePeerDependencies: - supports-color - - /eslint@8.42.0: - resolution: {integrity: sha512-ulg9Ms6E1WPf67PHaEY4/6E2tEn5/f7FXGzr3t9cBMugOmf1INYvuUwwh1aXQN4MfJ6a5K2iNwP3w4AColvI9A==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - dependencies: - '@eslint-community/eslint-utils': 4.2.0(eslint@8.42.0) - '@eslint-community/regexpp': 4.4.0 - '@eslint/eslintrc': 2.0.3 - '@eslint/js': 8.42.0 - '@humanwhocodes/config-array': 0.11.10 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.0 - eslint-visitor-keys: 3.4.1 - espree: 9.5.2 - esquery: 1.5.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.19.0 - graphemer: 1.4.0 - ignore: 5.2.1 - import-fresh: 3.3.0 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.1 - strip-ansi: 6.0.1 - strip-json-comments: 3.1.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color dev: true - /eslint@8.43.0: - resolution: {integrity: sha512-aaCpf2JqqKesMFGgmRPessmVKjcGXqdlAYLLC3THM8t5nBRZRQ+st5WM/hoJXkdioEXLLbXgclUpM0TXo5HX5Q==} + /eslint@8.44.0: + resolution: {integrity: sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.2.0(eslint@8.43.0) + '@eslint-community/eslint-utils': 4.2.0(eslint@8.44.0) '@eslint-community/regexpp': 4.4.0 - '@eslint/eslintrc': 2.0.3 - '@eslint/js': 8.43.0 + '@eslint/eslintrc': 2.1.0 + '@eslint/js': 8.44.0 '@humanwhocodes/config-array': 0.11.10 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -11180,7 +9957,7 @@ packages: escape-string-regexp: 4.0.0 eslint-scope: 7.2.0 eslint-visitor-keys: 3.4.1 - espree: 9.5.2 + espree: 9.6.0 esquery: 1.5.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 @@ -11200,7 +9977,7 @@ packages: lodash.merge: 4.6.2 minimatch: 3.1.2 natural-compare: 1.4.0 - optionator: 0.9.1 + optionator: 0.9.3 strip-ansi: 6.0.1 strip-json-comments: 3.1.1 text-table: 0.2.0 @@ -11219,6 +9996,15 @@ packages: acorn: 8.8.1 acorn-jsx: 5.3.2(acorn@8.8.1) eslint-visitor-keys: 3.4.1 + dev: true + + /espree@9.6.0: + resolution: {integrity: sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.9.0 + acorn-jsx: 5.3.2(acorn@8.9.0) + eslint-visitor-keys: 3.4.1 /esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} @@ -11693,14 +10479,14 @@ packages: engines: {node: '>=14'} dependencies: cross-spawn: 7.0.3 - signal-exit: 4.0.1 + signal-exit: 4.0.2 dev: true /forever-agent@0.6.1: resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} dev: true - /fork-ts-checker-webpack-plugin@4.1.6(eslint@8.42.0)(typescript@4.6.4)(webpack@4.46.0): + /fork-ts-checker-webpack-plugin@4.1.6(eslint@8.44.0)(typescript@4.6.4)(webpack@4.46.0): resolution: {integrity: sha512-DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw==} engines: {node: '>=6.11.5', yarn: '>=1.0.0'} peerDependencies: @@ -11716,7 +10502,7 @@ packages: dependencies: '@babel/code-frame': 7.22.5 chalk: 2.4.2 - eslint: 8.42.0 + eslint: 8.44.0 micromatch: 3.1.10 minimatch: 3.1.2 semver: 5.7.1 @@ -12028,28 +10814,16 @@ packages: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} dev: false - /glob@10.2.2: - resolution: {integrity: sha512-Xsa0BcxIC6th9UwNjZkhrMtNo/MnyRL8jGCP+uEwhA5oFOCY1f2s1/oNKY47xQ0Bg5nkjsfAEIej1VeH62bDDQ==} + /glob@10.3.1: + resolution: {integrity: sha512-9BKYcEeIs7QwlCYs+Y3GBvqAMISufUS0i2ELd11zpZjxI5V9iyRj0HgzB5/cLf2NY4vcYBTYzJ7GIui7j/4DOw==} engines: {node: '>=16 || 14 >=14.17'} hasBin: true dependencies: foreground-child: 3.1.1 - jackspeak: 2.2.0 - minimatch: 9.0.0 - minipass: 5.0.0 - path-scurry: 1.7.0 - dev: true - - /glob@10.2.6: - resolution: {integrity: sha512-U/rnDpXJGF414QQQZv5uVsabTVxMSwzS5CH0p3DRCIV6ownl4f7PzGnkGmvlum2wB+9RlJWJZ6ACU1INnBqiPA==} - engines: {node: '>=16 || 14 >=14.17'} - hasBin: true - dependencies: - foreground-child: 3.1.1 - jackspeak: 2.2.0 - minimatch: 9.0.1 - minipass: 5.0.0 - path-scurry: 1.7.0 + jackspeak: 2.2.1 + minimatch: 9.0.2 + minipass: 6.0.2 + path-scurry: 1.10.0 dev: true /glob@7.1.6: @@ -12072,7 +10846,6 @@ packages: minimatch: 3.1.2 once: 1.4.0 path-is-absolute: 1.0.1 - dev: false /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} @@ -12150,7 +10923,6 @@ packages: ignore: 5.2.1 merge2: 1.4.1 slash: 4.0.0 - dev: false /globrex@0.1.2: resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} @@ -13360,8 +12132,8 @@ packages: istanbul-lib-report: 3.0.0 dev: true - /jackspeak@2.2.0: - resolution: {integrity: sha512-r5XBrqIJfwRIjRt/Xr5fv9Wh09qyhHfKnYddDlpM+ibRR20qrYActpCAgU6U+d53EOEjzkvxPMVHSlgR7leXrQ==} + /jackspeak@2.2.1: + resolution: {integrity: sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw==} engines: {node: '>=14'} dependencies: '@isaacs/cliui': 8.0.2 @@ -13396,7 +12168,7 @@ packages: '@jest/expect': 29.5.0 '@jest/test-result': 29.5.0 '@jest/types': 29.5.0 - '@types/node': 20.3.2 + '@types/node': 20.3.3 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 @@ -13433,18 +12205,18 @@ packages: exit: 0.1.2 graceful-fs: 4.2.10 import-local: 3.1.0 - jest-config: 29.5.0(@types/node@20.3.2) + jest-config: 29.5.0(@types/node@20.3.3) jest-util: 29.5.0 jest-validate: 29.5.0 prompts: 2.4.2 - yargs: 17.7.1 + yargs: 17.7.2 transitivePeerDependencies: - '@types/node' - supports-color - ts-node dev: true - /jest-config@29.5.0(@types/node@20.3.2): + /jest-config@29.5.0(@types/node@20.3.3): resolution: {integrity: sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: @@ -13459,7 +12231,7 @@ packages: '@babel/core': 7.22.5 '@jest/test-sequencer': 29.5.0 '@jest/types': 29.5.0 - '@types/node': 20.3.2 + '@types/node': 20.3.3 babel-jest: 29.5.0(@babel/core@7.22.5) chalk: 4.1.2 ci-info: 3.7.0 @@ -13524,7 +12296,7 @@ packages: '@jest/fake-timers': 29.5.0 '@jest/types': 29.5.0 '@types/jsdom': 20.0.1 - '@types/node': 20.3.2 + '@types/node': 20.3.3 jest-mock: 29.5.0 jest-util: 29.5.0 jsdom: 20.0.3 @@ -13541,7 +12313,7 @@ packages: '@jest/environment': 29.5.0 '@jest/fake-timers': 29.5.0 '@jest/types': 29.5.0 - '@types/node': 20.3.2 + '@types/node': 20.3.3 jest-mock: 29.5.0 jest-util: 29.5.0 dev: true @@ -13566,7 +12338,7 @@ packages: dependencies: '@jest/types': 27.5.1 '@types/graceful-fs': 4.1.5 - '@types/node': 20.3.2 + '@types/node': 20.3.3 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.10 @@ -13586,7 +12358,7 @@ packages: dependencies: '@jest/types': 29.5.0 '@types/graceful-fs': 4.1.5 - '@types/node': 20.3.2 + '@types/node': 20.3.3 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.10 @@ -13652,7 +12424,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.5.0 - '@types/node': 20.3.2 + '@types/node': 20.3.3 jest-util: 29.5.0 dev: true @@ -13736,7 +12508,7 @@ packages: '@jest/test-result': 29.5.0 '@jest/transform': 29.5.0 '@jest/types': 29.5.0 - '@types/node': 20.3.2 + '@types/node': 20.3.3 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.10 @@ -13767,7 +12539,7 @@ packages: '@jest/test-result': 29.5.0 '@jest/transform': 29.5.0 '@jest/types': 29.5.0 - '@types/node': 20.3.2 + '@types/node': 20.3.3 chalk: 4.1.2 cjs-module-lexer: 1.2.2 collect-v8-coverage: 1.0.1 @@ -13790,7 +12562,7 @@ packages: resolution: {integrity: sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: - '@types/node': 20.3.2 + '@types/node': 20.3.3 graceful-fs: 4.2.10 dev: true @@ -13830,7 +12602,7 @@ packages: engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} dependencies: '@jest/types': 27.5.1 - '@types/node': 20.3.2 + '@types/node': 20.3.3 chalk: 4.1.2 ci-info: 3.7.0 graceful-fs: 4.2.10 @@ -13842,7 +12614,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.5.0 - '@types/node': 20.3.2 + '@types/node': 20.3.3 chalk: 4.1.2 ci-info: 3.7.0 graceful-fs: 4.2.10 @@ -13883,7 +12655,7 @@ packages: dependencies: '@jest/test-result': 27.5.1 '@jest/types': 27.5.1 - '@types/node': 20.3.2 + '@types/node': 20.3.3 ansi-escapes: 4.3.2 chalk: 4.1.2 jest-util: 27.5.1 @@ -13896,7 +12668,7 @@ packages: dependencies: '@jest/test-result': 29.5.0 '@jest/types': 29.5.0 - '@types/node': 20.3.2 + '@types/node': 20.3.3 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -13908,7 +12680,7 @@ packages: resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 20.3.2 + '@types/node': 20.3.3 merge-stream: 2.0.0 supports-color: 7.2.0 dev: true @@ -13917,7 +12689,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 20.3.2 + '@types/node': 20.3.3 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -13925,7 +12697,7 @@ packages: resolution: {integrity: sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 20.3.2 + '@types/node': 20.3.3 jest-util: 29.5.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -14038,7 +12810,7 @@ packages: optional: true dependencies: abab: 2.0.6 - acorn: 8.8.1 + acorn: 8.9.0 acorn-globals: 7.0.1 cssom: 0.5.0 cssstyle: 2.3.0 @@ -14229,13 +13001,11 @@ packages: /language-subtag-registry@0.3.22: resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} - dev: false /language-tags@1.0.5: resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==} dependencies: language-subtag-registry: 0.3.22 - dev: false /last-call-webpack-plugin@3.0.0: resolution: {integrity: sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==} @@ -14310,11 +13080,6 @@ packages: yargs: 14.2.3 dev: false - /lilconfig@2.0.6: - resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} - engines: {node: '>=10'} - dev: true - /lilconfig@2.1.0: resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} engines: {node: '>=10'} @@ -14508,6 +13273,11 @@ packages: resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} engines: {node: '>=8'} + /lru-cache@10.0.0: + resolution: {integrity: sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==} + engines: {node: 14 || >=16.14} + dev: true + /lru-cache@4.1.5: resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} dependencies: @@ -14526,21 +13296,8 @@ packages: dependencies: yallist: 4.0.0 - /lru-cache@9.1.1: - resolution: {integrity: sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==} - engines: {node: 14 || >=16.14} - dev: true - - /lucide-react@0.221.0(react@18.2.0): - resolution: {integrity: sha512-g99pn2/lBaCEAA0cbi4eaCO+3rY4mSfjCaDlo8Z30F0wk8MXoBXhCR1TaUS9cmNdOP9VGxgUpoB4qMg7/vyC8A==} - peerDependencies: - react: ^16.5.1 || ^17.0.0 || ^18.0.0 - dependencies: - react: 18.2.0 - dev: false - - /lucide-react@0.233.0(react@18.2.0): - resolution: {integrity: sha512-r0jMHF0vPDq2wBbZ0B3rtIcBjDyWDKpHu+vAjD2OHn2WLUr3HN5IHovtO0EMgQXuSI7YrMZbjsEZWC2uBHr8nQ==} + /lucide-react@0.258.0(react@18.2.0): + resolution: {integrity: sha512-3evnpKadBrjLr2HHJ66eDZ1y0vPS6pm8NiNDaLqhddUUyJGnA+lfDPZfbVkuAFq7Xaa1TEy7Sg17sM7mHpMKrA==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 dependencies: @@ -15083,8 +13840,8 @@ packages: /micromark-extension-mdxjs@1.0.0: resolution: {integrity: sha512-TZZRZgeHvtgm+IhtgC2+uDMR7h8eTKF0QUX9YsgoL9+bADBpBY6SiLvWqnBlLbCEevITmTqmEuY3FoxMKVs1rQ==} dependencies: - acorn: 8.8.1 - acorn-jsx: 5.3.2(acorn@8.8.1) + acorn: 8.9.0 + acorn-jsx: 5.3.2(acorn@8.9.0) micromark-extension-mdx-expression: 1.0.3 micromark-extension-mdx-jsx: 1.0.3 micromark-extension-mdx-md: 1.0.0 @@ -15386,15 +14143,8 @@ packages: brace-expansion: 2.0.1 dev: true - /minimatch@9.0.0: - resolution: {integrity: sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==} - engines: {node: '>=16 || 14 >=14.17'} - dependencies: - brace-expansion: 2.0.1 - dev: true - - /minimatch@9.0.1: - resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==} + /minimatch@9.0.2: + resolution: {integrity: sha512-PZOT9g5v2ojiTL7r1xF6plNHLtOeTpSlDI007As2NlA2aYBMfVom17yqa6QzhmDP8QOhn7LjHTg7DFCVSSa6yg==} engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 @@ -15447,9 +14197,9 @@ packages: yallist: 4.0.0 dev: true - /minipass@5.0.0: - resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==} - engines: {node: '>=8'} + /minipass@6.0.2: + resolution: {integrity: sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==} + engines: {node: '>=16 || 14 >=14.17'} dev: true /minizlib@1.3.3: @@ -15510,6 +14260,7 @@ packages: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} engines: {node: '>=10'} hasBin: true + dev: true /move-concurrently@1.0.1: resolution: {integrity: sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ==} @@ -15634,12 +14385,6 @@ packages: stylis: 4.1.3 dev: false - /nanoid@3.3.4: - resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - dev: true - /nanoid@3.3.6: resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -15694,7 +14439,7 @@ packages: engines: {node: '>=10'} dev: true - /next-auth@4.22.1(next@13.4.3)(nodemailer@6.9.2)(react-dom@18.2.0)(react@18.2.0): + /next-auth@4.22.1(next@13.4.8)(nodemailer@6.9.3)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-NTR3f6W7/AWXKw8GSsgSyQcDW6jkslZLH8AiZa5PQ09w1kR8uHtR9rez/E9gAq/o17+p0JYHE8QjF3RoniiObA==} peerDependencies: next: ^12.2.5 || ^13 @@ -15709,8 +14454,8 @@ packages: '@panva/hkdf': 1.0.2 cookie: 0.5.0 jose: 4.13.1 - next: 13.4.3(react-dom@18.2.0)(react@18.2.0) - nodemailer: 6.9.2 + next: 13.4.8(react-dom@18.2.0)(react@18.2.0) + nodemailer: 6.9.3 oauth: 0.9.15 openid-client: 5.4.0 preact: 10.15.0 @@ -15720,127 +14465,34 @@ packages: uuid: 8.3.2 dev: false - /next-plausible@3.8.0(next@13.4.7)(react-dom@18.2.0)(react@18.2.0): + /next-plausible@3.8.0(next@13.4.8)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-fOSI5dRwQkDcARAPqwCM2nqYf2bCP5ITUrX/jj2owkggi7LHAaKku4k/6CoKHAygs7EumYiGOuPt+qaTxxo+YA==} peerDependencies: next: ^11.1.0 || ^12.0.0 || ^13.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 dependencies: - next: 13.4.7(react-dom@18.2.0)(react@18.2.0) + next: 13.4.8(react-dom@18.2.0)(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /next-sitemap@4.1.3(@next/env@13.4.7)(next@13.4.7): - resolution: {integrity: sha512-eCvbXMCqbD/rYx912y4FzGOqPCbWOIBL4UkgVY5R15eCXygKFKWzEVZGPNVBDu2KVpRCeG943NibOchfyQGDhQ==} + /next-sitemap@4.1.8(next@13.4.8): + resolution: {integrity: sha512-XAXpBHX4o89JfMgvrm0zimlZwpu2iBPXHpimJMUrqOZSc4C2oB1Lv89mxuVON9IE8HOezaM+w4GjJxcYCuGPTQ==} engines: {node: '>=14.18'} hasBin: true peerDependencies: - '@next/env': '*' next: '*' dependencies: '@corex/deepmerge': 4.0.43 - '@next/env': 13.4.7 + '@next/env': 13.4.8 fast-glob: 3.2.12 minimist: 1.2.8 - next: 13.4.7(react-dom@18.2.0)(react@18.2.0) + next: 13.4.8(react-dom@18.2.0)(react@18.2.0) dev: false - /next@13.2.4(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-g1I30317cThkEpvzfXujf0O4wtaQHtDCLhlivwlTJ885Ld+eOgcz7r3TGQzeU+cSRoNHtD8tsJgzxVdYojFssw==} - engines: {node: '>=14.6.0'} - hasBin: true - peerDependencies: - '@opentelemetry/api': ^1.4.0 - fibers: '>= 3.1.0' - node-sass: ^6.0.0 || ^7.0.0 - react: ^18.2.0 - react-dom: ^18.2.0 - sass: ^1.3.0 - peerDependenciesMeta: - '@opentelemetry/api': - optional: true - fibers: - optional: true - node-sass: - optional: true - sass: - optional: true - dependencies: - '@next/env': 13.2.4 - '@swc/helpers': 0.4.14 - caniuse-lite: 1.0.30001466 - postcss: 8.4.14 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - styled-jsx: 5.1.1(react@18.2.0) - optionalDependencies: - '@next/swc-android-arm-eabi': 13.2.4 - '@next/swc-android-arm64': 13.2.4 - '@next/swc-darwin-arm64': 13.2.4 - '@next/swc-darwin-x64': 13.2.4 - '@next/swc-freebsd-x64': 13.2.4 - '@next/swc-linux-arm-gnueabihf': 13.2.4 - '@next/swc-linux-arm64-gnu': 13.2.4 - '@next/swc-linux-arm64-musl': 13.2.4 - '@next/swc-linux-x64-gnu': 13.2.4 - '@next/swc-linux-x64-musl': 13.2.4 - '@next/swc-win32-arm64-msvc': 13.2.4 - '@next/swc-win32-ia32-msvc': 13.2.4 - '@next/swc-win32-x64-msvc': 13.2.4 - transitivePeerDependencies: - - '@babel/core' - - babel-plugin-macros - dev: false - - /next@13.4.3(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-FV3pBrAAnAIfOclTvncw9dDohyeuEEXPe5KNcva91anT/rdycWbgtu3IjUj4n5yHnWK8YEPo0vrUecHmnmUNbA==} - engines: {node: '>=16.8.0'} - hasBin: true - peerDependencies: - '@opentelemetry/api': ^1.1.0 - fibers: '>= 3.1.0' - node-sass: ^6.0.0 || ^7.0.0 - react: ^18.2.0 - react-dom: ^18.2.0 - sass: ^1.3.0 - peerDependenciesMeta: - '@opentelemetry/api': - optional: true - fibers: - optional: true - node-sass: - optional: true - sass: - optional: true - dependencies: - '@next/env': 13.4.3 - '@swc/helpers': 0.5.1 - busboy: 1.6.0 - caniuse-lite: 1.0.30001466 - postcss: 8.4.14 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - styled-jsx: 5.1.1(react@18.2.0) - zod: 3.21.4 - optionalDependencies: - '@next/swc-darwin-arm64': 13.4.3 - '@next/swc-darwin-x64': 13.4.3 - '@next/swc-linux-arm64-gnu': 13.4.3 - '@next/swc-linux-arm64-musl': 13.4.3 - '@next/swc-linux-x64-gnu': 13.4.3 - '@next/swc-linux-x64-musl': 13.4.3 - '@next/swc-win32-arm64-msvc': 13.4.3 - '@next/swc-win32-ia32-msvc': 13.4.3 - '@next/swc-win32-x64-msvc': 13.4.3 - transitivePeerDependencies: - - '@babel/core' - - babel-plugin-macros - dev: false - - /next@13.4.4(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-C5S0ysM0Ily9McL4Jb48nOQHT1BukOWI59uC3X/xCMlYIh9rJZCv7nzG92J6e1cOBqQbKovlpgvHWFmz4eKKEA==} + /next@13.4.8(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-lxUjndYKjZHGK3CWeN2RI+/6ni6EUvjiqGWXAYPxUfGIdFGQ5XoisrqAJ/dF74aP27buAfs8MKIbIMMdxjqSBg==} engines: {node: '>=16.8.0'} hasBin: true peerDependencies: @@ -15857,49 +14509,7 @@ packages: sass: optional: true dependencies: - '@next/env': 13.4.4 - '@swc/helpers': 0.5.1 - busboy: 1.6.0 - caniuse-lite: 1.0.30001466 - postcss: 8.4.14 - react: 18.2.0 - react-dom: 18.2.0(react@18.2.0) - styled-jsx: 5.1.1(react@18.2.0) - zod: 3.21.4 - optionalDependencies: - '@next/swc-darwin-arm64': 13.4.4 - '@next/swc-darwin-x64': 13.4.4 - '@next/swc-linux-arm64-gnu': 13.4.4 - '@next/swc-linux-arm64-musl': 13.4.4 - '@next/swc-linux-x64-gnu': 13.4.4 - '@next/swc-linux-x64-musl': 13.4.4 - '@next/swc-win32-arm64-msvc': 13.4.4 - '@next/swc-win32-ia32-msvc': 13.4.4 - '@next/swc-win32-x64-msvc': 13.4.4 - transitivePeerDependencies: - - '@babel/core' - - babel-plugin-macros - dev: false - - /next@13.4.7(react-dom@18.2.0)(react@18.2.0): - resolution: {integrity: sha512-M8z3k9VmG51SRT6v5uDKdJXcAqLzP3C+vaKfLIAM0Mhx1um1G7MDnO63+m52qPdZfrTFzMZNzfsgvm3ghuVHIQ==} - engines: {node: '>=16.8.0'} - hasBin: true - peerDependencies: - '@opentelemetry/api': ^1.1.0 - fibers: '>= 3.1.0' - react: ^18.2.0 - react-dom: ^18.2.0 - sass: ^1.3.0 - peerDependenciesMeta: - '@opentelemetry/api': - optional: true - fibers: - optional: true - sass: - optional: true - dependencies: - '@next/env': 13.4.7 + '@next/env': 13.4.8 '@swc/helpers': 0.5.1 busboy: 1.6.0 caniuse-lite: 1.0.30001466 @@ -15910,15 +14520,15 @@ packages: watchpack: 2.4.0 zod: 3.21.4 optionalDependencies: - '@next/swc-darwin-arm64': 13.4.7 - '@next/swc-darwin-x64': 13.4.7 - '@next/swc-linux-arm64-gnu': 13.4.7 - '@next/swc-linux-arm64-musl': 13.4.7 - '@next/swc-linux-x64-gnu': 13.4.7 - '@next/swc-linux-x64-musl': 13.4.7 - '@next/swc-win32-arm64-msvc': 13.4.7 - '@next/swc-win32-ia32-msvc': 13.4.7 - '@next/swc-win32-x64-msvc': 13.4.7 + '@next/swc-darwin-arm64': 13.4.8 + '@next/swc-darwin-x64': 13.4.8 + '@next/swc-linux-arm64-gnu': 13.4.8 + '@next/swc-linux-arm64-musl': 13.4.8 + '@next/swc-linux-x64-gnu': 13.4.8 + '@next/swc-linux-x64-musl': 13.4.8 + '@next/swc-win32-arm64-msvc': 13.4.8 + '@next/swc-win32-ia32-msvc': 13.4.8 + '@next/swc-win32-x64-msvc': 13.4.8 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -16005,8 +14615,8 @@ packages: /node-releases@2.0.10: resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} - /nodemailer@6.9.2: - resolution: {integrity: sha512-4+TYaa/e1nIxQfyw/WzNPYTEZ5OvHIDEnmjs4LPmIfccPQN+2CYKmGHjWixn/chzD3bmUTu5FMfpltizMxqzdg==} + /nodemailer@6.9.3: + resolution: {integrity: sha512-fy9v3NgTzBngrMFkDsKEj0r02U7jm6XfC3b52eoNV+GCrGj+s8pt5OqhiJdWKuw51zCTdiNR/IUD1z33LIIGpg==} engines: {node: '>=6.0.0'} dev: false @@ -16291,6 +14901,18 @@ packages: prelude-ls: 1.2.1 type-check: 0.4.0 word-wrap: 1.2.3 + dev: true + + /optionator@0.9.3: + resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} + engines: {node: '>= 0.8.0'} + dependencies: + '@aashutoshrathi/word-wrap': 1.2.6 + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 /ora@5.4.1: resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} @@ -16460,7 +15082,7 @@ packages: /parenthesis@3.1.8: resolution: {integrity: sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw==} - dev: false + dev: true /parse-asn1@5.1.6: resolution: {integrity: sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==} @@ -16565,7 +15187,7 @@ packages: /path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} - dev: false + dev: true /path-dirname@1.0.2: resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==} @@ -16600,12 +15222,12 @@ packages: /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - /path-scurry@1.7.0: - resolution: {integrity: sha512-UkZUeDjczjYRE495+9thsgcVgsaCPkaw80slmfVFgllxY+IO8ubTsOpFVjDPROBqJdHfVPUFRHPBV/WciOVfWg==} + /path-scurry@1.10.0: + resolution: {integrity: sha512-tZFEaRQbMLjwrsmidsGJ6wDMv0iazJWk6SfIKnY4Xru8auXgmJkOBa5DUbYFcFD2Rzk2+KDlIiF0GVXNCbgC7g==} engines: {node: '>=16 || 14 >=14.17'} dependencies: - lru-cache: 9.1.1 - minipass: 5.0.0 + lru-cache: 10.0.0 + minipass: 6.0.2 dev: true /path-to-regexp@0.1.7: @@ -16831,18 +15453,6 @@ packages: postcss: 8.4.24 dev: true - /postcss-import@14.1.0(postcss@8.4.21): - resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} - engines: {node: '>=10.0.0'} - peerDependencies: - postcss: ^8.0.0 - dependencies: - postcss: 8.4.21 - postcss-value-parser: 4.2.0 - read-cache: 1.0.0 - resolve: 1.22.1 - dev: true - /postcss-import@15.1.0(postcss@8.4.24): resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} engines: {node: '>=14.0.0'} @@ -16855,16 +15465,6 @@ packages: resolve: 1.22.2 dev: true - /postcss-js@4.0.0(postcss@8.4.21): - resolution: {integrity: sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==} - engines: {node: ^12 || ^14 || >= 16} - peerDependencies: - postcss: ^8.3.3 - dependencies: - camelcase-css: 2.0.1 - postcss: 8.4.21 - dev: true - /postcss-js@4.0.1(postcss@8.4.24): resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} engines: {node: ^12 || ^14 || >= 16} @@ -16875,23 +15475,6 @@ packages: postcss: 8.4.24 dev: true - /postcss-load-config@3.1.4(postcss@8.4.21): - resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} - engines: {node: '>= 10'} - peerDependencies: - postcss: '>=8.0.9' - ts-node: '>=9.0.0' - peerDependenciesMeta: - postcss: - optional: true - ts-node: - optional: true - dependencies: - lilconfig: 2.1.0 - postcss: 8.4.21 - yaml: 1.10.2 - dev: true - /postcss-load-config@3.1.4(postcss@8.4.24): resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} engines: {node: '>= 10'} @@ -17129,16 +15712,6 @@ packages: string-hash: 1.1.3 dev: true - /postcss-nested@6.0.0(postcss@8.4.21): - resolution: {integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==} - engines: {node: '>=12.0'} - peerDependencies: - postcss: ^8.2.14 - dependencies: - postcss: 8.4.21 - postcss-selector-parser: 6.0.11 - dev: true - /postcss-nested@6.0.1(postcss@8.4.24): resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} @@ -17471,24 +16044,6 @@ packages: source-map-js: 1.0.2 dev: false - /postcss@8.4.21: - resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.4 - picocolors: 1.0.0 - source-map-js: 1.0.2 - dev: true - - /postcss@8.4.23: - resolution: {integrity: sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==} - engines: {node: ^10 || ^12 || >=14} - dependencies: - nanoid: 3.3.6 - picocolors: 1.0.0 - source-map-js: 1.0.2 - dev: true - /postcss@8.4.24: resolution: {integrity: sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==} engines: {node: ^10 || ^12 || >=14} @@ -17498,11 +16053,10 @@ packages: source-map-js: 1.0.2 dev: true - /posthog-js@1.57.3: - resolution: {integrity: sha512-IOF+j+BMGp2zx7Gx71PbT36J4TEtyPcIO+8zcaY84JJAxFU2bQ0DwFp2c/Fz8RnIw+dELuBu4RbnGkuiyaOWgA==} + /posthog-js@1.68.5: + resolution: {integrity: sha512-EqQuIX0k564T2fhmzQK2Gcb8s/XRhHTpk6JOeGtJV7lpMI8Hffe+gGjGHcqIc4RoOg3LjAGYNHj6XgN+QPggLg==} dependencies: fflate: 0.4.8 - rrweb-snapshot: 1.1.14 dev: false /posthog-node@3.1.1: @@ -17515,7 +16069,7 @@ packages: - debug dev: false - /preact-cli@3.4.5(eslint@8.42.0)(preact-render-to-string@6.1.0)(preact@10.15.1): + /preact-cli@3.4.5(eslint@8.44.0)(preact-render-to-string@6.1.0)(preact@10.15.1): resolution: {integrity: sha512-pLTawiXDy4rEct5ul0mDCP92GB6NK/QFhpoR+iHZJqgkeyE25qEXPf1/tJhAiijphDL5kxGvsT4qA6SrpQ5BsQ==} engines: {node: '>=12'} hasBin: true @@ -17563,7 +16117,7 @@ packages: envinfo: 7.8.1 esm: 3.2.25 file-loader: 6.2.0(webpack@4.46.0) - fork-ts-checker-webpack-plugin: 4.1.6(eslint@8.42.0)(typescript@4.6.4)(webpack@4.46.0) + fork-ts-checker-webpack-plugin: 4.1.6(eslint@8.44.0)(typescript@4.6.4)(webpack@4.46.0) get-port: 5.1.1 gittar: 0.1.1 glob: 8.1.0 @@ -17830,7 +16384,7 @@ packages: - supports-color dev: true - /prisma-json-types-generator@2.5.0(prisma@4.16.1): + /prisma-json-types-generator@2.5.0(prisma@4.16.2): resolution: {integrity: sha512-jVaaIhHNceWba1LPnS6j1Q+HZLZnrTjwxGANfCvHxFtywSEP9iM25cs233m90TpC7E+ABFJcWgBpXob2ms+3gw==} engines: {node: '>=14.0'} hasBin: true @@ -17838,19 +16392,19 @@ packages: prisma: ^4.16.0 dependencies: '@prisma/generator-helper': 4.16.0 - prisma: 4.16.1 + prisma: 4.16.2 tslib: 2.5.3 transitivePeerDependencies: - supports-color - dev: false + dev: true - /prisma@4.16.1: - resolution: {integrity: sha512-C2Xm7yxHxjFjjscBEW4tmoraPHH/Vyu/A0XABdbaFtoiOZARsxvOM7rwc2iZ0qVxbh0bGBGBWZUSXO/52/nHBQ==} + /prisma@4.16.2: + resolution: {integrity: sha512-SYCsBvDf0/7XSJyf2cHTLjLeTLVXYfqp7pG5eEVafFLeT0u/hLFz/9W196nDRGUOo1JfPatAEb+uEnTQImQC1g==} engines: {node: '>=14.17'} hasBin: true requiresBuild: true dependencies: - '@prisma/engines': 4.16.1 + '@prisma/engines': 4.16.2 /prismjs@1.27.0: resolution: {integrity: sha512-t13BGPUlFDR7wRB5kQDG4jjl7XeuH6jbJGt11JHPL96qwsEHNX2+68tFXqc1/k+/jALsbSWJKUOT/hcYAZ5LkA==} @@ -18049,11 +16603,6 @@ packages: engines: {node: '>=8'} dev: true - /quick-lru@5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} - dev: true - /raf-schd@4.0.3: resolution: {integrity: sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ==} dev: false @@ -18164,8 +16713,8 @@ packages: react: 18.2.0 dev: false - /react-hook-form@7.43.9(react@18.2.0): - resolution: {integrity: sha512-AUDN3Pz2NSeoxQ7Hs6OhQhDr6gtF9YRuutGDwPQqhSUAHJSgGl2VeY3qN19MG0SucpjgDiuMJ4iC5T5uB+eaNQ==} + /react-hook-form@7.45.1(react@18.2.0): + resolution: {integrity: sha512-6dWoFJwycbuFfw/iKMcl+RdAOAOHDiF11KWYhNDRN/OkUt+Di5qsZHwA0OwsVnu9y135gkHpTw9DJA+WzCeR9w==} engines: {node: '>=12.22.0'} peerDependencies: react: ^16.8.0 || ^17 || ^18 @@ -18187,8 +16736,8 @@ packages: - csstype dev: false - /react-icons@4.8.0(react@18.2.0): - resolution: {integrity: sha512-N6+kOLcihDiAnj5Czu637waJqSnwlMNROzVZMhfX68V/9bu9qHaMIJC4UdozWoOk57gahFCNHwVvWzm0MTzRjg==} + /react-icons@4.10.1(react@18.2.0): + resolution: {integrity: sha512-/ngzDP/77tlCfqthiiGNZeYFACw85fUjZtLbedmJ5DTlNDIwETxhwBzdOJ21zj4iJdvc0J3y7yOsX3PpxAJzrw==} peerDependencies: react: '*' dependencies: @@ -18243,7 +16792,7 @@ packages: engines: {node: '>=0.10.0'} dev: true - /react-remove-scroll-bar@2.3.4(@types/react@18.2.7)(react@18.2.0): + /react-remove-scroll-bar@2.3.4(react@18.2.0): resolution: {integrity: sha512-63C4YQBUt0m6ALadE9XV56hV8BgJWDmmTPY758iIJjfQKt2nYwoUrPk0LXRXcB/yIj82T1/Ixfdpdk68LwIB0A==} engines: {node: '>=10'} peerDependencies: @@ -18253,13 +16802,12 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.7 react: 18.2.0 - react-style-singleton: 2.2.1(@types/react@18.2.7)(react@18.2.0) + react-style-singleton: 2.2.1(react@18.2.0) tslib: 2.5.3 dev: false - /react-remove-scroll@2.5.4(@types/react@18.2.7)(react@18.2.0): + /react-remove-scroll@2.5.4(react@18.2.0): resolution: {integrity: sha512-xGVKJJr0SJGQVirVFAUZ2k1QLyO6m+2fy0l8Qawbp5Jgrv3DeLalrfMNBFSlmz5kriGGzsVBtGVnf4pTKIhhWA==} engines: {node: '>=10'} peerDependencies: @@ -18269,16 +16817,15 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.7 react: 18.2.0 - react-remove-scroll-bar: 2.3.4(@types/react@18.2.7)(react@18.2.0) - react-style-singleton: 2.2.1(@types/react@18.2.7)(react@18.2.0) + react-remove-scroll-bar: 2.3.4(react@18.2.0) + react-style-singleton: 2.2.1(react@18.2.0) tslib: 2.5.3 - use-callback-ref: 1.3.0(@types/react@18.2.7)(react@18.2.0) - use-sidecar: 1.1.2(@types/react@18.2.7)(react@18.2.0) + use-callback-ref: 1.3.0(react@18.2.0) + use-sidecar: 1.1.2(react@18.2.0) dev: false - /react-remove-scroll@2.5.5(@types/react@18.2.7)(react@18.2.0): + /react-remove-scroll@2.5.5(react@18.2.0): resolution: {integrity: sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==} engines: {node: '>=10'} peerDependencies: @@ -18288,13 +16835,12 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.7 react: 18.2.0 - react-remove-scroll-bar: 2.3.4(@types/react@18.2.7)(react@18.2.0) - react-style-singleton: 2.2.1(@types/react@18.2.7)(react@18.2.0) + react-remove-scroll-bar: 2.3.4(react@18.2.0) + react-style-singleton: 2.2.1(react@18.2.0) tslib: 2.5.3 - use-callback-ref: 1.3.0(@types/react@18.2.7)(react@18.2.0) - use-sidecar: 1.1.2(@types/react@18.2.7)(react@18.2.0) + use-callback-ref: 1.3.0(react@18.2.0) + use-sidecar: 1.1.2(react@18.2.0) dev: false /react-responsive-embed@2.1.0(prop-types@15.8.1)(react@18.2.0): @@ -18308,7 +16854,7 @@ packages: react: 18.2.0 dev: false - /react-style-singleton@2.2.1(@types/react@18.2.7)(react@18.2.0): + /react-style-singleton@2.2.1(react@18.2.0): resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} engines: {node: '>=10'} peerDependencies: @@ -18318,7 +16864,6 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.7 get-nonce: 1.0.1 invariant: 2.2.4 react: 18.2.0 @@ -18822,20 +17367,12 @@ packages: dependencies: glob: 7.2.3 - /rimraf@5.0.0: - resolution: {integrity: sha512-Jf9llaP+RvaEVS5nPShYFhtXIrb3LRKP281ib3So0KkeZKo2wIKyq0Re7TOSwanasA423PSr6CCIL4bP6T040g==} - engines: {node: '>=14'} - hasBin: true - dependencies: - glob: 10.2.2 - dev: true - /rimraf@5.0.1: resolution: {integrity: sha512-OfFZdwtd3lZ+XZzYP/6gTACubwFcHdLRqS9UX3UwpU2dnGQYkPFISRwvM3w9IiB2w7bW5qGo/uAwE4SmXXSKvg==} engines: {node: '>=14'} hasBin: true dependencies: - glob: 10.2.6 + glob: 10.3.1 dev: true /ripemd160@2.0.2: @@ -18918,7 +17455,7 @@ packages: picomatch: 2.3.1 rollup: 2.79.1 source-map: 0.7.4 - yargs: 17.7.1 + yargs: 17.7.2 dev: true /rollup-pluginutils@2.8.2: @@ -18943,10 +17480,6 @@ packages: fsevents: 2.3.2 dev: true - /rrweb-snapshot@1.1.14: - resolution: {integrity: sha512-eP5pirNjP5+GewQfcOQY4uBiDnpqxNRc65yKPW0eSoU1XamDfc4M8oqpXGMyUyvLyxFDB0q0+DChuxxiU2FXBQ==} - dev: false - /rtl-css-js@1.16.1: resolution: {integrity: sha512-lRQgou1mu19e+Ya0LsTvKrVJ5TYUbqCVPAiImX3UfLTenarvPUl1QFdvu5Z3PYmHT9RCcwIfbjRQBntExyj3Zg==} dependencies: @@ -18980,8 +17513,8 @@ packages: tslib: 1.14.1 dev: false - /rxjs@7.8.0: - resolution: {integrity: sha512-F2+gxDshqmIub1KdvZkaEfGDwLNpPvk9Fs6LD/MyQxNgMds/WH9OdDDXOmxUZpME+iSK3rQCctkL0DYyytUqMg==} + /rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} dependencies: tslib: 2.5.3 dev: true @@ -19289,8 +17822,8 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - /shell-quote@1.8.0: - resolution: {integrity: sha512-QHsz8GgQIGKlRi24yFc6a6lN69Idnx634w49ay6+jA5yFh7a1UY+4Rp6HPx/L/1zcEDPEij8cIsiqR6bQsE5VQ==} + /shell-quote@1.8.1: + resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} dev: true /side-channel@1.0.4: @@ -19307,8 +17840,8 @@ packages: /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} - /signal-exit@4.0.1: - resolution: {integrity: sha512-uUWsN4aOxJAS8KOuf3QMyFtgm1pkb6I+KRZbRF/ghdf5T7sM+B1lLLzPDxswUjkmHyxQAVzEgG35E3NzDM9GVw==} + /signal-exit@4.0.2: + resolution: {integrity: sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==} engines: {node: '>=14'} dev: true @@ -19367,7 +17900,6 @@ packages: /slash@4.0.0: resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} engines: {node: '>=12'} - dev: false /slice-ansi@3.0.0: resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} @@ -19527,8 +18059,8 @@ packages: resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} dev: false - /spawn-command@0.0.2-1: - resolution: {integrity: sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg==} + /spawn-command@0.0.2: + resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==} dev: true /spawndamnit@2.0.0: @@ -19776,7 +18308,7 @@ packages: dependencies: eastasianwidth: 0.2.0 emoji-regex: 9.2.2 - strip-ansi: 7.0.1 + strip-ansi: 7.1.0 dev: true /string.prototype.matchall@4.0.8: @@ -19858,8 +18390,8 @@ packages: dependencies: ansi-regex: 5.0.1 - /strip-ansi@7.0.1: - resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==} + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} engines: {node: '>=12'} dependencies: ansi-regex: 6.0.1 @@ -19907,7 +18439,7 @@ packages: resolution: {integrity: sha512-aJat4pGA6fr5DvuojRVXMaOCAw8ceS3UQM4ux1BMUViG686NmOAf1psEh6Wu+NFUifoy6kV7+4APq66OlTWtTw==} engines: {node: '>=12.*'} dependencies: - '@types/node': 20.3.2 + '@types/node': 20.3.3 qs: 6.11.0 dev: false @@ -19973,19 +18505,6 @@ packages: resolution: {integrity: sha512-GP6WDNWf+o403jrEp9c5jibKavrtLW+/qYGhFxFrG8maXhwTBI7gLLhiBb0o7uFccWN+EOS9aMO6cGHWAO07OA==} dev: false - /sucrase@3.29.0: - resolution: {integrity: sha512-bZPAuGA5SdFHuzqIhTAqt9fvNEo9rESqXIG3oiKdF8K4UmkQxC4KlNL3lVyAErXp+mPvUqZ5l13qx6TrDIGf3A==} - engines: {node: '>=8'} - hasBin: true - dependencies: - commander: 4.1.1 - glob: 7.1.6 - lines-and-columns: 1.2.4 - mz: 2.7.0 - pirates: 4.0.5 - ts-interface-checker: 0.1.13 - dev: true - /sucrase@3.32.0: resolution: {integrity: sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==} engines: {node: '>=8'} @@ -20069,8 +18588,8 @@ packages: stable: 0.1.8 dev: true - /swr@2.1.5(react@18.2.0): - resolution: {integrity: sha512-/OhfZMcEpuz77KavXST5q6XE9nrOBOVcBLWjMT+oAE/kQHyE3PASrevXCtQDZ8aamntOfFkbVJp7Il9tNBQWrw==} + /swr@2.2.0(react@18.2.0): + resolution: {integrity: sha512-AjqHOv2lAhkuUdIiBu9xbuettzAzWXmCEcLONNKJRba87WAefz8Ca9d6ds/SzrPc235n1IxWYdhJ2zF3MNUaoQ==} peerDependencies: react: ^16.11.0 || ^17.0.0 || ^18.0.0 dependencies: @@ -20088,47 +18607,11 @@ packages: dependencies: '@pkgr/utils': 2.3.1 tslib: 2.5.3 - dev: false - /tailwind-merge@1.12.0: - resolution: {integrity: sha512-Y17eDp7FtN1+JJ4OY0Bqv9OA41O+MS8c1Iyr3T6JFLnOgLg3EvcyMKZAnQ8AGyvB5Nxm3t9Xb5Mhe139m8QT/g==} + /tailwind-merge@1.13.2: + resolution: {integrity: sha512-R2/nULkdg1VR/EL4RXg4dEohdoxNUJGLMnWIQnPKL+O9Twu7Cn3Rxi4dlXkDzZrEGtR+G+psSXFouWlpTyLhCQ==} dev: false - /tailwindcss@3.3.1(postcss@8.4.21): - resolution: {integrity: sha512-Vkiouc41d4CEq0ujXl6oiGFQ7bA3WEhUZdTgXAhtKxSy49OmKs8rEfQmupsfF0IGW8fv2iQkp1EVUuapCFrZ9g==} - engines: {node: '>=12.13.0'} - hasBin: true - peerDependencies: - postcss: ^8.0.9 - dependencies: - arg: 5.0.2 - chokidar: 3.5.3 - color-name: 1.1.4 - didyoumean: 1.2.2 - dlv: 1.1.3 - fast-glob: 3.2.12 - glob-parent: 6.0.2 - is-glob: 4.0.3 - jiti: 1.18.2 - lilconfig: 2.0.6 - micromatch: 4.0.5 - normalize-path: 3.0.0 - object-hash: 3.0.0 - picocolors: 1.0.0 - postcss: 8.4.21 - postcss-import: 14.1.0(postcss@8.4.21) - postcss-js: 4.0.0(postcss@8.4.21) - postcss-load-config: 3.1.4(postcss@8.4.21) - postcss-nested: 6.0.0(postcss@8.4.21) - postcss-selector-parser: 6.0.11 - postcss-value-parser: 4.2.0 - quick-lru: 5.1.1 - resolve: 1.22.1 - sucrase: 3.29.0 - transitivePeerDependencies: - - ts-node - dev: true - /tailwindcss@3.3.2: resolution: {integrity: sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==} engines: {node: '>=14.0.0'} @@ -20342,7 +18825,7 @@ packages: engines: {node: '>=6.0.0'} hasBin: true dependencies: - acorn: 8.8.1 + acorn: 8.9.0 commander: 2.20.3 source-map: 0.6.1 source-map-support: 0.5.21 @@ -20354,7 +18837,7 @@ packages: hasBin: true dependencies: '@jridgewell/source-map': 0.3.2 - acorn: 8.8.1 + acorn: 8.9.0 commander: 2.20.3 source-map-support: 0.5.21 @@ -20574,7 +19057,7 @@ packages: dependencies: '@ts-morph/common': 0.12.3 code-block-writer: 11.0.3 - dev: false + dev: true /ts-pattern@4.0.6: resolution: {integrity: sha512-sFHQYD4KoysBi7e7a2mzDPvRBeqA4w+vEyRE+P5MU9VLq8eEYxgKCgD9RNEAT+itGRWUTYN+hry94GDPLb1/Yw==} @@ -20599,7 +19082,6 @@ packages: json5: 1.0.1 minimist: 1.2.8 strip-bom: 3.0.0 - dev: false /tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} @@ -20610,42 +19092,7 @@ packages: /tslib@2.5.3: resolution: {integrity: sha512-mSxlJJwl3BMEQCUNnxXBU9jP4JBktcEGhURcPR6VQVlnP0FdDEsIaz0C35dXNGLyRfrATNofF0F5p2KPxQgB+w==} - /tsup@6.7.0: - resolution: {integrity: sha512-L3o8hGkaHnu5TdJns+mCqFsDBo83bJ44rlK7e6VdanIvpea4ArPcU3swWGsLVbXak1PqQx/V+SSmFPujBK+zEQ==} - engines: {node: '>=14.18'} - hasBin: true - peerDependencies: - '@swc/core': ^1 - postcss: ^8.4.12 - typescript: '>=4.1.0' - peerDependenciesMeta: - '@swc/core': - optional: true - postcss: - optional: true - typescript: - optional: true - dependencies: - bundle-require: 4.0.1(esbuild@0.17.11) - cac: 6.7.14 - chokidar: 3.5.3 - debug: 4.3.4 - esbuild: 0.17.11 - execa: 5.1.1 - globby: 11.1.0 - joycon: 3.1.1 - postcss-load-config: 3.1.4(postcss@8.4.24) - resolve-from: 5.0.0 - rollup: 3.5.1 - source-map: 0.8.0-beta.0 - sucrase: 3.29.0 - tree-kill: 1.2.2 - transitivePeerDependencies: - - supports-color - - ts-node - dev: true - - /tsup@7.1.0(typescript@5.1.3): + /tsup@7.1.0: resolution: {integrity: sha512-mazl/GRAk70j8S43/AbSYXGgvRP54oQeX8Un4iZxzATHt0roW0t6HYDVZIXMw0ZQIpvr1nFMniIVnN5186lW7w==} engines: {node: '>=16.14'} hasBin: true @@ -20675,41 +19122,19 @@ packages: source-map: 0.8.0-beta.0 sucrase: 3.32.0 tree-kill: 1.2.2 - typescript: 5.1.3 transitivePeerDependencies: - supports-color - ts-node dev: true - /tsutils@3.21.0(typescript@5.0.4): + /tsutils@3.21.0(typescript@5.1.6): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 5.0.4 - dev: false - - /tsutils@3.21.0(typescript@5.1.3): - resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} - engines: {node: '>= 6'} - peerDependencies: - typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' - dependencies: - tslib: 1.14.1 - typescript: 5.1.3 - - /tsx@3.12.6: - resolution: {integrity: sha512-q93WgS3lBdHlPgS0h1i+87Pt6n9K/qULIMNYZo07nSeu2z5QE2CellcAZfofVXBo2tQg9av2ZcRMQ2S2i5oadQ==} - hasBin: true - dependencies: - '@esbuild-kit/cjs-loader': 2.4.2 - '@esbuild-kit/core-utils': 3.0.0 - '@esbuild-kit/esm-loader': 2.5.5 - optionalDependencies: - fsevents: 2.3.2 - dev: true + typescript: 5.1.6 /tsx@3.12.7: resolution: {integrity: sha512-C2Ip+jPmqKd1GWVQDvz/Eyc6QJbGfE7NrR3fx5BpEHMZsEHoIxHL1j+lKdGobr8ovEyqeNkPLSKp6SCSOt7gmw==} @@ -20737,7 +19162,7 @@ packages: smartwrap: 2.0.2 strip-ansi: 6.0.1 wcwidth: 1.0.1 - yargs: 17.7.1 + yargs: 17.7.2 dev: true /tunnel-agent@0.6.0: @@ -20745,65 +19170,65 @@ packages: dependencies: safe-buffer: 5.2.1 - /turbo-darwin-64@1.10.3: - resolution: {integrity: sha512-IIB9IomJGyD3EdpSscm7Ip1xVWtYb7D0x7oH3vad3gjFcjHJzDz9xZ/iw/qItFEW+wGFcLSRPd+1BNnuLM8AsA==} + /turbo-darwin-64@1.10.7: + resolution: {integrity: sha512-N2MNuhwrl6g7vGuz4y3fFG2aR1oCs0UZ5HKl8KSTn/VC2y2YIuLGedQ3OVbo0TfEvygAlF3QGAAKKtOCmGPNKA==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /turbo-darwin-arm64@1.10.3: - resolution: {integrity: sha512-SBNmOZU9YEB0eyNIxeeQ+Wi0Ufd+nprEVp41rgUSRXEIpXjsDjyBnKnF+sQQj3+FLb4yyi/yZQckB+55qXWEsw==} + /turbo-darwin-arm64@1.10.7: + resolution: {integrity: sha512-WbJkvjU+6qkngp7K4EsswOriO3xrNQag7YEGRtfLoDdMTk4O4QTeU6sfg2dKfDsBpTidTvEDwgIYJhYVGzrz9Q==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /turbo-linux-64@1.10.3: - resolution: {integrity: sha512-kvAisGKE7xHJdyMxZLvg53zvHxjqPK1UVj4757PQqtx9dnjYHSc8epmivE6niPgDHon5YqImzArCjVZJYpIGHQ==} + /turbo-linux-64@1.10.7: + resolution: {integrity: sha512-x1CF2CDP1pDz/J8/B2T0hnmmOQI2+y11JGIzNP0KtwxDM7rmeg3DDTtDM/9PwGqfPotN9iVGgMiMvBuMFbsLhg==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /turbo-linux-arm64@1.10.3: - resolution: {integrity: sha512-Qgaqln0IYRgyL0SowJOi+PNxejv1I2xhzXOI+D+z4YHbgSx87ox1IsALYBlK8VRVYY8VCXl+PN12r1ioV09j7A==} + /turbo-linux-arm64@1.10.7: + resolution: {integrity: sha512-JtnBmaBSYbs7peJPkXzXxsRGSGBmBEIb6/kC8RRmyvPAMyqF8wIex0pttsI+9plghREiGPtRWv/lfQEPRlXnNQ==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /turbo-windows-64@1.10.3: - resolution: {integrity: sha512-rbH9wManURNN8mBnN/ZdkpUuTvyVVEMiUwFUX4GVE5qmV15iHtZfDLUSGGCP2UFBazHcpNHG1OJzgc55GFFrUw==} + /turbo-windows-64@1.10.7: + resolution: {integrity: sha512-7A/4CByoHdolWS8dg3DPm99owfu1aY/W0V0+KxFd0o2JQMTQtoBgIMSvZesXaWM57z3OLsietFivDLQPuzE75w==} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /turbo-windows-arm64@1.10.3: - resolution: {integrity: sha512-ThlkqxhcGZX39CaTjsHqJnqVe+WImjX13pmjnpChz6q5HHbeRxaJSFzgrHIOt0sUUVx90W/WrNRyoIt/aafniw==} + /turbo-windows-arm64@1.10.7: + resolution: {integrity: sha512-D36K/3b6+hqm9IBAymnuVgyePktwQ+F0lSXr2B9JfAdFPBktSqGmp50JNC7pahxhnuCLj0Vdpe9RqfnJw5zATA==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /turbo@1.10.3: - resolution: {integrity: sha512-U4gKCWcKgLcCjQd4Pl8KJdfEKumpyWbzRu75A6FCj6Ctea1PIm58W6Ltw1QXKqHrl2pF9e1raAskf/h6dlrPCA==} + /turbo@1.10.7: + resolution: {integrity: sha512-xm0MPM28TWx1e6TNC3wokfE5eaDqlfi0G24kmeHupDUZt5Wd0OzHFENEHMPqEaNKJ0I+AMObL6nbSZonZBV2HA==} hasBin: true requiresBuild: true optionalDependencies: - turbo-darwin-64: 1.10.3 - turbo-darwin-arm64: 1.10.3 - turbo-linux-64: 1.10.3 - turbo-linux-arm64: 1.10.3 - turbo-windows-64: 1.10.3 - turbo-windows-arm64: 1.10.3 + turbo-darwin-64: 1.10.7 + turbo-darwin-arm64: 1.10.7 + turbo-linux-64: 1.10.7 + turbo-linux-arm64: 1.10.7 + turbo-windows-64: 1.10.7 + turbo-windows-arm64: 1.10.7 dev: true /tween-functions@1.2.0: @@ -20888,19 +19313,8 @@ packages: hasBin: true dev: true - /typescript@5.0.3: - resolution: {integrity: sha512-xv8mOEDnigb/tN9PSMTwSEqAnUvkoXMQlicOb0IUVDBSQCgBSaAAROUZYy2IcUy5qU6XajK5jjjO7TMWqBTKZA==} - engines: {node: '>=12.20'} - hasBin: true - dev: true - - /typescript@5.0.4: - resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} - engines: {node: '>=12.20'} - hasBin: true - - /typescript@5.1.3: - resolution: {integrity: sha512-XH627E9vkeqhlZFQuL+UsyAXEnibT0kWR2FWONlr4sTjvxyJYnyefgrkyECLzM5NenmKzRAy2rR/OlYLA1HkZw==} + /typescript@5.1.6: + resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} engines: {node: '>=14.17'} hasBin: true @@ -21267,7 +19681,7 @@ packages: querystring: 0.2.0 dev: true - /use-callback-ref@1.3.0(@types/react@18.2.7)(react@18.2.0): + /use-callback-ref@1.3.0(react@18.2.0): resolution: {integrity: sha512-3FT9PRuRdbB9HfXhEq35u4oZkvpJ5kuYbpqhCfmiZyReuRgpnhDlbr2ZEnnuS0RrJAPn6l23xjFg9kpDM+Ms7w==} engines: {node: '>=10'} peerDependencies: @@ -21277,24 +19691,10 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.7 react: 18.2.0 tslib: 2.5.3 dev: false - /use-isomorphic-layout-effect@1.1.2(@types/react@18.2.7)(react@18.2.0): - resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==} - peerDependencies: - '@types/react': '*' - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - '@types/react': - optional: true - dependencies: - '@types/react': 18.2.7 - react: 18.2.0 - dev: false - /use-memo-one@1.1.3(react@18.2.0): resolution: {integrity: sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ==} peerDependencies: @@ -21303,7 +19703,7 @@ packages: react: 18.2.0 dev: false - /use-sidecar@1.1.2(@types/react@18.2.7)(react@18.2.0): + /use-sidecar@1.1.2(react@18.2.0): resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} engines: {node: '>=10'} peerDependencies: @@ -21313,7 +19713,6 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.7 detect-node-es: 1.1.0 react: 18.2.0 tslib: 2.5.3 @@ -21553,7 +19952,7 @@ packages: hasBin: true dependencies: '@discoveryjs/json-ext': 0.5.7 - acorn: 8.8.1 + acorn: 8.9.0 acorn-walk: 8.2.0 chalk: 4.1.2 commander: 7.2.0 @@ -21746,8 +20145,8 @@ packages: '@webassemblyjs/ast': 1.11.1 '@webassemblyjs/wasm-edit': 1.11.1 '@webassemblyjs/wasm-parser': 1.11.1 - acorn: 8.8.1 - acorn-import-assertions: 1.8.0(acorn@8.8.1) + acorn: 8.9.0 + acorn-import-assertions: 1.8.0(acorn@8.9.0) browserslist: 4.21.5 chrome-trace-event: 1.0.3 enhanced-resolve: 5.12.0 @@ -21887,6 +20286,7 @@ packages: /word-wrap@1.2.3: resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} engines: {node: '>=0.10.0'} + dev: true /workbox-background-sync@6.5.4: resolution: {integrity: sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g==} @@ -22096,7 +20496,7 @@ packages: dependencies: ansi-styles: 6.2.1 string-width: 5.1.2 - strip-ansi: 7.0.1 + strip-ansi: 7.1.0 dev: true /wrappy@1.0.2: @@ -22272,8 +20672,8 @@ packages: yargs-parser: 18.1.3 dev: true - /yargs@17.7.1: - resolution: {integrity: sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==} + /yargs@17.7.2: + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} dependencies: cliui: 8.0.1 @@ -22305,7 +20705,7 @@ packages: readable-stream: 3.6.0 dev: true - /zod-prisma@0.5.4(prisma@4.16.1)(zod@3.21.4): + /zod-prisma@0.5.4(prisma@4.16.2)(zod@3.21.4): resolution: {integrity: sha512-5Ca4Qd1a1jy1T/NqCEpbr0c+EsbjJfJ/7euEHob3zDvtUK2rTuD1Rc/vfzH8q8PtaR2TZbysD88NHmrLwpv3Xg==} engines: {node: '>=14'} hasBin: true @@ -22319,14 +20719,13 @@ packages: dependencies: '@prisma/generator-helper': 3.8.1 parenthesis: 3.1.8 - prisma: 4.16.1 + prisma: 4.16.2 ts-morph: 13.0.3 zod: 3.21.4 - dev: false + dev: true /zod@3.21.4: resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} - dev: false /zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} From 183ce34cad6a8cce3dc8c1b24f0722dfc57b0baf Mon Sep 17 00:00:00 2001 From: Moritz Rengert <42251569+moritzrengert@users.noreply.github.com> Date: Wed, 5 Jul 2023 09:43:11 +0200 Subject: [PATCH 03/41] Fix Consent Question Summary not displayed (#482) * enable consent summary * fix type error * fix Consent Summary to use dismissed instead of skipped and move to Server Component * change Skipped to Dismissed in UI --------- Co-authored-by: Matthias Nannt --- .../[surveyId]/summary/ConsentSummary.tsx | 24 ++++++++----------- .../[surveyId]/summary/SummaryList.tsx | 10 ++++++++ pnpm-lock.yaml | 8 +++---- 3 files changed, 24 insertions(+), 18 deletions(-) diff --git a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/summary/ConsentSummary.tsx b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/summary/ConsentSummary.tsx index 1fa77097e8..89d4538b2d 100644 --- a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/summary/ConsentSummary.tsx +++ b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/summary/ConsentSummary.tsx @@ -2,7 +2,6 @@ import { ConsentQuestion } from "@formbricks/types/questions"; import type { QuestionSummary } from "@formbricks/types/responses"; import { ProgressBar } from "@formbricks/ui"; import { InboxStackIcon } from "@heroicons/react/24/solid"; -import { useMemo } from "react"; interface ConsentSummaryProps { questionSummary: QuestionSummary; @@ -17,18 +16,15 @@ interface ChoiceResult { } export default function ConsentSummary({ questionSummary }: ConsentSummaryProps) { - const ctr: ChoiceResult = useMemo(() => { - const total = questionSummary.responses.length; - const clickedAbs = questionSummary.responses.filter((response) => response.value !== "skipped").length; - - return { - count: total, - acceptedCount: clickedAbs, - acceptedPercentage: clickedAbs / total, - dismissedCount: total - clickedAbs, - dismissedPercentage: 1 - clickedAbs / total, - }; - }, [questionSummary]); + const total = questionSummary.responses.length; + const clickedAbs = questionSummary.responses.filter((response) => response.value !== "dismissed").length; + const ctr: ChoiceResult = { + count: total, + acceptedCount: clickedAbs, + acceptedPercentage: clickedAbs / total, + dismissedCount: total - clickedAbs, + dismissedPercentage: 1 - clickedAbs / total, + }; return (
@@ -64,7 +60,7 @@ export default function ConsentSummary({ questionSummary }: ConsentSummaryProps)
-

Skipped

+

Dismissed

{Math.round(ctr.dismissedPercentage * 100)}% diff --git a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/summary/SummaryList.tsx b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/summary/SummaryList.tsx index 3b795f7f33..e55c2a2eda 100644 --- a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/summary/SummaryList.tsx +++ b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/summary/SummaryList.tsx @@ -8,6 +8,7 @@ import { type NPSQuestion, type OpenTextQuestion, type RatingQuestion, + type ConsentQuestion, } from "@formbricks/types/questions"; import type { QuestionSummary } from "@formbricks/types/responses"; import { TSurveyQuestion } from "@formbricks/types/v1/surveys"; @@ -17,6 +18,7 @@ import MultipleChoiceSummary from "./MultipleChoiceSummary"; import NPSSummary from "./NPSSummary"; import OpenTextSummary from "./OpenTextSummary"; import RatingSummary from "./RatingSummary"; +import ConsentSummary from "@/app/environments/[environmentId]/surveys/[surveyId]/summary/ConsentSummary"; interface SummaryListProps { environmentId: string; @@ -105,6 +107,14 @@ export default async function SummaryList({ environmentId, surveyId, session }: /> ); } + if (questionSummary.question.type === QuestionType.Consent) { + return ( + } + /> + ); + } return null; })} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c509b5881b..488ca06230 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,9 +1,5 @@ lockfileVersion: '6.0' -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - importers: .: @@ -20730,3 +20726,7 @@ packages: /zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} dev: false + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false From 419b9d0b90b626be3e5a0346b86f976782818a10 Mon Sep 17 00:00:00 2001 From: Johannes <72809645+jobenjada@users.noreply.github.com> Date: Wed, 5 Jul 2023 05:45:28 -0500 Subject: [PATCH 04/41] Add Link Prefilling, UserId Prefilling and Nextjs App Dir Setup to Docs (#480) * fix EventClassesList table * doc update * update docs * update nextjs docs * update prefilling docs with url encoding --------- Co-authored-by: Matthias Nannt --- apps/demo/pages/app/index.tsx | 15 ++- .../components/docs/DocsFeedback.tsx | 2 +- apps/formbricks-com/lib/docsNavigation.ts | 12 +- apps/formbricks-com/next.config.mjs | 5 + .../pages/docs/api/api-key-setup/index.mdx | 2 +- .../best-practices/docs-feedback/index.mdx | 38 ++---- .../pages/docs/contributing/demo/demoapp.png | Bin 0 -> 60480 bytes .../pages/docs/contributing/demo/index.mdx | 67 ++++++++++ .../troubleshooting/clear-app-data.png | Bin 0 -> 27793 bytes .../contributing/troubleshooting/index.mdx | 65 ++++++++++ .../contributing/troubleshooting/logout.png | Bin 0 -> 10987 bytes .../troubleshooting/uncaught-promise.png | Bin 0 -> 18191 bytes .../getting-started/nextjs-app/env-id.png | Bin 0 -> 13185 bytes .../docs/getting-started/nextjs-app/index.mdx | 97 +++++++++++++++ .../nextjs-app/widget-connected.png | Bin 0 -> 13870 bytes .../nextjs-app/widget-not-connected.png | Bin 0 -> 6416 bytes .../getting-started/nextjs-pages/env-id.png | Bin 0 -> 13185 bytes .../getting-started/nextjs-pages/index.mdx | 88 ++++++++++++++ .../nextjs-pages/widget-connected.png | Bin 0 -> 13870 bytes .../nextjs-pages/widget-not-connected.png | Bin 0 -> 6416 bytes .../docs/getting-started/nextjs/index.mdx | 82 ------------- .../link-surveys/data-prefilling/index.mdx | 115 ++++++++++++++++++ .../data-prefilling/question-id.png | Bin 0 -> 7551 bytes .../user-identification/index.mdx | 57 +++++++++ .../user-identification/people-view.png | Bin 0 -> 16130 bytes .../events/EventClassesList.tsx | 20 +-- .../[surveyId]/edit/WhenToSendCard.tsx | 6 +- packages/lib/time.ts | 2 +- 28 files changed, 531 insertions(+), 142 deletions(-) create mode 100644 apps/formbricks-com/pages/docs/contributing/demo/demoapp.png create mode 100644 apps/formbricks-com/pages/docs/contributing/demo/index.mdx create mode 100644 apps/formbricks-com/pages/docs/contributing/troubleshooting/clear-app-data.png create mode 100644 apps/formbricks-com/pages/docs/contributing/troubleshooting/index.mdx create mode 100644 apps/formbricks-com/pages/docs/contributing/troubleshooting/logout.png create mode 100644 apps/formbricks-com/pages/docs/contributing/troubleshooting/uncaught-promise.png create mode 100644 apps/formbricks-com/pages/docs/getting-started/nextjs-app/env-id.png create mode 100644 apps/formbricks-com/pages/docs/getting-started/nextjs-app/index.mdx create mode 100644 apps/formbricks-com/pages/docs/getting-started/nextjs-app/widget-connected.png create mode 100644 apps/formbricks-com/pages/docs/getting-started/nextjs-app/widget-not-connected.png create mode 100644 apps/formbricks-com/pages/docs/getting-started/nextjs-pages/env-id.png create mode 100644 apps/formbricks-com/pages/docs/getting-started/nextjs-pages/index.mdx create mode 100644 apps/formbricks-com/pages/docs/getting-started/nextjs-pages/widget-connected.png create mode 100644 apps/formbricks-com/pages/docs/getting-started/nextjs-pages/widget-not-connected.png delete mode 100644 apps/formbricks-com/pages/docs/getting-started/nextjs/index.mdx create mode 100644 apps/formbricks-com/pages/docs/link-surveys/data-prefilling/index.mdx create mode 100644 apps/formbricks-com/pages/docs/link-surveys/data-prefilling/question-id.png create mode 100644 apps/formbricks-com/pages/docs/link-surveys/user-identification/index.mdx create mode 100644 apps/formbricks-com/pages/docs/link-surveys/user-identification/people-view.png diff --git a/apps/demo/pages/app/index.tsx b/apps/demo/pages/app/index.tsx index 393a17ddd1..6d3912c6b5 100644 --- a/apps/demo/pages/app/index.tsx +++ b/apps/demo/pages/app/index.tsx @@ -21,13 +21,16 @@ export default function AppPage({}) {

fb setup
- {/*
-

Console

-

You can also open your browser console to logs:

-
+
+

Widget Logs

+

+ Look at the logs to understand how the widget works. Open your browser console{" "} + to see the logs. +

+ {/*
-
-
*/} +
*/} +
diff --git a/apps/formbricks-com/components/docs/DocsFeedback.tsx b/apps/formbricks-com/components/docs/DocsFeedback.tsx index 719fb06be4..e650eee7f3 100644 --- a/apps/formbricks-com/components/docs/DocsFeedback.tsx +++ b/apps/formbricks-com/components/docs/DocsFeedback.tsx @@ -23,7 +23,7 @@ export const DocsFeedback: React.FC = () => {
{!sharedFeedback ? (
- Was this page helpful? + Is everything on this page clear?
{["Yes πŸ‘", " No πŸ‘Ž"].map((option) => ( diff --git a/apps/formbricks-com/lib/docsNavigation.ts b/apps/formbricks-com/lib/docsNavigation.ts index 1e1a54755b..967017d4a7 100644 --- a/apps/formbricks-com/lib/docsNavigation.ts +++ b/apps/formbricks-com/lib/docsNavigation.ts @@ -11,7 +11,8 @@ const navigation = [ title: "Getting Started", links: [ { title: "Quickstart", href: "/docs/getting-started/quickstart" }, - { title: "Setup with Next.js", href: "/docs/getting-started/nextjs" }, + { title: "Next.js App Dir", href: "/docs/getting-started/nextjs-app" }, + { title: "Next.js Pages Dir", href: "/docs/getting-started/nextjs-pages" }, { title: "Setup with Vue.js", href: "/docs/getting-started/vuejs" }, ], }, @@ -43,6 +44,13 @@ const navigation = [ { title: "Docs Feedback", href: "/docs/best-practices/docs-feedback" }, ], }, + { + title: "Link Surveys", + links: [ + { title: "Data Prefilling", href: "/docs/link-surveys/data-prefilling" }, + { title: "User Identification", href: "/docs/link-surveys/user-identification" }, + ], + }, { title: "API", links: [ @@ -77,6 +85,8 @@ const navigation = [ links: [ { title: "Introduction", href: "/docs/contributing/introduction" }, { title: "Setup Dev Environment", href: "/docs/contributing/setup" }, + { title: "Demo App", href: "/docs/contributing/demo" }, + { title: "Troubleshooting", href: "/docs/contributing/troubleshooting" }, ], }, ]; diff --git a/apps/formbricks-com/next.config.mjs b/apps/formbricks-com/next.config.mjs index 7633dace97..dc3fd37cb4 100644 --- a/apps/formbricks-com/next.config.mjs +++ b/apps/formbricks-com/next.config.mjs @@ -46,6 +46,11 @@ const nextConfig = { destination: "/docs/introduction/what-is-formbricks", permanent: true, }, + { + source: "/docs/getting-started/nextjs", + destination: "/docs/getting-started/nextjs-app", + permanent: true, + }, { source: "/docs/formbricks-hq/self-hosting", destination: "/docs", diff --git a/apps/formbricks-com/pages/docs/api/api-key-setup/index.mdx b/apps/formbricks-com/pages/docs/api/api-key-setup/index.mdx index 7bf411165d..97405577cd 100644 --- a/apps/formbricks-com/pages/docs/api/api-key-setup/index.mdx +++ b/apps/formbricks-com/pages/docs/api/api-key-setup/index.mdx @@ -27,7 +27,7 @@ The API requests are authorized with a personal API key. This API key gives you ### Delete a personal API key -1. Go to settings on [app.formbricks.com](https://app.formbricks.com/app/me/settings). +1. Go to settings on [app.formbricks.com](https://app.formbricks.com/me/settings). 2. Go to page β€œAPI keys”. 3. Find the key you wish to revoke and select β€œDelete”. 4. Your API key will stop working immediately. diff --git a/apps/formbricks-com/pages/docs/best-practices/docs-feedback/index.mdx b/apps/formbricks-com/pages/docs/best-practices/docs-feedback/index.mdx index 99237131a4..30e4316ada 100644 --- a/apps/formbricks-com/pages/docs/best-practices/docs-feedback/index.mdx +++ b/apps/formbricks-com/pages/docs/best-practices/docs-feedback/index.mdx @@ -43,33 +43,15 @@ To get this running, you'll need a bit of time. Here are the steps we're going t 2. In the Menu (top right) you see that you can switch between a β€œDevelopment” and a β€œProduction” environment. These are two separate environments so your test data doesn’t mess up the insights from prod. Switch to β€œDevelopment”: -switch to dev environment +switch to dev environment 3. Then, create a survey using the template β€œDocs Feedback”: -select docs template +select docs template 4. Change the Internal Question ID of the first question to **β€œisHelpful”** to make your life easier πŸ˜‰ -switch to dev environment +switch to dev environment 5. In the same way, you can change the Internal Question ID of the _Please elaborate_ question to **β€œadditionalFeedback”** and the one of the _Page URL_ question to **β€œpageUrl”**. @@ -80,13 +62,7 @@ To get this running, you'll need a bit of time. Here are the steps we're going t 6. Click on β€œContinue to Settings or select the audience tab manually. Scroll down to β€œWhen to ask” and create a new Action: -set up when to ask card +set up when to ask card 7. Our goal is to create an event that never fires. This is a bit nonsensical because it is a workaround. Stick with me πŸ˜ƒ Fill the action out like on the screenshot: @@ -94,7 +70,7 @@ To get this running, you'll need a bit of time. Here are the steps we're going t 8. Select the Non-Event in the dropdown. Now you see that the β€œPublish survey” button is active. Publish your survey 🀝 -select nonevent +select nonevent **You’re all setup in Formbricks Cloud for now πŸ‘** @@ -280,7 +256,7 @@ return ( ## 3. Connecting to the Formbricks API -The last step is to hook up your sparkling new frontend to the Formbricks API. To do so, we followed the β€œ[Create Response](https://formbricks.com/docs/api/create-response)” and β€œ[Update Response](https://formbricks.com/docs/api/update-response)” pages in our docs. +The last step is to hook up your sparkling new frontend to the Formbricks API. To do so, we followed the β€œ[Create Response](/docs/client-api/create-response)” and β€œ[Update Response](/docs/client-api/update-response)” pages in our docs. Here is the code for the `handleFeedbackSubmit` function with comments: @@ -373,7 +349,7 @@ Before you roll it out in production, you want to test it. To do so, you need tw When you are on the survey detail page, you’ll find both of them in the URL: -copy IDs +copy IDs Now, you have to replace the IDs and the API host accordingly in your `handleFeedbackSubmit`: diff --git a/apps/formbricks-com/pages/docs/contributing/demo/demoapp.png b/apps/formbricks-com/pages/docs/contributing/demo/demoapp.png new file mode 100644 index 0000000000000000000000000000000000000000..b3f657a4205701153625a12bed3e3576c4b0dd14 GIT binary patch literal 60480 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
BoE7Ev0d*oq=8 z2lAK3oTDz>(0$-F5wAEB;EG|L`04%+y#D(9{%=Ux@Y>Y$o1L=$r=u zOxS7|MtMM05X1hp<4H5Y+ei*W&+iUJ>K*e2>FJqg8o282+uRhIWkkr7dhG)WLC8Z|8I zz;RSWN>M=HFv2Q+#jEi(2RaZ$fkxZHcG%#D0%eK!&tbHPu2HD0FP28nkcVihJuO8P z1gu2SD9O1`>9*I0IO5wX(VHPFO45Eq;H!en7fDe<>b4u^^YBiP0)`O`fv76`{yhu6 z0<>$hU2M?NjwgNX_;GCqa77qLZzoTOfvyxoh=s5bf8xY358+gcL55+-8{sdrZmrf4 zhJtpSp@B>sIy;D+YO%;5r1eAKo*g^3V|zQb7Evu;DGGiJ&1iiJTiX#wQUj~~x7u56 zoj@~fEJe*>Og!L5qT5YcBigGfCf`smD& zg@ylk{jYygzdc?zD-p{^la)WDEBUp8-95_+IZ<{BNs2AYO0C!r&YqPps=1ZvpG}F* zc7t_HOIJa(4^??;xuz_JaVQFM7(0eZd}2oy_J^+1;uXd=*~AyQUU(K+O+%!pmeIhg zi-56?tm5P>yavY5k7GnkrlsUqj&xkIp4nKz%`)q915)Lcb3x=nY(XIiDp}A(6hpVb z0d zuPt8J>iji6nh2Wajai-@`?S_qBcA2;wS8)Y9d;Dpfi;u{kGG>yz2Vu$BaH44^El`* zNrXkFAScRUcozC^-)?N!n8PQv;dwsuNXcZ(vdx%TJ8Iz0^G#RK5|voHeU!wG$}!tU ztPaS2i&xC8&|0#@4Euk2{fS=fJioB;AFu!QPwKbF>rl5RZwUyAeQrGqq z9vdRitn@<1%B><$L>s&;LdOAK=i($nA3q2brLYRWKn2-O;pJR9bltXccZ1~Q)nJ2_ zI*wym8&Jc-A`LOnh6UE9WEe#; zv}GEeC%!Y{$NCd?EYt9wOFO8tqn=39$%q}PSu{dH2p|N2L2CWU{j96q$)Zee*cam4 z2ibF7ve)rlc{Pq>EDT->kCa2a|xzboW}Qf{paqz z{>STo{nuZF*Uvv8Aq2tZl@m7G^W*6ic$M;5b*iihUKei<U(B<>iVp@4!m|_ zr!0*@Rn-Q!P09~RialGrJ}s)jbU2-n4ysk=)JD*uJhhF`!k&|wp;N&umC7A$T;?~Y}P&??Ux~_ZMDCP@Z+nsKQ(T?BI zm2Dfh=|Q44tgk(Y&b=1zsGbfhCP*zAeNf50UbShGj+e0>wGK8&O#;wW3$puXwFNc{ zH1+;vf8*2U#jrEtBaiBD-@f1DGoSL*0HbNwgFmk_Nyd)?!s-Bo?jKN(okd|DBkfv` zBn^cAgC|kLUy^C212JCK1f7Em&A7*WhJK6nDACj?3&^bcc69&6@a+QoTsr=Qebdz! z9z6OEuiO6Jd#`slA=}M&WcldI(j`j{KW=SLU+!J9WZ#Vx%QGi)Le@1~7Phvf*Z;@s zfBlR4#NPRYs8fboGgG#B0|ec+CK>MyAfuexcL?USE`q znT-h$67afZYeAGqRa@(V+Q@<~O~gdKs$ITFdw2y(~`haIVHeKSgFKw$g$I&aPz#-x=Fc|n{1%;N$|>VCmPU|B_5wI%}%;Sus(NV6}>F%MuFr@UkyZWKql+DE+l;Jw6lA8n|Ton ?P^*?&$ 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 + +## Functionality + +### Code Action + +This button sends a Code Action to the Formbricks API called 'Code Action'. You will find it in the Actions Tab. + +```tsx +formbricks.track("Code Action"); +``` + +### No Code Action + +This button sends a No Code Action as long as you created it beforehand in the Formbricks App. For it to work, you need to add the No Code Action within Formbricks. + +```tsx + +``` + +### Set Plan to "Free" + +This button sets the attribute 'Plan' to 'Free'. If the attribute does not exist, it creates it. + +```tsx +formbricks.setAttribute("Plan", "Free"); +``` + +### Set Plan to "Paid" + +This button sets the attribute 'Plan' to 'Paid'. If the attribute does not exist, it creates it. + +```tsx +formbricks.setAttribute("Plan", "Paid"); +``` + +### Set Email + +This button sets the user email 'test@web.com' + +```tsx +formbricks.setEmail("test@web.com"); +``` + +### Set UserId + +This button sets an external user ID to 'THIS-IS-A-VERY-LONG-USER-ID-FOR-TESTING' + +```tsx +formbricks.setUserId("THIS-IS-A-VERY-LONG-USER-ID-FOR-TESTING"); +``` + +export default ({ children }) => {children}; diff --git a/apps/formbricks-com/pages/docs/contributing/troubleshooting/clear-app-data.png b/apps/formbricks-com/pages/docs/contributing/troubleshooting/clear-app-data.png new file mode 100644 index 0000000000000000000000000000000000000000..31e6ee9fcbd480a3d99f9e161a80d6bf810eef1c GIT binary patch literal 27793 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 + +## "I ran 'pnpm i' but there seems to be an error with the packages" + +If nothing helps, run `pnpm clean` and then `pnpm i` again. This solves a lot. + +## "I get a full-screen error with cryptic strings" + +This usually happens when the Formbricks Widget wasn't correctly or completely built. + +```bash +// Build formbricks-js first +pnpm build --filter=js + +// Run the app again +pnpm dev +``` + +## My machine struggles with the repository + +Since we're working with a monorepo structure, the repository can get quite big. If you're having trouble working with the repository, try the following: + +```bash +// Only run the Formbricks app +pnpm dev --filter=web... + +// Only run the landing page app +pnpm dev --filter=formbricks-com... + +// Only run the demo app +pnpm dev --filter=demo... +``` + +However, in our experience it's better to run `pnpm dev` than having two terminals open (one with the Formbricks app and one with the demo). + +## Uncaught (in promise) SyntaxError: Unexpected token !DOCTYPE ... is not valid JSON + +Uncaught promise + +This happens when you're using the Demo App and delete the Person within the Formbricks app which the widget is currently connected with. We're fixing it, but you can also just logout your test person and reload the page to get rid of it. + +Logout Person + +export default ({ children }) => {children}; diff --git a/apps/formbricks-com/pages/docs/contributing/troubleshooting/logout.png b/apps/formbricks-com/pages/docs/contributing/troubleshooting/logout.png new file mode 100644 index 0000000000000000000000000000000000000000..8ff41bcfc675dc0bb13c051ec77d2d40ac0915cd GIT binary patch literal 10987 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 literal 0 HcmV?d00001 diff --git a/apps/formbricks-com/pages/docs/contributing/troubleshooting/uncaught-promise.png b/apps/formbricks-com/pages/docs/contributing/troubleshooting/uncaught-promise.png new file mode 100644 index 0000000000000000000000000000000000000000..d424bef9707d831ac23de53657787b9b4078bbe4 GIT binary patch literal 18191 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 L>gTe~DWM4fe8*hE literal 0 HcmV?d00001 diff --git a/apps/formbricks-com/pages/docs/getting-started/nextjs-app/env-id.png b/apps/formbricks-com/pages/docs/getting-started/nextjs-app/env-id.png new file mode 100644 index 0000000000000000000000000000000000000000..d342241df47c10a424b57766cb850767bfabc50e GIT binary patch literal 13185 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 + +## Installing Formbricks SDK + +First, you need to install the Formbricks SDK using one of the following commands: + +```bash +npm install --save @formbricks/js +# or +yarn add @formbricks/js +# or +pnpm add @formbricks/js +``` + +## Integrating with Next.js 13 App Directory + +The Next.js 13 app directory requires us to initialize Formbricks differently than the pages directory. Specifically, the app directory server-side renders components by default, and the formbricks-js library is a client-side library. To make these work together, create a `formbricks.js` file (or formbricks.ts if you are using Typescript) and set up the FormbricksProvider with the 'use client' directive: + +```tsx +// app/formbricks.js +"use client"; +import formbricks from "@formbricks/js"; + +if (typeof window !== "undefined") { + formbricks.init({ + environmentId: "your-environment-id", + apiHost: "your-api-host", // e.g. https://app.formbricks.com + logLevel: "debug", // remove when in production + }); +} + +export default function Providers({ Component, pageProps }: AppProps) { + const pathname = usePathname(); + const searchParams = useSearchParams(); + + useEffect(() => { + formbricks?.registerRouteChange(); + }, [pathname, searchParams]); + + return null; +} +``` + +Once we do this, we can then import the `provider.js` file in our `app/layout.js` file, and wrap our app in the Formbricks provider. + +```tsx +// app/layout.js +import Providers from "./formbricks"; + +export const metadata = { + title: "Create Next App", + description: "Generated by create next app", +}; + +export default function RootLayout({ children }) { + return ( + + + {children} + + ); +} +``` + +## Validate your setup + +Once you have completed the steps above, you can validate your setup by checking the **Setup Checklist** in the Settings. Your widget status indicator should go from this: + +Widget isnt connected + +To this: + +Widget is connected + +export default ({ children }) => {children}; diff --git a/apps/formbricks-com/pages/docs/getting-started/nextjs-app/widget-connected.png b/apps/formbricks-com/pages/docs/getting-started/nextjs-app/widget-connected.png new file mode 100644 index 0000000000000000000000000000000000000000..01d7595cdcf1f043782178ab0f978830b57899f8 GIT binary patch literal 13870 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�@>etsvU>gpy2<0l~IH|s=E;TmpA8)=T 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 literal 0 HcmV?d00001 diff --git a/apps/formbricks-com/pages/docs/getting-started/nextjs-app/widget-not-connected.png b/apps/formbricks-com/pages/docs/getting-started/nextjs-app/widget-not-connected.png new file mode 100644 index 0000000000000000000000000000000000000000..afd6d9aa60b298a245c98c555b6e21c68d6bb1ed GIT binary patch literal 6416 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 G#rzL*OGAMG literal 0 HcmV?d00001 diff --git a/apps/formbricks-com/pages/docs/getting-started/nextjs-pages/env-id.png b/apps/formbricks-com/pages/docs/getting-started/nextjs-pages/env-id.png new file mode 100644 index 0000000000000000000000000000000000000000..d342241df47c10a424b57766cb850767bfabc50e GIT binary patch literal 13185 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 + +## Installing Formbricks SDK + +First, you need to install the Formbricks SDK using one of the following commands: + +```bash +npm install --save @formbricks/js +# or +yarn add @formbricks/js +# or +pnpm add @formbricks/js +``` + +## Integrating with Next.js 13 Pages Directory + +Update your Pages component in the \_app.ts file like so: + +```tsx +import "@/styles/globals.css"; +import type { PagesProps } from "next/app"; +import { useEffect } from "react"; +import { useRouter } from "next/router"; +import formbricks from "@formbricks/js"; + +if (typeof window !== "undefined") { + formbricks.init({ + environmentId: "your-environment-id", + apiHost: "your-api-host", // e.g. https://app.formbricks.com + logLevel: "debug", // remove when in production + }); +} + +export default function Pages({ Component, pageProps }: PagesProps) { + const router = useRouter(); + + useEffect(() => { + // Connect next.js router to Formbricks + const handleRouteChange = formbricks?.registerRouteChange; + router.events.on("routeChangeComplete", handleRouteChange); + + return () => { + router.events.off("routeChangeComplete", handleRouteChange); + }; + }, []); + + return ; +} +``` + +## What are we doing here? + +1. First we need to initialize the Formbricks SDK, making sure it only runs on the client side. +2. To connect the Next.js router to Formbricks and ensure the SDK can keep track of every page change, we are registering the route change event. + +## Validate your setup + +Once you have completed the steps above, you can validate your setup by checking the **Setup Checklist** in the Settings. Your widget status indicator should go from this: + +Widget isnt connected + +To this: + +Widget is connected + +export default ({ children }) => {children}; diff --git a/apps/formbricks-com/pages/docs/getting-started/nextjs-pages/widget-connected.png b/apps/formbricks-com/pages/docs/getting-started/nextjs-pages/widget-connected.png new file mode 100644 index 0000000000000000000000000000000000000000..01d7595cdcf1f043782178ab0f978830b57899f8 GIT binary patch literal 13870 zcmch82T+sSw{Nf^BA}uoAYcPT1f@$y5Ky`l=^)Y*ni7JP0E)nou7K1Ci1ZR56sb9a z^j<^HL4*JyM1h17lDsdTbLai{kc3o?)y~=Ox{np4po9z_ODG&(6 z_UPdQV-V=569~j4dGZACCMAcH75HNEHP%)KRSaHU1O6Oyy{~^C1gc74J#;t@{Aclb zXz2?Aor5wyObadoFF_!g_D2uyo4&Lo%rl3bC*^ki!fq~%-amHS^v2Dp;hR?<#0kD; zV?8G`viCaWQrx3)i)XO~ZjC&U*v{r}AI`|ESf0_8KE;#t$GPyE&os{Fvt;?yEY-E_ z4;|vX{Jrt>gn@0 z@n22tBtRDkbmq(vZpQbqH~$p7PgL#}pTE9x6nMEhqn?|H5Vemvk}mK~@~CC6WgUu9 zdH7MleyPZt{a0mzU(3qWKJb4V73O$#8Yof2rSf;{oz%@f^vk~`pP0{F=_Fa~b8n+r zaid?c?}h}UwXNP1i``-+XRC2fXKXUxV6=z`P*Flk6Z|P!_&rRNQ3vWN^RDvTuQcA? z(Qr!%O>N75cE`nsYz~YuK%;4~PSx+TGY>DD>3vmOA^yqXbQTACdt-o;LD`ke9vva6 z{a5`rFZSw`T$NHh9ib7;*~w^l5JvNH4hY5ryey;UoiW|X2D77i-0wR z$yKBmIdrMyISSB`ADVH7yZB}Y@^LM03S_YKtdeLKiLpb@#ICznzdSs~w{rLrSH59Y zS--Oyo4>G8mOcQE;Sbq3j>95qDEtdsETPcX{TngTz1AC73h<4JAHY)$7(9inq|~%V zL51dVZk%IGbTB{qAd&FNHtLbCi_*L4IiE$&z~Hygsh1|<)9O-i*h$aaBEd!LRGXB`Z?9qgRNNI<=XRx~#}LR!egFCZTw-2!#;o@pRDctC zA2!t*2uw;XrRbBIP+SHyEmHo~5}{`9yX+$<y=4sm|^5>~x=$ z-;UbHk-G}cSfAqTlpMtDc=I~Q9RX(R_O9fVQ=E)uLcsmDo$?G>U7k9;_~xir6TrgV ztUs2Yx6f3z?{vh5m|JF5zM#Ahhx%%vtKT;EvB|Av{RJCi<$-Nd8}TojdL`C_#{5v6 z$E0pIKgK97D{Ms8&}@TjK4Y_+!avMChxBP_LKo<-`M$LyJ8lJl;+H~`E|7)Rn+z;# zRuQtLUjy-;!pSbuY<}wB1r)99m4V6SG@6=U@%7sBm#Y;IN%WySk%`M$oygh0E)huW zisXaqeKi_3ZU5k$VEdy(sZTbveMCKC4$}(LC%0ZD14kgx#9+ z!^QqBS>OJvEtV^f3!dB&Yp(kc#O6Y+EZYJG1Klj^J(A8xTOeQGer;&QmR5e>SNqxR zGdUSk_f>Ts8*ghTSX(<~a>y*6EVYK`F7m{{&h?1JT*q{}U{3+9>&U<29q1==ny?CT?!j-lEOXMBfm z%YAc7IAM8znIj6@+#ez1?Xsqf6%#;n*g-N}88T7Srsfib&L+L)OnWgN*6_7w`h)D0 z_EkHvG1kVrd2i>Th>5a*T)8um?(b7o(mHuDHlJn@Ptz9nya9#bvbSHx^C?1Zy=+J2 ziI-~aH5r>oZZO)CQ%y?Y2M0+n(7x7&f`Tt*oKWvEap8rI+2gA3?~u1g9u7Y*``BMbwrZOaG%$Wc z@pQ1lm|^cu3pn^msuUs*@4M5rb?|atX@Mm$jsh)k#EyNwoX2-StvJR0$4Hssj7TH= zn_=w@2(){Jf~qw`g-q=&G&|DRHZp`&e5KwOAbx&9#Qp7egsSg z7$7ftl*`C+=4C6#bUr$eCR^~=9awAZi5K+U|zn%B-o zv^zwoUu_aJF`G;@yZq$IzwO%* z^?$GULCDW`0b6HW=A(S$&15~H3-RMqwJG&4$l0W&CKr71v~TlTT(TBX(G*^zWk@Ao z6`OJQj$8G#p94E@Y{v;hd&+&!&-8_s2M`6IvrE3xs?x^H?8N2P+vqwm`XRITNNs2> zrrRJtB~PrmT$MW2aB<0h(v&l=;%i_Z9l`qbk|5 zSpVbanr)=+0q-{Le)E8ziZrBXN9(? z#v%RG)8UU2wfL5jai)9?<@H})kWUX>h9+Bg661MS%k^Bn$o#>x;-;O6zmhU5Oj=)< z#+2c?zL0MlRuR<&`;0v?En>CgIfd<7fbV?jX2+}dIaG=Rg5;TS))d#t#(Q%5g>lu} zW-i@zW|zYlj5n<{f@>%_Tr5;*%<1_`T|=+C69S(D_p@{yu3f&QYK&C* z`Togg`>0MocFuT1W2=DCzIA(694T&=*-d>3mx{l%QoEu|Q|YBENg^TS+HEI$u3hDV z$qCg^l%eaiV*SpRlP%>J1>A9DZKo6eWCcc?#OvJ)76qI`uT~Jz7I-&XK)H{J3lsczJJb0x%fidz+U`&{yo%3t7UIruW=7f z4JljMkT6Pxme6?>BmA7jMaY4ik#SjSrq#(i#@M=$Ex`zLFmX`jXSf9djU*l_p@EJ4P4!S|f~yC(1KJ(s7@M`7{M`Z4I zRyRrxY37l~-rOIQ7(JlKs76kFA8KdWq{+w5)UJ`%wBn#`Kbq`T?_!<}x4JI}S|eLG zkI^@boRHIRYBHg_sH*LOdd1wsA2kHAy^T|%i%NV!ikPxr2N~Ogd%-WdX|eqQ^2;it zHVKkLxj(B|gNI^l@xjs5__`kAOZnx&19pJ+8a2|fYEMKa{h3@+{@$LT?d&BZuMuVB zEU7bxsiFPVKJq(9^Nsw7gg?*U3S|#rL�@>etsvU>gpy2<0l~IH|s=E;TmpA8)=T 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 literal 0 HcmV?d00001 diff --git a/apps/formbricks-com/pages/docs/getting-started/nextjs-pages/widget-not-connected.png b/apps/formbricks-com/pages/docs/getting-started/nextjs-pages/widget-not-connected.png new file mode 100644 index 0000000000000000000000000000000000000000..afd6d9aa60b298a245c98c555b6e21c68d6bb1ed GIT binary patch literal 6416 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 G#rzL*OGAMG literal 0 HcmV?d00001 diff --git a/apps/formbricks-com/pages/docs/getting-started/nextjs/index.mdx b/apps/formbricks-com/pages/docs/getting-started/nextjs/index.mdx deleted file mode 100644 index feab5c661c..0000000000 --- a/apps/formbricks-com/pages/docs/getting-started/nextjs/index.mdx +++ /dev/null @@ -1,82 +0,0 @@ -import { Layout } from "@/components/docs/Layout"; - -export const meta = { - title: "Setting up Formbricks SDK with Next.js", - description: "Integrate Formbricks SDK into your Next.js app for seamless in-product micro-surveys. Follow our step-by-step guide to enhance user feedback and product experience.", -}; - -This guide will walk you through the process of integrating the Formbricks SDK into a Next.js application. As the Formbricks SDK only works on the client side, it's essential to ensure proper integration to avoid any issues. - -## Introduction - -Formbricks SDK allows you to seamlessly integrate in-product micro-surveys into your Next.js application. By following the steps outlined in this guide, you'll be able to gather valuable insights from your users and improve your product experience. - -## Prerequisites - -Before getting started, make sure you have: - -1. A Next.js application set up and running. -2. A Formbricks account with access to your environment ID and API host. You can find these in the Setup Checklist in the Settings. - -## Installing Formbricks SDK - -First, you need to install the Formbricks SDK using one of the following commands: - -```bash -npm install --save @formbricks/js -# or -yarn add @formbricks/js -# or -pnpm add @formbricks/js -``` - -## Integrating Formbricks SDK with Next.js - -Update your App component in the \_app.ts file like so: - -```tsx -import "@/styles/globals.css"; -import type { AppProps } from "next/app"; -import { useEffect } from "react"; -import { useRouter } from "next/router"; -import formbricks from "@formbricks/js"; - -if (typeof window !== "undefined") { - formbricks.init({ - environmentId: "your-environment-id", - apiHost: "your-api-host", // e.g. https://app.formbricks.com - logLevel: "debug", // remove when in production - }); -} - -export default function App({ Component, pageProps }: AppProps) { - const router = useRouter(); - - useEffect(() => { - // Connect next.js router to Formbricks - const handleRouteChange = formbricks?.registerRouteChange; - router.events.on("routeChangeComplete", handleRouteChange); - - return () => { - router.events.off("routeChangeComplete", handleRouteChange); - }; - }, []); - - return ; -} -``` - -**What are we doing here?** -First we need to initialize the Formbricks SDK, making sure it only runs on the client side. - -To connect the Next.js router to Formbricks and ensure the SDK can keep track of every page change, we are registering the route change event. - -That's it! πŸŽ‰ - -You should now see that the Widget Status in the setup checklist updated accordingly: - -If it doesnt work, please [join our Discord](https://formbricks.com/discord) and let us know! - -You have now successfully integrated the Formbricks SDK into your Next.js application. You can start creating and customizing in-product micro-surveys to gather valuable feedback from your users and improve your product experience. - -export default ({ children }) => {children}; diff --git a/apps/formbricks-com/pages/docs/link-surveys/data-prefilling/index.mdx b/apps/formbricks-com/pages/docs/link-surveys/data-prefilling/index.mdx new file mode 100644 index 0000000000..d2177955b8 --- /dev/null +++ b/apps/formbricks-com/pages/docs/link-surveys/data-prefilling/index.mdx @@ -0,0 +1,115 @@ +import { Layout } from "@/components/docs/Layout"; +import { Fence } from "@/components/shared/Fence"; +import { Callout } from "@/components/shared/Callout"; +import Image from "next/image"; + +import QuestionId from "./question-id.png"; + +export const meta = { + title: "Data Prefilling in Link Surveys", + description: "Prefill data in your surveys to make it easier for your users to provide feedback.", +}; + +Data prefilling via the URL allows you to increase conversion rate by prefilling data you already have in a different system. + +## Purpose + +URL prefilling of data comes in handy when you: + +- Have data for some of the respondents, but not all +- Have data in a different system (e.g. your database) and want to add it to the user profile in Formbricks +- Want to embed the first question in an email and increase conversion by prefilling the choice + +## Quick Example + +```tsx +https://app.formbricks.com/s/clin3dxja02k8l80hpwmx4bjy?question_id=5 +``` + +## How it works + +To prefill the first question of a survey, append `?question_id=answer` at the end of the survey URL. The answer has to match the expected type of the question. For example, if the first question is a rating question, the answer has to be a number. If the first question is a single select question, the answer has to be a string. + +Please make sure the answer is [URL encoded](https://www.urlencoder.org/). + + + Currently, you can only prefill the first question of a link survey. + + +## Where do I find my question Id? + +You find the `questionId` in the Advanced Settings at the bottom of each question card in the Survey Editor. As you see, you can update the `questionId` to any string you like. However, once you published your survey, this `questionId` cannot be updated anymore: + +The question Id is located at the bottom of each question card in the survey editor. + +## Examples + +Here are a few examples to get you started: + +### Rating Question + +```tsx +https://app.formbricks.com/s/clin3yxja52k8l80hpwmx4bjy?rating_question_id=5 + +// -> translates to 5 stars / points / emojis +``` + +### NPS Question + +```tsx +https://app.formbricks.com/s/clin3yxja52k8l80hpwmx4bjy?nps_question_id=10 + +// -> translates to an NPS rating of 10 +``` + +### Single Select Question (Radio) + +```tsx +https://app.formbricks.com/s/clin3yxja52k8l80hpwmx4bjy?single_select_question_id=Very%20disappointed + +// -> Chooses the option "Very disappointed" in the single select question. The string has to be identical to the option in your question. +``` + +### Multi Select Question (Checkbox) + +```tsx +https://app.formbricks.com/s/clin3yxja52k8l80hpwmx4bjy?single_select_question_id=Sun%2CPalms%2CBeach + +// -> Selects three options "Sun, Palms and Beach" in the multi select question. The strings have to be identical to the options in your question. +``` + +### Open Text Question + +```tsx +https://app.formbricks.com/s/clin3yxja52k8l80hpwmx4bjy?openText_question_id=I%20love%20Formbricks + +// -> Adds "I love Formbricks" as the answer to the open text question +``` + +### CTA Question + +```tsx +https://app.formbricks.com/s/clin3yxja52k8l80hpwmx4bjy?cta_question_id=clicked + +// -> Adds "clicked" as the answer to the CTA question. Alternatively, you can set it to "dismissed" to skip the question. +``` + +## Validation + +Make sure that the answer in the URL matches the expected type for the first question. + +The URL validation works as follows: + +- For Rating or NPS questions, the response is parsed as a number and verified if it's accepted by the schema. +- For CTA type questions, the valid values are "clicked" (main CTA) and "dismissed" (skip CTA). +- For Consent type questions, the valid values are "accepted" (consent given) and "dismissed" (consent not given). +- All other question types are strings. + +### You’re good to go! πŸŽ‰ + +export default ({ children }) => {children}; diff --git a/apps/formbricks-com/pages/docs/link-surveys/data-prefilling/question-id.png b/apps/formbricks-com/pages/docs/link-surveys/data-prefilling/question-id.png new file mode 100644 index 0000000000000000000000000000000000000000..83aa7e647ed82b9935e6e669eb187ff017d38548 GIT binary patch literal 7551 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 literal 0 HcmV?d00001 diff --git a/apps/formbricks-com/pages/docs/link-surveys/user-identification/index.mdx b/apps/formbricks-com/pages/docs/link-surveys/user-identification/index.mdx new file mode 100644 index 0000000000..e662ac9430 --- /dev/null +++ b/apps/formbricks-com/pages/docs/link-surveys/user-identification/index.mdx @@ -0,0 +1,57 @@ +import { Layout } from "@/components/docs/Layout"; +import { Fence } from "@/components/shared/Fence"; +import { Callout } from "@/components/shared/Callout"; +import Image from "next/image"; + +import PeopleView from "./people-view.png"; + +export const meta = { + title: "User Identification in Link Surveys", + description: + "Identify users in link surveys via URL parameter. Connect responses to existing users in Formbricks.", +}; + +Identifying users in link features lets you connect responses from link surveys with existing users in your Formbricks database. + +## Purpose + +Identifying users in link surveys comes in handy when you: + +- Want to send out link surveys to existing users in your database +- Want to connect responses from link surveys with existing users in your database +- Want to gather data and later connect it to a user who has not signed up yet + +## Quick Example + +```tsx +https://app.formbricks.com/s/clin3dxja02k8l80hpwmx4bjy?userId=ABC123 +``` + +## How it works + +To link a response to a user in your Formbricks database, you can pass your internal user Id as a URL parameter. + +## Where do I find my userId? + +The `userId` we are refering to is the `userId` of your own system. For example, a user signs up to your app and gets the Id `ABC123` assigned then this is the Id you pass along in the URL parameter. + +This allows you to connect the response to the user profile of this specific in the Formbricks database. You can then use the response data to create segments for further surveying or invite them to an interview, etc. + +## getOrCreateUser - how it works exactly + +By default, respondents of link surveys are **not** recorded and displayed in the People view. This would lead to your People view to be spammend with unidentified people. + +If you add the `userId` URL parameter a Person will be created, if there is no existing person in your database with a matching `userId`. + +**Case 1:** User with userId `ABC111` exists, the response from the link survey will be added to this users profile. + +**Case 2:** User with userId `ABC222` does not yet exists, so it is created with the response from the link survey connected to this user. + +If users are identified by email, it will show. If not, the internal Id will be set. + +export default ({ children }) => {children}; diff --git a/apps/formbricks-com/pages/docs/link-surveys/user-identification/people-view.png b/apps/formbricks-com/pages/docs/link-surveys/user-identification/people-view.png new file mode 100644 index 0000000000000000000000000000000000000000..502d520dcf9a74d4a6c0a9fc9291a186828782c2 GIT binary patch literal 16130 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 literal 0 HcmV?d00001 diff --git a/apps/web/app/environments/[environmentId]/events/EventClassesList.tsx b/apps/web/app/environments/[environmentId]/events/EventClassesList.tsx index ccf8b6d71e..a7790c5fec 100644 --- a/apps/web/app/environments/[environmentId]/events/EventClassesList.tsx +++ b/apps/web/app/environments/[environmentId]/events/EventClassesList.tsx @@ -45,13 +45,11 @@ export default function EventClassesList({ environmentId }) {
-
+
+ Edit
User Actions
# Reps
Created
-
- Edit -
{eventClasses.map((eventClass) => ( @@ -61,7 +59,7 @@ export default function EventClassesList({ environmentId }) { }} className="w-full" key={eventClass.id}> -
+
@@ -85,17 +83,7 @@ export default function EventClassesList({ environmentId }) {
{timeSinceConditionally(eventClass.createdAt)}
-
- {/* {eventClass.type !== "automatic" && ( - - )} */} -
+
))} diff --git a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/WhenToSendCard.tsx b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/WhenToSendCard.tsx index aa6e78f282..43a5384a07 100644 --- a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/WhenToSendCard.tsx +++ b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/WhenToSendCard.tsx @@ -1,5 +1,6 @@ "use client"; +import AddNoCodeEventModal from "@/app/environments/[environmentId]/events/AddNoCodeEventModal"; import LoadingSpinner from "@/components/shared/LoadingSpinner"; import { useEventClasses } from "@/lib/eventClasses/eventClasses"; import { cn } from "@formbricks/lib/cn"; @@ -7,7 +8,7 @@ import type { Survey } from "@formbricks/types/surveys"; import { Badge, Button, - Switch, + Input, Label, Select, SelectContent, @@ -15,12 +16,11 @@ import { SelectSeparator, SelectTrigger, SelectValue, - Input, + Switch, } from "@formbricks/ui"; import { CheckCircleIcon, PlusIcon, TrashIcon } from "@heroicons/react/24/solid"; import * as Collapsible from "@radix-ui/react-collapsible"; import { useEffect, useState } from "react"; -import AddNoCodeEventModal from "../../../events/AddNoCodeEventModal"; interface WhenToSendCardProps { localSurvey: Survey; diff --git a/packages/lib/time.ts b/packages/lib/time.ts index 97dc7b6bf6..cd73ad8904 100644 --- a/packages/lib/time.ts +++ b/packages/lib/time.ts @@ -84,7 +84,7 @@ export const timeSince = (dateString: string) => { export const timeSinceConditionally = (dateString: string) => { return new Date().getTime() - new Date(dateString).getTime() > 14 * 24 * 60 * 60 * 1000 - ? convertDateTimeString(dateString) + ? convertDateTimeStringShort(dateString) : timeSince(dateString); }; From 5162a84246ecfa0e61c8b50d6e44fa345401aca5 Mon Sep 17 00:00:00 2001 From: joe-shajan Date: Wed, 5 Jul 2023 16:24:34 +0530 Subject: [PATCH 05/41] fix: display user email in responses --- .../surveys/[surveyId]/responses/SingleResponse.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/responses/SingleResponse.tsx b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/responses/SingleResponse.tsx index c88a356403..a8ed129206 100644 --- a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/responses/SingleResponse.tsx +++ b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/responses/SingleResponse.tsx @@ -41,8 +41,7 @@ export interface OpenTextSummaryProps { } function findEmail(person) { - const emailAttribute = person.attributes.email; - return emailAttribute ? emailAttribute.value : null; + return person.attributes?.email || null; } interface TooltipRendererProps { From dbec5426b22dfcf1910b0be9b44685398b9d9ee3 Mon Sep 17 00:00:00 2001 From: Shubham Palriwala Date: Wed, 5 Jul 2023 16:36:37 +0530 Subject: [PATCH 06/41] Move people page to server components (#479) * feat: person overview is now a server rendered page * feat: loader component & fix: minor changes as suggested * hide: session count * getAttributeValue always returns string * fix: remove createdAt & updatedAt fields from user for now * fix: use select instead of include to specify retreival fields * feat: suspense streaming * feat: skeleton table for streaming and loading * fix: use integrated loading and cleanup components --------- Co-authored-by: Matthias Nannt --- .../[environmentId]/people/PeopleList.tsx | 78 ------------------- .../[environmentId]/people/loading.tsx | 34 ++++++++ .../[environmentId]/people/page.tsx | 63 +++++++++++++-- packages/lib/services/person.ts | 36 +++++++++ 4 files changed, 126 insertions(+), 85 deletions(-) delete mode 100644 apps/web/app/environments/[environmentId]/people/PeopleList.tsx create mode 100644 apps/web/app/environments/[environmentId]/people/loading.tsx diff --git a/apps/web/app/environments/[environmentId]/people/PeopleList.tsx b/apps/web/app/environments/[environmentId]/people/PeopleList.tsx deleted file mode 100644 index eb04239ec6..0000000000 --- a/apps/web/app/environments/[environmentId]/people/PeopleList.tsx +++ /dev/null @@ -1,78 +0,0 @@ -"use client"; - -import EmptySpaceFiller from "@/components/shared/EmptySpaceFiller"; -import LoadingSpinner from "@/components/shared/LoadingSpinner"; -import { usePeople } from "@/lib/people/people"; -import { truncateMiddle } from "@/lib/utils"; -import { ErrorComponent, PersonAvatar } from "@formbricks/ui"; -import Link from "next/link"; - -export default function PeopleList({ environmentId }: { environmentId: string }) { - const { people, isLoadingPeople, isErrorPeople } = usePeople(environmentId); - - if (isLoadingPeople) { - return ; - } - if (isErrorPeople) { - return ; - } - - const getAttributeValue = (person, attributeName) => { - return person.attributes.find((a) => a.attributeClass.name === attributeName)?.value; - }; - - return ( - <> - {people.length === 0 ? ( - - ) : ( -
-
-
User
-
User ID
-
Email
-
Sessions
-
-
- {people.map((person) => ( - -
-
-
-
- -
-
-
- {getAttributeValue(person, "email") ? ( - {getAttributeValue(person, "email")} - ) : ( - {person.id} - )} -
-
-
-
-
-
- {truncateMiddle(getAttributeValue(person, "userId"), 24)} -
-
-
-
{getAttributeValue(person, "email")}
-
-
-
{person._count?.sessions}
-
-
- - ))} -
-
- )} - - ); -} diff --git a/apps/web/app/environments/[environmentId]/people/loading.tsx b/apps/web/app/environments/[environmentId]/people/loading.tsx new file mode 100644 index 0000000000..f29fd54dae --- /dev/null +++ b/apps/web/app/environments/[environmentId]/people/loading.tsx @@ -0,0 +1,34 @@ +export default function Loading() { + return ( +
+
+
User
+
User ID
+
Email
+
+
+ {[...Array(3)].map((_, index) => ( +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ))} +
+
+ ); +} diff --git a/apps/web/app/environments/[environmentId]/people/page.tsx b/apps/web/app/environments/[environmentId]/people/page.tsx index d5dd5264f7..1d23d93cdb 100644 --- a/apps/web/app/environments/[environmentId]/people/page.tsx +++ b/apps/web/app/environments/[environmentId]/people/page.tsx @@ -1,13 +1,62 @@ -import PeopleList from "./PeopleList"; +export const revalidate = 0; + +import EmptySpaceFiller from "@/components/shared/EmptySpaceFiller"; +import { truncateMiddle } from "@/lib/utils"; +import { TransformPersonOutput, getPeople } from "@formbricks/lib/services/person"; +import { PersonAvatar } from "@formbricks/ui"; + +const getAttributeValue = (person: TransformPersonOutput, attributeName: string) => + person.attributes[attributeName]?.toString(); + +export default async function PeoplePage({ params }) { + const people = await getPeople(); -export default function PeoplePage({ params }) { return ( <> -

People

-

- A list of all people who used your application since embedding the Formbricks JS widget. -

- + {people.length === 0 ? ( + + ) : ( +
+ )} ); } diff --git a/packages/lib/services/person.ts b/packages/lib/services/person.ts index 96d6335975..438959d0be 100644 --- a/packages/lib/services/person.ts +++ b/packages/lib/services/person.ts @@ -2,6 +2,7 @@ import { prisma } from "@formbricks/database"; import { TPerson } from "@formbricks/types/v1/people"; import { Prisma } from "@prisma/client"; import { DatabaseError, ResourceNotFoundError } from "@formbricks/errors"; +import { cache } from "react"; type TransformPersonInput = { id: string; @@ -68,3 +69,38 @@ export const getPerson = async (personId: string): Promise => { throw error; } }; + +export const getPeople = cache(async (): Promise => { + try { + const personsPrisma = await prisma.person.findMany({ + select: { + id: true, + attributes: { + select: { + value: true, + attributeClass: { + select: { + name: true, + }, + }, + }, + }, + }, + }); + if (!personsPrisma) { + throw new ResourceNotFoundError("Persons", "All Persons"); + } + + const transformedPersons: TransformPersonOutput[] = personsPrisma + .map(transformPrismaPerson) + .filter((person: TransformPersonOutput | null): person is TransformPersonOutput => person !== null); + + return transformedPersons; + } catch (error) { + if (error instanceof Prisma.PrismaClientKnownRequestError) { + throw new DatabaseError("Database operation failed"); + } + + throw error; + } +}); From 4e1d905c9e7711063a68370db97d181d5d144698 Mon Sep 17 00:00:00 2001 From: Matti Nannt Date: Wed, 5 Jul 2023 15:19:54 +0200 Subject: [PATCH 07/41] Fix people service loading time (#485) * Fix people service loading time * run pnpm format --- .../[environmentId]/people/loading.tsx | 57 +++++++++---------- .../[environmentId]/people/page.tsx | 2 +- packages/lib/services/person.ts | 5 +- 3 files changed, 32 insertions(+), 32 deletions(-) diff --git a/apps/web/app/environments/[environmentId]/people/loading.tsx b/apps/web/app/environments/[environmentId]/people/loading.tsx index f29fd54dae..e85d115325 100644 --- a/apps/web/app/environments/[environmentId]/people/loading.tsx +++ b/apps/web/app/environments/[environmentId]/people/loading.tsx @@ -1,34 +1,31 @@ export default function Loading() { - return ( -
-
-
User
-
User ID
-
Email
+ return ( +
+
+
User
+
User ID
+
Email
+
+
+ {[...Array(3)].map((_, index) => ( +
+
+
+
+
+
+
+
-
- {[...Array(3)].map((_, index) => ( -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ))} +
+
-
- ); +
+
+
+
+ ))} +
+
+ ); } diff --git a/apps/web/app/environments/[environmentId]/people/page.tsx b/apps/web/app/environments/[environmentId]/people/page.tsx index 1d23d93cdb..b7800835d5 100644 --- a/apps/web/app/environments/[environmentId]/people/page.tsx +++ b/apps/web/app/environments/[environmentId]/people/page.tsx @@ -9,7 +9,7 @@ const getAttributeValue = (person: TransformPersonOutput, attributeName: string) person.attributes[attributeName]?.toString(); export default async function PeoplePage({ params }) { - const people = await getPeople(); + const people = await getPeople(params.environmentId); return ( <> diff --git a/packages/lib/services/person.ts b/packages/lib/services/person.ts index 438959d0be..2f9599de71 100644 --- a/packages/lib/services/person.ts +++ b/packages/lib/services/person.ts @@ -70,9 +70,12 @@ export const getPerson = async (personId: string): Promise => { } }; -export const getPeople = cache(async (): Promise => { +export const getPeople = cache(async (environmentId: string): Promise => { try { const personsPrisma = await prisma.person.findMany({ + where: { + environmentId: environmentId, + }, select: { id: true, attributes: { From 33811f9349ebe95322aab918141cae7fcf97d8e1 Mon Sep 17 00:00:00 2001 From: Matti Nannt Date: Wed, 5 Jul 2023 16:01:45 +0200 Subject: [PATCH 08/41] Improve Authorization Checks in Layout (#487) --- apps/web/app/environments/[environmentId]/layout.tsx | 5 +++++ apps/web/app/environments/[environmentId]/people/page.tsx | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/apps/web/app/environments/[environmentId]/layout.tsx b/apps/web/app/environments/[environmentId]/layout.tsx index 5633cffcb5..5b6b36d636 100644 --- a/apps/web/app/environments/[environmentId]/layout.tsx +++ b/apps/web/app/environments/[environmentId]/layout.tsx @@ -6,12 +6,17 @@ import { authOptions } from "@/app/api/auth/[...nextauth]/authOptions"; import PosthogIdentify from "./PosthogIdentify"; import FormbricksClient from "../../FormbricksClient"; import { PosthogClientWrapper } from "../../PosthogClientWrapper"; +import { hasUserEnvironmentAccess } from "@/lib/api/apiHelper"; export default async function EnvironmentLayout({ children, params }) { const session = await getServerSession(authOptions); if (!session) { return redirect(`/auth/login`); } + const hasAccess = await hasUserEnvironmentAccess(session.user, params.environmentId); + if (!hasAccess) { + throw new Error("User does not have access to this environment"); + } return ( <> diff --git a/apps/web/app/environments/[environmentId]/people/page.tsx b/apps/web/app/environments/[environmentId]/people/page.tsx index b7800835d5..434be75a6a 100644 --- a/apps/web/app/environments/[environmentId]/people/page.tsx +++ b/apps/web/app/environments/[environmentId]/people/page.tsx @@ -4,6 +4,7 @@ import EmptySpaceFiller from "@/components/shared/EmptySpaceFiller"; import { truncateMiddle } from "@/lib/utils"; import { TransformPersonOutput, getPeople } from "@formbricks/lib/services/person"; import { PersonAvatar } from "@formbricks/ui"; +import Link from "next/link"; const getAttributeValue = (person: TransformPersonOutput, attributeName: string) => person.attributes[attributeName]?.toString(); @@ -23,7 +24,7 @@ export default async function PeoplePage({ params }) {
Email
{people.map((person) => ( -
@@ -53,7 +54,7 @@ export default async function PeoplePage({ params }) {
{getAttributeValue(person, "email")}
- + ))}
)} From 82bcc0ae7e7ddcb1efd7b9a91a7b935dd4ab88e9 Mon Sep 17 00:00:00 2001 From: Meet Patel Date: Wed, 5 Jul 2023 20:41:48 +0530 Subject: [PATCH 09/41] space not allowed in questionid input --- .../surveys/[surveyId]/edit/UpdateQuestionId.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/UpdateQuestionId.tsx b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/UpdateQuestionId.tsx index a4fe4ab0ce..8f7d886f0f 100644 --- a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/UpdateQuestionId.tsx +++ b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/UpdateQuestionId.tsx @@ -30,13 +30,14 @@ export default function UpdateQuestionId({ localSurvey, question, questionIdx, u value={currentValue} onChange={(e) => setCurrentValue(e.target.value)} disabled={localSurvey.status !== "draft"} + className={currentValue.includes(" ") ? "focus:border-red-300 border-red-300" : ""} /> {localSurvey.status === "draft" && ( )} From 8585cb8c7c01efd02b9b59a2af762e34937d841e Mon Sep 17 00:00:00 2001 From: Shubham Palriwala Date: Thu, 6 Jul 2023 13:56:53 +0530 Subject: [PATCH 10/41] Add Timestamps to person model (#490) --- packages/lib/services/person.ts | 8 ++++++++ packages/lib/services/response.ts | 2 ++ packages/types/v1/people.ts | 2 ++ packages/types/v1/responses.ts | 2 ++ 4 files changed, 14 insertions(+) diff --git a/packages/lib/services/person.ts b/packages/lib/services/person.ts index 2f9599de71..5067cd5036 100644 --- a/packages/lib/services/person.ts +++ b/packages/lib/services/person.ts @@ -12,11 +12,15 @@ type TransformPersonInput = { name: string; }; }[]; + createdAt: Date; + updatedAt: Date; }; export type TransformPersonOutput = { id: string; attributes: Record; + createdAt: Date; + updatedAt: Date; }; export const transformPrismaPerson = (person: TransformPersonInput | null): TransformPersonOutput | null => { @@ -32,6 +36,8 @@ export const transformPrismaPerson = (person: TransformPersonInput | null): Tran return { id: person.id, attributes: attributes, + createdAt: person.createdAt, + updatedAt: person.updatedAt }; }; @@ -78,6 +84,8 @@ export const getPeople = cache(async (environmentId: string): Promise }, select: { id: true, + createdAt: true, + updatedAt: true, attributes: { select: { value: true, diff --git a/packages/lib/services/response.ts b/packages/lib/services/response.ts index 0184c27cc7..7b1381c385 100644 --- a/packages/lib/services/response.ts +++ b/packages/lib/services/response.ts @@ -19,6 +19,8 @@ const responseSelection = { person: { select: { id: true, + createdAt: true, + updatedAt: true, attributes: { select: { value: true, diff --git a/packages/types/v1/people.ts b/packages/types/v1/people.ts index b0a19febfd..c51169d51f 100644 --- a/packages/types/v1/people.ts +++ b/packages/types/v1/people.ts @@ -6,6 +6,8 @@ export type TPersonAttributes = z.infer; export const ZPerson = z.object({ id: z.string().cuid2(), attributes: ZPersonAttributes, + createdAt: z.date(), + updatedAt: z.date() }); export type TPerson = z.infer; diff --git a/packages/types/v1/responses.ts b/packages/types/v1/responses.ts index 748c62e9c9..b96beec200 100644 --- a/packages/types/v1/responses.ts +++ b/packages/types/v1/responses.ts @@ -36,6 +36,8 @@ const ZResponse = z.object({ .object({ id: z.string().cuid2(), attributes: z.record(z.union([z.string(), z.number()])), + createdAt: z.date(), + updatedAt: z.date(), }) .nullable(), personAttributes: ZResponsePersonAttributes, From 47b9867f28e78b29d07822d830ef03f1e5c60525 Mon Sep 17 00:00:00 2001 From: Matti Nannt Date: Thu, 6 Jul 2023 11:58:16 +0200 Subject: [PATCH 11/41] Fix autoComplete survey schema validation (#491) --- packages/lib/services/person.ts | 2 +- packages/types/v1/people.ts | 2 +- packages/types/v1/surveys.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/lib/services/person.ts b/packages/lib/services/person.ts index 5067cd5036..86ffe94a71 100644 --- a/packages/lib/services/person.ts +++ b/packages/lib/services/person.ts @@ -37,7 +37,7 @@ export const transformPrismaPerson = (person: TransformPersonInput | null): Tran id: person.id, attributes: attributes, createdAt: person.createdAt, - updatedAt: person.updatedAt + updatedAt: person.updatedAt, }; }; diff --git a/packages/types/v1/people.ts b/packages/types/v1/people.ts index c51169d51f..22df409bbf 100644 --- a/packages/types/v1/people.ts +++ b/packages/types/v1/people.ts @@ -7,7 +7,7 @@ export const ZPerson = z.object({ id: z.string().cuid2(), attributes: ZPersonAttributes, createdAt: z.date(), - updatedAt: z.date() + updatedAt: z.date(), }); export type TPerson = z.infer; diff --git a/packages/types/v1/surveys.ts b/packages/types/v1/surveys.ts index 4c118d9b0b..f683dc79ef 100644 --- a/packages/types/v1/surveys.ts +++ b/packages/types/v1/surveys.ts @@ -204,7 +204,7 @@ export const ZSurvey = z.object({ questions: ZSurveyQuestions, thankYouCard: ZSurveyThankYouCard, delay: z.number(), - autoComplete: z.union([z.boolean(), z.null()]), + autoComplete: z.union([z.number(), z.null()]), analytics: z.object({ numDisplays: z.number(), responseRate: z.number(), From 5ae6130e89ec55e3bebd7f72a1099f02da3a8e8f Mon Sep 17 00:00:00 2001 From: Dhruwang Date: Thu, 6 Jul 2023 16:17:30 +0530 Subject: [PATCH 12/41] added password validation in reset password form --- .../web/components/auth/ResetPasswordForm.tsx | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/apps/web/components/auth/ResetPasswordForm.tsx b/apps/web/components/auth/ResetPasswordForm.tsx index 946af2fd7b..b39da86c4b 100644 --- a/apps/web/components/auth/ResetPasswordForm.tsx +++ b/apps/web/components/auth/ResetPasswordForm.tsx @@ -1,7 +1,8 @@ "use client"; +import IsPasswordValid from "@/components/auth/IsPasswordValid"; import { resetPassword } from "@/lib/users/users"; -import { Button } from "@formbricks/ui"; +import { Button, PasswordInput } from "@formbricks/ui"; import { XCircleIcon } from "@heroicons/react/24/solid"; import { useRouter, useSearchParams } from "next/navigation"; import { useState } from "react"; @@ -10,6 +11,8 @@ export const ResetPasswordForm = () => { const searchParams = useSearchParams(); const router = useRouter(); const [error, setError] = useState(""); + const [password, setPassword] = useState(null); + const [isValid, setIsValid] = useState(false); const handleSubmit = async (e) => { e.preventDefault(); @@ -47,18 +50,22 @@ export const ResetPasswordForm = () => { New password
- setPassword(e.target.value)} + autoComplete="current-password" + placeholder="*******" required - className="focus:border-brand focus:ring-brand block w-full rounded-md border-slate-300 shadow-sm sm:text-sm" + className="focus:border-brand focus:ring-brand block w-full rounded-md shadow-sm sm:text-sm" /> +
-
From 8eae9fc84699c9be910beec8966a4f6a36e28174 Mon Sep 17 00:00:00 2001 From: Dhruwang Date: Thu, 6 Jul 2023 16:18:40 +0530 Subject: [PATCH 13/41] resolved empty password field issue --- apps/web/components/auth/IsPasswordValid.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/web/components/auth/IsPasswordValid.tsx b/apps/web/components/auth/IsPasswordValid.tsx index 7aedc38460..49fc81b5a6 100644 --- a/apps/web/components/auth/IsPasswordValid.tsx +++ b/apps/web/components/auth/IsPasswordValid.tsx @@ -28,7 +28,7 @@ export default function IsPasswordValid({ useEffect(() => { let newValidations = [...DEFAULT_VALIDATIONS]; - if (password) { + if (password !== null) { newValidations = checkValidation(newValidations, 0, PASSWORD_REGEX.UPPER_AND_LOWER.test(password)); newValidations = checkValidation(newValidations, 1, password.length >= 8); newValidations = checkValidation(newValidations, 2, PASSWORD_REGEX.NUMBER.test(password)); From 08fe6b0ad8d3a2152d6b8cc3f53e72c6631b8312 Mon Sep 17 00:00:00 2001 From: Dhruwang Date: Thu, 6 Jul 2023 16:23:08 +0530 Subject: [PATCH 14/41] changed id name to previous one --- apps/web/components/auth/ResetPasswordForm.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/web/components/auth/ResetPasswordForm.tsx b/apps/web/components/auth/ResetPasswordForm.tsx index b39da86c4b..e1eda665ca 100644 --- a/apps/web/components/auth/ResetPasswordForm.tsx +++ b/apps/web/components/auth/ResetPasswordForm.tsx @@ -51,8 +51,8 @@ export const ResetPasswordForm = () => {
setPassword(e.target.value)} autoComplete="current-password" From 8283a7d2ed8f58bb99688a9da01ea3419b1234fa Mon Sep 17 00:00:00 2001 From: Dhruwang Date: Thu, 6 Jul 2023 17:08:40 +0530 Subject: [PATCH 15/41] restored a css class --- apps/web/components/auth/ResetPasswordForm.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/web/components/auth/ResetPasswordForm.tsx b/apps/web/components/auth/ResetPasswordForm.tsx index e1eda665ca..97d608a561 100644 --- a/apps/web/components/auth/ResetPasswordForm.tsx +++ b/apps/web/components/auth/ResetPasswordForm.tsx @@ -58,7 +58,7 @@ export const ResetPasswordForm = () => { autoComplete="current-password" placeholder="*******" required - className="focus:border-brand focus:ring-brand block w-full rounded-md shadow-sm sm:text-sm" + className="focus:border-brand focus:ring-brand block w-full rounded-md shadow-sm border-slate-300 sm:text-sm" />
From 896e91a38b53b528fe7a0a5eea80b9776d3d10c4 Mon Sep 17 00:00:00 2001 From: Matti Nannt Date: Thu, 6 Jul 2023 14:36:39 +0200 Subject: [PATCH 16/41] add product information to api/v1/me endpoint (#494) --- apps/web/app/api/v1/me/route.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/apps/web/app/api/v1/me/route.ts b/apps/web/app/api/v1/me/route.ts index 74ecb9d7cb..c9d5163878 100644 --- a/apps/web/app/api/v1/me/route.ts +++ b/apps/web/app/api/v1/me/route.ts @@ -12,7 +12,21 @@ export async function GET() { hashedKey: hashApiKey(apiKey), }, select: { - environment: true, + environment: { + select: { + id: true, + createdAt: true, + updatedAt: true, + type: true, + product: { + select: { + id: true, + name: true, + }, + }, + widgetSetupCompleted: true, + }, + }, }, }); if (!apiKeyData) { From 9e9db7103efb390f5a717328db5300bfd0645f64 Mon Sep 17 00:00:00 2001 From: Bhaskar Singh Date: Thu, 6 Jul 2023 19:17:33 +0530 Subject: [PATCH 17/41] Add Weekly Summary Feature (Beta) (#431) * Added Notification API * Added Email functionality to the weekly notification * Added no live survey email notification * Activating weeklySummary notification alertSwitch * Adding check to include only surveys which have weeklySummary enabled * Updated the condition for weekSummary notification check * update UI * Update to reduce number of database calls * Updated the email subject when no survey in weeklysummary * applied pnpm format * update notification settings with new types and fix functionality * loop through all products to send weekly summary email, colocate files * fix build errors * add more types * add vercel.json for cron configuration * remove console.logs, limit responses to 5 per survey * update email subject * improve how responses are displayed in summary email * update email layout * add cron to github action instead of vercel * add github action * add beta flag --------- Co-authored-by: Johannes Co-authored-by: Matthias Nannt --- .env.example | 5 +- .github/workflows/cron-weeklySummary.yml | 23 ++ apps/web/app/api/cron/weekly_summary/email.ts | 228 ++++++++++++++++++ apps/web/app/api/cron/weekly_summary/route.ts | 187 ++++++++++++++ apps/web/app/api/cron/weekly_summary/types.ts | 81 +++++++ .../[environmentId]/settings/SettingsCard.tsx | 12 +- .../settings/notifications/AlertSwitch.tsx | 39 --- .../settings/notifications/EditAlerts.tsx | 110 ++++----- .../notifications/EditWeeklySummary.tsx | 56 +++++ .../notifications/NotificationSwitch.tsx | 45 ++++ .../settings/notifications/page.tsx | 40 ++- .../surveys/[surveyId]/responses/page.tsx | 3 + apps/web/lib/email.ts | 2 +- packages/lib/constants.ts | 1 + packages/types/surveys.ts | 12 + packages/types/users.ts | 8 +- packages/types/v1/users.ts | 10 +- turbo.json | 1 + 18 files changed, 735 insertions(+), 128 deletions(-) create mode 100644 .github/workflows/cron-weeklySummary.yml create mode 100644 apps/web/app/api/cron/weekly_summary/email.ts create mode 100644 apps/web/app/api/cron/weekly_summary/route.ts create mode 100644 apps/web/app/api/cron/weekly_summary/types.ts delete mode 100644 apps/web/app/environments/[environmentId]/settings/notifications/AlertSwitch.tsx create mode 100644 apps/web/app/environments/[environmentId]/settings/notifications/EditWeeklySummary.tsx create mode 100644 apps/web/app/environments/[environmentId]/settings/notifications/NotificationSwitch.tsx diff --git a/.env.example b/.env.example index 3a1f166417..166a783e5b 100644 --- a/.env.example +++ b/.env.example @@ -108,4 +108,7 @@ STRIPE_WEBHOOK_SECRET= # Configure Formbricks usage within Formbricks NEXT_PUBLIC_FORMBRICKS_API_HOST= NEXT_PUBLIC_FORMBRICKS_ENVIRONMENT_ID= -NEXT_PUBLIC_FORMBRICKS_ONBOARDING_SURVEY_ID= \ No newline at end of file +NEXT_PUBLIC_FORMBRICKS_ONBOARDING_SURVEY_ID= + +# Cron Secret +CRON_SECRET= \ No newline at end of file diff --git a/.github/workflows/cron-weeklySummary.yml b/.github/workflows/cron-weeklySummary.yml new file mode 100644 index 0000000000..b17c5bc113 --- /dev/null +++ b/.github/workflows/cron-weeklySummary.yml @@ -0,0 +1,23 @@ +name: Cron - weeklySummary + +on: + # "Scheduled workflows run on the latest commit on the default or base branch." + # β€” https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows#schedule + schedule: + # Runs β€œAt 08:00 on Monday.” (see https://crontab.guru) + - cron: "0 8 * * 1" +jobs: + cron-weeklySummary: + env: + APP_URL: ${{ secrets.APP_URL }} + CRON_API_KEY: ${{ secrets.CRON_SECRET }} + runs-on: ubuntu-latest + steps: + - name: cURL request + if: ${{ env.APP_URL && env.CRON_SECRET }} + run: | + curl ${{ secrets.APP_URL }}/api/cron/weekly_summary \ + -X POST \ + -H 'content-type: application/json' \ + -H 'authorization: ${{ secrets.CRON_SECRET }}' \ + --fail diff --git a/apps/web/app/api/cron/weekly_summary/email.ts b/apps/web/app/api/cron/weekly_summary/email.ts new file mode 100644 index 0000000000..5e42a6083a --- /dev/null +++ b/apps/web/app/api/cron/weekly_summary/email.ts @@ -0,0 +1,228 @@ +import { sendEmail } from "@/lib/email"; +import { withEmailTemplate } from "@/lib/email-template"; +import { WEBAPP_URL } from "@formbricks/lib/constants"; +import { Insights, NotificationResponse, Survey, SurveyResponse } from "./types"; + +const getEmailSubject = (productName: string) => { + return `${productName} User Insights - Last Week by Formbricks`; +}; + +const notificationHeader = ( + productName: string, + startDate: string, + endDate: string, + startYear: number, + endYear: number +) => + ` +
+
+

Hey πŸ‘‹

+
+
+

Weekly Report for ${productName}

+ ${getNotificationHeaderimePeriod(startDate, endDate, startYear, endYear)} +
+
+
+
+ `; + +const getNotificationHeaderimePeriod = ( + startDate: string, + endDate: string, + startYear: number, + endYear: number +) => { + if (startYear == endYear) { + return `

${startDate} - ${endDate} ${endYear}

`; + } else { + return `

${startDate} ${startYear} - ${endDate} ${endYear}

`; + } +}; + +const notificationInsight = (insights: Insights) => + `
+ + + + + + + + +
+

Surveys

+

${insights.numLiveSurvey}

+
+

Displays

+

${insights.totalDisplays}

+
+

Responses

+

${insights.totalResponses}

+
+

Completed

+

${insights.totalCompletedResponses}

+
+

Completion %

+

${insights.completionRate.toFixed(2)}%

+
+
+`; + +function convertSurveyStatus(status) { + const statusMap = { + inProgress: "Live", + paused: "Paused", + completed: "Completed", + }; + + return statusMap[status] || status; +} + +const getButtonLabel = (count) => { + if (count === 1) { + return "View Response"; + } + return `View ${count > 2 ? count - 1 : "1"} more Response${count > 2 ? "s" : ""}`; +}; + +const notificationLiveSurveys = (surveys: Survey[], environmentId: string) => { + if (!surveys.length) return ` `; + + return surveys + .filter((survey) => survey.responses.length > 0) + .map((survey) => { + const displayStatus = convertSurveyStatus(survey.status); + const isLive = displayStatus === "Live"; + + return ` +
+ +

${survey.name}

+
+ + ${displayStatus} + + ${createSurveyFields(survey.responses)} + ${ + survey.responsesCount >= 1 + ? ` + ${getButtonLabel(survey.responsesCount)} + ` + : "" + } +

`; + }) + .join(""); +}; + +const createSurveyFields = (surveryResponses: SurveyResponse[]) => { + let surveyFields = ""; + const responseCount = surveryResponses.length; + + surveryResponses.forEach((response, index) => { + if (!response) { + return; + } + + for (const [headline, answer] of Object.entries(response)) { + surveyFields += ` +
+

${headline}

+

${answer}

+
+ `; + } + + // Add
only when there are 2 or more responses to display, and it's not the last response + if (responseCount >= 2 && index < responseCount - 1) { + surveyFields += "
"; + } + }); + + return surveyFields; +}; + +const notificationFooter = () => { + return ` +

All the best,

+

The Formbricks Team

+

This is a Beta feature. If you experience any issues, please let us know by replying to this email πŸ™

+ `; +}; + +const createReminderNotificationBody = (notificationData: NotificationResponse, webUrl) => { + return ` +

We’d love to send you a Weekly Summary, but currently there are no surveys running for ${notificationData.productName}.

+ +

Don’t let a week pass without learning about your users:

+ + Setup a new survey + +
+

Need help finding the right survey for your product? Pick a 15-minute slot in our CEOs calendar or reply to this email :)

+ + +

All the best,

+

The Formbricks Team

+ +

This is a Beta feature. If you experience any issues, please let us know by replying to this email πŸ™

+ `; +}; + +export const sendWeeklySummaryNotificationEmail = async ( + email: string, + notificationData: NotificationResponse +) => { + const monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; + + const startDate = `${notificationData.lastWeekDate.getDate()} ${ + monthNames[notificationData.lastWeekDate.getMonth()] + }`; + const endDate = `${notificationData.currentDate.getDate()} ${ + monthNames[notificationData.currentDate.getMonth()] + }`; + const startYear = notificationData.lastWeekDate.getFullYear(); + const endYear = notificationData.currentDate.getFullYear(); + await sendEmail({ + to: email, + subject: getEmailSubject(notificationData.productName), + html: withEmailTemplate(` + ${notificationHeader(notificationData.productName, startDate, endDate, startYear, endYear)} + ${notificationInsight(notificationData.insights)} + ${notificationLiveSurveys(notificationData.surveys, notificationData.environmentId)} + ${notificationFooter()} + `), + }); +}; + +export const sendNoLiveSurveyNotificationEmail = async ( + email: string, + notificationData: NotificationResponse +) => { + const monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; + + const startDate = `${notificationData.lastWeekDate.getDate()} ${ + monthNames[notificationData.lastWeekDate.getMonth()] + }`; + const endDate = `${notificationData.currentDate.getDate()} ${ + monthNames[notificationData.currentDate.getMonth()] + }`; + const startYear = notificationData.lastWeekDate.getFullYear(); + const endYear = notificationData.currentDate.getFullYear(); + await sendEmail({ + to: email, + subject: getEmailSubject(notificationData.productName), + html: withEmailTemplate(` + ${notificationHeader(notificationData.productName, startDate, endDate, startYear, endYear)} + ${createReminderNotificationBody(notificationData, WEBAPP_URL)} + `), + }); +}; diff --git a/apps/web/app/api/cron/weekly_summary/route.ts b/apps/web/app/api/cron/weekly_summary/route.ts new file mode 100644 index 0000000000..0fce4f448f --- /dev/null +++ b/apps/web/app/api/cron/weekly_summary/route.ts @@ -0,0 +1,187 @@ +import { responses } from "@/lib/api/response"; +import { prisma } from "@formbricks/database"; +import { CRON_SECRET } from "@formbricks/lib/constants"; +import { headers } from "next/headers"; +import { NextResponse } from "next/server"; +import { sendNoLiveSurveyNotificationEmail, sendWeeklySummaryNotificationEmail } from "./email"; +import { EnvironmentData, NotificationResponse, ProductData, Survey, SurveyResponse } from "./types"; + +export async function POST(): Promise { + // check authentication with x-api-key header and CRON_SECRET env variable + if (headers().get("x-api-key") !== CRON_SECRET) { + return responses.notAuthenticatedResponse(); + } + + // list of email sending promises to wait for + const emailSendingPromises: Promise[] = []; + + const products = await getProducts(); + + // iterate through the products and send weekly summary email to each team member + for await (const product of products) { + // check if there are team members that have weekly summary notification enabled + const teamMembers = product.team.memberships; + const teamMembersWithNotificationEnabled = teamMembers.filter((member) => { + return ( + member.user.notificationSettings?.weeklySummary && + member.user.notificationSettings.weeklySummary[product.id] + ); + }); + // if there are no team members with weekly summary notification enabled, skip to the next product (do not send email) + if (teamMembersWithNotificationEnabled.length == 0) { + continue; + } + // calculate insights for the product + const notificationResponse = getNotificationResponse(product.environments[0], product.name); + + // if there were no responses in the last 7 days, send a different email + if (notificationResponse.insights.totalCompletedResponses == 0) { + for (const teamMember of teamMembersWithNotificationEnabled) { + emailSendingPromises.push( + sendNoLiveSurveyNotificationEmail(teamMember.user.email, notificationResponse) + ); + } + continue; + } + + // send weekly summary email + for (const teamMember of teamMembersWithNotificationEnabled) { + emailSendingPromises.push( + sendWeeklySummaryNotificationEmail(teamMember.user.email, notificationResponse) + ); + } + } + // wait for all emails to be sent + await Promise.all(emailSendingPromises); + return responses.successResponse({}, true); +} + +const getNotificationResponse = (environment: EnvironmentData, productName: string): NotificationResponse => { + const insights = { + totalCompletedResponses: 0, + totalDisplays: 0, + totalResponses: 0, + completionRate: 0, + numLiveSurvey: 0, + }; + + const surveys: Survey[] = []; + + // iterate through the surveys and calculate the overall insights + for (const survey of environment.surveys) { + const surveyData: Survey = { + id: survey.id, + name: survey.name, + status: survey.status, + responsesCount: survey.responses.length, + responses: [], + }; + // iterate through the responses and calculate the survey insights + for (const response of survey.responses) { + // only take the first 3 responses + if (surveyData.responses.length >= 1) { + break; + } + const surveyResponse: SurveyResponse = {}; + for (const question of survey.questions) { + const headline = question.headline; + const answer = response.data[question.id]?.toString() || null; + if (answer === null || answer === "" || answer?.length === 0) { + continue; + } + surveyResponse[headline] = answer; + } + surveyData.responses.push(surveyResponse); + } + surveys.push(surveyData); + // calculate the overall insights + if (survey.status == "inProgress") { + insights.numLiveSurvey += 1; + } + insights.totalCompletedResponses += survey.responses.filter((r) => r.finished).length; + insights.totalDisplays += survey.displays.length; + insights.totalResponses += survey.responses.length; + insights.completionRate = Math.round((insights.totalCompletedResponses / insights.totalDisplays) * 100); + } + // build the notification response needed for the emails + const lastWeekDate = new Date(); + lastWeekDate.setDate(lastWeekDate.getDate() - 7); + return { + environmentId: environment.id, + currentDate: new Date(), + lastWeekDate, + productName: productName, + surveys, + insights, + }; +}; + +const getProducts = async (): Promise => { + // gets all products together with team members, surveys, responses, and displays for the last 7 days + const sevenDaysAgo = new Date(); + sevenDaysAgo.setDate(sevenDaysAgo.getDate() - 7); + + return await prisma.product.findMany({ + select: { + id: true, + name: true, + environments: { + where: { + type: "production", + }, + select: { + id: true, + surveys: { + where: { + status: { + not: "draft", + }, + }, + select: { + id: true, + name: true, + questions: true, + status: true, + responses: { + where: { + createdAt: { + gte: sevenDaysAgo, + }, + }, + select: { + id: true, + createdAt: true, + updatedAt: true, + finished: true, + data: true, + }, + orderBy: { + createdAt: "desc", + }, + }, + displays: { + select: { + status: true, + }, + }, + }, + }, + }, + }, + team: { + select: { + memberships: { + select: { + user: { + select: { + email: true, + notificationSettings: true, + }, + }, + }, + }, + }, + }, + }, + }); +}; diff --git a/apps/web/app/api/cron/weekly_summary/types.ts b/apps/web/app/api/cron/weekly_summary/types.ts new file mode 100644 index 0000000000..0b3a6b0995 --- /dev/null +++ b/apps/web/app/api/cron/weekly_summary/types.ts @@ -0,0 +1,81 @@ +import { TResponseData } from "@formbricks/types/v1/responses"; +import { TSurveyQuestion } from "@formbricks/types/v1/surveys"; +import { TUserNotificationSettings } from "@formbricks/types/v1/users"; +import { DisplayStatus, SurveyStatus } from "@prisma/client"; + +export interface Insights { + totalCompletedResponses: number; + totalDisplays: number; + totalResponses: number; + completionRate: number; + numLiveSurvey: number; +} + +export interface SurveyResponse { + [headline: string]: string | number | boolean | Date | string[]; +} + +export interface Survey { + id: string; + name: string; + responses: SurveyResponse[]; + responsesCount: number; + status: string; +} + +export interface NotificationResponse { + environmentId: string; + currentDate: Date; + lastWeekDate: Date; + productName: string; + surveys: Survey[]; + insights: Insights; +} + +// Prisma Types + +type ResponseData = { + id: string; + createdAt: Date; + updatedAt: Date; + finished: boolean; + data: TResponseData; +}; + +type DisplayData = { + status: DisplayStatus; +}; + +type SurveyData = { + id: string; + name: string; + questions: TSurveyQuestion[]; + status: SurveyStatus; + responses: ResponseData[]; + displays: DisplayData[]; +}; + +export type EnvironmentData = { + id: string; + surveys: SurveyData[]; +}; + +type UserData = { + email: string; + notificationSettings: TUserNotificationSettings; +}; + +type MembershipData = { + user: UserData; +}; + +type TeamData = { + memberships: MembershipData[]; +}; + +export type ProductData = { + id: string; + name: string; + environments: EnvironmentData[]; + team: TeamData; +}; diff --git a/apps/web/app/environments/[environmentId]/settings/SettingsCard.tsx b/apps/web/app/environments/[environmentId]/settings/SettingsCard.tsx index c7c7c4cf4a..a75a184b20 100644 --- a/apps/web/app/environments/[environmentId]/settings/SettingsCard.tsx +++ b/apps/web/app/environments/[environmentId]/settings/SettingsCard.tsx @@ -8,6 +8,7 @@ export default function SettingsCard({ soon = false, noPadding = false, dangerZone, + beta, }: { title: string; description: string; @@ -15,18 +16,19 @@ export default function SettingsCard({ soon?: boolean; noPadding?: boolean; dangerZone?: boolean; + beta?: boolean; }) { return (
-

+

{title}

- {soon && } +
+ {beta && } + {soon && } +

{description}

diff --git a/apps/web/app/environments/[environmentId]/settings/notifications/AlertSwitch.tsx b/apps/web/app/environments/[environmentId]/settings/notifications/AlertSwitch.tsx deleted file mode 100644 index 9e2ed25f1f..0000000000 --- a/apps/web/app/environments/[environmentId]/settings/notifications/AlertSwitch.tsx +++ /dev/null @@ -1,39 +0,0 @@ -"use client"; - -import { Switch } from "@formbricks/ui"; -import { useRouter } from "next/navigation"; -import toast from "react-hot-toast"; -import { updateNotificationSettings } from "./actions"; - -interface AlertSwitchProps { - surveyId: string; - userId: string; - notificationSettings: any; -} - -export function AlertSwitch({ surveyId, userId, notificationSettings }: AlertSwitchProps) { - const router = useRouter(); - - return ( - { - // update notificiation settings - const updatedNotificationSettings = { ...notificationSettings }; - updatedNotificationSettings[surveyId]["responseFinished"] = - !updatedNotificationSettings[surveyId]["responseFinished"]; - // update db - await updateNotificationSettings(userId, notificationSettings); - // show success message if toggled on, different message if toggled off - if (updatedNotificationSettings[surveyId]["responseFinished"]) { - toast.success(`Every new response is coming your way.`); - } else { - toast.success(`You won't receive notifications anymore.`); - } - router.refresh(); - }} - /> - ); -} diff --git a/apps/web/app/environments/[environmentId]/settings/notifications/EditAlerts.tsx b/apps/web/app/environments/[environmentId]/settings/notifications/EditAlerts.tsx index 6bfeae6048..16e2035121 100644 --- a/apps/web/app/environments/[environmentId]/settings/notifications/EditAlerts.tsx +++ b/apps/web/app/environments/[environmentId]/settings/notifications/EditAlerts.tsx @@ -1,32 +1,9 @@ -import { AlertSwitch } from "./AlertSwitch"; -import { Switch, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@formbricks/ui"; +import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@formbricks/ui"; import { QuestionMarkCircleIcon, UsersIcon } from "@heroicons/react/24/solid"; import Link from "next/link"; -import type { NotificationSettings } from "@formbricks/types/users"; +import { NotificationSwitch } from "./NotificationSwitch"; import { Membership, User } from "./types"; -const cleanNotificationSettings = (notificationSettings: NotificationSettings, memberships: Membership[]) => { - const newNotificationSettings = {}; - for (const membership of memberships) { - for (const product of membership.team.products) { - for (const environment of product.environments) { - for (const survey of environment.surveys) { - // check if the user has notification settings for this survey - if (notificationSettings[survey.id]) { - newNotificationSettings[survey.id] = notificationSettings[survey.id]; - } else { - newNotificationSettings[survey.id] = { - responseFinished: false, - weeklySummary: false, - }; - } - } - } - } - } - return newNotificationSettings; -}; - interface EditAlertsProps { memberships: Membership[]; user: User; @@ -34,8 +11,6 @@ interface EditAlertsProps { } export default function EditAlerts({ memberships, user, environmentId }: EditAlertsProps) { - user.notificationSettings = cleanNotificationSettings(user.notificationSettings, memberships); - return ( <> {memberships.map((membership) => ( @@ -47,9 +22,9 @@ export default function EditAlerts({ memberships, user, environmentId }: EditAle

{membership.team.name}

-
-
Product
+
Survey
+
Product
@@ -60,48 +35,45 @@ export default function EditAlerts({ memberships, user, environmentId }: EditAle Sends complete responses, no partials. - - - - -
Weekly Summary
-
- Coming soon πŸš€ -
-
-
- {membership.team.products.map((product) => ( -
- {product.environments.map((environment) => ( -
- {environment.surveys.map((survey) => ( -
-
- {product?.name} + {membership.team.products.some((product) => + product.environments.some((environment) => environment.surveys.length > 0) + ) ? ( +
+ {membership.team.products.map((product) => ( +
+ {product.environments.map((environment) => ( +
+ {environment.surveys.map((survey) => ( +
+
+

{survey.name}

+
+
+ {product?.name} +
+
+ +
-
-

{survey.name}

-
-
- -
-
- -
-
- ))} -
- ))} -
- ))} -
+ ))} +
+ ))} +
+ ))} +
+ ) : ( +
+

No surveys found.

+
+ )}

Want to loop in team mates?{" "} diff --git a/apps/web/app/environments/[environmentId]/settings/notifications/EditWeeklySummary.tsx b/apps/web/app/environments/[environmentId]/settings/notifications/EditWeeklySummary.tsx new file mode 100644 index 0000000000..eb3be2ab06 --- /dev/null +++ b/apps/web/app/environments/[environmentId]/settings/notifications/EditWeeklySummary.tsx @@ -0,0 +1,56 @@ +import { UsersIcon } from "@heroicons/react/24/solid"; +import Link from "next/link"; +import { NotificationSwitch } from "./NotificationSwitch"; +import { Membership, User } from "./types"; + +interface EditAlertsProps { + memberships: Membership[]; + user: User; + environmentId: string; +} + +export default function EditWeeklySummary({ memberships, user, environmentId }: EditAlertsProps) { + return ( + <> + {memberships.map((membership) => ( + <> +

+
+ +
+

{membership.team.name}

+
+
+
+
Product
+
Weekly Summary
+
+
+ {membership.team.products.map((product) => ( +
+
{product?.name}
+
+ +
+
+ ))} +
+

+ Want to loop in team mates?{" "} + + Invite them. + +

+
+ + ))} + + ); +} diff --git a/apps/web/app/environments/[environmentId]/settings/notifications/NotificationSwitch.tsx b/apps/web/app/environments/[environmentId]/settings/notifications/NotificationSwitch.tsx new file mode 100644 index 0000000000..b33a9f7618 --- /dev/null +++ b/apps/web/app/environments/[environmentId]/settings/notifications/NotificationSwitch.tsx @@ -0,0 +1,45 @@ +"use client"; + +import { Switch } from "@formbricks/ui"; +import { useRouter } from "next/navigation"; +import toast from "react-hot-toast"; +import { updateNotificationSettings } from "./actions"; +import { NotificationSettings } from "@formbricks/types/users"; +import { useState } from "react"; + +interface NotificationSwitchProps { + surveyOrProductId: string; + userId: string; + notificationSettings: NotificationSettings; + notificationType: "alert" | "weeklySummary"; +} + +export function NotificationSwitch({ + surveyOrProductId, + userId, + notificationSettings, + notificationType, +}: NotificationSwitchProps) { + const router = useRouter(); + const [isLoading, setIsLoading] = useState(false); + + return ( + { + setIsLoading(true); + // update notificiation settings + const updatedNotificationSettings = { ...notificationSettings }; + updatedNotificationSettings[notificationType][surveyOrProductId] = + !updatedNotificationSettings[notificationType][surveyOrProductId]; + await updateNotificationSettings(userId, notificationSettings); + setIsLoading(false); + toast.success(`Notification settings updated`, { id: "notification-switch" }); + router.refresh(); + }} + /> + ); +} diff --git a/apps/web/app/environments/[environmentId]/settings/notifications/page.tsx b/apps/web/app/environments/[environmentId]/settings/notifications/page.tsx index 306a6afed3..9cf2499322 100644 --- a/apps/web/app/environments/[environmentId]/settings/notifications/page.tsx +++ b/apps/web/app/environments/[environmentId]/settings/notifications/page.tsx @@ -1,9 +1,11 @@ +import { authOptions } from "@/app/api/auth/[...nextauth]/authOptions"; import SettingsCard from "@/app/environments/[environmentId]/settings/SettingsCard"; +import { prisma } from "@formbricks/database"; +import { NotificationSettings } from "@formbricks/types/users"; +import { getServerSession } from "next-auth"; import SettingsTitle from "../SettingsTitle"; import EditAlerts from "./EditAlerts"; -import { prisma } from "@formbricks/database"; -import { getServerSession } from "next-auth"; -import { authOptions } from "@/app/api/auth/[...nextauth]/authOptions"; +import EditWeeklySummary from "./EditWeeklySummary"; import type { Membership, User } from "./types"; async function getUser(userId: string | undefined): Promise { @@ -29,6 +31,27 @@ async function getUser(userId: string | undefined): Promise { return user; } +function cleanNotificationSettings(notificationSettings: NotificationSettings, memberships: Membership[]) { + const newNotificationSettings = { alert: {}, weeklySummary: {} }; + for (const membership of memberships) { + for (const product of membership.team.products) { + // set default values for weekly summary + newNotificationSettings.weeklySummary[product.id] = + (notificationSettings.weeklySummary && notificationSettings.weeklySummary[product.id]) || false; + // set default values for alerts + for (const environment of product.environments) { + for (const survey of environment.surveys) { + newNotificationSettings.alert[survey.id] = + notificationSettings[survey.id]?.responseFinished || + (notificationSettings.alert && notificationSettings.alert[survey.id]) || + false; // check for legacy notification settings w/o "alerts" key + } + } + } + } + return newNotificationSettings; +} + async function getMemberships(userId: string): Promise { const memberships = await prisma.membership.findMany({ where: { @@ -72,13 +95,22 @@ export default async function ProfileSettingsPage({ params }) { throw new Error("Unauthorized"); } const [user, memberships] = await Promise.all([getUser(session.user.id), getMemberships(session.user.id)]); + user.notificationSettings = cleanNotificationSettings(user.notificationSettings, memberships); return (
- + + + +
); } diff --git a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/responses/page.tsx b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/responses/page.tsx index e02be9caab..a19c77a084 100644 --- a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/responses/page.tsx +++ b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/responses/page.tsx @@ -9,6 +9,9 @@ import { authOptions } from "@/app/api/auth/[...nextauth]/authOptions"; import { getAnalysisData } from "@/app/environments/[environmentId]/surveys/[surveyId]/summary/data"; export default async function ResponsesPage({ params }) { + const environmentId = params.environmentId; + + console.log(environmentId); const session = await getServerSession(authOptions); if (!session) { throw new Error("Unauthorized"); diff --git a/apps/web/lib/email.ts b/apps/web/lib/email.ts index b7598c5079..a08164e7d9 100644 --- a/apps/web/lib/email.ts +++ b/apps/web/lib/email.ts @@ -16,7 +16,7 @@ interface sendEmailData { html: string; } -const sendEmail = async (emailData: sendEmailData) => { +export const sendEmail = async (emailData: sendEmailData) => { let transporter = nodemailer.createTransport({ host: process.env.SMTP_HOST, port: process.env.SMTP_PORT, diff --git a/packages/lib/constants.ts b/packages/lib/constants.ts index 9d0c39072e..9b2efee6a7 100644 --- a/packages/lib/constants.ts +++ b/packages/lib/constants.ts @@ -16,3 +16,4 @@ export const WEBAPP_URL = // Other export const INTERNAL_SECRET = process.env.INTERNAL_SECRET; +export const CRON_SECRET = process.env.CRON_SECRET; diff --git a/packages/types/surveys.ts b/packages/types/surveys.ts index ef83b7e3ab..c40c30a5a9 100644 --- a/packages/types/surveys.ts +++ b/packages/types/surveys.ts @@ -33,3 +33,15 @@ export interface AttributeFilter { condition: string; value: string; } + +export interface SurveyNotificationData { + id: string; + numDisplays: number; + numDisplaysResponded: number; + responseLenght: number; + responseCompletedLength: number; + latestResponse: any; + questions: Question[]; + status: "draft" | "inProgress" | "archived" | "paused" | "completed"; + name: String; +} diff --git a/packages/types/users.ts b/packages/types/users.ts index 54a0215ead..18463fe328 100644 --- a/packages/types/users.ts +++ b/packages/types/users.ts @@ -1,6 +1,8 @@ export interface NotificationSettings { - [surveyId: string]: { - responseFinished: boolean; - weeklySummary: boolean; + alert: { + [surveyId: string]: boolean; + }; + weeklySummary: { + [productId: string]: boolean; }; } diff --git a/packages/types/v1/users.ts b/packages/types/v1/users.ts index 6dfa894ab5..38c9bc57c7 100644 --- a/packages/types/v1/users.ts +++ b/packages/types/v1/users.ts @@ -1,10 +1,8 @@ import { z } from "zod"; -export const ZUserNotificationSettings = z.record( - z.object({ - responseFinished: z.boolean(), - weeklySummary: z.boolean(), - }) -); +export const ZUserNotificationSettings = z.object({ + alert: z.record(z.boolean()), + weeklySummary: z.record(z.boolean()), +}); export type TUserNotificationSettings = z.infer; diff --git a/turbo.json b/turbo.json index 1f006505fc..be6605b7a0 100644 --- a/turbo.json +++ b/turbo.json @@ -5,6 +5,7 @@ "dependsOn": ["^build"], "outputs": ["dist/**", ".next/**"], "env": [ + "CRON_SECRET", "GITHUB_ID", "GITHUB_SECRET", "GOOGLE_CLIENT_ID", From 4cc085cecfe2481a482ddc40456ab41fe240c6b7 Mon Sep 17 00:00:00 2001 From: Meet Patel Date: Thu, 6 Jul 2023 21:46:31 +0530 Subject: [PATCH 18/41] questionid can not be empty --- .../surveys/[surveyId]/edit/UpdateQuestionId.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/UpdateQuestionId.tsx b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/UpdateQuestionId.tsx index 8f7d886f0f..2ff269be8c 100644 --- a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/UpdateQuestionId.tsx +++ b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/UpdateQuestionId.tsx @@ -20,6 +20,8 @@ export default function UpdateQuestionId({ localSurvey, question, questionIdx, u toast.success("Question ID updated."); }; + const isInputInvalid = currentValue.trim() === "" || currentValue.includes(" "); + return (
@@ -30,14 +32,14 @@ export default function UpdateQuestionId({ localSurvey, question, questionIdx, u value={currentValue} onChange={(e) => setCurrentValue(e.target.value)} disabled={localSurvey.status !== "draft"} - className={currentValue.includes(" ") ? "focus:border-red-300 border-red-300" : ""} + className={isInputInvalid ? "focus:border-red-300 border-red-300" : ""} /> {localSurvey.status === "draft" && ( )} From 81ea563dbc83b25ffa31aaf8c6156de7d205221b Mon Sep 17 00:00:00 2001 From: Johannes Date: Fri, 7 Jul 2023 12:14:57 +0200 Subject: [PATCH 19/41] update lp, add blog post --- apps/formbricks-com/components/home/Hero.tsx | 26 ++-- .../components/shared/Pricing.tsx | 7 +- .../images/clients/stack-ocean-dark.png | Bin 19022 -> 0 bytes .../images/clients/stack-ocean-light.png | Bin 17435 -> 0 bytes ...-sponsored-by-github-accelerator-2023.webp | Bin 0 -> 39060 bytes .../github-accelerator-2022-teams.png | Bin 0 -> 254256 bytes .../github-accelerator-selection-mail.png | Bin 0 -> 11995 bytes .../github-accelerator-experience/index.mdx | 122 ++++++++++++++++++ ...-experience-github-acc-demo-screenshot.png | Bin 0 -> 115981 bytes package.json | 2 +- 10 files changed, 138 insertions(+), 19 deletions(-) delete mode 100644 apps/formbricks-com/images/clients/stack-ocean-dark.png delete mode 100644 apps/formbricks-com/images/clients/stack-ocean-light.png create mode 100644 apps/formbricks-com/pages/blog/github-accelerator-experience/formbricks-sponsored-by-github-accelerator-2023.webp create mode 100644 apps/formbricks-com/pages/blog/github-accelerator-experience/github-accelerator-2022-teams.png create mode 100644 apps/formbricks-com/pages/blog/github-accelerator-experience/github-accelerator-selection-mail.png create mode 100644 apps/formbricks-com/pages/blog/github-accelerator-experience/index.mdx create mode 100644 apps/formbricks-com/pages/blog/github-accelerator-experience/our-experience-github-acc-demo-screenshot.png diff --git a/apps/formbricks-com/components/home/Hero.tsx b/apps/formbricks-com/components/home/Hero.tsx index de1eac593d..45c5a2778b 100644 --- a/apps/formbricks-com/components/home/Hero.tsx +++ b/apps/formbricks-com/components/home/Hero.tsx @@ -13,14 +13,22 @@ import { usePlausible } from "next-plausible"; import Image from "next/image"; import { useRouter } from "next/router"; import HeroAnimation from "./HeroAnimation"; +import { ChevronRightIcon } from "@heroicons/react/24/outline"; export const Hero: React.FC = ({}) => { const plausible = usePlausible(); const router = useRouter(); return (
-
-

+
+ + We're Open-Source | Star us on GitHub{" "} + + +

Create Products People Remember

@@ -29,7 +37,7 @@ export const Hero: React.FC = ({}) => {
Continuously gather deep user insights,{" "} - all privacy-first. + privacy-first.

@@ -80,18 +88,6 @@ export const Hero: React.FC = ({}) => { className="hidden pb-1 hover:opacity-100 dark:block md:opacity-50" width={200} /> - StackOcean Logo - StakcOcean Logo

diff --git a/apps/formbricks-com/components/shared/Pricing.tsx b/apps/formbricks-com/components/shared/Pricing.tsx index ba0e91e2bb..db8869bfdd 100644 --- a/apps/formbricks-com/components/shared/Pricing.tsx +++ b/apps/formbricks-com/components/shared/Pricing.tsx @@ -37,6 +37,7 @@ const tiers = [ features: [ "Unlimited surveys", "Unlimited team members", + "Remove branding", "Granular targeting", "In-product surveys", "Link surveys", @@ -57,8 +58,8 @@ const tiers = [ discounted: false, highlight: false, description: "All features included. Unlimited usage.", - features: ["All features of Free plan", "Unlimited responses", "Remove branding"], - ctaName: "Sign up now", + features: ["Unlimited responses per survey"], + ctaName: "Start for free", plausibleGoal: "Pricing_CTA_ProPlan", }, ]; @@ -145,7 +146,7 @@ export default function Pricing() { {tier.ctaName} - {tier.name === "Free" && ( + {tier.name !== "Self-hosting" && (

No Creditcard required.

)}
diff --git a/apps/formbricks-com/images/clients/stack-ocean-dark.png b/apps/formbricks-com/images/clients/stack-ocean-dark.png deleted file mode 100644 index aa66e7b6334ae8dda63915fe13a9d8429909e417..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19022 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 #ETdZeK2ay#=9fpvc%;NUU;nr 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∓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

)q1%J zV4l@oNkcDl$emP1P?cNH%Uyo&8P59=CvQ{%4KUQ*rAT|DVUk974$T3L9H8u*-HzGZ zZ0>B5p+z|sO0jdO!CNR$STZQWVFFM!p3HG}9YgbBu5W!J7CZni1FVRCKM6UKN2V4U z8=`e>=R$|NhFXnJ*ZdEUB3~G*-VBjN-I+zm$Nnw1=h4_c@7vaEa%9-gn7MGxh+?_P z+!eYP?)Wu3IURmabaHYRWJ^Mvt4T^(tsk}y&*cv^d<0oTMA3nbH~yFbi{U)-!2n#S zdBO71X7t;!{dcPRQPInVa0X5rY#$m4zBJ7SH~6k#rxVo+cU$>@2!zh?IK7Jl75JGX ztrMdIoxUBs<9X}L_KGhUMIM$HnmFc;w2eA(?xJqkeQV=N!p$*1o)F(7v(IzQ3JSL9 zK9CJ(g-Sv*Yal7A$;UtCJ5EA^Jp0huBUYJ$poiXziW_*u{5EQjozhfuN-CoPlF+x< zYb{lQXMN({X9**AvYy=`4co95cI7yd7~BEj&|v4nx^IxN`zX5%d>!%Fa7d_dB0YtG z6Amme7CWtrgZGTZ?$frg6~oQ?1>;{kwBmw-iO3OvD|M+&YQki&Ja30#*?*d?R3ltT zggS9b5z&?}Rgws6IVu$d-93^dA;*i-2iGpocIeRC#7M4`ytgE%X0<1lnOclTn4v*A z@Y^QHs+ebkXgcXvaCPDE2%Bk^sY>e~93Y?O0I@bfs?f=~HtkogR--Xu!r@a?Sqy?{ z3rzkrIz`*#T&4-*LEkvPxN&X{9RM~71Q#QSi zi`D>G8&kKtJ1FYX#+&|`#GcY)@Z#3QTipHd7+r6#Yv*UGy)#6k_QOT1q{K8>7jXla z6s}X2dWvlId$>C=5dWr@YbooMfB`S1y*mCk0LUs$@>y%hU%5*Dn1Gl)!vkfB#a!Jk zR8xci38&N%za>xr`0r)g;{mut0=8m49QKJH#+zS(5;c0$T-zxDS>~fKD_U!ya!Ihm z>~ts~%RV0du8>Dk3sz+c>0tsrFBNN~8cREJI;F72VV}X%+27O~3y+Crr%F>B+F9sn zAV?l7j5{l8z^WiV`RLnt>iZ--WL>~Y3qgD+OqSOjH$|&Z_1uWm#L0QR-Ha!Xl{=?BRRkGIAtqPgW zmb3;6Oz&G1B7yiO0BzBVaoPyvj9VmN#XiyU-1czjqcQtK7WGd&7b4WJs|z`QzDB2c zjM)6>RSwWVtMvO5dIc>4-;}*Ywp|oh;mGMPvRT!7ENvhs9-j4LURA5GR6u|`?y0(6 z|A*Uzyo4t=B^RFTrEw=``lWNd)DCCLPz_Lfk*ZdhfG#(tXp{qM=`na;E#>6OyxhtL zfvuY;ZLqv-%gMQDYY);&+~7e4NIiiBr&Z0}O|W&A3l#jGl=*c>K?5ag7lruUks5dz z2m~>a1crk%Z84R17|gGXq!nX6ymM*%OYQdc+l2NT&FNI)m!o+Fr<12edIal$!cX@y zQ&Uq(x5I+E6|2+^`_y=5eqxW2WjuMctvrl@-DWQ8>NkY+TO$Fl5Y=C(+wuHERUAw~ zT0coijXgFGLxCjV7@YaXDB>y-{C7Ud(X#a80F+9Nj&{N`bT-mMM?c2O zweed4S1sO3vZ!xD}D3}I1mxXDgxzB zX!T~e|WOcp55v{JzO?Fehf2b&w|1I)3)p zo|aMjqH3aE+tM7(^D)kDu{0~L{1)VnmPop)5z!oo7GfJ4(EaeU4ouRmjABf0^(Pho}naF zcg07Z2LvLA_4JX=h_)dPVBJLZv$q_Lctf9WWJ`X!d;4scEJTE5I85@hZQM%*ed*x> z+8hpUe9Er`b|QaN=1UU1JJ*K!zd=}wkZ_^(NZwFEW+_>UR<%ZdYbfTA7x6M)1b7{3 zFxLPT;_tNx`d+zHEjO`D*UHjKxj^?# z{_)j_$IM$1h{+rc0%?B)(%_Q*ivuZtfx7t+eX0~Zj97d1QA|mU!`l1v<48Y-Rrw#c zvA7WaqaMMv=V_?3Ni*Jm?S<;wt)P{O+TAzEu=qqT#_2^+x~0w-_X1)FPh+) z^H12aepe^|yR4B1=xN1qKfPZ3#Qx7U=dbC}p4Bew6)X9V@9nK^BBiucu7m#l4*H;- zTVS4@XtsfkC6=PhLRGUp%A#PdJgeTOuGk!xeziNt%Z7aLUomWV$WBjq)6;`tcYg@}xFj z%s1TLSuX;@0zlc^alTjRdKwtb)bUD;se^1{>ItMKNc~X>h_JSQ08Xv3D07_9clW*w z#iU1yqpUC78SX>d2h@P-uW9@F{h-n1PWR88E0Ue>kiu^q^;@o?H!WL9+W)~qTky0L z)reDHw2PXhYh*8EQ?Dl};aw}?_mb5gB!neNl8zkd_#{X_-4 z85>LS#h0_>a|3-MRrgD;kTJfc?#pSV_@3j4wYDFKvBfTZp2o`*rcG`kd#umr}s-^qh4O3{-B| zjr)8$zP?uZ_S;}5iBlo{9+&@u526t)%Es=H0r)Q3?{%-6maTxNF&RwwfuS>XB|P>4 zFXm4)V%?un#KPMGOs3K19=AD*X;2btr${2et&^%fbk89)tOIVBDpmyJYz&}vbFItLdR)5tDzm2v}oj0@B8KdthFle z+}2sZGOsqKZztDQ-#`4__`BexaKAOug zbkc})b&D+(^&21LD(F9)DpVtT!A2;8h=@kbgVMC9hrt8a9uf*v{U$M6sk#cx+e+1} zeU4X4+(Z2E+`W}T+c4};;ePtTf1vEY6{I_u*&{ge4TBE(>Ai;niV!H9SYUR-Q*XC< zJKe!LSQd(?MG^g#8agD~Y#Um6XGPMY60hDKVIQL#p8oM=Tt$V?jYvJ6EmDOM`U#z% z925?VpMJiG5v#s$8tkLet_d(BL^$Wqd8n6$OF~$1iiozqrdv298ITAsw@~H1yxV>w zP?h+E08eL2yPHQU>i~W}GR2wWr?>Y&K17deELcwmMMVQ!xy$LB(GZ%L1-t=}+8Jsd zcLHcr%|8u020G~?#%rqSphls}I>tspe$?;@ZNW$2=^yigQNgbFq>`te4i05Uy}EmU z3L7NqsXw)$$sJ0+*XfK_zfAG1&c#sYsa)|}ez-I*0SNVCuux-p{;sph0y_Wi)<)O) z-J!zY{X|xUPk-x3QJL7cSs533VxLQbMZ52Dtb3gPc4-{#kHEEcTic5+^7J)LK3`r~ zJWF)9xPQ-;jvx5n!^XpLuE}McM*kCCg0;DSKCLAat2`xLt=?Y#a17Y_bbKVnL)gNy zEB8#7{)5uQbZ>7bx*2n}o2TO2r)k~NvyNq1Ry8JvA8U`LW%PY@-1ju($!-Cj? zWU~p|_#0ynm6Z*c z%f4~%P2}37yH^Va1ts3T)^oAa2`nD&1NfCjbuoA@vy%On_*UcBM#$Z}bYDKXE(Ej55F&ysB0^B2iLBL;=(~UuzZ6qP@lP=Tob&43myLX)~qy zpek`A_Gs!VWB$8cF7%7`K$d|oCW5``!Ey3&1UmBHoGiA6rnT68o~h3h`6mGLf76!J zHyPhy_1_CT1EBUg4jrTlx*45}5sMXYOL9f1j1#y}K}=O@%@{sT&=1A&1Z7gX|jI`N_=o=mg&s4|2P43bb`@f^IGv zdRsuizRBMG@XqNE`OmBFdzoLFN^w6jDDql92^?*{)O@6`6*dH`;g15)<3hyM;Q{TN z=s+H#oyEinws~3QvOJ$x1)Ud*Yr(cVy8nLZ7IXC@n~kAgC`x703lrGNCA1^8w!&hXeUjtcKK0Bv+IQb^z zGRpnN;Zn9b9Q|AE-cG^D-e8z7b4zL7NORj$VkPjh*4YE^3CeCbR%I9a z_kA7?$S20@rjAA9Y!Ss>)XZtsY9a$XysSB=f5!ZkdosyU*U}pq8<)Id`*2h96EON!)WT z=5X+H)+wGL+Y@Y1m&oi@7dn5f$CsLy3^l6#itbj~PalBv)6=P>+Ko7`O9WIuo2}@J z5cD^yNfz%CHOt(6FC{?#(X`FiR8^60#La#*M!0s9{lCKFwlIRz?jE4q$*`$)98S^m zWGT#n(*~%(Bum>xzw5x)rn;nyTPF+4*I*l~ub@6F54AZfdk1}D%a+W){2G&};y>T^ z@$j$|dI~X1#$)p zc65^*QMrl&jm*JPOlAF}fl%~gk1(tSuk*GzBkZ|O!7I=0pN7iwH>7){J-EpSYyL#e zQ(@L76CcjTk?qUk;s5fT!lQ>r=w*HpYbz}*=E(&4SBVQA=>Gddp(Pbr8lg56`JQmY z{&x}V&jgRH3Qv89eQA3jyC~6QtD9fD5dg+&EwTTejh^W@q{{>izNqoJ1O1JSkeV zA_^(%4TktfU@=ZjHEZx*coE!rSa3cSJ}&L3y725Yr7X>5%4JTS4dVhm;%*-B7%fu1 z6z|tdjfYbOxZ%i9wR;}^CB`mo^{MLd-0Hy=@ACyVx96Fkb6n2;=D<#iZ0s<$C!^B1 z8XVGXvbtnckQ~YXdST{6Gk@AC^2J2A&%P_QAAg1d1tq7Zd)Ye*19C0eJrgl~QBMyg zaUo>-`s+sqPl%dvAx<}Ze00!Hmfk9lnayqGr6t3FPq%0zzrtVK4!C>1+~xG&n`Y3r zQF6#X`Bm|Ksz&RSq#x8?g~v1iPr%Ipvaf~aG8pdB%bHI2dBwL$%evdP3RztCT8qE>aj9)qG6q8c0pT6YMclk$xH-xwFtT2`dG77t$z$fc1mG;4dW1{l3rA zb*8-^nbKDHJmt_cV_`@6*Lz76lbVKXG@+ek#uxJ+)7PuGnGy+gd_}CUi@ZsTvY4EN zQj#!`^uje@F>crHY&=-?n!ijnp&-#sm_GyA(K$8mVDP`%`+0R+6U%22k7`(qv0s&^2*{{-ty zd<(QiDXzoqP%j$XMK7YuCez0I;8pvdp&t9~k)T$Mp|Jy~x`dVyP&?BQ82s$}ngb<8lbN#xOfz@ltzL_uc`yh5qn?oelGsnLcGO^Ngiuy* zDPiHs9%$ZYB8w1b&B!<%#c9x-tz!Rd@OZ8e z6Z@z!oqu?nENUArJ7Y{fy!MR>^aeL0*Y+j#7Yd`P4m2BGHkF1_!a+f^p~VAo>C4vYD;`!O;t z&Cc$^;~<`TBffv{(@Zc&&>l^GwznMTvEbkHU+=fh+~QQLf9JD9qV#8u_+$2lW;3(T z47EG2&&P&f9^dn6ZqjAc^hzY;W2ZXi=<%@R69qhn9%G(l&%6VA{JZ>H{q3CLpP}ez zOzULRhm*kjyJfP0MG|I;EB05)(6{TX?!v(k0fDiN&st{d5HMJU6LY?@n;M&&Ik>x= z-#e)XjUYmS8>+XzS7Uvl@7g7;R*htPtKbn5d!_Q*w3`RF9(AH7d&CieZ;lrC&$O^% zuPK18aXs14f#c~n<+yha`w`#*L_)^Otdrw?tCuJwfJwhQ{O??J+ufV!(k%N?l=5Q) zMT(j+rfQqg1&3jC8#1Mc*#|%-RE&kz|h(;wfr$WhESJmO7;xg1f}{ z7TEEfG3}>Lc_@Mx%E)Iigp<|Ou?NEcK}Loq6w>UWYmDoRW{X2G`2Vy%2*~+p9E`w? zK+qK(+-@9MyNsQptk9z{C~asoj1;qNhxHvqMi-X=kUn^DsvwWW)p*@p`E_lmhN{KU z;@18rl)8pp)@b}camJ}gbuva<3BF$hErRIXc_WZ2DDWjh9IPYsc~LQ?-Gq?l>9%n- z^vg?xOi2vM#h?9Gm=!Z8Jd3jdh^K&aM)f4$JN8_y@Zsvhvxr=e6i(gKU;C`2xo2Ta zkZ{1ondWoVfd?DbmNL%)p7Qr!=HdU*gI-LkqBNj zdbiiX06ZvO8=`se%;3LTsP|gvPt-LQq+e^}t%iG%p7Q`nLt0DobuwRk_LO z#UTn>W8H*ku`RS87KWI=*xVWEm&;sYJQox$D!p5>3?g&W@QtJRX>Ucstnvs#L*uBa ztLy%Zs-;&erTg_4SD3wX<80zflR_kBvQi2CE%0#pgQVF_*uRIp(u62C_E+AQg!Mk? zIubmW>VK^bC|@Oy!*7BwTYN7(eaC-c&a-)?rM$UBYrbG?(%F#ds?dF%fKY@gCFzAO zjR=_VSTF3#@w8UR@53hr97tlynU})D=0mf1Q%WPnd+NQ$-={&Bl(^wtW|u|XiV7`- z2eeMsSZQ6ON{h*SgWb_$lmj}C!WyNW?6gPufxuYa-5&)ODajz+lCel5HC+WgF`xf0 z>jpGO;@fI1^T#;`T2T}JoeLegz!t_uCgcH0^lbbcVbodrM8&9W5NjPD2Zn$9!y>Kz z0>fmLJj{0{6kNLOv$VnL1jVaMPoIED@|1*v83g3IUn#rHxc0){@XWPyNh&KJ3Bn-w zsAnxLYNPBgJ%E@tKl?N<;zB^sugm!ESwn;Ku72M3;upxSI?RedhbV>D=6`lX$q_*Q zMzLc$MG4@Ub%oh;9EUQB{RTpzHqK1MD{j?#mGpib!>kZq>Sqp+VQM`M*`NI?dGi_F zo4t_STDSE#_N^o8@w zYor+>hVBKV^!pDDpah|y2ZX{=G#IfPLlspl*a-?%-a%!fP>W^U#ophtER3-$qx75v z=}R*z__f`S1@sAGd|c=-u-vQ4%gyRjt8-lexVrjCP%QjGVyr6ka&*aZdERtk+Gkl@?8g2IP~p@lf%j$o(Xd!41a@RLve ze;+=YSO75rBI49v0B(-)nZ3>f&%Z9-F;F$wD2EEn!}iDFJ1BYC>44Wr34&e<8nbw+ zw;Kk_`&xg8R_|MZxmiE8&psmF5N9OuvfEFkr$F+eu{Av*?SCuWdMt0AGAlG=WYn+7 zn^fd(m3L~_6@l(?TutuonQiatA!T^RiQm-FFbtHwy52rBB18$_M{20cRobVNpqft- z7TZ;`zBuhEyuK*6cF0%n_{~*`xp>RL$`xms0F*h}BrySZKiuY%`0Nq7#)XQ<*0txU zH%q2dWmifu$#KIYLz=2KV=X{lyDGq<(&5?WEI;#GAP=<`>jyJOnew|iu0EClfIptI zTg>`s0UW8f6_cTtVgP=>KgUfNL2xp$wDT3ogTqDs9VIP-GQy(URZtSV3vY;07j?;Z zDuEd&7P5F4l=EZDGYd@&)m#HL3PnYf_0tT%)&GmC3M83|LExPtpYozX<)~!L3MAPq zYh279r=vmzFjP-RCxD-|u}yGuQnVs%Ed6i@zAL+%Rm?D`i(X=CyS1#=qsSJh;{twW zg`NM}p2kqyiH=0@ok<3W9BF4$TFgL*P?!(6>_x7P40=INKQwu7WS}Fmq&K}ktzA*d2kM0ijKhF0?H$&gq z#QlN&pr*%%72GVEg9AReFA1P#4!rjN{75 z07@9p=n|Qf;CXF zF0$En4*ru|&jru-(2s(bnlqS0JSMFihWp95)3$3@rDIs=D=1D{t#OdPOqP{htvA7G z4<{vpbG}csfR-3|A)9G>7d`-jey+^~(($-JTTNhYy(H(lEYF>Y8p`ri<(~+VfSbS{ zG6i{?t>Dp!CiQG!6o)|U=_k9^N40!50uJBkwfR}tEadK%OPDOR9k%`A&@VkUW8>}# zyPsJ~VP@wKHe;4j`(QnwD#A{jPdpxaA$4JK6`YlG=loF9g)*Mwk@MIg?Uy?ZYHx@k zv)~X#CqCV+kG1&(E!oVG$D+&4VhJxX;V}Gc>My_3xB*MMqdUrSjCJYe&F!j7N`~Gx z{EPvm@Kyu)hnI)Ypr9J(QSE9T2dy}{EOsOn*}r+M486r4fA56q=`z0r9aGjz)K-7@ zf9xYv9K-ml+!x5K*xu9flLI;!9`W{VX({VU%SFQbE`LtX&BfzlbfT(s+c*C`0^uni zDdEq5EdRx5D5niK`nmd8hwRtahZQ?HHWpVZ*zx%Inew63fmNbnq<<%45Fe%L3fjA3 z&F=cAmWQ_XY{D}9xT;7SeNA0;GtCnRug$QG=F#F6^N*vQ%P#bCgt}j20*~T}AV`iM^+`0-q0CU#p zjd2&K!>OiLLh`he8sE~ZCa;&o!`(=#8w~w-Qi5Lg?gqmGKgvo-Un#mVSmbGV!}fc zF2t5?^#Y5#dpAWPeL%Ev~{lqMF_Z>!okKVzggJ2K4yG; z=W3%btWb=Ucs@pTX7!u|6Hst$W4x@JKhi+w0WtJ$qHpZja;DmP=WM-Y&HN=fwfi~= zy^+=S>CkP*eRa+9{#()mS8==l?dm^pK#+67^52Dz8A|}b$LZM;vew0)6Oe5w+#e_# zftFOTaXAs{@*COh0O+$Rvm^Ce zjeSN8;zCfp{jQhH6a*YRpY9%?v;v8hDc}qKtofA#9M&TdbFB!gD9tR5+flIVv=As+ zhxaa8J~FGRv=Sw$R}rl@s{3p^`Bdz_q~V&>ZT+12s|y#Z>#pjc`gsJRYqE<$ttM>V z)9Qf?S!6lT4R9uU@H#u`&B1F0dTJTFF``Q==uAAAMiCvKBrE3vxrSk6l*WO4#rBg% zJfR3+4yvSf8kSgOjk`=pNsY34 zVg`nOA==~d6y@um$mSn6>|p1_QFc)(lqA#wEz!f|m;-Z&syl((hz^6ay0&@(CrYnu zf&DX=tRnJCai9lL*^W+p49T0i-^_B{d)`K$krMyU+nLPBtY>leE9Z$Bs^Q2KoBKZQ z^&PV!p-4b{at1 zOSSY?dg|KN)BH5=wcAXs3zTQ;&Tjs}TU2L7ji^zUMI~F~z~(ZK7OP_^g4^xHRmm6# z81de|oL3l*9k8>s!MY$io49|*HX5Ag_-g`Bl9m5jjEqtEwy?YwdPYru`!^DnPt5kSOdBAmOK*eY?cCi-ScHyYAs5xgvPquryKwMT{B_~)IUt~hhivNRChV4&NpXVlPjTon8S0Tkj8 zu)o#{?|E+reOi>tWjoi$rDv6KiH~gNBzv=lQmVq8ve?@4 zx4bY5;q@kA98V)5f-pW$vM%G@p`)rW4&>C@gDVc3oisK0E3D8eFa9m~w{H?^VZ0oVE^p$f+SSIiGE1>V0zgZ@zJ$eau>c^XWQHX!|2LEzG)zP&~$jU1-gQ z=FNwS)okCu_t1Jd^2*&SPyOsrKvbYY56dDf6zun_Lj2Gn{^ltzT=2hMBd@W5SCqz< zB1D6MuR^{b#1YaYk*GX}I=hK#hWF|38*(3sdK8ZLYHxo}PC6A}<<34i8-k@n1z5D# zm8w;s>GRywkim%KHSUvh$||BFGL+;P5k~W^RZ$lah6%dTUOof}k$cD6(nOKH6@yHz zV2c6%yi3^K^?#pMT%$9-c)f9x0F=1~0h(=2oOG?ZHXhI8sKd*R001~GB?QP}tm0@C zSSujl>M3?;sO6a53y%cI0ZI!O;@yHyZu47?bHoV}?;kIe;leqWk`i+{P?{2`8z}&k zM?^a}@6`vkN8pGJF0@FIG0V;3W}`XF#1Jnn%4P>LvKT^F<`&}Cf8GT=`!?q6neBOA-aX0*{wo9zB zhM<9X=WYDUN~}5o@y;F0y%fd&{OP}X&EYwhGfp3f)#7ThD0Ykc6)*s-ZCi{V^2mjq(C`NYr(s02XhLE)^JZCd zF#$@}htrY29x7Ms*1Og>HbmaI;e6nr`|_ud4cXjxxZ5%TL6xcDwgZ=Jkw)+@6wqT{ z)b)g5t<7BC@lR|yo!KG*TcK$iYt{fci#+$=^hW;o}4*D@ET;Z9zC z0lRNm@u^2;c1szGwa__WUvcDtXM~!(=(g4Q#{~>}Bz+${dm)<8H>pF+_|2*}P8a;p z{Ui8-m|$-1`jL zk?JT$__*Qr7j>~^JP6r|q@GqgumHPZ9_;7J=)xUg3_KOrZ_ROgPTMc@3OtXf-%cd`0wKhmB_alF$i1*RPvd#FviuIWNt|%!B3Z$Y)VkE zsv@|a(~rl5qs#7n-EM@?du`R@5LO5(OnVg#T@Hb4;$3L0s>le!VC(P>GVDn&`wXL( z?_8GGs+%Ro>_^|OH@bowH@2^OLBA%%Pw+on=*g~yO?L|(T>j) z<%iUn?kH*z=%a9CBYn;v8gq!$>BMryAc}7Qq!lPxPxt<}ZFSY-W(uk;Vh9p)`uTjM z9Xk++Y<{%~$Pe^9QI%WGgGlPI4mH!5ujTL9~=^-(qsKKA#3urNX1cQ2nmW5T!k zY#@;{hj-pK0Y4hAt0+CkNlzMFEGyH{bG_3)G4b_6*ZjgkbL29b`nRqM@P5l$dSL%32FV* zw9QSAStQ&n75lMAC7`g68=0@QbgyC?cwRuFe z0QM_l@anmZX3s(q2Z}-}&;lLpM<_|ld=-SmoCI$S5WzabgExb{LWT9yAl~Zy(WzyI z4b56d06|qw;Q9c~mHxti9$sDi8li%84mM(=RAO}ZND)CAkrGk#z284zpSE4`yUz1CdQjz?m!_t; zY4HcQV28vi)cU)!z#cB zlW;PSl=AI3>=zn#YeDVpXNr&7jfM*Xw_sm)3d)KT!Hu_I zc_sZ(Rb80>GO#wDh6w6vhJU~=h7;?jr}oRennh6IoY=VC*oWpH>%0cZD00fITC;Cp zXCS!kbf)Iim6<7~P7TDxyn!tx9aAjqwfQFtx(d#h|EvzuavkQB{tQ&QI(U$6fU!<8 z;Qsu~jbQYUTi+Qqtc|s~pZy2zGQW3jmN(4WdhJO>!fr$x?@4rWN{(7GZoxDo`A?Ew z7S{_F08aD4lcF3=W*!BT{}^eR)oi2MC;f4M+slcTQ!};WBcjb{viMweDy%ZZ zd_)UwceuPeQcE}WoOUPjPMuZu{-~>MEVEsIGPiA+^LPv%~mJz@PklzhpUi8aN2sR$#r-bPeFAjvn7P7C!6+urtCIPerR`q(SL0)8oe)NpRk4f&z}xz}?P>XE&qTw0Chd6*gDzhI!Y6&f65(_r(QD}5Pt zrJz1!nN8a;7U#IGQQ=$^KHo(o6<;aUkJ4^GBK+5Rp)*?d@`ESZxm4ZGb*I`$SI6z7 z?n{H>nUvHFXX1?qXdrY8BrA5xPlcUwa@v%}LIU^b0LfTtYU>KPHwqOcZ6`ADs5xPS zJqTk7XL{7qp=q~vr#DtY)V&t93CY=|a1dFutE;WoL(ivh{K6&{Sc*k!V&(;>)FP>O zEjeGFI38rj-iJbT1yA(Q8i-UMuHpMh*!-oe8vLZTXwoF2*E5!;jogS*V$h$mBo#ZS z=zw0SZ6SXjThg4V+FPhR5nn-*r-Nrol>Q@vVXA<7 zga_nx5gTVNFsV4aLHw`c4>Hq`?92gU)xPKB9H*0=tUc@_tGS#2Ny3-1;NF)HmDBzC zl=66#EhEkxSv5L9#iFI>a?JNJi90xrf;%$rW2D1=+Ey0e=$3?Ke9U114N_q@Z^1fg z2o05l=H5hg0uY>{jD`uuGszx=DlY8tBPp>PxrO8uZ^$28|2LOsu8)%w z{yy|6$fp*99Xx~N_Q?e?-_FLT#5-5Dbry~@7xeK9m&G4XN0k1oDZp=t?wIyP(~D<7 zCAX0c=F)D`z6h6o5QU~J^>z%fu-kma;x<{bxMjRR+= z4|e}3X@l(D`!wN6Z0VXDAluglSw`&zn~YlQesAHIaG-AKO~hX;pI`fSgP5!w$8E#r z1#Ubv*Vxv|0lMTX)V)@NVwJL@OvaUo{6bX`W$AX*TAO5h|AHrSC0dwAGw~ghfB`5Z z5fxcE)>K)g^iAwPBN{Hwc7F0}(56LOAr=`JS8Du^2(EH#o&i%)1nkB0$sfn9zEFcD z{_-?e{{{ie@rgClKLTW~)TYHCNaDXe+MDM~kcV44uI~P=N935al0klcLh!)^+si~s zi2ux4a3O3ixU8ajdlcnb-M!56X(brJM4_FP_%{-7p3^4ECA=BQ*Un0XBh$Eae&L4r zvU#p4k@Wf@9N*!jJ6S;S-&sHO?trI|E9&`Nbe1tuI>#@0BO2kQceL<+R)<=24HW?z z%tNN^G1`s%By^TG7aj1TH35aPQ@8rvvWPv~xB_n~=Xm}I>0{4q&08FXg#GjK3~I3t zSCDIFB`ix2M!4$V6|6ca;XW32MbG3?*4Lg|QNO&^aDLz8ZDF0SehIw~4_2O(r*O}Q z8Jb-Mz3slgd2qDy?^p4^U9AIj?7GYl|6TRxg1H>>0%Bs)uQ2gLxA^M%1zrq`7)kwOaUVk8N74nsSUA}LW&Js{bzgj~g0$zIBe;d%(jQcLhm3~~_){W5LP>cAZFrL@5a4$$14-ysZ zQy(z>`Mr!J+BA`p^){D7mk6tsZQ6Z!?43ZmoYwN+Rg7k;Plh~idoe=&VDiv=?^c5Q zi&qqW%VH|l%xS)48Z^g358Y!S^m3XkaQ>~+>dO{rJ$VR%DGJ_`FQd+?jRkw!G+WS@q! zoK;Nz%Tx?eADP9yJWd92YUrLPUE2K+3rki~E)rcBsy>kA4GCbSmX%>0j@{^Oaln&f z8b}*NGrO{k!2R5OIG@`6lcwGu@P%ff(4ox!Do|(9S2Q};u|MGj7}JL4Q_;baC!)62 z;Q!?ZGriMaTJZDr6IVMw7#*br+F9DeuUJM`ZL^&!$;+5c!suL6AA6H#S$kEVafe2J z6hg!PFx~lqY5dcM3sJy*WGyy(9%WtdHh)j`p_Y9ZqC?8g%`i3Tzq3;oV7~`xm2y>$ zK9rkhGa~w;@k%s-Yw!o^pw?%;=sJIfu>5hm_}^7=MB81MQsB`PRr!AdWU!w<6gni6 z@+Kc7jaIy{92?oi_e!6c)`)oiK_04iQi{cEfXUwZM?85FWgEynnEQK2eM!^0Ny;%~sOATgh82P7e-PY+u6a$P)zQJBWU zPhf1vMypt_mnDIzPNp6@B8BsxGImbVH$#kWZS{!8CCr%GIMOU@A&kSq8lsN{?=|~V`J6QHznW+REmt2oyuZi4{Z3`9pnQet@PS!7%~C5<9EbC z+-ZjlwnbY!8A^HOl|OTT)+CO}H7IoZ*uH$(zSaS%4EX}8CWFs^WKK@Hb4WU(*EN8& z5_0q9s6pp~3>BtjRSMSmqM-7XG1om1S+7U^_gYLSG$IrEieI8D>|@bJpW%J$vsueo zVdB&Qj^NCYR1IE!dN@C)Z3f4y`iAD!g>U~EQXmR}1IqD9yOvJ8U>i9j1?>XGsdCC` z`+M5MXaEH(Fjaw7yy-^jKf1({z{oTj6ne~4OF#-Ya}2P~8)LBSfy&GK$7RJfd5_o# zFGo8c@Jj#ixs)SCjhaAh8B4_A$umm-j_4Qc4~o&24uovOqJk2~s)p1}8NSYPDzbKK zuxhXK*1UMtfBxR@s!{ei+eZ0)o5)ucU+q?M<<{FS$qnRl8ltRs#31XpunA((G?sGI zW8AC9=UR!~NL_UQi5xr384p^xTz%cs;k|dQ--i16IqXVY&qrdG3?UZUdrI*W7<(lPhFTb@Kb0M*z9Zx%!j$Z|gV}E340_(YU^FR_%wwA`5i(hR?tr1FCr{{O< z-@DgUW*E?H`6R87h`V8Z$Y5X*9nt1CG9Y6{JrDo|B;iljVxkvvUMB==%{Mfpn6CT; z1HqQZFoq6$sm2AJ({dKMlHkHqy)<2o{%*PJZDb$pXvawvAnR z(4O!FnEd(0yL6Beg!2(D#V8{<|1L>FfZ<#CsX{e6clp@u4Ef(AB{r}_?0T2{)yK_f zch^f_FAvXeeipuF`h%B8(l8-{wbELm+2f1O_JgE2bA6h)D^xA~T~^*Z8*hU~-_0Yt z7ff2^Dnj3~jbw}Bg+yIOL>iMbG6kFD0T^e`YV?}w!PBn%NKx~Dsj6e?!f@}-Xem7C z$lP0M`KWuzXK9!0gX`SF)Y{D%8_!3Ee;0+eFSS+aS17zI;s&+gZji6B>l}Btu$#`@ zrH37M@K|2~%$-$La%wZ!Pj>z%Ieb91)$b)Lh3 zw;T4-e=>b<%-pv*REee93!Anh&-2!AgY8y>LQvp-(+AmasOoBiMLzXLvO>k5@C7UR zgE#)IARky8JDHsakIj?w^SWwmx&(h8{<#*^G4x2tD4Aj^R+su*lv@#B-s5o_{?thu zb)sW`=Ozp9)P_>Y5a}qJ%1dJZfo@d0hL_wTA}Ca0a)}T!_gZs}OgOdN-Eg@bCY!fC zh_HyOcCxT?4B01{x;tdx_SQ&GZ%H4KH&}3UEO`_jgqs(iyl~V#QloMuwhA%}u5vOT zvG^j!#Z|8cV4-r6Y0_Ie%`tYtptne)QAya!ztf+$p7mVEswehsArIGiRehd;5>r1# z<}L2s1~QZMmt9}M9A>F^g?7;SNvBFYmFsA~f2qG2vVjrU1+8(B^H4hEvr%sv@mHX` zV?r1?WP_`a!-CevJ;t2IZSuxXl$eX1y$?2ZfBxEjvwlB&iFz?W#67Tpn?vdHU|=%* zGP^hu>K>Lp^E+?QQ+8RD7N93x!}QMLFIH#ft}_C3E4FU)I=uddJxQ+}8WO|R>i5GF z*Gd;n5OvBo*bs7z`6iI0bw-;XE?C%F4x_xYbY(eB=S)_6$#lbkp+^-hD=&EmD$ta~ zK3d)Sl@5G-9t0ffBnhh9q*<^?kORJZ&ir!YlC;0*KRXYRO#Y4ig2h&6UKVYK*F*u_ zXc;y5J7R1;qlQlO(;&)24l-X3-^%ylMOz9}#W7fgNDwC|f<0!3$Gh0FC(jwXOJ?7u z{+lNiGP1eg%ML=HJFW2<{Pmh{>^S7q$}yrj7OJNw%-GNn6mm}u*zatg4dQLQRZ95_ z44)B_TAEjq2S8UjchulixS7K+F@4b_IUn(XNxs%8um@r6(_^G zffXQwnITuGNwJd4%b@9I@+TevX5V98+S5F36#2>B`Y6@fjAR>;%(Bzx>4Et+! zolv)TCPJKWZ2`o^X>F!=;B__XL~gbJF6ZWsYF1vo{EQr&ZeizQA~FAcXN~>$ou}e{ z2gtNF&4@-A7K<2>&pZ;MI0=- z7&>3rBOYfFB-;bqsd~&`e*l}JV^!eu0kML{cyp){M@PLW^;B+!vWtD)LK|e7x}k&6 z!h4%w(vHeFCEb>$TgBI3A&vhY%WL@ECWdLHt?T=8D#kEL;Svtb_#M#%24uvzjn!Jk2IGAG#Y}ap7 zk=SY4(+%$3>J^IOhTSG6jBIS)wbUGXsHU8ZNZuUplxsLmE|y-2M0wqnhRMIbzp}Xx z)a8GPM;KU1&>7aW5PlQD$ucc!l94flexRW0hY$vOz_cy#}q^_Z)c0L>cMRW`PJV)rg~?|A>qc6 z8W#75u1RTtR5^X0C@G{+&=|DDsw`$vU@d8(isB1VbV2?Sc@3?Sq{yg{Av9Go0rz`t z2a&P$-BNv*4Z-P+77NGG%(#v>?Zc+rUz0=Gr+w~?I(M0SGGOnwSAtvTiwX~Imzm#% z(lRG{t9@Fzt50U{A*6!;OFukJ4hzv`dbFuixK8=9Wn=~t7dXVn-1MB}@&lABW&OtGd_z+IA=0P79tSI9B zaiZxJdD`8_KD!xPQE9JBxXzUOF&cEW>0`HfVEL9X=$`Xz&-z_%OhvcMT65E5vTkPF zybF3hs{%tt=0FoxVEH%Fd9HZcLxltOXPIs(Eq)l{iQOQl5?j?AFVp0%zBciy(5P~5 z@vEN$>4^G&&O>Zt-)FE-f5$Qi7OsLKV@an@cd(lh-x$8>2nLzxu7XlB4BN!ghl~GSz zoJmX7^~HdYc-Hs$sd3TqWB&toi86$TX<}8N_&zuJ3Kit;$Ix3bGod3!qm_+s$K5=b z;ZdfQ(J^6LHQshK-NCo%ZRV)H_v8wI43-VP2+wR}l}er_Eh-T;Q;OldVZpaV zbRR#Pj~W772&k&R^Af~fzcsl{|3al(N4E{GR1uBWZqheSeielf8N<}oVzZ)(RcCZO z-)xQc7ObjPoGsO-L;gP$iJBWR0q8L^Y_{H7@e@O8WP=K5M90;u_HGyPUiF+|ah>`3 z&6tq968Q|cua*Npi8^^=NM?ob{imr1ZoZv^ODj1AR|iguW_HO-klmP{-H=sMt5K=- zxTe}@9Y0N0xU)I0PQ3uO{*>ayR>64IeTj6<;-Fxj6d@bIU?~cRx+ubOH6}M8;FKjs z-C?u|rgYQEeKVUL&hnh>$C$^b?&#h!%zrtGRyhxG9*Y7X7fU-|??16LCw9zbY%WIk z1Fwj6+)U&I4~KomKS;@VookEw?=mpRPCfiKxDfI0YLNSn97VMTP9`~a&h-ybV8H|L zpxd#h6lrfGpNRxnbo82c#6q;uxqVM(CC{^MvqKdzWcv)T(+#S*-tk&F>bE9yV56X9 zuAk`pCVeAJHO_uP#p7U*c$|%!OYYi?=W5ED1mNM910xi$tKIMe#?^R{f2q_9xX z8#8oBx3WxK@n2jhbpuq`Yla?y;yMawkIZop@-;0_o13oH@! zYmD`K(G;7>gqb5;(KD4&Qq*JrW$P_Jtwi8Z$+7Eu8-8>0mAmNrUVcT5j9WEp0_qt) zfxSzp#^CS)b7D>ZY|Z_?Q%>D^8xfA=x@YOm_0XPUCb-4hsUkv}CH{ju1#M1IWk6s@ z$BPV(j)s2r%#f6iuULDV)V&T!e_12n+~MdDP7IrOzTCJ7mNgAchE?L%6sYf^kP)JFY2q`?`nL| z7mAWuW+^sto8AD%p@DQqk{=tfd17Ls6GOG?heUHLcym?jqm5Vrcd1-}rm0>28WcPZLs4Q%Yx!>K8nB1>CgT`J6V& zVDmJfDI`Q!@=u5xm&PYj;*ETfQZ2`in_PXsNJ$XhnuY!e*$N826 zj>H>V#})=HS+iCYSSENR#-B_TzuVRV9RYjNiDjLt+0hRG)8(LhBt!0$37g*i7x|Im zC_b!48unHz=kG4V(aAs<_eqM9{jRs@8nMr6;BLi%Y!6u)WpgO#OhRiHO9gZhz zK85n5iJ}n)>EW-d847B6-;Xoiihq?(bT?Cw;CxJycWBqT)jrLpIcayDAvGhFz&1HK z#-ph?*0G)Y+OP+;vmSaj&1QQ;-Hxh0qF3jGPJ)e5zLpQp`8f6{T&ACbk-+whY$PC9IVq~{I!St zDYf$LM%O}?nx6Y?u+&rZVeO!?q|dcxP81=Y6BWI99$Y^gw(C;w3&>GjRo8hdbtRbM zUuEsYgte=Bb(7etqW+6-gU@p0_k{jFK_oAqOZcAJhUNay{epzG$<#a5gQ~Z8eVt1i zbELmJb)KJF42w-DQFH>tBa+&#wT!=DV%Z(&53Xlq+U&J?ibs*c(Uguq6wzd@{{1+F zlF^0`K%(7L-||lc+BQCThpYa6x&Q3y^xIh%?;J5@lW~~(duAp9HgT&=eHPQVi zo}}+t7`N%EsUS~i2j{RY1p5zTHEf)lWYSC32l}2s28`4S`H$RN$J>k$uP46lnB* z{y4?Q2C%X$ka|w=z`w+D#@_khS<4MmVue$+{bjEUDQXYfz4gkQWohc-R*zhz>XtK9 zLBTuicUB2ld!`}}+5R9NW(v5=f`eJG0-ryI$zEDbYK<^N%ci& zIr9zFLznlpXMpQcET0OAap&K&m_i? zJ}^aTtirU$ld?t$0Sbf%_p|8*BzZvsx*NWcXu2WeL3&&MR!Q3)U z9xk<}BkD?>zo#uYn0W>(pF)pB2IJF8((j!(InhrgJRVp}xzA`qQ&W(oMU%h-k1_*< z(_L{$ShaITYojjtOT52I*L}+pUarM(E+7Qmei-zC!W;39h@3ZR6GM}8ckHY*QWEZ1f(CsO=p#|Fv(|x-yoaX3 zW{j@*_5g#=u5q4iM zBVQuki(j^$8>pKr^q>HuH>l#)LjiI6xHT9$3byP{^+BGqi2qFYZq=x@Y_bKXA8f?K z9xvNLi*>qA@DOWR0k;G$laBJQLce226zZBrryjH%5&Sx&!<9cN)V4NYfA!)gC$wnXh4o5GG#9=KfB!kkfRSXZyFsKU~d!CELKZfRyIqyvpjwt zOH_9Wf4F6u$QB^{E6*ewItG8*#ayOaY6Zg`|DeQT8|)fsZmT)cZJFQ4v?aD?b#_`F zE{r`~hCF>41xQS2A0M2-|qt2YxSh69d~3V7(1$!eTYpd=?Q)gxgVDcz7Sg9%`TVv4-7Gc|KP4dx01slJU~1o&fJ9g$y!s*-ty9gC^>9tXPEq)cSp2S`m>9vk(ayl8@# z38?P-7!#RDN-SUkd6(LGIr%$Mq;|@bHt3tkNbZX8>7o*!E`o+|?Vk&~FJH0J1R&Bd zKxbkujxUcCuqn>-INjVG`22~gM&MV6Z>o-`8;&e{`zQ2S0ODvQAs;egi=g&4vFsO_9!cWHsGdy?pMt*zT911)ye{Xs_E)u}%MHFXVN0a2;nITAC^Gc3py-%u24=UZdn;dMN>h>SyyJiMKg=NL@ zcdU?XgW1JuF*)8Bq>jqKz{tRj3a3s{Ry0TG&Cag{K`cTem{|X7_UEG;kD@?)2-}%p z3ugE8K8yH2RHVmTn7qGpYkw=C65EoLPUjt4B5q(`_lj}Kgr@wd===aXLc|hnX3_r2 zOMK>(>weZNZYO+28D7_6daeETOrnpSO9PmBs7pnA^Gkdok zbg5RM-xibz(5#ry~!Ec7#Z{RZ}9ta82WU+Qaj_^*K=K1#Ws1+OEbZEkSWUWi=#=~9D%4f)k<0t zT;7GlzLz6*sNv73F0IffQmbOI@kgAmbH15D3**?^`>Vpl&h4nvn4I4|$vQRhaX0@N zT0er#k;a~$)k$9N;J4%^(|@?)Oc zIAgPH*z z@w({oyzqXY$yX;`PYHP<)l`HX&K(sfQM%WD3s%lb4+K8bi)0LR&oL>VS|+qJae7qP zIL~t!-T0b>?C;fb-D{;J51&ex9qlbz#GX#DrCoOm=yjtz+!KFi+-4ixRDG@)Uca25 zA&4VCHh4!?z22lAN7be*MjL}N!sRBVgvz+DuJCJ?D-N1ZJ^rv<_Kh*`E+w|@g_Z{h zdIS-3Q_Xn3rFUEJ*me1iK5kp%eX`91YM?fOKd;wDxr`2;fY3|Dkt% zTBL}J<;t?+{@(;IK%cL$;9l62ugw%Hk$mD0d0(^fH*C==e$M=MwFV$G`NX5lhozLD zR)Ii7g7OeBX9dRc z9jMK@d!Ou*Q~MPkv-#&}Gt_J$+jV!^rTocT^l-UZVTs6-$;Z0hkrfS(BC1hJV;8SH%QF2Uvpk7am+q3$0W#{Hn*5H3%=ehR^#{s5Km zo9sFuJkrP**vb64leT}b=Mf8hC4;8Wesw2$7bq|)sAaWGPT|XF9Ra9#{ z`_WCccVIqYgn^7wdwCmuobu6Nwz@OvHRfOX5qS>rtc262TaLwbq^|K4q+3`T?Ulu-r zUdy8|7bm+`_?eQ`=$Cl+R+X*FH~-c74E@GH369fy0KnKDrOZmLc;)bim7S>0No|3(c6{ z-+8dI5iD@3I;_NYFzke%XT@Ae*D}0Sh{?{;tW)3AItmB(CI=5;Si41mneEHVrg?vL! zM%5y?1n)7-NRelwm-EA98KLjUrTrU4(E(`G1T9^#C(kGj5jWg0_>H# zhsgh!$Y20`^Pf?WWfw^=bLlM!G|Xz-#D<29TrFEy_eF}f(+{u;SkqD0CwXj>*oz9A zqx#3GmbO6Vb^3L_Sh>V1CbbVqUxXo?P0)itKcXio5Mo^Ad)p)1b6+<*y$(Q+@$Gr8UDq8mcJ?^3gt(e zRx{)_ojsbwkpxsndQW#IzTrwUr3=2WDB1agNrNJhlEsj`a%+ycxH~ zgA{HxumcmQy!A5Q_m#S}`i$U!w4Cotv03xN7Z0P0qlQDI>K(vu^*kX zs{|+9;4*n^@^Qp9Jv|=+FO;hbRQSnLPMJni7{jZM-6q!gTEFe2-*-=qfj;S3XjoX= znQ%y3;J=kr{P%osQmObl=*`vgzz&tfSWOVTC3J5nyV09g>CgPmVia_HGWNr?l>P0< zD2{~hOSB|}edUxZaRRuNC&D`kXgB%eT>g%&Y#>#5kVAD)Q^o(|2ZP#8=}{#&Bq)*n zgBwJ{*9_Qxnq2MkcPUKCIcqvPh+KYIdFTF`N+e>aD?D!p~FoIf;NwX-pMH$szBD!Y(#LT|Vr?kCUv+x!c#AK=H z(RZ=5B!FdUTGct+8Z&>62i5SKC&$WiSoy(l^vVA@P>}WX5BmNY6m0!7>#~#Y%nr zP$h-H(!#wzt5y&0>=C!T2V}ncx_&T&Z7lU)HrQeS$PHIfitlTy;mMq8n#cT`=w6;l z*Hscm0ISdexHS?IKVY8L14K0|2hutZRtM8Zj}H|N@>iI>TwV;RQypR3lAhZ?ZHEfY z>cevhxWdku`vBuq4>wNHT{RhwJ)C(wR*sSE{UlMY>HOKZScj7f`T+EQ1Ez0_!P`TWo6ahVZC`F(Fp?L{a) zoHMP0JVw~?p2V=f!Cbr!>GAaM4Crtg&ucs%l`pK=kizs{-u`L+^KV3c{nbs(-8-26 zoN6KEWZ{KF=!OZnJ-6%AAl!STUtK6i5KCwkkO16dtB)y}9J_&PvX=>( zl;FPzMDqSW<4(w9f6=0Ji}-P5p@N^edn+IA|H$TwyTnir51MXJ^XVp*$4tOh)m=Ze zea&(3GX<9C{J@9T_r>_=f30QZ!doB#F(QqX$ln+d*+itFe_)v@)s zf#T>6UR6kqoJO80+*pys-5JUm$SfDv*Pcq0RcVZ?o0wX!}WLwJ%x8N^psKG_avjI5lf zjyJyVUO(7&e??ErHpF_-FcpMyJp1MJL#^Aqa{$?gu>&f1ByF^CI%RFIXMt%S1XfGG zm;ktXqnl~1_X~n&1++~1{oJq+zkma3U?xA1Q2INmmC!kWhRL@h^U)B---}}=LD8cR zU~9BYLQ>kaSBm!>>PEs+fMmj&!nd;lhv%BK6cyS<(QEFaTN_3HW)kdlf6C1hml8K5 zq$Z-A?GBiRFSr1-TY!gKYMDGOoY*QjAU%hUNAVW+KQ6Mz-B}8^nLPY`AqI}4qRXW- zs^trGkh(XicqHx9IYb?H28sA!?MSnxO$9k_$iyhai{QGW=Rp>?U|RkTqpv}iK|F>| z!m)|K1a@MlI zZ{6+ptU9fgvh4|w(s=HXgT|Ll(?-T|OOi*(+x+X~_BzG=k2hXzSa9|IL|+moE0JUM z?Diys0$`q&=CP+$_9_f50$YI6bOAL{D8>wvi<|y+Prl(rs&&j9GL6>O#CQFcgJHOj z9m{;>CN{ER;c;g#aeCvRBlD{^IWW9zTlH5(6Y#7Rxc5WL) z$&`Qn@>*Gd%WyM?74&V0`tiD-snFkVWmT&Qb)9cNyuG6bUpmcilib%gl~q9gAZdZn zKDET#6oA32BeVYA9VDu$cQW7pp*0&!qtDqyqIJ=&ADjPWMcf${MJh!a?-u${PxbP$ z3L)Uku1JkTRVSU-zG~V#-DbF=L31uO~>mbao?)Zm#`n0&`!!T^v+#n``|fe<@*1o*e|qzFWHBaM>ZFnPSGcLUY)nJ|HM2FXj1j~+26 zE90D9;h1E_Vg60wQYQ0UNhY)gfOk=b6aw+9IVJ=CCCHgbdvUJ{;)ey(8i)^b&tMi# z43(#~`|)}a`T^bE9t5RGEZA%d{C@upKfqmbI9Rw;G)W%G4tUG~?I2ezVuaUFmtlm} z>1ntsxYT}f-fF?asj%yhAKfVAQRwMUy?kdg;0bDFV0s9&vu$7;uvWRxZ@+Jy)1bT< z{44GKWStQQ?LTr^TPxz(7T(sDPJgGLJLbbeVaA?G5{bXNhVmu(#s85?#TT0+XjW&O zPhCGh|B1>OWLLdJZcPAH$ZdoFSK`mfF;uwC=g<31uxaQQw=t2YM9L zb#kY6FkxC314X60$rX?;ReABVGtX3$#SZQ%lDGN=Ca{^cRWw^~wm;|Q`Z1Ob^XXaG zaZyIyhY7I-fPO`oPf+(tI^3Ef!JcGnvMJq!{}TLjD?Tv#@bEO0WjeA@o|Zk@y2Ta) zbsE;>{L6J)h?JlSd$p1tijhk|E;kH@WLIhbTG5IBWgf4urOd=@O#XKz4H7j~1R6yA5sRxB3Z{LfCDvE`MsPK)I%J!hP z+eNprP7J&r?n&54NGBp37Ur0EgbmcI1J0#MZy?m&9!Fw6}d=^ka3He%K#u3O`m!xx(AOcDpKp zC*OgY9L-byNr3p&wT#E!5zSlwrJrd5Mz0wUcQhNM9E$ryK>>!y)9r7n*|0rQE)7WY zL$}*|G2#Z^Xo=Zb;yEIFXGQ1V;Lizzi&sb44S4MrRDwV@Cnf}*Q_lj zxVyVbVsd3)k<>Hca-YCEAeO2>>$@(gW=?hRppsaXlxZUy4n8zf!0p~T&cJ=@)nK$> zsT6G3zLevOqnLmg3(zjh32fX%UIL=dexKQh@~tphChoX?7I=>@nZ^?weHpax;9&Y~ zej>_0#p0S9ZXZa$inJ5Sgvu6agXCBsrb=Sgs*fMH@DWsT|4|M@>~s&!|HC-zaUSsE zSg;dP+KQon6>-zN=C@kTx9+lnOMk|cr08wUr{}g_KI)UYmVC)>(pi+6SdY2Oi z%nA8Ap1j$M-G*i}wiFQZ_0qq2qpOBTVqu}a5WTl=j*JMx8tVh$k8IeOfr=FdDuA77 zT?1n!DVlE}%+8*=vjDN?1IdDm&7f8z3kCL>BdprUxSYQM9xyKDt-4ehsC>f=0W+TZW!j?F z#P%cZ2b~8BS0bi_7t;I9-5$>TDjw|dT^c|m8lM5c7X5Onn@?v`nEPLT$+>Urt$UFv zw+2!YBTNLvttR!n7D4o1lh}y+sP(8;Eh6kha2|pICjV@8o(Ok_w5)I>^9gl+7dQ;e z9`Z#1cpN!;{L2~_-s5o?lx$TV_loc;H`Bh4YfA`$uf_Nh^gzxd>?`Ro;B~I zIZKClMn>o=TuQktJd6kaN3Z2NbkVyxY^{!tA1VqJYVNF6<-I0IFAZ&R1h`r zF+!E#4MkkC=vZEUXV>6df;+Q&E^7;Ixf7qG?)=^hFRT)V%sZAgi=OMrsT$A#FeE@>8Z{LpOR-KR=?)L4`HaC%AFTx6Rb z_zzQ)g|#?+E#m7ixcfZak>*hd^}8q1UZgE;%~=Evr@RO+;9_{+AmYW!ik=^TlQ*WF zs-kR-+3K@8vYaTLMo0IyKb&=}<9&$ryf9hTn>PnzkS4h_ZTaQheT0TbL!{&V{Qv{~)2Ev|m9>nHnXrgdFR z@wfbk{{!kk6~9Ds3ye}3c|z+H!ba+4FpJNisO$3OOTYa7=kF^|a15DXiwTp69+!?l zF^26vPKU#llYT{P9ei(tS@~paLFCpvxb=1%T%gt`q}HK9nytO!ws1=pR<1qa4^cp- znT6xIV1QnWVB!+AVYY_pwjfdq&(d(sbtLXfM9FEQ+frd-_e6r*`XbS7&94CZ#1^R) z2zbN97JLfR>e0~=RP8BljppaBW3==CV@s%IB)8%l62)$fRWl?<&-GKTKuUyOmCQGj!H~dYxQc4%)}OZK4kejik6l>oy<9b{!uzc z1h!te|Lk=0-c5xh)sYz;<2OmRtaJ{peQbhpJ)Qj}U;udr3(K%=K~tL+L~_sQGTpPe@B zC$@BqsKZ2Xi{)Bkw!~{;n-n%mHrO@tP2 zfR?5fiy#hax5ea^F5RN|XT)4gq~n5&+!kgeCg!#f5I@N^jcDvxAVA(kv3?l6De4XQ zpm2F-82*ce^B8SZc->e3O|5G?iLIvO1`t9n!V5WcOq4#MWha@f3@dwv zt@qYCYibMkl<(xQD$FIk>%rQ}A@+I*>8XYlcf)64b4-fv0;fLRb?E-^F?($Zv<^e2 z-FkEo)JjqY$W<)l!Y-r+6(y2c6dA>XsPgj4Q{bfz3W=?_+oIFLsnPYVI-mP>7AofUOza zky`*4pTyJHm8d2EwG^m@9}uXeWio>GfLoAckZVvIjc12YKsa16xVvslky9I1PM~|LItcbs?pq9p#CE0AHW1%7JtX&_4YPt6z zj45Mdp7H&o+_J*tmOu+JV!I_}hvF5lN`Fyy{xMP3aUAFBj_Bch9w{R7I!!M~1_N@GGMfDoPYb|J32m_jPG%@$wz?d1b-)^I8@4z7ju@sdV))t?r}Ued(3Bt%2U5Pxlwi zjuJ<}EfPhEGu@W%IddZ>F#0&WX&AJw?W24%N;1YL}+gN&_GYeNooIWZ!+OS4h@!Z5;Qa#c}A zZ8k>?8E@BDEm^i|s~9Z^%MkMx6=$fmwd4392e!Cxp>T^=@28TzqI7(x&8<$=fke{r zBtaLMT1Fbg=9WT5>I8!a!)U>FsH#MZK*e_wrRH%$!zkwxkrVq>@>?IBeuA+DZebFo zb$0|$Mae;=|Ew%`G~f=0;|0K0n6TwPv1p{fOJVE&u1dmIBd}$=tuEAQSAbiQHgN05 zFTNykLjK3+U+eCEzh-?aVar7gFdWd5o~`IfTM+?*OAM2pmZiX?)#!*3)mmz!B(Zb( zBC13AK<@*=-~zX#cnboyV7Fkl?3qN3EzGH&UcYyJbs_=Nx)-T=Kl1UIN<>orx{b^C zY&u?3^Z4TrK6w22O;^Ge)Q&%@2wOalDA+Q+ z*Eq1%RK2HWyVgz$dz&JO?KRjN+j1MUDv?#;bIG%dfkVA+K)x3~9N1!NNlG4PQwwGh zU55U}G!qD2W}u{QgUV{#Z(*=wCY zKQh#4Qwtw1-@=Tm-Z*<;*awH;ZjAff9)}0z2nNuSo~|NB7EW9ME~eKm5DQY+61N4r z_0-A!S($>&{=U8gEKY7|Y@v(3gRSd)H=@!ctcB~eri1I7i^6rv307F)aZ0uaSY8ZtVete2e3u$F+S}6zC;R6 zwcFy_QNBTxPmMzDRAOHUQmtJ~l&qv#@%dkb95@nK54_LMaG2%jY zTP4tLqE>sdc*`Pe4K_DZ`#3Fd>t|dB2B%qp>0JMg!w)}v&q~unPm#xr`4J*M^2{rb zyxh^++7P7rDe}X|7+W1w$CoPD@_DXyx~*znszvCc+flG#!@aragCFs@taRG9#)~2+ zJlwV$;k&3b*xts}5^k~I!qLPHT)ZLEi7kx#$iA9_9$OoOVmdr3RymU6;m| z_FA?a0V0G8LF=dUh!G!PY_ZpJdE$#RGR_{Vbg3ka_$e*Hlj9pqYzY?ekI3Vhigj%^ zx5RBBN_^qKS&b}30J2*wM2VMjTjeNM&%YrbuhnE?`8_LcLhGK-C`9~hPXf?NE}>?0 zk=`O~m0x>3H>9S#R9XJcTqB)l6M!waY_VI%=uhbhhSt-RkyqG4teK%#YC{onKB7hAJliRZMU0fA0Gz_=(%de^s;@M;Dwg_9i zyn&z&rDmlCjD^MFf~91((B7ut#G6TMK_4JkKsscjiwluaPv{8f6gx>F}cXBKm ztsn-&EJbtCk_h5eFZena02fgKuF}oui!d_IGt8>JYk?%TbZUzeTMAn*YHH2E*Ff*I za4SaGs$QMrxjNOdO0RK8{bxo;U-{(qsW!9?z`{n53)x3t3m;hIPsz;#ObPWIh5j%RE+aOfx)F)oZv!6tx0vu^A-3UG;op&f7{goSUAEM zDw~y9&nGTIFyWSt76n@eP7XP=k580{pna+bVnj5k0<;8Msg>gy{p-4Rv3-Ir z`(G({?Y8J0+*BWT2-r&6E$y~?k&FCxmfeyl5#lIOuvNZ1>=zZ}=JK?=UsM+f`TeMP z4~KKA>v%KC2qabCP^2w#a0{@t5xo*?fvw`I8`t?!RF`hI9%5{<-BJzenOcG^)l@Al z9WfX_fEBS@3)gZi0AE;Gn_0Z3z6hzVZOiVsV;OQ=H_V6<%duHavD(R`tlo(&!jZy~ zT(tBT4tX#{ohnaH#8a6uU`vn%wXm35I=_`%jR>ivykzNz2kBh|kJxSg!arX;DsHQx z({9%bsHdVpeqmwJnsAuRR>%)@X>3uL=TtflzQ`>dHqm-{0nLgFI+fu=z>&j3AUJ7 za9T2rh*xHG=u`AJL714N*12V zG_PG6GTijL)7ZL(vBiIdL6p^^oETv%$g2V=QetieVoPtQ(2t{n!uq1(yd_weeao_y zEALpgZ24AkTQ@ScstOm^vop)AuflyUwmjscJh;o?i%5SxM?9UVj1VbBx>WMF_`ATC zPQssNY6-KrZeBP>V7sVtU%vxeD28~l0~3i52cSZ(Gz)vC-C9+C8jUSL%Vrh?ZdFw7!z%Zo=3a<%Tmz>D znt`oT1Jj~tY~`Lrbz*&1ut+}}^XD9}6g|IY)ieL-Je9V#)ha}~JEr;Eb z5(vf?>{g%CZoQ%G)_$Cn+!Ac%nxfVYZil3Y+^($1g7OvlJHwR$s>k!XU7R#3C24FS zN^EZfv>>9^(~PZ_G@h)Z>NCp#wfyVys;~h7jm#?4W34$<-`}6TZ#oApg@LZEH*y6; zK2%;+wFV(1=j17IKQl-qZ2d7gk<~EKKyZR_w`Mx6cskz<3%E24*g}WMScxd0Ot#mB zI`NwUv{Y>P*TsuZV?eZaTF)X5Lcg(Ol_CX-_z~;~vAaXLE$nt~gA4m|7p&L@lbQ#+ zOFc#jTjPCk#+Dm8GC3JcpE#m$5=Z2=nUEDTgj`SzDPJO%5e-=C$D%w@&0{vM+@@PD z0xSo!yiph}OxnwW#EK{`W~DM(IAoaSX45Cksx%2Hpq6YEI4*We441-|LBN`v?67)z zypVyJ1(U&Li(y4?;$&jsmsM`d2pMK&6d5;Ey)(76*@6UHsy@EOY$X{Laem?+XhiKI zz%@LGE49Pyk{B^y7`camtweA)rk8qxEwQ@M)*~Ok&e) zX%mwZX-6iQS>AZSbh#_l|ID}>)e*L`T#8zh#rLqhKDXiC%r9L5qL(}5QjV*%6S;?^ zI$BWQIuEu)z($rC3+F6d%7)7(RzexA8Q>DXg~X!5RwHz5@>pZjWD|o4b+`g9TEoHOBmvJtPPO6JY*@Z#Sf(TpZBuXT^l`(rR zu}`h7#`X{+vI7Kpt)9ur*4D{(Hd#i@goswSL=C!IvqT?0LtdNzQg&`J@{3^@H_~;e z@wHf^I-Pc^wG`d9Y+5_hVT}kAEr!W-$9aV8A`TmI3X2dTE+ni75h0EjA_#&67u>jT ziW?WMWSJX@;D%&xJnz?TYaN1T{`1Y~f9&X({`Ps_@BO~_$m5SYi7u8J#IxbJ&dc_+ z`xn?kl$cWs*vj43HTi~qpbRd+wab=0E$mN;MLCUnZQ~M9D?;}t`jxVH(#3Z|m}@4( z1-lg@I;0mGOMk)E>dwy2>h_PERZ&-ql0U?P9&3;^9Ak>Db%|+}IB8e8ek_Z*NUJ=z zwekJ^ge}gi5?6)Af>4Kzk$e^gZoX)Q8$)XT)Z6d@Y&^IMeq(bez5oKn73W`n+>uzy z*_U%{d4#Q-OKcr9+u6Bidpi&REQJZoCpMXJ6)c)@5Fkpl9CW#rIDA5pTdm4%Rcc0Y zt;RxJfEBo^xH8b{%(msOS?4ml7_xL1T7}^Pu_6o1;^fj}jKEe7uA<)bPgU{{16%d& zot^FN?G3V8W~6CZ6@u;>FH33F>ycIPY+^8uElr;!PKNhFQ_6g`j*Mm03R z<=k?EIAR)qDwu?=x;@#a4EPROzpS9vDyYT9g66-wnEmQ;OE#$mQI(Oeo)E9-u}H~3 zao?3Cwl2d3awEuyD{bAh$8u4O$f;E$Y~ciisu&9itAEaDRVjMzwnzlKYD#gR z0$XJXL}9ny`23Njy~(XFJ}9w;C^5$t`7B%@56$jhXQYw8P*^S3mDG{+H(GQwZ9yt@ zszBkyPv4!LoT0Wo9*pE9#>f3wS!s2l$YDf!g4UJ)2xn%g* zN0(f3)YdP*w6GZC%E#}#^Ksm-IQ(#6tMB+r{Dn&IkUwMVL0l!XA9GfX%~XA&V+-PvX~%*+s<-4MImolUgY1!}fnKVUx#NVH@<18~vMabuaK$V!Jwb5I zOb{~J1EttdsnyJRR`+D9PJdO;@Y;GHTg1D5P>)oUm;0@{XSeE_FWaKK6lhi)NTMkQ zn#Tt6O2+&Z&1Dl4&vcW!EmBpv#f#)Cw{-?#Yewg>RwqSjlE6gO-8i;QQ8Z0^LaZ`} zO0%xSUZA-+VogO$HYeFIO~SE)HH3)&16%MgHL(?#FkF@00;P&a+z4D$LeH^vW#zW6p)b}oyOt{K zUbxi-s&4AuG}-FP_X1n=Fp+T(dX}g~XAf>Q<|x49B;rmh#}>c;6ShifmE58u`~iD5 z71=FdYmeRfY;Vo!Jg}AbMY{#qdZfhG2F|0Pmc&kKJB$UU=2}M>BSX_%Nelp~QD6tm z97x_kl8!YN76#r(a$~}lx=^1hv9%Ax%Lh&)Z1FwXsi@!t1c{tlJV->nD!8@Q$Rphb zHmSBe`*7Oxuds!kaNJh(k3M?r#g8tz=@*IIX4~6EWH`Y_#(a8+Wa08!ygdldNp3i2jh zCANeb$JUIz7Rhu3=4#?lRO&*1qD<^W)a;Ojx^3Wdv7HI9wIm1WMAYplCTv-KmddJA zH#oKeZ>};V4fOHgYV01m@IPS-d$)_8X(C7@PgOySkCfDc&q8%PMx?f$c%s4!frhZyY&yrEkubGwr<3E%!pbN?uy#8n1T)6N4_#L!jq2>ZM_>> zi@tWmg41G#B}uy9@;l8jUMwiNPrp- zbOp?_pAtmre6werIew;k-rI&JS@tx-1d-n&b;dxxaxSq z)>(ut7wuJoX!DfZI2Q0XF37Chfp17A{NMVXhi zspU@1L$Y}4^*}a9vszZ5q&?OTV!ve%4V!reVXG>YFR=B|A7>I52wM-~JWe2L5w=V? zH$V27ri_hj8V3gQSmIC{%D`4?TSM0j<7ulCXVYYAGfk(6ly<+C2{u$Cs{dcAEaldd-jjdtwIOo@j9(_3@EmKmgp*)xVKgsr#($R$gxPuQw?LG6$0 zgf3g=GYY5uPi%o(8M&6?dr*=#OPvT>DBFJ;>)b;q|eN=vOw;>Kjx9Hp9lIascE8)PwJ{qF%|oogFwxSn720AFJB|)) zxf8$Tb{#`3u$A|yu991%k9OUbE5b|Bc>r4^U9+s_V5+K8s)kCEvRDDOl+`ALUHc*V+f#FFRc4E=iEB*a*ec8xzK57u->otztJC)pEGq8d zqKEUj;BXfTaobg>I0UL)MimfwF$|(4U~A`|8W+xeqP2mozQ{TpTc%+TW8bZXS!+N0>iM*%VTr99XS1EcZQZ+dZ`##+-OZIG+8o}r5~VAIt$UM1PooZDi(UVr)n$JWo^o^oS}ts5vx zyaHvthaGy1%fl7I)^oeqI*87ra9fjMGD*_-5M5P7rPXpY-?4{Lfh}a_{jREvQpEwb z3>6WcuXQ-KWCVAL8{?aq5VmU0R5X~XM8hUa$Mp>8NIcybHYrFH#lF2_YI0)t^tP?F zRYUgjN#7g;TS=;i zH*HQg+k~ysY&GWo7F+mJ6q5df-P-%S;sf~{&aB-i@hgt4XL7ss!TjFj)~7|3h|;ZH zY^~1-zlS`< z6ozeSY=UFP0m>HRHm;L&q0ZC^3Rw(<00I*SXbCt@3Z)Q8N6(l|& z^{~skn73G|FDDA?3L6_s8Lv>vCvrJ?x{xWS%3eO3b zmL6i15>daj4CszHsnN$<#N)krYp%jQXm{JT8YIeTg^_*we4gwt*IjdvgPQ(;`b9> z&p2CJzb26NFh!Gk11n;ReL?Whm|&`T9s$MD90+<_*4=vZw%2A&r>47QWecix|IG|- z38e-^2{H+<!$B#7Z&G6COxv-S~B= zTt)7{uL09&EODnEx|OJ8*IlN?4L6}y{K>0NoBXS->y^peUtY_=A-Y@S(=A&tN<97a zjjI^9>sfVKPjgVVe)(niPi*RK%|#U3+-yIK$-6Wnt5%;C#E6*%Rc~ly)Fh)qt)N-s z!tm%QJur+F$0=K^(1oeh@7!~FCZPN8ZXbA6fDzCzJVX)^n0Xb4`icx3a{}PmOn7*%B*r z=qsF1?Z@Q%0fme78E@<6U&bL@4~e&hodpLAU{^nbA%y|D1<~|XOJZ9I0M!!7+N!>m zu>F?pI*BGg1UV5-sx)N7Tc(40$*y90n9or6jBH`<^Dny)G~G2U_tc0J)ow0qvMC;f z3CR|TmA#?BnQ9iYwKO7b##Glj6HRSq0=1NpSNC*AwyO8vzZH2~TSt^>Y?i9+lq>iF z>1lDoT;zD?_}U55yufwCiAARP1fyFfjUui$5;Z9QgScBrmDilpaORd&uTj~$|F;R` zZAsD=8$n;g%ptt5R2cQL0-lySjaIb;-caOncH`qxWL`vufjO!!eo#rc`o#Ip z(R1Ru6Fa&FkRiCIYZ7~}ZRc~(J@+tG3$nHTl#Sb(22bNC@zfJ<*pv;*7KVq+>!f7O zlP1ptZQLvp(()4_C|?mYJb-$|>21}3lawrBm@vlm#yG&Y0I-8_ZHH``RWg_f@dxHx zn-X*cx^>YzSKW8iNk@Kt2?N8Ft;RQ#l&w)`L%p*BgjI`MYN%Y4Y0-`~6|FikMKVt3 zp<2bxF(xE)QrsrxP+yc3NqfaKd(Dye^~ z{QFR*JX+e{Xp$~(T6$#vGG{A|iR4tdPrEEup3tAI`mrE>NK`!@Rrg@sFn(Bd6fK9+Wzi!`jD{8>&PJOpTk&F{ocvd^bwtXeW^ps- zYnPdicj4wUCN^xC=r&~n5AK`3X=DTw(5p75)b{qkK1_=bL-P+IilpSqlf9jTn=nq?xbpJmHt#QhysgQ$OiRnu>+jzF z@S#r+Z9&a|<4);s+SYj43dq(CtG>zy-%e*E+U9pw!GL`drVLw5SPR4{S#dPEH5&4} z@G6swYN28&+f}yS7{6j%(j#QT;`s2c8F!1`CkiYadD2l|pPw(%-OBd%PRc-MG*}8g zs99#O4|xRid>xwOH|uSMaCEN*u(PPV_ugIipgTHLL{Y6O&c zE0L&Xv9mJ}EhW;Qbj;h7jRsoCIO-)^Y&Y>+>*%-2Q!eCQVCo@i0^mlf;5zE<{ zcqOH1L|)_oC-npjz3P+-7{Lfp<>${(iaek?S%zW3X+Q+;YolD?c-R%=!<4P@(b1$# zzZTWH^UhtIH>>W}qkFOR;`v7%b4(jorGjiVRL$2pDmY0*%hLdo;kxX&$+yBRBV53D zn0k3!Mm1FjM1@3_j3U95s2ZM_nr4)^!v0@d#nCwuWe`C^0eo;q{1B2Z^A8xL6p`z*r?DTSvGV zFCCDr$)(FyBy}$9X(`vMaG9c}-Q7s}M@(jT!`7`)N#r>A_L~QT95{Gj7H`tPfsaOH zKBCrCVO5oow&kpA5`cA;<17lOHMTGy$BH~$ z-hz6js;0Fah5=u;ou(%NrE7-a0DR&>J^iP8WD>|H95nI^5XBlMlr5ZKjBD7e0ek4PQ*j@Y;R-7(Q|2pmS2AM`t z;#Lsywi1*r&MxJBA=qNx7T4TCuvW366(TR0blnqlwuB=>u0t$$?=`ZB+TJsuY)8xy zeO>^hTZLpR?bXQElJ6uk>+3>>-7PXuB)TM5#nZgq5;$E%SFtecPaJ0%TS**={bON%qrzd4xg*+#v}hJzSvsgk!6-y zW|?J{S!S7KmRV+*W&Rh$s(bcK8V-cOT@%3FzvqF256tEXaNr5tdif3w;2z8a2bDdw zcr`TihG;IvBZ?~@gEiF=ux4R(#*h7b^D-GFXM!s;l$4y%ZLss~ESp<5&&yPZ*QZ{e zmuFvpb{=k=i20u*+t}FKhfgxO|K&yaLF~$xf4CCpxtC^mM7i2SKq3-YqzO8;{>MK9yy%}pkZw^Z_r()v#r3R80Y3nZmc$e}rD4U!N2P)z#j zx%gn*@avEjWKpoaWiIf{g0zKR)wXvpyS?lbEUvw`=6JJfLp8Cb5p4{B`gC%qGA+ zv)Gadg<_pO&q!L@J}yf#4~M_m_szbgb9mq3h4@+dJ;2XDA3nTK_)=^4-*&gMPFQc) z)^qBqXqKkIJ|{v@UjQHDbMWMoPi}e=vtO#TC_{n zTH4WQ0lJn(#~6$ZWD@2=i4JAj29%B&#%kDMkY9zaP1=)S+4A+9YxVJq| zl9{u2VRwOj6%O@P7hG@wJ2@iU-^CO1fZ+c-)*4g!jV=-ARDsiPuwg}%tuT-(nKTUi3Cp2r?tat@@kEVPUmam6ZzFwE_rMT%u z)**Tgi|>3gBU?{#TU^4frfyKQh>BJ~wf511e5p+gZAt32kaQX0dPzQq)3N5b8rG2Y z7CGhRvpE0^+BYFrqI#QCQXw?*0r>0y3&+3g;MsS zO(1cuq0)+(RUbC>#R@`1ROk=|SDA6*=A5W7MQA~oqTQhEp~z+%1fPd5^KaOb-|zXI z+;i_W8Mc1U`Tg!qmJNsX2D?$L*Mw5=MWG3lyc0dwF+w8RAwV1F40> zdpNwuP-4Az3~MDO_mVt5BGBR@wKVv-(-JEVT4S_Y14~P(C9s0bk^r&R2(42!O3-51 zVv;yuj&jPwmhlO{TvJ@t+}kJhrT(U-L#uHUY(e$9GHYc8KhRIRIp%#}OQ?lJWiwSI zc(7vW7z)NrKAw*C%w`MOWUg@P+Y51%vC`N2SimhBOmI1q@s*Fv? zL9xS?eD7jB4{9Z|5B_IaotS^?=mbSfD7z>n*tW~6y&*@6OY3nI5BSLR28*wPA-+!`UZ z9JT;1GHVY3WbJ8v*g$#$vxq1xIa=`5HE~-FAGt!{`nTP>M0CCO05pZKFvjE41Y6&e zRuFh~R>*Z zlZq>Mun&1=%j(N!WmvB_8b+<-XC7oZvL9>-wXmkfF%Fu<4Ib$j=9?qv7{~L4VGJE- za0f;*7D>+rkbY_M8;I4!YFO(CJ(6KAws&^6L%OvEwJ00^GTri(k6Nf8?%mbaR)|{@ z;UY2YwiI6#V#~}Hpfywe#;~=*DLVJNEH zp}A3YP^)gxa;ebLu;!L7?B6~Beep#ns>H5e=bG5k0F!WN!7Q^|O==mo%xn=$j!{f< z3Y#)alH>~OHj`m)i_}6Ywh(8pl3GZ$TVyQ%9+=3kkw93wtAC=%Bna=4Ry8g_i;2+R z0;KWtAq^_L{Bq#p5xgS07?jkCOKy#^V07Gq$SmO(HlO1nxDX^)4DjOL;~6sRI2PTO zR*Bpxg%(A(rCMWXM@zUxYGE_4MZUCjTS_D>HCO=(n^h!K~9y?bBDsanJhOumv3AXgJz1~6y0*xR}uXl}LbZC#R5@q-Mr&{xwyd{ByjYDGgqHm~;7k4zHhrU&-wM}>hOLm@q6AxXSv6VE z5$uK?2AvksgiSwms+-KJ$rAAs+$05J_9rmgE9KRS1E>`#v0Y@B>v5fy12oAV7k2n9 zB%wvE=!s%W-4>Sktz)banWvkE%LCUylUr1YA=sj5w-_p(5I1Cyxvi(d*b*Prsy5UE ze^E+Ar53SO0=AYKG+T~Z2f!BiGd=~Y)ju=W6R&g}&R1|TwURFs^6ps4<4_m|#fHJ2 z*hF!vT*SBRqZ>A}kSL;VTqs7P#MWDCxB4Q((<~C1v20(@aA7uyCzs9gg8u=rHRyL+ zgjOPo4QN8*7$u>UVZ>Ebf@dbh8t5g?>~n-{L|1Fse%iI>5TY@cvRvaC9uOUBg*xG9v|2<`vmWbDxpp{Y!oGRf6)$Y{lHD8$s zzvV}k+x&Lx$6!BR^w|T@Ll41hDYo7Kr;rkQifn7Qj9S7IueYUAL?IojxM69rs39K= z`z@p?WVhhAKHem^)NUEJx(!@vpjh>BQ7i-%Ty$79WOsM1o999 zmT3vTi!yRibXp27Y)F!8Oxza5gJNsM1J^O=?SR|j3S37_soSF6Qq>Tr%xyv73^&1+ z=eF?5!<8J7P|$3>WFO^$?~+=6vt`s;anw41+XA-mmHE~3+(aakm%GvMcuh2g4V6MBl8jF$7W(IA`pe@eE32cU{o`F_#g^DD_^rO4LRuQ~Bv&Sv%PvMDi^+64 zoB5w^OPI9^UV&LcD{h3B1%%DqmRc@%x(;e-D72d3LfmzU2!aa{c3Z1vx72GT)NUaY zWh)OEa?~Qx%$B*WsB>F`Yy9CI8(WbP2=FRwwooF%Z3(p0Z8@`b+PjP>TSLVH5%2=E z04#6|^AqKS49v07>YQ$XkDcs&$8|v=H zZ}ViQYPrO#HFZeBG`LJ|;eW=AlurXH!IqjWf=i|7Vu;LbjT}djc!Aua-O@r42?gAi zwYN@Ka|=>v1!PMIv=*Mv!GGQBk*L*y;zj9JcgIB3ts(+|r)>>kM&QPe4*4&TDH60*hRJ7@tZpVktQ*n;bCK-SkHwO-#Z zwoo8Wm7^1wbchu41w2MY)jZ*tsFaCNC7zAv(YY$(sqbY}m*u&{!p!*8oWm9bZV_A4 zg|u|!u_e>FbUqo&6e1Ng<`3?+v_xDDiv)TF8Mawu6%wp6u|Sliwu{W-5>l<-rQ1@3 z1zne`5!G(dYz3>t#01w7ZEq!JtQ*gi6Tw#R_I5kBMQYJ)8Mf4H0b1g+}4jiXkF6H*W1G2RsdTJ&v8-rbz2{c z%xxLBkc|5)46fT;E>wcUc2^TWfdpGaLqZ@t7{$*VX>%dD3CJK}6rE*QlW!ZwrDK5P z0Hu*;2nvFLNK1&6)E;s)8>5j_x{)4;w4l^zHcH7+0|{Y{lokmE6s7$8?)|hcJB}UO zaqoJr`@GKU{1twn8J?$n3i}X}&?mtuQY74&8+P&b4;-JQapNF37(Z;{S>JKDCK$ON zQvm5MtVZHfv|9l}E+>ik5$cYO7y!Y?@NS1v5E>Sfu^GIVcJ~(TZ_ht?MF(i&f~Mi` zwhZXyF!+&P>aLy+{Q@~iOSQ7x`B?vmUd;OBv3RxSak$w@p1~bCMGKiX9Yr-2o%0GG z%81GazGK&Pf|YcUPB`C2L%~-cE!}3;e@ybw0w*;4BHEqW9#D5L0sV%cO!}Il0k`!Z zqwqC`A))$?PW5bCH|#DZaQW$~ok(*UFu4OJfA_cOg{&7TF8S~8G)Mev1&&q{b(lkF z#d16m5;vbz3GQ%plT!V8;I^(v`jvO#5l$k#2H%E<6_jcf9*-QgSktA3d!~Dt)H9FO zGp=Y+FlRsaf3>uC@Dv-rO1Kc!s0@}Oe)XEkc|lfsy2C%=oh55k{G2A{yRkHgza!V$ zdkL@#eP`LKrwS)3D^MnHo+z7p)feiNJx$C00Fx6x0@3a7)Uik2tHad$SW|r)*LFq; z;>$=)G=tQ2L8Rm$A*mIhmsz(Aq1G&`y31@2$Cp(JGpivz6;mW`(LZ)sfADE6n^n?8 ziCWbPy+e)F4zf%tSy0yUI^+lbn$LT|?iK6C(;~8<@B8K}RE-ik#i<|j$5M>o)U2ik z9zSeWurNv+uzmW*0Ag=+fcN_@#irp54-QjSo^!U$_SV1JjV6aL< zO?46jMc{k1Dr@bnAKtgeVxRdYXv>C@XL)0pbDL6ce_ze+NUbX0y)(w1&!|HxQOWAX zTvQm%;C-wprbrLsZ%8A65=67Ki9IAo#47{-z|<(!ly^VECYn~kph_h@;9G^HZFbkni%D`JUpH%0Q1c)qtfF8$;)qD>T z;mm43|1?Fy_I=NLc6-y)^x?m@^KXa$9I;$zUBN~66svh8)e0$Zj8WyL<+~(t13edU z&{UaFy{qf4+4@gM7Btww1Ro=3jE|KC>;v!xuG41m%p7ju5ezdEDQD-KcRXI(*$R%e zxXnmt$8xj)DG)Z|JS)&%7;emTRrGv-UiZq>0HVlqdnLphVW$+ZlT6_VhXn@0lwYMg z&yi_EDbb^n)1aA|r6r9x{TaPut+S{8ZD~v4!zv>)Ii(uL_Dwp-by&sfR*uo1A>Z51 zUjpwWbc2OEatkINDJwH2K?eF63uE*vRu1jB#kQNd=Lo+q2&kgNJJ^pt@$E}Ue>f*d zECLd7XC;t$r<=;-)mjsCMH~!YhU4%Dh6s(;e3-LAkc-pcR6UI3QYeQM%eyYMS1ky& zd2!xey`Q+jtVT+}?Sm*aP^)lV@Kc{ql7Ft9E4}aG-PZg5QSc|4|4^zc1Vt4PXa}>4 zwN0&yH0JwJw?wW#=k5LBXnR{Ku3zEOt}s*kvX5X{);RdedbnItc@kkRfVJIRu=H}eb}<5&8VH12U@V%{A0 zCq(oWNzmwsFpa=fp09Sl3F{@M;FMlv@+Rbm9r%{aZLsxnp63Rr&Q3XjZt8pzVZ6|E z2=ziHOhSHdsa#Hae}ky;#O%JB9FYya@d{TIdCP80n`uPyJ

BHVm^f#CZN6Z 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 z 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%0Dvj~P$02C(+45qU<-ok&+HbbwFEg3 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 literal 0 HcmV?d00001 diff --git a/apps/formbricks-com/pages/blog/github-accelerator-experience/index.mdx b/apps/formbricks-com/pages/blog/github-accelerator-experience/index.mdx new file mode 100644 index 0000000000..ec2233b95b --- /dev/null +++ b/apps/formbricks-com/pages/blog/github-accelerator-experience/index.mdx @@ -0,0 +1,122 @@ +import Image from "next/image"; +import LayoutMdx from "@/components/shared/LayoutMdx"; +import TitleImage from "./formbricks-sponsored-by-github-accelerator-2023.webp"; +import Demo from "./our-experience-github-acc-demo-screenshot.png"; +import Mail from "./github-accelerator-selection-mail.png"; +import Teams from "./github-accelerator-2022-teams.png"; +import NewsletterSignup from "@/components/shared/NewsletterSignup"; + +export const meta = { + title: "Our GitHub Accelerator Experience πŸ‘€", + description: + "What we learned during the first GitHub Open-Source Accelerator Programm - our experience and if we would do it again.", + date: "2023-04-13", +}; + +_We were among the first 20 teams ever to run through the Open-Source Accelerator by Github. Read about our experience and if we would do it again:_ + +GitHub sponsors Formbricks to join their open-source accelerator program + +## Hey there, + +In December of last year, we completed a rather brief questionnaire to apply for the inaugural batch of the GitHub Open-Source Accelerator. With not much information available, we went ahead and applied, hoping for the best. The timing couldn't have been more perfect, as both Matti and I had just wrapped up our freelance gigs to start working full-time on Formbricks. + +As Christmas, New Year's Eve, and my birthday passed, we continued working diligently on Formbricks, iterating to pinpoint the right niche offering. Over the preceding months, we had learned what wouldn't constitute a good venture case ([Typeform open-source](https://formbricks.com/blog/open-source-qualtrics-beats-typeform)), what wasn't technically feasible (building blocks for all form and survey solutions), and what was too narrow to start with ([PMF survey only](https://www.producthunt.com/products/product-market-fit-survey-by-formbricks)). + +January and February came and went. On the 22nd of March, we received an email from the GitHub team: + +GitHub invited us to join the GitHub Accelerator and share our experience + +Needless to say, we were thrilled! We were selected from over 1000 open-source projects, alongside renowned and popular projects like [Nuxt](https://github.com/nuxt/nuxt), [TRPC](https://github.com/trpc/trpc), and [Responsively App](https://github.com/responsively-org/responsively-app). Here is a summary of what we got: + +### What we got on paper + +βœ… Ten sessions with **well-known** figures from the open-source community (Wednesdays) + +βœ… Ten optional co-working sessions (Fridays) + +βœ… 20k USD divided among all contributors + +βœ… One-on-one session with the GitHub team to align on goals and objectives + +### What we also gained + +πŸ‘Œ Network of builders, maintainers, and founders in the open-source space + +πŸ‘Œ Solid connection with GitHub (including a warm introduction to GitHub's venture arm 😏) + +πŸ‘Œ Enhanced credibility in the open-source community, thanks to association with such a significant supporter of open source + +I mean look at all these happy people: + +GitHub invited us to join the GitHub Accelerator and share our experience + +Here's an overview of the ten sessions and their relevance to us as a venture-focused startup: + +**Week 1: Kick-Off, Licensing 101 and setting up with [Abby](https://twitter.com/abbycabs)** + +Great to meet everyone, Abby is a great host and the licensing session was very useful. We had already decided on our license but it was useful nontheless. + +**Week 2: Finding Sponsors with [Caleb Porzio](https://twitter.com/calebporzio)** + +This was a really fun one! Caleb is a driven entrepreneur with many ideas and loooots of experience monetizing his two main projects [Livewire](https://laravel-livewire.com/) and [Alpine.js](https://alpinejs.dev/). Come up with a way to monetize a popular OS project, Caleb scaled it. Not suuuper relevant for us though. + +**Week 3: Taking Funding: [Brian Douglas](https://twitter.com/bdougieYO)** + +Brian is building [OpenSauced](https://opensauced.pizza/) and shared his journey of raising VC as an OS startup. Lots of great insights, Brian is super approachable 😊 + +**Week 4: [Evan You](https://evanyou.me/): Sustainable Open Source** + +Evan You famously created Vue.js (which is on track to pass React in GitHub ⭐) and Vite. Evan had a lot of useful Do’s and Dont’s for us, great session! + +**Week 5:** Didn't happen due to Maintainer Summit. + +**Week 6: [Mike Perham](https://github.com/mperham) - Starting a Software Business** + +Mike is an absolute legend! With [SideKiq](https://sidekiq.org/) he makes over 300k USD per month 🀯 He was very open and down to earth. One of his best advice: If a customer annoys you, stop serving them. He was able to pull this off because he has been blogging about Ruby for years and is well-known in the community. And, obviously, his solution kicks ass! + +**Week 7: Duane O’Brien and Dawn Foster: Working with Enterprises** + +Lots of useful insights around how enterprises handle open-source, barriers for corporate use and how to handle corporate sponsorships and donations. The notes will come in really handy down the line! + +**Week 8: [Marko Saric](https://twitter.com/markosaric): SaaS-side of Open Source** + +Marko is the marketing co-founder of [Plausible](https://plausible.io/). I think everyone in the SaaS space knows Plausible since they hit 1M ARR bootstrapped. Marko also blogged a lot about Plausible which really helped it grow in the first years. Gifted marketeer, great session! + +**Week 9: Governance with [Shauna Gordon-McKeon](https://github.com/shaunagm/)** + +For us this wasn’t super relevant as Formbricks is ruled by a BDFL (Benevolent Dictator For Life) i.e. us but the discussion among the teams was really insightful. Helped us a great deal to understand the challenges of purely community-driven projects. + +**Week 10: VC Funding and the legal Side of OSS with [Erica Brescia](https://twitter.com/ericabrescia) from Redpoint** + +Ericas talk was really impressive and so is she: Founder of Bitnami, COO of GitHub and Board Member of the Linux Foundation all happened before she started as an investor at Redpoint Ventures. Her deep insights from both the founder and the VC perspective are invaluable! + +**GitHub Demo Day:** All teams presented what they achieved during the 10 week programm. It was great fun to present Formbricks, [you can watch it on Youtube.](https://www.youtube.com/live/Gj6Bez2182k?feature=share&t=1448) + +## Would we do it again? And should you? + +Yes, absolutely. The sessions were excellent, we met a handful of inspiring builders, and the 20k USD was a helpful financial boost. The application process might evolve, but since all of your code is open-source anyway, you might as well throw your hat in the ring. + +**Gratitude to Kara, Abby, and the entire GitHub team - we learned a lot! 😊** + +GitHub sponsors Formbricks to join their open-source accelerator program + + + +export default ({ children }) => {children}; diff --git a/apps/formbricks-com/pages/blog/github-accelerator-experience/our-experience-github-acc-demo-screenshot.png b/apps/formbricks-com/pages/blog/github-accelerator-experience/our-experience-github-acc-demo-screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..2a488ea360f8ef86a4c570c2bc1f2c356cfe7dd9 GIT binary patch literal 115981 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 #+!`bO)xo-f`iQ8y}k!t{WBy$w28=5d-IIa7H~( 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 literal 0 HcmV?d00001 diff --git a/package.json b/package.json index 8b5ae93c3c..0dcb3faa68 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "db:migrate:deploy": "turbo run db:migrate:deploy", "db:migrate:vercel": "turbo run db:migrate:vercel", "db:push": "turbo run db:push", - "dev": "turbo run dev --parallel --filter=!formbricks-com", + "dev": "turbo run dev --parallel --filter=web... --filter=demo...", "start": "turbo run start --parallel", "format": "prettier --write \"**/*.{ts,tsx,md}\"", "generate": "turbo run generate", From 60c96fe3f9ac9ae4b793f306b5e1125414c3ca87 Mon Sep 17 00:00:00 2001 From: Subhodip Roy <75121304+subh-cs@users.noreply.github.com> Date: Fri, 7 Jul 2023 15:58:47 +0530 Subject: [PATCH 20/41] Build Display service and rebuild display endpoint in app directory (#432) * created new create-display and updated display endpoints with zod, db service-layer, and next.js route handlers * changed the api URL and changed few type definations * new getTeamDetails service is created which will be further used by display and response endpoints * changed the prisma call with getTeamDetails service * created display services and zod validation schema * removed envId from func parameter * fix build error by adding a type annotation * Moved the return inside try block * Removed comments * changed the update display service name to markDisplayResponded * Update route.ts * reference person type in display, check response code first then transform to json * add createdAt & updatedAt to person when query display * pnpm format * small optimizations --------- Co-authored-by: Matthias Nannt --- .../displays/[displayId]/responded/route.ts | 39 +++---- apps/web/app/api/v1/client/displays/route.ts | 110 +++++++----------- .../v1/client/responses/[responseId]/route.ts | 5 + apps/web/app/api/v1/client/responses/route.ts | 45 ++----- apps/web/lib/formbricks.ts | 4 +- apps/web/lib/linkSurvey/linkSurvey.ts | 18 +-- packages/js/src/lib/display.ts | 24 ++-- packages/lib/client/display.ts | 31 ++--- packages/lib/services/displays.ts | 100 ++++++++++++++++ packages/lib/services/teamDetails.ts | 50 ++++++++ packages/types/v1/displays.ts | 20 ++++ 11 files changed, 272 insertions(+), 174 deletions(-) create mode 100644 packages/lib/services/displays.ts create mode 100644 packages/lib/services/teamDetails.ts create mode 100644 packages/types/v1/displays.ts diff --git a/apps/web/app/api/v1/client/displays/[displayId]/responded/route.ts b/apps/web/app/api/v1/client/displays/[displayId]/responded/route.ts index 154646b83e..8901832fc4 100644 --- a/apps/web/app/api/v1/client/displays/[displayId]/responded/route.ts +++ b/apps/web/app/api/v1/client/displays/[displayId]/responded/route.ts @@ -1,10 +1,5 @@ -/* -THIS FILE IS WORK IN PROGRESS -PLEASE DO NOT USE IT YET -*/ - import { responses } from "@/lib/api/response"; -import { prisma } from "@formbricks/database"; +import { markDisplayResponded } from "@formbricks/lib/services/displays"; import { NextResponse } from "next/server"; export async function OPTIONS(): Promise { @@ -14,21 +9,21 @@ export async function OPTIONS(): Promise { export async function POST(_: Request, { params }: { params: { displayId: string } }): Promise { const { displayId } = params; - const display = await prisma.display.update({ - where: { - id: displayId, - }, - data: { - status: "responded", - }, - }); + if (!displayId) { + return responses.badRequestResponse("Missing displayId"); + } - return responses.successResponse( - { - ...display, - createdAt: display.createdAt.toISOString(), - updatedAt: display.updatedAt.toISOString(), - }, - true - ); + try { + const display = await markDisplayResponded(displayId); + return responses.successResponse( + { + ...display, + createdAt: display.createdAt.toISOString(), + updatedAt: display.updatedAt.toISOString(), + }, + true + ); + } catch (error) { + return responses.internalServerErrorResponse(error.message); + } } diff --git a/apps/web/app/api/v1/client/displays/route.ts b/apps/web/app/api/v1/client/displays/route.ts index 1af85cb8a6..bd68430bb8 100644 --- a/apps/web/app/api/v1/client/displays/route.ts +++ b/apps/web/app/api/v1/client/displays/route.ts @@ -1,11 +1,11 @@ -/* -THIS FILE IS WORK IN PROGRESS -PLEASE DO NOT USE IT YET -*/ - import { responses } from "@/lib/api/response"; -import { prisma } from "@formbricks/database"; +import { transformErrorToDetails } from "@/lib/api/validator"; +import { InvalidInputError } from "@formbricks/errors"; import { capturePosthogEvent } from "@formbricks/lib/posthogServer"; +import { createDisplay } from "@formbricks/lib/services/displays"; +import { getSurvey } from "@formbricks/lib/services/survey"; +import { getTeamDetails } from "@formbricks/lib/services/teamDetails"; +import { TDisplay, ZDisplayInput } from "@formbricks/types/v1/displays"; import { NextResponse } from "next/server"; export async function OPTIONS(): Promise { @@ -13,76 +13,50 @@ export async function OPTIONS(): Promise { } export async function POST(request: Request): Promise { - const { surveyId, personId, environmentId } = await request.json(); + const jsonInput: unknown = await request.json(); + const inputValidation = ZDisplayInput.safeParse(jsonInput); - if (!surveyId) { - return responses.missingFieldResponse("surveyId", true); + if (!inputValidation.success) { + return responses.badRequestResponse( + "Fields are missing or incorrectly formatted", + transformErrorToDetails(inputValidation.error), + true + ); } - if (!environmentId) { - return responses.missingFieldResponse("environmentId", true); + const displayInput = inputValidation.data; + + // find environmentId from surveyId + let survey; + + try { + survey = await getSurvey(displayInput.surveyId); + } catch (error) { + if (error instanceof InvalidInputError) { + return responses.badRequestResponse(error.message); + } else { + return responses.internalServerErrorResponse(error.message); + } } - // get teamId from environment - const environment = await prisma.environment.findUnique({ - where: { - id: environmentId, - }, - select: { - product: { - select: { - team: { - select: { - id: true, - memberships: { - select: { - userId: true, - role: true, - }, - }, - }, - }, - }, - }, - }, - }); + // find teamId & teamOwnerId from environmentId + const teamDetails = await getTeamDetails(survey.environmentId); - if (!environment) { - return responses.notFoundResponse("Environment", environmentId, true); + // create display + let display: TDisplay; + try { + display = await createDisplay(displayInput); + } catch (error) { + if (error instanceof InvalidInputError) { + return responses.badRequestResponse(error.message); + } else { + return responses.internalServerErrorResponse(error.message); + } } - const teamId = environment.product.team.id; - // find team owner - const teamOwnerId = environment.product.team.memberships.find((m) => m.role === "owner")?.userId; - - const createBody: any = { - select: { - id: true, - }, - data: { - status: "seen", - survey: { - connect: { - id: surveyId, - }, - }, - }, - }; - - if (personId) { - createBody.data.person = { - connect: { - id: personId, - }, - }; - } - - // create new display - const display = await prisma.display.create(createBody); - - if (teamOwnerId) { - await capturePosthogEvent(teamOwnerId, "display created", teamId, { - surveyId, + if (teamDetails?.teamOwnerId) { + await capturePosthogEvent(teamDetails.teamOwnerId, "display created", teamDetails.teamId, { + surveyId: displayInput.surveyId, }); } else { console.warn("Posthog capture not possible. No team owner found"); diff --git a/apps/web/app/api/v1/client/responses/[responseId]/route.ts b/apps/web/app/api/v1/client/responses/[responseId]/route.ts index 5e706814bb..adfa537e2a 100644 --- a/apps/web/app/api/v1/client/responses/[responseId]/route.ts +++ b/apps/web/app/api/v1/client/responses/[responseId]/route.ts @@ -16,6 +16,11 @@ export async function PUT( { params }: { params: { responseId: string } } ): Promise { const { responseId } = params; + + if (!responseId) { + return responses.badRequestResponse("Response ID is missing", undefined, true); + } + const responseUpdate = await request.json(); const inputValidation = ZResponseUpdateInput.safeParse(responseUpdate); diff --git a/apps/web/app/api/v1/client/responses/route.ts b/apps/web/app/api/v1/client/responses/route.ts index 00bd2bc513..d6e7a0d5c0 100644 --- a/apps/web/app/api/v1/client/responses/route.ts +++ b/apps/web/app/api/v1/client/responses/route.ts @@ -1,13 +1,13 @@ import { responses } from "@/lib/api/response"; import { transformErrorToDetails } from "@/lib/api/validator"; import { sendToPipeline } from "@/lib/pipelines"; -import { prisma } from "@formbricks/database"; import { InvalidInputError } from "@formbricks/errors"; import { capturePosthogEvent } from "@formbricks/lib/posthogServer"; import { createResponse } from "@formbricks/lib/services/response"; import { getSurvey } from "@formbricks/lib/services/survey"; +import { getTeamDetails } from "@formbricks/lib/services/teamDetails"; import { captureTelemetry } from "@formbricks/lib/telemetry"; -import { TResponseInput, ZResponseInput } from "@formbricks/types/v1/responses"; +import { TResponse, TResponseInput, ZResponseInput } from "@formbricks/types/v1/responses"; import { NextResponse } from "next/server"; import { UAParser } from "ua-parser-js"; @@ -40,41 +40,9 @@ export async function POST(request: Request): Promise { } } - // prisma call to get the teamId - // TODO use services - const environment = await prisma.environment.findUnique({ - where: { id: survey.environmentId }, - include: { - product: { - select: { - team: { - select: { - id: true, - memberships: { - where: { role: "owner" }, - select: { userId: true }, - take: 1, - }, - }, - }, - }, - }, - }, - }); - - if (!environment) { - return responses.internalServerErrorResponse("Environment not found"); - } - const { - product: { - team: { id: teamId, memberships }, - }, - } = environment; - - const teamOwnerId = memberships[0]?.userId; - - let response; + const teamDetails = await getTeamDetails(survey.environmentId); + let response: TResponse; try { const meta = { userAgent: { @@ -113,8 +81,9 @@ export async function POST(request: Request): Promise { } captureTelemetry("response created"); - if (teamOwnerId) { - await capturePosthogEvent(teamOwnerId, "response created", teamId, { + + if (teamDetails?.teamOwnerId) { + await capturePosthogEvent(teamDetails.teamOwnerId, "response created", teamDetails.teamId, { surveyId: response.surveyId, surveyType: survey.type, }); diff --git a/apps/web/lib/formbricks.ts b/apps/web/lib/formbricks.ts index 703e569812..b0727e5130 100644 --- a/apps/web/lib/formbricks.ts +++ b/apps/web/lib/formbricks.ts @@ -7,7 +7,7 @@ export const createResponse = async ( surveyId: SurveyId, data: { [questionId: string]: any }, finished: boolean = false -) => { +): Promise => { const api = formbricks.getApi(); const personId = formbricks.getPerson()?.id as PersonId; return await api.createResponse({ @@ -22,7 +22,7 @@ export const updateResponse = async ( responseId: ResponseId, data: { [questionId: string]: any }, finished: boolean = false -) => { +): Promise => { const api = formbricks.getApi(); return await api.updateResponse({ responseId, diff --git a/apps/web/lib/linkSurvey/linkSurvey.ts b/apps/web/lib/linkSurvey/linkSurvey.ts index 8c251209de..6569eea2dd 100644 --- a/apps/web/lib/linkSurvey/linkSurvey.ts +++ b/apps/web/lib/linkSurvey/linkSurvey.ts @@ -49,13 +49,11 @@ export const useLinkSurveyUtils = (survey: Survey) => { if (isPreview) return; // create display - createDisplay( - { surveyId: survey.id }, - `${window.location.protocol}//${window.location.host}`, - survey.environmentId - ).then((display) => { - setDisplayId(display.id); - }); + createDisplay({ surveyId: survey.id }, `${window.location.protocol}//${window.location.host}`).then( + (display) => { + setDisplayId(display.id); + } + ); } } }, [survey, isPreview, isLoadingPerson]); @@ -117,11 +115,7 @@ export const useLinkSurveyUtils = (survey: Survey) => { `${window.location.protocol}//${window.location.host}` ); if (displayId) { - markDisplayResponded( - displayId, - `${window.location.protocol}//${window.location.host}`, - survey.environmentId - ); + markDisplayResponded(displayId, `${window.location.protocol}//${window.location.host}`); } setResponseId(response.id); } else if (responseId && !isPreview) { diff --git a/packages/js/src/lib/display.ts b/packages/js/src/lib/display.ts index 6fa59e882a..99bd850e1e 100644 --- a/packages/js/src/lib/display.ts +++ b/packages/js/src/lib/display.ts @@ -1,11 +1,12 @@ -import type { DisplayCreateRequest, JsConfig, Response } from "../../../types/js"; +import { TDisplay, TDisplayInput } from "@formbricks/types/v1/displays"; +import type { JsConfig } from "../../../types/js"; import { NetworkError, Result, err, ok, okVoid } from "./errors"; export const createDisplay = async ( - displayCreateRequest: DisplayCreateRequest, + displayCreateRequest: TDisplayInput, config: JsConfig -): Promise> => { - const url = `${config.apiHost}/api/v1/client/environments/${config.environmentId}/displays`; +): Promise> => { + const url = `${config.apiHost}/api/v1/client/displays`; const res = await fetch(url, { method: "POST", @@ -14,41 +15,38 @@ export const createDisplay = async ( }); if (!res.ok) { - const jsonRes = await res.json(); - return err({ code: "network_error", message: "Could not create display", status: res.status, url, - responseMessage: jsonRes.message, + responseMessage: await res.text(), }); } - const response = (await res.json()) as Response; + const jsonRes = await res.json(); - return ok(response); + return ok(jsonRes.data as TDisplay); }; export const markDisplayResponded = async ( displayId: string, config: JsConfig ): Promise> => { - const url = `${config.apiHost}/api/v1/client/environments/${config.environmentId}/displays/${displayId}/responded`; + const url = `${config.apiHost}/api/v1/client/displays/${displayId}/responded`; const res = await fetch(url, { method: "POST", headers: { "Content-Type": "application/json" }, }); - if (!res.ok) { - const jsonRes = await res.json(); + if (!res.ok) { return err({ code: "network_error", message: "Could not mark display as responded", status: res.status, url, - responseMessage: jsonRes.message, + responseMessage: await res.text(), }); } diff --git a/packages/lib/client/display.ts b/packages/lib/client/display.ts index 2bc4e4bbe8..f2002ff5ee 100644 --- a/packages/lib/client/display.ts +++ b/packages/lib/client/display.ts @@ -1,11 +1,10 @@ -import { DisplayCreateRequest } from "@formbricks/types/js"; +import { TDisplay, TDisplayInput } from "@formbricks/types/v1/displays"; export const createDisplay = async ( - displayCreateRequest: DisplayCreateRequest, - apiHost: string, - environmentId: string -): Promise<{ id: string }> => { - const res = await fetch(`${apiHost}/api/v1/client/environments/${environmentId}/displays`, { + displayCreateRequest: TDisplayInput, + apiHost: string +): Promise => { + const res = await fetch(`${apiHost}/api/v1/client/displays`, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(displayCreateRequest), @@ -14,21 +13,15 @@ export const createDisplay = async ( console.error(res.text); throw new Error("Could not create display"); } - return await res.json(); + const resJson = await res.json(); + return resJson.data; }; -export const markDisplayResponded = async ( - displayId: string, - apiHost: string, - environmentId: string -): Promise => { - const res = await fetch( - `${apiHost}/api/v1/client/environments/${environmentId}/displays/${displayId}/responded`, - { - method: "POST", - headers: { "Content-Type": "application/json" }, - } - ); +export const markDisplayResponded = async (displayId: string, apiHost: string): Promise => { + const res = await fetch(`${apiHost}/api/v1/client/displays/${displayId}/responded`, { + method: "POST", + headers: { "Content-Type": "application/json" }, + }); if (!res.ok) { throw new Error("Could not update display"); } diff --git a/packages/lib/services/displays.ts b/packages/lib/services/displays.ts new file mode 100644 index 0000000000..98d054fa1a --- /dev/null +++ b/packages/lib/services/displays.ts @@ -0,0 +1,100 @@ +import { prisma } from "@formbricks/database"; +import { TDisplay, TDisplayInput } from "@formbricks/types/v1/displays"; +import { Prisma } from "@prisma/client"; +import { DatabaseError, ResourceNotFoundError } from "@formbricks/errors"; +import { transformPrismaPerson } from "./person"; + +const selectDisplay = { + id: true, + createdAt: true, + updatedAt: true, + surveyId: true, + person: { + select: { + id: true, + createdAt: true, + updatedAt: true, + attributes: { + select: { + value: true, + attributeClass: { + select: { + name: true, + }, + }, + }, + }, + }, + }, + status: true, +}; + +export const createDisplay = async (displayInput: TDisplayInput): Promise => { + try { + const displayPrisma = await prisma.display.create({ + data: { + survey: { + connect: { + id: displayInput.surveyId, + }, + }, + status: "seen", + + ...(displayInput.personId && { + person: { + connect: { + id: displayInput.personId, + }, + }, + }), + }, + select: selectDisplay, + }); + + const display: TDisplay = { + ...displayPrisma, + person: transformPrismaPerson(displayPrisma.person), + }; + + return display; + } catch (error) { + if (error instanceof Prisma.PrismaClientKnownRequestError) { + throw new DatabaseError("Database operation failed"); + } + + throw error; + } +}; + +export const markDisplayResponded = async (displayId: string): Promise => { + try { + if (!displayId) throw new Error("Display ID is required"); + + const displayPrisma = await prisma.display.update({ + where: { + id: displayId, + }, + data: { + status: "responded", + }, + select: selectDisplay, + }); + + if (!displayPrisma) { + throw new ResourceNotFoundError("Display", displayId); + } + + const display: TDisplay = { + ...displayPrisma, + person: transformPrismaPerson(displayPrisma.person), + }; + + return display; + } catch (error) { + if (error instanceof Prisma.PrismaClientKnownRequestError) { + throw new DatabaseError("Database operation failed"); + } + + throw error; + } +}; diff --git a/packages/lib/services/teamDetails.ts b/packages/lib/services/teamDetails.ts new file mode 100644 index 0000000000..0c325d5fe3 --- /dev/null +++ b/packages/lib/services/teamDetails.ts @@ -0,0 +1,50 @@ +import { prisma } from "@formbricks/database"; +import { Prisma } from "@prisma/client"; +import { DatabaseError, ResourceNotFoundError } from "@formbricks/errors"; + +export const getTeamDetails = async (environmentId: string) => { + try { + const environment = await prisma.environment.findUnique({ + where: { + id: environmentId, + }, + select: { + product: { + select: { + team: { + select: { + id: true, + memberships: { + select: { + userId: true, + role: true, + }, + }, + }, + }, + }, + }, + }, + }); + + if (!environment) { + throw new ResourceNotFoundError("Environment", environmentId); + } + + const teamId: string = environment.product.team.id; + // find team owner + const teamOwnerId: string | undefined = environment.product.team.memberships.find( + (m) => m.role === "owner" + )?.userId; + + return { + teamId: teamId, + teamOwnerId: teamOwnerId, + }; + } catch (error) { + if (error instanceof Prisma.PrismaClientKnownRequestError) { + throw new DatabaseError("Database operation failed"); + } + throw error; + } +}; diff --git a/packages/types/v1/displays.ts b/packages/types/v1/displays.ts new file mode 100644 index 0000000000..dbec7b8d31 --- /dev/null +++ b/packages/types/v1/displays.ts @@ -0,0 +1,20 @@ +import { z } from "zod"; +import { ZPerson } from "./people"; + +export const ZDisplay = z.object({ + id: z.string().cuid2(), + createdAt: z.date(), + updatedAt: z.date(), + surveyId: z.string().cuid2(), + person: ZPerson.nullable(), + status: z.enum(["seen", "responded"]), +}); + +export type TDisplay = z.infer; + +export const ZDisplayInput = z.object({ + surveyId: z.string().cuid2(), + personId: z.string().cuid2().optional(), +}); + +export type TDisplayInput = z.infer; From 749fdd684ab27187183a09b4fc638f43d1a30468 Mon Sep 17 00:00:00 2001 From: Johannes Date: Fri, 7 Jul 2023 13:07:43 +0200 Subject: [PATCH 21/41] fix build error --- apps/formbricks-com/components/home/Hero.tsx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/apps/formbricks-com/components/home/Hero.tsx b/apps/formbricks-com/components/home/Hero.tsx index 45c5a2778b..243276887d 100644 --- a/apps/formbricks-com/components/home/Hero.tsx +++ b/apps/formbricks-com/components/home/Hero.tsx @@ -5,15 +5,13 @@ import CrowdLogoDark from "@/images/clients/crowd-logo-dark.svg"; import CrowdLogoLight from "@/images/clients/crowd-logo-light.svg"; import NILogoDark from "@/images/clients/niLogoDark.svg"; import NILogoLight from "@/images/clients/niLogoWhite.svg"; -import StackOceanLogoDark from "@/images/clients/stack-ocean-dark.png"; -import StackOceanLogoLight from "@/images/clients/stack-ocean-light.png"; import AnimationFallback from "@/public/animations/fallback-image-open-source-feedback-software.jpg"; import { Button } from "@formbricks/ui"; +import { ChevronRightIcon } from "@heroicons/react/24/outline"; import { usePlausible } from "next-plausible"; import Image from "next/image"; import { useRouter } from "next/router"; import HeroAnimation from "./HeroAnimation"; -import { ChevronRightIcon } from "@heroicons/react/24/outline"; export const Hero: React.FC = ({}) => { const plausible = usePlausible(); From 40dfea070c20e20d7a6db11edb6c57c532087d50 Mon Sep 17 00:00:00 2001 From: Johannes Date: Fri, 7 Jul 2023 13:54:16 +0200 Subject: [PATCH 22/41] fix lp & update blog --- apps/formbricks-com/components/home/Hero.tsx | 6 +++--- .../components/shared/BestPracticeNavigation.tsx | 2 +- .../pages/blog/github-accelerator-experience/index.mdx | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/formbricks-com/components/home/Hero.tsx b/apps/formbricks-com/components/home/Hero.tsx index 243276887d..89683ff154 100644 --- a/apps/formbricks-com/components/home/Hero.tsx +++ b/apps/formbricks-com/components/home/Hero.tsx @@ -18,11 +18,11 @@ export const Hero: React.FC = ({}) => { const router = useRouter(); return (

-
+
+ className="border-brand-dark rounded-full border px-6 py-1.5 text-sm text-slate-500 hover:bg-slate-100 dark:text-slate-300 dark:hover:bg-slate-800"> We're Open-Source | Star us on GitHub{" "} @@ -43,7 +43,7 @@ export const Hero: React.FC = ({}) => {

Trusted by

-
+
Cal Logo {BestPractices.map((bestPractice) => ( -
+
Date: Fri, 7 Jul 2023 15:58:15 +0200 Subject: [PATCH 23/41] Add t3 env for env validation (#498) * add t3 env for env validation * fix env variables that should be optional * update gitignore * add vercel ignore --- .env.docker | 1 + .env.example | 7 -- .gitignore | 1 + .vercelignore | 1 + apps/web/.env | 1 + apps/web/app/FormbricksClient.tsx | 9 +- apps/web/app/PosthogClientWrapper.tsx | 11 +- .../app/api/auth/[...nextauth]/authOptions.ts | 11 +- apps/web/app/api/v1/users/route.ts | 9 +- apps/web/app/auth/signup/page.tsx | 5 +- .../[environmentId]/PosthogIdentify.tsx | 3 +- .../settings/members/EditMemberships.tsx | 13 ++- apps/web/app/onboarding/Objective.tsx | 7 +- apps/web/app/onboarding/Role.tsx | 15 +-- apps/web/components/auth/SigninForm.tsx | 9 +- apps/web/components/auth/SignupForm.tsx | 28 ++--- apps/web/components/shared/LegalFooter.tsx | 13 ++- apps/web/env.mjs | 110 ++++++++++++++++++ apps/web/lib/email.ts | 15 +-- apps/web/lib/formbricks.ts | 3 +- apps/web/lib/jwt.ts | 7 +- apps/web/{next.config.js => next.config.mjs} | 9 +- apps/web/package.json | 2 +- .../surveys/[surveyId]/responses/index.ts | 3 +- .../api/v1/teams/[teamId]/invite/index.ts | 3 +- pnpm-lock.yaml | 35 ++++-- turbo.json | 2 + 27 files changed, 232 insertions(+), 101 deletions(-) create mode 100644 .vercelignore create mode 120000 apps/web/.env create mode 100644 apps/web/env.mjs rename apps/web/{next.config.js => next.config.mjs} (93%) diff --git a/.env.docker b/.env.docker index d8a4691b79..d0aef5181c 100644 --- a/.env.docker +++ b/.env.docker @@ -46,6 +46,7 @@ NEXTAUTH_URL=http://localhost:3000 # MAIL_FROM=noreply@example.com # SMTP_HOST=localhost # SMTP_PORT=1025 +# Enable SMTP_SECURE_ENABLED for TLS (port 465) # SMTP_SECURE_ENABLED=0 # Enable for TLS (port 465) # SMTP_USER=smtpUser # SMTP_PASSWORD=smtpPassword diff --git a/.env.example b/.env.example index 166a783e5b..3211d6eb9f 100644 --- a/.env.example +++ b/.env.example @@ -82,12 +82,6 @@ NEXT_PUBLIC_PRIVACY_URL= NEXT_PUBLIC_TERMS_URL= NEXT_PUBLIC_IMPRINT_URL= -# Disable Sentry warning -SENTRY_IGNORE_API_RESOLUTION_ERROR=1 - -# Enable Sentry Error Tracking -NEXT_PUBLIC_SENTRY_DSN= - # Configure Github Login NEXT_PUBLIC_GITHUB_AUTH_ENABLED=0 GITHUB_ID= @@ -100,7 +94,6 @@ GOOGLE_CLIENT_SECRET= # Stripe Billing Variables -NEXT_PUBLIC_STRIPE_PRICING_TABLE_ID= NEXT_PUBLIC_STRIPE_PUBLIC_KEY= STRIPE_SECRET_KEY= STRIPE_WEBHOOK_SECRET= diff --git a/.gitignore b/.gitignore index b0a21d17e7..2162d9e5ad 100644 --- a/.gitignore +++ b/.gitignore @@ -33,6 +33,7 @@ yarn-error.log* .env.test.local .env.production.local !packages/database/.env +!apps/web/.env # Prisma generated files packages/database/zod diff --git a/.vercelignore b/.vercelignore new file mode 100644 index 0000000000..e0cba584f0 --- /dev/null +++ b/.vercelignore @@ -0,0 +1 @@ +apps/web/.env \ No newline at end of file diff --git a/apps/web/.env b/apps/web/.env new file mode 120000 index 0000000000..c7360fb82d --- /dev/null +++ b/apps/web/.env @@ -0,0 +1 @@ +../../.env \ No newline at end of file diff --git a/apps/web/app/FormbricksClient.tsx b/apps/web/app/FormbricksClient.tsx index 4d54e6ef05..c51ab538ad 100644 --- a/apps/web/app/FormbricksClient.tsx +++ b/apps/web/app/FormbricksClient.tsx @@ -1,13 +1,14 @@ "use client"; +import { env } from "@/env.mjs"; import { formbricksEnabled } from "@/lib/formbricks"; import formbricks from "@formbricks/js"; import { useEffect } from "react"; /* if (typeof window !== "undefined" && formbricksEnabled) { formbricks.init({ - environmentId: process.env.NEXT_PUBLIC_FORMBRICKS_ENVIRONMENT_ID || "", - apiHost: process.env.NEXT_PUBLIC_FORMBRICKS_API_HOST || "", + environmentId: env.NEXT_PUBLIC_FORMBRICKS_ENVIRONMENT_ID || "", + apiHost: env.NEXT_PUBLIC_FORMBRICKS_API_HOST || "", logLevel: "debug", }); } */ @@ -16,8 +17,8 @@ export default function FormbricksClient({ session }) { useEffect(() => { if (formbricksEnabled && session.user && formbricks) { formbricks.init({ - environmentId: process.env.NEXT_PUBLIC_FORMBRICKS_ENVIRONMENT_ID || "", - apiHost: process.env.NEXT_PUBLIC_FORMBRICKS_API_HOST || "", + environmentId: env.NEXT_PUBLIC_FORMBRICKS_ENVIRONMENT_ID || "", + apiHost: env.NEXT_PUBLIC_FORMBRICKS_API_HOST || "", }); formbricks.setUserId(session.user.id); formbricks.setEmail(session.user.email); diff --git a/apps/web/app/PosthogClientWrapper.tsx b/apps/web/app/PosthogClientWrapper.tsx index cdf5eb7068..ddbb7635cd 100644 --- a/apps/web/app/PosthogClientWrapper.tsx +++ b/apps/web/app/PosthogClientWrapper.tsx @@ -1,21 +1,22 @@ "use client"; +import { env } from "@/env.mjs"; import { usePathname, useSearchParams } from "next/navigation"; import posthog from "posthog-js"; import { PostHogProvider } from "posthog-js/react"; import { useEffect } from "react"; -const posthogEnabled = process.env.NEXT_PUBLIC_POSTHOG_API_KEY && process.env.NEXT_PUBLIC_POSTHOG_API_HOST; +const posthogEnabled = env.NEXT_PUBLIC_POSTHOG_API_KEY && env.NEXT_PUBLIC_POSTHOG_API_HOST; // Check that PostHog is client-side (used to handle Next.js SSR) if ( typeof window !== "undefined" && posthogEnabled && - typeof process.env.NEXT_PUBLIC_POSTHOG_API_KEY === "string" && - typeof process.env.NEXT_PUBLIC_POSTHOG_API_HOST === "string" + typeof env.NEXT_PUBLIC_POSTHOG_API_KEY === "string" && + typeof env.NEXT_PUBLIC_POSTHOG_API_HOST === "string" ) { - posthog.init(process.env.NEXT_PUBLIC_POSTHOG_API_KEY, { - api_host: process.env.NEXT_PUBLIC_POSTHOG_API_HOST, + posthog.init(env.NEXT_PUBLIC_POSTHOG_API_KEY, { + api_host: env.NEXT_PUBLIC_POSTHOG_API_HOST, // Disable in development loaded: (posthog) => { if (process.env.NODE_ENV === "development") posthog.opt_out_capturing(); diff --git a/apps/web/app/api/auth/[...nextauth]/authOptions.ts b/apps/web/app/api/auth/[...nextauth]/authOptions.ts index 09c5a7f4fa..c1a5b29eb1 100644 --- a/apps/web/app/api/auth/[...nextauth]/authOptions.ts +++ b/apps/web/app/api/auth/[...nextauth]/authOptions.ts @@ -1,3 +1,4 @@ +import { env } from "@/env.mjs"; import { verifyPassword } from "@/lib/auth"; import { verifyToken } from "@/lib/jwt"; import { prisma } from "@formbricks/database"; @@ -120,12 +121,12 @@ export const authOptions: NextAuthOptions = { }, }), GitHubProvider({ - clientId: process.env.GITHUB_ID || "", - clientSecret: process.env.GITHUB_SECRET || "", + clientId: env.GITHUB_ID || "", + clientSecret: env.GITHUB_SECRET || "", }), GoogleProvider({ - clientId: process.env.GOOGLE_CLIENT_ID || "", - clientSecret: process.env.GOOGLE_CLIENT_SECRET || "", + clientId: env.GOOGLE_CLIENT_ID || "", + clientSecret: env.GOOGLE_CLIENT_SECRET || "", allowDangerousEmailAccountLinking: true, }), ], @@ -189,7 +190,7 @@ export const authOptions: NextAuthOptions = { }, async signIn({ user, account }: any) { if (account.provider === "credentials" || account.provider === "token") { - if (!user.emailVerified && process.env.NEXT_PUBLIC_EMAIL_VERIFICATION_DISABLED !== "1") { + if (!user.emailVerified && env.NEXT_PUBLIC_EMAIL_VERIFICATION_DISABLED !== "1") { return `/auth/verification-requested?email=${encodeURIComponent(user.email)}`; } return true; diff --git a/apps/web/app/api/v1/users/route.ts b/apps/web/app/api/v1/users/route.ts index ebaad578cb..81aba73296 100644 --- a/apps/web/app/api/v1/users/route.ts +++ b/apps/web/app/api/v1/users/route.ts @@ -3,14 +3,11 @@ import { verifyInviteToken } from "@/lib/jwt"; import { populateEnvironment } from "@/lib/populate"; import { prisma } from "@formbricks/database"; import { NextResponse } from "next/server"; +import { env } from "@/env.mjs"; export async function POST(request: Request) { let { inviteToken, ...user } = await request.json(); - if ( - inviteToken - ? process.env.NEXT_PUBLIC_INVITE_DISABLED === "1" - : process.env.NEXT_PUBLIC_SIGNUP_DISABLED === "1" - ) { + if (inviteToken ? env.NEXT_PUBLIC_INVITE_DISABLED === "1" : env.NEXT_PUBLIC_SIGNUP_DISABLED === "1") { return NextResponse.json({ error: "Signup disabled" }, { status: 403 }); } user = { ...user, ...{ email: user.email.toLowerCase() } }; @@ -99,7 +96,7 @@ export async function POST(request: Request) { await prisma.invite.delete({ where: { id: inviteId } }); } - if (process.env.NEXT_PUBLIC_EMAIL_VERIFICATION_DISABLED !== "1") { + if (env.NEXT_PUBLIC_EMAIL_VERIFICATION_DISABLED !== "1") { await sendVerificationEmail(userData); } return NextResponse.json(userData); diff --git a/apps/web/app/auth/signup/page.tsx b/apps/web/app/auth/signup/page.tsx index bcb654e864..a5f519967d 100644 --- a/apps/web/app/auth/signup/page.tsx +++ b/apps/web/app/auth/signup/page.tsx @@ -5,6 +5,7 @@ import { useSearchParams } from "next/navigation"; import { SignupForm } from "@/components/auth/SignupForm"; import FormWrapper from "@/components/auth/FormWrapper"; import Testimonial from "@/components/auth/Testimonial"; +import { env } from "@/env.mjs"; export default function SignUpPage() { const searchParams = useSearchParams(); @@ -18,9 +19,7 @@ export default function SignUpPage() {
{( - inviteToken - ? process.env.NEXT_PUBLIC_INVITE_DISABLED === "1" - : process.env.NEXT_PUBLIC_SIGNUP_DISABLED === "1" + inviteToken ? env.NEXT_PUBLIC_INVITE_DISABLED === "1" : env.NEXT_PUBLIC_SIGNUP_DISABLED === "1" ) ? ( <>

Sign up disabled

diff --git a/apps/web/app/environments/[environmentId]/PosthogIdentify.tsx b/apps/web/app/environments/[environmentId]/PosthogIdentify.tsx index 098bd8f047..99171d629d 100644 --- a/apps/web/app/environments/[environmentId]/PosthogIdentify.tsx +++ b/apps/web/app/environments/[environmentId]/PosthogIdentify.tsx @@ -1,9 +1,10 @@ "use client"; +import { env } from "@/env.mjs"; import type { Session } from "next-auth"; import { usePostHog } from "posthog-js/react"; import { useEffect } from "react"; -const posthogEnabled = process.env.NEXT_PUBLIC_POSTHOG_API_KEY && process.env.NEXT_PUBLIC_POSTHOG_API_HOST; +const posthogEnabled = env.NEXT_PUBLIC_POSTHOG_API_KEY && env.NEXT_PUBLIC_POSTHOG_API_HOST; export default function PosthogIdentify({ session }: { session: Session }) { const posthog = usePostHog(); diff --git a/apps/web/app/environments/[environmentId]/settings/members/EditMemberships.tsx b/apps/web/app/environments/[environmentId]/settings/members/EditMemberships.tsx index db68fc2ca0..29073e7084 100644 --- a/apps/web/app/environments/[environmentId]/settings/members/EditMemberships.tsx +++ b/apps/web/app/environments/[environmentId]/settings/members/EditMemberships.tsx @@ -1,7 +1,10 @@ "use client"; +import ShareInviteModal from "@/app/environments/[environmentId]/settings/members/ShareInviteModal"; import DeleteDialog from "@/components/shared/DeleteDialog"; import LoadingSpinner from "@/components/shared/LoadingSpinner"; +import CreateTeamModal from "@/components/team/CreateTeamModal"; +import { env } from "@/env.mjs"; import { addMember, deleteInvite, @@ -12,6 +15,8 @@ import { updateMemberRole, useMembers, } from "@/lib/members"; +import { useProfile } from "@/lib/profile"; +import { capitalizeFirstLetter } from "@/lib/utils"; import { Badge, Button, @@ -28,15 +33,11 @@ import { TooltipProvider, TooltipTrigger, } from "@formbricks/ui"; +import { ChevronDownIcon } from "@heroicons/react/20/solid"; import { PaperAirplaneIcon, ShareIcon, TrashIcon } from "@heroicons/react/24/outline"; import { useState } from "react"; import toast from "react-hot-toast"; import AddMemberModal from "./AddMemberModal"; -import CreateTeamModal from "@/components/team/CreateTeamModal"; -import { capitalizeFirstLetter } from "@/lib/utils"; -import { useProfile } from "@/lib/profile"; -import { ChevronDownIcon } from "@heroicons/react/20/solid"; -import ShareInviteModal from "@/app/environments/[environmentId]/settings/members/ShareInviteModal"; type EditMembershipsProps = { environmentId: string; @@ -191,7 +192,7 @@ export function EditMemberships({ environmentId }: EditMembershipsProps) { }}> Create New Team - {process.env.NEXT_PUBLIC_INVITE_DISABLED !== "1" && isAdminOrOwner && ( + {env.NEXT_PUBLIC_INVITE_DISABLED !== "1" && isAdminOrOwner && (
- {process.env.NEXT_PUBLIC_PASSWORD_RESET_DISABLED !== "1" && isPasswordFocused && ( + {env.NEXT_PUBLIC_PASSWORD_RESET_DISABLED !== "1" && isPasswordFocused && (
{ - {process.env.NEXT_PUBLIC_GOOGLE_AUTH_ENABLED === "1" && ( + {env.NEXT_PUBLIC_GOOGLE_AUTH_ENABLED === "1" && ( <> )} - {process.env.NEXT_PUBLIC_GITHUB_AUTH_ENABLED === "1" && ( + {env.NEXT_PUBLIC_GITHUB_AUTH_ENABLED === "1" && ( <> )}
- {process.env.NEXT_PUBLIC_SIGNUP_DISABLED !== "1" && ( + {env.NEXT_PUBLIC_SIGNUP_DISABLED !== "1" && (
New to Formbricks?
diff --git a/apps/web/components/auth/SignupForm.tsx b/apps/web/components/auth/SignupForm.tsx index dc93f572fb..4e772c7df8 100644 --- a/apps/web/components/auth/SignupForm.tsx +++ b/apps/web/components/auth/SignupForm.tsx @@ -1,15 +1,15 @@ "use client"; -import { Button } from "@formbricks/ui"; -import { PasswordInput } from "@formbricks/ui"; +import { GoogleButton } from "@/components/auth/GoogleButton"; +import IsPasswordValid from "@/components/auth/IsPasswordValid"; +import { env } from "@/env.mjs"; import { createUser } from "@/lib/users/users"; +import { Button, PasswordInput } from "@formbricks/ui"; import { XCircleIcon } from "@heroicons/react/24/solid"; import Link from "next/link"; import { useRouter, useSearchParams } from "next/navigation"; import { useRef, useState } from "react"; import { GithubButton } from "./GithubButton"; -import { GoogleButton } from "@/components/auth/GoogleButton"; -import IsPasswordValid from "@/components/auth/IsPasswordValid"; export const SignupForm = () => { const searchParams = useSearchParams(); @@ -33,7 +33,7 @@ export const SignupForm = () => { searchParams?.get("inviteToken") ); const url = - process.env.NEXT_PUBLIC_EMAIL_VERIFICATION_DISABLED === "1" + env.NEXT_PUBLIC_EMAIL_VERIFICATION_DISABLED === "1" ? `/auth/signup-without-verification-success` : `/auth/verification-requested?email=${encodeURIComponent(e.target.elements.email.value)}`; @@ -131,7 +131,7 @@ export const SignupForm = () => { className="focus:border-brand focus:ring-brand block w-full rounded-md shadow-sm sm:text-sm" />
- {process.env.NEXT_PUBLIC_PASSWORD_RESET_DISABLED !== "1" && isPasswordFocused && ( + {env.NEXT_PUBLIC_PASSWORD_RESET_DISABLED !== "1" && isPasswordFocused && (
{ - {process.env.NEXT_PUBLIC_GOOGLE_AUTH_ENABLED === "1" && ( + {env.NEXT_PUBLIC_GOOGLE_AUTH_ENABLED === "1" && ( <> )} - {process.env.NEXT_PUBLIC_GITHUB_AUTH_ENABLED === "1" && ( + {env.NEXT_PUBLIC_GITHUB_AUTH_ENABLED === "1" && ( <> {" "} )}
- {(process.env.NEXT_PUBLIC_TERMS_URL || process.env.NEXT_PUBLIC_PRIVACY_URL) && ( + {(env.NEXT_PUBLIC_TERMS_URL || env.NEXT_PUBLIC_PRIVACY_URL) && (
By signing up, you agree to our
- {process.env.NEXT_PUBLIC_TERMS_URL && ( + {env.NEXT_PUBLIC_TERMS_URL && ( Terms of Service )} - {process.env.NEXT_PUBLIC_TERMS_URL && process.env.NEXT_PUBLIC_PRIVACY_URL && and } - {process.env.NEXT_PUBLIC_PRIVACY_URL && ( + {env.NEXT_PUBLIC_TERMS_URL && env.NEXT_PUBLIC_PRIVACY_URL && and } + {env.NEXT_PUBLIC_PRIVACY_URL && ( Privacy Policy. diff --git a/apps/web/components/shared/LegalFooter.tsx b/apps/web/components/shared/LegalFooter.tsx index 0048be4632..0c866a33ba 100644 --- a/apps/web/components/shared/LegalFooter.tsx +++ b/apps/web/components/shared/LegalFooter.tsx @@ -1,18 +1,19 @@ +import { env } from "@/env.mjs"; import Link from "next/link"; export default function LegalFooter() { - if (!process.env.NEXT_PUBLIC_IMPRINT_URL && !process.env.NEXT_PUBLIC_PRIVACY_URL) return null; + if (!env.NEXT_PUBLIC_IMPRINT_URL && !env.NEXT_PUBLIC_PRIVACY_URL) return null; return (
- {process.env.NEXT_PUBLIC_IMPRINT_URL && ( - + {env.NEXT_PUBLIC_IMPRINT_URL && ( + Imprint )} - {process.env.NEXT_PUBLIC_IMPRINT_URL && process.env.NEXT_PUBLIC_PRIVACY_URL && | } - {process.env.NEXT_PUBLIC_PRIVACY_URL && ( - + {env.NEXT_PUBLIC_IMPRINT_URL && env.NEXT_PUBLIC_PRIVACY_URL && | } + {env.NEXT_PUBLIC_PRIVACY_URL && ( + Privacy Policy )} diff --git a/apps/web/env.mjs b/apps/web/env.mjs new file mode 100644 index 0000000000..92e3cd7149 --- /dev/null +++ b/apps/web/env.mjs @@ -0,0 +1,110 @@ +import { createEnv } from "@t3-oss/env-nextjs"; +import { z } from "zod"; + +export const env = createEnv({ + /* + * Serverside Environment variables, not available on the client. + * Will throw if you access these variables on the client. + */ + server: { + DATABASE_URL: z.string().url(), + PRISMA_GENERATE_DATAPROXY: z.enum(["1", "0", ""]).optional(), + NEXTAUTH_SECRET: z.string().min(1), + NEXTAUTH_URL: z.string().url().optional(), + MAIL_FROM: z.string().email().optional(), + SMTP_HOST: z.string().min(1).optional(), + SMTP_PORT: z.string().min(1).optional(), + SMTP_USER: z.string().min(1).optional(), + SMTP_PASSWORD: z.string().min(1).optional(), + SMTP_SECURE_ENABLED: z.enum(["1", "0"]).optional(), + GITHUB_ID: z.string().optional(), + GITHUB_SECRET: z.string().optional(), + GOOGLE_CLIENT_ID: z.string().optional(), + GOOGLE_CLIENT_SECRET: z.string().optional(), + STRIPE_SECRET_KEY: z.string().optional(), + STRIPE_WEBHOOK_SECRET: z.string().optional(), + CRON_SECRET: z.string().optional(), + NEXT_PUBLIC_POSTHOG_API_KEY: z.string().optional(), + NEXT_PUBLIC_POSTHOG_API_HOST: z.string().optional(), + }, + /* + * Environment variables available on the client (and server). + * + * πŸ’‘ You'll get type errors if these are not prefixed with NEXT_PUBLIC_. + */ + client: { + NEXT_PUBLIC_WEBAPP_URL: z.string().url().optional(), + NEXT_PUBLIC_EMAIL_VERIFICATION_DISABLED: z.enum(["1", "0"]).optional(), + NEXT_PUBLIC_PASSWORD_RESET_DISABLED: z.enum(["1", "0"]).optional(), + NEXT_PUBLIC_SIGNUP_DISABLED: z.enum(["1", "0"]).optional(), + NEXT_PUBLIC_INVITE_DISABLED: z.enum(["1", "0"]).optional(), + NEXT_PUBLIC_PRIVACY_URL: z + .string() + .url() + .optional() + .or(z.string().refine((str) => str === "")), + NEXT_PUBLIC_TERMS_URL: z + .string() + .url() + .optional() + .or(z.string().refine((str) => str === "")), + NEXT_PUBLIC_IMPRINT_URL: z + .string() + .url() + .optional() + .or(z.string().refine((str) => str === "")), + NEXT_PUBLIC_GITHUB_AUTH_ENABLED: z.enum(["1", "0"]).optional(), + NEXT_PUBLIC_GOOGLE_AUTH_ENABLED: z.enum(["1", "0"]).optional(), + NEXT_PUBLIC_STRIPE_PUBLIC_KEY: z.string().optional(), + NEXT_PUBLIC_FORMBRICKS_API_HOST: z + .string() + .url() + .optional() + .or(z.string().refine((str) => str === "")), + NEXT_PUBLIC_FORMBRICKS_ENVIRONMENT_ID: z.string().optional(), + NEXT_PUBLIC_FORMBRICKS_ONBOARDING_SURVEY_ID: z.string().optional(), + NEXT_PUBLIC_IS_FORMBRICKS_CLOUD: z.enum(["1", "0"]).optional(), + }, + /* + * Due to how Next.js bundles environment variables on Edge and Client, + * we need to manually destructure them to make sure all are included in bundle. + * + * πŸ’‘ You'll get type errors if not all variables from `server` & `client` are included here. + */ + runtimeEnv: { + DATABASE_URL: process.env.DATABASE_URL, + PRISMA_GENERATE_DATAPROXY: process.env.PRISMA_GENERATE_DATAPROXY, + NEXTAUTH_SECRET: process.env.NEXTAUTH_SECRET, + NEXTAUTH_URL: process.env.NEXTAUTH_URL, + MAIL_FROM: process.env.MAIL_FROM, + SMTP_HOST: process.env.SMTP_HOST, + SMTP_PORT: process.env.SMTP_PORT, + SMTP_USER: process.env.SMTP_USER, + SMTP_PASSWORD: process.env.SMTP_PASSWORD, + SMTP_SECURE_ENABLED: process.env.SMTP_SECURE_ENABLED, + GITHUB_ID: process.env.GITHUB_ID, + GITHUB_SECRET: process.env.GITHUB_SECRET, + GOOGLE_CLIENT_ID: process.env.GOOGLE_CLIENT_ID, + GOOGLE_CLIENT_SECRET: process.env.GOOGLE_CLIENT_SECRET, + STRIPE_SECRET_KEY: process.env.STRIPE_SECRET_KEY, + STRIPE_WEBHOOK_SECRET: process.env.STRIPE_WEBHOOK_SECRET, + CRON_SECRET: process.env.CRON_SECRET, + NEXT_PUBLIC_WEBAPP_URL: process.env.NEXT_PUBLIC_WEBAPP_URL, + NEXT_PUBLIC_EMAIL_VERIFICATION_DISABLED: process.env.NEXT_PUBLIC_EMAIL_VERIFICATION_DISABLED, + NEXT_PUBLIC_PASSWORD_RESET_DISABLED: process.env.NEXT_PUBLIC_PASSWORD_RESET_DISABLED, + NEXT_PUBLIC_SIGNUP_DISABLED: process.env.NEXT_PUBLIC_SIGNUP_DISABLED, + NEXT_PUBLIC_INVITE_DISABLED: process.env.NEXT_PUBLIC_INVITE_DISABLED, + NEXT_PUBLIC_PRIVACY_URL: process.env.NEXT_PUBLIC_PRIVACY_URL, + NEXT_PUBLIC_TERMS_URL: process.env.NEXT_PUBLIC_TERMS_URL, + NEXT_PUBLIC_IMPRINT_URL: process.env.NEXT_PUBLIC_IMPRINT_URL, + NEXT_PUBLIC_GITHUB_AUTH_ENABLED: process.env.NEXT_PUBLIC_GITHUB_AUTH_ENABLED, + NEXT_PUBLIC_GOOGLE_AUTH_ENABLED: process.env.NEXT_PUBLIC_GOOGLE_AUTH_ENABLED, + NEXT_PUBLIC_STRIPE_PUBLIC_KEY: process.env.NEXT_PUBLIC_STRIPE_PUBLIC_KEY, + NEXT_PUBLIC_FORMBRICKS_API_HOST: process.env.NEXT_PUBLIC_FORMBRICKS_API_HOST, + NEXT_PUBLIC_FORMBRICKS_ENVIRONMENT_ID: process.env.NEXT_PUBLIC_FORMBRICKS_ENVIRONMENT_ID, + NEXT_PUBLIC_FORMBRICKS_ONBOARDING_SURVEY_ID: process.env.NEXT_PUBLIC_FORMBRICKS_ONBOARDING_SURVEY_ID, + NEXT_PUBLIC_IS_FORMBRICKS_CLOUD: process.env.NEXT_PUBLIC_IS_FORMBRICKS_CLOUD, + NEXT_PUBLIC_POSTHOG_API_KEY: process.env.NEXT_PUBLIC_POSTHOG_API_KEY, + NEXT_PUBLIC_POSTHOG_API_HOST: process.env.NEXT_PUBLIC_POSTHOG_API_HOST, + }, +}); diff --git a/apps/web/lib/email.ts b/apps/web/lib/email.ts index a08164e7d9..822d5f2e3b 100644 --- a/apps/web/lib/email.ts +++ b/apps/web/lib/email.ts @@ -1,3 +1,4 @@ +import { env } from "@/env.mjs"; import { getQuestionResponseMapping } from "@/lib/responses/questionResponseMapping"; import { WEBAPP_URL } from "@formbricks/lib/constants"; import { Question } from "@formbricks/types/questions"; @@ -18,18 +19,18 @@ interface sendEmailData { export const sendEmail = async (emailData: sendEmailData) => { let transporter = nodemailer.createTransport({ - host: process.env.SMTP_HOST, - port: process.env.SMTP_PORT, - secure: process.env.SMTP_SECURE_ENABLED === "1", // true for 465, false for other ports + host: env.SMTP_HOST, + port: env.SMTP_PORT, + secure: env.SMTP_SECURE_ENABLED === "1", // true for 465, false for other ports auth: { - user: process.env.SMTP_USER, - pass: process.env.SMTP_PASSWORD, + user: env.SMTP_USER, + pass: env.SMTP_PASSWORD, }, // logger: true, // debug: true, }); const emailDefaults = { - from: `Formbricks <${process.env.MAIL_FROM || "noreply@formbricks.com"}>`, + from: `Formbricks <${env.MAIL_FROM || "noreply@formbricks.com"}>`, }; await transporter.sendMail({ ...emailDefaults, ...emailData }); }; @@ -128,7 +129,7 @@ export const sendResponseFinishedEmail = async ( subject: personEmail ? `${personEmail} just completed your ${survey.name} survey βœ…` : `A response for ${survey.name} was completed βœ…`, - replyTo: personEmail || process.env.MAIL_FROM, + replyTo: personEmail || env.MAIL_FROM, html: withEmailTemplate(`

Survey completed

Someone just completed your survey "${survey.name}"

diff --git a/apps/web/lib/formbricks.ts b/apps/web/lib/formbricks.ts index b0727e5130..3b0346cd3e 100644 --- a/apps/web/lib/formbricks.ts +++ b/apps/web/lib/formbricks.ts @@ -1,7 +1,8 @@ import formbricks, { PersonId, SurveyId, ResponseId } from "@formbricks/js"; +import { env } from "@/env.mjs"; export const formbricksEnabled = - typeof process.env.NEXT_PUBLIC_FORMBRICKS_API_HOST && process.env.NEXT_PUBLIC_FORMBRICKS_ENVIRONMENT_ID; + typeof env.NEXT_PUBLIC_FORMBRICKS_API_HOST && env.NEXT_PUBLIC_FORMBRICKS_ENVIRONMENT_ID; export const createResponse = async ( surveyId: SurveyId, diff --git a/apps/web/lib/jwt.ts b/apps/web/lib/jwt.ts index 28ab6aef98..543ccd5229 100644 --- a/apps/web/lib/jwt.ts +++ b/apps/web/lib/jwt.ts @@ -1,8 +1,9 @@ import jwt from "jsonwebtoken"; import { prisma } from "@formbricks/database"; +import { env } from "@/env.mjs"; export function createToken(userId, userEmail, options = {}) { - return jwt.sign({ id: userId }, process.env.NEXTAUTH_SECRET + userEmail, options); + return jwt.sign({ id: userId }, env.NEXTAUTH_SECRET + userEmail, options); } export async function verifyToken(token, userEmail = "") { @@ -20,11 +21,11 @@ export async function verifyToken(token, userEmail = "") { userEmail = foundUser.email; } - return jwt.verify(token, process.env.NEXTAUTH_SECRET + userEmail); + return jwt.verify(token, env.NEXTAUTH_SECRET + userEmail); } export const createInviteToken = (inviteId: string, email: string, options = {}) => { - return jwt.sign({ inviteId, email }, process.env.NEXTAUTH_SECRET, options); + return jwt.sign({ inviteId, email }, env.NEXTAUTH_SECRET, options); }; export const verifyInviteToken = async (token: string) => { diff --git a/apps/web/next.config.js b/apps/web/next.config.mjs similarity index 93% rename from apps/web/next.config.js rename to apps/web/next.config.mjs index b33110ae67..7387d57f9d 100644 --- a/apps/web/next.config.js +++ b/apps/web/next.config.mjs @@ -1,9 +1,8 @@ +import "./env.mjs"; +import { createId } from "@paralleldrive/cuid2"; + /** @type {import('next').NextConfig} */ -require("@next/env").loadEnvConfig("../../"); - -const { createId } = require("@paralleldrive/cuid2"); - const nextConfig = { output: "standalone", experimental: { @@ -66,4 +65,4 @@ const nextConfig = { }, }; -module.exports = nextConfig; +export default nextConfig; diff --git a/apps/web/package.json b/apps/web/package.json index 6dcba59c01..850d9ac263 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -21,10 +21,10 @@ "@headlessui/react": "^1.7.15", "@heroicons/react": "^2.0.18", "@json2csv/node": "^7.0.1", - "@next/env": "^13.4.8", "@paralleldrive/cuid2": "^2.2.1", "@radix-ui/react-collapsible": "^1.0.3", "@radix-ui/react-dropdown-menu": "^2.0.5", + "@t3-oss/env-nextjs": "^0.6.0", "bcryptjs": "^2.4.3", "eslint-config-next": "^13.4.8", "jsonwebtoken": "^9.0.0", diff --git a/apps/web/pages/api/v1/environments/[environmentId]/surveys/[surveyId]/responses/index.ts b/apps/web/pages/api/v1/environments/[environmentId]/surveys/[surveyId]/responses/index.ts index d6259ee0dc..7f1919c1d2 100644 --- a/apps/web/pages/api/v1/environments/[environmentId]/surveys/[surveyId]/responses/index.ts +++ b/apps/web/pages/api/v1/environments/[environmentId]/surveys/[surveyId]/responses/index.ts @@ -1,3 +1,4 @@ +import { env } from "@/env.mjs"; import { getPlan, hasEnvironmentAccess } from "@/lib/api/apiHelper"; import { prisma } from "@formbricks/database"; import { RESPONSES_LIMIT_FREE } from "@formbricks/lib/constants"; @@ -71,7 +72,7 @@ export default async function handle(req: NextApiRequest, res: NextApiResponse) }, }); - if (process.env.NEXT_PUBLIC_IS_FORMBRICKS_CLOUD === "1") { + if (env.NEXT_PUBLIC_IS_FORMBRICKS_CLOUD === "1") { const plan = await getPlan(req, res); if (plan === "free" && responses.length > RESPONSES_LIMIT_FREE) { return res.json({ diff --git a/apps/web/pages/api/v1/teams/[teamId]/invite/index.ts b/apps/web/pages/api/v1/teams/[teamId]/invite/index.ts index 3edc4217fd..d2284cc0db 100644 --- a/apps/web/pages/api/v1/teams/[teamId]/invite/index.ts +++ b/apps/web/pages/api/v1/teams/[teamId]/invite/index.ts @@ -1,3 +1,4 @@ +import { env } from "@/env.mjs"; import { getSessionUser, hasTeamAccess, isAdminOrOwner } from "@/lib/api/apiHelper"; import { sendInviteMemberEmail } from "@/lib/email"; import { prisma } from "@formbricks/database"; @@ -20,7 +21,7 @@ export default async function handle(req: NextApiRequest, res: NextApiResponse) return res.status(403).json({ message: "Not authorized" }); } - if (process.env.NEXT_PUBLIC_INVITE_DISABLED === "1") { + if (env.NEXT_PUBLIC_INVITE_DISABLED === "1") { return res.status(403).json({ message: "Invite Disabled" }); } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 488ca06230..f563189380 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,5 +1,9 @@ lockfileVersion: '6.0' +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + importers: .: @@ -162,9 +166,6 @@ importers: '@json2csv/node': specifier: ^7.0.1 version: 7.0.1 - '@next/env': - specifier: ^13.4.8 - version: 13.4.8 '@paralleldrive/cuid2': specifier: ^2.2.1 version: 2.2.1 @@ -174,6 +175,9 @@ importers: '@radix-ui/react-dropdown-menu': specifier: ^2.0.5 version: 2.0.5(react-dom@18.2.0)(react@18.2.0) + '@t3-oss/env-nextjs': + specifier: ^0.6.0 + version: 0.6.0(typescript@5.1.6)(zod@3.21.4) bcryptjs: specifier: ^2.4.3 version: 2.4.3 @@ -5149,6 +5153,27 @@ packages: dependencies: defer-to-connect: 1.1.3 + /@t3-oss/env-core@0.6.0(typescript@5.1.6)(zod@3.21.4): + resolution: {integrity: sha512-3FkPAba069WRZVVab/sB1m3eSGn/rZeypx5k+sWEu1d+k0OQdRDnvFS+7MtxYgqVrwaRk3b7yVnX2dgSPVmWPQ==} + peerDependencies: + typescript: '>=4.7.2' + zod: ^3.0.0 + dependencies: + typescript: 5.1.6 + zod: 3.21.4 + dev: false + + /@t3-oss/env-nextjs@0.6.0(typescript@5.1.6)(zod@3.21.4): + resolution: {integrity: sha512-SpzcGNIbUYcQw4zPPFeRJqCC1560zL7QmB0puIqOnuCsmykPkqHPX+n9CNZLXVQerboHzfvb7Kd+jAdouk72Vw==} + peerDependencies: + typescript: '>=4.7.2' + zod: ^3.0.0 + dependencies: + '@t3-oss/env-core': 0.6.0(typescript@5.1.6)(zod@3.21.4) + typescript: 5.1.6 + zod: 3.21.4 + dev: false + /@tailwindcss/forms@0.5.3(tailwindcss@3.3.2): resolution: {integrity: sha512-y5mb86JUoiUgBjY/o6FJSFZSEttfb3Q5gllE4xoKjAAD+vBrnIhE4dViwUuow3va8mpH4s9jyUbUbrRGoRdc2Q==} peerDependencies: @@ -20726,7 +20751,3 @@ packages: /zwitch@2.0.4: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} dev: false - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false diff --git a/turbo.json b/turbo.json index be6605b7a0..daf4bb0b60 100644 --- a/turbo.json +++ b/turbo.json @@ -56,6 +56,8 @@ "RAILWAY_STATIC_URL", "RENDER_EXTERNAL_URL", "SENTRY_DSN", + "STRIPE_SECRET_KEY", + "STRIPE_WEBHOOK_SECRET", "TELEMETRY_DISABLED", "VERCEL_URL" ] From 25f6ccc0a0554f11dbc9a622a0613018f5771b69 Mon Sep 17 00:00:00 2001 From: Moritz Rengert <42251569+moritzrengert@users.noreply.github.com> Date: Sun, 9 Jul 2023 17:30:27 +0200 Subject: [PATCH 24/41] Fix other field not working properly in multiple choice question (#502) --- .../preview/MultipleChoiceSingleQuestion.tsx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/apps/web/components/preview/MultipleChoiceSingleQuestion.tsx b/apps/web/components/preview/MultipleChoiceSingleQuestion.tsx index 163f3df06e..9bd7d3fcab 100644 --- a/apps/web/components/preview/MultipleChoiceSingleQuestion.tsx +++ b/apps/web/components/preview/MultipleChoiceSingleQuestion.tsx @@ -2,7 +2,7 @@ import { Input } from "@/../../packages/ui"; import SubmitButton from "@/components/preview/SubmitButton"; import { cn } from "@formbricks/lib/cn"; import type { MultipleChoiceSingleQuestion } from "@formbricks/types/questions"; -import { useState } from "react"; +import { useEffect, useRef, useState } from "react"; import Headline from "./Headline"; import Subheader from "./Subheader"; @@ -20,6 +20,13 @@ export default function MultipleChoiceSingleQuestion({ brandColor, }: MultipleChoiceSingleProps) { const [selectedChoice, setSelectedChoice] = useState(null); + const otherSpecify = useRef(null); + + useEffect(() => { + if (selectedChoice === "other") { + otherSpecify.current?.focus(); + } + }, [selectedChoice]); /* const [isIphone, setIsIphone] = useState(false); @@ -31,7 +38,7 @@ export default function MultipleChoiceSingleQuestion({
{ e.preventDefault(); - const value = e.currentTarget[question.id].value; + const value = otherSpecify.current?.value || e.currentTarget[question.id].value; const data = { [question.id]: value, }; @@ -72,6 +79,7 @@ export default function MultipleChoiceSingleQuestion({ {choice.id === "other" && selectedChoice === "other" && ( Date: Sun, 9 Jul 2023 18:19:49 +0200 Subject: [PATCH 25/41] Fix Zod Schema for PRISMA_GENERATE_DATAPROXY env variable (#505) --- apps/web/env.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/web/env.mjs b/apps/web/env.mjs index 92e3cd7149..762f2d166f 100644 --- a/apps/web/env.mjs +++ b/apps/web/env.mjs @@ -8,7 +8,7 @@ export const env = createEnv({ */ server: { DATABASE_URL: z.string().url(), - PRISMA_GENERATE_DATAPROXY: z.enum(["1", "0", ""]).optional(), + PRISMA_GENERATE_DATAPROXY: z.enum(["true"]).optional(), NEXTAUTH_SECRET: z.string().min(1), NEXTAUTH_URL: z.string().url().optional(), MAIL_FROM: z.string().email().optional(), From 95eeaecafc5b49af60a4ef1086a3e697c572197f Mon Sep 17 00:00:00 2001 From: Matti Nannt Date: Sun, 9 Jul 2023 18:33:06 +0200 Subject: [PATCH 26/41] Add empty string dataproxy env (#506) ' --- apps/web/env.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/web/env.mjs b/apps/web/env.mjs index 762f2d166f..be3ef8fc74 100644 --- a/apps/web/env.mjs +++ b/apps/web/env.mjs @@ -8,7 +8,7 @@ export const env = createEnv({ */ server: { DATABASE_URL: z.string().url(), - PRISMA_GENERATE_DATAPROXY: z.enum(["true"]).optional(), + PRISMA_GENERATE_DATAPROXY: z.enum(["true", ""]).optional(), NEXTAUTH_SECRET: z.string().min(1), NEXTAUTH_URL: z.string().url().optional(), MAIL_FROM: z.string().email().optional(), From bd9b77cd9dba947f45a1707c32361913811dc56a Mon Sep 17 00:00:00 2001 From: Johannes Date: Mon, 10 Jul 2023 10:02:35 +0200 Subject: [PATCH 27/41] add loading states, clarify naming --- apps/web/app/auth/forgot-password/page.tsx | 2 +- .../auth/forgot-password/reset/success/page.tsx | 2 +- ...ResetForm.tsx => RequestPasswordResetForm.tsx} | 8 ++++++-- apps/web/components/auth/ResetPasswordForm.tsx | 15 ++++++++++++--- 4 files changed, 20 insertions(+), 7 deletions(-) rename apps/web/components/auth/{PasswordResetForm.tsx => RequestPasswordResetForm.tsx} (90%) diff --git a/apps/web/app/auth/forgot-password/page.tsx b/apps/web/app/auth/forgot-password/page.tsx index bf5dbf377a..f66f45038f 100644 --- a/apps/web/app/auth/forgot-password/page.tsx +++ b/apps/web/app/auth/forgot-password/page.tsx @@ -1,4 +1,4 @@ -import { PasswordResetForm } from "../../../components/auth/PasswordResetForm"; +import { PasswordResetForm } from "../../../components/auth/RequestPasswordResetForm"; import FormWrapper from "@/components/auth/FormWrapper"; const ForgotPasswordPage: React.FC = () => { diff --git a/apps/web/app/auth/forgot-password/reset/success/page.tsx b/apps/web/app/auth/forgot-password/reset/success/page.tsx index 30ad409272..30a42cfe68 100644 --- a/apps/web/app/auth/forgot-password/reset/success/page.tsx +++ b/apps/web/app/auth/forgot-password/reset/success/page.tsx @@ -5,7 +5,7 @@ export default function ResetPasswordSuccessPage() { return (
-

Password successfully reset

+

Password successfully reset.

You can now log in with your new password

diff --git a/apps/web/components/auth/PasswordResetForm.tsx b/apps/web/components/auth/RequestPasswordResetForm.tsx similarity index 90% rename from apps/web/components/auth/PasswordResetForm.tsx rename to apps/web/components/auth/RequestPasswordResetForm.tsx index 81b298e7b2..4d84a75e42 100644 --- a/apps/web/components/auth/PasswordResetForm.tsx +++ b/apps/web/components/auth/RequestPasswordResetForm.tsx @@ -9,14 +9,18 @@ import { useState } from "react"; export const PasswordResetForm = ({}) => { const router = useRouter(); const [error, setError] = useState(""); + const [loading, setLoading] = useState(false); + const handleSubmit = async (e) => { e.preventDefault(); + setLoading(true); try { await forgotPassword(e.target.elements.email.value); - router.push("/auth/forgot-password/email-sent"); } catch (e) { setError(e.message); + } finally { + setLoading(false); } }; @@ -55,7 +59,7 @@ export const PasswordResetForm = ({}) => {
-
diff --git a/apps/web/components/auth/ResetPasswordForm.tsx b/apps/web/components/auth/ResetPasswordForm.tsx index 97d608a561..e6a25fb075 100644 --- a/apps/web/components/auth/ResetPasswordForm.tsx +++ b/apps/web/components/auth/ResetPasswordForm.tsx @@ -13,9 +13,11 @@ export const ResetPasswordForm = () => { const [error, setError] = useState(""); const [password, setPassword] = useState(null); const [isValid, setIsValid] = useState(false); + const [loading, setLoading] = useState(false); const handleSubmit = async (e) => { e.preventDefault(); + setLoading(true); const token = searchParams?.get("token"); try { if (!token) throw new Error("No token provided"); @@ -24,6 +26,8 @@ export const ResetPasswordForm = () => { router.push("/auth/forgot-password/reset/success"); } catch (e) { setError(e.message); + } finally { + setLoading(false); } }; @@ -58,14 +62,19 @@ export const ResetPasswordForm = () => { autoComplete="current-password" placeholder="*******" required - className="focus:border-brand focus:ring-brand block w-full rounded-md shadow-sm border-slate-300 sm:text-sm" + className="focus:border-brand focus:ring-brand block w-full rounded-md border-slate-300 shadow-sm sm:text-sm" /> - +
-
From 31ccb9d43f7d9b38171eb31c4e682d7e5b9123fe Mon Sep 17 00:00:00 2001 From: Matti Nannt Date: Mon, 10 Jul 2023 10:44:37 +0200 Subject: [PATCH 28/41] Add new Surveys endpoint to list all surveys of an account (#500) --- apps/web/app/api/v1/responses/route.ts | 2 +- apps/web/app/api/v1/surveys/route.ts | 32 +++++++ packages/lib/services/survey.ts | 119 ++++++++++++++++--------- packages/types/v1/surveys.ts | 7 +- 4 files changed, 118 insertions(+), 42 deletions(-) create mode 100644 apps/web/app/api/v1/surveys/route.ts diff --git a/apps/web/app/api/v1/responses/route.ts b/apps/web/app/api/v1/responses/route.ts index 9181674e4d..663e290baa 100644 --- a/apps/web/app/api/v1/responses/route.ts +++ b/apps/web/app/api/v1/responses/route.ts @@ -19,7 +19,7 @@ export async function GET() { return responses.notAuthenticatedResponse(); } - // get webhooks from database + // get responses from database try { const environmentResponses = await getEnvironmentResponses(apiKeyData.environmentId); return responses.successResponse(environmentResponses); diff --git a/apps/web/app/api/v1/surveys/route.ts b/apps/web/app/api/v1/surveys/route.ts new file mode 100644 index 0000000000..5dcda63fc6 --- /dev/null +++ b/apps/web/app/api/v1/surveys/route.ts @@ -0,0 +1,32 @@ +import { responses } from "@/lib/api/response"; +import { DatabaseError } from "@formbricks/errors"; +import { getApiKeyFromKey } from "@formbricks/lib/services/apiKey"; +import { getSurveys } from "@formbricks/lib/services/survey"; +import { headers } from "next/headers"; + +export async function GET() { + const apiKey = headers().get("x-api-key"); + if (!apiKey) { + return responses.notAuthenticatedResponse(); + } + let apiKeyData; + try { + apiKeyData = await getApiKeyFromKey(apiKey); + if (!apiKeyData) { + return responses.notAuthenticatedResponse(); + } + } catch (error) { + return responses.notAuthenticatedResponse(); + } + + // get surveys from database + try { + const surveys = await getSurveys(apiKeyData.environmentId); + return responses.successResponse(surveys); + } catch (error) { + if (error instanceof DatabaseError) { + return responses.badRequestResponse(error.message); + } + throw error; + } +} diff --git a/packages/lib/services/survey.ts b/packages/lib/services/survey.ts index 8092200cb2..60e3f71ac4 100644 --- a/packages/lib/services/survey.ts +++ b/packages/lib/services/survey.ts @@ -2,59 +2,61 @@ import { prisma } from "@formbricks/database"; import { z } from "zod"; import { ValidationError } from "@formbricks/errors"; import { DatabaseError, ResourceNotFoundError } from "@formbricks/errors"; -import { TSurvey, ZSurvey } from "@formbricks/types/v1/surveys"; +import { TSurvey, TSurveyWithAnalytics, ZSurvey, ZSurveyWithAnalytics } from "@formbricks/types/v1/surveys"; import { Prisma } from "@prisma/client"; import "server-only"; import { cache } from "react"; +const selectSurvey = { + id: true, + createdAt: true, + updatedAt: true, + name: true, + type: true, + environmentId: true, + status: true, + questions: true, + thankYouCard: true, + displayOption: true, + recontactDays: true, + autoClose: true, + delay: true, + autoComplete: true, + triggers: { + select: { + eventClass: { + select: { + id: true, + name: true, + description: true, + type: true, + noCodeConfig: true, + }, + }, + }, + }, + attributeFilters: { + select: { + id: true, + attributeClassId: true, + condition: true, + value: true, + }, + }, +}; + export const preloadSurvey = (surveyId: string) => { void getSurvey(surveyId); }; -export const getSurvey = cache(async (surveyId: string): Promise => { +export const getSurvey = cache(async (surveyId: string): Promise => { let surveyPrisma; try { surveyPrisma = await prisma.survey.findUnique({ where: { id: surveyId, }, - select: { - id: true, - createdAt: true, - updatedAt: true, - name: true, - type: true, - environmentId: true, - status: true, - questions: true, - thankYouCard: true, - displayOption: true, - recontactDays: true, - autoClose: true, - delay: true, - autoComplete: true, - triggers: { - select: { - eventClass: { - select: { - id: true, - name: true, - description: true, - type: true, - noCodeConfig: true, - }, - }, - }, - }, - attributeFilters: { - select: { - id: true, - attributeClassId: true, - condition: true, - value: true, - }, - }, - }, + select: selectSurvey, }); } catch (error) { if (error instanceof Prisma.PrismaClientKnownRequestError) { @@ -94,7 +96,7 @@ export const getSurvey = cache(async (surveyId: string): Promise }; try { - const survey = ZSurvey.parse(transformedSurvey); + const survey = ZSurveyWithAnalytics.parse(transformedSurvey); return survey; } catch (error) { if (error instanceof z.ZodError) { @@ -103,3 +105,40 @@ export const getSurvey = cache(async (surveyId: string): Promise throw new ValidationError("Data validation of survey failed"); } }); + +export const getSurveys = cache(async (environmentId: string): Promise => { + let surveysPrisma; + try { + surveysPrisma = await prisma.survey.findMany({ + where: { + environmentId, + }, + select: selectSurvey, + }); + } catch (error) { + if (error instanceof Prisma.PrismaClientKnownRequestError) { + throw new DatabaseError("Database operation failed"); + } + + throw error; + } + + const surveys: TSurvey[] = []; + for (const surveyPrisma of surveysPrisma) { + const transformedSurvey = { + ...surveyPrisma, + triggers: surveyPrisma.triggers.map((trigger) => trigger.eventClass), + }; + const survey = ZSurvey.parse(transformedSurvey); + surveys.push(survey); + } + + try { + return surveys; + } catch (error) { + if (error instanceof z.ZodError) { + console.error(JSON.stringify(error.errors, null, 2)); // log the detailed error information + } + throw new ValidationError("Data validation of survey failed"); + } +}); diff --git a/packages/types/v1/surveys.ts b/packages/types/v1/surveys.ts index f683dc79ef..a9eee0a21e 100644 --- a/packages/types/v1/surveys.ts +++ b/packages/types/v1/surveys.ts @@ -205,10 +205,15 @@ export const ZSurvey = z.object({ thankYouCard: ZSurveyThankYouCard, delay: z.number(), autoComplete: z.union([z.number(), z.null()]), +}); + +export type TSurvey = z.infer; + +export const ZSurveyWithAnalytics = ZSurvey.extend({ analytics: z.object({ numDisplays: z.number(), responseRate: z.number(), }), }); -export type TSurvey = z.infer; +export type TSurveyWithAnalytics = z.infer; From fe55a152ea754ad2324d691bc4be804c9f45e706 Mon Sep 17 00:00:00 2001 From: Matti Nannt Date: Mon, 10 Jul 2023 10:59:17 +0200 Subject: [PATCH 29/41] add .env file to checks workflow (#508) * add .env file to checks workflow * update .env.example comment --- .env.example | 3 ++- .github/workflows/checks.yml | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.env.example b/.env.example index 3211d6eb9f..e5d62c6f14 100644 --- a/.env.example +++ b/.env.example @@ -46,7 +46,8 @@ NEXTAUTH_URL=http://localhost:3000 MAIL_FROM=noreply@example.com SMTP_HOST=localhost SMTP_PORT=1025 -SMTP_SECURE_ENABLED=0 # Enable for TLS (port 465) +# Enable SMTP_SECURE_ENABLED for TLS (port 465) +SMTP_SECURE_ENABLED=0 SMTP_USER=smtpUser SMTP_PASSWORD=smtpPassword diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 460b6a344c..beca0d4496 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -27,6 +27,9 @@ jobs: - name: Build formbricks-js dependencies run: pnpm build --filter=js + - name: create .env + run: cp .env.example .env + - name: Lint run: pnpm lint From fc0dfec1516b217fbec44be98b9b509d039875ed Mon Sep 17 00:00:00 2001 From: Johannes Date: Mon, 10 Jul 2023 12:06:27 +0200 Subject: [PATCH 30/41] fix next config suffix --- apps/web/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/web/Dockerfile b/apps/web/Dockerfile index 071b0f8f55..7ad416e217 100644 --- a/apps/web/Dockerfile +++ b/apps/web/Dockerfile @@ -23,7 +23,7 @@ USER nextjs WORKDIR /home/nextjs -COPY --from=installer /app/apps/web/next.config.js . +COPY --from=installer /app/apps/web/next.config.mjs . COPY --from=installer /app/apps/web/package.json . # Automatically leverage output traces to reduce image size From 04ec0a6827cdfe27a3767cd881945415a1bef371 Mon Sep 17 00:00:00 2001 From: Matti Nannt Date: Mon, 10 Jul 2023 16:24:03 +0200 Subject: [PATCH 31/41] Extend Webhook with surveyIds filter (#512) * add surveyIds filter to webhooks. Use triggers array instead of single trigger * include webhook id in webhook payload * run pnpm format --- .../docs/webhook-api/create-webhook/index.mdx | 24 ++++++++++++------- apps/web/app/api/pipeline/route.ts | 13 ++++++++++ .../[surveyId]/edit/UpdateQuestionId.tsx | 2 +- .../migration.sql | 2 ++ packages/database/schema.prisma | 21 ++++++++-------- packages/lib/services/webhook.ts | 5 ++-- packages/types/v1/webhooks.ts | 3 ++- 7 files changed, 48 insertions(+), 22 deletions(-) create mode 100644 packages/database/migrations/20230710112555_add_survey_ids_to_webhooks/migration.sql diff --git a/apps/formbricks-com/pages/docs/webhook-api/create-webhook/index.mdx b/apps/formbricks-com/pages/docs/webhook-api/create-webhook/index.mdx index 510b5fa5b9..2dfb850363 100644 --- a/apps/formbricks-com/pages/docs/webhook-api/create-webhook/index.mdx +++ b/apps/formbricks-com/pages/docs/webhook-api/create-webhook/index.mdx @@ -27,11 +27,17 @@ export const meta = { required: true, }, { - label: "trigger", - type: "string", - description: "The event that will trigger the webhook.", + label: "triggers", + type: "string[]", + description: "List of events that will trigger the webhook", required: true, }, + { + label: "surveyIds", + type: "string[]", + description: + "List of survey IDs that will trigger the webhook. If not provided, the webhook will be triggered for all surveys.", + }, ]} example={`{ "url": "https://mysystem.com/myendpoint", @@ -51,7 +57,8 @@ export const meta = { "environmentId": "clisypjy4000319t4imm289uo", "triggers": [ "responseFinished" - ] + ], + "surveyIds": ["clisypjy4000319t4imm289uo"] } }`, }, @@ -82,9 +89,10 @@ export const meta = { ]} /> -| field name | required | default | description | -| ---------- | -------- | ------- | ------------------------------------------------------------------------------------------------------ | -| url | yes | - | The endpoint that the webhook will send data to | -| trigger | yes | - | The event that will trigger the webhook ("responseCreated" or "responseUpdated" or "responseFinished") | +| field name | required | default | description | +| ---------- | -------- | ------- | ----------------------------------------------------------------------------------------------------------------- | +| url | yes | - | The endpoint that the webhook will send data to | +| trigger | yes | - | The event that will trigger the webhook ("responseCreated" or "responseUpdated" or "responseFinished") | +| surveyIds | no | - | List of survey IDs that will trigger the webhook. If not provided, the webhook will be triggered for all surveys. | export default ({ children }) => {children}; diff --git a/apps/web/app/api/pipeline/route.ts b/apps/web/app/api/pipeline/route.ts index 947c2ba215..e49f18aa3f 100644 --- a/apps/web/app/api/pipeline/route.ts +++ b/apps/web/app/api/pipeline/route.ts @@ -51,6 +51,18 @@ export async function POST(request: Request) { triggers: { hasSome: event, }, + OR: [ + { + surveyIds: { + has: surveyId, + }, + }, + { + surveyIds: { + isEmpty: true, + }, + }, + ], }, }); @@ -60,6 +72,7 @@ export async function POST(request: Request) { await fetch(webhook.url, { method: "POST", body: JSON.stringify({ + webhookId: webhook.id, event, data, }), diff --git a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/UpdateQuestionId.tsx b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/UpdateQuestionId.tsx index 2ff269be8c..e18935c2d7 100644 --- a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/UpdateQuestionId.tsx +++ b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/UpdateQuestionId.tsx @@ -32,7 +32,7 @@ export default function UpdateQuestionId({ localSurvey, question, questionIdx, u value={currentValue} onChange={(e) => setCurrentValue(e.target.value)} disabled={localSurvey.status !== "draft"} - className={isInputInvalid ? "focus:border-red-300 border-red-300" : ""} + className={isInputInvalid ? "border-red-300 focus:border-red-300" : ""} /> {localSurvey.status === "draft" && ( - )} + {localSurvey.status === "draft" || + (question.isDraft && ( + + ))}
); diff --git a/packages/types/questions.ts b/packages/types/questions.ts index 153f0ba411..eee8f60236 100644 --- a/packages/types/questions.ts +++ b/packages/types/questions.ts @@ -30,6 +30,7 @@ export interface IQuestion { required: boolean; buttonLabel?: string; logic?: T[]; + isDraft?: boolean; } export interface OpenTextQuestion extends IQuestion { From c912ebd42a36921f54fa51f4803f8c575b525a2c Mon Sep 17 00:00:00 2001 From: Moritz Rengert <42251569+moritzrengert@users.noreply.github.com> Date: Tue, 11 Jul 2023 10:14:58 +0200 Subject: [PATCH 35/41] Fix expired member invites are not displayed properly (#475) * add expiresAt prop to members call * add expired badge in addition to pending in members list * check for expired on invite link * fix type error * update invite expired message * remove console.log --------- Co-authored-by: Johannes Co-authored-by: Matthias Nannt --- .../settings/members/EditMemberships.tsx | 13 ++++++++++++- apps/web/app/invite/InviteContentComponents.tsx | 2 +- apps/web/app/invite/page.tsx | 12 +++++++----- .../environments/[environmentId]/members/index.ts | 2 ++ 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/apps/web/app/environments/[environmentId]/settings/members/EditMemberships.tsx b/apps/web/app/environments/[environmentId]/settings/members/EditMemberships.tsx index 29073e7084..f313fb7297 100644 --- a/apps/web/app/environments/[environmentId]/settings/members/EditMemberships.tsx +++ b/apps/web/app/environments/[environmentId]/settings/members/EditMemberships.tsx @@ -181,6 +181,12 @@ export function EditMemberships({ environmentId }: EditMembershipsProps) { mutateTeam(); }; + const isExpired = (invite) => { + const now = new Date(); + const expiresAt = new Date(invite.expiresAt); + return now > expiresAt; + }; + return ( <>
@@ -237,7 +243,12 @@ export function EditMemberships({ environmentId }: EditMembershipsProps) { />
- {!member.accepted && } + {!member.accepted && + (isExpired(member) ? ( + + ) : ( + + ))} {member.role !== "owner" && ( - ))}
); diff --git a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/responses/ResponseTimeline.tsx b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/responses/ResponseTimeline.tsx index 04f4cb9531..51251578a0 100644 --- a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/responses/ResponseTimeline.tsx +++ b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/responses/ResponseTimeline.tsx @@ -172,7 +172,11 @@ export default function ResponseTimeline({ return (
{responses.length === 0 ? ( - + ) : (
)} - {localSurvey.type === "link" && ( -
-
- - -
-
- {redirectToggle && ( - handleRedirectUrlChange(e.target.value)} - /> - )} -
+
+
+ +
- )} + {redirectToggle && ( +
+ handleRedirectUrlChange(e.target.value)} + /> +
+ )} +
+
+
+ + +
+ {surveyCloseOnDateToggle && ( +
+ +
+ )} +
diff --git a/apps/web/lib/api/response.ts b/apps/web/lib/api/response.ts index a48a9282ac..4f18b799e3 100644 --- a/apps/web/lib/api/response.ts +++ b/apps/web/lib/api/response.ts @@ -92,7 +92,7 @@ const notAuthenticatedResponse = (cors: boolean = false) => code: "not_authenticated", message: "Not authenticated", details: { - "X-Api-Key": "Header not provided or API Key invalid", + "x-Api-Key": "Header not provided or API Key invalid", }, } as ApiErrorResponse, { diff --git a/packages/database/migrations/20230711103042_add_close_on_date/migration.sql b/packages/database/migrations/20230711103042_add_close_on_date/migration.sql new file mode 100644 index 0000000000..4b00cef5e4 --- /dev/null +++ b/packages/database/migrations/20230711103042_add_close_on_date/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "Survey" ADD COLUMN "closeOnDate" TIMESTAMP(3); diff --git a/packages/database/schema.prisma b/packages/database/schema.prisma index e13d2ce8aa..f7e1a72902 100644 --- a/packages/database/schema.prisma +++ b/packages/database/schema.prisma @@ -236,6 +236,7 @@ model Survey { autoClose Int? delay Int @default(0) autoComplete Int? + closeOnDate DateTime? } model Event { diff --git a/packages/lib/services/survey.ts b/packages/lib/services/survey.ts index 60e3f71ac4..68d3fac613 100644 --- a/packages/lib/services/survey.ts +++ b/packages/lib/services/survey.ts @@ -20,8 +20,10 @@ const selectSurvey = { displayOption: true, recontactDays: true, autoClose: true, + closeOnDate: true, delay: true, autoComplete: true, + closeOnDate: true, triggers: { select: { eventClass: { diff --git a/packages/types/surveys.ts b/packages/types/surveys.ts index c40c30a5a9..316d0250a7 100644 --- a/packages/types/surveys.ts +++ b/packages/types/surveys.ts @@ -26,6 +26,7 @@ export interface Survey { autoClose: number | null; delay: number; autoComplete: number | null; + closeOnDate: Date | null; } export interface AttributeFilter { diff --git a/packages/types/v1/surveys.ts b/packages/types/v1/surveys.ts index a9eee0a21e..52ddc9db3c 100644 --- a/packages/types/v1/surveys.ts +++ b/packages/types/v1/surveys.ts @@ -205,6 +205,7 @@ export const ZSurvey = z.object({ thankYouCard: ZSurveyThankYouCard, delay: z.number(), autoComplete: z.union([z.number(), z.null()]), + closeOnDate: z.date().nullable(), }); export type TSurvey = z.infer; diff --git a/packages/ui/components/Calendar.tsx b/packages/ui/components/Calendar.tsx new file mode 100644 index 0000000000..e248d62cdc --- /dev/null +++ b/packages/ui/components/Calendar.tsx @@ -0,0 +1,55 @@ +"use client"; + +import * as React from "react"; +import { ChevronLeft, ChevronRight } from "lucide-react"; +import { DayPicker } from "react-day-picker"; + +import { cn } from "@formbricks/lib/cn"; +// import { buttonVariants } from "@/components/ui/button"; + +export type CalendarProps = React.ComponentProps; + +function Calendar({ className, classNames, showOutsideDays = true, ...props }: CalendarProps) { + return ( + , + IconRight: () => , + }} + {...props} + /> + ); +} +Calendar.displayName = "Calendar"; + +export { Calendar }; diff --git a/packages/ui/components/DatePicker.tsx b/packages/ui/components/DatePicker.tsx new file mode 100644 index 0000000000..34de74fa45 --- /dev/null +++ b/packages/ui/components/DatePicker.tsx @@ -0,0 +1,47 @@ +"use client"; + +import { CalendarIcon } from "lucide-react"; +import { format } from "date-fns"; +import { cn } from "@formbricks/lib/cn"; +import { Popover, PopoverContent, PopoverTrigger } from "./Popover"; +import Button from "./Button"; +import { Calendar } from "./Calendar"; +import { useRef } from "react"; +import { SelectSingleEventHandler } from "react-day-picker"; + +export function DatePicker({ + date, + handleDateChange, +}: { + date?: Date; + handleDateChange: (date?: Date) => void; +}) { + let formattedDate = date ? new Date(date) : undefined; + + const btnRef = useRef(null); + + const handleDateSelect: SelectSingleEventHandler = (date) => { + btnRef?.current?.click(); + handleDateChange(date); + }; + + return ( + + + + + + + + + ); +} diff --git a/packages/ui/index.tsx b/packages/ui/index.tsx index 0096c1f233..bbe27a250f 100644 --- a/packages/ui/index.tsx +++ b/packages/ui/index.tsx @@ -58,6 +58,8 @@ export { CommandSeparator, CommandShortcut, } from "./components/Command"; +export { Calendar } from "./components/Calendar"; +export { DatePicker } from "./components/DatePicker"; /* Icons */ export { AngryBirdRageIcon } from "./components/icons/AngryBirdRageIcon"; diff --git a/packages/ui/package.json b/packages/ui/package.json index 2a168fdfe3..554b5cadbc 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -46,7 +46,8 @@ "next": "13.4.8", "react-colorful": "^5.6.1", "react-confetti": "^6.1.0", - "react-dom": "18.2.0", + "react-day-picker": "^8.8.0", + "react-dom": "^18.2.0", "react-radio-group": "^3.0.3", "react-use": "^17.4.0" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f563189380..7d9e36f104 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '6.0' +lockfileVersion: '6.1' settings: autoInstallPeers: true @@ -19,7 +19,7 @@ importers: version: 3.12.7 turbo: specifier: latest - version: 1.10.7 + version: 1.10.3 apps/demo: dependencies: @@ -349,7 +349,7 @@ importers: version: 8.8.0(eslint@8.41.0) eslint-config-turbo: specifier: latest - version: 1.8.8(eslint@8.41.0) + version: 1.10.3(eslint@8.41.0) eslint-plugin-react: specifier: 7.32.2 version: 7.32.2(eslint@8.41.0) @@ -592,8 +592,11 @@ importers: react-confetti: specifier: ^6.1.0 version: 6.1.0(react@18.2.0) + react-day-picker: + specifier: ^8.8.0 + version: 8.8.0(date-fns@2.30.0)(react@18.2.0) react-dom: - specifier: 18.2.0 + specifier: ^18.2.0 version: 18.2.0(react@18.2.0) react-radio-group: specifier: ^3.0.3 @@ -9536,13 +9539,13 @@ packages: eslint: 8.41.0 dev: true - /eslint-config-turbo@1.8.8(eslint@8.41.0): - resolution: {integrity: sha512-+yT22sHOT5iC1sbBXfLIdXfbZuiv9bAyOXsxTxFCWelTeFFnANqmuKB3x274CFvf7WRuZ/vYP/VMjzU9xnFnxA==} + /eslint-config-turbo@1.10.3(eslint@8.41.0): + resolution: {integrity: sha512-ggzPfTJfMsMS383oZ4zfTP1zQvyMyiigOQJRUnLt1nqII6SKkTzdKZdwmXRDHU24KFwUfEFtT6c8vnm2VhL0uQ==} peerDependencies: eslint: '>6.6.0' dependencies: eslint: 8.41.0 - eslint-plugin-turbo: 1.8.8(eslint@8.41.0) + eslint-plugin-turbo: 1.10.3(eslint@8.41.0) dev: true /eslint-import-resolver-node@0.3.6: @@ -9861,8 +9864,8 @@ packages: semver: 6.3.0 string.prototype.matchall: 4.0.8 - /eslint-plugin-turbo@1.8.8(eslint@8.41.0): - resolution: {integrity: sha512-zqyTIvveOY4YU5jviDWw9GXHd4RiKmfEgwsjBrV/a965w0PpDwJgEUoSMB/C/dU310Sv9mF3DSdEjxjJLaw6rA==} + /eslint-plugin-turbo@1.10.3(eslint@8.41.0): + resolution: {integrity: sha512-g3Mnnk7el1FqxHfqbE/MayLvCsYjA/vKmAnUj66kV4AlM7p/EZqdt42NMcMSKtDVEm0w+utQkkzWG2Xsa0Pd/g==} peerDependencies: eslint: '>6.6.0' dependencies: @@ -16714,6 +16717,16 @@ packages: tween-functions: 1.2.0 dev: false + /react-day-picker@8.8.0(date-fns@2.30.0)(react@18.2.0): + resolution: {integrity: sha512-QIC3uOuyGGbtypbd5QEggsCSqVaPNu8kzUWquZ7JjW9fuWB9yv7WyixKmnaFelTLXFdq7h7zU6n/aBleBqe/dA==} + peerDependencies: + date-fns: ^2.28.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + dependencies: + date-fns: 2.30.0 + react: 18.2.0 + dev: false + /react-dom@18.2.0(react@18.2.0): resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} peerDependencies: @@ -19191,65 +19204,65 @@ packages: dependencies: safe-buffer: 5.2.1 - /turbo-darwin-64@1.10.7: - resolution: {integrity: sha512-N2MNuhwrl6g7vGuz4y3fFG2aR1oCs0UZ5HKl8KSTn/VC2y2YIuLGedQ3OVbo0TfEvygAlF3QGAAKKtOCmGPNKA==} + /turbo-darwin-64@1.10.3: + resolution: {integrity: sha512-IIB9IomJGyD3EdpSscm7Ip1xVWtYb7D0x7oH3vad3gjFcjHJzDz9xZ/iw/qItFEW+wGFcLSRPd+1BNnuLM8AsA==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /turbo-darwin-arm64@1.10.7: - resolution: {integrity: sha512-WbJkvjU+6qkngp7K4EsswOriO3xrNQag7YEGRtfLoDdMTk4O4QTeU6sfg2dKfDsBpTidTvEDwgIYJhYVGzrz9Q==} + /turbo-darwin-arm64@1.10.3: + resolution: {integrity: sha512-SBNmOZU9YEB0eyNIxeeQ+Wi0Ufd+nprEVp41rgUSRXEIpXjsDjyBnKnF+sQQj3+FLb4yyi/yZQckB+55qXWEsw==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /turbo-linux-64@1.10.7: - resolution: {integrity: sha512-x1CF2CDP1pDz/J8/B2T0hnmmOQI2+y11JGIzNP0KtwxDM7rmeg3DDTtDM/9PwGqfPotN9iVGgMiMvBuMFbsLhg==} + /turbo-linux-64@1.10.3: + resolution: {integrity: sha512-kvAisGKE7xHJdyMxZLvg53zvHxjqPK1UVj4757PQqtx9dnjYHSc8epmivE6niPgDHon5YqImzArCjVZJYpIGHQ==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /turbo-linux-arm64@1.10.7: - resolution: {integrity: sha512-JtnBmaBSYbs7peJPkXzXxsRGSGBmBEIb6/kC8RRmyvPAMyqF8wIex0pttsI+9plghREiGPtRWv/lfQEPRlXnNQ==} + /turbo-linux-arm64@1.10.3: + resolution: {integrity: sha512-Qgaqln0IYRgyL0SowJOi+PNxejv1I2xhzXOI+D+z4YHbgSx87ox1IsALYBlK8VRVYY8VCXl+PN12r1ioV09j7A==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /turbo-windows-64@1.10.7: - resolution: {integrity: sha512-7A/4CByoHdolWS8dg3DPm99owfu1aY/W0V0+KxFd0o2JQMTQtoBgIMSvZesXaWM57z3OLsietFivDLQPuzE75w==} + /turbo-windows-64@1.10.3: + resolution: {integrity: sha512-rbH9wManURNN8mBnN/ZdkpUuTvyVVEMiUwFUX4GVE5qmV15iHtZfDLUSGGCP2UFBazHcpNHG1OJzgc55GFFrUw==} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /turbo-windows-arm64@1.10.7: - resolution: {integrity: sha512-D36K/3b6+hqm9IBAymnuVgyePktwQ+F0lSXr2B9JfAdFPBktSqGmp50JNC7pahxhnuCLj0Vdpe9RqfnJw5zATA==} + /turbo-windows-arm64@1.10.3: + resolution: {integrity: sha512-ThlkqxhcGZX39CaTjsHqJnqVe+WImjX13pmjnpChz6q5HHbeRxaJSFzgrHIOt0sUUVx90W/WrNRyoIt/aafniw==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /turbo@1.10.7: - resolution: {integrity: sha512-xm0MPM28TWx1e6TNC3wokfE5eaDqlfi0G24kmeHupDUZt5Wd0OzHFENEHMPqEaNKJ0I+AMObL6nbSZonZBV2HA==} + /turbo@1.10.3: + resolution: {integrity: sha512-U4gKCWcKgLcCjQd4Pl8KJdfEKumpyWbzRu75A6FCj6Ctea1PIm58W6Ltw1QXKqHrl2pF9e1raAskf/h6dlrPCA==} hasBin: true requiresBuild: true optionalDependencies: - turbo-darwin-64: 1.10.7 - turbo-darwin-arm64: 1.10.7 - turbo-linux-64: 1.10.7 - turbo-linux-arm64: 1.10.7 - turbo-windows-64: 1.10.7 - turbo-windows-arm64: 1.10.7 + turbo-darwin-64: 1.10.3 + turbo-darwin-arm64: 1.10.3 + turbo-linux-64: 1.10.3 + turbo-linux-arm64: 1.10.3 + turbo-windows-64: 1.10.3 + turbo-windows-arm64: 1.10.3 dev: true /tween-functions@1.2.0: From 269a504780b6b5e29e089a22bef0ad58960d7812 Mon Sep 17 00:00:00 2001 From: gitstart-formbricks <135233993+gitstart-formbricks@users.noreply.github.com> Date: Tue, 11 Jul 2023 13:49:58 +0300 Subject: [PATCH 39/41] Fix typo in product name replace in template (#520) * fix product name typo in template * revert unwanted change. --------- Co-authored-by: gitstart-formbricks --- .../environments/[environmentId]/surveys/templates/templates.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/web/app/environments/[environmentId]/surveys/templates/templates.ts b/apps/web/app/environments/[environmentId]/surveys/templates/templates.ts index 2e81b92472..c5616d9834 100644 --- a/apps/web/app/environments/[environmentId]/surveys/templates/templates.ts +++ b/apps/web/app/environments/[environmentId]/surveys/templates/templates.ts @@ -329,7 +329,7 @@ export const templates: Template[] = [ { id: createId(), label: "Yes" }, { id: createId(), label: "No" }, ], - headline: "Have you actively discouraged others from choosing {{produtName}}?", + headline: "Have you actively discouraged others from choosing {{productName}}?", required: true, subheader: "", }, From 57a64d7940d9e5de723f44c6b498f50ee3be6277 Mon Sep 17 00:00:00 2001 From: Pradumn Kumar <47187878+Pradumn27@users.noreply.github.com> Date: Tue, 11 Jul 2023 16:42:45 +0530 Subject: [PATCH 40/41] Survey Completed message shown to the enduser can now be customized (#464) * feat: added surveyClosedMessage field to database and also added it's types * feat: added the custom closed message to the frontend * fix: fixes build issue * fix: refactored the code to toggle surveyClosedMessage and redirectUrl * pnpm format * recreate prisma migration --------- Co-authored-by: Matthias Nannt --- .../[surveyId]/edit/ResponseOptionsCard.tsx | 116 ++++++++++++++++-- apps/web/app/s/[surveyId]/SurveyInactive.tsx | 27 +++- apps/web/app/s/[surveyId]/SurveyPage.tsx | 7 +- .../api/v1/client/surveys/[surveyId]/index.ts | 2 + .../duplicate/[targetEnvironmentId].ts | 2 + .../surveys/[surveyId]/duplicate/index.ts | 2 + .../surveys/[surveyId]/index.ts | 5 + packages/database/jsonTypes.ts | 3 +- .../migration.sql | 2 + packages/database/schema.prisma | 45 +++---- packages/database/zod-utils.ts | 2 +- packages/types/surveys.ts | 6 + packages/types/v1/surveys.ts | 10 ++ 13 files changed, 192 insertions(+), 37 deletions(-) create mode 100644 packages/database/migrations/20230711110136_add_survey_closed_message/migration.sql diff --git a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/ResponseOptionsCard.tsx b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/ResponseOptionsCard.tsx index 8fd08ca7af..52d1737980 100644 --- a/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/ResponseOptionsCard.tsx +++ b/apps/web/app/environments/[environmentId]/surveys/[surveyId]/edit/ResponseOptionsCard.tsx @@ -18,20 +18,20 @@ export default function ResponseOptionsCard({ localSurvey, setLocalSurvey }: Res const [surveyCloseOnDateToggle, setSurveyCloseOnDateToggle] = useState(false); const [redirectUrl, setRedirectUrl] = useState(""); + const [surveyClosedMessageToggle, setSurveyClosedMessageToggle] = useState(false); + const [surveyClosedMessage, setSurveyClosedMessage] = useState({ + heading: "Survey Completed", + subheading: "This free & open-source survey has been closed", + }); const [closeOnDate, setCloseOnDate] = useState(); const handleRedirectCheckMark = () => { + setRedirectToggle((prev) => !prev); + if (redirectToggle && localSurvey.redirectUrl) { - setRedirectToggle(false); setRedirectUrl(null); setLocalSurvey({ ...localSurvey, redirectUrl: null }); - return; } - if (redirectToggle) { - setRedirectToggle(false); - return; - } - setRedirectToggle(true); }; const handleSurveyCloseOnDateToggle = () => { @@ -54,6 +54,14 @@ export default function ResponseOptionsCard({ localSurvey, setLocalSurvey }: Res setLocalSurvey({ ...localSurvey, redirectUrl: link }); }; + const handleCloseSurveyMessageToggle = () => { + setSurveyClosedMessageToggle((prev) => !prev); + + if (surveyClosedMessageToggle && localSurvey.surveyClosedMessage) { + setLocalSurvey({ ...localSurvey, surveyClosedMessage: null }); + } + }; + const handleCloseOnDateChange = (date: Date) => { const equivalentDate = date?.getDate(); date?.setUTCHours(0, 0, 0, 0); @@ -63,11 +71,36 @@ export default function ResponseOptionsCard({ localSurvey, setLocalSurvey }: Res setLocalSurvey({ ...localSurvey, closeOnDate: date ?? null }); }; + const handleClosedSurveyMessageChange = ({ + heading, + subheading, + }: { + heading?: string; + subheading?: string; + }) => { + const message = { + heading: heading ?? surveyClosedMessage.heading, + subheading: subheading ?? surveyClosedMessage.subheading, + }; + + setSurveyClosedMessage(message); + setLocalSurvey({ ...localSurvey, surveyClosedMessage: message }); + }; + useEffect(() => { if (localSurvey.redirectUrl) { setRedirectUrl(localSurvey.redirectUrl); setRedirectToggle(true); } + + if (!!localSurvey.surveyClosedMessage) { + setSurveyClosedMessage({ + heading: localSurvey.surveyClosedMessage.heading ?? surveyClosedMessage.heading, + subheading: localSurvey.surveyClosedMessage.subheading ?? surveyClosedMessage.subheading, + }); + setSurveyClosedMessageToggle(true); + } + if (localSurvey.closeOnDate) { setCloseOnDate(localSurvey.closeOnDate); setSurveyCloseOnDateToggle(true); @@ -144,6 +177,75 @@ export default function ResponseOptionsCard({ localSurvey, setLocalSurvey }: Res
)} + {localSurvey.type === "link" && ( + <> +
+ + +
+ {redirectToggle && ( +
+ handleRedirectUrlChange(e.target.value)} + /> +
+ )} +
+ + +
+ {surveyClosedMessageToggle && ( +
+
+ +
+ handleClosedSurveyMessageChange({ heading: e.target.value })} + /> +
+
+
+ +
+ handleClosedSurveyMessageChange({ subheading: e.target.value })} + /> +
+
+
+ )} + + )}
diff --git a/apps/web/app/s/[surveyId]/SurveyInactive.tsx b/apps/web/app/s/[surveyId]/SurveyInactive.tsx index 1f807740eb..853d2b0860 100644 --- a/apps/web/app/s/[surveyId]/SurveyInactive.tsx +++ b/apps/web/app/s/[surveyId]/SurveyInactive.tsx @@ -5,7 +5,13 @@ import Image from "next/image"; import Link from "next/link"; import { Button } from "@formbricks/ui"; -const SurveyInactive = ({ status }) => { +const SurveyInactive = ({ + status, + surveyClosedMessage, +}: { + status: string; + surveyClosedMessage?: { heading: string; subheading: string }; +}) => { const icons = { "not found": , paused: , @@ -23,11 +29,20 @@ const SurveyInactive = ({ status }) => {
{icons[status]} -

Survey {status}.

-

{descriptions[status]}

- +

+ {status === "completed" && surveyClosedMessage ? surveyClosedMessage.heading : `Survey ${status}.`} +

+

+ {" "} + {status === "completed" && surveyClosedMessage + ? surveyClosedMessage.subheading + : descriptions[status]} +

+ {!(status === "completed" && surveyClosedMessage) && ( + + )}
diff --git a/apps/web/app/s/[surveyId]/SurveyPage.tsx b/apps/web/app/s/[surveyId]/SurveyPage.tsx index a4db190d57..b0b3cbd12e 100644 --- a/apps/web/app/s/[surveyId]/SurveyPage.tsx +++ b/apps/web/app/s/[surveyId]/SurveyPage.tsx @@ -26,7 +26,12 @@ export default function SurveyPage({ surveyId }: SurveyPageProps) { } if (isErrorSurvey && isErrorSurvey.status === 403) { - return ; + return ( + + ); } return ( diff --git a/apps/web/pages/api/v1/client/surveys/[surveyId]/index.ts b/apps/web/pages/api/v1/client/surveys/[surveyId]/index.ts index 5a09024b34..01269d2ac7 100644 --- a/apps/web/pages/api/v1/client/surveys/[surveyId]/index.ts +++ b/apps/web/pages/api/v1/client/surveys/[surveyId]/index.ts @@ -28,6 +28,7 @@ export default async function handle(req: NextApiRequest, res: NextApiResponse) environmentId: true, status: true, redirectUrl: true, + surveyClosedMessage: true, }, }); @@ -57,6 +58,7 @@ export default async function handle(req: NextApiRequest, res: NextApiResponse) reason: survey.status, brandColor: product?.brandColor, formbricksSignature: product?.formbricksSignature, + surveyClosedMessage: survey?.surveyClosedMessage, }); } diff --git a/apps/web/pages/api/v1/environments/[environmentId]/surveys/[surveyId]/duplicate/[targetEnvironmentId].ts b/apps/web/pages/api/v1/environments/[environmentId]/surveys/[surveyId]/duplicate/[targetEnvironmentId].ts index c7b4138ea6..5855418bf0 100644 --- a/apps/web/pages/api/v1/environments/[environmentId]/surveys/[surveyId]/duplicate/[targetEnvironmentId].ts +++ b/apps/web/pages/api/v1/environments/[environmentId]/surveys/[surveyId]/duplicate/[targetEnvironmentId].ts @@ -1,5 +1,6 @@ import { hasEnvironmentAccess } from "@/lib/api/apiHelper"; import { prisma } from "@formbricks/database"; +import { Prisma as prismaClient } from "@prisma/client/"; import type { NextApiRequest, NextApiResponse } from "next"; export default async function handle(req: NextApiRequest, res: NextApiResponse) { @@ -144,6 +145,7 @@ export default async function handle(req: NextApiRequest, res: NextApiResponse) id: targetEnvironmentId, }, }, + surveyClosedMessage: existingSurvey.surveyClosedMessage ?? prismaClient.JsonNull, }, }); diff --git a/apps/web/pages/api/v1/environments/[environmentId]/surveys/[surveyId]/duplicate/index.ts b/apps/web/pages/api/v1/environments/[environmentId]/surveys/[surveyId]/duplicate/index.ts index eb5e6ccd2b..a548ebcfaf 100644 --- a/apps/web/pages/api/v1/environments/[environmentId]/surveys/[surveyId]/duplicate/index.ts +++ b/apps/web/pages/api/v1/environments/[environmentId]/surveys/[surveyId]/duplicate/index.ts @@ -1,5 +1,6 @@ import { hasEnvironmentAccess } from "@/lib/api/apiHelper"; import { prisma } from "@formbricks/database"; +import { Prisma as prismaClient } from "@prisma/client/"; import type { NextApiRequest, NextApiResponse } from "next"; export default async function handle(req: NextApiRequest, res: NextApiResponse) { @@ -64,6 +65,7 @@ export default async function handle(req: NextApiRequest, res: NextApiResponse) id: environmentId, }, }, + surveyClosedMessage: existingSurvey.surveyClosedMessage ?? prismaClient.JsonNull, }, }); diff --git a/apps/web/pages/api/v1/environments/[environmentId]/surveys/[surveyId]/index.ts b/apps/web/pages/api/v1/environments/[environmentId]/surveys/[surveyId]/index.ts index d79a375de8..9310d51264 100644 --- a/apps/web/pages/api/v1/environments/[environmentId]/surveys/[surveyId]/index.ts +++ b/apps/web/pages/api/v1/environments/[environmentId]/surveys/[surveyId]/index.ts @@ -1,6 +1,7 @@ import type { AttributeFilter } from "@formbricks/types/surveys"; import { hasEnvironmentAccess } from "@/lib/api/apiHelper"; import { prisma } from "@formbricks/database"; +import { Prisma as prismaClient } from "@prisma/client/"; import type { NextApiRequest, NextApiResponse } from "next"; export default async function handle(req: NextApiRequest, res: NextApiResponse) { @@ -87,6 +88,10 @@ export default async function handle(req: NextApiRequest, res: NextApiResponse) if (body.type === "link") { delete body.triggers; delete body.recontactDays; + // converts JSON field with null value to JsonNull as JSON fields can't be set to null since prisma 3.0 + if (!body.surveyClosedMessage) { + body.surveyClosedMessage = prismaClient.JsonNull; + } } if (body.triggers) { diff --git a/packages/database/jsonTypes.ts b/packages/database/jsonTypes.ts index 1ec9b86da4..31b32b637f 100644 --- a/packages/database/jsonTypes.ts +++ b/packages/database/jsonTypes.ts @@ -1,6 +1,6 @@ import { TEventClassNoCodeConfig } from "@formbricks/types/v1/eventClasses"; import { TResponsePersonAttributes, TResponseData } from "@formbricks/types/v1/responses"; -import { TSurveyQuestions, TSurveyThankYouCard } from "@formbricks/types/v1/surveys"; +import { TSurveyClosedMessage, TSurveyQuestions, TSurveyThankYouCard } from "@formbricks/types/v1/surveys"; import { TUserNotificationSettings } from "@formbricks/types/v1/users"; declare global { @@ -12,6 +12,7 @@ declare global { export type ResponsePersonAttributes = TResponsePersonAttributes; export type SurveyQuestions = TSurveyQuestions; export type SurveyThankYouCard = TSurveyThankYouCard; + export type SurveyClosedMessage = TSurveyClosedMessage; export type UserNotificationSettings = TUserNotificationSettings; } } diff --git a/packages/database/migrations/20230711110136_add_survey_closed_message/migration.sql b/packages/database/migrations/20230711110136_add_survey_closed_message/migration.sql new file mode 100644 index 0000000000..d8dd0ce345 --- /dev/null +++ b/packages/database/migrations/20230711110136_add_survey_closed_message/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "Survey" ADD COLUMN "surveyClosedMessage" JSONB; diff --git a/packages/database/schema.prisma b/packages/database/schema.prisma index f7e1a72902..741dbdd5b5 100644 --- a/packages/database/schema.prisma +++ b/packages/database/schema.prisma @@ -210,33 +210,36 @@ enum displayOptions { } model Survey { - id String @id @default(cuid()) - createdAt DateTime @default(now()) @map(name: "created_at") - updatedAt DateTime @updatedAt @map(name: "updated_at") - name String - redirectUrl String? - type SurveyType @default(web) - environment Environment @relation(fields: [environmentId], references: [id], onDelete: Cascade) - environmentId String - status SurveyStatus @default(draft) + id String @id @default(cuid()) + createdAt DateTime @default(now()) @map(name: "created_at") + updatedAt DateTime @updatedAt @map(name: "updated_at") + name String + redirectUrl String? + type SurveyType @default(web) + environment Environment @relation(fields: [environmentId], references: [id], onDelete: Cascade) + environmentId String + status SurveyStatus @default(draft) /// @zod.custom(imports.ZSurveyQuestions) /// @zod.custom(imports.ZSurveyQuestions) /// [SurveyQuestions] - questions Json @default("[]") + questions Json @default("[]") /// @zod.custom(imports.ZSurveyThankYouCard) /// @zod.custom(imports.ZSurveyThankYouCard) /// [SurveyThankYouCard] - thankYouCard Json @default("{\"enabled\": false}") - responses Response[] - displayOption displayOptions @default(displayOnce) - recontactDays Int? - triggers SurveyTrigger[] - attributeFilters SurveyAttributeFilter[] - displays Display[] - autoClose Int? - delay Int @default(0) - autoComplete Int? - closeOnDate DateTime? + thankYouCard Json @default("{\"enabled\": false}") + responses Response[] + displayOption displayOptions @default(displayOnce) + recontactDays Int? + triggers SurveyTrigger[] + attributeFilters SurveyAttributeFilter[] + displays Display[] + autoClose Int? + delay Int @default(0) + autoComplete Int? + closeOnDate DateTime? + /// @zod.custom(imports.ZSurveyClosedMessage) + /// [SurveyClosedMessage] + surveyClosedMessage Json? } model Event { diff --git a/packages/database/zod-utils.ts b/packages/database/zod-utils.ts index 1e17d99712..8764ab46d5 100644 --- a/packages/database/zod-utils.ts +++ b/packages/database/zod-utils.ts @@ -6,6 +6,6 @@ export { ZEventClassNoCodeConfig } from "@formbricks/types/v1/eventClasses"; export { ZResponseData, ZResponsePersonAttributes } from "@formbricks/types/v1/responses"; export const ZResponseMeta = z.record(z.union([z.string(), z.number()])); -export { ZSurveyQuestions, ZSurveyThankYouCard } from "@formbricks/types/v1/surveys"; +export { ZSurveyQuestions, ZSurveyThankYouCard, ZSurveyClosedMessage } from "@formbricks/types/v1/surveys"; export { ZUserNotificationSettings } from "@formbricks/types/v1/users"; diff --git a/packages/types/surveys.ts b/packages/types/surveys.ts index 316d0250a7..826da7138b 100644 --- a/packages/types/surveys.ts +++ b/packages/types/surveys.ts @@ -6,6 +6,11 @@ export interface ThankYouCard { subheader?: string; } +export interface SurveyClosedMessage { + heading?: string; + subheading?: string; +} + export interface Survey { id: string; createdAt: string; @@ -26,6 +31,7 @@ export interface Survey { autoClose: number | null; delay: number; autoComplete: number | null; + surveyClosedMessage: SurveyClosedMessage | null; closeOnDate: Date | null; } diff --git a/packages/types/v1/surveys.ts b/packages/types/v1/surveys.ts index 52ddc9db3c..6de5d85dce 100644 --- a/packages/types/v1/surveys.ts +++ b/packages/types/v1/surveys.ts @@ -8,8 +8,17 @@ export const ZSurveyThankYouCard = z.object({ subheader: z.optional(z.string()), }); +export const ZSurveyClosedMessage = z + .object({ + heading: z.optional(z.string()), + subheading: z.optional(z.string()), + }) + .optional(); + export type TSurveyThankYouCard = z.infer; +export type TSurveyClosedMessage = z.infer; + export const ZSurveyChoice = z.object({ id: z.string(), label: z.string(), @@ -215,6 +224,7 @@ export const ZSurveyWithAnalytics = ZSurvey.extend({ numDisplays: z.number(), responseRate: z.number(), }), + surveyClosedMessage: ZSurveyClosedMessage, }); export type TSurveyWithAnalytics = z.infer; From 7dd67e4633de0ea7917658d376da93372650b6e7 Mon Sep 17 00:00:00 2001 From: Matti Nannt Date: Tue, 11 Jul 2023 13:21:14 +0200 Subject: [PATCH 41/41] Fix duplicated closeOnDate in survey service (#525) * Remove duplicated closeOnDate * regenerate pnpm-lock --- packages/lib/services/survey.ts | 1 - pnpm-lock.yaml | 56 ++++++++++++++++----------------- 2 files changed, 28 insertions(+), 29 deletions(-) diff --git a/packages/lib/services/survey.ts b/packages/lib/services/survey.ts index 68d3fac613..5fc80788df 100644 --- a/packages/lib/services/survey.ts +++ b/packages/lib/services/survey.ts @@ -23,7 +23,6 @@ const selectSurvey = { closeOnDate: true, delay: true, autoComplete: true, - closeOnDate: true, triggers: { select: { eventClass: { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7d9e36f104..3901053f47 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '6.1' +lockfileVersion: '6.0' settings: autoInstallPeers: true @@ -19,7 +19,7 @@ importers: version: 3.12.7 turbo: specifier: latest - version: 1.10.3 + version: 1.10.7 apps/demo: dependencies: @@ -349,7 +349,7 @@ importers: version: 8.8.0(eslint@8.41.0) eslint-config-turbo: specifier: latest - version: 1.10.3(eslint@8.41.0) + version: 1.8.8(eslint@8.41.0) eslint-plugin-react: specifier: 7.32.2 version: 7.32.2(eslint@8.41.0) @@ -9539,13 +9539,13 @@ packages: eslint: 8.41.0 dev: true - /eslint-config-turbo@1.10.3(eslint@8.41.0): - resolution: {integrity: sha512-ggzPfTJfMsMS383oZ4zfTP1zQvyMyiigOQJRUnLt1nqII6SKkTzdKZdwmXRDHU24KFwUfEFtT6c8vnm2VhL0uQ==} + /eslint-config-turbo@1.8.8(eslint@8.41.0): + resolution: {integrity: sha512-+yT22sHOT5iC1sbBXfLIdXfbZuiv9bAyOXsxTxFCWelTeFFnANqmuKB3x274CFvf7WRuZ/vYP/VMjzU9xnFnxA==} peerDependencies: eslint: '>6.6.0' dependencies: eslint: 8.41.0 - eslint-plugin-turbo: 1.10.3(eslint@8.41.0) + eslint-plugin-turbo: 1.8.8(eslint@8.41.0) dev: true /eslint-import-resolver-node@0.3.6: @@ -9864,8 +9864,8 @@ packages: semver: 6.3.0 string.prototype.matchall: 4.0.8 - /eslint-plugin-turbo@1.10.3(eslint@8.41.0): - resolution: {integrity: sha512-g3Mnnk7el1FqxHfqbE/MayLvCsYjA/vKmAnUj66kV4AlM7p/EZqdt42NMcMSKtDVEm0w+utQkkzWG2Xsa0Pd/g==} + /eslint-plugin-turbo@1.8.8(eslint@8.41.0): + resolution: {integrity: sha512-zqyTIvveOY4YU5jviDWw9GXHd4RiKmfEgwsjBrV/a965w0PpDwJgEUoSMB/C/dU310Sv9mF3DSdEjxjJLaw6rA==} peerDependencies: eslint: '>6.6.0' dependencies: @@ -19204,65 +19204,65 @@ packages: dependencies: safe-buffer: 5.2.1 - /turbo-darwin-64@1.10.3: - resolution: {integrity: sha512-IIB9IomJGyD3EdpSscm7Ip1xVWtYb7D0x7oH3vad3gjFcjHJzDz9xZ/iw/qItFEW+wGFcLSRPd+1BNnuLM8AsA==} + /turbo-darwin-64@1.10.7: + resolution: {integrity: sha512-N2MNuhwrl6g7vGuz4y3fFG2aR1oCs0UZ5HKl8KSTn/VC2y2YIuLGedQ3OVbo0TfEvygAlF3QGAAKKtOCmGPNKA==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /turbo-darwin-arm64@1.10.3: - resolution: {integrity: sha512-SBNmOZU9YEB0eyNIxeeQ+Wi0Ufd+nprEVp41rgUSRXEIpXjsDjyBnKnF+sQQj3+FLb4yyi/yZQckB+55qXWEsw==} + /turbo-darwin-arm64@1.10.7: + resolution: {integrity: sha512-WbJkvjU+6qkngp7K4EsswOriO3xrNQag7YEGRtfLoDdMTk4O4QTeU6sfg2dKfDsBpTidTvEDwgIYJhYVGzrz9Q==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /turbo-linux-64@1.10.3: - resolution: {integrity: sha512-kvAisGKE7xHJdyMxZLvg53zvHxjqPK1UVj4757PQqtx9dnjYHSc8epmivE6niPgDHon5YqImzArCjVZJYpIGHQ==} + /turbo-linux-64@1.10.7: + resolution: {integrity: sha512-x1CF2CDP1pDz/J8/B2T0hnmmOQI2+y11JGIzNP0KtwxDM7rmeg3DDTtDM/9PwGqfPotN9iVGgMiMvBuMFbsLhg==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /turbo-linux-arm64@1.10.3: - resolution: {integrity: sha512-Qgaqln0IYRgyL0SowJOi+PNxejv1I2xhzXOI+D+z4YHbgSx87ox1IsALYBlK8VRVYY8VCXl+PN12r1ioV09j7A==} + /turbo-linux-arm64@1.10.7: + resolution: {integrity: sha512-JtnBmaBSYbs7peJPkXzXxsRGSGBmBEIb6/kC8RRmyvPAMyqF8wIex0pttsI+9plghREiGPtRWv/lfQEPRlXnNQ==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /turbo-windows-64@1.10.3: - resolution: {integrity: sha512-rbH9wManURNN8mBnN/ZdkpUuTvyVVEMiUwFUX4GVE5qmV15iHtZfDLUSGGCP2UFBazHcpNHG1OJzgc55GFFrUw==} + /turbo-windows-64@1.10.7: + resolution: {integrity: sha512-7A/4CByoHdolWS8dg3DPm99owfu1aY/W0V0+KxFd0o2JQMTQtoBgIMSvZesXaWM57z3OLsietFivDLQPuzE75w==} cpu: [x64] os: [win32] requiresBuild: true dev: true optional: true - /turbo-windows-arm64@1.10.3: - resolution: {integrity: sha512-ThlkqxhcGZX39CaTjsHqJnqVe+WImjX13pmjnpChz6q5HHbeRxaJSFzgrHIOt0sUUVx90W/WrNRyoIt/aafniw==} + /turbo-windows-arm64@1.10.7: + resolution: {integrity: sha512-D36K/3b6+hqm9IBAymnuVgyePktwQ+F0lSXr2B9JfAdFPBktSqGmp50JNC7pahxhnuCLj0Vdpe9RqfnJw5zATA==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /turbo@1.10.3: - resolution: {integrity: sha512-U4gKCWcKgLcCjQd4Pl8KJdfEKumpyWbzRu75A6FCj6Ctea1PIm58W6Ltw1QXKqHrl2pF9e1raAskf/h6dlrPCA==} + /turbo@1.10.7: + resolution: {integrity: sha512-xm0MPM28TWx1e6TNC3wokfE5eaDqlfi0G24kmeHupDUZt5Wd0OzHFENEHMPqEaNKJ0I+AMObL6nbSZonZBV2HA==} hasBin: true requiresBuild: true optionalDependencies: - turbo-darwin-64: 1.10.3 - turbo-darwin-arm64: 1.10.3 - turbo-linux-64: 1.10.3 - turbo-linux-arm64: 1.10.3 - turbo-windows-64: 1.10.3 - turbo-windows-arm64: 1.10.3 + turbo-darwin-64: 1.10.7 + turbo-darwin-arm64: 1.10.7 + turbo-linux-64: 1.10.7 + turbo-linux-arm64: 1.10.7 + turbo-windows-64: 1.10.7 + turbo-windows-arm64: 1.10.7 dev: true /tween-functions@1.2.0: