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 {
schema: "./src/server/schema.ts",
out: "./drizzle/generated",
driver: "mysql2",
driver: "pg",
breakpoints: true,
dbCredentials: {
connectionString: process.env.DATABASE_URL!,

View file

@ -13,8 +13,8 @@
"dependencies": {
"@ably-labs/react-hooks": "^2.1.1",
"@clerk/nextjs": "^4.23.2",
"@neondatabase/serverless": "^0.5.7",
"@paralleldrive/cuid2": "^2.2.2",
"@planetscale/database": "^1.10.0",
"@react-email/components": "^0.0.7",
"@tanstack/react-query": "^4.32.6",
"@trpc/client": "10.37.1",
@ -29,17 +29,17 @@
"dotenv": "^16.3.1",
"drizzle-orm": "^0.28.2",
"json2csv": "6.0.0-alpha.2",
"next": "^13.4.13",
"next": "^13.4.16",
"nextjs-cors": "^2.1.2",
"postcss": "^8.4.27",
"postcss": "^8.4.28",
"react": "18.2.0",
"react-dom": "18.2.0",
"react-email": "^1.9.4",
"react-icons": "^4.10.1",
"resend": "^0.17.2",
"sharp": "^0.32.4",
"resend": "^1.0.0",
"sharp": "^0.32.5",
"superjson": "1.13.1",
"zod": "^3.22.0"
"zod": "^3.22.1"
},
"devDependencies": {
"@types/eslint": "^8.44.2",
@ -51,7 +51,7 @@
"daisyui": "^3.5.1",
"drizzle-kit": "^0.19.12",
"eslint": "^8.47.0",
"eslint-config-next": "^13.4.15",
"eslint-config-next": "^13.4.16",
"tailwindcss": "^3.3.3",
"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)
'@clerk/nextjs':
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':
specifier: ^2.2.2
version: 2.2.2
'@planetscale/database':
specifier: ^1.10.0
version: 1.10.0
'@react-email/components':
specifier: ^0.0.7
version: 0.0.7
@ -28,7 +28,7 @@ dependencies:
version: 10.37.1(@trpc/server@10.37.1)
'@trpc/next':
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':
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)
@ -49,25 +49,25 @@ dependencies:
version: 1.2.43
autoprefixer:
specifier: ^10.4.15
version: 10.4.15(postcss@8.4.27)
version: 10.4.15(postcss@8.4.28)
dotenv:
specifier: ^16.3.1
version: 16.3.1
drizzle-orm:
specifier: ^0.28.2
version: 0.28.2(@planetscale/database@1.10.0)
version: 0.28.2(@neondatabase/serverless@0.5.7)
json2csv:
specifier: 6.0.0-alpha.2
version: 6.0.0-alpha.2
next:
specifier: ^13.4.13
version: 13.4.13(react-dom@18.2.0)(react@18.2.0)
specifier: ^13.4.16
version: 13.4.16(react-dom@18.2.0)(react@18.2.0)
nextjs-cors:
specifier: ^2.1.2
version: 2.1.2(next@13.4.13)
version: 2.1.2(next@13.4.16)
postcss:
specifier: ^8.4.27
version: 8.4.27
specifier: ^8.4.28
version: 8.4.28
react:
specifier: 18.2.0
version: 18.2.0
@ -81,17 +81,17 @@ dependencies:
specifier: ^4.10.1
version: 4.10.1(react@18.2.0)
resend:
specifier: ^0.17.2
version: 0.17.2
specifier: ^1.0.0
version: 1.0.0
sharp:
specifier: ^0.32.4
version: 0.32.4
specifier: ^0.32.5
version: 0.32.5
superjson:
specifier: 1.13.1
version: 1.13.1
zod:
specifier: ^3.22.0
version: 3.22.0
specifier: ^3.22.1
version: 3.22.1
devDependencies:
'@types/eslint':
@ -122,8 +122,8 @@ devDependencies:
specifier: ^8.47.0
version: 8.47.0
eslint-config-next:
specifier: ^13.4.15
version: 13.4.15(eslint@8.47.0)(typescript@5.1.6)
specifier: ^13.4.16
version: 13.4.16(eslint@8.47.0)(typescript@5.1.6)
tailwindcss:
specifier: ^3.3.3
version: 3.3.3
@ -231,7 +231,7 @@ packages:
tslib: 2.4.1
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==}
engines: {node: '>=14'}
peerDependencies:
@ -243,7 +243,7 @@ packages:
'@clerk/clerk-react': 4.23.2(react@18.2.0)
'@clerk/clerk-sdk-node': 4.12.2
'@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
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -995,18 +995,24 @@ packages:
read-yaml-file: 1.1.0
dev: false
/@next/env@13.4.13:
resolution: {integrity: sha512-fwz2QgVg08v7ZL7KmbQBLF2PubR/6zQdKBgmHEl3BCyWTEDsAQEijjw2gbFhI1tcKfLdOOJUXntz5vZ4S0Polg==}
/@neondatabase/serverless@0.5.7:
resolution: {integrity: sha512-pIcgFWueCn5WQvtwHxji1EBpo1iGnlnPs/K02qmy7P150oHiohvgH5C4gWMTW52fqiMpPvK9kAdV9D07oJsd7w==}
dependencies:
'@types/pg': 8.6.6
dev: false
/@next/eslint-plugin-next@13.4.15:
resolution: {integrity: sha512-R+cOYbVyJM30d4OaDgRSCbtqsaoHfjnRUUuKxm74rswR82mv0c8En7+SXXsEfIpLCmGNSqOP5zF8aEE5e09VQQ==}
/@next/env@13.4.16:
resolution: {integrity: sha512-pCU0sJBqdfKP9mwDadxvZd+eLz3fZrTlmmDHY12Hdpl3DD0vy8ou5HWKVfG0zZS6tqhL4wnQqRbspdY5nqa7MA==}
dev: false
/@next/eslint-plugin-next@13.4.16:
resolution: {integrity: sha512-QuFtQl+oSEEQb0HMYBdvBoUaTiMxbY3go/MFkF3zOnfY0t84+IbAX78cw8ZCfr6cA6UcTq3nMIlCrHwDC/moxg==}
dependencies:
glob: 7.1.7
dev: true
/@next/swc-darwin-arm64@13.4.13:
resolution: {integrity: sha512-ZptVhHjzUuivnXMNCJ6lER33HN7lC+rZ01z+PM10Ows21NHFYMvGhi5iXkGtBDk6VmtzsbqnAjnx4Oz5um0FjA==}
/@next/swc-darwin-arm64@13.4.16:
resolution: {integrity: sha512-Rl6i1uUq0ciRa3VfEpw6GnWAJTSKo9oM2OrkGXPsm7rMxdd2FR5NkKc0C9xzFCI4+QtmBviWBdF2m3ur3Nqstw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
@ -1014,8 +1020,8 @@ packages:
dev: false
optional: true
/@next/swc-darwin-x64@13.4.13:
resolution: {integrity: sha512-t9nTiWCLApw8W4G1kqJyYP7y6/7lyal3PftmRturIxAIBlZss9wrtVN8nci50StDHmIlIDxfguYIEGVr9DbFTg==}
/@next/swc-darwin-x64@13.4.16:
resolution: {integrity: sha512-o1vIKYbZORyDmTrPV1hApt9NLyWrS5vr2p5hhLGpOnkBY1cz6DAXjv8Lgan8t6X87+83F0EUDlu7klN8ieZ06A==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
@ -1023,8 +1029,8 @@ packages:
dev: false
optional: true
/@next/swc-linux-arm64-gnu@13.4.13:
resolution: {integrity: sha512-xEHUqC8eqR5DHe8SOmMnDU1K3ggrJ28uIKltrQAwqFSSSmzjnN/XMocZkcVhuncuxYrpbri0iMQstRyRVdQVWg==}
/@next/swc-linux-arm64-gnu@13.4.16:
resolution: {integrity: sha512-JRyAl8lCfyTng4zoOmE6hNI2f1MFUr7JyTYCHl1RxX42H4a5LMwJhDVQ7a9tmDZ/yj+0hpBn+Aan+d6lA3v0UQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
@ -1032,8 +1038,8 @@ packages:
dev: false
optional: true
/@next/swc-linux-arm64-musl@13.4.13:
resolution: {integrity: sha512-sNf3MnLAm8rquSSAoeD9nVcdaDeRYOeey4stOWOyWIgbBDtP+C93amSgH/LPTDoUV7gNiU6f+ghepTjTjRgIUQ==}
/@next/swc-linux-arm64-musl@13.4.16:
resolution: {integrity: sha512-9gqVqNzUMWbUDgDiND18xoUqhwSm2gmksqXgCU0qaOKt6oAjWz8cWYjgpPVD0WICKFylEY/gvPEP1fMZDVFZ/g==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
@ -1041,8 +1047,8 @@ packages:
dev: false
optional: true
/@next/swc-linux-x64-gnu@13.4.13:
resolution: {integrity: sha512-WhcRaJJSHyx9OWmKjjz+OWHumiPZWRqmM/09Bt7Up4UqUJFFhGExeztR4trtv3rflvULatu9IH/nTV8fUUgaMA==}
/@next/swc-linux-x64-gnu@13.4.16:
resolution: {integrity: sha512-KcQGwchAKmZVPa8i5PLTxvTs1/rcFnSltfpTm803Tr/BtBV3AxCkHLfhtoyVtVzx/kl/oue8oS+DSmbepQKwhw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
@ -1050,8 +1056,8 @@ packages:
dev: false
optional: true
/@next/swc-linux-x64-musl@13.4.13:
resolution: {integrity: sha512-+Y4LLhOWWZQIDKVwr2R17lq2KSN0F1c30QVgGIWfnjjHpH8nrIWHEndhqYU+iFuW8It78CiJjQKTw4f51HD7jA==}
/@next/swc-linux-x64-musl@13.4.16:
resolution: {integrity: sha512-2RbMZNxYnJmW8EPHVBsGZPq5zqWAyBOc/YFxq/jIQ/Yn3RMFZ1dZVCjtIcsiaKmgh7mjA/W0ApbumutHNxRqqQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
@ -1059,8 +1065,8 @@ packages:
dev: false
optional: true
/@next/swc-win32-arm64-msvc@13.4.13:
resolution: {integrity: sha512-rWurdOR20uxjfqd1X9vDAgv0Jb26KjyL8akF9CBeFqX8rVaBAnW/Wf6A2gYEwyYY4Bai3T7p1kro6DFrsvBAAw==}
/@next/swc-win32-arm64-msvc@13.4.16:
resolution: {integrity: sha512-thDcGonELN7edUKzjzlHrdoKkm7y8IAdItQpRvvMxNUXa4d9r0ElofhTZj5emR7AiXft17hpen+QAkcWpqG7Jg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
@ -1068,8 +1074,8 @@ packages:
dev: false
optional: true
/@next/swc-win32-ia32-msvc@13.4.13:
resolution: {integrity: sha512-E8bSPwRuY5ibJ3CzLQmJEt8qaWrPYuUTwnrwygPUEWoLzD5YRx9SD37oXRdU81TgGwDzCxpl7z5Nqlfk50xAog==}
/@next/swc-win32-ia32-msvc@13.4.16:
resolution: {integrity: sha512-f7SE1Mo4JAchUWl0LQsbtySR9xCa+x55C0taetjUApKtcLR3AgAjASrrP+oE1inmLmw573qRnE1eZN8YJfEBQw==}
engines: {node: '>= 10'}
cpu: [ia32]
os: [win32]
@ -1077,8 +1083,8 @@ packages:
dev: false
optional: true
/@next/swc-win32-x64-msvc@13.4.13:
resolution: {integrity: sha512-4KlyC6jWRubPnppgfYsNTPeWfGCxtWLh5vaOAW/kdzAk9widqho8Qb5S4K2vHmal1tsURi7Onk2MMCV1phvyqA==}
/@next/swc-win32-x64-msvc@13.4.16:
resolution: {integrity: sha512-WamDZm1M/OEM4QLce3lOmD1XdLEl37zYZwlmOLhmF7qYJ2G6oYm9+ejZVv+LakQIsIuXhSpVlOvrxIAHqwRkPQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
@ -1269,11 +1275,6 @@ packages:
webcrypto-core: 1.7.7
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):
resolution: {integrity: sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==}
peerDependencies:
@ -1514,7 +1515,7 @@ packages:
'@trpc/server': 10.37.1
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==}
peerDependencies:
'@tanstack/react-query': ^4.18.0
@ -1529,7 +1530,7 @@ packages:
'@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/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-dom: 18.2.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==}
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:
resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==}
dev: true
@ -2083,11 +2092,17 @@ packages:
resolution: {integrity: sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==}
dev: false
/asynciterator.prototype@1.0.0:
resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==}
dependencies:
has-symbols: 1.0.3
dev: true
/asynckit@0.4.0:
resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
dev: false
/autoprefixer@10.4.15(postcss@8.4.27):
/autoprefixer@10.4.15(postcss@8.4.28):
resolution: {integrity: sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==}
engines: {node: ^10 || ^12 || >=14}
hasBin: true
@ -2095,11 +2110,11 @@ packages:
postcss: ^8.1.0
dependencies:
browserslist: 4.21.10
caniuse-lite: 1.0.30001520
caniuse-lite: 1.0.30001521
fraction.js: 4.2.0
normalize-range: 0.1.2
picocolors: 1.0.0
postcss: 8.4.27
postcss: 8.4.28
postcss-value-parser: 4.2.0
dev: false
@ -2113,16 +2128,6 @@ packages:
engines: {node: '>=4'}
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:
resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==}
dependencies:
@ -2206,8 +2211,8 @@ packages:
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
dependencies:
caniuse-lite: 1.0.30001520
electron-to-chromium: 1.4.490
caniuse-lite: 1.0.30001521
electron-to-chromium: 1.4.492
node-releases: 2.0.13
update-browserslist-db: 1.0.11(browserslist@4.21.10)
dev: false
@ -2293,8 +2298,8 @@ packages:
engines: {node: '>=14.16'}
dev: true
/caniuse-lite@1.0.30001520:
resolution: {integrity: sha512-tahF5O9EiiTzwTUqAeFjIZbn4Dnqxzz7ktrgGlMYNLH43Ul26IgTMH/zvL3DG0lZxBYnlT04axvInszUsZULdA==}
/caniuse-lite@1.0.30001521:
resolution: {integrity: sha512-fnx1grfpEOvDGH+V17eccmNjucGUnCbP6KL+l5KqBIerp26WK/+RQ7CIDE37KGJjaPyqWXXlFUyKiWmvdNNKmQ==}
dev: false
/chainsaw@0.1.0:
@ -2539,8 +2544,8 @@ packages:
dependencies:
colord: 2.9.3
css-selector-tokenizer: 0.8.0
postcss: 8.4.27
postcss-js: 4.0.1(postcss@8.4.27)
postcss: 8.4.28
postcss-js: 4.0.1(postcss@8.4.28)
tailwindcss: 3.3.3
transitivePeerDependencies:
- ts-node
@ -2751,12 +2756,12 @@ packages:
hanji: 0.0.5
json-diff: 0.9.0
minimatch: 7.4.6
zod: 3.22.0
zod: 3.22.1
transitivePeerDependencies:
- supports-color
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==}
peerDependencies:
'@aws-sdk/client-rds-data': '>=3'
@ -2818,7 +2823,7 @@ packages:
sqlite3:
optional: true
dependencies:
'@planetscale/database': 1.10.0
'@neondatabase/serverless': 0.5.7
dev: false
/duplexer2@0.1.4:
@ -2838,8 +2843,8 @@ packages:
semver: 7.5.4
dev: false
/electron-to-chromium@1.4.490:
resolution: {integrity: sha512-6s7NVJz+sATdYnIwhdshx/N/9O6rvMxmhVoDSDFdj6iA45gHR8EQje70+RYsF4GeB+k0IeNSBnP7yG9ZXJFr7A==}
/electron-to-chromium@1.4.492:
resolution: {integrity: sha512-36K9b/6skMVwAIEsC7GiQ8I8N3soCALVSHqWHzNDtGemAcI9Xu8hP02cywWM0A794rTHm0b0zHPeLJHtgFVamQ==}
dev: false
/emoji-regex@9.2.2:
@ -2916,6 +2921,21 @@ packages:
which-typed-array: 1.1.11
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:
resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==}
engines: {node: '>= 0.4'}
@ -3090,8 +3110,8 @@ packages:
engines: {node: '>=10'}
dev: true
/eslint-config-next@13.4.15(eslint@8.47.0)(typescript@5.1.6):
resolution: {integrity: sha512-OSD4YQMSR8KvnTIQErCpFnXjElZEmXP8KgAXU3/8oGfKFa4dexRZtZl8DKs9M0dO5J3HHhD6I2pdHvICEuB5FQ==}
/eslint-config-next@13.4.16(eslint@8.47.0)(typescript@5.1.6):
resolution: {integrity: sha512-Of73d/FiaGf0GLCxxTGdh4rW8bRDvsqypylefkshE/uDDpQr8ifVQsD4UiB99rhegks7nJGkYtUnR3dC7kfFlw==}
peerDependencies:
eslint: ^7.23.0 || ^8.0.0
typescript: '>=3.3.1'
@ -3099,7 +3119,7 @@ packages:
typescript:
optional: true
dependencies:
'@next/eslint-plugin-next': 13.4.15
'@next/eslint-plugin-next': 13.4.16
'@rushstack/eslint-patch': 1.3.3
'@typescript-eslint/parser': 6.4.0(eslint@8.47.0)(typescript@5.1.6)
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-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-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)
typescript: 5.1.6
transitivePeerDependencies:
@ -3248,8 +3268,8 @@ packages:
eslint: 8.47.0
dev: true
/eslint-plugin-react@7.33.1(eslint@8.47.0):
resolution: {integrity: sha512-L093k0WAMvr6VhNwReB8VgOq5s2LesZmrpPdKz/kZElQDzqS7G7+DnKoqT+w4JwuiGeAhAvHO0fvy0Eyk4ejDA==}
/eslint-plugin-react@7.33.2(eslint@8.47.0):
resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==}
engines: {node: '>=4'}
peerDependencies:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
@ -3258,6 +3278,7 @@ packages:
array.prototype.flatmap: 1.3.1
array.prototype.tosorted: 1.1.1
doctrine: 2.1.0
es-iterator-helpers: 1.0.12
eslint: 8.47.0
estraverse: 5.3.0
jsx-ast-utils: 3.3.5
@ -3498,16 +3519,6 @@ packages:
resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==}
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:
resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
dependencies:
@ -3523,15 +3534,6 @@ packages:
mime-types: 2.1.35
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:
resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==}
dev: false
@ -3948,6 +3950,13 @@ packages:
resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
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:
resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
dependencies:
@ -3998,6 +4007,19 @@ packages:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
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:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: '>=0.10.0'}
@ -4009,6 +4031,10 @@ packages:
engines: {node: '>=8'}
dev: false
/is-map@2.0.2:
resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==}
dev: true
/is-negative-zero@2.0.2:
resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==}
engines: {node: '>= 0.4'}
@ -4047,6 +4073,10 @@ packages:
has-tostringtag: 1.0.0
dev: true
/is-set@2.0.2:
resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==}
dev: true
/is-shared-array-buffer@1.0.2:
resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==}
dependencies:
@ -4084,12 +4114,23 @@ packages:
engines: {node: '>=10'}
dev: false
/is-weakmap@2.0.1:
resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==}
dev: true
/is-weakref@1.0.2:
resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
dependencies:
call-bind: 1.0.2
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:
resolution: {integrity: sha512-uKua1wfy3Yt+YqsD6mTUEa2zSi3G1oPlqTflgaPJ7z63vUGN5pxFpnQfeSLMFnJDEsdvOtkp1rUWkYjB4YfhgA==}
engines: {node: '>=12.13'}
@ -4120,6 +4161,16 @@ packages:
- encoding
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:
resolution: {integrity: sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg==}
hasBin: true
@ -4470,8 +4521,8 @@ packages:
resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==}
dev: true
/next@13.4.13(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-A3YVbVDNeXLhWsZ8Nf6IkxmNlmTNz0yVg186NJ97tGZqPDdPzTrHotJ+A1cuJm2XfuWPrKOUZILl5iBQkIf8Jw==}
/next@13.4.16(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-1xaA/5DrfpPu0eV31Iro7JfPeqO8uxQWb1zYNTe+KDKdzqkAGapLcDYHMLNKXKB7lHjZ7LfKUOf9dyuzcibrhA==}
engines: {node: '>=16.8.0'}
hasBin: true
peerDependencies:
@ -4485,10 +4536,10 @@ packages:
sass:
optional: true
dependencies:
'@next/env': 13.4.13
'@next/env': 13.4.16
'@swc/helpers': 0.5.1
busboy: 1.6.0
caniuse-lite: 1.0.30001520
caniuse-lite: 1.0.30001521
postcss: 8.4.14
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@ -4496,27 +4547,27 @@ packages:
watchpack: 2.4.0
zod: 3.21.4
optionalDependencies:
'@next/swc-darwin-arm64': 13.4.13
'@next/swc-darwin-x64': 13.4.13
'@next/swc-linux-arm64-gnu': 13.4.13
'@next/swc-linux-arm64-musl': 13.4.13
'@next/swc-linux-x64-gnu': 13.4.13
'@next/swc-linux-x64-musl': 13.4.13
'@next/swc-win32-arm64-msvc': 13.4.13
'@next/swc-win32-ia32-msvc': 13.4.13
'@next/swc-win32-x64-msvc': 13.4.13
'@next/swc-darwin-arm64': 13.4.16
'@next/swc-darwin-x64': 13.4.16
'@next/swc-linux-arm64-gnu': 13.4.16
'@next/swc-linux-arm64-musl': 13.4.16
'@next/swc-linux-x64-gnu': 13.4.16
'@next/swc-linux-x64-musl': 13.4.16
'@next/swc-win32-arm64-msvc': 13.4.16
'@next/swc-win32-ia32-msvc': 13.4.16
'@next/swc-win32-x64-msvc': 13.4.16
transitivePeerDependencies:
- '@babel/core'
- babel-plugin-macros
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==}
peerDependencies:
next: ^8.1.1-canary.54 || ^9.0.0 || ^10.0.0-0 || ^11.0.0 || ^12.0.0 || ^13.0.0
dependencies:
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
/no-case@3.0.4:
@ -4793,6 +4844,26 @@ packages:
resolution: {integrity: sha512-YYEs+eauIjDH5nUEGi18EohWE0nV2QbGTqmxQcqgZ/0g+laPCQmuIqq7EBLVi9uim9zMgfJv0QBZEnQ3uHw/Tw==}
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:
resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
@ -4837,13 +4908,13 @@ packages:
resolve: 1.22.4
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==}
engines: {node: '>=14.0.0'}
peerDependencies:
postcss: ^8.0.0
dependencies:
postcss: 8.4.27
postcss: 8.4.28
postcss-value-parser: 4.2.0
read-cache: 1.0.0
resolve: 1.22.4
@ -4859,14 +4930,14 @@ packages:
postcss: 8.4.21
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==}
engines: {node: ^12 || ^14 || >= 16}
peerDependencies:
postcss: ^8.4.21
dependencies:
camelcase-css: 2.0.1
postcss: 8.4.27
postcss: 8.4.28
dev: true
/postcss-load-config@3.1.4(postcss@8.4.21):
@ -4886,7 +4957,7 @@ packages:
yaml: 1.10.2
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==}
engines: {node: '>= 14'}
peerDependencies:
@ -4899,7 +4970,7 @@ packages:
optional: true
dependencies:
lilconfig: 2.1.0
postcss: 8.4.27
postcss: 8.4.28
yaml: 2.3.1
dev: true
@ -4913,13 +4984,13 @@ packages:
postcss-selector-parser: 6.0.13
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==}
engines: {node: '>=12.0'}
peerDependencies:
postcss: ^8.2.14
dependencies:
postcss: 8.4.27
postcss: 8.4.28
postcss-selector-parser: 6.0.13
dev: true
@ -4951,14 +5022,36 @@ packages:
source-map-js: 1.0.2
dev: false
/postcss@8.4.27:
resolution: {integrity: sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==}
/postcss@8.4.28:
resolution: {integrity: sha512-Z7V5j0cq8oEKyejIKfpD8b4eBy9cwW2JWPk0+fB1HOAMsfHbnAXLLS+PfVWlzMSLQaWttKDt607I0XHmpE67Vw==}
engines: {node: ^10 || ^12 || >=14}
dependencies:
nanoid: 3.3.6
picocolors: 1.0.0
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:
resolution: {integrity: sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==}
engines: {node: '>=10'}
@ -5013,10 +5106,6 @@ packages:
resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==}
dev: false
/proxy-from-env@1.1.0:
resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
dev: false
/pump@3.0.0:
resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==}
dependencies:
@ -5192,6 +5281,18 @@ packages:
resolve: 1.22.4
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:
resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==}
@ -5204,14 +5305,15 @@ packages:
functions-have-names: 1.2.3
dev: true
/resend@0.17.2:
resolution: {integrity: sha512-lakm76u4MiIDeMF1s2tCmjtksOhwZOs4WcAXkA7aUTvl+63/h+0h6Q6WnkB8RGtj6GakUhQuUkiZshfXgtIrGw==}
/resend@1.0.0:
resolution: {integrity: sha512-8LEE4gncmcm8bsvxvahZFpFk5hxUrKdagqWoX/MRXVU2YZ9coYxqZDeDYXG9pexz1A694bjE1hiQbBAA+bHAow==}
engines: {node: '>=16'}
dependencies:
'@react-email/render': 0.0.7
axios: 1.4.0
node-fetch: 2.6.12
type-fest: 3.13.0
transitivePeerDependencies:
- debug
- encoding
dev: false
/resolve-alpn@1.2.1:
@ -5340,8 +5442,8 @@ packages:
resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
dev: false
/sharp@0.32.4:
resolution: {integrity: sha512-exUnZewqVZC6UXqXuQ8fyJJv0M968feBi04jb9GcUHrWtkRoAKnbJt8IfwT4NJs7FskArbJ14JAFGVuooszoGg==}
/sharp@0.32.5:
resolution: {integrity: sha512-0dap3iysgDkNaPOaOL4X/0akdu0ma62GcdC2NBQ+93eqpePdDdr2/LM0sFdDSMmN7yS+odyZtPsb7tx/cYBKnQ==}
engines: {node: '>=14.15.0'}
requiresBuild: true
dependencies:
@ -5694,11 +5796,11 @@ packages:
normalize-path: 3.0.0
object-hash: 3.0.0
picocolors: 1.0.0
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: 8.4.28
postcss-import: 15.1.0(postcss@8.4.28)
postcss-js: 4.0.1(postcss@8.4.28)
postcss-load-config: 4.0.1(postcss@8.4.28)
postcss-nested: 6.0.1(postcss@8.4.28)
postcss-selector-parser: 6.0.13
resolve: 1.22.4
sucrase: 3.34.0
@ -6067,6 +6169,33 @@ packages:
is-symbol: 1.0.4
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:
resolution: {integrity: sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==}
engines: {node: '>= 0.4'}
@ -6133,5 +6262,5 @@ packages:
resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==}
dev: false
/zod@3.22.0:
resolution: {integrity: sha512-y5KZY/ssf5n7hCGDGGtcJO/EBJEm5Pa+QQvFBeyMOtnFYOSflalxIFFvdaYevPhePcmcKC4aTbFkCcXN7D0O8Q==}
/zod@3.22.1:
resolution: {integrity: sha512-+qUhAMl414+Elh+fRNtpU+byrwjDFOS1N7NioLY+tSlcADTx4TkCUua/hxJvxwDXcV4397/nZ420jy4n4+3WUg==}

