pg... planetscale is too restricted

This commit is contained in:
Atridad Lahiji 2023-08-16 00:50:11 -06:00
parent 3354201207
commit 28c0be6d81
No known key found for this signature in database
9 changed files with 329 additions and 195 deletions

View file

@ -4,7 +4,7 @@ import "dotenv/config";
export default { export default {
schema: "./src/server/schema.ts", schema: "./src/server/schema.ts",
out: "./drizzle/generated", out: "./drizzle/generated",
driver: "mysql2", driver: "pg",
breakpoints: true, breakpoints: true,
dbCredentials: { dbCredentials: {
connectionString: process.env.DATABASE_URL!, connectionString: process.env.DATABASE_URL!,

View file

@ -13,8 +13,8 @@
"dependencies": { "dependencies": {
"@ably-labs/react-hooks": "^2.1.1", "@ably-labs/react-hooks": "^2.1.1",
"@clerk/nextjs": "^4.23.2", "@clerk/nextjs": "^4.23.2",
"@neondatabase/serverless": "^0.5.7",
"@paralleldrive/cuid2": "^2.2.2", "@paralleldrive/cuid2": "^2.2.2",
"@planetscale/database": "^1.10.0",
"@react-email/components": "^0.0.7", "@react-email/components": "^0.0.7",
"@tanstack/react-query": "^4.32.6", "@tanstack/react-query": "^4.32.6",
"@trpc/client": "10.37.1", "@trpc/client": "10.37.1",
@ -29,17 +29,17 @@
"dotenv": "^16.3.1", "dotenv": "^16.3.1",
"drizzle-orm": "^0.28.2", "drizzle-orm": "^0.28.2",
"json2csv": "6.0.0-alpha.2", "json2csv": "6.0.0-alpha.2",
"next": "^13.4.13", "next": "^13.4.16",
"nextjs-cors": "^2.1.2", "nextjs-cors": "^2.1.2",
"postcss": "^8.4.27", "postcss": "^8.4.28",
"react": "18.2.0", "react": "18.2.0",
"react-dom": "18.2.0", "react-dom": "18.2.0",
"react-email": "^1.9.4", "react-email": "^1.9.4",
"react-icons": "^4.10.1", "react-icons": "^4.10.1",
"resend": "^0.17.2", "resend": "^1.0.0",
"sharp": "^0.32.4", "sharp": "^0.32.5",
"superjson": "1.13.1", "superjson": "1.13.1",
"zod": "^3.22.0" "zod": "^3.22.1"
}, },
"devDependencies": { "devDependencies": {
"@types/eslint": "^8.44.2", "@types/eslint": "^8.44.2",
@ -51,7 +51,7 @@
"daisyui": "^3.5.1", "daisyui": "^3.5.1",
"drizzle-kit": "^0.19.12", "drizzle-kit": "^0.19.12",
"eslint": "^8.47.0", "eslint": "^8.47.0",
"eslint-config-next": "^13.4.15", "eslint-config-next": "^13.4.16",
"tailwindcss": "^3.3.3", "tailwindcss": "^3.3.3",
"typescript": "^5.1.6" "typescript": "^5.1.6"
}, },

413
pnpm-lock.yaml generated
View file

@ -10,13 +10,13 @@ dependencies:
version: 2.1.1(react-dom@18.2.0)(react@18.2.0) version: 2.1.1(react-dom@18.2.0)(react@18.2.0)
'@clerk/nextjs': '@clerk/nextjs':
specifier: ^4.23.2 specifier: ^4.23.2
version: 4.23.2(next@13.4.13)(react-dom@18.2.0)(react@18.2.0) version: 4.23.2(next@13.4.16)(react-dom@18.2.0)(react@18.2.0)
'@neondatabase/serverless':
specifier: ^0.5.7
version: 0.5.7
'@paralleldrive/cuid2': '@paralleldrive/cuid2':
specifier: ^2.2.2 specifier: ^2.2.2
version: 2.2.2 version: 2.2.2
'@planetscale/database':
specifier: ^1.10.0
version: 1.10.0
'@react-email/components': '@react-email/components':
specifier: ^0.0.7 specifier: ^0.0.7
version: 0.0.7 version: 0.0.7
@ -28,7 +28,7 @@ dependencies:
version: 10.37.1(@trpc/server@10.37.1) version: 10.37.1(@trpc/server@10.37.1)
'@trpc/next': '@trpc/next':
specifier: 10.37.1 specifier: 10.37.1
version: 10.37.1(@tanstack/react-query@4.32.6)(@trpc/client@10.37.1)(@trpc/react-query@10.37.1)(@trpc/server@10.37.1)(next@13.4.13)(react-dom@18.2.0)(react@18.2.0) version: 10.37.1(@tanstack/react-query@4.32.6)(@trpc/client@10.37.1)(@trpc/react-query@10.37.1)(@trpc/server@10.37.1)(next@13.4.16)(react-dom@18.2.0)(react@18.2.0)
'@trpc/react-query': '@trpc/react-query':
specifier: 10.37.1 specifier: 10.37.1
version: 10.37.1(@tanstack/react-query@4.32.6)(@trpc/client@10.37.1)(@trpc/server@10.37.1)(react-dom@18.2.0)(react@18.2.0) version: 10.37.1(@tanstack/react-query@4.32.6)(@trpc/client@10.37.1)(@trpc/server@10.37.1)(react-dom@18.2.0)(react@18.2.0)
@ -49,25 +49,25 @@ dependencies:
version: 1.2.43 version: 1.2.43
autoprefixer: autoprefixer:
specifier: ^10.4.15 specifier: ^10.4.15
version: 10.4.15(postcss@8.4.27) version: 10.4.15(postcss@8.4.28)
dotenv: dotenv:
specifier: ^16.3.1 specifier: ^16.3.1
version: 16.3.1 version: 16.3.1
drizzle-orm: drizzle-orm:
specifier: ^0.28.2 specifier: ^0.28.2
version: 0.28.2(@planetscale/database@1.10.0) version: 0.28.2(@neondatabase/serverless@0.5.7)
json2csv: json2csv:
specifier: 6.0.0-alpha.2 specifier: 6.0.0-alpha.2
version: 6.0.0-alpha.2 version: 6.0.0-alpha.2
next: next:
specifier: ^13.4.13 specifier: ^13.4.16
version: 13.4.13(react-dom@18.2.0)(react@18.2.0) version: 13.4.16(react-dom@18.2.0)(react@18.2.0)
nextjs-cors: nextjs-cors:
specifier: ^2.1.2 specifier: ^2.1.2
version: 2.1.2(next@13.4.13) version: 2.1.2(next@13.4.16)
postcss: postcss:
specifier: ^8.4.27 specifier: ^8.4.28
version: 8.4.27 version: 8.4.28
react: react:
specifier: 18.2.0 specifier: 18.2.0
version: 18.2.0 version: 18.2.0
@ -81,17 +81,17 @@ dependencies:
specifier: ^4.10.1 specifier: ^4.10.1
version: 4.10.1(react@18.2.0) version: 4.10.1(react@18.2.0)
resend: resend:
specifier: ^0.17.2 specifier: ^1.0.0
version: 0.17.2 version: 1.0.0
sharp: sharp:
specifier: ^0.32.4 specifier: ^0.32.5
version: 0.32.4 version: 0.32.5
superjson: superjson:
specifier: 1.13.1 specifier: 1.13.1
version: 1.13.1 version: 1.13.1
zod: zod:
specifier: ^3.22.0 specifier: ^3.22.1
version: 3.22.0 version: 3.22.1
devDependencies: devDependencies:
'@types/eslint': '@types/eslint':
@ -122,8 +122,8 @@ devDependencies:
specifier: ^8.47.0 specifier: ^8.47.0
version: 8.47.0 version: 8.47.0
eslint-config-next: eslint-config-next:
specifier: ^13.4.15 specifier: ^13.4.16
version: 13.4.15(eslint@8.47.0)(typescript@5.1.6) version: 13.4.16(eslint@8.47.0)(typescript@5.1.6)
tailwindcss: tailwindcss:
specifier: ^3.3.3 specifier: ^3.3.3
version: 3.3.3 version: 3.3.3
@ -231,7 +231,7 @@ packages:
tslib: 2.4.1 tslib: 2.4.1
dev: false dev: false
/@clerk/nextjs@4.23.2(next@13.4.13)(react-dom@18.2.0)(react@18.2.0): /@clerk/nextjs@4.23.2(next@13.4.16)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-99bSVu9r1E9MxybO/6mmPAufSKq4KU7SFeMVkylX7UF8sy5t/LE9cLHyc+9jitcCGgZNai9Om4sj1WIgkNOP8w==} resolution: {integrity: sha512-99bSVu9r1E9MxybO/6mmPAufSKq4KU7SFeMVkylX7UF8sy5t/LE9cLHyc+9jitcCGgZNai9Om4sj1WIgkNOP8w==}
engines: {node: '>=14'} engines: {node: '>=14'}
peerDependencies: peerDependencies:
@ -243,7 +243,7 @@ packages:
'@clerk/clerk-react': 4.23.2(react@18.2.0) '@clerk/clerk-react': 4.23.2(react@18.2.0)
'@clerk/clerk-sdk-node': 4.12.2 '@clerk/clerk-sdk-node': 4.12.2
'@clerk/types': 3.49.0 '@clerk/types': 3.49.0
next: 13.4.13(react-dom@18.2.0)(react@18.2.0) next: 13.4.16(react-dom@18.2.0)(react@18.2.0)
path-to-regexp: 6.2.1 path-to-regexp: 6.2.1
react: 18.2.0 react: 18.2.0
react-dom: 18.2.0(react@18.2.0) react-dom: 18.2.0(react@18.2.0)
@ -995,18 +995,24 @@ packages:
read-yaml-file: 1.1.0 read-yaml-file: 1.1.0
dev: false dev: false
/@next/env@13.4.13: /@neondatabase/serverless@0.5.7:
resolution: {integrity: sha512-fwz2QgVg08v7ZL7KmbQBLF2PubR/6zQdKBgmHEl3BCyWTEDsAQEijjw2gbFhI1tcKfLdOOJUXntz5vZ4S0Polg==} resolution: {integrity: sha512-pIcgFWueCn5WQvtwHxji1EBpo1iGnlnPs/K02qmy7P150oHiohvgH5C4gWMTW52fqiMpPvK9kAdV9D07oJsd7w==}
dependencies:
'@types/pg': 8.6.6
dev: false dev: false
/@next/eslint-plugin-next@13.4.15: /@next/env@13.4.16:
resolution: {integrity: sha512-R+cOYbVyJM30d4OaDgRSCbtqsaoHfjnRUUuKxm74rswR82mv0c8En7+SXXsEfIpLCmGNSqOP5zF8aEE5e09VQQ==} resolution: {integrity: sha512-pCU0sJBqdfKP9mwDadxvZd+eLz3fZrTlmmDHY12Hdpl3DD0vy8ou5HWKVfG0zZS6tqhL4wnQqRbspdY5nqa7MA==}
dev: false
/@next/eslint-plugin-next@13.4.16:
resolution: {integrity: sha512-QuFtQl+oSEEQb0HMYBdvBoUaTiMxbY3go/MFkF3zOnfY0t84+IbAX78cw8ZCfr6cA6UcTq3nMIlCrHwDC/moxg==}
dependencies: dependencies:
glob: 7.1.7 glob: 7.1.7
dev: true dev: true
/@next/swc-darwin-arm64@13.4.13: /@next/swc-darwin-arm64@13.4.16:
resolution: {integrity: sha512-ZptVhHjzUuivnXMNCJ6lER33HN7lC+rZ01z+PM10Ows21NHFYMvGhi5iXkGtBDk6VmtzsbqnAjnx4Oz5um0FjA==} resolution: {integrity: sha512-Rl6i1uUq0ciRa3VfEpw6GnWAJTSKo9oM2OrkGXPsm7rMxdd2FR5NkKc0C9xzFCI4+QtmBviWBdF2m3ur3Nqstw==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
@ -1014,8 +1020,8 @@ packages:
dev: false dev: false
optional: true optional: true
/@next/swc-darwin-x64@13.4.13: /@next/swc-darwin-x64@13.4.16:
resolution: {integrity: sha512-t9nTiWCLApw8W4G1kqJyYP7y6/7lyal3PftmRturIxAIBlZss9wrtVN8nci50StDHmIlIDxfguYIEGVr9DbFTg==} resolution: {integrity: sha512-o1vIKYbZORyDmTrPV1hApt9NLyWrS5vr2p5hhLGpOnkBY1cz6DAXjv8Lgan8t6X87+83F0EUDlu7klN8ieZ06A==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
@ -1023,8 +1029,8 @@ packages:
dev: false dev: false
optional: true optional: true
/@next/swc-linux-arm64-gnu@13.4.13: /@next/swc-linux-arm64-gnu@13.4.16:
resolution: {integrity: sha512-xEHUqC8eqR5DHe8SOmMnDU1K3ggrJ28uIKltrQAwqFSSSmzjnN/XMocZkcVhuncuxYrpbri0iMQstRyRVdQVWg==} resolution: {integrity: sha512-JRyAl8lCfyTng4zoOmE6hNI2f1MFUr7JyTYCHl1RxX42H4a5LMwJhDVQ7a9tmDZ/yj+0hpBn+Aan+d6lA3v0UQ==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
@ -1032,8 +1038,8 @@ packages:
dev: false dev: false
optional: true optional: true
/@next/swc-linux-arm64-musl@13.4.13: /@next/swc-linux-arm64-musl@13.4.16:
resolution: {integrity: sha512-sNf3MnLAm8rquSSAoeD9nVcdaDeRYOeey4stOWOyWIgbBDtP+C93amSgH/LPTDoUV7gNiU6f+ghepTjTjRgIUQ==} resolution: {integrity: sha512-9gqVqNzUMWbUDgDiND18xoUqhwSm2gmksqXgCU0qaOKt6oAjWz8cWYjgpPVD0WICKFylEY/gvPEP1fMZDVFZ/g==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
@ -1041,8 +1047,8 @@ packages:
dev: false dev: false
optional: true optional: true
/@next/swc-linux-x64-gnu@13.4.13: /@next/swc-linux-x64-gnu@13.4.16:
resolution: {integrity: sha512-WhcRaJJSHyx9OWmKjjz+OWHumiPZWRqmM/09Bt7Up4UqUJFFhGExeztR4trtv3rflvULatu9IH/nTV8fUUgaMA==} resolution: {integrity: sha512-KcQGwchAKmZVPa8i5PLTxvTs1/rcFnSltfpTm803Tr/BtBV3AxCkHLfhtoyVtVzx/kl/oue8oS+DSmbepQKwhw==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
@ -1050,8 +1056,8 @@ packages:
dev: false dev: false
optional: true optional: true
/@next/swc-linux-x64-musl@13.4.13: /@next/swc-linux-x64-musl@13.4.16:
resolution: {integrity: sha512-+Y4LLhOWWZQIDKVwr2R17lq2KSN0F1c30QVgGIWfnjjHpH8nrIWHEndhqYU+iFuW8It78CiJjQKTw4f51HD7jA==} resolution: {integrity: sha512-2RbMZNxYnJmW8EPHVBsGZPq5zqWAyBOc/YFxq/jIQ/Yn3RMFZ1dZVCjtIcsiaKmgh7mjA/W0ApbumutHNxRqqQ==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
@ -1059,8 +1065,8 @@ packages:
dev: false dev: false
optional: true optional: true
/@next/swc-win32-arm64-msvc@13.4.13: /@next/swc-win32-arm64-msvc@13.4.16:
resolution: {integrity: sha512-rWurdOR20uxjfqd1X9vDAgv0Jb26KjyL8akF9CBeFqX8rVaBAnW/Wf6A2gYEwyYY4Bai3T7p1kro6DFrsvBAAw==} resolution: {integrity: sha512-thDcGonELN7edUKzjzlHrdoKkm7y8IAdItQpRvvMxNUXa4d9r0ElofhTZj5emR7AiXft17hpen+QAkcWpqG7Jg==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
@ -1068,8 +1074,8 @@ packages:
dev: false dev: false
optional: true optional: true
/@next/swc-win32-ia32-msvc@13.4.13: /@next/swc-win32-ia32-msvc@13.4.16:
resolution: {integrity: sha512-E8bSPwRuY5ibJ3CzLQmJEt8qaWrPYuUTwnrwygPUEWoLzD5YRx9SD37oXRdU81TgGwDzCxpl7z5Nqlfk50xAog==} resolution: {integrity: sha512-f7SE1Mo4JAchUWl0LQsbtySR9xCa+x55C0taetjUApKtcLR3AgAjASrrP+oE1inmLmw573qRnE1eZN8YJfEBQw==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [ia32] cpu: [ia32]
os: [win32] os: [win32]
@ -1077,8 +1083,8 @@ packages:
dev: false dev: false
optional: true optional: true
/@next/swc-win32-x64-msvc@13.4.13: /@next/swc-win32-x64-msvc@13.4.16:
resolution: {integrity: sha512-4KlyC6jWRubPnppgfYsNTPeWfGCxtWLh5vaOAW/kdzAk9widqho8Qb5S4K2vHmal1tsURi7Onk2MMCV1phvyqA==} resolution: {integrity: sha512-WamDZm1M/OEM4QLce3lOmD1XdLEl37zYZwlmOLhmF7qYJ2G6oYm9+ejZVv+LakQIsIuXhSpVlOvrxIAHqwRkPQ==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
@ -1269,11 +1275,6 @@ packages:
webcrypto-core: 1.7.7 webcrypto-core: 1.7.7
dev: false dev: false
/@planetscale/database@1.10.0:
resolution: {integrity: sha512-XMfNRjIPgGTga6g1YpGr7E21CcnHZcHZdyhRUIiZ/AlpD+ts65UF2B3wKjcu7MKMynmmcOGs6R9kAT6D1OTlZQ==}
engines: {node: '>=16'}
dev: false
/@radix-ui/react-compose-refs@1.0.0(react@18.2.0): /@radix-ui/react-compose-refs@1.0.0(react@18.2.0):
resolution: {integrity: sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==} resolution: {integrity: sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==}
peerDependencies: peerDependencies:
@ -1514,7 +1515,7 @@ packages:
'@trpc/server': 10.37.1 '@trpc/server': 10.37.1
dev: false dev: false
/@trpc/next@10.37.1(@tanstack/react-query@4.32.6)(@trpc/client@10.37.1)(@trpc/react-query@10.37.1)(@trpc/server@10.37.1)(next@13.4.13)(react-dom@18.2.0)(react@18.2.0): /@trpc/next@10.37.1(@tanstack/react-query@4.32.6)(@trpc/client@10.37.1)(@trpc/react-query@10.37.1)(@trpc/server@10.37.1)(next@13.4.16)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-0KEgr09mBfao56lkj7ZBfVOY86d3+bDH1o0zJkDHSH60Dp/hIJ7wLCnZJIhePlZxEwknCQjVeLsTy4Pqlu8NyQ==} resolution: {integrity: sha512-0KEgr09mBfao56lkj7ZBfVOY86d3+bDH1o0zJkDHSH60Dp/hIJ7wLCnZJIhePlZxEwknCQjVeLsTy4Pqlu8NyQ==}
peerDependencies: peerDependencies:
'@tanstack/react-query': ^4.18.0 '@tanstack/react-query': ^4.18.0
@ -1529,7 +1530,7 @@ packages:
'@trpc/client': 10.37.1(@trpc/server@10.37.1) '@trpc/client': 10.37.1(@trpc/server@10.37.1)
'@trpc/react-query': 10.37.1(@tanstack/react-query@4.32.6)(@trpc/client@10.37.1)(@trpc/server@10.37.1)(react-dom@18.2.0)(react@18.2.0) '@trpc/react-query': 10.37.1(@tanstack/react-query@4.32.6)(@trpc/client@10.37.1)(@trpc/server@10.37.1)(react-dom@18.2.0)(react@18.2.0)
'@trpc/server': 10.37.1 '@trpc/server': 10.37.1
next: 13.4.13(react-dom@18.2.0)(react@18.2.0) next: 13.4.16(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0 react: 18.2.0
react-dom: 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) react-ssr-prepass: 1.5.0(react@18.2.0)
@ -1677,6 +1678,14 @@ packages:
resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==}
dev: false dev: false
/@types/pg@8.6.6:
resolution: {integrity: sha512-O2xNmXebtwVekJDD+02udOncjVcMZQuTEQEMpKJ0ZRf5E7/9JJX3izhKUcUifBkyKpljyUM6BTgy2trmviKlpw==}
dependencies:
'@types/node': 20.5.0
pg-protocol: 1.6.0
pg-types: 2.2.0
dev: false
/@types/prop-types@15.7.5: /@types/prop-types@15.7.5:
resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==} resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==}
dev: true dev: true
@ -2083,11 +2092,17 @@ packages:
resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==} resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==}
dev: false dev: false
/asynciterator.prototype@1.0.0:
resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==}
dependencies:
has-symbols: 1.0.3
dev: true
/asynckit@0.4.0: /asynckit@0.4.0:
resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
dev: false dev: false
/autoprefixer@10.4.15(postcss@8.4.27): /autoprefixer@10.4.15(postcss@8.4.28):
resolution: {integrity: sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==} resolution: {integrity: sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==}
engines: {node: ^10 || ^12 || >=14} engines: {node: ^10 || ^12 || >=14}
hasBin: true hasBin: true
@ -2095,11 +2110,11 @@ packages:
postcss: ^8.1.0 postcss: ^8.1.0
dependencies: dependencies:
browserslist: 4.21.10 browserslist: 4.21.10
caniuse-lite: 1.0.30001520 caniuse-lite: 1.0.30001521
fraction.js: 4.2.0 fraction.js: 4.2.0
normalize-range: 0.1.2 normalize-range: 0.1.2
picocolors: 1.0.0 picocolors: 1.0.0
postcss: 8.4.27 postcss: 8.4.28
postcss-value-parser: 4.2.0 postcss-value-parser: 4.2.0
dev: false dev: false
@ -2113,16 +2128,6 @@ packages:
engines: {node: '>=4'} engines: {node: '>=4'}
dev: true dev: true
/axios@1.4.0:
resolution: {integrity: sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==}
dependencies:
follow-redirects: 1.15.2
form-data: 4.0.0
proxy-from-env: 1.1.0
transitivePeerDependencies:
- debug
dev: false
/axobject-query@3.2.1: /axobject-query@3.2.1:
resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==}
dependencies: dependencies:
@ -2206,8 +2211,8 @@ packages:
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true hasBin: true
dependencies: dependencies:
caniuse-lite: 1.0.30001520 caniuse-lite: 1.0.30001521
electron-to-chromium: 1.4.490 electron-to-chromium: 1.4.492
node-releases: 2.0.13 node-releases: 2.0.13
update-browserslist-db: 1.0.11(browserslist@4.21.10) update-browserslist-db: 1.0.11(browserslist@4.21.10)
dev: false dev: false
@ -2293,8 +2298,8 @@ packages:
engines: {node: '>=14.16'} engines: {node: '>=14.16'}
dev: true dev: true
/caniuse-lite@1.0.30001520: /caniuse-lite@1.0.30001521:
resolution: {integrity: sha512-tahF5O9EiiTzwTUqAeFjIZbn4Dnqxzz7ktrgGlMYNLH43Ul26IgTMH/zvL3DG0lZxBYnlT04axvInszUsZULdA==} resolution: {integrity: sha512-fnx1grfpEOvDGH+V17eccmNjucGUnCbP6KL+l5KqBIerp26WK/+RQ7CIDE37KGJjaPyqWXXlFUyKiWmvdNNKmQ==}
dev: false dev: false
/chainsaw@0.1.0: /chainsaw@0.1.0:
@ -2539,8 +2544,8 @@ packages:
dependencies: dependencies:
colord: 2.9.3 colord: 2.9.3
css-selector-tokenizer: 0.8.0 css-selector-tokenizer: 0.8.0
postcss: 8.4.27 postcss: 8.4.28
postcss-js: 4.0.1(postcss@8.4.27) postcss-js: 4.0.1(postcss@8.4.28)
tailwindcss: 3.3.3 tailwindcss: 3.3.3
transitivePeerDependencies: transitivePeerDependencies:
- ts-node - ts-node
@ -2751,12 +2756,12 @@ packages:
hanji: 0.0.5 hanji: 0.0.5
json-diff: 0.9.0 json-diff: 0.9.0
minimatch: 7.4.6 minimatch: 7.4.6
zod: 3.22.0 zod: 3.22.1
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
dev: true dev: true
/drizzle-orm@0.28.2(@planetscale/database@1.10.0): /drizzle-orm@0.28.2(@neondatabase/serverless@0.5.7):
resolution: {integrity: sha512-QRyuzvpJr7GE6LpvZ/sg2nAKNg2if1uGGkgFTiXn4auuYId//vVJe6HBsDTktfKfcaDGzIYos+/f+PS5EkBmrg==} resolution: {integrity: sha512-QRyuzvpJr7GE6LpvZ/sg2nAKNg2if1uGGkgFTiXn4auuYId//vVJe6HBsDTktfKfcaDGzIYos+/f+PS5EkBmrg==}
peerDependencies: peerDependencies:
'@aws-sdk/client-rds-data': '>=3' '@aws-sdk/client-rds-data': '>=3'
@ -2818,7 +2823,7 @@ packages:
sqlite3: sqlite3:
optional: true optional: true
dependencies: dependencies:
'@planetscale/database': 1.10.0 '@neondatabase/serverless': 0.5.7
dev: false dev: false
/duplexer2@0.1.4: /duplexer2@0.1.4:
@ -2838,8 +2843,8 @@ packages:
semver: 7.5.4 semver: 7.5.4
dev: false dev: false
/electron-to-chromium@1.4.490: /electron-to-chromium@1.4.492:
resolution: {integrity: sha512-6s7NVJz+sATdYnIwhdshx/N/9O6rvMxmhVoDSDFdj6iA45gHR8EQje70+RYsF4GeB+k0IeNSBnP7yG9ZXJFr7A==} resolution: {integrity: sha512-36K9b/6skMVwAIEsC7GiQ8I8N3soCALVSHqWHzNDtGemAcI9Xu8hP02cywWM0A794rTHm0b0zHPeLJHtgFVamQ==}
dev: false dev: false
/emoji-regex@9.2.2: /emoji-regex@9.2.2:
@ -2916,6 +2921,21 @@ packages:
which-typed-array: 1.1.11 which-typed-array: 1.1.11
dev: true dev: true
/es-iterator-helpers@1.0.12:
resolution: {integrity: sha512-T6Ldv67RYULYtZ1k1omngDTVQSTVNX/ZSjDiwlw0PMokhy8kq2LFElleaEjpvlSaXh9ugJ4zrBgbQ7L+Bjdm3Q==}
dependencies:
asynciterator.prototype: 1.0.0
es-abstract: 1.22.1
es-set-tostringtag: 2.0.1
function-bind: 1.1.1
globalthis: 1.0.3
has-proto: 1.0.1
has-symbols: 1.0.3
internal-slot: 1.0.5
iterator.prototype: 1.1.0
safe-array-concat: 1.0.0
dev: true
/es-set-tostringtag@2.0.1: /es-set-tostringtag@2.0.1:
resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
@ -3090,8 +3110,8 @@ packages:
engines: {node: '>=10'} engines: {node: '>=10'}
dev: true dev: true
/eslint-config-next@13.4.15(eslint@8.47.0)(typescript@5.1.6): /eslint-config-next@13.4.16(eslint@8.47.0)(typescript@5.1.6):
resolution: {integrity: sha512-OSD4YQMSR8KvnTIQErCpFnXjElZEmXP8KgAXU3/8oGfKFa4dexRZtZl8DKs9M0dO5J3HHhD6I2pdHvICEuB5FQ==} resolution: {integrity: sha512-Of73d/FiaGf0GLCxxTGdh4rW8bRDvsqypylefkshE/uDDpQr8ifVQsD4UiB99rhegks7nJGkYtUnR3dC7kfFlw==}
peerDependencies: peerDependencies:
eslint: ^7.23.0 || ^8.0.0 eslint: ^7.23.0 || ^8.0.0
typescript: '>=3.3.1' typescript: '>=3.3.1'
@ -3099,7 +3119,7 @@ packages:
typescript: typescript:
optional: true optional: true
dependencies: dependencies:
'@next/eslint-plugin-next': 13.4.15 '@next/eslint-plugin-next': 13.4.16
'@rushstack/eslint-patch': 1.3.3 '@rushstack/eslint-patch': 1.3.3
'@typescript-eslint/parser': 6.4.0(eslint@8.47.0)(typescript@5.1.6) '@typescript-eslint/parser': 6.4.0(eslint@8.47.0)(typescript@5.1.6)
eslint: 8.47.0 eslint: 8.47.0
@ -3107,7 +3127,7 @@ packages:
eslint-import-resolver-typescript: 3.6.0(@typescript-eslint/parser@6.4.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.0)(eslint@8.47.0) eslint-import-resolver-typescript: 3.6.0(@typescript-eslint/parser@6.4.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.28.0)(eslint@8.47.0)
eslint-plugin-import: 2.28.0(@typescript-eslint/parser@6.4.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.47.0) eslint-plugin-import: 2.28.0(@typescript-eslint/parser@6.4.0)(eslint-import-resolver-typescript@3.6.0)(eslint@8.47.0)
eslint-plugin-jsx-a11y: 6.7.1(eslint@8.47.0) eslint-plugin-jsx-a11y: 6.7.1(eslint@8.47.0)
eslint-plugin-react: 7.33.1(eslint@8.47.0) eslint-plugin-react: 7.33.2(eslint@8.47.0)
eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.47.0) eslint-plugin-react-hooks: 5.0.0-canary-7118f5dd7-20230705(eslint@8.47.0)
typescript: 5.1.6 typescript: 5.1.6
transitivePeerDependencies: transitivePeerDependencies:
@ -3248,8 +3268,8 @@ packages:
eslint: 8.47.0 eslint: 8.47.0
dev: true dev: true
/eslint-plugin-react@7.33.1(eslint@8.47.0): /eslint-plugin-react@7.33.2(eslint@8.47.0):
resolution: {integrity: sha512-L093k0WAMvr6VhNwReB8VgOq5s2LesZmrpPdKz/kZElQDzqS7G7+DnKoqT+w4JwuiGeAhAvHO0fvy0Eyk4ejDA==} resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==}
engines: {node: '>=4'} engines: {node: '>=4'}
peerDependencies: peerDependencies:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
@ -3258,6 +3278,7 @@ packages:
array.prototype.flatmap: 1.3.1 array.prototype.flatmap: 1.3.1
array.prototype.tosorted: 1.1.1 array.prototype.tosorted: 1.1.1
doctrine: 2.1.0 doctrine: 2.1.0
es-iterator-helpers: 1.0.12
eslint: 8.47.0 eslint: 8.47.0
estraverse: 5.3.0 estraverse: 5.3.0
jsx-ast-utils: 3.3.5 jsx-ast-utils: 3.3.5
@ -3498,16 +3519,6 @@ packages:
resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==}
dev: true dev: true
/follow-redirects@1.15.2:
resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==}
engines: {node: '>=4.0'}
peerDependencies:
debug: '*'
peerDependenciesMeta:
debug:
optional: true
dev: false
/for-each@0.3.3: /for-each@0.3.3:
resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
dependencies: dependencies:
@ -3523,15 +3534,6 @@ packages:
mime-types: 2.1.35 mime-types: 2.1.35
dev: false dev: false
/form-data@4.0.0:
resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
engines: {node: '>= 6'}
dependencies:
asynckit: 0.4.0
combined-stream: 1.0.8
mime-types: 2.1.35
dev: false
/fraction.js@4.2.0: /fraction.js@4.2.0:
resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==}
dev: false dev: false
@ -3948,6 +3950,13 @@ packages:
resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
dev: false dev: false
/is-async-function@2.0.0:
resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==}
engines: {node: '>= 0.4'}
dependencies:
has-tostringtag: 1.0.0
dev: true
/is-bigint@1.0.4: /is-bigint@1.0.4:
resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
dependencies: dependencies:
@ -3998,6 +4007,19 @@ packages:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
/is-finalizationregistry@1.0.2:
resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==}
dependencies:
call-bind: 1.0.2
dev: true
/is-generator-function@1.0.10:
resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
engines: {node: '>= 0.4'}
dependencies:
has-tostringtag: 1.0.0
dev: true
/is-glob@4.0.3: /is-glob@4.0.3:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
@ -4009,6 +4031,10 @@ packages:
engines: {node: '>=8'} engines: {node: '>=8'}
dev: false dev: false
/is-map@2.0.2:
resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==}
dev: true
/is-negative-zero@2.0.2: /is-negative-zero@2.0.2:
resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
@ -4047,6 +4073,10 @@ packages:
has-tostringtag: 1.0.0 has-tostringtag: 1.0.0
dev: true dev: true
/is-set@2.0.2:
resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==}
dev: true
/is-shared-array-buffer@1.0.2: /is-shared-array-buffer@1.0.2:
resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==}
dependencies: dependencies:
@ -4084,12 +4114,23 @@ packages:
engines: {node: '>=10'} engines: {node: '>=10'}
dev: false dev: false
/is-weakmap@2.0.1:
resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==}
dev: true
/is-weakref@1.0.2: /is-weakref@1.0.2:
resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
dependencies: dependencies:
call-bind: 1.0.2 call-bind: 1.0.2
dev: true dev: true
/is-weakset@2.0.2:
resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==}
dependencies:
call-bind: 1.0.2
get-intrinsic: 1.2.1
dev: true
/is-what@4.1.15: /is-what@4.1.15:
resolution: {integrity: sha512-uKua1wfy3Yt+YqsD6mTUEa2zSi3G1oPlqTflgaPJ7z63vUGN5pxFpnQfeSLMFnJDEsdvOtkp1rUWkYjB4YfhgA==} resolution: {integrity: sha512-uKua1wfy3Yt+YqsD6mTUEa2zSi3G1oPlqTflgaPJ7z63vUGN5pxFpnQfeSLMFnJDEsdvOtkp1rUWkYjB4YfhgA==}
engines: {node: '>=12.13'} engines: {node: '>=12.13'}
@ -4120,6 +4161,16 @@ packages:
- encoding - encoding
dev: false dev: false
/iterator.prototype@1.1.0:
resolution: {integrity: sha512-rjuhAk1AJ1fssphHD0IFV6TWL40CwRZ53FrztKx43yk2v6rguBYsY4Bj1VU4HmoMmKwZUlx7mfnhDf9cOp4YTw==}
dependencies:
define-properties: 1.2.0
get-intrinsic: 1.2.1
has-symbols: 1.0.3
has-tostringtag: 1.0.0
reflect.getprototypeof: 1.0.3
dev: true
/jiti@1.19.1: /jiti@1.19.1:
resolution: {integrity: sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg==} resolution: {integrity: sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg==}
hasBin: true hasBin: true
@ -4470,8 +4521,8 @@ packages:
resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==} resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==}
dev: true dev: true
/next@13.4.13(react-dom@18.2.0)(react@18.2.0): /next@13.4.16(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-A3YVbVDNeXLhWsZ8Nf6IkxmNlmTNz0yVg186NJ97tGZqPDdPzTrHotJ+A1cuJm2XfuWPrKOUZILl5iBQkIf8Jw==} resolution: {integrity: sha512-1xaA/5DrfpPu0eV31Iro7JfPeqO8uxQWb1zYNTe+KDKdzqkAGapLcDYHMLNKXKB7lHjZ7LfKUOf9dyuzcibrhA==}
engines: {node: '>=16.8.0'} engines: {node: '>=16.8.0'}
hasBin: true hasBin: true
peerDependencies: peerDependencies:
@ -4485,10 +4536,10 @@ packages:
sass: sass:
optional: true optional: true
dependencies: dependencies:
'@next/env': 13.4.13 '@next/env': 13.4.16
'@swc/helpers': 0.5.1 '@swc/helpers': 0.5.1
busboy: 1.6.0 busboy: 1.6.0
caniuse-lite: 1.0.30001520 caniuse-lite: 1.0.30001521
postcss: 8.4.14 postcss: 8.4.14
react: 18.2.0 react: 18.2.0
react-dom: 18.2.0(react@18.2.0) react-dom: 18.2.0(react@18.2.0)
@ -4496,27 +4547,27 @@ packages:
watchpack: 2.4.0 watchpack: 2.4.0
zod: 3.21.4 zod: 3.21.4
optionalDependencies: optionalDependencies:
'@next/swc-darwin-arm64': 13.4.13 '@next/swc-darwin-arm64': 13.4.16
'@next/swc-darwin-x64': 13.4.13 '@next/swc-darwin-x64': 13.4.16
'@next/swc-linux-arm64-gnu': 13.4.13 '@next/swc-linux-arm64-gnu': 13.4.16
'@next/swc-linux-arm64-musl': 13.4.13 '@next/swc-linux-arm64-musl': 13.4.16
'@next/swc-linux-x64-gnu': 13.4.13 '@next/swc-linux-x64-gnu': 13.4.16
'@next/swc-linux-x64-musl': 13.4.13 '@next/swc-linux-x64-musl': 13.4.16
'@next/swc-win32-arm64-msvc': 13.4.13 '@next/swc-win32-arm64-msvc': 13.4.16
'@next/swc-win32-ia32-msvc': 13.4.13 '@next/swc-win32-ia32-msvc': 13.4.16
'@next/swc-win32-x64-msvc': 13.4.13 '@next/swc-win32-x64-msvc': 13.4.16
transitivePeerDependencies: transitivePeerDependencies:
- '@babel/core' - '@babel/core'
- babel-plugin-macros - babel-plugin-macros
dev: false dev: false
/nextjs-cors@2.1.2(next@13.4.13): /nextjs-cors@2.1.2(next@13.4.16):
resolution: {integrity: sha512-2yOVivaaf2ILe4f/qY32hnj3oC77VCOsUQJQfhVMGsXE/YMEWUY2zy78sH9FKUCM7eG42/l3pDofIzMD781XGA==} resolution: {integrity: sha512-2yOVivaaf2ILe4f/qY32hnj3oC77VCOsUQJQfhVMGsXE/YMEWUY2zy78sH9FKUCM7eG42/l3pDofIzMD781XGA==}
peerDependencies: peerDependencies:
next: ^8.1.1-canary.54 || ^9.0.0 || ^10.0.0-0 || ^11.0.0 || ^12.0.0 || ^13.0.0 next: ^8.1.1-canary.54 || ^9.0.0 || ^10.0.0-0 || ^11.0.0 || ^12.0.0 || ^13.0.0
dependencies: dependencies:
cors: 2.8.5 cors: 2.8.5
next: 13.4.13(react-dom@18.2.0)(react@18.2.0) next: 13.4.16(react-dom@18.2.0)(react@18.2.0)
dev: false dev: false
/no-case@3.0.4: /no-case@3.0.4:
@ -4793,6 +4844,26 @@ packages:
resolution: {integrity: sha512-YYEs+eauIjDH5nUEGi18EohWE0nV2QbGTqmxQcqgZ/0g+laPCQmuIqq7EBLVi9uim9zMgfJv0QBZEnQ3uHw/Tw==} resolution: {integrity: sha512-YYEs+eauIjDH5nUEGi18EohWE0nV2QbGTqmxQcqgZ/0g+laPCQmuIqq7EBLVi9uim9zMgfJv0QBZEnQ3uHw/Tw==}
dev: false dev: false
/pg-int8@1.0.1:
resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==}
engines: {node: '>=4.0.0'}
dev: false
/pg-protocol@1.6.0:
resolution: {integrity: sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==}
dev: false
/pg-types@2.2.0:
resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==}
engines: {node: '>=4'}
dependencies:
pg-int8: 1.0.1
postgres-array: 2.0.0
postgres-bytea: 1.0.0
postgres-date: 1.0.7
postgres-interval: 1.2.0
dev: false
/picocolors@1.0.0: /picocolors@1.0.0:
resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
@ -4837,13 +4908,13 @@ packages:
resolve: 1.22.4 resolve: 1.22.4
dev: false dev: false
/postcss-import@15.1.0(postcss@8.4.27): /postcss-import@15.1.0(postcss@8.4.28):
resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
engines: {node: '>=14.0.0'} engines: {node: '>=14.0.0'}
peerDependencies: peerDependencies:
postcss: ^8.0.0 postcss: ^8.0.0
dependencies: dependencies:
postcss: 8.4.27 postcss: 8.4.28
postcss-value-parser: 4.2.0 postcss-value-parser: 4.2.0
read-cache: 1.0.0 read-cache: 1.0.0
resolve: 1.22.4 resolve: 1.22.4
@ -4859,14 +4930,14 @@ packages:
postcss: 8.4.21 postcss: 8.4.21
dev: false dev: false
/postcss-js@4.0.1(postcss@8.4.27): /postcss-js@4.0.1(postcss@8.4.28):
resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
engines: {node: ^12 || ^14 || >= 16} engines: {node: ^12 || ^14 || >= 16}
peerDependencies: peerDependencies:
postcss: ^8.4.21 postcss: ^8.4.21
dependencies: dependencies:
camelcase-css: 2.0.1 camelcase-css: 2.0.1
postcss: 8.4.27 postcss: 8.4.28
dev: true dev: true
/postcss-load-config@3.1.4(postcss@8.4.21): /postcss-load-config@3.1.4(postcss@8.4.21):
@ -4886,7 +4957,7 @@ packages:
yaml: 1.10.2 yaml: 1.10.2
dev: false dev: false
/postcss-load-config@4.0.1(postcss@8.4.27): /postcss-load-config@4.0.1(postcss@8.4.28):
resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==}
engines: {node: '>= 14'} engines: {node: '>= 14'}
peerDependencies: peerDependencies:
@ -4899,7 +4970,7 @@ packages:
optional: true optional: true
dependencies: dependencies:
lilconfig: 2.1.0 lilconfig: 2.1.0
postcss: 8.4.27 postcss: 8.4.28
yaml: 2.3.1 yaml: 2.3.1
dev: true dev: true
@ -4913,13 +4984,13 @@ packages:
postcss-selector-parser: 6.0.13 postcss-selector-parser: 6.0.13
dev: false dev: false
/postcss-nested@6.0.1(postcss@8.4.27): /postcss-nested@6.0.1(postcss@8.4.28):
resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
engines: {node: '>=12.0'} engines: {node: '>=12.0'}
peerDependencies: peerDependencies:
postcss: ^8.2.14 postcss: ^8.2.14
dependencies: dependencies:
postcss: 8.4.27 postcss: 8.4.28
postcss-selector-parser: 6.0.13 postcss-selector-parser: 6.0.13
dev: true dev: true
@ -4951,14 +5022,36 @@ packages:
source-map-js: 1.0.2 source-map-js: 1.0.2
dev: false dev: false
/postcss@8.4.27: /postcss@8.4.28:
resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==} resolution: {integrity: sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==}
engines: {node: ^10 || ^12 || >=14} engines: {node: ^10 || ^12 || >=14}
dependencies: dependencies:
nanoid: 3.3.6 nanoid: 3.3.6
picocolors: 1.0.0 picocolors: 1.0.0
source-map-js: 1.0.2 source-map-js: 1.0.2
/postgres-array@2.0.0:
resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==}
engines: {node: '>=4'}
dev: false
/postgres-bytea@1.0.0:
resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==}
engines: {node: '>=0.10.0'}
dev: false
/postgres-date@1.0.7:
resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==}
engines: {node: '>=0.10.0'}
dev: false
/postgres-interval@1.2.0:
resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==}
engines: {node: '>=0.10.0'}
dependencies:
xtend: 4.0.2
dev: false
/prebuild-install@7.1.1: /prebuild-install@7.1.1:
resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==} resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==}
engines: {node: '>=10'} engines: {node: '>=10'}
@ -5013,10 +5106,6 @@ packages:
resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==}
dev: false dev: false
/proxy-from-env@1.1.0:
resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
dev: false
/pump@3.0.0: /pump@3.0.0:
resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==}
dependencies: dependencies:
@ -5192,6 +5281,18 @@ packages:
resolve: 1.22.4 resolve: 1.22.4
dev: false dev: false
/reflect.getprototypeof@1.0.3:
resolution: {integrity: sha512-TTAOZpkJ2YLxl7mVHWrNo3iDMEkYlva/kgFcXndqMgbo/AZUmmavEkdXV+hXtE4P8xdyEKRzalaFqZVuwIk/Nw==}
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
define-properties: 1.2.0
es-abstract: 1.22.1
get-intrinsic: 1.2.1
globalthis: 1.0.3
which-builtin-type: 1.1.3
dev: true
/regenerator-runtime@0.14.0: /regenerator-runtime@0.14.0:
resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==}
@ -5204,14 +5305,15 @@ packages:
functions-have-names: 1.2.3 functions-have-names: 1.2.3
dev: true dev: true
/resend@0.17.2: /resend@1.0.0:
resolution: {integrity: sha512-lakm76u4MiIDeMF1s2tCmjtksOhwZOs4WcAXkA7aUTvl+63/h+0h6Q6WnkB8RGtj6GakUhQuUkiZshfXgtIrGw==} resolution: {integrity: sha512-8LEE4gncmcm8bsvxvahZFpFk5hxUrKdagqWoX/MRXVU2YZ9coYxqZDeDYXG9pexz1A694bjE1hiQbBAA+bHAow==}
engines: {node: '>=16'}
dependencies: dependencies:
'@react-email/render': 0.0.7 '@react-email/render': 0.0.7
axios: 1.4.0 node-fetch: 2.6.12
type-fest: 3.13.0 type-fest: 3.13.0
transitivePeerDependencies: transitivePeerDependencies:
- debug - encoding
dev: false dev: false
/resolve-alpn@1.2.1: /resolve-alpn@1.2.1:
@ -5340,8 +5442,8 @@ packages:
resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
dev: false dev: false
/sharp@0.32.4: /sharp@0.32.5:
resolution: {integrity: sha512-exUnZewqVZC6UXqXuQ8fyJJv0M968feBi04jb9GcUHrWtkRoAKnbJt8IfwT4NJs7FskArbJ14JAFGVuooszoGg==} resolution: {integrity: sha512-0dap3iysgDkNaPOaOL4X/0akdu0ma62GcdC2NBQ+93eqpePdDdr2/LM0sFdDSMmN7yS+odyZtPsb7tx/cYBKnQ==}
engines: {node: '>=14.15.0'} engines: {node: '>=14.15.0'}
requiresBuild: true requiresBuild: true
dependencies: dependencies:
@ -5694,11 +5796,11 @@ packages:
normalize-path: 3.0.0 normalize-path: 3.0.0
object-hash: 3.0.0 object-hash: 3.0.0
picocolors: 1.0.0 picocolors: 1.0.0
postcss: 8.4.27 postcss: 8.4.28
postcss-import: 15.1.0(postcss@8.4.27) postcss-import: 15.1.0(postcss@8.4.28)
postcss-js: 4.0.1(postcss@8.4.27) postcss-js: 4.0.1(postcss@8.4.28)
postcss-load-config: 4.0.1(postcss@8.4.27) postcss-load-config: 4.0.1(postcss@8.4.28)
postcss-nested: 6.0.1(postcss@8.4.27) postcss-nested: 6.0.1(postcss@8.4.28)
postcss-selector-parser: 6.0.13 postcss-selector-parser: 6.0.13
resolve: 1.22.4 resolve: 1.22.4
sucrase: 3.34.0 sucrase: 3.34.0
@ -6067,6 +6169,33 @@ packages:
is-symbol: 1.0.4 is-symbol: 1.0.4
dev: true dev: true
/which-builtin-type@1.1.3:
resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==}
engines: {node: '>= 0.4'}
dependencies:
function.prototype.name: 1.1.5
has-tostringtag: 1.0.0
is-async-function: 2.0.0
is-date-object: 1.0.5
is-finalizationregistry: 1.0.2
is-generator-function: 1.0.10
is-regex: 1.1.4
is-weakref: 1.0.2
isarray: 2.0.5
which-boxed-primitive: 1.0.2
which-collection: 1.0.1
which-typed-array: 1.1.11
dev: true
/which-collection@1.0.1:
resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==}
dependencies:
is-map: 2.0.2
is-set: 2.0.2
is-weakmap: 2.0.1
is-weakset: 2.0.2
dev: true
/which-typed-array@1.1.11: /which-typed-array@1.1.11:
resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==} resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
@ -6133,5 +6262,5 @@ packages:
resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==} resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==}
dev: false dev: false
/zod@3.22.0: /zod@3.22.1:
resolution: {integrity: sha512-y5KZY/ssf5n7hCGDGGtcJO/EBJEm5Pa+QQvFBeyMOtnFYOSflalxIFFvdaYevPhePcmcKC4aTbFkCcXN7D0O8Q==} resolution: {integrity: sha512-+qUhAMl414+Elh+fRNtpU+byrwjDFOS1N7NioLY+tSlcADTx4TkCUua/hxJvxwDXcV4397/nZ420jy4n4+3WUg==}

