├── .eslintrc.json ├── .gitignore ├── README.md ├── next.config.js ├── package.json ├── pnpm-lock.yaml ├── postcss.config.js ├── public └── Clerk-Image.png ├── src ├── app │ ├── api │ │ ├── stripe-payment │ │ │ └── route.ts │ │ └── stripe-webhook │ │ │ └── route.ts │ ├── favicon.ico │ ├── globals.css │ ├── layout.tsx │ ├── members │ │ └── page.tsx │ └── page.tsx ├── components │ └── stripe-payment.tsx ├── middleware.ts └── types │ └── global.d.ts ├── tailwind.config.ts └── tsconfig.json /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "next/core-web-vitals" 3 | } 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # next.js 12 | /.next/ 13 | /out/ 14 | 15 | # production 16 | /build 17 | 18 | # misc 19 | .DS_Store 20 | *.pem 21 | 22 | # debug 23 | npm-debug.log* 24 | yarn-debug.log* 25 | yarn-error.log* 26 | 27 | # local env files 28 | .env*.local 29 | 30 | # vercel 31 | .vercel 32 | 33 | # typescript 34 | *.tsbuildinfo 35 | next-env.d.ts 36 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | This repository is intended as an example in the blog post, [Exploring Clerk Metadata & Stripe Webhooks](https://clerk.com/blog/exploring-clerk-metadata-stripe-webhooks). 2 | 3 | 1. **Fork & Clone the GitHub Repository:** 4 | - [Follow these steps](https://docs.github.com/en/get-started/quickstart/fork-a-repo#forking-a-repository) 5 | 6 | 2. **Navigate to the Repository:** 7 | - Use the terminal to change directory to the cloned repository: 8 | ``` 9 | cd stripe-with-webhooks-and-metadata 10 | ``` 11 | 12 | 3. **Install Dependencies:** 13 | - Use your preferred package manager (npm, Yarn, or pnpm) to install the project dependencies: 14 | ``` 15 | pnpm install # or yarn install or npm install, just be sure to delete the .lock file 16 | ``` 17 | 18 | 4. **Explore the Repository:** 19 | - Once the dependencies are installed, explore the repository's content. 20 | -------------------------------------------------------------------------------- /next.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = {} 3 | 4 | module.exports = nextConfig 5 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "stripe-with-webhooks-and-metadata", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "next dev", 7 | "build": "next build", 8 | "start": "next start", 9 | "lint": "next lint" 10 | }, 11 | "dependencies": { 12 | "@clerk/nextjs": "^4.26.1", 13 | "@stripe/react-stripe-js": "^2.3.1", 14 | "@stripe/stripe-js": "^2.1.10", 15 | "next": "14.0.0", 16 | "react": "^18", 17 | "react-dom": "^18", 18 | "stripe": "^14.2.0" 19 | }, 20 | "devDependencies": { 21 | "@types/node": "^20", 22 | "@types/react": "^18", 23 | "@types/react-dom": "^18", 24 | "autoprefixer": "^10", 25 | "eslint": "^8", 26 | "eslint-config-next": "13.5.6", 27 | "postcss": "^8", 28 | "tailwindcss": "^3", 29 | "typescript": "^5" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '6.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | dependencies: 8 | '@clerk/nextjs': 9 | specifier: ^4.26.1 10 | version: 4.26.1(next@14.0.0)(react-dom@18.2.0)(react@18.2.0) 11 | '@stripe/react-stripe-js': 12 | specifier: ^2.3.1 13 | version: 2.3.1(@stripe/stripe-js@2.1.10)(react-dom@18.2.0)(react@18.2.0) 14 | '@stripe/stripe-js': 15 | specifier: ^2.1.10 16 | version: 2.1.10 17 | next: 18 | specifier: 14.0.0 19 | version: 14.0.0(react-dom@18.2.0)(react@18.2.0) 20 | react: 21 | specifier: ^18 22 | version: 18.2.0 23 | react-dom: 24 | specifier: ^18 25 | version: 18.2.0(react@18.2.0) 26 | stripe: 27 | specifier: ^14.2.0 28 | version: 14.2.0 29 | 30 | devDependencies: 31 | '@types/node': 32 | specifier: ^20 33 | version: 20.8.7 34 | '@types/react': 35 | specifier: ^18 36 | version: 18.2.31 37 | '@types/react-dom': 38 | specifier: ^18 39 | version: 18.2.14 40 | autoprefixer: 41 | specifier: ^10 42 | version: 10.4.16(postcss@8.4.31) 43 | eslint: 44 | specifier: ^8 45 | version: 8.52.0 46 | eslint-config-next: 47 | specifier: 13.5.6 48 | version: 13.5.6(eslint@8.52.0)(typescript@5.2.2) 49 | postcss: 50 | specifier: ^8 51 | version: 8.4.31 52 | tailwindcss: 53 | specifier: ^3 54 | version: 3.3.3 55 | typescript: 56 | specifier: ^5 57 | version: 5.2.2 58 | 59 | packages: 60 | 61 | /@aashutoshrathi/word-wrap@1.2.6: 62 | resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==} 63 | engines: {node: '>=0.10.0'} 64 | dev: true 65 | 66 | /@alloc/quick-lru@5.2.0: 67 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} 68 | engines: {node: '>=10'} 69 | dev: true 70 | 71 | /@babel/runtime@7.23.2: 72 | resolution: {integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==} 73 | engines: {node: '>=6.9.0'} 74 | dependencies: 75 | regenerator-runtime: 0.14.0 76 | dev: true 77 | 78 | /@clerk/backend@0.32.1(react@18.2.0): 79 | resolution: {integrity: sha512-ZH3Mez3f9SZwjpRbC1oaw3+q1+jXkF02HpUB+3vH2+PNxdY+AJ0MW4ACtJhIMNqeY8zAEKzYKMpuGsI+3NVyOA==} 80 | engines: {node: '>=14'} 81 | dependencies: 82 | '@clerk/shared': 1.0.1(react@18.2.0) 83 | '@clerk/types': 3.57.0 84 | '@peculiar/webcrypto': 1.4.1 85 | '@types/node': 16.18.6 86 | cookie: 0.5.0 87 | deepmerge: 4.2.2 88 | node-fetch-native: 1.0.1 89 | snakecase-keys: 5.4.4 90 | tslib: 2.4.1 91 | transitivePeerDependencies: 92 | - react 93 | dev: false 94 | 95 | /@clerk/clerk-react@4.27.1(react@18.2.0): 96 | resolution: {integrity: sha512-LAMcMFn6yLlzLKtyrixZtBYhtTNpjhEunbcPb1XxFAG6iNuN4dX5AAxWli4cstcZ+Q0C9O9zHIt0Qb6J3Arcng==} 97 | engines: {node: '>=14'} 98 | peerDependencies: 99 | react: '>=16' 100 | dependencies: 101 | '@clerk/shared': 1.0.1(react@18.2.0) 102 | '@clerk/types': 3.57.0 103 | react: 18.2.0 104 | tslib: 2.4.1 105 | dev: false 106 | 107 | /@clerk/clerk-sdk-node@4.12.18(react@18.2.0): 108 | resolution: {integrity: sha512-uFmVLL1qFwY4habJD4gKfmSrqqE31T/ILkj+VbXWeg5hrnO4xrueQmUGanV8dcyNr5uM3q9TbqGOjbAI5Su0Ig==} 109 | engines: {node: '>=14'} 110 | dependencies: 111 | '@clerk/backend': 0.32.1(react@18.2.0) 112 | '@clerk/shared': 1.0.1(react@18.2.0) 113 | '@clerk/types': 3.57.0 114 | '@types/cookies': 0.7.7 115 | '@types/express': 4.17.14 116 | '@types/node-fetch': 2.6.2 117 | camelcase-keys: 6.2.2 118 | snakecase-keys: 3.2.1 119 | tslib: 2.4.1 120 | transitivePeerDependencies: 121 | - react 122 | dev: false 123 | 124 | /@clerk/nextjs@4.26.1(next@14.0.0)(react-dom@18.2.0)(react@18.2.0): 125 | resolution: {integrity: sha512-2XCgH+H80uyIb3iBQMxBmCYUwH9Eij99aJcxd04p60fYCkzNYJjtxbAJTmX9evwSKRRGAKGCxa3ZwXoprDCROA==} 126 | engines: {node: '>=14'} 127 | peerDependencies: 128 | next: '>=10' 129 | react: ^17.0.2 || ^18.0.0-0 130 | react-dom: ^17.0.2 || ^18.0.0-0 131 | dependencies: 132 | '@clerk/backend': 0.32.1(react@18.2.0) 133 | '@clerk/clerk-react': 4.27.1(react@18.2.0) 134 | '@clerk/clerk-sdk-node': 4.12.18(react@18.2.0) 135 | '@clerk/shared': 1.0.1(react@18.2.0) 136 | '@clerk/types': 3.57.0 137 | next: 14.0.0(react-dom@18.2.0)(react@18.2.0) 138 | path-to-regexp: 6.2.1 139 | react: 18.2.0 140 | react-dom: 18.2.0(react@18.2.0) 141 | tslib: 2.4.1 142 | dev: false 143 | 144 | /@clerk/shared@1.0.1(react@18.2.0): 145 | resolution: {integrity: sha512-jUmDlU9FYJi1AhCDkyoI0alh3L/gXpw9HzuB49uiqtU8pdCtjJNLHE5EY7mfHoGP5DdCZlmApzC+HyCamyOUVA==} 146 | peerDependencies: 147 | react: '>=16' 148 | peerDependenciesMeta: 149 | react: 150 | optional: true 151 | dependencies: 152 | glob-to-regexp: 0.4.1 153 | js-cookie: 3.0.1 154 | react: 18.2.0 155 | swr: 2.2.0(react@18.2.0) 156 | dev: false 157 | 158 | /@clerk/types@3.57.0: 159 | resolution: {integrity: sha512-i+XqgqRbcMn5gMwWGiA3W6lCTSDYdonDAgoJgNyRemQg7Zesnbd4OoJZfqyW6vN3wvD9Bl+gMb7gQ3VquNWUOA==} 160 | engines: {node: '>=14'} 161 | dependencies: 162 | csstype: 3.1.1 163 | dev: false 164 | 165 | /@eslint-community/eslint-utils@4.4.0(eslint@8.52.0): 166 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} 167 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 168 | peerDependencies: 169 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 170 | dependencies: 171 | eslint: 8.52.0 172 | eslint-visitor-keys: 3.4.3 173 | dev: true 174 | 175 | /@eslint-community/regexpp@4.9.1: 176 | resolution: {integrity: sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA==} 177 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 178 | dev: true 179 | 180 | /@eslint/eslintrc@2.1.2: 181 | resolution: {integrity: sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==} 182 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 183 | dependencies: 184 | ajv: 6.12.6 185 | debug: 4.3.4 186 | espree: 9.6.1 187 | globals: 13.23.0 188 | ignore: 5.2.4 189 | import-fresh: 3.3.0 190 | js-yaml: 4.1.0 191 | minimatch: 3.1.2 192 | strip-json-comments: 3.1.1 193 | transitivePeerDependencies: 194 | - supports-color 195 | dev: true 196 | 197 | /@eslint/js@8.52.0: 198 | resolution: {integrity: sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==} 199 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 200 | dev: true 201 | 202 | /@humanwhocodes/config-array@0.11.13: 203 | resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==} 204 | engines: {node: '>=10.10.0'} 205 | dependencies: 206 | '@humanwhocodes/object-schema': 2.0.1 207 | debug: 4.3.4 208 | minimatch: 3.1.2 209 | transitivePeerDependencies: 210 | - supports-color 211 | dev: true 212 | 213 | /@humanwhocodes/module-importer@1.0.1: 214 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 215 | engines: {node: '>=12.22'} 216 | dev: true 217 | 218 | /@humanwhocodes/object-schema@2.0.1: 219 | resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} 220 | dev: true 221 | 222 | /@jridgewell/gen-mapping@0.3.3: 223 | resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} 224 | engines: {node: '>=6.0.0'} 225 | dependencies: 226 | '@jridgewell/set-array': 1.1.2 227 | '@jridgewell/sourcemap-codec': 1.4.15 228 | '@jridgewell/trace-mapping': 0.3.20 229 | dev: true 230 | 231 | /@jridgewell/resolve-uri@3.1.1: 232 | resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} 233 | engines: {node: '>=6.0.0'} 234 | dev: true 235 | 236 | /@jridgewell/set-array@1.1.2: 237 | resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} 238 | engines: {node: '>=6.0.0'} 239 | dev: true 240 | 241 | /@jridgewell/sourcemap-codec@1.4.15: 242 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 243 | dev: true 244 | 245 | /@jridgewell/trace-mapping@0.3.20: 246 | resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==} 247 | dependencies: 248 | '@jridgewell/resolve-uri': 3.1.1 249 | '@jridgewell/sourcemap-codec': 1.4.15 250 | dev: true 251 | 252 | /@next/env@14.0.0: 253 | resolution: {integrity: sha512-cIKhxkfVELB6hFjYsbtEeTus2mwrTC+JissfZYM0n+8Fv+g8ucUfOlm3VEDtwtwydZ0Nuauv3bl0qF82nnCAqA==} 254 | dev: false 255 | 256 | /@next/eslint-plugin-next@13.5.6: 257 | resolution: {integrity: sha512-ng7pU/DDsxPgT6ZPvuprxrkeew3XaRf4LAT4FabaEO/hAbvVx4P7wqnqdbTdDn1kgTvsI4tpIgT4Awn/m0bGbg==} 258 | dependencies: 259 | glob: 7.1.7 260 | dev: true 261 | 262 | /@next/swc-darwin-arm64@14.0.0: 263 | resolution: {integrity: sha512-HQKi159jCz4SRsPesVCiNN6tPSAFUkOuSkpJsqYTIlbHLKr1mD6be/J0TvWV6fwJekj81bZV9V/Tgx3C2HO9lA==} 264 | engines: {node: '>= 10'} 265 | cpu: [arm64] 266 | os: [darwin] 267 | requiresBuild: true 268 | dev: false 269 | optional: true 270 | 271 | /@next/swc-darwin-x64@14.0.0: 272 | resolution: {integrity: sha512-4YyQLMSaCgX/kgC1jjF3s3xSoBnwHuDhnF6WA1DWNEYRsbOOPWjcYhv8TKhRe2ApdOam+VfQSffC4ZD+X4u1Cg==} 273 | engines: {node: '>= 10'} 274 | cpu: [x64] 275 | os: [darwin] 276 | requiresBuild: true 277 | dev: false 278 | optional: true 279 | 280 | /@next/swc-linux-arm64-gnu@14.0.0: 281 | resolution: {integrity: sha512-io7fMkJ28Glj7SH8yvnlD6naIhRDnDxeE55CmpQkj3+uaA2Hko6WGY2pT5SzpQLTnGGnviK85cy8EJ2qsETj/g==} 282 | engines: {node: '>= 10'} 283 | cpu: [arm64] 284 | os: [linux] 285 | requiresBuild: true 286 | dev: false 287 | optional: true 288 | 289 | /@next/swc-linux-arm64-musl@14.0.0: 290 | resolution: {integrity: sha512-nC2h0l1Jt8LEzyQeSs/BKpXAMe0mnHIMykYALWaeddTqCv5UEN8nGO3BG8JAqW/Y8iutqJsaMe2A9itS0d/r8w==} 291 | engines: {node: '>= 10'} 292 | cpu: [arm64] 293 | os: [linux] 294 | requiresBuild: true 295 | dev: false 296 | optional: true 297 | 298 | /@next/swc-linux-x64-gnu@14.0.0: 299 | resolution: {integrity: sha512-Wf+WjXibJQ7hHXOdNOmSMW5bxeJHVf46Pwb3eLSD2L76NrytQlif9NH7JpHuFlYKCQGfKfgSYYre5rIfmnSwQw==} 300 | engines: {node: '>= 10'} 301 | cpu: [x64] 302 | os: [linux] 303 | requiresBuild: true 304 | dev: false 305 | optional: true 306 | 307 | /@next/swc-linux-x64-musl@14.0.0: 308 | resolution: {integrity: sha512-WTZb2G7B+CTsdigcJVkRxfcAIQj7Lf0ipPNRJ3vlSadU8f0CFGv/ST+sJwF5eSwIe6dxKoX0DG6OljDBaad+rg==} 309 | engines: {node: '>= 10'} 310 | cpu: [x64] 311 | os: [linux] 312 | requiresBuild: true 313 | dev: false 314 | optional: true 315 | 316 | /@next/swc-win32-arm64-msvc@14.0.0: 317 | resolution: {integrity: sha512-7R8/x6oQODmNpnWVW00rlWX90sIlwluJwcvMT6GXNIBOvEf01t3fBg0AGURNKdTJg2xNuP7TyLchCL7Lh2DTiw==} 318 | engines: {node: '>= 10'} 319 | cpu: [arm64] 320 | os: [win32] 321 | requiresBuild: true 322 | dev: false 323 | optional: true 324 | 325 | /@next/swc-win32-ia32-msvc@14.0.0: 326 | resolution: {integrity: sha512-RLK1nELvhCnxaWPF07jGU4x3tjbyx2319q43loZELqF0+iJtKutZ+Lk8SVmf/KiJkYBc7Cragadz7hb3uQvz4g==} 327 | engines: {node: '>= 10'} 328 | cpu: [ia32] 329 | os: [win32] 330 | requiresBuild: true 331 | dev: false 332 | optional: true 333 | 334 | /@next/swc-win32-x64-msvc@14.0.0: 335 | resolution: {integrity: sha512-g6hLf1SUko+hnnaywQQZzzb3BRecQsoKkF3o/C+F+dOA4w/noVAJngUVkfwF0+2/8FzNznM7ofM6TGZO9svn7w==} 336 | engines: {node: '>= 10'} 337 | cpu: [x64] 338 | os: [win32] 339 | requiresBuild: true 340 | dev: false 341 | optional: true 342 | 343 | /@nodelib/fs.scandir@2.1.5: 344 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 345 | engines: {node: '>= 8'} 346 | dependencies: 347 | '@nodelib/fs.stat': 2.0.5 348 | run-parallel: 1.2.0 349 | dev: true 350 | 351 | /@nodelib/fs.stat@2.0.5: 352 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 353 | engines: {node: '>= 8'} 354 | dev: true 355 | 356 | /@nodelib/fs.walk@1.2.8: 357 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 358 | engines: {node: '>= 8'} 359 | dependencies: 360 | '@nodelib/fs.scandir': 2.1.5 361 | fastq: 1.15.0 362 | dev: true 363 | 364 | /@peculiar/asn1-schema@2.3.8: 365 | resolution: {integrity: sha512-ULB1XqHKx1WBU/tTFIA+uARuRoBVZ4pNdOA878RDrRbBfBGcSzi5HBkdScC6ZbHn8z7L8gmKCgPC1LHRrP46tA==} 366 | dependencies: 367 | asn1js: 3.0.5 368 | pvtsutils: 1.3.5 369 | tslib: 2.6.2 370 | dev: false 371 | 372 | /@peculiar/json-schema@1.1.12: 373 | resolution: {integrity: sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==} 374 | engines: {node: '>=8.0.0'} 375 | dependencies: 376 | tslib: 2.6.2 377 | dev: false 378 | 379 | /@peculiar/webcrypto@1.4.1: 380 | resolution: {integrity: sha512-eK4C6WTNYxoI7JOabMoZICiyqRRtJB220bh0Mbj5RwRycleZf9BPyZoxsTvpP0FpmVS2aS13NKOuh5/tN3sIRw==} 381 | engines: {node: '>=10.12.0'} 382 | dependencies: 383 | '@peculiar/asn1-schema': 2.3.8 384 | '@peculiar/json-schema': 1.1.12 385 | pvtsutils: 1.3.5 386 | tslib: 2.6.2 387 | webcrypto-core: 1.7.7 388 | dev: false 389 | 390 | /@rushstack/eslint-patch@1.5.1: 391 | resolution: {integrity: sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==} 392 | dev: true 393 | 394 | /@stripe/react-stripe-js@2.3.1(@stripe/stripe-js@2.1.10)(react-dom@18.2.0)(react@18.2.0): 395 | resolution: {integrity: sha512-vXiwcG2ZjAF4AezjP7DJ8jiwxfCWCen/X2rBhyXaKrfQ7+pwmXhsoUlKRa0eLWioY1oelOQOafauNUiwTwFHgQ==} 396 | peerDependencies: 397 | '@stripe/stripe-js': ^1.44.1 || ^2.0.0 398 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 399 | react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 400 | dependencies: 401 | '@stripe/stripe-js': 2.1.10 402 | prop-types: 15.8.1 403 | react: 18.2.0 404 | react-dom: 18.2.0(react@18.2.0) 405 | dev: false 406 | 407 | /@stripe/stripe-js@2.1.10: 408 | resolution: {integrity: sha512-h79zhwvxAJVAvtVjtMoz++DtwI7GdcEItmTC0P2gciZoFUeAO6XX9DL+UXm9uADiEaUvTKqrExYwtBTlMYAaPA==} 409 | dev: false 410 | 411 | /@swc/helpers@0.5.2: 412 | resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} 413 | dependencies: 414 | tslib: 2.6.2 415 | dev: false 416 | 417 | /@types/body-parser@1.19.4: 418 | resolution: {integrity: sha512-N7UDG0/xiPQa2D/XrVJXjkWbpqHCd2sBaB32ggRF2l83RhPfamgKGF8gwwqyksS95qUS5ZYF9aF+lLPRlwI2UA==} 419 | dependencies: 420 | '@types/connect': 3.4.37 421 | '@types/node': 20.8.7 422 | dev: false 423 | 424 | /@types/connect@3.4.37: 425 | resolution: {integrity: sha512-zBUSRqkfZ59OcwXon4HVxhx5oWCJmc0OtBTK05M+p0dYjgN6iTwIL2T/WbsQZrEsdnwaF9cWQ+azOnpPvIqY3Q==} 426 | dependencies: 427 | '@types/node': 20.8.7 428 | dev: false 429 | 430 | /@types/cookies@0.7.7: 431 | resolution: {integrity: sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA==} 432 | dependencies: 433 | '@types/connect': 3.4.37 434 | '@types/express': 4.17.14 435 | '@types/keygrip': 1.0.4 436 | '@types/node': 20.8.7 437 | dev: false 438 | 439 | /@types/express-serve-static-core@4.17.39: 440 | resolution: {integrity: sha512-BiEUfAiGCOllomsRAZOiMFP7LAnrifHpt56pc4Z7l9K6ACyN06Ns1JLMBxwkfLOjJRlSf06NwWsT7yzfpaVpyQ==} 441 | dependencies: 442 | '@types/node': 20.8.7 443 | '@types/qs': 6.9.9 444 | '@types/range-parser': 1.2.6 445 | '@types/send': 0.17.3 446 | dev: false 447 | 448 | /@types/express@4.17.14: 449 | resolution: {integrity: sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==} 450 | dependencies: 451 | '@types/body-parser': 1.19.4 452 | '@types/express-serve-static-core': 4.17.39 453 | '@types/qs': 6.9.9 454 | '@types/serve-static': 1.15.4 455 | dev: false 456 | 457 | /@types/http-errors@2.0.3: 458 | resolution: {integrity: sha512-pP0P/9BnCj1OVvQR2lF41EkDG/lWWnDyA203b/4Fmi2eTyORnBtcDoKDwjWQthELrBvWkMOrvSOnZ8OVlW6tXA==} 459 | dev: false 460 | 461 | /@types/json5@0.0.29: 462 | resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} 463 | dev: true 464 | 465 | /@types/keygrip@1.0.4: 466 | resolution: {integrity: sha512-/tjWYD8StMrINelsrHNmpXceo9s3/Y22AzePH1qCvXIgmz/aQp2YFFr6HqhNQVIOdcvaVyp5GS+yjHGuF7Rwsg==} 467 | dev: false 468 | 469 | /@types/mime@1.3.4: 470 | resolution: {integrity: sha512-1Gjee59G25MrQGk8bsNvC6fxNiRgUlGn2wlhGf95a59DrprnnHk80FIMMFG9XHMdrfsuA119ht06QPDXA1Z7tw==} 471 | dev: false 472 | 473 | /@types/mime@3.0.3: 474 | resolution: {integrity: sha512-i8MBln35l856k5iOhKk2XJ4SeAWg75mLIpZB4v6imOagKL6twsukBZGDMNhdOVk7yRFTMPpfILocMos59Q1otQ==} 475 | dev: false 476 | 477 | /@types/node-fetch@2.6.2: 478 | resolution: {integrity: sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==} 479 | dependencies: 480 | '@types/node': 20.8.7 481 | form-data: 3.0.1 482 | dev: false 483 | 484 | /@types/node@16.18.6: 485 | resolution: {integrity: sha512-vmYJF0REqDyyU0gviezF/KHq/fYaUbFhkcNbQCuPGFQj6VTbXuHZoxs/Y7mutWe73C8AC6l9fFu8mSYiBAqkGA==} 486 | dev: false 487 | 488 | /@types/node@20.8.7: 489 | resolution: {integrity: sha512-21TKHHh3eUHIi2MloeptJWALuCu5H7HQTdTrWIFReA8ad+aggoX+lRes3ex7/FtpC+sVUpFMQ+QTfYr74mruiQ==} 490 | dependencies: 491 | undici-types: 5.25.3 492 | 493 | /@types/prop-types@15.7.9: 494 | resolution: {integrity: sha512-n1yyPsugYNSmHgxDFjicaI2+gCNjsBck8UX9kuofAKlc0h1bL+20oSF72KeNaW2DUlesbEVCFgyV2dPGTiY42g==} 495 | dev: true 496 | 497 | /@types/qs@6.9.9: 498 | resolution: {integrity: sha512-wYLxw35euwqGvTDx6zfY1vokBFnsK0HNrzc6xNHchxfO2hpuRg74GbkEW7e3sSmPvj0TjCDT1VCa6OtHXnubsg==} 499 | dev: false 500 | 501 | /@types/range-parser@1.2.6: 502 | resolution: {integrity: sha512-+0autS93xyXizIYiyL02FCY8N+KkKPhILhcUSA276HxzreZ16kl+cmwvV2qAM/PuCCwPXzOXOWhiPcw20uSFcA==} 503 | dev: false 504 | 505 | /@types/react-dom@18.2.14: 506 | resolution: {integrity: sha512-V835xgdSVmyQmI1KLV2BEIUgqEuinxp9O4G6g3FqO/SqLac049E53aysv0oEFD2kHfejeKU+ZqL2bcFWj9gLAQ==} 507 | dependencies: 508 | '@types/react': 18.2.31 509 | dev: true 510 | 511 | /@types/react@18.2.31: 512 | resolution: {integrity: sha512-c2UnPv548q+5DFh03y8lEDeMfDwBn9G3dRwfkrxQMo/dOtRHUUO57k6pHvBIfH/VF4Nh+98mZ5aaSe+2echD5g==} 513 | dependencies: 514 | '@types/prop-types': 15.7.9 515 | '@types/scheduler': 0.16.5 516 | csstype: 3.1.2 517 | dev: true 518 | 519 | /@types/scheduler@0.16.5: 520 | resolution: {integrity: sha512-s/FPdYRmZR8SjLWGMCuax7r3qCWQw9QKHzXVukAuuIJkXkDRwp+Pu5LMIVFi0Fxbav35WURicYr8u1QsoybnQw==} 521 | dev: true 522 | 523 | /@types/send@0.17.3: 524 | resolution: {integrity: sha512-/7fKxvKUoETxjFUsuFlPB9YndePpxxRAOfGC/yJdc9kTjTeP5kRCTzfnE8kPUKCeyiyIZu0YQ76s50hCedI1ug==} 525 | dependencies: 526 | '@types/mime': 1.3.4 527 | '@types/node': 20.8.7 528 | dev: false 529 | 530 | /@types/serve-static@1.15.4: 531 | resolution: {integrity: sha512-aqqNfs1XTF0HDrFdlY//+SGUxmdSUbjeRXb5iaZc3x0/vMbYmdw9qvOgHWOyyLFxSSRnUuP5+724zBgfw8/WAw==} 532 | dependencies: 533 | '@types/http-errors': 2.0.3 534 | '@types/mime': 3.0.3 535 | '@types/node': 20.8.7 536 | dev: false 537 | 538 | /@typescript-eslint/parser@6.9.0(eslint@8.52.0)(typescript@5.2.2): 539 | resolution: {integrity: sha512-GZmjMh4AJ/5gaH4XF2eXA8tMnHWP+Pm1mjQR2QN4Iz+j/zO04b9TOvJYOX2sCNIQHtRStKTxRY1FX7LhpJT4Gw==} 540 | engines: {node: ^16.0.0 || >=18.0.0} 541 | peerDependencies: 542 | eslint: ^7.0.0 || ^8.0.0 543 | typescript: '*' 544 | peerDependenciesMeta: 545 | typescript: 546 | optional: true 547 | dependencies: 548 | '@typescript-eslint/scope-manager': 6.9.0 549 | '@typescript-eslint/types': 6.9.0 550 | '@typescript-eslint/typescript-estree': 6.9.0(typescript@5.2.2) 551 | '@typescript-eslint/visitor-keys': 6.9.0 552 | debug: 4.3.4 553 | eslint: 8.52.0 554 | typescript: 5.2.2 555 | transitivePeerDependencies: 556 | - supports-color 557 | dev: true 558 | 559 | /@typescript-eslint/scope-manager@6.9.0: 560 | resolution: {integrity: sha512-1R8A9Mc39n4pCCz9o79qRO31HGNDvC7UhPhv26TovDsWPBDx+Sg3rOZdCELIA3ZmNoWAuxaMOT7aWtGRSYkQxw==} 561 | engines: {node: ^16.0.0 || >=18.0.0} 562 | dependencies: 563 | '@typescript-eslint/types': 6.9.0 564 | '@typescript-eslint/visitor-keys': 6.9.0 565 | dev: true 566 | 567 | /@typescript-eslint/types@6.9.0: 568 | resolution: {integrity: sha512-+KB0lbkpxBkBSiVCuQvduqMJy+I1FyDbdwSpM3IoBS7APl4Bu15lStPjgBIdykdRqQNYqYNMa8Kuidax6phaEw==} 569 | engines: {node: ^16.0.0 || >=18.0.0} 570 | dev: true 571 | 572 | /@typescript-eslint/typescript-estree@6.9.0(typescript@5.2.2): 573 | resolution: {integrity: sha512-NJM2BnJFZBEAbCfBP00zONKXvMqihZCrmwCaik0UhLr0vAgb6oguXxLX1k00oQyD+vZZ+CJn3kocvv2yxm4awQ==} 574 | engines: {node: ^16.0.0 || >=18.0.0} 575 | peerDependencies: 576 | typescript: '*' 577 | peerDependenciesMeta: 578 | typescript: 579 | optional: true 580 | dependencies: 581 | '@typescript-eslint/types': 6.9.0 582 | '@typescript-eslint/visitor-keys': 6.9.0 583 | debug: 4.3.4 584 | globby: 11.1.0 585 | is-glob: 4.0.3 586 | semver: 7.5.4 587 | ts-api-utils: 1.0.3(typescript@5.2.2) 588 | typescript: 5.2.2 589 | transitivePeerDependencies: 590 | - supports-color 591 | dev: true 592 | 593 | /@typescript-eslint/visitor-keys@6.9.0: 594 | resolution: {integrity: sha512-dGtAfqjV6RFOtIP8I0B4ZTBRrlTT8NHHlZZSchQx3qReaoDeXhYM++M4So2AgFK9ZB0emRPA6JI1HkafzA2Ibg==} 595 | engines: {node: ^16.0.0 || >=18.0.0} 596 | dependencies: 597 | '@typescript-eslint/types': 6.9.0 598 | eslint-visitor-keys: 3.4.3 599 | dev: true 600 | 601 | /@ungap/structured-clone@1.2.0: 602 | resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} 603 | dev: true 604 | 605 | /acorn-jsx@5.3.2(acorn@8.10.0): 606 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 607 | peerDependencies: 608 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 609 | dependencies: 610 | acorn: 8.10.0 611 | dev: true 612 | 613 | /acorn@8.10.0: 614 | resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} 615 | engines: {node: '>=0.4.0'} 616 | hasBin: true 617 | dev: true 618 | 619 | /ajv@6.12.6: 620 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 621 | dependencies: 622 | fast-deep-equal: 3.1.3 623 | fast-json-stable-stringify: 2.1.0 624 | json-schema-traverse: 0.4.1 625 | uri-js: 4.4.1 626 | dev: true 627 | 628 | /ansi-regex@5.0.1: 629 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 630 | engines: {node: '>=8'} 631 | dev: true 632 | 633 | /ansi-styles@4.3.0: 634 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 635 | engines: {node: '>=8'} 636 | dependencies: 637 | color-convert: 2.0.1 638 | dev: true 639 | 640 | /any-promise@1.3.0: 641 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 642 | dev: true 643 | 644 | /anymatch@3.1.3: 645 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 646 | engines: {node: '>= 8'} 647 | dependencies: 648 | normalize-path: 3.0.0 649 | picomatch: 2.3.1 650 | dev: true 651 | 652 | /arg@5.0.2: 653 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} 654 | dev: true 655 | 656 | /argparse@2.0.1: 657 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 658 | dev: true 659 | 660 | /aria-query@5.3.0: 661 | resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} 662 | dependencies: 663 | dequal: 2.0.3 664 | dev: true 665 | 666 | /array-buffer-byte-length@1.0.0: 667 | resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} 668 | dependencies: 669 | call-bind: 1.0.5 670 | is-array-buffer: 3.0.2 671 | dev: true 672 | 673 | /array-includes@3.1.7: 674 | resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} 675 | engines: {node: '>= 0.4'} 676 | dependencies: 677 | call-bind: 1.0.5 678 | define-properties: 1.2.1 679 | es-abstract: 1.22.3 680 | get-intrinsic: 1.2.2 681 | is-string: 1.0.7 682 | dev: true 683 | 684 | /array-union@2.1.0: 685 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 686 | engines: {node: '>=8'} 687 | dev: true 688 | 689 | /array.prototype.findlastindex@1.2.3: 690 | resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} 691 | engines: {node: '>= 0.4'} 692 | dependencies: 693 | call-bind: 1.0.5 694 | define-properties: 1.2.1 695 | es-abstract: 1.22.3 696 | es-shim-unscopables: 1.0.2 697 | get-intrinsic: 1.2.2 698 | dev: true 699 | 700 | /array.prototype.flat@1.3.2: 701 | resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} 702 | engines: {node: '>= 0.4'} 703 | dependencies: 704 | call-bind: 1.0.5 705 | define-properties: 1.2.1 706 | es-abstract: 1.22.3 707 | es-shim-unscopables: 1.0.2 708 | dev: true 709 | 710 | /array.prototype.flatmap@1.3.2: 711 | resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} 712 | engines: {node: '>= 0.4'} 713 | dependencies: 714 | call-bind: 1.0.5 715 | define-properties: 1.2.1 716 | es-abstract: 1.22.3 717 | es-shim-unscopables: 1.0.2 718 | dev: true 719 | 720 | /array.prototype.tosorted@1.1.2: 721 | resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==} 722 | dependencies: 723 | call-bind: 1.0.5 724 | define-properties: 1.2.1 725 | es-abstract: 1.22.3 726 | es-shim-unscopables: 1.0.2 727 | get-intrinsic: 1.2.2 728 | dev: true 729 | 730 | /arraybuffer.prototype.slice@1.0.2: 731 | resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} 732 | engines: {node: '>= 0.4'} 733 | dependencies: 734 | array-buffer-byte-length: 1.0.0 735 | call-bind: 1.0.5 736 | define-properties: 1.2.1 737 | es-abstract: 1.22.3 738 | get-intrinsic: 1.2.2 739 | is-array-buffer: 3.0.2 740 | is-shared-array-buffer: 1.0.2 741 | dev: true 742 | 743 | /asn1js@3.0.5: 744 | resolution: {integrity: sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==} 745 | engines: {node: '>=12.0.0'} 746 | dependencies: 747 | pvtsutils: 1.3.5 748 | pvutils: 1.1.3 749 | tslib: 2.6.2 750 | dev: false 751 | 752 | /ast-types-flow@0.0.7: 753 | resolution: {integrity: sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==} 754 | dev: true 755 | 756 | /asynciterator.prototype@1.0.0: 757 | resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} 758 | dependencies: 759 | has-symbols: 1.0.3 760 | dev: true 761 | 762 | /asynckit@0.4.0: 763 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} 764 | dev: false 765 | 766 | /autoprefixer@10.4.16(postcss@8.4.31): 767 | resolution: {integrity: sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==} 768 | engines: {node: ^10 || ^12 || >=14} 769 | hasBin: true 770 | peerDependencies: 771 | postcss: ^8.1.0 772 | dependencies: 773 | browserslist: 4.22.1 774 | caniuse-lite: 1.0.30001553 775 | fraction.js: 4.3.7 776 | normalize-range: 0.1.2 777 | picocolors: 1.0.0 778 | postcss: 8.4.31 779 | postcss-value-parser: 4.2.0 780 | dev: true 781 | 782 | /available-typed-arrays@1.0.5: 783 | resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} 784 | engines: {node: '>= 0.4'} 785 | dev: true 786 | 787 | /axe-core@4.8.2: 788 | resolution: {integrity: sha512-/dlp0fxyM3R8YW7MFzaHWXrf4zzbr0vaYb23VBFCl83R7nWNPg/yaQw2Dc8jzCMmDVLhSdzH8MjrsuIUuvX+6g==} 789 | engines: {node: '>=4'} 790 | dev: true 791 | 792 | /axobject-query@3.2.1: 793 | resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} 794 | dependencies: 795 | dequal: 2.0.3 796 | dev: true 797 | 798 | /balanced-match@1.0.2: 799 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 800 | dev: true 801 | 802 | /binary-extensions@2.2.0: 803 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 804 | engines: {node: '>=8'} 805 | dev: true 806 | 807 | /brace-expansion@1.1.11: 808 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 809 | dependencies: 810 | balanced-match: 1.0.2 811 | concat-map: 0.0.1 812 | dev: true 813 | 814 | /braces@3.0.2: 815 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 816 | engines: {node: '>=8'} 817 | dependencies: 818 | fill-range: 7.0.1 819 | dev: true 820 | 821 | /browserslist@4.22.1: 822 | resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} 823 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 824 | hasBin: true 825 | dependencies: 826 | caniuse-lite: 1.0.30001553 827 | electron-to-chromium: 1.4.564 828 | node-releases: 2.0.13 829 | update-browserslist-db: 1.0.13(browserslist@4.22.1) 830 | dev: true 831 | 832 | /busboy@1.6.0: 833 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} 834 | engines: {node: '>=10.16.0'} 835 | dependencies: 836 | streamsearch: 1.1.0 837 | dev: false 838 | 839 | /call-bind@1.0.5: 840 | resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} 841 | dependencies: 842 | function-bind: 1.1.2 843 | get-intrinsic: 1.2.2 844 | set-function-length: 1.1.1 845 | 846 | /callsites@3.1.0: 847 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 848 | engines: {node: '>=6'} 849 | dev: true 850 | 851 | /camelcase-css@2.0.1: 852 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 853 | engines: {node: '>= 6'} 854 | dev: true 855 | 856 | /camelcase-keys@6.2.2: 857 | resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==} 858 | engines: {node: '>=8'} 859 | dependencies: 860 | camelcase: 5.3.1 861 | map-obj: 4.3.0 862 | quick-lru: 4.0.1 863 | dev: false 864 | 865 | /camelcase@5.3.1: 866 | resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} 867 | engines: {node: '>=6'} 868 | dev: false 869 | 870 | /caniuse-lite@1.0.30001553: 871 | resolution: {integrity: sha512-N0ttd6TrFfuqKNi+pMgWJTb9qrdJu4JSpgPFLe/lrD19ugC6fZgF0pUewRowDwzdDnb9V41mFcdlYgl/PyKf4A==} 872 | 873 | /chalk@4.1.2: 874 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 875 | engines: {node: '>=10'} 876 | dependencies: 877 | ansi-styles: 4.3.0 878 | supports-color: 7.2.0 879 | dev: true 880 | 881 | /chokidar@3.5.3: 882 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 883 | engines: {node: '>= 8.10.0'} 884 | dependencies: 885 | anymatch: 3.1.3 886 | braces: 3.0.2 887 | glob-parent: 5.1.2 888 | is-binary-path: 2.1.0 889 | is-glob: 4.0.3 890 | normalize-path: 3.0.0 891 | readdirp: 3.6.0 892 | optionalDependencies: 893 | fsevents: 2.3.3 894 | dev: true 895 | 896 | /client-only@0.0.1: 897 | resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} 898 | dev: false 899 | 900 | /color-convert@2.0.1: 901 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 902 | engines: {node: '>=7.0.0'} 903 | dependencies: 904 | color-name: 1.1.4 905 | dev: true 906 | 907 | /color-name@1.1.4: 908 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 909 | dev: true 910 | 911 | /combined-stream@1.0.8: 912 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} 913 | engines: {node: '>= 0.8'} 914 | dependencies: 915 | delayed-stream: 1.0.0 916 | dev: false 917 | 918 | /commander@4.1.1: 919 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 920 | engines: {node: '>= 6'} 921 | dev: true 922 | 923 | /concat-map@0.0.1: 924 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 925 | dev: true 926 | 927 | /cookie@0.5.0: 928 | resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==} 929 | engines: {node: '>= 0.6'} 930 | dev: false 931 | 932 | /cross-spawn@7.0.3: 933 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 934 | engines: {node: '>= 8'} 935 | dependencies: 936 | path-key: 3.1.1 937 | shebang-command: 2.0.0 938 | which: 2.0.2 939 | dev: true 940 | 941 | /cssesc@3.0.0: 942 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 943 | engines: {node: '>=4'} 944 | hasBin: true 945 | dev: true 946 | 947 | /csstype@3.1.1: 948 | resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} 949 | dev: false 950 | 951 | /csstype@3.1.2: 952 | resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} 953 | dev: true 954 | 955 | /damerau-levenshtein@1.0.8: 956 | resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} 957 | dev: true 958 | 959 | /debug@3.2.7: 960 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 961 | peerDependencies: 962 | supports-color: '*' 963 | peerDependenciesMeta: 964 | supports-color: 965 | optional: true 966 | dependencies: 967 | ms: 2.1.3 968 | dev: true 969 | 970 | /debug@4.3.4: 971 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 972 | engines: {node: '>=6.0'} 973 | peerDependencies: 974 | supports-color: '*' 975 | peerDependenciesMeta: 976 | supports-color: 977 | optional: true 978 | dependencies: 979 | ms: 2.1.2 980 | dev: true 981 | 982 | /deep-is@0.1.4: 983 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 984 | dev: true 985 | 986 | /deepmerge@4.2.2: 987 | resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==} 988 | engines: {node: '>=0.10.0'} 989 | dev: false 990 | 991 | /define-data-property@1.1.1: 992 | resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} 993 | engines: {node: '>= 0.4'} 994 | dependencies: 995 | get-intrinsic: 1.2.2 996 | gopd: 1.0.1 997 | has-property-descriptors: 1.0.1 998 | 999 | /define-properties@1.2.1: 1000 | resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} 1001 | engines: {node: '>= 0.4'} 1002 | dependencies: 1003 | define-data-property: 1.1.1 1004 | has-property-descriptors: 1.0.1 1005 | object-keys: 1.1.1 1006 | dev: true 1007 | 1008 | /delayed-stream@1.0.0: 1009 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} 1010 | engines: {node: '>=0.4.0'} 1011 | dev: false 1012 | 1013 | /dequal@2.0.3: 1014 | resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 1015 | engines: {node: '>=6'} 1016 | dev: true 1017 | 1018 | /didyoumean@1.2.2: 1019 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 1020 | dev: true 1021 | 1022 | /dir-glob@3.0.1: 1023 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 1024 | engines: {node: '>=8'} 1025 | dependencies: 1026 | path-type: 4.0.0 1027 | dev: true 1028 | 1029 | /dlv@1.1.3: 1030 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 1031 | dev: true 1032 | 1033 | /doctrine@2.1.0: 1034 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} 1035 | engines: {node: '>=0.10.0'} 1036 | dependencies: 1037 | esutils: 2.0.3 1038 | dev: true 1039 | 1040 | /doctrine@3.0.0: 1041 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 1042 | engines: {node: '>=6.0.0'} 1043 | dependencies: 1044 | esutils: 2.0.3 1045 | dev: true 1046 | 1047 | /dot-case@3.0.4: 1048 | resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} 1049 | dependencies: 1050 | no-case: 3.0.4 1051 | tslib: 2.6.2 1052 | dev: false 1053 | 1054 | /electron-to-chromium@1.4.564: 1055 | resolution: {integrity: sha512-bGAx9+teIzL5I4esQwCMtiXtb78Ysc8xOKTPOvmafbJZ4SQ40kDO1ym3yRcGSkfaBtV81fGgHOgPoe6DsmpmkA==} 1056 | dev: true 1057 | 1058 | /emoji-regex@9.2.2: 1059 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 1060 | dev: true 1061 | 1062 | /enhanced-resolve@5.15.0: 1063 | resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==} 1064 | engines: {node: '>=10.13.0'} 1065 | dependencies: 1066 | graceful-fs: 4.2.11 1067 | tapable: 2.2.1 1068 | dev: true 1069 | 1070 | /es-abstract@1.22.3: 1071 | resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} 1072 | engines: {node: '>= 0.4'} 1073 | dependencies: 1074 | array-buffer-byte-length: 1.0.0 1075 | arraybuffer.prototype.slice: 1.0.2 1076 | available-typed-arrays: 1.0.5 1077 | call-bind: 1.0.5 1078 | es-set-tostringtag: 2.0.2 1079 | es-to-primitive: 1.2.1 1080 | function.prototype.name: 1.1.6 1081 | get-intrinsic: 1.2.2 1082 | get-symbol-description: 1.0.0 1083 | globalthis: 1.0.3 1084 | gopd: 1.0.1 1085 | has-property-descriptors: 1.0.1 1086 | has-proto: 1.0.1 1087 | has-symbols: 1.0.3 1088 | hasown: 2.0.0 1089 | internal-slot: 1.0.6 1090 | is-array-buffer: 3.0.2 1091 | is-callable: 1.2.7 1092 | is-negative-zero: 2.0.2 1093 | is-regex: 1.1.4 1094 | is-shared-array-buffer: 1.0.2 1095 | is-string: 1.0.7 1096 | is-typed-array: 1.1.12 1097 | is-weakref: 1.0.2 1098 | object-inspect: 1.13.1 1099 | object-keys: 1.1.1 1100 | object.assign: 4.1.4 1101 | regexp.prototype.flags: 1.5.1 1102 | safe-array-concat: 1.0.1 1103 | safe-regex-test: 1.0.0 1104 | string.prototype.trim: 1.2.8 1105 | string.prototype.trimend: 1.0.7 1106 | string.prototype.trimstart: 1.0.7 1107 | typed-array-buffer: 1.0.0 1108 | typed-array-byte-length: 1.0.0 1109 | typed-array-byte-offset: 1.0.0 1110 | typed-array-length: 1.0.4 1111 | unbox-primitive: 1.0.2 1112 | which-typed-array: 1.1.13 1113 | dev: true 1114 | 1115 | /es-iterator-helpers@1.0.15: 1116 | resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==} 1117 | dependencies: 1118 | asynciterator.prototype: 1.0.0 1119 | call-bind: 1.0.5 1120 | define-properties: 1.2.1 1121 | es-abstract: 1.22.3 1122 | es-set-tostringtag: 2.0.2 1123 | function-bind: 1.1.2 1124 | get-intrinsic: 1.2.2 1125 | globalthis: 1.0.3 1126 | has-property-descriptors: 1.0.1 1127 | has-proto: 1.0.1 1128 | has-symbols: 1.0.3 1129 | internal-slot: 1.0.6 1130 | iterator.prototype: 1.1.2 1131 | safe-array-concat: 1.0.1 1132 | dev: true 1133 | 1134 | /es-set-tostringtag@2.0.2: 1135 | resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} 1136 | engines: {node: '>= 0.4'} 1137 | dependencies: 1138 | get-intrinsic: 1.2.2 1139 | has-tostringtag: 1.0.0 1140 | hasown: 2.0.0 1141 | dev: true 1142 | 1143 | /es-shim-unscopables@1.0.2: 1144 | resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} 1145 | dependencies: 1146 | hasown: 2.0.0 1147 | dev: true 1148 | 1149 | /es-to-primitive@1.2.1: 1150 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} 1151 | engines: {node: '>= 0.4'} 1152 | dependencies: 1153 | is-callable: 1.2.7 1154 | is-date-object: 1.0.5 1155 | is-symbol: 1.0.4 1156 | dev: true 1157 | 1158 | /escalade@3.1.1: 1159 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 1160 | engines: {node: '>=6'} 1161 | dev: true 1162 | 1163 | /escape-string-regexp@4.0.0: 1164 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1165 | engines: {node: '>=10'} 1166 | dev: true 1167 | 1168 | /eslint-config-next@13.5.6(eslint@8.52.0)(typescript@5.2.2): 1169 | resolution: {integrity: sha512-o8pQsUHTo9aHqJ2YiZDym5gQAMRf7O2HndHo/JZeY7TDD+W4hk6Ma8Vw54RHiBeb7OWWO5dPirQB+Is/aVQ7Kg==} 1170 | peerDependencies: 1171 | eslint: ^7.23.0 || ^8.0.0 1172 | typescript: '>=3.3.1' 1173 | peerDependenciesMeta: 1174 | typescript: 1175 | optional: true 1176 | dependencies: 1177 | '@next/eslint-plugin-next': 13.5.6 1178 | '@rushstack/eslint-patch': 1.5.1 1179 | '@typescript-eslint/parser': 6.9.0(eslint@8.52.0)(typescript@5.2.2) 1180 | eslint: 8.52.0 1181 | eslint-import-resolver-node: 0.3.9 1182 | eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.52.0) 1183 | eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0) 1184 | eslint-plugin-jsx-a11y: 6.7.1(eslint@8.52.0) 1185 | eslint-plugin-react: 7.33.2(eslint@8.52.0) 1186 | eslint-plugin-react-hooks: 4.6.0(eslint@8.52.0) 1187 | typescript: 5.2.2 1188 | transitivePeerDependencies: 1189 | - eslint-import-resolver-webpack 1190 | - supports-color 1191 | dev: true 1192 | 1193 | /eslint-import-resolver-node@0.3.9: 1194 | resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} 1195 | dependencies: 1196 | debug: 3.2.7 1197 | is-core-module: 2.13.1 1198 | resolve: 1.22.8 1199 | transitivePeerDependencies: 1200 | - supports-color 1201 | dev: true 1202 | 1203 | /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.52.0): 1204 | resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} 1205 | engines: {node: ^14.18.0 || >=16.0.0} 1206 | peerDependencies: 1207 | eslint: '*' 1208 | eslint-plugin-import: '*' 1209 | dependencies: 1210 | debug: 4.3.4 1211 | enhanced-resolve: 5.15.0 1212 | eslint: 8.52.0 1213 | eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0) 1214 | eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0) 1215 | fast-glob: 3.3.1 1216 | get-tsconfig: 4.7.2 1217 | is-core-module: 2.13.1 1218 | is-glob: 4.0.3 1219 | transitivePeerDependencies: 1220 | - '@typescript-eslint/parser' 1221 | - eslint-import-resolver-node 1222 | - eslint-import-resolver-webpack 1223 | - supports-color 1224 | dev: true 1225 | 1226 | /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0): 1227 | resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} 1228 | engines: {node: '>=4'} 1229 | peerDependencies: 1230 | '@typescript-eslint/parser': '*' 1231 | eslint: '*' 1232 | eslint-import-resolver-node: '*' 1233 | eslint-import-resolver-typescript: '*' 1234 | eslint-import-resolver-webpack: '*' 1235 | peerDependenciesMeta: 1236 | '@typescript-eslint/parser': 1237 | optional: true 1238 | eslint: 1239 | optional: true 1240 | eslint-import-resolver-node: 1241 | optional: true 1242 | eslint-import-resolver-typescript: 1243 | optional: true 1244 | eslint-import-resolver-webpack: 1245 | optional: true 1246 | dependencies: 1247 | '@typescript-eslint/parser': 6.9.0(eslint@8.52.0)(typescript@5.2.2) 1248 | debug: 3.2.7 1249 | eslint: 8.52.0 1250 | eslint-import-resolver-node: 0.3.9 1251 | eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.0)(eslint@8.52.0) 1252 | transitivePeerDependencies: 1253 | - supports-color 1254 | dev: true 1255 | 1256 | /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0): 1257 | resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} 1258 | engines: {node: '>=4'} 1259 | peerDependencies: 1260 | '@typescript-eslint/parser': '*' 1261 | eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 1262 | peerDependenciesMeta: 1263 | '@typescript-eslint/parser': 1264 | optional: true 1265 | dependencies: 1266 | '@typescript-eslint/parser': 6.9.0(eslint@8.52.0)(typescript@5.2.2) 1267 | array-includes: 3.1.7 1268 | array.prototype.findlastindex: 1.2.3 1269 | array.prototype.flat: 1.3.2 1270 | array.prototype.flatmap: 1.3.2 1271 | debug: 3.2.7 1272 | doctrine: 2.1.0 1273 | eslint: 8.52.0 1274 | eslint-import-resolver-node: 0.3.9 1275 | eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.9.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.52.0) 1276 | hasown: 2.0.0 1277 | is-core-module: 2.13.1 1278 | is-glob: 4.0.3 1279 | minimatch: 3.1.2 1280 | object.fromentries: 2.0.7 1281 | object.groupby: 1.0.1 1282 | object.values: 1.1.7 1283 | semver: 6.3.1 1284 | tsconfig-paths: 3.14.2 1285 | transitivePeerDependencies: 1286 | - eslint-import-resolver-typescript 1287 | - eslint-import-resolver-webpack 1288 | - supports-color 1289 | dev: true 1290 | 1291 | /eslint-plugin-jsx-a11y@6.7.1(eslint@8.52.0): 1292 | resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} 1293 | engines: {node: '>=4.0'} 1294 | peerDependencies: 1295 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 1296 | dependencies: 1297 | '@babel/runtime': 7.23.2 1298 | aria-query: 5.3.0 1299 | array-includes: 3.1.7 1300 | array.prototype.flatmap: 1.3.2 1301 | ast-types-flow: 0.0.7 1302 | axe-core: 4.8.2 1303 | axobject-query: 3.2.1 1304 | damerau-levenshtein: 1.0.8 1305 | emoji-regex: 9.2.2 1306 | eslint: 8.52.0 1307 | has: 1.0.4 1308 | jsx-ast-utils: 3.3.5 1309 | language-tags: 1.0.5 1310 | minimatch: 3.1.2 1311 | object.entries: 1.1.7 1312 | object.fromentries: 2.0.7 1313 | semver: 6.3.1 1314 | dev: true 1315 | 1316 | /eslint-plugin-react-hooks@4.6.0(eslint@8.52.0): 1317 | resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} 1318 | engines: {node: '>=10'} 1319 | peerDependencies: 1320 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 1321 | dependencies: 1322 | eslint: 8.52.0 1323 | dev: true 1324 | 1325 | /eslint-plugin-react@7.33.2(eslint@8.52.0): 1326 | resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} 1327 | engines: {node: '>=4'} 1328 | peerDependencies: 1329 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 1330 | dependencies: 1331 | array-includes: 3.1.7 1332 | array.prototype.flatmap: 1.3.2 1333 | array.prototype.tosorted: 1.1.2 1334 | doctrine: 2.1.0 1335 | es-iterator-helpers: 1.0.15 1336 | eslint: 8.52.0 1337 | estraverse: 5.3.0 1338 | jsx-ast-utils: 3.3.5 1339 | minimatch: 3.1.2 1340 | object.entries: 1.1.7 1341 | object.fromentries: 2.0.7 1342 | object.hasown: 1.1.3 1343 | object.values: 1.1.7 1344 | prop-types: 15.8.1 1345 | resolve: 2.0.0-next.5 1346 | semver: 6.3.1 1347 | string.prototype.matchall: 4.0.10 1348 | dev: true 1349 | 1350 | /eslint-scope@7.2.2: 1351 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} 1352 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1353 | dependencies: 1354 | esrecurse: 4.3.0 1355 | estraverse: 5.3.0 1356 | dev: true 1357 | 1358 | /eslint-visitor-keys@3.4.3: 1359 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 1360 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1361 | dev: true 1362 | 1363 | /eslint@8.52.0: 1364 | resolution: {integrity: sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==} 1365 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1366 | hasBin: true 1367 | dependencies: 1368 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.52.0) 1369 | '@eslint-community/regexpp': 4.9.1 1370 | '@eslint/eslintrc': 2.1.2 1371 | '@eslint/js': 8.52.0 1372 | '@humanwhocodes/config-array': 0.11.13 1373 | '@humanwhocodes/module-importer': 1.0.1 1374 | '@nodelib/fs.walk': 1.2.8 1375 | '@ungap/structured-clone': 1.2.0 1376 | ajv: 6.12.6 1377 | chalk: 4.1.2 1378 | cross-spawn: 7.0.3 1379 | debug: 4.3.4 1380 | doctrine: 3.0.0 1381 | escape-string-regexp: 4.0.0 1382 | eslint-scope: 7.2.2 1383 | eslint-visitor-keys: 3.4.3 1384 | espree: 9.6.1 1385 | esquery: 1.5.0 1386 | esutils: 2.0.3 1387 | fast-deep-equal: 3.1.3 1388 | file-entry-cache: 6.0.1 1389 | find-up: 5.0.0 1390 | glob-parent: 6.0.2 1391 | globals: 13.23.0 1392 | graphemer: 1.4.0 1393 | ignore: 5.2.4 1394 | imurmurhash: 0.1.4 1395 | is-glob: 4.0.3 1396 | is-path-inside: 3.0.3 1397 | js-yaml: 4.1.0 1398 | json-stable-stringify-without-jsonify: 1.0.1 1399 | levn: 0.4.1 1400 | lodash.merge: 4.6.2 1401 | minimatch: 3.1.2 1402 | natural-compare: 1.4.0 1403 | optionator: 0.9.3 1404 | strip-ansi: 6.0.1 1405 | text-table: 0.2.0 1406 | transitivePeerDependencies: 1407 | - supports-color 1408 | dev: true 1409 | 1410 | /espree@9.6.1: 1411 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} 1412 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 1413 | dependencies: 1414 | acorn: 8.10.0 1415 | acorn-jsx: 5.3.2(acorn@8.10.0) 1416 | eslint-visitor-keys: 3.4.3 1417 | dev: true 1418 | 1419 | /esquery@1.5.0: 1420 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} 1421 | engines: {node: '>=0.10'} 1422 | dependencies: 1423 | estraverse: 5.3.0 1424 | dev: true 1425 | 1426 | /esrecurse@4.3.0: 1427 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 1428 | engines: {node: '>=4.0'} 1429 | dependencies: 1430 | estraverse: 5.3.0 1431 | dev: true 1432 | 1433 | /estraverse@5.3.0: 1434 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 1435 | engines: {node: '>=4.0'} 1436 | dev: true 1437 | 1438 | /esutils@2.0.3: 1439 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 1440 | engines: {node: '>=0.10.0'} 1441 | dev: true 1442 | 1443 | /fast-deep-equal@3.1.3: 1444 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 1445 | dev: true 1446 | 1447 | /fast-glob@3.3.1: 1448 | resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==} 1449 | engines: {node: '>=8.6.0'} 1450 | dependencies: 1451 | '@nodelib/fs.stat': 2.0.5 1452 | '@nodelib/fs.walk': 1.2.8 1453 | glob-parent: 5.1.2 1454 | merge2: 1.4.1 1455 | micromatch: 4.0.5 1456 | dev: true 1457 | 1458 | /fast-json-stable-stringify@2.1.0: 1459 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 1460 | dev: true 1461 | 1462 | /fast-levenshtein@2.0.6: 1463 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 1464 | dev: true 1465 | 1466 | /fastq@1.15.0: 1467 | resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} 1468 | dependencies: 1469 | reusify: 1.0.4 1470 | dev: true 1471 | 1472 | /file-entry-cache@6.0.1: 1473 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 1474 | engines: {node: ^10.12.0 || >=12.0.0} 1475 | dependencies: 1476 | flat-cache: 3.1.1 1477 | dev: true 1478 | 1479 | /fill-range@7.0.1: 1480 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1481 | engines: {node: '>=8'} 1482 | dependencies: 1483 | to-regex-range: 5.0.1 1484 | dev: true 1485 | 1486 | /find-up@5.0.0: 1487 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 1488 | engines: {node: '>=10'} 1489 | dependencies: 1490 | locate-path: 6.0.0 1491 | path-exists: 4.0.0 1492 | dev: true 1493 | 1494 | /flat-cache@3.1.1: 1495 | resolution: {integrity: sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==} 1496 | engines: {node: '>=12.0.0'} 1497 | dependencies: 1498 | flatted: 3.2.9 1499 | keyv: 4.5.4 1500 | rimraf: 3.0.2 1501 | dev: true 1502 | 1503 | /flatted@3.2.9: 1504 | resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} 1505 | dev: true 1506 | 1507 | /for-each@0.3.3: 1508 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} 1509 | dependencies: 1510 | is-callable: 1.2.7 1511 | dev: true 1512 | 1513 | /form-data@3.0.1: 1514 | resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} 1515 | engines: {node: '>= 6'} 1516 | dependencies: 1517 | asynckit: 0.4.0 1518 | combined-stream: 1.0.8 1519 | mime-types: 2.1.35 1520 | dev: false 1521 | 1522 | /fraction.js@4.3.7: 1523 | resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} 1524 | dev: true 1525 | 1526 | /fs.realpath@1.0.0: 1527 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 1528 | dev: true 1529 | 1530 | /fsevents@2.3.3: 1531 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1532 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1533 | os: [darwin] 1534 | requiresBuild: true 1535 | dev: true 1536 | optional: true 1537 | 1538 | /function-bind@1.1.2: 1539 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 1540 | 1541 | /function.prototype.name@1.1.6: 1542 | resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} 1543 | engines: {node: '>= 0.4'} 1544 | dependencies: 1545 | call-bind: 1.0.5 1546 | define-properties: 1.2.1 1547 | es-abstract: 1.22.3 1548 | functions-have-names: 1.2.3 1549 | dev: true 1550 | 1551 | /functions-have-names@1.2.3: 1552 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 1553 | dev: true 1554 | 1555 | /get-intrinsic@1.2.2: 1556 | resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} 1557 | dependencies: 1558 | function-bind: 1.1.2 1559 | has-proto: 1.0.1 1560 | has-symbols: 1.0.3 1561 | hasown: 2.0.0 1562 | 1563 | /get-symbol-description@1.0.0: 1564 | resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} 1565 | engines: {node: '>= 0.4'} 1566 | dependencies: 1567 | call-bind: 1.0.5 1568 | get-intrinsic: 1.2.2 1569 | dev: true 1570 | 1571 | /get-tsconfig@4.7.2: 1572 | resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} 1573 | dependencies: 1574 | resolve-pkg-maps: 1.0.0 1575 | dev: true 1576 | 1577 | /glob-parent@5.1.2: 1578 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1579 | engines: {node: '>= 6'} 1580 | dependencies: 1581 | is-glob: 4.0.3 1582 | dev: true 1583 | 1584 | /glob-parent@6.0.2: 1585 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 1586 | engines: {node: '>=10.13.0'} 1587 | dependencies: 1588 | is-glob: 4.0.3 1589 | dev: true 1590 | 1591 | /glob-to-regexp@0.4.1: 1592 | resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} 1593 | dev: false 1594 | 1595 | /glob@7.1.6: 1596 | resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} 1597 | dependencies: 1598 | fs.realpath: 1.0.0 1599 | inflight: 1.0.6 1600 | inherits: 2.0.4 1601 | minimatch: 3.1.2 1602 | once: 1.4.0 1603 | path-is-absolute: 1.0.1 1604 | dev: true 1605 | 1606 | /glob@7.1.7: 1607 | resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==} 1608 | dependencies: 1609 | fs.realpath: 1.0.0 1610 | inflight: 1.0.6 1611 | inherits: 2.0.4 1612 | minimatch: 3.1.2 1613 | once: 1.4.0 1614 | path-is-absolute: 1.0.1 1615 | dev: true 1616 | 1617 | /glob@7.2.3: 1618 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 1619 | dependencies: 1620 | fs.realpath: 1.0.0 1621 | inflight: 1.0.6 1622 | inherits: 2.0.4 1623 | minimatch: 3.1.2 1624 | once: 1.4.0 1625 | path-is-absolute: 1.0.1 1626 | dev: true 1627 | 1628 | /globals@13.23.0: 1629 | resolution: {integrity: sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==} 1630 | engines: {node: '>=8'} 1631 | dependencies: 1632 | type-fest: 0.20.2 1633 | dev: true 1634 | 1635 | /globalthis@1.0.3: 1636 | resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} 1637 | engines: {node: '>= 0.4'} 1638 | dependencies: 1639 | define-properties: 1.2.1 1640 | dev: true 1641 | 1642 | /globby@11.1.0: 1643 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 1644 | engines: {node: '>=10'} 1645 | dependencies: 1646 | array-union: 2.1.0 1647 | dir-glob: 3.0.1 1648 | fast-glob: 3.3.1 1649 | ignore: 5.2.4 1650 | merge2: 1.4.1 1651 | slash: 3.0.0 1652 | dev: true 1653 | 1654 | /gopd@1.0.1: 1655 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} 1656 | dependencies: 1657 | get-intrinsic: 1.2.2 1658 | 1659 | /graceful-fs@4.2.11: 1660 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1661 | 1662 | /graphemer@1.4.0: 1663 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 1664 | dev: true 1665 | 1666 | /has-bigints@1.0.2: 1667 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} 1668 | dev: true 1669 | 1670 | /has-flag@4.0.0: 1671 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1672 | engines: {node: '>=8'} 1673 | dev: true 1674 | 1675 | /has-property-descriptors@1.0.1: 1676 | resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==} 1677 | dependencies: 1678 | get-intrinsic: 1.2.2 1679 | 1680 | /has-proto@1.0.1: 1681 | resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} 1682 | engines: {node: '>= 0.4'} 1683 | 1684 | /has-symbols@1.0.3: 1685 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 1686 | engines: {node: '>= 0.4'} 1687 | 1688 | /has-tostringtag@1.0.0: 1689 | resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} 1690 | engines: {node: '>= 0.4'} 1691 | dependencies: 1692 | has-symbols: 1.0.3 1693 | dev: true 1694 | 1695 | /has@1.0.4: 1696 | resolution: {integrity: sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==} 1697 | engines: {node: '>= 0.4.0'} 1698 | dev: true 1699 | 1700 | /hasown@2.0.0: 1701 | resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} 1702 | engines: {node: '>= 0.4'} 1703 | dependencies: 1704 | function-bind: 1.1.2 1705 | 1706 | /ignore@5.2.4: 1707 | resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} 1708 | engines: {node: '>= 4'} 1709 | dev: true 1710 | 1711 | /import-fresh@3.3.0: 1712 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 1713 | engines: {node: '>=6'} 1714 | dependencies: 1715 | parent-module: 1.0.1 1716 | resolve-from: 4.0.0 1717 | dev: true 1718 | 1719 | /imurmurhash@0.1.4: 1720 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1721 | engines: {node: '>=0.8.19'} 1722 | dev: true 1723 | 1724 | /inflight@1.0.6: 1725 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1726 | dependencies: 1727 | once: 1.4.0 1728 | wrappy: 1.0.2 1729 | dev: true 1730 | 1731 | /inherits@2.0.4: 1732 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1733 | dev: true 1734 | 1735 | /internal-slot@1.0.6: 1736 | resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==} 1737 | engines: {node: '>= 0.4'} 1738 | dependencies: 1739 | get-intrinsic: 1.2.2 1740 | hasown: 2.0.0 1741 | side-channel: 1.0.4 1742 | dev: true 1743 | 1744 | /is-array-buffer@3.0.2: 1745 | resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} 1746 | dependencies: 1747 | call-bind: 1.0.5 1748 | get-intrinsic: 1.2.2 1749 | is-typed-array: 1.1.12 1750 | dev: true 1751 | 1752 | /is-async-function@2.0.0: 1753 | resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} 1754 | engines: {node: '>= 0.4'} 1755 | dependencies: 1756 | has-tostringtag: 1.0.0 1757 | dev: true 1758 | 1759 | /is-bigint@1.0.4: 1760 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} 1761 | dependencies: 1762 | has-bigints: 1.0.2 1763 | dev: true 1764 | 1765 | /is-binary-path@2.1.0: 1766 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 1767 | engines: {node: '>=8'} 1768 | dependencies: 1769 | binary-extensions: 2.2.0 1770 | dev: true 1771 | 1772 | /is-boolean-object@1.1.2: 1773 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} 1774 | engines: {node: '>= 0.4'} 1775 | dependencies: 1776 | call-bind: 1.0.5 1777 | has-tostringtag: 1.0.0 1778 | dev: true 1779 | 1780 | /is-callable@1.2.7: 1781 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 1782 | engines: {node: '>= 0.4'} 1783 | dev: true 1784 | 1785 | /is-core-module@2.13.1: 1786 | resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} 1787 | dependencies: 1788 | hasown: 2.0.0 1789 | dev: true 1790 | 1791 | /is-date-object@1.0.5: 1792 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 1793 | engines: {node: '>= 0.4'} 1794 | dependencies: 1795 | has-tostringtag: 1.0.0 1796 | dev: true 1797 | 1798 | /is-extglob@2.1.1: 1799 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1800 | engines: {node: '>=0.10.0'} 1801 | dev: true 1802 | 1803 | /is-finalizationregistry@1.0.2: 1804 | resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} 1805 | dependencies: 1806 | call-bind: 1.0.5 1807 | dev: true 1808 | 1809 | /is-generator-function@1.0.10: 1810 | resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} 1811 | engines: {node: '>= 0.4'} 1812 | dependencies: 1813 | has-tostringtag: 1.0.0 1814 | dev: true 1815 | 1816 | /is-glob@4.0.3: 1817 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1818 | engines: {node: '>=0.10.0'} 1819 | dependencies: 1820 | is-extglob: 2.1.1 1821 | dev: true 1822 | 1823 | /is-map@2.0.2: 1824 | resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} 1825 | dev: true 1826 | 1827 | /is-negative-zero@2.0.2: 1828 | resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} 1829 | engines: {node: '>= 0.4'} 1830 | dev: true 1831 | 1832 | /is-number-object@1.0.7: 1833 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} 1834 | engines: {node: '>= 0.4'} 1835 | dependencies: 1836 | has-tostringtag: 1.0.0 1837 | dev: true 1838 | 1839 | /is-number@7.0.0: 1840 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1841 | engines: {node: '>=0.12.0'} 1842 | dev: true 1843 | 1844 | /is-path-inside@3.0.3: 1845 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 1846 | engines: {node: '>=8'} 1847 | dev: true 1848 | 1849 | /is-regex@1.1.4: 1850 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} 1851 | engines: {node: '>= 0.4'} 1852 | dependencies: 1853 | call-bind: 1.0.5 1854 | has-tostringtag: 1.0.0 1855 | dev: true 1856 | 1857 | /is-set@2.0.2: 1858 | resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} 1859 | dev: true 1860 | 1861 | /is-shared-array-buffer@1.0.2: 1862 | resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} 1863 | dependencies: 1864 | call-bind: 1.0.5 1865 | dev: true 1866 | 1867 | /is-string@1.0.7: 1868 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} 1869 | engines: {node: '>= 0.4'} 1870 | dependencies: 1871 | has-tostringtag: 1.0.0 1872 | dev: true 1873 | 1874 | /is-symbol@1.0.4: 1875 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} 1876 | engines: {node: '>= 0.4'} 1877 | dependencies: 1878 | has-symbols: 1.0.3 1879 | dev: true 1880 | 1881 | /is-typed-array@1.1.12: 1882 | resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} 1883 | engines: {node: '>= 0.4'} 1884 | dependencies: 1885 | which-typed-array: 1.1.13 1886 | dev: true 1887 | 1888 | /is-weakmap@2.0.1: 1889 | resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} 1890 | dev: true 1891 | 1892 | /is-weakref@1.0.2: 1893 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} 1894 | dependencies: 1895 | call-bind: 1.0.5 1896 | dev: true 1897 | 1898 | /is-weakset@2.0.2: 1899 | resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} 1900 | dependencies: 1901 | call-bind: 1.0.5 1902 | get-intrinsic: 1.2.2 1903 | dev: true 1904 | 1905 | /isarray@2.0.5: 1906 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} 1907 | dev: true 1908 | 1909 | /isexe@2.0.0: 1910 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1911 | dev: true 1912 | 1913 | /iterator.prototype@1.1.2: 1914 | resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} 1915 | dependencies: 1916 | define-properties: 1.2.1 1917 | get-intrinsic: 1.2.2 1918 | has-symbols: 1.0.3 1919 | reflect.getprototypeof: 1.0.4 1920 | set-function-name: 2.0.1 1921 | dev: true 1922 | 1923 | /jiti@1.20.0: 1924 | resolution: {integrity: sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA==} 1925 | hasBin: true 1926 | dev: true 1927 | 1928 | /js-cookie@3.0.1: 1929 | resolution: {integrity: sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw==} 1930 | engines: {node: '>=12'} 1931 | dev: false 1932 | 1933 | /js-tokens@4.0.0: 1934 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1935 | 1936 | /js-yaml@4.1.0: 1937 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1938 | hasBin: true 1939 | dependencies: 1940 | argparse: 2.0.1 1941 | dev: true 1942 | 1943 | /json-buffer@3.0.1: 1944 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 1945 | dev: true 1946 | 1947 | /json-schema-traverse@0.4.1: 1948 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1949 | dev: true 1950 | 1951 | /json-stable-stringify-without-jsonify@1.0.1: 1952 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1953 | dev: true 1954 | 1955 | /json5@1.0.2: 1956 | resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} 1957 | hasBin: true 1958 | dependencies: 1959 | minimist: 1.2.8 1960 | dev: true 1961 | 1962 | /jsx-ast-utils@3.3.5: 1963 | resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} 1964 | engines: {node: '>=4.0'} 1965 | dependencies: 1966 | array-includes: 3.1.7 1967 | array.prototype.flat: 1.3.2 1968 | object.assign: 4.1.4 1969 | object.values: 1.1.7 1970 | dev: true 1971 | 1972 | /keyv@4.5.4: 1973 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 1974 | dependencies: 1975 | json-buffer: 3.0.1 1976 | dev: true 1977 | 1978 | /language-subtag-registry@0.3.22: 1979 | resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==} 1980 | dev: true 1981 | 1982 | /language-tags@1.0.5: 1983 | resolution: {integrity: sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==} 1984 | dependencies: 1985 | language-subtag-registry: 0.3.22 1986 | dev: true 1987 | 1988 | /levn@0.4.1: 1989 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1990 | engines: {node: '>= 0.8.0'} 1991 | dependencies: 1992 | prelude-ls: 1.2.1 1993 | type-check: 0.4.0 1994 | dev: true 1995 | 1996 | /lilconfig@2.1.0: 1997 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} 1998 | engines: {node: '>=10'} 1999 | dev: true 2000 | 2001 | /lines-and-columns@1.2.4: 2002 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 2003 | dev: true 2004 | 2005 | /locate-path@6.0.0: 2006 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 2007 | engines: {node: '>=10'} 2008 | dependencies: 2009 | p-locate: 5.0.0 2010 | dev: true 2011 | 2012 | /lodash.merge@4.6.2: 2013 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 2014 | dev: true 2015 | 2016 | /loose-envify@1.4.0: 2017 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 2018 | hasBin: true 2019 | dependencies: 2020 | js-tokens: 4.0.0 2021 | 2022 | /lower-case@2.0.2: 2023 | resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==} 2024 | dependencies: 2025 | tslib: 2.6.2 2026 | dev: false 2027 | 2028 | /lru-cache@6.0.0: 2029 | resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} 2030 | engines: {node: '>=10'} 2031 | dependencies: 2032 | yallist: 4.0.0 2033 | dev: true 2034 | 2035 | /map-obj@4.3.0: 2036 | resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==} 2037 | engines: {node: '>=8'} 2038 | dev: false 2039 | 2040 | /merge2@1.4.1: 2041 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 2042 | engines: {node: '>= 8'} 2043 | dev: true 2044 | 2045 | /micromatch@4.0.5: 2046 | resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} 2047 | engines: {node: '>=8.6'} 2048 | dependencies: 2049 | braces: 3.0.2 2050 | picomatch: 2.3.1 2051 | dev: true 2052 | 2053 | /mime-db@1.52.0: 2054 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 2055 | engines: {node: '>= 0.6'} 2056 | dev: false 2057 | 2058 | /mime-types@2.1.35: 2059 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 2060 | engines: {node: '>= 0.6'} 2061 | dependencies: 2062 | mime-db: 1.52.0 2063 | dev: false 2064 | 2065 | /minimatch@3.1.2: 2066 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 2067 | dependencies: 2068 | brace-expansion: 1.1.11 2069 | dev: true 2070 | 2071 | /minimist@1.2.8: 2072 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 2073 | dev: true 2074 | 2075 | /ms@2.1.2: 2076 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 2077 | dev: true 2078 | 2079 | /ms@2.1.3: 2080 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 2081 | dev: true 2082 | 2083 | /mz@2.7.0: 2084 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 2085 | dependencies: 2086 | any-promise: 1.3.0 2087 | object-assign: 4.1.1 2088 | thenify-all: 1.6.0 2089 | dev: true 2090 | 2091 | /nanoid@3.3.6: 2092 | resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} 2093 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 2094 | hasBin: true 2095 | 2096 | /natural-compare@1.4.0: 2097 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 2098 | dev: true 2099 | 2100 | /next@14.0.0(react-dom@18.2.0)(react@18.2.0): 2101 | resolution: {integrity: sha512-J0jHKBJpB9zd4+c153sair0sz44mbaCHxggs8ryVXSFBuBqJ8XdE9/ozoV85xGh2VnSjahwntBZZgsihL9QznA==} 2102 | engines: {node: '>=18.17.0'} 2103 | hasBin: true 2104 | peerDependencies: 2105 | '@opentelemetry/api': ^1.1.0 2106 | react: ^18.2.0 2107 | react-dom: ^18.2.0 2108 | sass: ^1.3.0 2109 | peerDependenciesMeta: 2110 | '@opentelemetry/api': 2111 | optional: true 2112 | sass: 2113 | optional: true 2114 | dependencies: 2115 | '@next/env': 14.0.0 2116 | '@swc/helpers': 0.5.2 2117 | busboy: 1.6.0 2118 | caniuse-lite: 1.0.30001553 2119 | postcss: 8.4.31 2120 | react: 18.2.0 2121 | react-dom: 18.2.0(react@18.2.0) 2122 | styled-jsx: 5.1.1(react@18.2.0) 2123 | watchpack: 2.4.0 2124 | optionalDependencies: 2125 | '@next/swc-darwin-arm64': 14.0.0 2126 | '@next/swc-darwin-x64': 14.0.0 2127 | '@next/swc-linux-arm64-gnu': 14.0.0 2128 | '@next/swc-linux-arm64-musl': 14.0.0 2129 | '@next/swc-linux-x64-gnu': 14.0.0 2130 | '@next/swc-linux-x64-musl': 14.0.0 2131 | '@next/swc-win32-arm64-msvc': 14.0.0 2132 | '@next/swc-win32-ia32-msvc': 14.0.0 2133 | '@next/swc-win32-x64-msvc': 14.0.0 2134 | transitivePeerDependencies: 2135 | - '@babel/core' 2136 | - babel-plugin-macros 2137 | dev: false 2138 | 2139 | /no-case@3.0.4: 2140 | resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} 2141 | dependencies: 2142 | lower-case: 2.0.2 2143 | tslib: 2.6.2 2144 | dev: false 2145 | 2146 | /node-fetch-native@1.0.1: 2147 | resolution: {integrity: sha512-VzW+TAk2wE4X9maiKMlT+GsPU4OMmR1U9CrHSmd3DFLn2IcZ9VJ6M6BBugGfYUnPCLSYxXdZy17M0BEJyhUTwg==} 2148 | dev: false 2149 | 2150 | /node-releases@2.0.13: 2151 | resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} 2152 | dev: true 2153 | 2154 | /normalize-path@3.0.0: 2155 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 2156 | engines: {node: '>=0.10.0'} 2157 | dev: true 2158 | 2159 | /normalize-range@0.1.2: 2160 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} 2161 | engines: {node: '>=0.10.0'} 2162 | dev: true 2163 | 2164 | /object-assign@4.1.1: 2165 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 2166 | engines: {node: '>=0.10.0'} 2167 | 2168 | /object-hash@3.0.0: 2169 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} 2170 | engines: {node: '>= 6'} 2171 | dev: true 2172 | 2173 | /object-inspect@1.13.1: 2174 | resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} 2175 | 2176 | /object-keys@1.1.1: 2177 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 2178 | engines: {node: '>= 0.4'} 2179 | dev: true 2180 | 2181 | /object.assign@4.1.4: 2182 | resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} 2183 | engines: {node: '>= 0.4'} 2184 | dependencies: 2185 | call-bind: 1.0.5 2186 | define-properties: 1.2.1 2187 | has-symbols: 1.0.3 2188 | object-keys: 1.1.1 2189 | dev: true 2190 | 2191 | /object.entries@1.1.7: 2192 | resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} 2193 | engines: {node: '>= 0.4'} 2194 | dependencies: 2195 | call-bind: 1.0.5 2196 | define-properties: 1.2.1 2197 | es-abstract: 1.22.3 2198 | dev: true 2199 | 2200 | /object.fromentries@2.0.7: 2201 | resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} 2202 | engines: {node: '>= 0.4'} 2203 | dependencies: 2204 | call-bind: 1.0.5 2205 | define-properties: 1.2.1 2206 | es-abstract: 1.22.3 2207 | dev: true 2208 | 2209 | /object.groupby@1.0.1: 2210 | resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} 2211 | dependencies: 2212 | call-bind: 1.0.5 2213 | define-properties: 1.2.1 2214 | es-abstract: 1.22.3 2215 | get-intrinsic: 1.2.2 2216 | dev: true 2217 | 2218 | /object.hasown@1.1.3: 2219 | resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==} 2220 | dependencies: 2221 | define-properties: 1.2.1 2222 | es-abstract: 1.22.3 2223 | dev: true 2224 | 2225 | /object.values@1.1.7: 2226 | resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} 2227 | engines: {node: '>= 0.4'} 2228 | dependencies: 2229 | call-bind: 1.0.5 2230 | define-properties: 1.2.1 2231 | es-abstract: 1.22.3 2232 | dev: true 2233 | 2234 | /once@1.4.0: 2235 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 2236 | dependencies: 2237 | wrappy: 1.0.2 2238 | dev: true 2239 | 2240 | /optionator@0.9.3: 2241 | resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==} 2242 | engines: {node: '>= 0.8.0'} 2243 | dependencies: 2244 | '@aashutoshrathi/word-wrap': 1.2.6 2245 | deep-is: 0.1.4 2246 | fast-levenshtein: 2.0.6 2247 | levn: 0.4.1 2248 | prelude-ls: 1.2.1 2249 | type-check: 0.4.0 2250 | dev: true 2251 | 2252 | /p-limit@3.1.0: 2253 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 2254 | engines: {node: '>=10'} 2255 | dependencies: 2256 | yocto-queue: 0.1.0 2257 | dev: true 2258 | 2259 | /p-locate@5.0.0: 2260 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 2261 | engines: {node: '>=10'} 2262 | dependencies: 2263 | p-limit: 3.1.0 2264 | dev: true 2265 | 2266 | /parent-module@1.0.1: 2267 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 2268 | engines: {node: '>=6'} 2269 | dependencies: 2270 | callsites: 3.1.0 2271 | dev: true 2272 | 2273 | /path-exists@4.0.0: 2274 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 2275 | engines: {node: '>=8'} 2276 | dev: true 2277 | 2278 | /path-is-absolute@1.0.1: 2279 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 2280 | engines: {node: '>=0.10.0'} 2281 | dev: true 2282 | 2283 | /path-key@3.1.1: 2284 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 2285 | engines: {node: '>=8'} 2286 | dev: true 2287 | 2288 | /path-parse@1.0.7: 2289 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 2290 | dev: true 2291 | 2292 | /path-to-regexp@6.2.1: 2293 | resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} 2294 | dev: false 2295 | 2296 | /path-type@4.0.0: 2297 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 2298 | engines: {node: '>=8'} 2299 | dev: true 2300 | 2301 | /picocolors@1.0.0: 2302 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 2303 | 2304 | /picomatch@2.3.1: 2305 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 2306 | engines: {node: '>=8.6'} 2307 | dev: true 2308 | 2309 | /pify@2.3.0: 2310 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} 2311 | engines: {node: '>=0.10.0'} 2312 | dev: true 2313 | 2314 | /pirates@4.0.6: 2315 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 2316 | engines: {node: '>= 6'} 2317 | dev: true 2318 | 2319 | /postcss-import@15.1.0(postcss@8.4.31): 2320 | resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} 2321 | engines: {node: '>=14.0.0'} 2322 | peerDependencies: 2323 | postcss: ^8.0.0 2324 | dependencies: 2325 | postcss: 8.4.31 2326 | postcss-value-parser: 4.2.0 2327 | read-cache: 1.0.0 2328 | resolve: 1.22.8 2329 | dev: true 2330 | 2331 | /postcss-js@4.0.1(postcss@8.4.31): 2332 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} 2333 | engines: {node: ^12 || ^14 || >= 16} 2334 | peerDependencies: 2335 | postcss: ^8.4.21 2336 | dependencies: 2337 | camelcase-css: 2.0.1 2338 | postcss: 8.4.31 2339 | dev: true 2340 | 2341 | /postcss-load-config@4.0.1(postcss@8.4.31): 2342 | resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} 2343 | engines: {node: '>= 14'} 2344 | peerDependencies: 2345 | postcss: '>=8.0.9' 2346 | ts-node: '>=9.0.0' 2347 | peerDependenciesMeta: 2348 | postcss: 2349 | optional: true 2350 | ts-node: 2351 | optional: true 2352 | dependencies: 2353 | lilconfig: 2.1.0 2354 | postcss: 8.4.31 2355 | yaml: 2.3.3 2356 | dev: true 2357 | 2358 | /postcss-nested@6.0.1(postcss@8.4.31): 2359 | resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} 2360 | engines: {node: '>=12.0'} 2361 | peerDependencies: 2362 | postcss: ^8.2.14 2363 | dependencies: 2364 | postcss: 8.4.31 2365 | postcss-selector-parser: 6.0.13 2366 | dev: true 2367 | 2368 | /postcss-selector-parser@6.0.13: 2369 | resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} 2370 | engines: {node: '>=4'} 2371 | dependencies: 2372 | cssesc: 3.0.0 2373 | util-deprecate: 1.0.2 2374 | dev: true 2375 | 2376 | /postcss-value-parser@4.2.0: 2377 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 2378 | dev: true 2379 | 2380 | /postcss@8.4.31: 2381 | resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} 2382 | engines: {node: ^10 || ^12 || >=14} 2383 | dependencies: 2384 | nanoid: 3.3.6 2385 | picocolors: 1.0.0 2386 | source-map-js: 1.0.2 2387 | 2388 | /prelude-ls@1.2.1: 2389 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 2390 | engines: {node: '>= 0.8.0'} 2391 | dev: true 2392 | 2393 | /prop-types@15.8.1: 2394 | resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} 2395 | dependencies: 2396 | loose-envify: 1.4.0 2397 | object-assign: 4.1.1 2398 | react-is: 16.13.1 2399 | 2400 | /punycode@2.3.0: 2401 | resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} 2402 | engines: {node: '>=6'} 2403 | dev: true 2404 | 2405 | /pvtsutils@1.3.5: 2406 | resolution: {integrity: sha512-ARvb14YB9Nm2Xi6nBq1ZX6dAM0FsJnuk+31aUp4TrcZEdKUlSqOqsxJHUPJDNE3qiIp+iUPEIeR6Je/tgV7zsA==} 2407 | dependencies: 2408 | tslib: 2.6.2 2409 | dev: false 2410 | 2411 | /pvutils@1.1.3: 2412 | resolution: {integrity: sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==} 2413 | engines: {node: '>=6.0.0'} 2414 | dev: false 2415 | 2416 | /qs@6.11.2: 2417 | resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==} 2418 | engines: {node: '>=0.6'} 2419 | dependencies: 2420 | side-channel: 1.0.4 2421 | dev: false 2422 | 2423 | /queue-microtask@1.2.3: 2424 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 2425 | dev: true 2426 | 2427 | /quick-lru@4.0.1: 2428 | resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==} 2429 | engines: {node: '>=8'} 2430 | dev: false 2431 | 2432 | /react-dom@18.2.0(react@18.2.0): 2433 | resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} 2434 | peerDependencies: 2435 | react: ^18.2.0 2436 | dependencies: 2437 | loose-envify: 1.4.0 2438 | react: 18.2.0 2439 | scheduler: 0.23.0 2440 | dev: false 2441 | 2442 | /react-is@16.13.1: 2443 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} 2444 | 2445 | /react@18.2.0: 2446 | resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} 2447 | engines: {node: '>=0.10.0'} 2448 | dependencies: 2449 | loose-envify: 1.4.0 2450 | dev: false 2451 | 2452 | /read-cache@1.0.0: 2453 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} 2454 | dependencies: 2455 | pify: 2.3.0 2456 | dev: true 2457 | 2458 | /readdirp@3.6.0: 2459 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 2460 | engines: {node: '>=8.10.0'} 2461 | dependencies: 2462 | picomatch: 2.3.1 2463 | dev: true 2464 | 2465 | /reflect.getprototypeof@1.0.4: 2466 | resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==} 2467 | engines: {node: '>= 0.4'} 2468 | dependencies: 2469 | call-bind: 1.0.5 2470 | define-properties: 1.2.1 2471 | es-abstract: 1.22.3 2472 | get-intrinsic: 1.2.2 2473 | globalthis: 1.0.3 2474 | which-builtin-type: 1.1.3 2475 | dev: true 2476 | 2477 | /regenerator-runtime@0.14.0: 2478 | resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==} 2479 | dev: true 2480 | 2481 | /regexp.prototype.flags@1.5.1: 2482 | resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} 2483 | engines: {node: '>= 0.4'} 2484 | dependencies: 2485 | call-bind: 1.0.5 2486 | define-properties: 1.2.1 2487 | set-function-name: 2.0.1 2488 | dev: true 2489 | 2490 | /resolve-from@4.0.0: 2491 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 2492 | engines: {node: '>=4'} 2493 | dev: true 2494 | 2495 | /resolve-pkg-maps@1.0.0: 2496 | resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 2497 | dev: true 2498 | 2499 | /resolve@1.22.8: 2500 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 2501 | hasBin: true 2502 | dependencies: 2503 | is-core-module: 2.13.1 2504 | path-parse: 1.0.7 2505 | supports-preserve-symlinks-flag: 1.0.0 2506 | dev: true 2507 | 2508 | /resolve@2.0.0-next.5: 2509 | resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} 2510 | hasBin: true 2511 | dependencies: 2512 | is-core-module: 2.13.1 2513 | path-parse: 1.0.7 2514 | supports-preserve-symlinks-flag: 1.0.0 2515 | dev: true 2516 | 2517 | /reusify@1.0.4: 2518 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 2519 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 2520 | dev: true 2521 | 2522 | /rimraf@3.0.2: 2523 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 2524 | hasBin: true 2525 | dependencies: 2526 | glob: 7.2.3 2527 | dev: true 2528 | 2529 | /run-parallel@1.2.0: 2530 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 2531 | dependencies: 2532 | queue-microtask: 1.2.3 2533 | dev: true 2534 | 2535 | /safe-array-concat@1.0.1: 2536 | resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} 2537 | engines: {node: '>=0.4'} 2538 | dependencies: 2539 | call-bind: 1.0.5 2540 | get-intrinsic: 1.2.2 2541 | has-symbols: 1.0.3 2542 | isarray: 2.0.5 2543 | dev: true 2544 | 2545 | /safe-regex-test@1.0.0: 2546 | resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} 2547 | dependencies: 2548 | call-bind: 1.0.5 2549 | get-intrinsic: 1.2.2 2550 | is-regex: 1.1.4 2551 | dev: true 2552 | 2553 | /scheduler@0.23.0: 2554 | resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} 2555 | dependencies: 2556 | loose-envify: 1.4.0 2557 | dev: false 2558 | 2559 | /semver@6.3.1: 2560 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 2561 | hasBin: true 2562 | dev: true 2563 | 2564 | /semver@7.5.4: 2565 | resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} 2566 | engines: {node: '>=10'} 2567 | hasBin: true 2568 | dependencies: 2569 | lru-cache: 6.0.0 2570 | dev: true 2571 | 2572 | /set-function-length@1.1.1: 2573 | resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} 2574 | engines: {node: '>= 0.4'} 2575 | dependencies: 2576 | define-data-property: 1.1.1 2577 | get-intrinsic: 1.2.2 2578 | gopd: 1.0.1 2579 | has-property-descriptors: 1.0.1 2580 | 2581 | /set-function-name@2.0.1: 2582 | resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} 2583 | engines: {node: '>= 0.4'} 2584 | dependencies: 2585 | define-data-property: 1.1.1 2586 | functions-have-names: 1.2.3 2587 | has-property-descriptors: 1.0.1 2588 | dev: true 2589 | 2590 | /shebang-command@2.0.0: 2591 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 2592 | engines: {node: '>=8'} 2593 | dependencies: 2594 | shebang-regex: 3.0.0 2595 | dev: true 2596 | 2597 | /shebang-regex@3.0.0: 2598 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 2599 | engines: {node: '>=8'} 2600 | dev: true 2601 | 2602 | /side-channel@1.0.4: 2603 | resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} 2604 | dependencies: 2605 | call-bind: 1.0.5 2606 | get-intrinsic: 1.2.2 2607 | object-inspect: 1.13.1 2608 | 2609 | /slash@3.0.0: 2610 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 2611 | engines: {node: '>=8'} 2612 | dev: true 2613 | 2614 | /snake-case@3.0.4: 2615 | resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} 2616 | dependencies: 2617 | dot-case: 3.0.4 2618 | tslib: 2.6.2 2619 | dev: false 2620 | 2621 | /snakecase-keys@3.2.1: 2622 | resolution: {integrity: sha512-CjU5pyRfwOtaOITYv5C8DzpZ8XA/ieRsDpr93HI2r6e3YInC6moZpSQbmUtg8cTk58tq2x3jcG2gv+p1IZGmMA==} 2623 | engines: {node: '>=8'} 2624 | dependencies: 2625 | map-obj: 4.3.0 2626 | to-snake-case: 1.0.0 2627 | dev: false 2628 | 2629 | /snakecase-keys@5.4.4: 2630 | resolution: {integrity: sha512-YTywJG93yxwHLgrYLZjlC75moVEX04LZM4FHfihjHe1FCXm+QaLOFfSf535aXOAd0ArVQMWUAe8ZPm4VtWyXaA==} 2631 | engines: {node: '>=12'} 2632 | dependencies: 2633 | map-obj: 4.3.0 2634 | snake-case: 3.0.4 2635 | type-fest: 2.19.0 2636 | dev: false 2637 | 2638 | /source-map-js@1.0.2: 2639 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 2640 | engines: {node: '>=0.10.0'} 2641 | 2642 | /streamsearch@1.1.0: 2643 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} 2644 | engines: {node: '>=10.0.0'} 2645 | dev: false 2646 | 2647 | /string.prototype.matchall@4.0.10: 2648 | resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==} 2649 | dependencies: 2650 | call-bind: 1.0.5 2651 | define-properties: 1.2.1 2652 | es-abstract: 1.22.3 2653 | get-intrinsic: 1.2.2 2654 | has-symbols: 1.0.3 2655 | internal-slot: 1.0.6 2656 | regexp.prototype.flags: 1.5.1 2657 | set-function-name: 2.0.1 2658 | side-channel: 1.0.4 2659 | dev: true 2660 | 2661 | /string.prototype.trim@1.2.8: 2662 | resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} 2663 | engines: {node: '>= 0.4'} 2664 | dependencies: 2665 | call-bind: 1.0.5 2666 | define-properties: 1.2.1 2667 | es-abstract: 1.22.3 2668 | dev: true 2669 | 2670 | /string.prototype.trimend@1.0.7: 2671 | resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} 2672 | dependencies: 2673 | call-bind: 1.0.5 2674 | define-properties: 1.2.1 2675 | es-abstract: 1.22.3 2676 | dev: true 2677 | 2678 | /string.prototype.trimstart@1.0.7: 2679 | resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} 2680 | dependencies: 2681 | call-bind: 1.0.5 2682 | define-properties: 1.2.1 2683 | es-abstract: 1.22.3 2684 | dev: true 2685 | 2686 | /strip-ansi@6.0.1: 2687 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 2688 | engines: {node: '>=8'} 2689 | dependencies: 2690 | ansi-regex: 5.0.1 2691 | dev: true 2692 | 2693 | /strip-bom@3.0.0: 2694 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 2695 | engines: {node: '>=4'} 2696 | dev: true 2697 | 2698 | /strip-json-comments@3.1.1: 2699 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 2700 | engines: {node: '>=8'} 2701 | dev: true 2702 | 2703 | /stripe@14.2.0: 2704 | resolution: {integrity: sha512-lMjDOyJbt+NVSDvkTathSP7uEV35l7oU8UrhBJrYD8lUi43BWujq8E9QHd3o9D2KPBR1Cze5DCw5s1btnLfdMA==} 2705 | engines: {node: '>=12.*'} 2706 | dependencies: 2707 | '@types/node': 20.8.7 2708 | qs: 6.11.2 2709 | dev: false 2710 | 2711 | /styled-jsx@5.1.1(react@18.2.0): 2712 | resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} 2713 | engines: {node: '>= 12.0.0'} 2714 | peerDependencies: 2715 | '@babel/core': '*' 2716 | babel-plugin-macros: '*' 2717 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' 2718 | peerDependenciesMeta: 2719 | '@babel/core': 2720 | optional: true 2721 | babel-plugin-macros: 2722 | optional: true 2723 | dependencies: 2724 | client-only: 0.0.1 2725 | react: 18.2.0 2726 | dev: false 2727 | 2728 | /sucrase@3.34.0: 2729 | resolution: {integrity: sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==} 2730 | engines: {node: '>=8'} 2731 | hasBin: true 2732 | dependencies: 2733 | '@jridgewell/gen-mapping': 0.3.3 2734 | commander: 4.1.1 2735 | glob: 7.1.6 2736 | lines-and-columns: 1.2.4 2737 | mz: 2.7.0 2738 | pirates: 4.0.6 2739 | ts-interface-checker: 0.1.13 2740 | dev: true 2741 | 2742 | /supports-color@7.2.0: 2743 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 2744 | engines: {node: '>=8'} 2745 | dependencies: 2746 | has-flag: 4.0.0 2747 | dev: true 2748 | 2749 | /supports-preserve-symlinks-flag@1.0.0: 2750 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 2751 | engines: {node: '>= 0.4'} 2752 | dev: true 2753 | 2754 | /swr@2.2.0(react@18.2.0): 2755 | resolution: {integrity: sha512-AjqHOv2lAhkuUdIiBu9xbuettzAzWXmCEcLONNKJRba87WAefz8Ca9d6ds/SzrPc235n1IxWYdhJ2zF3MNUaoQ==} 2756 | peerDependencies: 2757 | react: ^16.11.0 || ^17.0.0 || ^18.0.0 2758 | dependencies: 2759 | react: 18.2.0 2760 | use-sync-external-store: 1.2.0(react@18.2.0) 2761 | dev: false 2762 | 2763 | /tailwindcss@3.3.3: 2764 | resolution: {integrity: sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==} 2765 | engines: {node: '>=14.0.0'} 2766 | hasBin: true 2767 | dependencies: 2768 | '@alloc/quick-lru': 5.2.0 2769 | arg: 5.0.2 2770 | chokidar: 3.5.3 2771 | didyoumean: 1.2.2 2772 | dlv: 1.1.3 2773 | fast-glob: 3.3.1 2774 | glob-parent: 6.0.2 2775 | is-glob: 4.0.3 2776 | jiti: 1.20.0 2777 | lilconfig: 2.1.0 2778 | micromatch: 4.0.5 2779 | normalize-path: 3.0.0 2780 | object-hash: 3.0.0 2781 | picocolors: 1.0.0 2782 | postcss: 8.4.31 2783 | postcss-import: 15.1.0(postcss@8.4.31) 2784 | postcss-js: 4.0.1(postcss@8.4.31) 2785 | postcss-load-config: 4.0.1(postcss@8.4.31) 2786 | postcss-nested: 6.0.1(postcss@8.4.31) 2787 | postcss-selector-parser: 6.0.13 2788 | resolve: 1.22.8 2789 | sucrase: 3.34.0 2790 | transitivePeerDependencies: 2791 | - ts-node 2792 | dev: true 2793 | 2794 | /tapable@2.2.1: 2795 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} 2796 | engines: {node: '>=6'} 2797 | dev: true 2798 | 2799 | /text-table@0.2.0: 2800 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 2801 | dev: true 2802 | 2803 | /thenify-all@1.6.0: 2804 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 2805 | engines: {node: '>=0.8'} 2806 | dependencies: 2807 | thenify: 3.3.1 2808 | dev: true 2809 | 2810 | /thenify@3.3.1: 2811 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 2812 | dependencies: 2813 | any-promise: 1.3.0 2814 | dev: true 2815 | 2816 | /to-no-case@1.0.2: 2817 | resolution: {integrity: sha512-Z3g735FxuZY8rodxV4gH7LxClE4H0hTIyHNIHdk+vpQxjLm0cwnKXq/OFVZ76SOQmto7txVcwSCwkU5kqp+FKg==} 2818 | dev: false 2819 | 2820 | /to-regex-range@5.0.1: 2821 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 2822 | engines: {node: '>=8.0'} 2823 | dependencies: 2824 | is-number: 7.0.0 2825 | dev: true 2826 | 2827 | /to-snake-case@1.0.0: 2828 | resolution: {integrity: sha512-joRpzBAk1Bhi2eGEYBjukEWHOe/IvclOkiJl3DtA91jV6NwQ3MwXA4FHYeqk8BNp/D8bmi9tcNbRu/SozP0jbQ==} 2829 | dependencies: 2830 | to-space-case: 1.0.0 2831 | dev: false 2832 | 2833 | /to-space-case@1.0.0: 2834 | resolution: {integrity: sha512-rLdvwXZ39VOn1IxGL3V6ZstoTbwLRckQmn/U8ZDLuWwIXNpuZDhQ3AiRUlhTbOXFVE9C+dR51wM0CBDhk31VcA==} 2835 | dependencies: 2836 | to-no-case: 1.0.2 2837 | dev: false 2838 | 2839 | /ts-api-utils@1.0.3(typescript@5.2.2): 2840 | resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} 2841 | engines: {node: '>=16.13.0'} 2842 | peerDependencies: 2843 | typescript: '>=4.2.0' 2844 | dependencies: 2845 | typescript: 5.2.2 2846 | dev: true 2847 | 2848 | /ts-interface-checker@0.1.13: 2849 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 2850 | dev: true 2851 | 2852 | /tsconfig-paths@3.14.2: 2853 | resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==} 2854 | dependencies: 2855 | '@types/json5': 0.0.29 2856 | json5: 1.0.2 2857 | minimist: 1.2.8 2858 | strip-bom: 3.0.0 2859 | dev: true 2860 | 2861 | /tslib@2.4.1: 2862 | resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} 2863 | dev: false 2864 | 2865 | /tslib@2.6.2: 2866 | resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} 2867 | dev: false 2868 | 2869 | /type-check@0.4.0: 2870 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 2871 | engines: {node: '>= 0.8.0'} 2872 | dependencies: 2873 | prelude-ls: 1.2.1 2874 | dev: true 2875 | 2876 | /type-fest@0.20.2: 2877 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 2878 | engines: {node: '>=10'} 2879 | dev: true 2880 | 2881 | /type-fest@2.19.0: 2882 | resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} 2883 | engines: {node: '>=12.20'} 2884 | dev: false 2885 | 2886 | /typed-array-buffer@1.0.0: 2887 | resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} 2888 | engines: {node: '>= 0.4'} 2889 | dependencies: 2890 | call-bind: 1.0.5 2891 | get-intrinsic: 1.2.2 2892 | is-typed-array: 1.1.12 2893 | dev: true 2894 | 2895 | /typed-array-byte-length@1.0.0: 2896 | resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} 2897 | engines: {node: '>= 0.4'} 2898 | dependencies: 2899 | call-bind: 1.0.5 2900 | for-each: 0.3.3 2901 | has-proto: 1.0.1 2902 | is-typed-array: 1.1.12 2903 | dev: true 2904 | 2905 | /typed-array-byte-offset@1.0.0: 2906 | resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} 2907 | engines: {node: '>= 0.4'} 2908 | dependencies: 2909 | available-typed-arrays: 1.0.5 2910 | call-bind: 1.0.5 2911 | for-each: 0.3.3 2912 | has-proto: 1.0.1 2913 | is-typed-array: 1.1.12 2914 | dev: true 2915 | 2916 | /typed-array-length@1.0.4: 2917 | resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} 2918 | dependencies: 2919 | call-bind: 1.0.5 2920 | for-each: 0.3.3 2921 | is-typed-array: 1.1.12 2922 | dev: true 2923 | 2924 | /typescript@5.2.2: 2925 | resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==} 2926 | engines: {node: '>=14.17'} 2927 | hasBin: true 2928 | dev: true 2929 | 2930 | /unbox-primitive@1.0.2: 2931 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} 2932 | dependencies: 2933 | call-bind: 1.0.5 2934 | has-bigints: 1.0.2 2935 | has-symbols: 1.0.3 2936 | which-boxed-primitive: 1.0.2 2937 | dev: true 2938 | 2939 | /undici-types@5.25.3: 2940 | resolution: {integrity: sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==} 2941 | 2942 | /update-browserslist-db@1.0.13(browserslist@4.22.1): 2943 | resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} 2944 | hasBin: true 2945 | peerDependencies: 2946 | browserslist: '>= 4.21.0' 2947 | dependencies: 2948 | browserslist: 4.22.1 2949 | escalade: 3.1.1 2950 | picocolors: 1.0.0 2951 | dev: true 2952 | 2953 | /uri-js@4.4.1: 2954 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 2955 | dependencies: 2956 | punycode: 2.3.0 2957 | dev: true 2958 | 2959 | /use-sync-external-store@1.2.0(react@18.2.0): 2960 | resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} 2961 | peerDependencies: 2962 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 2963 | dependencies: 2964 | react: 18.2.0 2965 | dev: false 2966 | 2967 | /util-deprecate@1.0.2: 2968 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 2969 | dev: true 2970 | 2971 | /watchpack@2.4.0: 2972 | resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} 2973 | engines: {node: '>=10.13.0'} 2974 | dependencies: 2975 | glob-to-regexp: 0.4.1 2976 | graceful-fs: 4.2.11 2977 | dev: false 2978 | 2979 | /webcrypto-core@1.7.7: 2980 | resolution: {integrity: sha512-7FjigXNsBfopEj+5DV2nhNpfic2vumtjjgPmeDKk45z+MJwXKKfhPB7118Pfzrmh4jqOMST6Ch37iPAHoImg5g==} 2981 | dependencies: 2982 | '@peculiar/asn1-schema': 2.3.8 2983 | '@peculiar/json-schema': 1.1.12 2984 | asn1js: 3.0.5 2985 | pvtsutils: 1.3.5 2986 | tslib: 2.6.2 2987 | dev: false 2988 | 2989 | /which-boxed-primitive@1.0.2: 2990 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} 2991 | dependencies: 2992 | is-bigint: 1.0.4 2993 | is-boolean-object: 1.1.2 2994 | is-number-object: 1.0.7 2995 | is-string: 1.0.7 2996 | is-symbol: 1.0.4 2997 | dev: true 2998 | 2999 | /which-builtin-type@1.1.3: 3000 | resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} 3001 | engines: {node: '>= 0.4'} 3002 | dependencies: 3003 | function.prototype.name: 1.1.6 3004 | has-tostringtag: 1.0.0 3005 | is-async-function: 2.0.0 3006 | is-date-object: 1.0.5 3007 | is-finalizationregistry: 1.0.2 3008 | is-generator-function: 1.0.10 3009 | is-regex: 1.1.4 3010 | is-weakref: 1.0.2 3011 | isarray: 2.0.5 3012 | which-boxed-primitive: 1.0.2 3013 | which-collection: 1.0.1 3014 | which-typed-array: 1.1.13 3015 | dev: true 3016 | 3017 | /which-collection@1.0.1: 3018 | resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} 3019 | dependencies: 3020 | is-map: 2.0.2 3021 | is-set: 2.0.2 3022 | is-weakmap: 2.0.1 3023 | is-weakset: 2.0.2 3024 | dev: true 3025 | 3026 | /which-typed-array@1.1.13: 3027 | resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} 3028 | engines: {node: '>= 0.4'} 3029 | dependencies: 3030 | available-typed-arrays: 1.0.5 3031 | call-bind: 1.0.5 3032 | for-each: 0.3.3 3033 | gopd: 1.0.1 3034 | has-tostringtag: 1.0.0 3035 | dev: true 3036 | 3037 | /which@2.0.2: 3038 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 3039 | engines: {node: '>= 8'} 3040 | hasBin: true 3041 | dependencies: 3042 | isexe: 2.0.0 3043 | dev: true 3044 | 3045 | /wrappy@1.0.2: 3046 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 3047 | dev: true 3048 | 3049 | /yallist@4.0.0: 3050 | resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} 3051 | dev: true 3052 | 3053 | /yaml@2.3.3: 3054 | resolution: {integrity: sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ==} 3055 | engines: {node: '>= 14'} 3056 | dev: true 3057 | 3058 | /yocto-queue@0.1.0: 3059 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 3060 | engines: {node: '>=10'} 3061 | dev: true 3062 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {}, 5 | }, 6 | } 7 | -------------------------------------------------------------------------------- /public/Clerk-Image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JacobMGEvans/stripe-with-webhooks-and-metadata/b429044cf36b3b714ffac4e8053531e7f2606031/public/Clerk-Image.png -------------------------------------------------------------------------------- /src/app/api/stripe-payment/route.ts: -------------------------------------------------------------------------------- 1 | import { auth } from "@clerk/nextjs"; 2 | import { NextRequest, NextResponse } from "next/server"; 3 | import Stripe from "stripe"; 4 | 5 | const stripe = new Stripe(process.env.STRIPE_SECRET_KEY as string, { 6 | apiVersion: "2023-10-16", 7 | }); 8 | 9 | export async function POST(req: NextRequest) { 10 | const { userId } = auth(); 11 | const { unit_amount, quantity } = await req.json(); 12 | 13 | try { 14 | const session = await stripe.checkout.sessions.create({ 15 | payment_method_types: ["card"], 16 | line_items: [ 17 | { 18 | price_data: { 19 | currency: "usd", 20 | product_data: { 21 | name: "Membership", 22 | }, 23 | unit_amount, 24 | }, 25 | quantity, 26 | }, 27 | ], 28 | metadata: { 29 | userId, 30 | }, 31 | mode: "payment", 32 | success_url: `${req.headers.get("origin")}/members`, 33 | cancel_url: `${req.headers.get("origin")}/`, 34 | }); 35 | 36 | return NextResponse.json({ session }, { status: 200 }); 37 | } catch (error) { 38 | if (error instanceof Error) 39 | throw new Error( 40 | `Error creating Stripe checkout session: ${error.message}`, 41 | { cause: error } 42 | ); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /src/app/api/stripe-webhook/route.ts: -------------------------------------------------------------------------------- 1 | import { clerkClient } from "@clerk/nextjs"; 2 | import { NextRequest, NextResponse } from "next/server"; 3 | import Stripe from "stripe"; 4 | 5 | const stripe = new Stripe(process.env.STRIPE_SECRET_KEY as string, { 6 | apiVersion: "2023-10-16", 7 | }); 8 | const webhookSecret = process.env.STRIPE_WEBHOOK_SECRET as string; 9 | 10 | export const config = { 11 | api: { 12 | bodyParser: false, 13 | }, 14 | }; 15 | 16 | export async function POST(req: NextRequest) { 17 | if (req === null) 18 | throw new Error(`Missing userId or request`, { cause: { req } }); 19 | 20 | const stripeSignature = req.headers.get("stripe-signature"); 21 | 22 | if (stripeSignature === null) throw new Error("stripeSignature is null"); 23 | 24 | let event; 25 | try { 26 | event = stripe.webhooks.constructEvent( 27 | await req.text(), 28 | stripeSignature, 29 | webhookSecret 30 | ); 31 | } catch (error) { 32 | if (error instanceof Error) 33 | return NextResponse.json( 34 | { 35 | error: error.message, 36 | }, 37 | { 38 | status: 400, 39 | } 40 | ); 41 | } 42 | 43 | if (event === undefined) throw new Error(`event is undefined`); 44 | switch (event.type) { 45 | case "checkout.session.completed": 46 | const session = event.data.object; 47 | console.log(`Payment successful for session ID: ${session.id}`); 48 | clerkClient.users.updateUserMetadata( 49 | event.data.object.metadata?.userId as string, 50 | { 51 | publicMetadata: { 52 | stripe: { 53 | status: session.status, 54 | payment: session.payment_status, 55 | }, 56 | }, 57 | } 58 | ); 59 | 60 | break; 61 | default: 62 | console.warn(`Unhandled event type: ${event.type}`); 63 | } 64 | 65 | NextResponse.json({ status: 200, message: "success" }); 66 | } 67 | -------------------------------------------------------------------------------- /src/app/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JacobMGEvans/stripe-with-webhooks-and-metadata/b429044cf36b3b714ffac4e8053531e7f2606031/src/app/favicon.ico -------------------------------------------------------------------------------- /src/app/globals.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | :root { 6 | --foreground-rgb: 0, 0, 0; 7 | --background-start-rgb: 214, 219, 220; 8 | --background-end-rgb: 255, 255, 255; 9 | } 10 | 11 | @media (prefers-color-scheme: dark) { 12 | :root { 13 | --foreground-rgb: 255, 255, 255; 14 | --background-start-rgb: 0, 0, 0; 15 | --background-end-rgb: 0, 0, 0; 16 | } 17 | } 18 | 19 | body { 20 | color: rgb(var(--foreground-rgb)); 21 | background: linear-gradient( 22 | to bottom, 23 | transparent, 24 | rgb(var(--background-end-rgb)) 25 | ) 26 | rgb(var(--background-start-rgb)); 27 | } 28 | -------------------------------------------------------------------------------- /src/app/layout.tsx: -------------------------------------------------------------------------------- 1 | import type { Metadata } from "next"; 2 | import "./globals.css"; 3 | 4 | import { ClerkProvider, UserButton } from "@clerk/nextjs"; 5 | 6 | export const metadata: Metadata = { 7 | title: "Stripe with Webhooks & Metadata", 8 | }; 9 | 10 | export default function RootLayout({ 11 | children, 12 | }: { 13 | children: React.ReactNode; 14 | }) { 15 | return ( 16 | 17 | 18 | 19 |
20 | 21 |
22 | {children} 23 | 24 | 25 |
26 | ); 27 | } 28 | -------------------------------------------------------------------------------- /src/app/members/page.tsx: -------------------------------------------------------------------------------- 1 | import Image from "next/image"; 2 | 3 | export default function MemberPage() { 4 | return ( 5 |
6 |

You are a member!

7 | Clerk Logo 14 |
15 | ); 16 | } 17 | -------------------------------------------------------------------------------- /src/app/page.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | 3 | import { SignIn, useAuth } from "@clerk/nextjs"; 4 | import CheckoutButton from "../components/stripe-payment"; 5 | 6 | export default function Home() { 7 | const { isSignedIn } = useAuth(); 8 | 9 | return ( 10 |
11 | {!isSignedIn ? ( 12 |
20 | 21 |
22 | ) : ( 23 |
24 |
You are signed in!
25 |
26 | 27 | 31 | Go to members page 32 | 33 |
34 |
35 | )} 36 |
37 | ); 38 | } 39 | -------------------------------------------------------------------------------- /src/components/stripe-payment.tsx: -------------------------------------------------------------------------------- 1 | import { loadStripe } from "@stripe/stripe-js"; 2 | 3 | const stripePromise = loadStripe( 4 | process.env.NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY as string 5 | ); 6 | 7 | export default function CheckoutButton() { 8 | const handleCheckout = async () => { 9 | try { 10 | const stripe = await stripePromise; 11 | if (!stripe) { 12 | return; 13 | } 14 | 15 | const { session } = await ( 16 | await fetch("/api/stripe-payment", { 17 | method: "POST", 18 | headers: { 19 | "Content-Type": "application/json", 20 | }, 21 | body: JSON.stringify({ 22 | quantity: 1, 23 | unit_amount: 100, // $1.00 24 | }), 25 | }) 26 | ).json(); 27 | 28 | await stripe.redirectToCheckout({ 29 | sessionId: session.id, 30 | }); 31 | } catch (error) { 32 | console.error(error); 33 | } 34 | }; 35 | 36 | return ( 37 |
38 | 44 |
45 | ); 46 | } 47 | -------------------------------------------------------------------------------- /src/middleware.ts: -------------------------------------------------------------------------------- 1 | import { authMiddleware, redirectToSignIn } from "@clerk/nextjs"; 2 | import { NextResponse } from "next/server"; 3 | 4 | // This example protects all routes including api/trpc routes 5 | // Please edit this to allow other routes to be public as needed. 6 | // See https://clerk.com/docs/references/nextjs/auth-middleware for more information about configuring your Middleware 7 | export default authMiddleware({ 8 | publicRoutes: ["/", "/api/(.*)"], 9 | afterAuth: async (auth, req) => { 10 | if (!auth.userId && !auth.isPublicRoute) { 11 | return redirectToSignIn({ returnBackUrl: req.url }); 12 | } 13 | 14 | if ( 15 | auth.userId && 16 | req.nextUrl.pathname === "/members" && 17 | auth.sessionClaims.publicMetadata.stripe?.payment !== "paid" 18 | ) { 19 | return NextResponse.redirect(new URL("/", req.url)); 20 | } 21 | 22 | if ( 23 | auth.userId && 24 | req.nextUrl.pathname === "/members" && 25 | auth.sessionClaims.publicMetadata.stripe?.payment === "paid" 26 | ) { 27 | return NextResponse.next(); 28 | } 29 | 30 | if (auth.userId && req.nextUrl.pathname !== "/members") { 31 | return NextResponse.next(); 32 | } 33 | 34 | if (auth.isPublicRoute) { 35 | return NextResponse.next(); 36 | } 37 | }, 38 | }); 39 | 40 | export const config = { 41 | matcher: ["/((?!.+\\.[\\w]+$|_next).*)", "/", "/(api)(.*)"], 42 | }; 43 | -------------------------------------------------------------------------------- /src/types/global.d.ts: -------------------------------------------------------------------------------- 1 | import type Stripe from "stripe"; 2 | 3 | export {}; 4 | 5 | declare global { 6 | interface CustomJwtSessionClaims { 7 | publicMetadata: { 8 | stripe: { 9 | status: Stripe.Checkout.Session.Status; 10 | payment: Stripe.Checkout.Session.PaymentStatus; 11 | }; 12 | }; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /tailwind.config.ts: -------------------------------------------------------------------------------- 1 | import type { Config } from 'tailwindcss' 2 | 3 | const config: Config = { 4 | content: [ 5 | './src/pages/**/*.{js,ts,jsx,tsx,mdx}', 6 | './src/components/**/*.{js,ts,jsx,tsx,mdx}', 7 | './src/app/**/*.{js,ts,jsx,tsx,mdx}', 8 | ], 9 | theme: { 10 | extend: { 11 | backgroundImage: { 12 | 'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))', 13 | 'gradient-conic': 14 | 'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))', 15 | }, 16 | }, 17 | }, 18 | plugins: [], 19 | } 20 | export default config 21 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "lib": ["dom", "dom.iterable", "esnext"], 5 | "allowJs": true, 6 | "skipLibCheck": true, 7 | "strict": true, 8 | "noEmit": true, 9 | "esModuleInterop": true, 10 | "module": "esnext", 11 | "moduleResolution": "bundler", 12 | "resolveJsonModule": true, 13 | "isolatedModules": true, 14 | "jsx": "preserve", 15 | "incremental": true, 16 | "plugins": [ 17 | { 18 | "name": "next" 19 | } 20 | ], 21 | "paths": { 22 | "@/*": ["./src/*"] 23 | } 24 | }, 25 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], 26 | "exclude": ["node_modules"] 27 | } 28 | --------------------------------------------------------------------------------