Code for Chapters 9-10 (#172)

This commit is contained in:
Delba de Oliveira
2023-10-02 15:26:13 +01:00
committed by GitHub
parent 68be8ee164
commit b0d832e2cf
25 changed files with 839 additions and 2231 deletions

123
pnpm-lock.yaml generated
View File

@@ -37,7 +37,7 @@ importers:
version: 4.0.3
next:
specifier: latest
version: 13.5.2(@babel/core@7.22.15)(react-dom@18.2.0)(react@18.2.0)
version: 13.5.3(@babel/core@7.22.15)(react-dom@18.2.0)(react@18.2.0)
react:
specifier: 18.2.0
version: 18.2.0
@@ -55,7 +55,7 @@ importers:
dependencies:
next:
specifier: latest
version: 13.5.2(@babel/core@7.22.15)(react-dom@18.2.0)(react@18.2.0)
version: 13.5.3(@babel/core@7.22.15)(react-dom@18.2.0)(react@18.2.0)
react:
specifier: 18.2.0
version: 18.2.0
@@ -73,7 +73,7 @@ importers:
version: 4.0.3
next:
specifier: latest
version: 13.5.2(@babel/core@7.22.15)(react-dom@18.2.0)(react@18.2.0)
version: 13.5.3(@babel/core@7.22.15)(react-dom@18.2.0)(react@18.2.0)
react:
specifier: 18.2.0
version: 18.2.0
@@ -91,7 +91,7 @@ importers:
dependencies:
next:
specifier: latest
version: 13.5.2(@babel/core@7.22.15)(react-dom@18.2.0)(react@18.2.0)
version: 13.5.3(@babel/core@7.22.15)(react-dom@18.2.0)(react@18.2.0)
react:
specifier: 18.2.0
version: 18.2.0
@@ -109,7 +109,7 @@ importers:
version: 4.0.3
next:
specifier: latest
version: 13.5.2(@babel/core@7.22.15)(react-dom@18.2.0)(react@18.2.0)
version: 13.5.3(@babel/core@7.22.15)(react-dom@18.2.0)(react@18.2.0)
react:
specifier: 18.2.0
version: 18.2.0
@@ -130,7 +130,7 @@ importers:
version: 4.0.3
next:
specifier: latest
version: 13.5.2(@babel/core@7.22.15)(react-dom@18.2.0)(react@18.2.0)
version: 13.5.3(@babel/core@7.22.15)(react-dom@18.2.0)(react@18.2.0)
react:
specifier: 18.2.0
version: 18.2.0
@@ -145,7 +145,7 @@ importers:
version: 4.0.3
next:
specifier: latest
version: 13.5.2(@babel/core@7.22.15)(react-dom@18.2.0)(react@18.2.0)
version: 13.5.3(@babel/core@7.22.15)(react-dom@18.2.0)(react@18.2.0)
react:
specifier: 18.2.0
version: 18.2.0
@@ -157,7 +157,7 @@ importers:
dependencies:
next:
specifier: latest
version: 13.5.2(@babel/core@7.22.15)(react-dom@18.2.0)(react@18.2.0)
version: 13.5.3(@babel/core@7.22.15)(react-dom@18.2.0)(react@18.2.0)
react:
specifier: 18.2.0
version: 18.2.0
@@ -169,7 +169,7 @@ importers:
dependencies:
next:
specifier: latest
version: 13.5.2(@babel/core@7.22.15)(react-dom@18.2.0)(react@18.2.0)
version: 13.5.3(@babel/core@7.22.15)(react-dom@18.2.0)(react@18.2.0)
react:
specifier: 18.2.0
version: 18.2.0
@@ -242,10 +242,10 @@ importers:
version: 2.0.0
next:
specifier: ^13.4.19
version: 13.5.2(@babel/core@7.22.15)(react-dom@18.2.0)(react@18.2.0)
version: 13.5.3(@babel/core@7.22.15)(react-dom@18.2.0)(react@18.2.0)
next-auth:
specifier: ^4.23.1
version: 4.23.1(next@13.5.2)(react-dom@18.2.0)(react@18.2.0)
version: 4.23.1(next@13.5.3)(react-dom@18.2.0)(react@18.2.0)
postcss:
specifier: 8.4.28
version: 8.4.28
@@ -261,6 +261,12 @@ importers:
typescript:
specifier: 5.2.2
version: 5.2.2
use-debounce:
specifier: ^9.0.4
version: 9.0.4(react@18.2.0)
zod:
specifier: ^3.22.2
version: 3.22.2
devDependencies:
'@types/bcrypt':
specifier: ^5.0.0
@@ -279,7 +285,7 @@ importers:
version: 4.17.21
next:
specifier: latest
version: 13.5.2(@babel/core@7.22.15)(react-dom@18.2.0)(react@18.2.0)
version: 13.5.3(@babel/core@7.22.15)(react-dom@18.2.0)(react@18.2.0)
react:
specifier: 18.2.0
version: 18.2.0
@@ -633,8 +639,8 @@ packages:
resolution: {integrity: sha512-FsAT5x0jF2kkhNkKkukhsyYOrRqtSxrEhfliniIq0bwWbuXLgyt3Gv0Ml+b91XwjwArmuP7NxCiGd++GGKdNMQ==}
dev: false
/@next/env@13.5.2:
resolution: {integrity: sha512-dUseBIQVax+XtdJPzhwww4GetTjlkRSsXeQnisIJWBaHsnxYcN2RGzsPHi58D6qnkATjnhuAtQTJmR1hKYQQPg==}
/@next/env@13.5.3:
resolution: {integrity: sha512-X4te86vsbjsB7iO4usY9jLPtZ827Mbx+WcwNBGUOIuswuTAKQtzsuoxc/6KLxCMvogKG795MhrR1LDhYgDvasg==}
dev: false
/@next/eslint-plugin-next@13.4.19:
@@ -652,8 +658,8 @@ packages:
dev: false
optional: true
/@next/swc-darwin-arm64@13.5.2:
resolution: {integrity: sha512-7eAyunAWq6yFwdSQliWMmGhObPpHTesiKxMw4DWVxhm5yLotBj8FCR4PXGkpRP2tf8QhaWuVba+/fyAYggqfQg==}
/@next/swc-darwin-arm64@13.5.3:
resolution: {integrity: sha512-6hiYNJxJmyYvvKGrVThzo4nTcqvqUTA/JvKim7Auaj33NexDqSNwN5YrrQu+QhZJCIpv2tULSHt+lf+rUflLSw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
@@ -670,8 +676,8 @@ packages:
dev: false
optional: true
/@next/swc-darwin-x64@13.5.2:
resolution: {integrity: sha512-WxXYWE7zF1ch8rrNh5xbIWzhMVas6Vbw+9BCSyZvu7gZC5EEiyZNJsafsC89qlaSA7BnmsDXVWQmc+s1feSYbQ==}
/@next/swc-darwin-x64@13.5.3:
resolution: {integrity: sha512-UpBKxu2ob9scbpJyEq/xPgpdrgBgN3aLYlxyGqlYX5/KnwpJpFuIHU2lx8upQQ7L+MEmz+fA1XSgesoK92ppwQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
@@ -688,8 +694,8 @@ packages:
dev: false
optional: true
/@next/swc-linux-arm64-gnu@13.5.2:
resolution: {integrity: sha512-URSwhRYrbj/4MSBjLlefPTK3/tvg95TTm6mRaiZWBB6Za3hpHKi8vSdnCMw5D2aP6k0sQQIEG6Pzcfwm+C5vrg==}
/@next/swc-linux-arm64-gnu@13.5.3:
resolution: {integrity: sha512-5AzM7Yx1Ky+oLY6pHs7tjONTF22JirDPd5Jw/3/NazJ73uGB05NqhGhB4SbeCchg7SlVYVBeRMrMSZwJwq/xoA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
@@ -706,8 +712,8 @@ packages:
dev: false
optional: true
/@next/swc-linux-arm64-musl@13.5.2:
resolution: {integrity: sha512-HefiwAdIygFyNmyVsQeiJp+j8vPKpIRYDlmTlF9/tLdcd3qEL/UEBswa1M7cvO8nHcr27ZTKXz5m7dkd56/Esg==}
/@next/swc-linux-arm64-musl@13.5.3:
resolution: {integrity: sha512-A/C1shbyUhj7wRtokmn73eBksjTM7fFQoY2v/0rTM5wehpkjQRLOXI8WJsag2uLhnZ4ii5OzR1rFPwoD9cvOgA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
@@ -724,8 +730,8 @@ packages:
dev: false
optional: true
/@next/swc-linux-x64-gnu@13.5.2:
resolution: {integrity: sha512-htGVVroW0tdHgMYwKWkxWvVoG2RlAdDXRO1RQxYDvOBQsaV0nZsgKkw0EJJJ3urTYnwKskn/MXm305cOgRxD2w==}
/@next/swc-linux-x64-gnu@13.5.3:
resolution: {integrity: sha512-FubPuw/Boz8tKkk+5eOuDHOpk36F80rbgxlx4+xty/U71e3wZZxVYHfZXmf0IRToBn1Crb8WvLM9OYj/Ur815g==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
@@ -742,8 +748,8 @@ packages:
dev: false
optional: true
/@next/swc-linux-x64-musl@13.5.2:
resolution: {integrity: sha512-UBD333GxbHVGi7VDJPPDD1bKnx30gn2clifNJbla7vo5nmBV+x5adyARg05RiT9amIpda6yzAEEUu+s774ldkw==}
/@next/swc-linux-x64-musl@13.5.3:
resolution: {integrity: sha512-DPw8nFuM1uEpbX47tM3wiXIR0Qa+atSzs9Q3peY1urkhofx44o7E1svnq+a5Q0r8lAcssLrwiM+OyJJgV/oj7g==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
@@ -760,8 +766,8 @@ packages:
dev: false
optional: true
/@next/swc-win32-arm64-msvc@13.5.2:
resolution: {integrity: sha512-Em9ApaSFIQnWXRT3K6iFnr9uBXymixLc65Xw4eNt7glgH0eiXpg+QhjmgI2BFyc7k4ZIjglfukt9saNpEyolWA==}
/@next/swc-win32-arm64-msvc@13.5.3:
resolution: {integrity: sha512-zBPSP8cHL51Gub/YV8UUePW7AVGukp2D8JU93IHbVDu2qmhFAn9LWXiOOLKplZQKxnIPUkJTQAJDCWBWU4UWUA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
@@ -778,8 +784,8 @@ packages:
dev: false
optional: true
/@next/swc-win32-ia32-msvc@13.5.2:
resolution: {integrity: sha512-TBACBvvNYU+87X0yklSuAseqdpua8m/P79P0SG1fWUvWDDA14jASIg7kr86AuY5qix47nZLEJ5WWS0L20jAUNw==}
/@next/swc-win32-ia32-msvc@13.5.3:
resolution: {integrity: sha512-ONcL/lYyGUj4W37D4I2I450SZtSenmFAvapkJQNIJhrPMhzDU/AdfLkW98NvH1D2+7FXwe7yclf3+B7v28uzBQ==}
engines: {node: '>= 10'}
cpu: [ia32]
os: [win32]
@@ -796,8 +802,8 @@ packages:
dev: false
optional: true
/@next/swc-win32-x64-msvc@13.5.2:
resolution: {integrity: sha512-LfTHt+hTL8w7F9hnB3H4nRasCzLD/fP+h4/GUVBTxrkMJOnh/7OZ0XbYDKO/uuWwryJS9kZjhxcruBiYwc5UDw==}
/@next/swc-win32-x64-msvc@13.5.3:
resolution: {integrity: sha512-2Vz2tYWaLqJvLcWbbTlJ5k9AN6JD7a5CN2pAeIzpbecK8ZF/yobA39cXtv6e+Z8c5UJuVOmaTldEAIxvsIux/Q==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
@@ -3687,7 +3693,7 @@ packages:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
dev: true
/next-auth@4.23.1(next@13.5.2)(react-dom@18.2.0)(react@18.2.0):
/next-auth@4.23.1(next@13.5.3)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-mL083z8KgRtlrIV6CDca2H1kduWJuK/3pTS0Fe2og15KOm4v2kkLGdSDfc2g+019aEBrJUT0pPW2Xx42ImN1WA==}
peerDependencies:
next: ^12.2.5 || ^13
@@ -3702,11 +3708,11 @@ packages:
'@panva/hkdf': 1.1.1
cookie: 0.5.0
jose: 4.14.6
next: 13.5.2(@babel/core@7.22.15)(react-dom@18.2.0)(react@18.2.0)
next: 13.5.3(@babel/core@7.22.15)(react-dom@18.2.0)(react@18.2.0)
oauth: 0.9.15
openid-client: 5.5.0
preact: 10.17.1
preact-render-to-string: 5.2.6(preact@10.17.1)
preact: 10.18.0
preact-render-to-string: 5.2.6(preact@10.18.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
uuid: 8.3.2
@@ -3752,8 +3758,8 @@ packages:
- babel-plugin-macros
dev: false
/next@13.5.2(@babel/core@7.22.15)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-vog4UhUaMYAzeqfiAAmgB/QWLW7p01/sg+2vn6bqc/CxHFYizMzLv6gjxKzl31EVFkfl/F+GbxlKizlkTE9RdA==}
/next@13.5.3(@babel/core@7.22.15)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-4Nt4HRLYDW/yRpJ/QR2t1v63UOMS55A38dnWv3UDOWGezuY0ZyFO1ABNbD7mulVzs9qVhgy2+ppjdsANpKP1mg==}
engines: {node: '>=16.14.0'}
hasBin: true
peerDependencies:
@@ -3767,7 +3773,7 @@ packages:
sass:
optional: true
dependencies:
'@next/env': 13.5.2
'@next/env': 13.5.3
'@swc/helpers': 0.5.2
busboy: 1.6.0
caniuse-lite: 1.0.30001527
@@ -3778,15 +3784,15 @@ packages:
watchpack: 2.4.0
zod: 3.21.4
optionalDependencies:
'@next/swc-darwin-arm64': 13.5.2
'@next/swc-darwin-x64': 13.5.2
'@next/swc-linux-arm64-gnu': 13.5.2
'@next/swc-linux-arm64-musl': 13.5.2
'@next/swc-linux-x64-gnu': 13.5.2
'@next/swc-linux-x64-musl': 13.5.2
'@next/swc-win32-arm64-msvc': 13.5.2
'@next/swc-win32-ia32-msvc': 13.5.2
'@next/swc-win32-x64-msvc': 13.5.2
'@next/swc-darwin-arm64': 13.5.3
'@next/swc-darwin-x64': 13.5.3
'@next/swc-linux-arm64-gnu': 13.5.3
'@next/swc-linux-arm64-musl': 13.5.3
'@next/swc-linux-x64-gnu': 13.5.3
'@next/swc-linux-x64-musl': 13.5.3
'@next/swc-win32-arm64-msvc': 13.5.3
'@next/swc-win32-ia32-msvc': 13.5.3
'@next/swc-win32-x64-msvc': 13.5.3
transitivePeerDependencies:
- '@babel/core'
- babel-plugin-macros
@@ -4236,17 +4242,17 @@ packages:
xtend: 4.0.2
dev: false
/preact-render-to-string@5.2.6(preact@10.17.1):
/preact-render-to-string@5.2.6(preact@10.18.0):
resolution: {integrity: sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw==}
peerDependencies:
preact: '>=10'
dependencies:
preact: 10.17.1
preact: 10.18.0
pretty-format: 3.8.0
dev: false
/preact@10.17.1:
resolution: {integrity: sha512-X9BODrvQ4Ekwv9GURm9AKAGaomqXmip7NQTZgY7gcNmr7XE83adOMJvd3N42id1tMFU7ojiynRsYnY6/BRFxLA==}
/preact@10.18.0:
resolution: {integrity: sha512-O4dGFmErPd3RNVDvXmCbOW6hetnve6vYtjx5qf51mCUmBS96s66MrNQkEII5UThDGoNF7953ptA+aNupiDxVeg==}
dev: false
/prelude-ls@1.2.1:
@@ -5192,6 +5198,15 @@ packages:
punycode: 2.3.0
dev: true
/use-debounce@9.0.4(react@18.2.0):
resolution: {integrity: sha512-6X8H/mikbrt0XE8e+JXRtZ8yYVvKkdYRfmIhWZYsP8rcNs9hk3APV8Ua2mFkKRLcJKVdnX2/Vwrmg2GWKUQEaQ==}
engines: {node: '>= 10.0.0'}
peerDependencies:
react: '>=16.8.0'
dependencies:
react: 18.2.0
dev: false
/utf-8-validate@6.0.3:
resolution: {integrity: sha512-uIuGf9TWQ/y+0Lp+KGZCMuJWc3N9BHA+l/UmHd/oUHwJJDeysyTRxNQVkbzsIWfGFbRe3OcgML/i0mvVRPOyDA==}
engines: {node: '>=6.14.2'}
@@ -5385,6 +5400,10 @@ packages:
resolution: {integrity: sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==}
dev: false
/zod@3.22.2:
resolution: {integrity: sha512-wvWkphh5WQsJbVk1tbx1l1Ly4yg+XecD+Mq280uBGt9wa5BKSWf4Mhp6GmrkPixhMxmabYY7RbzlwVP32pbGCg==}
dev: false
/zwitch@2.0.4:
resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==}
dev: false