diff --git a/.env.example b/.env.example
index 983bd1e..9ea8a2a 100644
--- a/.env.example
+++ b/.env.example
@@ -5,6 +5,8 @@ DATABASE_URL=""
UPSTASH_REDIS_REST_URL=""
UPSTASH_REDIS_REST_TOKEN=""
UPSTASH_REDIS_EXPIRY_SECONDS=""
+UPSTASH_RATELIMIT_REQUESTS=""
+UPSTASH_RATELIMIT_SECONDS=""
#Next Auth Core
NEXTAUTH_SECRET=""
diff --git a/README.md b/README.md
index c440c36..ae8d0a2 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,7 @@ A scrum poker tool that helps agile teams plan their sprints in real-time.
## Stack
- Front-end framework: Nextjs
-- Front-end library: Preact
+- Front-end library: React
- Rendering method: SSR SPA
- Hosting: Vercel
- Real-time pub/sub: Ably
diff --git a/next.config.mjs b/next.config.mjs
index da54605..ea8dac8 100644
--- a/next.config.mjs
+++ b/next.config.mjs
@@ -12,17 +12,6 @@ const config = {
images: {
domains: ["avatars.githubusercontent.com", "lh3.googleusercontent.com"],
},
- webpack: (config, { dev, isServer }) => {
- if (!dev && !isServer) {
- Object.assign(config.resolve.alias, {
- "react/jsx-runtime.js": "preact/compat/jsx-runtime",
- react: "preact/compat",
- "react-dom/test-utils": "preact/test-utils",
- "react-dom": "preact/compat",
- });
- }
- return config;
- },
};
export default config;
diff --git a/package.json b/package.json
index e1365f6..735a9a0 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "sprintpadawan",
- "version": "1.2.4",
+ "version": "1.2.5",
"description": "Plan. Sprint. Repeat.",
"private": true,
"scripts": {
@@ -16,39 +16,40 @@
"@auth/prisma-adapter": "^1.0.1",
"@prisma/client": "5.0.0",
"@react-email/components": "^0.0.7",
- "@tanstack/react-query": "^4.29.19",
- "@trpc/client": "10.34.0",
- "@trpc/next": "10.34.0",
- "@trpc/react-query": "10.34.0",
- "@trpc/server": "10.34.0",
+ "@tanstack/react-query": "^4.32.0",
+ "@trpc/client": "10.35.0",
+ "@trpc/next": "10.35.0",
+ "@trpc/react-query": "10.35.0",
+ "@trpc/server": "10.35.0",
+ "@upstash/ratelimit": "^0.4.3",
"@upstash/redis": "^1.22.0",
- "ably": "^1.2.41",
+ "ably": "^1.2.42",
"autoprefixer": "^10.4.14",
"json2csv": "6.0.0-alpha.2",
- "next": "^13.4.9",
- "next-auth": "^4.22.1",
- "postcss": "^8.4.25",
- "preact": "^10.16.0",
+ "next": "^13.4.12",
+ "next-auth": "^4.22.3",
+ "postcss": "^8.4.27",
"react": "18.2.0",
+ "react-dom": "18.2.0",
"react-email": "^1.9.4",
"react-icons": "^4.10.1",
- "resend": "^0.16.0",
- "sharp": "^0.32.2",
- "superjson": "1.12.4",
+ "resend": "^0.17.1",
+ "sharp": "^0.32.4",
+ "superjson": "1.13.1",
"zod": "^3.21.4"
},
"devDependencies": {
- "@types/eslint": "^8.44.0",
+ "@types/eslint": "^8.44.1",
"@types/json2csv": "^5.0.3",
- "@types/node": "^20.4.1",
- "@types/react": "^18.2.14",
- "@typescript-eslint/eslint-plugin": "^6.0.0",
- "@typescript-eslint/parser": "^6.0.0",
- "daisyui": "^3.2.1",
- "eslint": "^8.44.0",
- "eslint-config-next": "^13.4.9",
+ "@types/node": "^20.4.4",
+ "@types/react": "^18.2.16",
+ "@typescript-eslint/eslint-plugin": "^6.2.0",
+ "@typescript-eslint/parser": "^6.2.0",
+ "daisyui": "^3.4.0",
+ "eslint": "^8.45.0",
+ "eslint-config-next": "^13.4.12",
"prisma": "5.0.0",
- "tailwindcss": "^3.3.2",
+ "tailwindcss": "^3.3.3",
"typescript": "^5.1.6"
},
"ct3aMetadata": {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index a63418b..b587c97 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -18,47 +18,50 @@ dependencies:
specifier: ^0.0.7
version: 0.0.7
'@tanstack/react-query':
- specifier: ^4.29.19
- version: 4.29.19(react-dom@18.2.0)(react@18.2.0)
+ specifier: ^4.32.0
+ version: 4.32.0(react-dom@18.2.0)(react@18.2.0)
'@trpc/client':
- specifier: 10.34.0
- version: 10.34.0(@trpc/server@10.34.0)
+ specifier: 10.35.0
+ version: 10.35.0(@trpc/server@10.35.0)
'@trpc/next':
- specifier: 10.34.0
- version: 10.34.0(@tanstack/react-query@4.29.19)(@trpc/client@10.34.0)(@trpc/react-query@10.34.0)(@trpc/server@10.34.0)(next@13.4.9)(react-dom@18.2.0)(react@18.2.0)
+ specifier: 10.35.0
+ version: 10.35.0(@tanstack/react-query@4.32.0)(@trpc/client@10.35.0)(@trpc/react-query@10.35.0)(@trpc/server@10.35.0)(next@13.4.12)(react-dom@18.2.0)(react@18.2.0)
'@trpc/react-query':
- specifier: 10.34.0
- version: 10.34.0(@tanstack/react-query@4.29.19)(@trpc/client@10.34.0)(@trpc/server@10.34.0)(react-dom@18.2.0)(react@18.2.0)
+ specifier: 10.35.0
+ version: 10.35.0(@tanstack/react-query@4.32.0)(@trpc/client@10.35.0)(@trpc/server@10.35.0)(react-dom@18.2.0)(react@18.2.0)
'@trpc/server':
- specifier: 10.34.0
- version: 10.34.0
+ specifier: 10.35.0
+ version: 10.35.0
+ '@upstash/ratelimit':
+ specifier: ^0.4.3
+ version: 0.4.3
'@upstash/redis':
specifier: ^1.22.0
version: 1.22.0
ably:
- specifier: ^1.2.41
- version: 1.2.41
+ specifier: ^1.2.42
+ version: 1.2.42
autoprefixer:
specifier: ^10.4.14
- version: 10.4.14(postcss@8.4.25)
+ version: 10.4.14(postcss@8.4.27)
json2csv:
specifier: 6.0.0-alpha.2
version: 6.0.0-alpha.2
next:
- specifier: ^13.4.9
- version: 13.4.9(react-dom@18.2.0)(react@18.2.0)
+ specifier: ^13.4.12
+ version: 13.4.12(react-dom@18.2.0)(react@18.2.0)
next-auth:
- specifier: ^4.22.1
- version: 4.22.1(next@13.4.9)(react-dom@18.2.0)(react@18.2.0)
+ specifier: ^4.22.3
+ version: 4.22.3(next@13.4.12)(react-dom@18.2.0)(react@18.2.0)
postcss:
- specifier: ^8.4.25
- version: 8.4.25
- preact:
- specifier: ^10.16.0
- version: 10.16.0
+ specifier: ^8.4.27
+ version: 8.4.27
react:
specifier: 18.2.0
version: 18.2.0
+ react-dom:
+ specifier: 18.2.0
+ version: 18.2.0(react@18.2.0)
react-email:
specifier: ^1.9.4
version: 1.9.4
@@ -66,52 +69,52 @@ dependencies:
specifier: ^4.10.1
version: 4.10.1(react@18.2.0)
resend:
- specifier: ^0.16.0
- version: 0.16.0
+ specifier: ^0.17.1
+ version: 0.17.1
sharp:
- specifier: ^0.32.2
- version: 0.32.2
+ specifier: ^0.32.4
+ version: 0.32.4
superjson:
- specifier: 1.12.4
- version: 1.12.4
+ specifier: 1.13.1
+ version: 1.13.1
zod:
specifier: ^3.21.4
version: 3.21.4
devDependencies:
'@types/eslint':
- specifier: ^8.44.0
- version: 8.44.0
+ specifier: ^8.44.1
+ version: 8.44.1
'@types/json2csv':
specifier: ^5.0.3
version: 5.0.3
'@types/node':
- specifier: ^20.4.1
- version: 20.4.1
+ specifier: ^20.4.4
+ version: 20.4.4
'@types/react':
- specifier: ^18.2.14
- version: 18.2.14
+ specifier: ^18.2.16
+ version: 18.2.16
'@typescript-eslint/eslint-plugin':
- specifier: ^6.0.0
- version: 6.0.0(@typescript-eslint/parser@6.0.0)(eslint@8.44.0)(typescript@5.1.6)
+ specifier: ^6.2.0
+ version: 6.2.0(@typescript-eslint/parser@6.2.0)(eslint@8.45.0)(typescript@5.1.6)
'@typescript-eslint/parser':
- specifier: ^6.0.0
- version: 6.0.0(eslint@8.44.0)(typescript@5.1.6)
+ specifier: ^6.2.0
+ version: 6.2.0(eslint@8.45.0)(typescript@5.1.6)
daisyui:
- specifier: ^3.2.1
- version: 3.2.1
+ specifier: ^3.4.0
+ version: 3.4.0
eslint:
- specifier: ^8.44.0
- version: 8.44.0
+ specifier: ^8.45.0
+ version: 8.45.0
eslint-config-next:
- specifier: ^13.4.9
- version: 13.4.9(eslint@8.44.0)(typescript@5.1.6)
+ specifier: ^13.4.12
+ version: 13.4.12(eslint@8.45.0)(typescript@5.1.6)
prisma:
specifier: 5.0.0
version: 5.0.0
tailwindcss:
- specifier: ^3.3.2
- version: 3.3.2
+ specifier: ^3.3.3
+ version: 3.3.3
typescript:
specifier: ^5.1.6
version: 5.1.6
@@ -129,7 +132,7 @@ packages:
react: '>=18.1.0'
react-dom: '>=18.1.0'
dependencies:
- ably: 1.2.41
+ ably: 1.2.42
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
transitivePeerDependencies:
@@ -408,18 +411,18 @@ packages:
dev: false
optional: true
- /@eslint-community/eslint-utils@4.4.0(eslint@8.44.0):
+ /@eslint-community/eslint-utils@4.4.0(eslint@8.45.0):
resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
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.44.0
+ eslint: 8.45.0
eslint-visitor-keys: 3.4.1
dev: true
- /@eslint-community/regexpp@4.5.1:
- resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==}
+ /@eslint-community/regexpp@4.6.1:
+ resolution: {integrity: sha512-O7x6dMstWLn2ktjcoiNLDkAGG2EjveHL+Vvc+n0fXumkJYAcSqcVYKtwDU+hDZ0uDUsnUagSYaZrOLAYE8un1A==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
dev: true
@@ -429,7 +432,7 @@ packages:
dependencies:
ajv: 6.12.6
debug: 4.3.4
- espree: 9.6.0
+ espree: 9.6.1
globals: 13.20.0
ignore: 5.2.4
import-fresh: 3.3.0
@@ -519,18 +522,18 @@ packages:
read-yaml-file: 1.1.0
dev: false
- /@next/env@13.4.9:
- resolution: {integrity: sha512-vuDRK05BOKfmoBYLNi2cujG2jrYbEod/ubSSyqgmEx9n/W3eZaJQdRNhTfumO+qmq/QTzLurW487n/PM/fHOkw==}
+ /@next/env@13.4.12:
+ resolution: {integrity: sha512-RmHanbV21saP/6OEPBJ7yJMuys68cIf8OBBWd7+uj40LdpmswVAwe1uzeuFyUsd6SfeITWT3XnQfn6wULeKwDQ==}
dev: false
- /@next/eslint-plugin-next@13.4.9:
- resolution: {integrity: sha512-nDtGpa992tNyAkT/KmSMy7QkHfNZmGCBYhHtafU97DubqxzNdvLsqRtliQ4FU04CysRCtvP2hg8rRC1sAKUTUA==}
+ /@next/eslint-plugin-next@13.4.12:
+ resolution: {integrity: sha512-6rhK9CdxEgj/j1qvXIyLTWEaeFv7zOK8yJMulz3Owel0uek0U9MJCGzmKgYxM3aAUBo3gKeywCZKyQnJKto60A==}
dependencies:
glob: 7.1.7
dev: true
- /@next/swc-darwin-arm64@13.4.9:
- resolution: {integrity: sha512-TVzGHpZoVBk3iDsTOQA/R6MGmFp0+17SWXMEWd6zG30AfuELmSSMe2SdPqxwXU0gbpWkJL1KgfLzy5ReN0crqQ==}
+ /@next/swc-darwin-arm64@13.4.12:
+ resolution: {integrity: sha512-deUrbCXTMZ6ZhbOoloqecnUeNpUOupi8SE2tx4jPfNS9uyUR9zK4iXBvH65opVcA/9F5I/p8vDXSYbUlbmBjZg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
@@ -538,8 +541,8 @@ packages:
dev: false
optional: true
- /@next/swc-darwin-x64@13.4.9:
- resolution: {integrity: sha512-aSfF1fhv28N2e7vrDZ6zOQ+IIthocfaxuMWGReB5GDriF0caTqtHttAvzOMgJgXQtQx6XhyaJMozLTSEXeNN+A==}
+ /@next/swc-darwin-x64@13.4.12:
+ resolution: {integrity: sha512-WRvH7RxgRHlC1yb5oG0ZLx8F7uci9AivM5/HGGv9ZyG2Als8Ij64GC3d+mQ5sJhWjusyU6T6V1WKTUoTmOB0zQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
@@ -547,8 +550,8 @@ packages:
dev: false
optional: true
- /@next/swc-linux-arm64-gnu@13.4.9:
- resolution: {integrity: sha512-JhKoX5ECzYoTVyIy/7KykeO4Z2lVKq7HGQqvAH+Ip9UFn1MOJkOnkPRB7v4nmzqAoY+Je05Aj5wNABR1N18DMg==}
+ /@next/swc-linux-arm64-gnu@13.4.12:
+ resolution: {integrity: sha512-YEKracAWuxp54tKiAvvq73PUs9lok57cc8meYRibTWe/VdPB2vLgkTVWFcw31YDuRXdEhdX0fWS6Q+ESBhnEig==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
@@ -556,8 +559,8 @@ packages:
dev: false
optional: true
- /@next/swc-linux-arm64-musl@13.4.9:
- resolution: {integrity: sha512-OOn6zZBIVkm/4j5gkPdGn4yqQt+gmXaLaSjRSO434WplV8vo2YaBNbSHaTM9wJpZTHVDYyjzuIYVEzy9/5RVZw==}
+ /@next/swc-linux-arm64-musl@13.4.12:
+ resolution: {integrity: sha512-LhJR7/RAjdHJ2Isl2pgc/JaoxNk0KtBgkVpiDJPVExVWA1c6gzY57+3zWuxuyWzTG+fhLZo2Y80pLXgIJv7g3g==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
@@ -565,8 +568,8 @@ packages:
dev: false
optional: true
- /@next/swc-linux-x64-gnu@13.4.9:
- resolution: {integrity: sha512-iA+fJXFPpW0SwGmx/pivVU+2t4zQHNOOAr5T378PfxPHY6JtjV6/0s1vlAJUdIHeVpX98CLp9k5VuKgxiRHUpg==}
+ /@next/swc-linux-x64-gnu@13.4.12:
+ resolution: {integrity: sha512-1DWLL/B9nBNiQRng+1aqs3OaZcxC16Nf+mOnpcrZZSdyKHek3WQh6j/fkbukObgNGwmCoVevLUa/p3UFTTqgqg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
@@ -574,8 +577,8 @@ packages:
dev: false
optional: true
- /@next/swc-linux-x64-musl@13.4.9:
- resolution: {integrity: sha512-rlNf2WUtMM+GAQrZ9gMNdSapkVi3koSW3a+dmBVp42lfugWVvnyzca/xJlN48/7AGx8qu62WyO0ya1ikgOxh6A==}
+ /@next/swc-linux-x64-musl@13.4.12:
+ resolution: {integrity: sha512-kEAJmgYFhp0VL+eRWmUkVxLVunn7oL9Mdue/FS8yzRBVj7Z0AnIrHpTIeIUl1bbdQq1VaoOztnKicAjfkLTRCQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
@@ -583,8 +586,8 @@ packages:
dev: false
optional: true
- /@next/swc-win32-arm64-msvc@13.4.9:
- resolution: {integrity: sha512-5T9ybSugXP77nw03vlgKZxD99AFTHaX8eT1ayKYYnGO9nmYhJjRPxcjU5FyYI+TdkQgEpIcH7p/guPLPR0EbKA==}
+ /@next/swc-win32-arm64-msvc@13.4.12:
+ resolution: {integrity: sha512-GMLuL/loR6yIIRTnPRY6UGbLL9MBdw2anxkOnANxvLvsml4F0HNIgvnU3Ej4BjbqMTNjD4hcPFdlEow4XHPdZA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
@@ -592,8 +595,8 @@ packages:
dev: false
optional: true
- /@next/swc-win32-ia32-msvc@13.4.9:
- resolution: {integrity: sha512-ojZTCt1lP2ucgpoiFgrFj07uq4CZsq4crVXpLGgQfoFq00jPKRPgesuGPaz8lg1yLfvafkU3Jd1i8snKwYR3LA==}
+ /@next/swc-win32-ia32-msvc@13.4.12:
+ resolution: {integrity: sha512-PhgNqN2Vnkm7XaMdRmmX0ZSwZXQAtamBVSa9A/V1dfKQCV1rjIZeiy/dbBnVYGdj63ANfsOR/30XpxP71W0eww==}
engines: {node: '>= 10'}
cpu: [ia32]
os: [win32]
@@ -601,8 +604,8 @@ packages:
dev: false
optional: true
- /@next/swc-win32-x64-msvc@13.4.9:
- resolution: {integrity: sha512-QbT03FXRNdpuL+e9pLnu+XajZdm/TtIXVYY4lA9t+9l0fLZbHXDYEKitAqxrOj37o3Vx5ufxiRAniaIebYDCgw==}
+ /@next/swc-win32-x64-msvc@13.4.12:
+ resolution: {integrity: sha512-Z+56e/Ljt0bUs+T+jPjhFyxYBcdY2RIq9ELFU+qAMQMteHo7ymbV7CKmlcX59RI9C4YzN8PgMgLyAoi916b5HA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
@@ -752,6 +755,10 @@ packages:
'@octokit/openapi-types': 18.0.0
dev: false
+ /@one-ini/wasm@0.1.1:
+ resolution: {integrity: sha512-XuySG1E38YScSJoMlqovLru4KTUNSjgVTIjyh7qMX6aNN5HY5Ct5LhRJdxO79JtTzKfzV/bnWpz+zquYrISsvw==}
+ dev: false
+
/@panva/hkdf@1.1.1:
resolution: {integrity: sha512-dhPeilub1NuIG0X5Kvhh9lH4iW3ZsHlnzwgwbOlgwQ2wG1IqFzsgHqmKPk3WzsdWAeaxKJxgM0+W433RmN45GA==}
dev: false
@@ -761,11 +768,11 @@ packages:
engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
dependencies:
cross-spawn: 7.0.3
- fast-glob: 3.3.0
+ fast-glob: 3.3.1
is-glob: 4.0.3
open: 9.1.0
picocolors: 1.0.0
- tslib: 2.6.0
+ tslib: 2.6.1
dev: true
/@prisma/client@5.0.0(prisma@5.0.0):
@@ -990,7 +997,7 @@ packages:
/@swc/helpers@0.5.1:
resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==}
dependencies:
- tslib: 2.6.0
+ tslib: 2.6.1
dev: false
/@szmarczak/http-timer@4.0.6:
@@ -1000,12 +1007,12 @@ packages:
defer-to-connect: 2.0.1
dev: false
- /@tanstack/query-core@4.29.19:
- resolution: {integrity: sha512-uPe1DukeIpIHpQi6UzIgBcXsjjsDaLnc7hF+zLBKnaUlh7jFE/A+P8t4cU4VzKPMFB/C970n/9SxtpO5hmIRgw==}
+ /@tanstack/query-core@4.32.0:
+ resolution: {integrity: sha512-ei4IYwL2kmlKSlCw9WgvV7PpXi0MiswVwfQRxawhJA690zWO3dU49igaQ/UMTl+Jy9jj9dK5IKAYvbX7kUvviQ==}
dev: false
- /@tanstack/react-query@4.29.19(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-XiTIOHHQ5Cw1WUlHaD4fmVUMhoWjuNJlAeJGq7eM4BraI5z7y8WkZO+NR8PSuRnQGblpuVdjClQbDFtwxTtTUw==}
+ /@tanstack/react-query@4.32.0(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-B8WUMcByYAH9500ENejDCATOmEZhqjtS9wsfiQ3BNa+s+yAynY8SESI8WWHhSqUmjd0pmCSFRP6BOUGSda3QXA==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@@ -1016,59 +1023,59 @@ packages:
react-native:
optional: true
dependencies:
- '@tanstack/query-core': 4.29.19
+ '@tanstack/query-core': 4.32.0
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
use-sync-external-store: 1.2.0(react@18.2.0)
dev: false
- /@trpc/client@10.34.0(@trpc/server@10.34.0):
- resolution: {integrity: sha512-nqtDTIqSY/9syo2EjSy4WWWXPU9GsamEh9Tsg698gLAh1nhgFc5+/YYeb+Ne1pbvWGZ5/3t9Dcz3h4wMyyJ9gQ==}
+ /@trpc/client@10.35.0(@trpc/server@10.35.0):
+ resolution: {integrity: sha512-FyVNQGLLsNourpYq7bojvvvpM63woCPL9c+lJo9x1Yheop5fng2GEyiVcVjCmBNk5tVARHjG9bTG1UeNF5t8OQ==}
peerDependencies:
- '@trpc/server': 10.34.0
+ '@trpc/server': 10.35.0
dependencies:
- '@trpc/server': 10.34.0
+ '@trpc/server': 10.35.0
dev: false
- /@trpc/next@10.34.0(@tanstack/react-query@4.29.19)(@trpc/client@10.34.0)(@trpc/react-query@10.34.0)(@trpc/server@10.34.0)(next@13.4.9)(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-8jQPedVkCYCAG6PXDEumG5ILeD1aYVC6/aApk5Y96eeqnmAtX7TO9grVRfGGNaISuTtJ/oIDmRfSRqo1eOU4OA==}
+ /@trpc/next@10.35.0(@tanstack/react-query@4.32.0)(@trpc/client@10.35.0)(@trpc/react-query@10.35.0)(@trpc/server@10.35.0)(next@13.4.12)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-mUp7OrsF/vwxPOjZ6lP4X0XVxXA8N7PaWys6NgigUaKsGZ9pht5QyQNfprVpIv7PnSknLuICY/fKEBL9+zfH3A==}
peerDependencies:
'@tanstack/react-query': ^4.18.0
- '@trpc/client': 10.34.0
- '@trpc/react-query': 10.34.0
- '@trpc/server': 10.34.0
+ '@trpc/client': 10.35.0
+ '@trpc/react-query': 10.35.0
+ '@trpc/server': 10.35.0
next: '*'
react: '>=16.8.0'
react-dom: '>=16.8.0'
dependencies:
- '@tanstack/react-query': 4.29.19(react-dom@18.2.0)(react@18.2.0)
- '@trpc/client': 10.34.0(@trpc/server@10.34.0)
- '@trpc/react-query': 10.34.0(@tanstack/react-query@4.29.19)(@trpc/client@10.34.0)(@trpc/server@10.34.0)(react-dom@18.2.0)(react@18.2.0)
- '@trpc/server': 10.34.0
- next: 13.4.9(react-dom@18.2.0)(react@18.2.0)
+ '@tanstack/react-query': 4.32.0(react-dom@18.2.0)(react@18.2.0)
+ '@trpc/client': 10.35.0(@trpc/server@10.35.0)
+ '@trpc/react-query': 10.35.0(@tanstack/react-query@4.32.0)(@trpc/client@10.35.0)(@trpc/server@10.35.0)(react-dom@18.2.0)(react@18.2.0)
+ '@trpc/server': 10.35.0
+ next: 13.4.12(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
react-ssr-prepass: 1.5.0(react@18.2.0)
dev: false
- /@trpc/react-query@10.34.0(@tanstack/react-query@4.29.19)(@trpc/client@10.34.0)(@trpc/server@10.34.0)(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-dnp7CmCBXwBgd8nAjMoHWMJwQrvAzjP+f8EXKfJVF66y9FydTBTf4CuXRh+A4EgA5CZeu4Ecva4D61Eu2I13GA==}
+ /@trpc/react-query@10.35.0(@tanstack/react-query@4.32.0)(@trpc/client@10.35.0)(@trpc/server@10.35.0)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-tPC14UAIlrMlPZgN5TGOzcgqI4dEBUaJSmc+PjLmLfP+7vcNwOweCSdvq9gsDBCZf9aYq3Bf6KFi90ej+0ZUjQ==}
peerDependencies:
'@tanstack/react-query': ^4.18.0
- '@trpc/client': 10.34.0
- '@trpc/server': 10.34.0
+ '@trpc/client': 10.35.0
+ '@trpc/server': 10.35.0
react: '>=16.8.0'
react-dom: '>=16.8.0'
dependencies:
- '@tanstack/react-query': 4.29.19(react-dom@18.2.0)(react@18.2.0)
- '@trpc/client': 10.34.0(@trpc/server@10.34.0)
- '@trpc/server': 10.34.0
+ '@tanstack/react-query': 4.32.0(react-dom@18.2.0)(react@18.2.0)
+ '@trpc/client': 10.35.0(@trpc/server@10.35.0)
+ '@trpc/server': 10.35.0
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
dev: false
- /@trpc/server@10.34.0:
- resolution: {integrity: sha512-2VMW44Fpaoyqb50dBtzdSWMhqt8lmoJiocEyBBeDb03R0W+XrzbVD5kU/wqKPlcp1DWeNCkOEIMtetMZCfo1hA==}
+ /@trpc/server@10.35.0:
+ resolution: {integrity: sha512-UntbE9gG+kB2nEwuJ0hw7AmQuRWw67voKaVBPBA7Ow6+aGZc00gva7015Ey5BT7Qf1wq7xJMLUdgw4QiVU+VpQ==}
dev: false
/@types/cacheable-request@6.0.3:
@@ -1076,12 +1083,12 @@ packages:
dependencies:
'@types/http-cache-semantics': 4.0.1
'@types/keyv': 3.1.4
- '@types/node': 20.4.1
+ '@types/node': 20.4.4
'@types/responselike': 1.0.0
dev: false
- /@types/eslint@8.44.0:
- resolution: {integrity: sha512-gsF+c/0XOguWgaOgvFs+xnnRqt9GwgTvIks36WpE6ueeI4KCEHHd8K/CKHqhOqrJKsYH8m27kRzQEvWXAwXUTw==}
+ /@types/eslint@8.44.1:
+ resolution: {integrity: sha512-XpNDc4Z5Tb4x+SW1MriMVeIsMoONHCkWFMkR/aPJbzEsxqHy+4Glu/BqTdPrApfDeMaXbtNh6bseNgl5KaWrSg==}
dependencies:
'@types/estree': 1.0.1
'@types/json-schema': 7.0.12
@@ -1102,7 +1109,7 @@ packages:
/@types/json2csv@5.0.3:
resolution: {integrity: sha512-ZJEv6SzhPhgpBpxZU4n/TZekbZqI4EcyXXRwms1lAITG2kIAtj85PfNYafUOY1zy8bWs5ujaub0GU4copaA0sw==}
dependencies:
- '@types/node': 20.4.1
+ '@types/node': 20.4.4
dev: true
/@types/json5@0.0.29:
@@ -1112,15 +1119,15 @@ packages:
/@types/keyv@3.1.4:
resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==}
dependencies:
- '@types/node': 20.4.1
+ '@types/node': 20.4.4
dev: false
/@types/node@12.20.55:
resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
dev: false
- /@types/node@20.4.1:
- resolution: {integrity: sha512-JIzsAvJeA/5iY6Y/OxZbv1lUcc8dNSE77lb2gnBH+/PJ3lFR1Ccvgwl5JWnHAkNHcRsT0TbpVOsiMKZ1F/yyJg==}
+ /@types/node@20.4.4:
+ resolution: {integrity: sha512-CukZhumInROvLq3+b5gLev+vgpsIqC2D0deQr/yS1WnxvmYLlJXZpaQrQiseMY+6xusl79E04UjWoqyr+t1/Ew==}
/@types/normalize-package-data@2.4.1:
resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==}
@@ -1130,8 +1137,8 @@ packages:
resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==}
dev: true
- /@types/react@18.2.14:
- resolution: {integrity: sha512-A0zjq+QN/O0Kpe30hA1GidzyFjatVvrpIvWLxD+xv67Vt91TWWgco9IvrJBkeyHm1trGaFS/FSGqPlhyeZRm0g==}
+ /@types/react@18.2.16:
+ resolution: {integrity: sha512-LLFWr12ZhBJ4YVw7neWLe6Pk7Ey5R9OCydfuMsz1L8bZxzaawJj2p06Q8/EFEHDeTBQNFLF62X+CG7B2zIyu0Q==}
dependencies:
'@types/prop-types': 15.7.5
'@types/scheduler': 0.16.3
@@ -1141,7 +1148,7 @@ packages:
/@types/responselike@1.0.0:
resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==}
dependencies:
- '@types/node': 20.4.1
+ '@types/node': 20.4.4
dev: false
/@types/scheduler@0.16.3:
@@ -1152,8 +1159,8 @@ packages:
resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==}
dev: true
- /@typescript-eslint/eslint-plugin@6.0.0(@typescript-eslint/parser@6.0.0)(eslint@8.44.0)(typescript@5.1.6):
- resolution: {integrity: sha512-xuv6ghKGoiq856Bww/yVYnXGsKa588kY3M0XK7uUW/3fJNNULKRfZfSBkMTSpqGG/8ZCXCadfh8G/z/B4aqS/A==}
+ /@typescript-eslint/eslint-plugin@6.2.0(@typescript-eslint/parser@6.2.0)(eslint@8.45.0)(typescript@5.1.6):
+ resolution: {integrity: sha512-rClGrMuyS/3j0ETa1Ui7s6GkLhfZGKZL3ZrChLeAiACBE/tRc1wq8SNZESUuluxhLj9FkUefRs2l6bCIArWBiQ==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
'@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha
@@ -1163,15 +1170,14 @@ packages:
typescript:
optional: true
dependencies:
- '@eslint-community/regexpp': 4.5.1
- '@typescript-eslint/parser': 6.0.0(eslint@8.44.0)(typescript@5.1.6)
- '@typescript-eslint/scope-manager': 6.0.0
- '@typescript-eslint/type-utils': 6.0.0(eslint@8.44.0)(typescript@5.1.6)
- '@typescript-eslint/utils': 6.0.0(eslint@8.44.0)(typescript@5.1.6)
- '@typescript-eslint/visitor-keys': 6.0.0
+ '@eslint-community/regexpp': 4.6.1
+ '@typescript-eslint/parser': 6.2.0(eslint@8.45.0)(typescript@5.1.6)
+ '@typescript-eslint/scope-manager': 6.2.0
+ '@typescript-eslint/type-utils': 6.2.0(eslint@8.45.0)(typescript@5.1.6)
+ '@typescript-eslint/utils': 6.2.0(eslint@8.45.0)(typescript@5.1.6)
+ '@typescript-eslint/visitor-keys': 6.2.0
debug: 4.3.4
- eslint: 8.44.0
- grapheme-splitter: 1.0.4
+ eslint: 8.45.0
graphemer: 1.4.0
ignore: 5.2.4
natural-compare: 1.4.0
@@ -1183,7 +1189,7 @@ packages:
- supports-color
dev: true
- /@typescript-eslint/parser@5.62.0(eslint@8.44.0)(typescript@5.1.6):
+ /@typescript-eslint/parser@5.62.0(eslint@8.45.0)(typescript@5.1.6):
resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@@ -1197,14 +1203,14 @@ packages:
'@typescript-eslint/types': 5.62.0
'@typescript-eslint/typescript-estree': 5.62.0(typescript@5.1.6)
debug: 4.3.4
- eslint: 8.44.0
+ eslint: 8.45.0
typescript: 5.1.6
transitivePeerDependencies:
- supports-color
dev: true
- /@typescript-eslint/parser@6.0.0(eslint@8.44.0)(typescript@5.1.6):
- resolution: {integrity: sha512-TNaufYSPrr1U8n+3xN+Yp9g31vQDJqhXzzPSHfQDLcaO4tU+mCfODPxCwf4H530zo7aUBE3QIdxCXamEnG04Tg==}
+ /@typescript-eslint/parser@6.2.0(eslint@8.45.0)(typescript@5.1.6):
+ resolution: {integrity: sha512-igVYOqtiK/UsvKAmmloQAruAdUHihsOCvplJpplPZ+3h4aDkC/UKZZNKgB6h93ayuYLuEymU3h8nF1xMRbh37g==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
@@ -1213,12 +1219,12 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/scope-manager': 6.0.0
- '@typescript-eslint/types': 6.0.0
- '@typescript-eslint/typescript-estree': 6.0.0(typescript@5.1.6)
- '@typescript-eslint/visitor-keys': 6.0.0
+ '@typescript-eslint/scope-manager': 6.2.0
+ '@typescript-eslint/types': 6.2.0
+ '@typescript-eslint/typescript-estree': 6.2.0(typescript@5.1.6)
+ '@typescript-eslint/visitor-keys': 6.2.0
debug: 4.3.4
- eslint: 8.44.0
+ eslint: 8.45.0
typescript: 5.1.6
transitivePeerDependencies:
- supports-color
@@ -1232,16 +1238,16 @@ packages:
'@typescript-eslint/visitor-keys': 5.62.0
dev: true
- /@typescript-eslint/scope-manager@6.0.0:
- resolution: {integrity: sha512-o4q0KHlgCZTqjuaZ25nw5W57NeykZT9LiMEG4do/ovwvOcPnDO1BI5BQdCsUkjxFyrCL0cSzLjvIMfR9uo7cWg==}
+ /@typescript-eslint/scope-manager@6.2.0:
+ resolution: {integrity: sha512-1ZMNVgm5nnHURU8ZSJ3snsHzpFeNK84rdZjluEVBGNu7jDymfqceB3kdIZ6A4xCfEFFhRIB6rF8q/JIqJd2R0Q==}
engines: {node: ^16.0.0 || >=18.0.0}
dependencies:
- '@typescript-eslint/types': 6.0.0
- '@typescript-eslint/visitor-keys': 6.0.0
+ '@typescript-eslint/types': 6.2.0
+ '@typescript-eslint/visitor-keys': 6.2.0
dev: true
- /@typescript-eslint/type-utils@6.0.0(eslint@8.44.0)(typescript@5.1.6):
- resolution: {integrity: sha512-ah6LJvLgkoZ/pyJ9GAdFkzeuMZ8goV6BH7eC9FPmojrnX9yNCIsfjB+zYcnex28YO3RFvBkV6rMV6WpIqkPvoQ==}
+ /@typescript-eslint/type-utils@6.2.0(eslint@8.45.0)(typescript@5.1.6):
+ resolution: {integrity: sha512-DnGZuNU2JN3AYwddYIqrVkYW0uUQdv0AY+kz2M25euVNlujcN2u+rJgfJsBFlUEzBB6OQkUqSZPyuTLf2bP5mw==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
@@ -1250,10 +1256,10 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/typescript-estree': 6.0.0(typescript@5.1.6)
- '@typescript-eslint/utils': 6.0.0(eslint@8.44.0)(typescript@5.1.6)
+ '@typescript-eslint/typescript-estree': 6.2.0(typescript@5.1.6)
+ '@typescript-eslint/utils': 6.2.0(eslint@8.45.0)(typescript@5.1.6)
debug: 4.3.4
- eslint: 8.44.0
+ eslint: 8.45.0
ts-api-utils: 1.0.1(typescript@5.1.6)
typescript: 5.1.6
transitivePeerDependencies:
@@ -1265,8 +1271,8 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
- /@typescript-eslint/types@6.0.0:
- resolution: {integrity: sha512-Zk9KDggyZM6tj0AJWYYKgF0yQyrcnievdhG0g5FqyU3Y2DRxJn4yWY21sJC0QKBckbsdKKjYDV2yVrrEvuTgxg==}
+ /@typescript-eslint/types@6.2.0:
+ resolution: {integrity: sha512-1nRRaDlp/XYJQLvkQJG5F3uBTno5SHPT7XVcJ5n1/k2WfNI28nJsvLakxwZRNY5spuatEKO7d5nZWsQpkqXwBA==}
engines: {node: ^16.0.0 || >=18.0.0}
dev: true
@@ -1291,8 +1297,8 @@ packages:
- supports-color
dev: true
- /@typescript-eslint/typescript-estree@6.0.0(typescript@5.1.6):
- resolution: {integrity: sha512-2zq4O7P6YCQADfmJ5OTDQTP3ktajnXIRrYAtHM9ofto/CJZV3QfJ89GEaM2BNGeSr1KgmBuLhEkz5FBkS2RQhQ==}
+ /@typescript-eslint/typescript-estree@6.2.0(typescript@5.1.6):
+ resolution: {integrity: sha512-Mts6+3HQMSM+LZCglsc2yMIny37IhUgp1Qe8yJUYVyO6rHP7/vN0vajKu3JvHCBIy8TSiKddJ/Zwu80jhnGj1w==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
typescript: '*'
@@ -1300,8 +1306,8 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/types': 6.0.0
- '@typescript-eslint/visitor-keys': 6.0.0
+ '@typescript-eslint/types': 6.2.0
+ '@typescript-eslint/visitor-keys': 6.2.0
debug: 4.3.4
globby: 11.1.0
is-glob: 4.0.3
@@ -1312,20 +1318,19 @@ packages:
- supports-color
dev: true
- /@typescript-eslint/utils@6.0.0(eslint@8.44.0)(typescript@5.1.6):
- resolution: {integrity: sha512-SOr6l4NB6HE4H/ktz0JVVWNXqCJTOo/mHnvIte1ZhBQ0Cvd04x5uKZa3zT6tiodL06zf5xxdK8COiDvPnQ27JQ==}
+ /@typescript-eslint/utils@6.2.0(eslint@8.45.0)(typescript@5.1.6):
+ resolution: {integrity: sha512-RCFrC1lXiX1qEZN8LmLrxYRhOkElEsPKTVSNout8DMzf8PeWoQG7Rxz2SadpJa3VSh5oYKGwt7j7X/VRg+Y3OQ==}
engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
eslint: ^7.0.0 || ^8.0.0
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.44.0)
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0)
'@types/json-schema': 7.0.12
'@types/semver': 7.5.0
- '@typescript-eslint/scope-manager': 6.0.0
- '@typescript-eslint/types': 6.0.0
- '@typescript-eslint/typescript-estree': 6.0.0(typescript@5.1.6)
- eslint: 8.44.0
- eslint-scope: 5.1.1
+ '@typescript-eslint/scope-manager': 6.2.0
+ '@typescript-eslint/types': 6.2.0
+ '@typescript-eslint/typescript-estree': 6.2.0(typescript@5.1.6)
+ eslint: 8.45.0
semver: 7.5.4
transitivePeerDependencies:
- supports-color
@@ -1340,14 +1345,31 @@ packages:
eslint-visitor-keys: 3.4.1
dev: true
- /@typescript-eslint/visitor-keys@6.0.0:
- resolution: {integrity: sha512-cvJ63l8c0yXdeT5POHpL0Q1cZoRcmRKFCtSjNGJxPkcP571EfZMcNbzWAc7oK3D1dRzm/V5EwtkANTZxqvuuUA==}
+ /@typescript-eslint/visitor-keys@6.2.0:
+ resolution: {integrity: sha512-QbaYUQVKKo9bgCzpjz45llCfwakyoxHetIy8CAvYCtd16Zu1KrpzNHofwF8kGkpPOxZB2o6kz+0nqH8ZkIzuoQ==}
engines: {node: ^16.0.0 || >=18.0.0}
dependencies:
- '@typescript-eslint/types': 6.0.0
+ '@typescript-eslint/types': 6.2.0
eslint-visitor-keys: 3.4.1
dev: true
+ /@upstash/core-analytics@0.0.6:
+ resolution: {integrity: sha512-cpPSR0XJAJs4Ddz9nq3tINlPS5aLfWVCqhhtHnXt4p7qr5+/Znlt1Es736poB/9rnl1hAHrOsOvVj46NEXcVqA==}
+ engines: {node: '>=16.0.0'}
+ dependencies:
+ '@upstash/redis': 1.22.0
+ transitivePeerDependencies:
+ - encoding
+ dev: false
+
+ /@upstash/ratelimit@0.4.3:
+ resolution: {integrity: sha512-Dsp9Mw09Flg28JRklKgFiCXqr3bqv8bbG0kgpUYoHjcgPPolFFyaYOj/I2HExvYLZiogl77NUavBoNvMOK0zUQ==}
+ dependencies:
+ '@upstash/core-analytics': 0.0.6
+ transitivePeerDependencies:
+ - encoding
+ dev: false
+
/@upstash/redis@1.22.0:
resolution: {integrity: sha512-sXoJDoEqqik0HbrNE7yRWckOySEFsoBxfRdCgOqkc0w6py19ZZG50SpGkDDEUXSnBqP8VgGYXhWAiBpqxrt5oA==}
dependencies:
@@ -1360,8 +1382,8 @@ packages:
resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
dev: false
- /ably@1.2.41:
- resolution: {integrity: sha512-TE3PjtrclXFjfIALQhuTd1bEL7EAlS28AGFLaILeXmecXnBQE37WoC2EKZJIX7jRX31bwTHxUouje3WBEnhNKQ==}
+ /ably@1.2.42:
+ resolution: {integrity: sha512-dUnza7cERLWaDa/2pLVXtU2PJoU5k/t6g9sQZI1dgWC5Vok39nE6tf/xH2Rat7PJs7pXl9hLpkg1AhS4Xwd2/w==}
engines: {node: '>=5.10.x'}
dependencies:
'@ably/msgpack-js': 0.4.0
@@ -1474,7 +1496,7 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
- es-abstract: 1.21.2
+ es-abstract: 1.22.1
get-intrinsic: 1.2.1
is-string: 1.0.7
dev: true
@@ -1489,7 +1511,7 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
- es-abstract: 1.21.2
+ es-abstract: 1.22.1
es-shim-unscopables: 1.0.0
dev: true
@@ -1499,7 +1521,7 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
- es-abstract: 1.21.2
+ es-abstract: 1.22.1
es-shim-unscopables: 1.0.0
dev: true
@@ -1508,11 +1530,23 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
- es-abstract: 1.21.2
+ es-abstract: 1.22.1
es-shim-unscopables: 1.0.0
get-intrinsic: 1.2.1
dev: true
+ /arraybuffer.prototype.slice@1.0.1:
+ resolution: {integrity: sha512-09x0ZWFEjj4WD8PDbykUwo3t9arLn8NIzmmYEJFpYekOAQjpkGSyrQhNoRTcwwcFRu+ycWF78QZ63oWTqSjBcw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ array-buffer-byte-length: 1.0.0
+ call-bind: 1.0.2
+ define-properties: 1.2.0
+ get-intrinsic: 1.2.1
+ is-array-buffer: 3.0.2
+ is-shared-array-buffer: 1.0.2
+ dev: true
+
/ast-types-flow@0.0.7:
resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==}
dev: true
@@ -1525,7 +1559,7 @@ packages:
resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
dev: false
- /autoprefixer@10.4.14(postcss@8.4.25):
+ /autoprefixer@10.4.14(postcss@8.4.27):
resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==}
engines: {node: ^10 || ^12 || >=14}
hasBin: true
@@ -1533,11 +1567,11 @@ packages:
postcss: ^8.1.0
dependencies:
browserslist: 4.21.9
- caniuse-lite: 1.0.30001515
+ caniuse-lite: 1.0.30001517
fraction.js: 4.2.0
normalize-range: 0.1.2
picocolors: 1.0.0
- postcss: 8.4.25
+ postcss: 8.4.27
postcss-value-parser: 4.2.0
dev: false
@@ -1651,8 +1685,8 @@ packages:
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
dependencies:
- caniuse-lite: 1.0.30001515
- electron-to-chromium: 1.4.456
+ caniuse-lite: 1.0.30001517
+ electron-to-chromium: 1.4.470
node-releases: 2.0.13
update-browserslist-db: 1.0.11(browserslist@4.21.9)
dev: false
@@ -1700,7 +1734,7 @@ packages:
clone-response: 1.0.3
get-stream: 5.2.0
http-cache-semantics: 4.1.1
- keyv: 4.5.2
+ keyv: 4.5.3
lowercase-keys: 2.0.0
normalize-url: 6.1.0
responselike: 2.0.1
@@ -1722,8 +1756,8 @@ packages:
resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
engines: {node: '>= 6'}
- /caniuse-lite@1.0.30001515:
- resolution: {integrity: sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA==}
+ /caniuse-lite@1.0.30001517:
+ resolution: {integrity: sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==}
dev: false
/chainsaw@0.1.0:
@@ -1838,8 +1872,9 @@ packages:
delayed-stream: 1.0.0
dev: false
- /commander@2.20.3:
- resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+ /commander@10.0.1:
+ resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
+ engines: {node: '>=14'}
dev: false
/commander@4.1.1:
@@ -1921,15 +1956,15 @@ packages:
resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==}
dev: true
- /daisyui@3.2.1:
- resolution: {integrity: sha512-gIqE6wiqoJt9G8+n3R/SwLeUnpNCE2eDhT73rP0yZYVaM7o6zVcakBH3aEW5RGpx3UkonPiLuvcgxRcb2lE8TA==}
+ /daisyui@3.4.0:
+ resolution: {integrity: sha512-s9EvNxnw/ubCIopKul+3ddASzZG+jMOmZgLJ0BFOVnxFQy6HJ5+EbMx5yY7Ef0cA6qjeUMl88SwhE94WLSLtHQ==}
engines: {node: '>=16.9.0'}
dependencies:
colord: 2.9.3
css-selector-tokenizer: 0.8.0
- postcss: 8.4.25
- postcss-js: 4.0.1(postcss@8.4.25)
- tailwindcss: 3.3.2
+ postcss: 8.4.27
+ postcss-js: 4.0.1(postcss@8.4.27)
+ tailwindcss: 3.3.3
transitivePeerDependencies:
- ts-node
dev: true
@@ -2042,8 +2077,8 @@ packages:
engines: {node: '>=6'}
dev: true
- /detect-libc@2.0.1:
- resolution: {integrity: sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==}
+ /detect-libc@2.0.2:
+ resolution: {integrity: sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==}
engines: {node: '>=8'}
dev: false
@@ -2123,18 +2158,19 @@ packages:
readable-stream: 2.3.8
dev: false
- /editorconfig@0.15.3:
- resolution: {integrity: sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==}
+ /editorconfig@1.0.4:
+ resolution: {integrity: sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==}
+ engines: {node: '>=14'}
hasBin: true
dependencies:
- commander: 2.20.3
- lru-cache: 4.1.5
- semver: 5.7.2
- sigmund: 1.0.1
+ '@one-ini/wasm': 0.1.1
+ commander: 10.0.1
+ minimatch: 9.0.1
+ semver: 7.5.4
dev: false
- /electron-to-chromium@1.4.456:
- resolution: {integrity: sha512-d+eSL4mT9m72cnDT/kfQj6Pv6Cid4pUVlLOl8esm2SZuXBgtXtUyvCfc9F++GHLWLoY4gMNqg+0IVAoQ3sosKA==}
+ /electron-to-chromium@1.4.470:
+ resolution: {integrity: sha512-zZM48Lmy2FKWgqyvsX9XK+J6FfP7aCDUFLmgooLJzA7v1agCs/sxSoBpTIwDLhmbhpx9yJIxj2INig/ncjJRqg==}
dev: false
/emoji-regex@9.2.2:
@@ -2166,11 +2202,12 @@ packages:
is-arrayish: 0.2.1
dev: false
- /es-abstract@1.21.2:
- resolution: {integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==}
+ /es-abstract@1.22.1:
+ resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==}
engines: {node: '>= 0.4'}
dependencies:
array-buffer-byte-length: 1.0.0
+ arraybuffer.prototype.slice: 1.0.1
available-typed-arrays: 1.0.5
call-bind: 1.0.2
es-set-tostringtag: 2.0.1
@@ -2191,19 +2228,23 @@ packages:
is-regex: 1.1.4
is-shared-array-buffer: 1.0.2
is-string: 1.0.7
- is-typed-array: 1.1.10
+ is-typed-array: 1.1.12
is-weakref: 1.0.2
object-inspect: 1.12.3
object-keys: 1.1.1
object.assign: 4.1.4
regexp.prototype.flags: 1.5.0
+ safe-array-concat: 1.0.0
safe-regex-test: 1.0.0
string.prototype.trim: 1.2.7
string.prototype.trimend: 1.0.6
string.prototype.trimstart: 1.0.6
+ typed-array-buffer: 1.0.0
+ typed-array-byte-length: 1.0.0
+ typed-array-byte-offset: 1.0.0
typed-array-length: 1.0.4
unbox-primitive: 1.0.2
- which-typed-array: 1.1.10
+ which-typed-array: 1.1.11
dev: true
/es-set-tostringtag@2.0.1:
@@ -2275,8 +2316,8 @@ packages:
engines: {node: '>=10'}
dev: true
- /eslint-config-next@13.4.9(eslint@8.44.0)(typescript@5.1.6):
- resolution: {integrity: sha512-0fLtKRR268NArpqeXXwnLgMXPvF64YESQvptVg+RMLCaijKm3FICN9Y7Jc1p2o+yrWwE4DufJXDM/Vo53D1L7g==}
+ /eslint-config-next@13.4.12(eslint@8.45.0)(typescript@5.1.6):
+ resolution: {integrity: sha512-ZF0r5vxKaVazyZH/37Au/XItiG7qUOBw+HaH3PeyXltIMwXorsn6bdrl0Nn9N5v5v9spc+6GM2ryjugbjF6X2g==}
peerDependencies:
eslint: ^7.23.0 || ^8.0.0
typescript: '>=3.3.1'
@@ -2284,16 +2325,16 @@ packages:
typescript:
optional: true
dependencies:
- '@next/eslint-plugin-next': 13.4.9
+ '@next/eslint-plugin-next': 13.4.12
'@rushstack/eslint-patch': 1.3.2
- '@typescript-eslint/parser': 5.62.0(eslint@8.44.0)(typescript@5.1.6)
- eslint: 8.44.0
+ '@typescript-eslint/parser': 5.62.0(eslint@8.45.0)(typescript@5.1.6)
+ eslint: 8.45.0
eslint-import-resolver-node: 0.3.7
- eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.44.0)
- eslint-plugin-import: 2.27.5(@typescript-eslint/parser@6.0.0)(eslint@8.44.0)
- eslint-plugin-jsx-a11y: 6.7.1(eslint@8.44.0)
- eslint-plugin-react: 7.32.2(eslint@8.44.0)
- eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.44.0)
+ eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.45.0)
+ eslint-plugin-import: 2.27.5(@typescript-eslint/parser@6.2.0)(eslint@8.45.0)
+ eslint-plugin-jsx-a11y: 6.7.1(eslint@8.45.0)
+ eslint-plugin-react: 7.33.0(eslint@8.45.0)
+ eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.45.0)
typescript: 5.1.6
transitivePeerDependencies:
- eslint-import-resolver-webpack
@@ -2310,7 +2351,7 @@ packages:
- supports-color
dev: true
- /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.44.0):
+ /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.45.0):
resolution: {integrity: sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
@@ -2319,9 +2360,9 @@ packages:
dependencies:
debug: 4.3.4
enhanced-resolve: 5.15.0
- eslint: 8.44.0
- eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0)
- eslint-plugin-import: 2.27.5(@typescript-eslint/parser@6.0.0)(eslint@8.44.0)
+ eslint: 8.45.0
+ eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0)
+ eslint-plugin-import: 2.27.5(@typescript-eslint/parser@6.2.0)(eslint@8.45.0)
get-tsconfig: 4.6.2
globby: 13.2.2
is-core-module: 2.12.1
@@ -2334,7 +2375,7 @@ packages:
- supports-color
dev: true
- /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.44.0):
+ /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0):
resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==}
engines: {node: '>=4'}
peerDependencies:
@@ -2355,16 +2396,16 @@ packages:
eslint-import-resolver-webpack:
optional: true
dependencies:
- '@typescript-eslint/parser': 5.62.0(eslint@8.44.0)(typescript@5.1.6)
+ '@typescript-eslint/parser': 5.62.0(eslint@8.45.0)(typescript@5.1.6)
debug: 3.2.7
- eslint: 8.44.0
+ eslint: 8.45.0
eslint-import-resolver-node: 0.3.7
- eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.44.0)
+ eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.62.0)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.45.0)
transitivePeerDependencies:
- supports-color
dev: true
- /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.0.0)(eslint-import-resolver-node@0.3.7)(eslint@8.44.0):
+ /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.2.0)(eslint-import-resolver-node@0.3.7)(eslint@8.45.0):
resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==}
engines: {node: '>=4'}
peerDependencies:
@@ -2385,15 +2426,15 @@ packages:
eslint-import-resolver-webpack:
optional: true
dependencies:
- '@typescript-eslint/parser': 6.0.0(eslint@8.44.0)(typescript@5.1.6)
+ '@typescript-eslint/parser': 6.2.0(eslint@8.45.0)(typescript@5.1.6)
debug: 3.2.7
- eslint: 8.44.0
+ eslint: 8.45.0
eslint-import-resolver-node: 0.3.7
transitivePeerDependencies:
- supports-color
dev: true
- /eslint-plugin-import@2.27.5(@typescript-eslint/parser@6.0.0)(eslint@8.44.0):
+ /eslint-plugin-import@2.27.5(@typescript-eslint/parser@6.2.0)(eslint@8.45.0):
resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==}
engines: {node: '>=4'}
peerDependencies:
@@ -2403,15 +2444,15 @@ packages:
'@typescript-eslint/parser':
optional: true
dependencies:
- '@typescript-eslint/parser': 6.0.0(eslint@8.44.0)(typescript@5.1.6)
+ '@typescript-eslint/parser': 6.2.0(eslint@8.45.0)(typescript@5.1.6)
array-includes: 3.1.6
array.prototype.flat: 1.3.1
array.prototype.flatmap: 1.3.1
debug: 3.2.7
doctrine: 2.1.0
- eslint: 8.44.0
+ eslint: 8.45.0
eslint-import-resolver-node: 0.3.7
- eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.0.0)(eslint-import-resolver-node@0.3.7)(eslint@8.44.0)
+ eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.2.0)(eslint-import-resolver-node@0.3.7)(eslint@8.45.0)
has: 1.0.3
is-core-module: 2.12.1
is-glob: 4.0.3
@@ -2426,7 +2467,7 @@ packages:
- supports-color
dev: true
- /eslint-plugin-jsx-a11y@6.7.1(eslint@8.44.0):
+ /eslint-plugin-jsx-a11y@6.7.1(eslint@8.45.0):
resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==}
engines: {node: '>=4.0'}
peerDependencies:
@@ -2441,7 +2482,7 @@ packages:
axobject-query: 3.2.1
damerau-levenshtein: 1.0.8
emoji-regex: 9.2.2
- eslint: 8.44.0
+ eslint: 8.45.0
has: 1.0.3
jsx-ast-utils: 3.3.4
language-tags: 1.0.5
@@ -2451,17 +2492,17 @@ packages:
semver: 6.3.1
dev: true
- /eslint-plugin-react-hooks@5.0.0-canary-7118f5dd7-20230705(eslint@8.44.0):
+ /eslint-plugin-react-hooks@5.0.0-canary-7118f5dd7-20230705(eslint@8.45.0):
resolution: {integrity: sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==}
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.44.0
+ eslint: 8.45.0
dev: true
- /eslint-plugin-react@7.32.2(eslint@8.44.0):
- resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==}
+ /eslint-plugin-react@7.33.0(eslint@8.45.0):
+ resolution: {integrity: sha512-qewL/8P34WkY8jAqdQxsiL82pDUeT7nhs8IsuXgfgnsEloKCT4miAV9N9kGtx7/KM9NH/NCGUE7Edt9iGxLXFw==}
engines: {node: '>=4'}
peerDependencies:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
@@ -2470,7 +2511,7 @@ packages:
array.prototype.flatmap: 1.3.1
array.prototype.tosorted: 1.1.1
doctrine: 2.1.0
- eslint: 8.44.0
+ eslint: 8.45.0
estraverse: 5.3.0
jsx-ast-utils: 3.3.4
minimatch: 3.1.2
@@ -2484,16 +2525,8 @@ packages:
string.prototype.matchall: 4.0.8
dev: true
- /eslint-scope@5.1.1:
- resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
- engines: {node: '>=8.0.0'}
- dependencies:
- esrecurse: 4.3.0
- estraverse: 4.3.0
- dev: true
-
- /eslint-scope@7.2.0:
- resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==}
+ /eslint-scope@7.2.1:
+ resolution: {integrity: sha512-CvefSOsDdaYYvxChovdrPo/ZGt8d5lrJWleAc1diXRKhHGiTYEI26cvo8Kle/wGnsizoCJjK73FMg1/IkIwiNA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
esrecurse: 4.3.0
@@ -2505,13 +2538,13 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
- /eslint@8.44.0:
- resolution: {integrity: sha512-0wpHoUbDUHgNCyvFB5aXLiQVfK9B0at6gUvzy83k4kAsQ/u769TQDX6iKC+aO4upIHO9WSaA3QoXYQDHbNwf1A==}
+ /eslint@8.45.0:
+ resolution: {integrity: sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
hasBin: true
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.44.0)
- '@eslint-community/regexpp': 4.5.1
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0)
+ '@eslint-community/regexpp': 4.6.1
'@eslint/eslintrc': 2.1.0
'@eslint/js': 8.44.0
'@humanwhocodes/config-array': 0.11.10
@@ -2523,9 +2556,9 @@ packages:
debug: 4.3.4
doctrine: 3.0.0
escape-string-regexp: 4.0.0
- eslint-scope: 7.2.0
+ eslint-scope: 7.2.1
eslint-visitor-keys: 3.4.1
- espree: 9.6.0
+ espree: 9.6.1
esquery: 1.5.0
esutils: 2.0.3
fast-deep-equal: 3.1.3
@@ -2535,7 +2568,6 @@ packages:
globals: 13.20.0
graphemer: 1.4.0
ignore: 5.2.4
- import-fresh: 3.3.0
imurmurhash: 0.1.4
is-glob: 4.0.3
is-path-inside: 3.0.3
@@ -2547,14 +2579,13 @@ packages:
natural-compare: 1.4.0
optionator: 0.9.3
strip-ansi: 6.0.1
- strip-json-comments: 3.1.1
text-table: 0.2.0
transitivePeerDependencies:
- supports-color
dev: true
- /espree@9.6.0:
- resolution: {integrity: sha512-1FH/IiruXZ84tpUlm0aCUEwMl2Ho5ilqVh0VvQXw+byAz/4SAciyHLlfmL5WYqsvD38oymdUwBss0LtK8m4s/A==}
+ /espree@9.6.1:
+ resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
acorn: 8.10.0
@@ -2582,11 +2613,6 @@ packages:
estraverse: 5.3.0
dev: true
- /estraverse@4.3.0:
- resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
- engines: {node: '>=4.0'}
- dev: true
-
/estraverse@5.3.0:
resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
engines: {node: '>=4.0'}
@@ -2658,8 +2684,8 @@ packages:
unzipper: 0.10.14
dev: false
- /fast-glob@3.3.0:
- resolution: {integrity: sha512-ChDuvbOypPuNjO8yIDf36x7BlZX1smcUMTTcyoIjycexOxd6DFsKsg21qVBzEmr3G7fUKIRy2/psii+CIUt7FA==}
+ /fast-glob@3.3.1:
+ resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==}
engines: {node: '>=8.6.0'}
dependencies:
'@nodelib/fs.stat': 2.0.5
@@ -2806,7 +2832,7 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
- es-abstract: 1.21.2
+ es-abstract: 1.22.1
functions-have-names: 1.2.3
dev: true
@@ -2942,7 +2968,7 @@ packages:
dependencies:
array-union: 2.1.0
dir-glob: 3.0.1
- fast-glob: 3.3.0
+ fast-glob: 3.3.1
ignore: 5.2.4
merge2: 1.4.1
slash: 3.0.0
@@ -2952,7 +2978,7 @@ packages:
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
dependencies:
dir-glob: 3.0.1
- fast-glob: 3.3.0
+ fast-glob: 3.3.1
ignore: 5.2.4
merge2: 1.4.1
slash: 4.0.0
@@ -2984,10 +3010,6 @@ packages:
/graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
- /grapheme-splitter@1.0.4:
- resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
- dev: true
-
/graphemer@1.4.0:
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
dev: true
@@ -3164,7 +3186,7 @@ packages:
dependencies:
call-bind: 1.0.2
get-intrinsic: 1.2.1
- is-typed-array: 1.1.10
+ is-typed-array: 1.1.12
dev: true
/is-arrayish@0.2.1:
@@ -3319,15 +3341,11 @@ packages:
has-symbols: 1.0.3
dev: true
- /is-typed-array@1.1.10:
- resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==}
+ /is-typed-array@1.1.12:
+ resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==}
engines: {node: '>= 0.4'}
dependencies:
- available-typed-arrays: 1.0.5
- call-bind: 1.0.2
- for-each: 0.3.3
- gopd: 1.0.1
- has-tostringtag: 1.0.0
+ which-typed-array: 1.1.11
dev: true
/is-unicode-supported@0.1.0:
@@ -3362,6 +3380,10 @@ packages:
resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
dev: false
+ /isarray@2.0.5:
+ resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
+ dev: true
+
/isexe@2.0.0:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
@@ -3369,7 +3391,7 @@ packages:
resolution: {integrity: sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==}
dependencies:
node-fetch: 2.6.12
- whatwg-fetch: 3.6.2
+ whatwg-fetch: 3.6.17
transitivePeerDependencies:
- encoding
dev: false
@@ -3387,13 +3409,13 @@ packages:
resolution: {integrity: sha512-j8GhLiKmUAh+dsFXlX1aJCbt5KMibuKb+d7j1JaOJG6s2UjX1PQlW+OKB/sD4a/5ZYF4RcmYmLSndOoU3Lt/3g==}
dev: false
- /js-beautify@1.14.8:
- resolution: {integrity: sha512-4S7HFeI9YfRvRgKnEweohs0tgJj28InHVIj4Nl8Htf96Y6pHg3+tJrmo4ucAM9f7l4SHbFI3IvFAZ2a1eQPbyg==}
+ /js-beautify@1.14.9:
+ resolution: {integrity: sha512-coM7xq1syLcMyuVGyToxcj2AlzhkDjmfklL8r0JgJ7A76wyGMpJ1oA35mr4APdYNO/o/4YY8H54NQIJzhMbhBg==}
engines: {node: '>=12'}
hasBin: true
dependencies:
config-chain: 1.1.13
- editorconfig: 0.15.3
+ editorconfig: 1.0.4
glob: 8.1.0
nopt: 6.0.0
dev: false
@@ -3473,8 +3495,8 @@ packages:
object.values: 1.1.6
dev: true
- /keyv@4.5.2:
- resolution: {integrity: sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==}
+ /keyv@4.5.3:
+ resolution: {integrity: sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==}
dependencies:
json-buffer: 3.0.1
dev: false
@@ -3560,13 +3582,6 @@ packages:
engines: {node: '>=8'}
dev: false
- /lru-cache@4.1.5:
- resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==}
- dependencies:
- pseudomap: 1.0.2
- yallist: 2.1.2
- dev: false
-
/lru-cache@6.0.0:
resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
engines: {node: '>=10'}
@@ -3630,6 +3645,13 @@ packages:
brace-expansion: 2.0.1
dev: false
+ /minimatch@9.0.1:
+ resolution: {integrity: sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==}
+ engines: {node: '>=16 || 14 >=14.17'}
+ dependencies:
+ brace-expansion: 2.0.1
+ dev: false
+
/minimist@1.2.8:
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
@@ -3677,8 +3699,8 @@ packages:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
dev: true
- /next-auth@4.22.1(next@13.4.9)(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-NTR3f6W7/AWXKw8GSsgSyQcDW6jkslZLH8AiZa5PQ09w1kR8uHtR9rez/E9gAq/o17+p0JYHE8QjF3RoniiObA==}
+ /next-auth@4.22.3(next@13.4.12)(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-XAgy9xV3J2eJOXrQhmxdjV6MLM29ibm6WtMXc3KY6IPZeApf+SuBuPvlqCUfbu5YsAzlg9WSw6u01dChTfeZOA==}
peerDependencies:
next: ^12.2.5 || ^13
nodemailer: ^6.6.5
@@ -3692,7 +3714,7 @@ packages:
'@panva/hkdf': 1.1.1
cookie: 0.5.0
jose: 4.14.4
- next: 13.4.9(react-dom@18.2.0)(react@18.2.0)
+ next: 13.4.12(react-dom@18.2.0)(react@18.2.0)
oauth: 0.9.15
openid-client: 5.4.3
preact: 10.16.0
@@ -3702,8 +3724,8 @@ packages:
uuid: 8.3.2
dev: false
- /next@13.4.9(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-vtefFm/BWIi/eWOqf1GsmKG3cjKw1k3LjuefKRcL3iiLl3zWzFdPG3as6xtxrGO6gwTzzaO1ktL4oiHt/uvTjA==}
+ /next@13.4.12(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-eHfnru9x6NRmTMcjQp6Nz0J4XH9OubmzOa7CkWL+AUrUxpibub3vWwttjduu9No16dug1kq04hiUUpo7J3m3Xw==}
engines: {node: '>=16.8.0'}
hasBin: true
peerDependencies:
@@ -3720,10 +3742,10 @@ packages:
sass:
optional: true
dependencies:
- '@next/env': 13.4.9
+ '@next/env': 13.4.12
'@swc/helpers': 0.5.1
busboy: 1.6.0
- caniuse-lite: 1.0.30001515
+ caniuse-lite: 1.0.30001517
postcss: 8.4.14
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@@ -3731,15 +3753,15 @@ packages:
watchpack: 2.4.0
zod: 3.21.4
optionalDependencies:
- '@next/swc-darwin-arm64': 13.4.9
- '@next/swc-darwin-x64': 13.4.9
- '@next/swc-linux-arm64-gnu': 13.4.9
- '@next/swc-linux-arm64-musl': 13.4.9
- '@next/swc-linux-x64-gnu': 13.4.9
- '@next/swc-linux-x64-musl': 13.4.9
- '@next/swc-win32-arm64-msvc': 13.4.9
- '@next/swc-win32-ia32-msvc': 13.4.9
- '@next/swc-win32-x64-msvc': 13.4.9
+ '@next/swc-darwin-arm64': 13.4.12
+ '@next/swc-darwin-x64': 13.4.12
+ '@next/swc-linux-arm64-gnu': 13.4.12
+ '@next/swc-linux-arm64-musl': 13.4.12
+ '@next/swc-linux-x64-gnu': 13.4.12
+ '@next/swc-linux-x64-musl': 13.4.12
+ '@next/swc-win32-arm64-msvc': 13.4.12
+ '@next/swc-win32-ia32-msvc': 13.4.12
+ '@next/swc-win32-x64-msvc': 13.4.12
transitivePeerDependencies:
- '@babel/core'
- babel-plugin-macros
@@ -3863,7 +3885,7 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
- es-abstract: 1.21.2
+ es-abstract: 1.22.1
dev: true
/object.fromentries@2.0.6:
@@ -3872,14 +3894,14 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
- es-abstract: 1.21.2
+ es-abstract: 1.22.1
dev: true
/object.hasown@1.1.2:
resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==}
dependencies:
define-properties: 1.2.0
- es-abstract: 1.21.2
+ es-abstract: 1.22.1
dev: true
/object.values@1.1.6:
@@ -3888,7 +3910,7 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
- es-abstract: 1.21.2
+ es-abstract: 1.22.1
dev: true
/oidc-token-hash@5.0.3:
@@ -4094,13 +4116,13 @@ packages:
resolve: 1.22.2
dev: false
- /postcss-import@15.1.0(postcss@8.4.25):
+ /postcss-import@15.1.0(postcss@8.4.27):
resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
engines: {node: '>=14.0.0'}
peerDependencies:
postcss: ^8.0.0
dependencies:
- postcss: 8.4.25
+ postcss: 8.4.27
postcss-value-parser: 4.2.0
read-cache: 1.0.0
resolve: 1.22.2
@@ -4116,14 +4138,14 @@ packages:
postcss: 8.4.21
dev: false
- /postcss-js@4.0.1(postcss@8.4.25):
+ /postcss-js@4.0.1(postcss@8.4.27):
resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
engines: {node: ^12 || ^14 || >= 16}
peerDependencies:
postcss: ^8.4.21
dependencies:
camelcase-css: 2.0.1
- postcss: 8.4.25
+ postcss: 8.4.27
dev: true
/postcss-load-config@3.1.4(postcss@8.4.21):
@@ -4143,7 +4165,7 @@ packages:
yaml: 1.10.2
dev: false
- /postcss-load-config@4.0.1(postcss@8.4.25):
+ /postcss-load-config@4.0.1(postcss@8.4.27):
resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==}
engines: {node: '>= 14'}
peerDependencies:
@@ -4156,7 +4178,7 @@ packages:
optional: true
dependencies:
lilconfig: 2.1.0
- postcss: 8.4.25
+ postcss: 8.4.27
yaml: 2.3.1
dev: true
@@ -4170,13 +4192,13 @@ packages:
postcss-selector-parser: 6.0.13
dev: false
- /postcss-nested@6.0.1(postcss@8.4.25):
+ /postcss-nested@6.0.1(postcss@8.4.27):
resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
engines: {node: '>=12.0'}
peerDependencies:
postcss: ^8.2.14
dependencies:
- postcss: 8.4.25
+ postcss: 8.4.27
postcss-selector-parser: 6.0.13
dev: true
@@ -4208,8 +4230,8 @@ packages:
source-map-js: 1.0.2
dev: false
- /postcss@8.4.25:
- resolution: {integrity: sha512-7taJ/8t2av0Z+sQEvNzCkpDynl0tX3uJMCODi6nT3PfASC7dYCWV9aQ+uiCf+KBD4SEFcu+GvJdGdwzQ6OSjCw==}
+ /postcss@8.4.27:
+ resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==}
engines: {node: ^10 || ^12 || >=14}
dependencies:
nanoid: 3.3.6
@@ -4247,7 +4269,7 @@ packages:
engines: {node: '>=10'}
hasBin: true
dependencies:
- detect-libc: 2.0.1
+ detect-libc: 2.0.2
expand-template: 2.0.3
github-from-package: 0.0.0
minimist: 1.2.8
@@ -4281,7 +4303,7 @@ packages:
dependencies:
condense-newlines: 0.2.1
extend-shallow: 2.0.1
- js-beautify: 1.14.8
+ js-beautify: 1.14.9
dev: false
/prisma@5.0.0:
@@ -4312,10 +4334,6 @@ packages:
resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
dev: false
- /pseudomap@1.0.2:
- resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==}
- dev: false
-
/pump@3.0.0:
resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==}
dependencies:
@@ -4487,11 +4505,12 @@ packages:
functions-have-names: 1.2.3
dev: true
- /resend@0.16.0:
- resolution: {integrity: sha512-6NnrtEapGD6FtnhRUrtDdfgQFH2av5cTkrnElUh6AjTzGrHXiMpD/GRwT46pqpA6i/AXSDXKV7Wh/hHQJLKFew==}
+ /resend@0.17.1:
+ resolution: {integrity: sha512-cLMaKmAp1sjBJFrTAAi8XYKK1PDmPJ7xTI7lTKlVNCmU3qp5OyNjOYlv/6qQrMEAOQ03jy0c0P0rLIBBKgDzQA==}
dependencies:
'@react-email/render': 0.0.7
axios: 1.4.0
+ type-fest: 3.13.0
transitivePeerDependencies:
- debug
dev: false
@@ -4570,6 +4589,16 @@ packages:
dependencies:
queue-microtask: 1.2.3
+ /safe-array-concat@1.0.0:
+ resolution: {integrity: sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ==}
+ engines: {node: '>=0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ get-intrinsic: 1.2.1
+ has-symbols: 1.0.3
+ isarray: 2.0.5
+ dev: true
+
/safe-buffer@5.1.2:
resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
dev: false
@@ -4619,13 +4648,13 @@ packages:
resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
dev: false
- /sharp@0.32.2:
- resolution: {integrity: sha512-e4hyWKtU7ks/rLmoPys476zhpQnLqPJopz4+5b6OPeyJfvCTInAp0pe5tGhstjsNdUvDLrUVGEwevewYdZM8Eg==}
+ /sharp@0.32.4:
+ resolution: {integrity: sha512-exUnZewqVZC6UXqXuQ8fyJJv0M968feBi04jb9GcUHrWtkRoAKnbJt8IfwT4NJs7FskArbJ14JAFGVuooszoGg==}
engines: {node: '>=14.15.0'}
requiresBuild: true
dependencies:
color: 4.2.3
- detect-libc: 2.0.1
+ detect-libc: 2.0.2
node-addon-api: 6.1.0
prebuild-install: 7.1.1
semver: 7.5.4
@@ -4662,10 +4691,6 @@ packages:
object-inspect: 1.12.3
dev: true
- /sigmund@1.0.1:
- resolution: {integrity: sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==}
- dev: false
-
/signal-exit@3.0.7:
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
@@ -4743,7 +4768,7 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
- es-abstract: 1.21.2
+ es-abstract: 1.22.1
get-intrinsic: 1.2.1
has-symbols: 1.0.3
internal-slot: 1.0.5
@@ -4757,7 +4782,7 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
- es-abstract: 1.21.2
+ es-abstract: 1.22.1
dev: true
/string.prototype.trimend@1.0.6:
@@ -4765,7 +4790,7 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
- es-abstract: 1.21.2
+ es-abstract: 1.22.1
dev: true
/string.prototype.trimstart@1.0.6:
@@ -4773,7 +4798,7 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
- es-abstract: 1.21.2
+ es-abstract: 1.22.1
dev: true
/string_decoder@1.1.1:
@@ -4846,8 +4871,8 @@ packages:
react: 18.2.0
dev: false
- /sucrase@3.32.0:
- resolution: {integrity: sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==}
+ /sucrase@3.34.0:
+ resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==}
engines: {node: '>=8'}
hasBin: true
dependencies:
@@ -4860,8 +4885,8 @@ packages:
ts-interface-checker: 0.1.13
dev: true
- /superjson@1.12.4:
- resolution: {integrity: sha512-vkpPQAxdCg9SLfPv5GPC5fnGrui/WryktoN9O5+Zif/14QIMjw+RITf/5LbBh+9QpBFb3KNvJth+puz2H8o6GQ==}
+ /superjson@1.13.1:
+ resolution: {integrity: sha512-AVH2eknm9DEd3qvxM4Sq+LTCkSXE2ssfh1t11MHMXyYXFQyQ1HLgVvV+guLTsaQnJU3gnaVo34TohHPulY/wLg==}
engines: {node: '>=10'}
dependencies:
copy-anything: 3.0.5
@@ -4889,7 +4914,7 @@ packages:
engines: {node: ^14.18.0 || >=16.0.0}
dependencies:
'@pkgr/utils': 2.4.2
- tslib: 2.6.0
+ tslib: 2.6.1
dev: true
/tailwindcss@3.2.7(postcss@8.4.21):
@@ -4905,7 +4930,7 @@ packages:
detective: 5.2.1
didyoumean: 1.2.2
dlv: 1.1.3
- fast-glob: 3.3.0
+ fast-glob: 3.3.1
glob-parent: 6.0.2
is-glob: 4.0.3
lilconfig: 2.1.0
@@ -4926,8 +4951,8 @@ packages:
- ts-node
dev: false
- /tailwindcss@3.3.2:
- resolution: {integrity: sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==}
+ /tailwindcss@3.3.3:
+ resolution: {integrity: sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==}
engines: {node: '>=14.0.0'}
hasBin: true
dependencies:
@@ -4936,7 +4961,7 @@ packages:
chokidar: 3.5.3
didyoumean: 1.2.2
dlv: 1.1.3
- fast-glob: 3.3.0
+ fast-glob: 3.3.1
glob-parent: 6.0.2
is-glob: 4.0.3
jiti: 1.19.1
@@ -4945,15 +4970,14 @@ packages:
normalize-path: 3.0.0
object-hash: 3.0.0
picocolors: 1.0.0
- postcss: 8.4.25
- postcss-import: 15.1.0(postcss@8.4.25)
- postcss-js: 4.0.1(postcss@8.4.25)
- postcss-load-config: 4.0.1(postcss@8.4.25)
- postcss-nested: 6.0.1(postcss@8.4.25)
+ postcss: 8.4.27
+ postcss-import: 15.1.0(postcss@8.4.27)
+ postcss-js: 4.0.1(postcss@8.4.27)
+ postcss-load-config: 4.0.1(postcss@8.4.27)
+ postcss-nested: 6.0.1(postcss@8.4.27)
postcss-selector-parser: 6.0.13
- postcss-value-parser: 4.2.0
resolve: 1.22.2
- sucrase: 3.32.0
+ sucrase: 3.34.0
transitivePeerDependencies:
- ts-node
dev: true
@@ -5074,8 +5098,8 @@ packages:
resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
dev: true
- /tslib@2.6.0:
- resolution: {integrity: sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==}
+ /tslib@2.6.1:
+ resolution: {integrity: sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==}
/tsutils@3.21.0(typescript@5.1.6):
resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
@@ -5121,12 +5145,47 @@ packages:
engines: {node: '>=8'}
dev: false
+ /type-fest@3.13.0:
+ resolution: {integrity: sha512-Gur3yQGM9qiLNs0KPP7LPgeRbio2QTt4xXouobMCarR0/wyW3F+F/+OWwshg3NG0Adon7uQfSZBpB46NfhoF1A==}
+ engines: {node: '>=14.16'}
+ dev: false
+
+ /typed-array-buffer@1.0.0:
+ resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ get-intrinsic: 1.2.1
+ is-typed-array: 1.1.12
+ dev: true
+
+ /typed-array-byte-length@1.0.0:
+ resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.2
+ for-each: 0.3.3
+ has-proto: 1.0.1
+ is-typed-array: 1.1.12
+ dev: true
+
+ /typed-array-byte-offset@1.0.0:
+ resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ available-typed-arrays: 1.0.5
+ call-bind: 1.0.2
+ for-each: 0.3.3
+ has-proto: 1.0.1
+ is-typed-array: 1.1.12
+ dev: true
+
/typed-array-length@1.0.4:
resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==}
dependencies:
call-bind: 1.0.2
for-each: 0.3.3
- is-typed-array: 1.1.10
+ is-typed-array: 1.1.12
dev: true
/typescript@5.1.6:
@@ -5236,8 +5295,8 @@ packages:
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
dev: false
- /whatwg-fetch@3.6.2:
- resolution: {integrity: sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==}
+ /whatwg-fetch@3.6.17:
+ resolution: {integrity: sha512-c4ghIvG6th0eudYwKZY5keb81wtFz9/WeAHAoy8+r18kcWlitUIrmGFQ2rWEl4UCKUilD3zCLHOIPheHx5ypRQ==}
dev: false
/whatwg-url@5.0.0:
@@ -5257,8 +5316,8 @@ packages:
is-symbol: 1.0.4
dev: true
- /which-typed-array@1.1.10:
- resolution: {integrity: sha512-uxoA5vLUfRPdjCuJ1h5LlYdmTLbYfums398v3WLkM+i/Wltl2/XyZpQWKbN++ck5L64SR/grOHqtXCUKmlZPNA==}
+ /which-typed-array@1.1.11:
+ resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==}
engines: {node: '>= 0.4'}
dependencies:
available-typed-arrays: 1.0.5
@@ -5266,7 +5325,6 @@ packages:
for-each: 0.3.3
gopd: 1.0.1
has-tostringtag: 1.0.0
- is-typed-array: 1.1.10
dev: true
/which@2.0.2:
@@ -5298,10 +5356,6 @@ packages:
engines: {node: '>=0.4'}
dev: false
- /yallist@2.1.2:
- resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==}
- dev: false
-
/yallist@4.0.0:
resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
diff --git a/src/components/templates/Goodbye.tsx b/src/components/templates/Goodbye.tsx
index cc25aa6..3e2f310 100644
--- a/src/components/templates/Goodbye.tsx
+++ b/src/components/templates/Goodbye.tsx
@@ -21,7 +21,7 @@ const baseUrl = process.env.VERCEL_URL
? `https://${process.env.VERCEL_URL}`
: "http://localhost:3000";
-export const Goodbye: React.FC> = ({ name }) => (
+export const Goodbye = ({ name }: GoodbyeTemplateProps) => (
Sorry to see you go... 😭
@@ -30,15 +30,15 @@ export const Goodbye: React.FC> = ({ name }) => (
- Farewell, { name }...
- { "Were sorry to see you go." }
+ Farewell, {name}...
+ {"Were sorry to see you go."}
Your data has been deleted, including all room history, user data,
votes, etc.
diff --git a/src/components/templates/Welcome.tsx b/src/components/templates/Welcome.tsx
index a35d864..1602f00 100644
--- a/src/components/templates/Welcome.tsx
+++ b/src/components/templates/Welcome.tsx
@@ -21,7 +21,7 @@ const baseUrl = process.env.VERCEL_URL
? `https://${process.env.VERCEL_URL}`
: "http://localhost:3000";
-export const Welcome: React.FC> = ({ name }) => (
+export const Welcome = ({ name }: WelcomeTemplateProps) => (
🎉 Welcome to Sprint Padawan! 🎉
@@ -30,18 +30,18 @@ export const Welcome: React.FC> = ({ name }) => (
- 🎉 Welcome to Sprint Padawan, { name }! 🎉
+ 🎉 Welcome to Sprint Padawan, {name}! 🎉
- Hello { name },
+ Hello {name},
Thank you for signing up for Sprint Padawan!
diff --git a/src/env.mjs b/src/env.mjs
index 0ddd359..4c1f2de 100644
--- a/src/env.mjs
+++ b/src/env.mjs
@@ -9,6 +9,8 @@ const server = z.object({
UPSTASH_REDIS_REST_URL: z.string().url(),
UPSTASH_REDIS_REST_TOKEN: z.string(),
UPSTASH_REDIS_EXPIRY_SECONDS: z.string(),
+ UPSTASH_RATELIMIT_REQUESTS: z.string(),
+ UPSTASH_RATELIMIT_SECONDS: z.string(),
NODE_ENV: z.enum(["development", "test", "production"]),
NEXTAUTH_SECRET:
process.env.NODE_ENV === "production"
@@ -50,6 +52,8 @@ const processEnv = {
UPSTASH_REDIS_REST_URL: process.env.UPSTASH_REDIS_REST_URL,
UPSTASH_REDIS_REST_TOKEN: process.env.UPSTASH_REDIS_REST_TOKEN,
UPSTASH_REDIS_EXPIRY_SECONDS: process.env.UPSTASH_REDIS_EXPIRY_SECONDS,
+ UPSTASH_RATELIMIT_REQUESTS: process.env.UPSTASH_RATELIMIT_REQUESTS,
+ UPSTASH_RATELIMIT_SECONDS: process.env.UPSTASH_RATELIMIT_SECONDS,
NODE_ENV: process.env.NODE_ENV,
NEXTAUTH_SECRET: process.env.NEXTAUTH_SECRET,
NEXTAUTH_URL: process.env.NEXTAUTH_URL,
diff --git a/src/server/ably.ts b/src/server/ably.ts
index f83c500..986581e 100644
--- a/src/server/ably.ts
+++ b/src/server/ably.ts
@@ -2,12 +2,16 @@ import Ably from "ably";
import { env } from "~/env.mjs";
import type { EventType } from "../utils/types";
-export const publishToChannel = async (
- ablyInstance: Ably.Types.RealtimePromise,
+const ablyRest = new Ably.Rest(env.ABLY_PRIVATE_KEY);
+
+export const publishToChannel = (
channel: string,
event: EventType,
message: string
) => {
- const channelName = ablyInstance.channels.get(`${env.APP_ENV}-${channel}`);
- await channelName.publish(event, message);
+ try {
+ ablyRest.channels.get(`${env.APP_ENV}-${channel}`).publish(event, message);
+ } catch (error) {
+ console.log(`❌❌❌ Failed to send message!`);
+ }
};
diff --git a/src/server/api/createTokenRequest.ts b/src/server/api/createTokenRequest.ts
new file mode 100644
index 0000000..0de7824
--- /dev/null
+++ b/src/server/api/createTokenRequest.ts
@@ -0,0 +1,25 @@
+import Ably from "ably/promises";
+import { NextApiRequest, NextApiResponse } from "next";
+import { env } from "~/env.mjs";
+import { getServerSession } from "next-auth/next";
+import { authOptions } from "../auth";
+
+export default async function handler(
+ req: NextApiRequest,
+ res: NextApiResponse
+) {
+ const session = await getServerSession(req, res, authOptions);
+
+ if (session) {
+ // Signed in
+ const client = new Ably.Realtime(env.ABLY_PRIVATE_KEY);
+
+ const tokenRequestData = await client.auth.createTokenRequest({
+ clientId: session.user.id,
+ });
+ res.status(200).json(tokenRequestData);
+ } else {
+ // Not Signed in
+ res.status(401);
+ }
+}
diff --git a/src/server/api/routers/room.ts b/src/server/api/routers/room.ts
index 33017dc..d978278 100644
--- a/src/server/api/routers/room.ts
+++ b/src/server/api/routers/room.ts
@@ -27,8 +27,7 @@ export const roomRouter = createTRPCRouter({
await invalidateCache(`kv_roomcount_admin`);
await invalidateCache(`kv_roomlist_${ctx.session.user.id}`);
- await publishToChannel(
- ctx.ably,
+ publishToChannel(
`${ctx.session.user.id}`,
"ROOM_LIST_UPDATE",
"CREATE"
@@ -202,12 +201,7 @@ export const roomRouter = createTRPCRouter({
});
if (newRoom) {
- await publishToChannel(
- ctx.ably,
- `${newRoom.id}`,
- "ROOM_UPDATE",
- "UPDATE"
- );
+ publishToChannel(`${newRoom.id}`, "ROOM_UPDATE", "UPDATE");
}
return !!newRoom;
@@ -228,19 +222,13 @@ export const roomRouter = createTRPCRouter({
await invalidateCache(`kv_votecount_admin`);
await invalidateCache(`kv_roomlist_${ctx.session.user.id}`);
- await publishToChannel(
- ctx.ably,
+ publishToChannel(
`${ctx.session.user.id}`,
"ROOM_LIST_UPDATE",
"DELETE"
);
- await publishToChannel(
- ctx.ably,
- `${deletedRoom.id}`,
- "ROOM_UPDATE",
- "DELETE"
- );
+ publishToChannel(`${deletedRoom.id}`, "ROOM_UPDATE", "DELETE");
}
return !!deletedRoom;
diff --git a/src/server/api/routers/user.ts b/src/server/api/routers/user.ts
index 7a55e2a..d7eff4f 100644
--- a/src/server/api/routers/user.ts
+++ b/src/server/api/routers/user.ts
@@ -118,11 +118,10 @@ export const userRouter = createTRPCRouter({
}
if (!!user && user.name && user.email) {
- await resend.sendEmail({
- from: "no-reply@sprintpadawan.dev",
+ await resend.emails.send({
+ from: "Sprint Padawan ",
to: user.email,
subject: "Sorry to see you go... 😭",
- //@ts-ignore: IDK why this doesn't work...
react: Goodbye({ name: user.name }),
});
diff --git a/src/server/api/routers/vote.ts b/src/server/api/routers/vote.ts
index 7fd3df4..6f48387 100644
--- a/src/server/api/routers/vote.ts
+++ b/src/server/api/routers/vote.ts
@@ -100,12 +100,7 @@ export const voteRouter = createTRPCRouter({
await invalidateCache(`kv_votecount_admin`);
await invalidateCache(`kv_votes_${input.roomId}`);
- await publishToChannel(
- ctx.ably,
- `${vote.roomId}`,
- "VOTE_UPDATE",
- "UPDATE"
- );
+ publishToChannel(`${vote.roomId}`, "VOTE_UPDATE", "UPDATE");
}
return !!vote;
diff --git a/src/server/api/trpc.ts b/src/server/api/trpc.ts
index 26038d4..48e063b 100644
--- a/src/server/api/trpc.ts
+++ b/src/server/api/trpc.ts
@@ -19,7 +19,6 @@ import { type Session } from "next-auth";
import { getServerAuthSession } from "~/server/auth";
import { prisma } from "~/server/db";
-import Ably from "ably";
type CreateContextOptions = {
session: Session | null;
@@ -38,7 +37,6 @@ type CreateContextOptions = {
const createInnerTRPCContext = (opts: CreateContextOptions) => {
return {
session: opts.session,
- ably: new Ably.Realtime.Promise(env.ABLY_PRIVATE_KEY),
prisma,
};
};
@@ -66,8 +64,10 @@ export const createTRPCContext = async (opts: CreateNextContextOptions) => {
* This is where the tRPC API is initialized, connecting the context and transformer.
*/
import { initTRPC, TRPCError } from "@trpc/server";
+import { Ratelimit } from "@upstash/ratelimit";
import superjson from "superjson";
import { env } from "~/env.mjs";
+import { Redis } from "@upstash/redis";
const t = initTRPC.context().create({
transformer: superjson,
@@ -106,6 +106,21 @@ const enforceRouteProtection = t.middleware(async ({ ctx, next }) => {
throw new TRPCError({ code: "UNAUTHORIZED" });
}
+ const rateLimit = new Ratelimit({
+ redis: Redis.fromEnv(),
+ limiter: Ratelimit.slidingWindow(
+ Number(env.UPSTASH_RATELIMIT_REQUESTS),
+ `${Number(env.UPSTASH_RATELIMIT_SECONDS)}s`
+ ),
+ analytics: true,
+ });
+
+ const { success } = await rateLimit.limit(
+ `${env.APP_ENV}_${ctx.session.user.id}`
+ );
+ console.log(success);
+ if (!success) throw new TRPCError({ code: "TOO_MANY_REQUESTS" });
+
return next({
ctx: {
session: { ...ctx.session, user: ctx.session.user },