View file

@ -1,5 +1,4 @@
import type { NextApiRequest, NextApiResponse } from "next"; import type { NextApiRequest, NextApiResponse } from "next";
import { db } from "~/server/db";
import { validateRequest } from "~/server/unkey"; import { validateRequest } from "~/server/unkey";
export default async function handler( export default async function handler(
@ -9,7 +8,6 @@ export default async function handler(
const isValid = await validateRequest(req, res); const isValid = await validateRequest(req, res);
if (isValid) { if (isValid) {
await db.query.votes.findFirst();
res.status(200).json({ result: "Pong!" }); res.status(200).json({ result: "Pong!" });
} }
} }

View file

@ -17,16 +17,19 @@ export const roomRouter = createTRPCRouter({
}) })
) )
.mutation(async ({ ctx, input }) => { .mutation(async ({ ctx, input }) => {
const room = await ctx.db.insert(rooms).values({ const room = await ctx.db
id: createId(), .insert(rooms)
userId: ctx.auth.userId, .values({
roomName: input.name, id: createId(),
storyName: "First Story!", userId: ctx.auth.userId,
scale: "0.5,1,2,3,5,8", roomName: input.name,
visible: false, storyName: "First Story!",
}); scale: "0.5,1,2,3,5,8",
visible: false,
})
.returning();
const success = room.rowsAffected > 0; const success = room.length > 0;
if (room) { if (room) {
await invalidateCache(`kv_roomcount`); await invalidateCache(`kv_roomcount`);
await invalidateCache(`kv_roomlist_${ctx.auth.userId}`); await invalidateCache(`kv_roomlist_${ctx.auth.userId}`);
@ -145,9 +148,10 @@ export const roomRouter = createTRPCRouter({
.filter((item) => item !== "") .filter((item) => item !== "")
.toString(), .toString(),
}) })
.where(eq(rooms.id, input.roomId)); .where(eq(rooms.id, input.roomId))
.returning();
const success = newRoom.rowsAffected > 0; const success = newRoom.length > 0;
if (success) { if (success) {
await publishToChannel( await publishToChannel(
@ -166,15 +170,12 @@ export const roomRouter = createTRPCRouter({
.mutation(async ({ ctx, input }) => { .mutation(async ({ ctx, input }) => {
const deletedRoom = await ctx.db const deletedRoom = await ctx.db
.delete(rooms) .delete(rooms)
.where(eq(rooms.id, input.id)); .where(eq(rooms.id, input.id))
.returning();
const success = deletedRoom.rowsAffected > 0; const success = deletedRoom.length > 0;
if (success) { if (success) {
await ctx.db.delete(votes).where(eq(votes.roomId, input.id));
await ctx.db.delete(logs).where(eq(logs.roomId, input.id));
await invalidateCache(`kv_roomcount`); await invalidateCache(`kv_roomcount`);
await invalidateCache(`kv_votecount`); await invalidateCache(`kv_votecount`);
await invalidateCache(`kv_roomlist_${ctx.auth.userId}`); await invalidateCache(`kv_roomlist_${ctx.auth.userId}`);

View file

@ -44,19 +44,23 @@ export const voteRouter = createTRPCRouter({
userId: ctx.auth.userId, userId: ctx.auth.userId,
roomId: input.roomId, roomId: input.roomId,
}) })
.where(eq(votes.userId, ctx.auth.userId)); .where(eq(votes.userId, ctx.auth.userId))
.returning();
let success = updateResult.rowsAffected > 0; let success = updateResult.length > 0;
if (!success) { if (!success) {
const vote = await ctx.db.insert(votes).ignore().values({ const vote = await ctx.db
id: createId(), .insert(votes)
value: input.value, .values({
userId: ctx.auth.userId, id: createId(),
roomId: input.roomId, value: input.value,
}); userId: ctx.auth.userId,
roomId: input.roomId,
})
.returning();
success = vote.rowsAffected > 0; success = vote.length > 0;
} }
if (success) { if (success) {

View file

@ -1,11 +1,9 @@
import { drizzle } from "drizzle-orm/planetscale-serverless"; import { neon, neonConfig } from "@neondatabase/serverless";
import { connect } from "@planetscale/database"; import { drizzle } from "drizzle-orm/neon-http";
import { env } from "~/env.mjs"; import { env } from "~/env.mjs";
import * as schema from "~/server/schema"; import * as schema from "~/server/schema";
// create the connection neonConfig.fetchConnectionCache = true;
const connection = connect({
url: env.DATABASE_URL,
});
export const db = drizzle(connection, { schema }); const sql = neon(env.DATABASE_URL);
export const db = drizzle(sql, { schema });

View file

@ -1,13 +1,13 @@
import { import {
timestamp, timestamp,
mysqlTable, pgTable,
varchar, varchar,
boolean, boolean,
json, json,
} from "drizzle-orm/mysql-core"; } from "drizzle-orm/pg-core";
import { relations } from "drizzle-orm"; import { relations } from "drizzle-orm";
export const rooms = mysqlTable("Room", { export const rooms = pgTable("Room", {
id: varchar("id", { length: 255 }).notNull().primaryKey(), id: varchar("id", { length: 255 }).notNull().primaryKey(),
created_at: timestamp("created_at").defaultNow(), created_at: timestamp("created_at").defaultNow(),
userId: varchar("userId", { length: 255 }).notNull(), userId: varchar("userId", { length: 255 }).notNull(),
@ -22,11 +22,13 @@ export const roomsRelations = relations(rooms, ({ many }) => ({
logs: many(logs), logs: many(logs),
})); }));
export const votes = mysqlTable("Vote", { export const votes = pgTable("Vote", {
id: varchar("id", { length: 255 }).notNull().primaryKey(), id: varchar("id", { length: 255 }).notNull().primaryKey(),
created_at: timestamp("created_at").defaultNow(), created_at: timestamp("created_at").defaultNow(),
userId: varchar("userId", { length: 255 }).notNull(), userId: varchar("userId", { length: 255 }).notNull(),
roomId: varchar("roomId", { length: 255 }).notNull(), roomId: varchar("roomId", { length: 255 })
.notNull()
.references(() => rooms.id, { onDelete: "cascade" }),
value: varchar("value", { length: 255 }).notNull(), value: varchar("value", { length: 255 }).notNull(),
}); });
@ -37,11 +39,15 @@ export const votesRelations = relations(votes, ({ one }) => ({
}), }),
})); }));
export const logs = mysqlTable("Log", { export const logs = pgTable("Log", {
id: varchar("id", { length: 255 }).notNull().primaryKey(), id: varchar("id", { length: 255 }).notNull().primaryKey(),
created_at: timestamp("created_at").defaultNow(), created_at: timestamp("created_at").defaultNow(),
userId: varchar("userId", { length: 255 }).notNull(), userId: varchar("userId", { length: 255 })
roomId: varchar("roomId", { length: 255 }).notNull(), .notNull()
.references(() => rooms.id, { onDelete: "cascade" }),
roomId: varchar("roomId", { length: 255 })
.notNull()
.references(() => rooms.id, { onDelete: "cascade" }),
scale: varchar("scale", { length: 255 }), scale: varchar("scale", { length: 255 }),
votes: json("votes"), votes: json("votes"),
roomName: varchar("roomName", { length: 255 }), roomName: varchar("roomName", { length: 255 }),

View file

@ -10,8 +10,6 @@ export const onUserDeletedHandler = async (
) => { ) => {
try { try {
await db.delete(rooms).where(eq(rooms.userId, userId)); await db.delete(rooms).where(eq(rooms.userId, userId));
await db.delete(logs).where(eq(logs.userId, userId));
await db.delete(votes).where(eq(votes.userId, userId));
res.status(200).json({ result: "USER DELETED" }); res.status(200).json({ result: "USER DELETED" });
} catch (error) { } catch (error) {