View file

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

View file

@ -17,16 +17,19 @@ export const roomRouter = createTRPCRouter({
})
)
.mutation(async ({ ctx, input }) => {
const room = await ctx.db.insert(rooms).values({
id: createId(),
userId: ctx.auth.userId,
roomName: input.name,
storyName: "First Story!",
scale: "0.5,1,2,3,5,8",
visible: false,
});
const room = await ctx.db
.insert(rooms)
.values({
id: createId(),
userId: ctx.auth.userId,
roomName: input.name,
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) {
await invalidateCache(`kv_roomcount`);
await invalidateCache(`kv_roomlist_${ctx.auth.userId}`);
@ -145,9 +148,10 @@ export const roomRouter = createTRPCRouter({
.filter((item) => item !== "")
.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) {
await publishToChannel(
@ -166,15 +170,12 @@ export const roomRouter = createTRPCRouter({
.mutation(async ({ ctx, input }) => {
const deletedRoom = await ctx.db
.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) {
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_votecount`);
await invalidateCache(`kv_roomlist_${ctx.auth.userId}`);

View file

@ -44,19 +44,23 @@ export const voteRouter = createTRPCRouter({
userId: ctx.auth.userId,
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) {
const vote = await ctx.db.insert(votes).ignore().values({
id: createId(),
value: input.value,
userId: ctx.auth.userId,
roomId: input.roomId,
});
const vote = await ctx.db
.insert(votes)
.values({
id: createId(),
value: input.value,
userId: ctx.auth.userId,
roomId: input.roomId,
})
.returning();
success = vote.rowsAffected > 0;
success = vote.length > 0;
}
if (success) {

View file

@ -1,11 +1,9 @@
import { drizzle } from "drizzle-orm/planetscale-serverless";
import { connect } from "@planetscale/database";
import { neon, neonConfig } from "@neondatabase/serverless";
import { drizzle } from "drizzle-orm/neon-http";
import { env } from "~/env.mjs";
import * as schema from "~/server/schema";
// create the connection
const connection = connect({
url: env.DATABASE_URL,
});
neonConfig.fetchConnectionCache = true;
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 {
timestamp,
mysqlTable,
pgTable,
varchar,
boolean,
json,
} from "drizzle-orm/mysql-core";
} from "drizzle-orm/pg-core";
import { relations } from "drizzle-orm";
export const rooms = mysqlTable("Room", {
export const rooms = pgTable("Room", {
id: varchar("id", { length: 255 }).notNull().primaryKey(),
created_at: timestamp("created_at").defaultNow(),
userId: varchar("userId", { length: 255 }).notNull(),
@ -22,11 +22,13 @@ export const roomsRelations = relations(rooms, ({ many }) => ({
logs: many(logs),
}));
export const votes = mysqlTable("Vote", {
export const votes = pgTable("Vote", {
id: varchar("id", { length: 255 }).notNull().primaryKey(),
created_at: timestamp("created_at").defaultNow(),
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(),
});
@ -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(),
created_at: timestamp("created_at").defaultNow(),
userId: varchar("userId", { length: 255 }).notNull(),
roomId: varchar("roomId", { length: 255 }).notNull(),
userId: varchar("userId", { length: 255 })
.notNull()
.references(() => rooms.id, { onDelete: "cascade" }),
roomId: varchar("roomId", { length: 255 })
.notNull()
.references(() => rooms.id, { onDelete: "cascade" }),
scale: varchar("scale", { length: 255 }),
votes: json("votes"),
roomName: varchar("roomName", { length: 255 }),

View file

@ -10,8 +10,6 @@ export const onUserDeletedHandler = async (
) => {
try {
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" });
} catch (error) {