├── .env.sample ├── .eslintrc.json ├── .gitignore ├── LICENSE ├── README.md ├── next.config.mjs ├── package.json ├── pnpm-lock.yaml ├── postcss.config.mjs ├── public ├── favicon.ico ├── next.svg └── vercel.svg ├── src └── app │ ├── api │ ├── blog │ │ ├── [slug] │ │ │ └── route.ts │ │ └── route.ts │ └── revalidate │ │ └── route.ts │ ├── assets │ └── images │ │ ├── default_blur.ts │ │ └── default_placeholder.webp │ ├── blog │ ├── [slug] │ │ └── page.tsx │ └── page.tsx │ ├── components │ ├── atoms │ │ ├── .gitkeep │ │ ├── BaseImage │ │ │ └── index.tsx │ │ └── Icon │ │ │ ├── index.d.ts │ │ │ └── index.tsx │ ├── molecules │ │ └── .gitkeep │ ├── organisms │ │ ├── .gitkeep │ │ ├── CardPost │ │ │ └── index.tsx │ │ ├── Footer │ │ │ └── index.tsx │ │ ├── Header │ │ │ └── index.tsx │ │ ├── ListPost │ │ │ └── index.tsx │ │ └── PostDetail │ │ │ └── index.tsx │ └── templates │ │ ├── .gitkeep │ │ └── Layouts │ │ ├── LayoutWrapper.tsx │ │ ├── PrivateLayout.tsx │ │ └── PublicLayout.tsx │ ├── core │ └── domain │ │ └── models │ │ └── notion_blog.ts │ ├── globals.css │ ├── layout.tsx │ ├── page.tsx │ └── utils │ ├── helpers │ ├── config.ts │ ├── constant.ts │ ├── date.ts │ ├── error.ts │ ├── image.ts │ ├── info.ts │ └── svg.ts │ └── lib │ └── notion.ts ├── tailwind.config.ts └── tsconfig.json /.env.sample: -------------------------------------------------------------------------------- 1 | PORT=3000 2 | URL=http://localhost:3000 3 | REVALIDATE_SECRET= 4 | 5 | NOTION_TOKEN= 6 | NOTION_DATABASE_ID= -------------------------------------------------------------------------------- /.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 | .yarn/install-state.gz 8 | 9 | # testing 10 | /coverage 11 | 12 | # next.js 13 | /.next/ 14 | /out/ 15 | 16 | # production 17 | /build 18 | 19 | # misc 20 | .DS_Store 21 | *.pem 22 | 23 | # debug 24 | npm-debug.log* 25 | yarn-debug.log* 26 | yarn-error.log* 27 | 28 | # local env files 29 | .env*.local 30 | 31 | # vercel 32 | .vercel 33 | 34 | # typescript 35 | *.tsbuildinfo 36 | next-env.d.ts 37 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 Le Xuan Kha (Leo) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Notion Next.js Mini Kit 2 | 3 | This repository contains a mini kit for integrating Notion API with Next.js. This kit provides a simple and efficient way to connect your Next.js applications with Notion to access and display data. 4 | 5 | ## Features 6 | 7 | - Seamless integration of Notion API with Next.js 8 | - Easy setup and configuration 9 | - Flexible customization options 10 | - Lightweight and performant 11 | - Revalidate path for static generation 12 | 13 | ## Tech Stack 14 | 15 | - Next.js: version 14x 16 | - Notion API 17 | 18 | ## Library 19 | - [React Notion](https://github.com/splitbee/react-notion): minimal renderer for blogs & content pages 20 | - [@notionhq/client](https://www.npmjs.com/package/@notionhq/client): A simple and easy to use client for the Notion API 21 | - [Headlessui](https://headlessui.com/): UI components, designed to integrate beautifully with Tailwind CSS 22 | 23 | 24 | ## Full Steps to Setup 25 | - English: [Guide to building a personal blog with Next.js and Notion 26 | ](https://www.lexuankha.com/blog/guide-to-building-a-personal-blog-with-next-js-and-notion) 27 | - Vietnamese: [Hướng dẫn xây dựng blog cá nhân với NextJs và Notion](https://viblo.asia/p/huong-dan-xay-dung-blog-ca-nhan-voi-nextjs-va-notion-WR5JRZjQJGv) 28 | 29 | 30 | ## Installation 31 | 32 | To get started with the Notion Next.js Mini Kit, follow these steps: 33 | 34 | Clone the repository: 35 | ``` 36 | git clone https://github.com/khaaleoo/notion-nextjs-mini-kit.git 37 | ``` 38 | 39 | Install dependencies: 40 | ``` 41 | cd notion-nextjs-mini-kit 42 | pnpm install 43 | ``` 44 | 45 | Copy the content in .env.sample to your .env or .env.local 46 | 47 | Run the project 48 | ``` 49 | pnpm dev 50 | ``` 51 | 52 | 53 | ### Environment Variables 54 | 55 | To run this project, you will need to add the following environment variables to your .env file 56 | 57 | `NOTION_TOKEN` 58 | 59 | `NOTION_DATABASE_ID` 60 | 61 | 62 | ### Revalidating Static Pages 63 | 64 | To revalidate static pages, access the following endpoint: 65 | 66 | https://yourdomain/api/revalidate?path=/yourpath&secret=yoursecret 67 | 68 | ## Used By 69 | 70 | This project is used by the following pages/blogs: 71 | 72 | - [Leo's Tech Blog](https://lexuankha.com) 73 | 74 | 75 | ## Feedback & Contributing 76 | 77 | Contributions are always welcome! 78 | 79 | If you have any feedback, please reach out to me at khalx.leo@gmail.com -------------------------------------------------------------------------------- /next.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = { 3 | async redirects() { 4 | return [ 5 | // TODO: remove this rule upon your demand 6 | { 7 | source: "/", 8 | destination: "/blog", 9 | permanent: false, 10 | }, 11 | ]; 12 | }, 13 | webpack: (config) => { 14 | config.module.rules.push({ 15 | test: /\.svg$/, 16 | loader: "svg-inline-loader", 17 | }); 18 | return config; 19 | }, 20 | images: { 21 | dangerouslyAllowSVG: true, 22 | contentSecurityPolicy: "default-src 'self'; script-src 'none'; sandbox;", 23 | remotePatterns: [ 24 | { 25 | hostname: "prod-files-secure.s3.us-west-2.amazonaws.com", 26 | }, 27 | { 28 | hostname: "www.notion.so", 29 | }, 30 | ], 31 | }, 32 | }; 33 | 34 | export default nextConfig; 35 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "notion-nextjs-mini-kit", 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 | "@headlessui/react": "^2.0.4", 13 | "@heroicons/react": "^2.1.3", 14 | "@notionhq/client": "^2.2.15", 15 | "@plaiceholder/next": "^3.0.0", 16 | "clsx": "^2.1.1", 17 | "next": "14.2.4", 18 | "plaiceholder": "^3.0.0", 19 | "react": "^18", 20 | "react-dom": "^18", 21 | "react-notion": "^0.10.0", 22 | "sharp": "^0.33.4" 23 | }, 24 | "devDependencies": { 25 | "@types/node": "^20", 26 | "@types/react": "^18", 27 | "@types/react-dom": "^18", 28 | "eslint": "^8", 29 | "eslint-config-next": "14.2.4", 30 | "postcss": "^8", 31 | "svg-inline-loader": "^0.8.2", 32 | "tailwindcss": "^3.4.1", 33 | "typescript": "^5" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | '@headlessui/react': 12 | specifier: ^2.0.4 13 | version: 2.0.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 14 | '@heroicons/react': 15 | specifier: ^2.1.3 16 | version: 2.1.3(react@18.3.1) 17 | '@notionhq/client': 18 | specifier: ^2.2.15 19 | version: 2.2.15 20 | '@plaiceholder/next': 21 | specifier: ^3.0.0 22 | version: 3.0.0(next@14.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(plaiceholder@3.0.0(sharp@0.33.4))(sharp@0.33.4) 23 | clsx: 24 | specifier: ^2.1.1 25 | version: 2.1.1 26 | next: 27 | specifier: 14.2.4 28 | version: 14.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 29 | plaiceholder: 30 | specifier: ^3.0.0 31 | version: 3.0.0(sharp@0.33.4) 32 | react: 33 | specifier: ^18 34 | version: 18.3.1 35 | react-dom: 36 | specifier: ^18 37 | version: 18.3.1(react@18.3.1) 38 | react-notion: 39 | specifier: ^0.10.0 40 | version: 0.10.0(react@18.3.1) 41 | sharp: 42 | specifier: ^0.33.4 43 | version: 0.33.4 44 | devDependencies: 45 | '@types/node': 46 | specifier: ^20 47 | version: 20.14.2 48 | '@types/react': 49 | specifier: ^18 50 | version: 18.3.3 51 | '@types/react-dom': 52 | specifier: ^18 53 | version: 18.3.0 54 | eslint: 55 | specifier: ^8 56 | version: 8.57.0 57 | eslint-config-next: 58 | specifier: 14.2.4 59 | version: 14.2.4(eslint@8.57.0)(typescript@5.4.5) 60 | postcss: 61 | specifier: ^8 62 | version: 8.4.38 63 | svg-inline-loader: 64 | specifier: ^0.8.2 65 | version: 0.8.2 66 | tailwindcss: 67 | specifier: ^3.4.1 68 | version: 3.4.4 69 | typescript: 70 | specifier: ^5 71 | version: 5.4.5 72 | 73 | packages: 74 | 75 | '@alloc/quick-lru@5.2.0': 76 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} 77 | engines: {node: '>=10'} 78 | 79 | '@babel/runtime@7.24.7': 80 | resolution: {integrity: sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==} 81 | engines: {node: '>=6.9.0'} 82 | 83 | '@emnapi/runtime@1.2.0': 84 | resolution: {integrity: sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==} 85 | 86 | '@eslint-community/eslint-utils@4.4.0': 87 | resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} 88 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 89 | peerDependencies: 90 | eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 91 | 92 | '@eslint-community/regexpp@4.10.1': 93 | resolution: {integrity: sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA==} 94 | engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} 95 | 96 | '@eslint/eslintrc@2.1.4': 97 | resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} 98 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 99 | 100 | '@eslint/js@8.57.0': 101 | resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} 102 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 103 | 104 | '@floating-ui/core@1.6.2': 105 | resolution: {integrity: sha512-+2XpQV9LLZeanU4ZevzRnGFg2neDeKHgFLjP6YLW+tly0IvrhqT4u8enLGjLH3qeh85g19xY5rsAusfwTdn5lg==} 106 | 107 | '@floating-ui/dom@1.6.5': 108 | resolution: {integrity: sha512-Nsdud2X65Dz+1RHjAIP0t8z5e2ff/IRbei6BqFrl1urT8sDVzM1HMQ+R0XcU5ceRfyO3I6ayeqIfh+6Wb8LGTw==} 109 | 110 | '@floating-ui/react-dom@2.1.0': 111 | resolution: {integrity: sha512-lNzj5EQmEKn5FFKc04+zasr09h/uX8RtJRNj5gUXsSQIXHVWTVh+hVAg1vOMCexkX8EgvemMvIFpQfkosnVNyA==} 112 | peerDependencies: 113 | react: '>=16.8.0' 114 | react-dom: '>=16.8.0' 115 | 116 | '@floating-ui/react@0.26.17': 117 | resolution: {integrity: sha512-ESD+jYWwqwVzaIgIhExrArdsCL1rOAzryG/Sjlu8yaD3Mtqi3uVyhbE2V7jD58Mo52qbzKz2eUY/Xgh5I86FCQ==} 118 | peerDependencies: 119 | react: '>=16.8.0' 120 | react-dom: '>=16.8.0' 121 | 122 | '@floating-ui/utils@0.2.2': 123 | resolution: {integrity: sha512-J4yDIIthosAsRZ5CPYP/jQvUAQtlZTTD/4suA08/FEnlxqW3sKS9iAhgsa9VYLZ6vDHn/ixJgIqRQPotoBjxIw==} 124 | 125 | '@headlessui/react@2.0.4': 126 | resolution: {integrity: sha512-16d/rOLeYsFsmPlRmXGu8DCBzrWD0zV1Ccx3n73wN87yFu8Y9+X04zflv8EJEt9TAYRyLKOmQXUnOnqQl6NgpA==} 127 | engines: {node: '>=10'} 128 | peerDependencies: 129 | react: ^18 130 | react-dom: ^18 131 | 132 | '@heroicons/react@2.1.3': 133 | resolution: {integrity: sha512-fEcPfo4oN345SoqdlCDdSa4ivjaKbk0jTd+oubcgNxnNgAfzysfwWfQUr+51wigiWHQQRiZNd1Ao0M5Y3M2EGg==} 134 | peerDependencies: 135 | react: '>= 16' 136 | 137 | '@humanwhocodes/config-array@0.11.14': 138 | resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} 139 | engines: {node: '>=10.10.0'} 140 | deprecated: Use @eslint/config-array instead 141 | 142 | '@humanwhocodes/module-importer@1.0.1': 143 | resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} 144 | engines: {node: '>=12.22'} 145 | 146 | '@humanwhocodes/object-schema@2.0.3': 147 | resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} 148 | deprecated: Use @eslint/object-schema instead 149 | 150 | '@img/sharp-darwin-arm64@0.33.4': 151 | resolution: {integrity: sha512-p0suNqXufJs9t3RqLBO6vvrgr5OhgbWp76s5gTRvdmxmuv9E1rcaqGUsl3l4mKVmXPkTkTErXediAui4x+8PSA==} 152 | engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 153 | cpu: [arm64] 154 | os: [darwin] 155 | 156 | '@img/sharp-darwin-x64@0.33.4': 157 | resolution: {integrity: sha512-0l7yRObwtTi82Z6ebVI2PnHT8EB2NxBgpK2MiKJZJ7cz32R4lxd001ecMhzzsZig3Yv9oclvqqdV93jo9hy+Dw==} 158 | engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 159 | cpu: [x64] 160 | os: [darwin] 161 | 162 | '@img/sharp-libvips-darwin-arm64@1.0.2': 163 | resolution: {integrity: sha512-tcK/41Rq8IKlSaKRCCAuuY3lDJjQnYIW1UXU1kxcEKrfL8WR7N6+rzNoOxoQRJWTAECuKwgAHnPvqXGN8XfkHA==} 164 | engines: {macos: '>=11', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 165 | cpu: [arm64] 166 | os: [darwin] 167 | 168 | '@img/sharp-libvips-darwin-x64@1.0.2': 169 | resolution: {integrity: sha512-Ofw+7oaWa0HiiMiKWqqaZbaYV3/UGL2wAPeLuJTx+9cXpCRdvQhCLG0IH8YGwM0yGWGLpsF4Su9vM1o6aer+Fw==} 170 | engines: {macos: '>=10.13', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 171 | cpu: [x64] 172 | os: [darwin] 173 | 174 | '@img/sharp-libvips-linux-arm64@1.0.2': 175 | resolution: {integrity: sha512-x7kCt3N00ofFmmkkdshwj3vGPCnmiDh7Gwnd4nUwZln2YjqPxV1NlTyZOvoDWdKQVDL911487HOueBvrpflagw==} 176 | engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 177 | cpu: [arm64] 178 | os: [linux] 179 | 180 | '@img/sharp-libvips-linux-arm@1.0.2': 181 | resolution: {integrity: sha512-iLWCvrKgeFoglQxdEwzu1eQV04o8YeYGFXtfWU26Zr2wWT3q3MTzC+QTCO3ZQfWd3doKHT4Pm2kRmLbupT+sZw==} 182 | engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 183 | cpu: [arm] 184 | os: [linux] 185 | 186 | '@img/sharp-libvips-linux-s390x@1.0.2': 187 | resolution: {integrity: sha512-cmhQ1J4qVhfmS6szYW7RT+gLJq9dH2i4maq+qyXayUSn9/3iY2ZeWpbAgSpSVbV2E1JUL2Gg7pwnYQ1h8rQIog==} 188 | engines: {glibc: '>=2.28', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 189 | cpu: [s390x] 190 | os: [linux] 191 | 192 | '@img/sharp-libvips-linux-x64@1.0.2': 193 | resolution: {integrity: sha512-E441q4Qdb+7yuyiADVi5J+44x8ctlrqn8XgkDTwr4qPJzWkaHwD489iZ4nGDgcuya4iMN3ULV6NwbhRZJ9Z7SQ==} 194 | engines: {glibc: '>=2.26', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 195 | cpu: [x64] 196 | os: [linux] 197 | 198 | '@img/sharp-libvips-linuxmusl-arm64@1.0.2': 199 | resolution: {integrity: sha512-3CAkndNpYUrlDqkCM5qhksfE+qSIREVpyoeHIU6jd48SJZViAmznoQQLAv4hVXF7xyUB9zf+G++e2v1ABjCbEQ==} 200 | engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 201 | cpu: [arm64] 202 | os: [linux] 203 | 204 | '@img/sharp-libvips-linuxmusl-x64@1.0.2': 205 | resolution: {integrity: sha512-VI94Q6khIHqHWNOh6LLdm9s2Ry4zdjWJwH56WoiJU7NTeDwyApdZZ8c+SADC8OH98KWNQXnE01UdJ9CSfZvwZw==} 206 | engines: {musl: '>=1.2.2', npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 207 | cpu: [x64] 208 | os: [linux] 209 | 210 | '@img/sharp-linux-arm64@0.33.4': 211 | resolution: {integrity: sha512-2800clwVg1ZQtxwSoTlHvtm9ObgAax7V6MTAB/hDT945Tfyy3hVkmiHpeLPCKYqYR1Gcmv1uDZ3a4OFwkdBL7Q==} 212 | engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 213 | cpu: [arm64] 214 | os: [linux] 215 | 216 | '@img/sharp-linux-arm@0.33.4': 217 | resolution: {integrity: sha512-RUgBD1c0+gCYZGCCe6mMdTiOFS0Zc/XrN0fYd6hISIKcDUbAW5NtSQW9g/powkrXYm6Vzwd6y+fqmExDuCdHNQ==} 218 | engines: {glibc: '>=2.28', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 219 | cpu: [arm] 220 | os: [linux] 221 | 222 | '@img/sharp-linux-s390x@0.33.4': 223 | resolution: {integrity: sha512-h3RAL3siQoyzSoH36tUeS0PDmb5wINKGYzcLB5C6DIiAn2F3udeFAum+gj8IbA/82+8RGCTn7XW8WTFnqag4tQ==} 224 | engines: {glibc: '>=2.31', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 225 | cpu: [s390x] 226 | os: [linux] 227 | 228 | '@img/sharp-linux-x64@0.33.4': 229 | resolution: {integrity: sha512-GoR++s0XW9DGVi8SUGQ/U4AeIzLdNjHka6jidVwapQ/JebGVQIpi52OdyxCNVRE++n1FCLzjDovJNozif7w/Aw==} 230 | engines: {glibc: '>=2.26', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 231 | cpu: [x64] 232 | os: [linux] 233 | 234 | '@img/sharp-linuxmusl-arm64@0.33.4': 235 | resolution: {integrity: sha512-nhr1yC3BlVrKDTl6cO12gTpXMl4ITBUZieehFvMntlCXFzH2bvKG76tBL2Y/OqhupZt81pR7R+Q5YhJxW0rGgQ==} 236 | engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 237 | cpu: [arm64] 238 | os: [linux] 239 | 240 | '@img/sharp-linuxmusl-x64@0.33.4': 241 | resolution: {integrity: sha512-uCPTku0zwqDmZEOi4ILyGdmW76tH7dm8kKlOIV1XC5cLyJ71ENAAqarOHQh0RLfpIpbV5KOpXzdU6XkJtS0daw==} 242 | engines: {musl: '>=1.2.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 243 | cpu: [x64] 244 | os: [linux] 245 | 246 | '@img/sharp-wasm32@0.33.4': 247 | resolution: {integrity: sha512-Bmmauh4sXUsUqkleQahpdNXKvo+wa1V9KhT2pDA4VJGKwnKMJXiSTGphn0gnJrlooda0QxCtXc6RX1XAU6hMnQ==} 248 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 249 | cpu: [wasm32] 250 | 251 | '@img/sharp-win32-ia32@0.33.4': 252 | resolution: {integrity: sha512-99SJ91XzUhYHbx7uhK3+9Lf7+LjwMGQZMDlO/E/YVJ7Nc3lyDFZPGhjwiYdctoH2BOzW9+TnfqcaMKt0jHLdqw==} 253 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 254 | cpu: [ia32] 255 | os: [win32] 256 | 257 | '@img/sharp-win32-x64@0.33.4': 258 | resolution: {integrity: sha512-3QLocdTRVIrFNye5YocZl+KKpYKP+fksi1QhmOArgx7GyhIbQp/WrJRu176jm8IxromS7RIkzMiMINVdBtC8Aw==} 259 | engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0', yarn: '>=3.2.0'} 260 | cpu: [x64] 261 | os: [win32] 262 | 263 | '@isaacs/cliui@8.0.2': 264 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 265 | engines: {node: '>=12'} 266 | 267 | '@jridgewell/gen-mapping@0.3.5': 268 | resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} 269 | engines: {node: '>=6.0.0'} 270 | 271 | '@jridgewell/resolve-uri@3.1.2': 272 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 273 | engines: {node: '>=6.0.0'} 274 | 275 | '@jridgewell/set-array@1.2.1': 276 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 277 | engines: {node: '>=6.0.0'} 278 | 279 | '@jridgewell/sourcemap-codec@1.4.15': 280 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 281 | 282 | '@jridgewell/trace-mapping@0.3.25': 283 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 284 | 285 | '@next/env@14.2.4': 286 | resolution: {integrity: sha512-3EtkY5VDkuV2+lNmKlbkibIJxcO4oIHEhBWne6PaAp+76J9KoSsGvNikp6ivzAT8dhhBMYrm6op2pS1ApG0Hzg==} 287 | 288 | '@next/eslint-plugin-next@14.2.4': 289 | resolution: {integrity: sha512-svSFxW9f3xDaZA3idQmlFw7SusOuWTpDTAeBlO3AEPDltrraV+lqs7mAc6A27YdnpQVVIA3sODqUAAHdWhVWsA==} 290 | 291 | '@next/swc-darwin-arm64@14.2.4': 292 | resolution: {integrity: sha512-AH3mO4JlFUqsYcwFUHb1wAKlebHU/Hv2u2kb1pAuRanDZ7pD/A/KPD98RHZmwsJpdHQwfEc/06mgpSzwrJYnNg==} 293 | engines: {node: '>= 10'} 294 | cpu: [arm64] 295 | os: [darwin] 296 | 297 | '@next/swc-darwin-x64@14.2.4': 298 | resolution: {integrity: sha512-QVadW73sWIO6E2VroyUjuAxhWLZWEpiFqHdZdoQ/AMpN9YWGuHV8t2rChr0ahy+irKX5mlDU7OY68k3n4tAZTg==} 299 | engines: {node: '>= 10'} 300 | cpu: [x64] 301 | os: [darwin] 302 | 303 | '@next/swc-linux-arm64-gnu@14.2.4': 304 | resolution: {integrity: sha512-KT6GUrb3oyCfcfJ+WliXuJnD6pCpZiosx2X3k66HLR+DMoilRb76LpWPGb4tZprawTtcnyrv75ElD6VncVamUQ==} 305 | engines: {node: '>= 10'} 306 | cpu: [arm64] 307 | os: [linux] 308 | 309 | '@next/swc-linux-arm64-musl@14.2.4': 310 | resolution: {integrity: sha512-Alv8/XGSs/ytwQcbCHwze1HmiIkIVhDHYLjczSVrf0Wi2MvKn/blt7+S6FJitj3yTlMwMxII1gIJ9WepI4aZ/A==} 311 | engines: {node: '>= 10'} 312 | cpu: [arm64] 313 | os: [linux] 314 | 315 | '@next/swc-linux-x64-gnu@14.2.4': 316 | resolution: {integrity: sha512-ze0ShQDBPCqxLImzw4sCdfnB3lRmN3qGMB2GWDRlq5Wqy4G36pxtNOo2usu/Nm9+V2Rh/QQnrRc2l94kYFXO6Q==} 317 | engines: {node: '>= 10'} 318 | cpu: [x64] 319 | os: [linux] 320 | 321 | '@next/swc-linux-x64-musl@14.2.4': 322 | resolution: {integrity: sha512-8dwC0UJoc6fC7PX70csdaznVMNr16hQrTDAMPvLPloazlcaWfdPogq+UpZX6Drqb1OBlwowz8iG7WR0Tzk/diQ==} 323 | engines: {node: '>= 10'} 324 | cpu: [x64] 325 | os: [linux] 326 | 327 | '@next/swc-win32-arm64-msvc@14.2.4': 328 | resolution: {integrity: sha512-jxyg67NbEWkDyvM+O8UDbPAyYRZqGLQDTPwvrBBeOSyVWW/jFQkQKQ70JDqDSYg1ZDdl+E3nkbFbq8xM8E9x8A==} 329 | engines: {node: '>= 10'} 330 | cpu: [arm64] 331 | os: [win32] 332 | 333 | '@next/swc-win32-ia32-msvc@14.2.4': 334 | resolution: {integrity: sha512-twrmN753hjXRdcrZmZttb/m5xaCBFa48Dt3FbeEItpJArxriYDunWxJn+QFXdJ3hPkm4u7CKxncVvnmgQMY1ag==} 335 | engines: {node: '>= 10'} 336 | cpu: [ia32] 337 | os: [win32] 338 | 339 | '@next/swc-win32-x64-msvc@14.2.4': 340 | resolution: {integrity: sha512-tkLrjBzqFTP8DVrAAQmZelEahfR9OxWpFR++vAI9FBhCiIxtwHwBHC23SBHCTURBtwB4kc/x44imVOnkKGNVGg==} 341 | engines: {node: '>= 10'} 342 | cpu: [x64] 343 | os: [win32] 344 | 345 | '@nodelib/fs.scandir@2.1.5': 346 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 347 | engines: {node: '>= 8'} 348 | 349 | '@nodelib/fs.stat@2.0.5': 350 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 351 | engines: {node: '>= 8'} 352 | 353 | '@nodelib/fs.walk@1.2.8': 354 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 355 | engines: {node: '>= 8'} 356 | 357 | '@notionhq/client@2.2.15': 358 | resolution: {integrity: sha512-XhdSY/4B1D34tSco/GION+23GMjaS9S2zszcqYkMHo8RcWInymF6L1x+Gk7EmHdrSxNFva2WM8orhC4BwQCwgw==} 359 | engines: {node: '>=12'} 360 | 361 | '@pkgjs/parseargs@0.11.0': 362 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 363 | engines: {node: '>=14'} 364 | 365 | '@plaiceholder/next@3.0.0': 366 | resolution: {integrity: sha512-7UK/H1X64hwo2VaxOPKMXE+OY9IgmKLPsq/xKHZ+gU07oqQSfIWWIgpVVucMB3ZgVYah+68agR15BRuSxAuMHw==} 367 | peerDependencies: 368 | next: '>= 10.0.0' 369 | plaiceholder: '>=3.0.0' 370 | sharp: '>= 0.30.6' 371 | 372 | '@react-aria/focus@3.17.1': 373 | resolution: {integrity: sha512-FLTySoSNqX++u0nWZJPPN5etXY0WBxaIe/YuL/GTEeuqUIuC/2bJSaw5hlsM6T2yjy6Y/VAxBcKSdAFUlU6njQ==} 374 | peerDependencies: 375 | react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 376 | 377 | '@react-aria/interactions@3.21.3': 378 | resolution: {integrity: sha512-BWIuf4qCs5FreDJ9AguawLVS0lV9UU+sK4CCnbCNNmYqOWY+1+gRXCsnOM32K+oMESBxilAjdHW5n1hsMqYMpA==} 379 | peerDependencies: 380 | react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 381 | 382 | '@react-aria/ssr@3.9.4': 383 | resolution: {integrity: sha512-4jmAigVq409qcJvQyuorsmBR4+9r3+JEC60wC+Y0MZV0HCtTmm8D9guYXlJMdx0SSkgj0hHAyFm/HvPNFofCoQ==} 384 | engines: {node: '>= 12'} 385 | peerDependencies: 386 | react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 387 | 388 | '@react-aria/utils@3.24.1': 389 | resolution: {integrity: sha512-O3s9qhPMd6n42x9sKeJ3lhu5V1Tlnzhu6Yk8QOvDuXf7UGuUjXf9mzfHJt1dYzID4l9Fwm8toczBzPM9t0jc8Q==} 390 | peerDependencies: 391 | react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 392 | 393 | '@react-stately/utils@3.10.1': 394 | resolution: {integrity: sha512-VS/EHRyicef25zDZcM/ClpzYMC5i2YGN6uegOeQawmgfGjb02yaCX0F0zR69Pod9m2Hr3wunTbtpgVXvYbZItg==} 395 | peerDependencies: 396 | react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 397 | 398 | '@react-types/shared@3.23.1': 399 | resolution: {integrity: sha512-5d+3HbFDxGZjhbMBeFHRQhexMFt4pUce3okyRtUVKbbedQFUrtXSBg9VszgF2RTeQDKDkMCIQDtz5ccP/Lk1gw==} 400 | peerDependencies: 401 | react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 402 | 403 | '@rushstack/eslint-patch@1.10.3': 404 | resolution: {integrity: sha512-qC/xYId4NMebE6w/V33Fh9gWxLgURiNYgVNObbJl2LZv0GUUItCcCqC5axQSwRaAgaxl2mELq1rMzlswaQ0Zxg==} 405 | 406 | '@swc/counter@0.1.3': 407 | resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} 408 | 409 | '@swc/helpers@0.5.5': 410 | resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} 411 | 412 | '@tanstack/react-virtual@3.5.0': 413 | resolution: {integrity: sha512-rtvo7KwuIvqK9zb0VZ5IL7fiJAEnG+0EiFZz8FUOs+2mhGqdGmjKIaT1XU7Zq0eFqL0jonLlhbayJI/J2SA/Bw==} 414 | peerDependencies: 415 | react: ^16.8.0 || ^17.0.0 || ^18.0.0 416 | react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 417 | 418 | '@tanstack/virtual-core@3.5.0': 419 | resolution: {integrity: sha512-KnPRCkQTyqhanNC0K63GBG3wA8I+D1fQuVnAvcBF8f13akOKeQp1gSbu6f77zCxhEk727iV5oQnbHLYzHrECLg==} 420 | 421 | '@types/json5@0.0.29': 422 | resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} 423 | 424 | '@types/node-fetch@2.6.11': 425 | resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==} 426 | 427 | '@types/node@20.14.2': 428 | resolution: {integrity: sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==} 429 | 430 | '@types/prop-types@15.7.12': 431 | resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} 432 | 433 | '@types/react-dom@18.3.0': 434 | resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} 435 | 436 | '@types/react@18.3.3': 437 | resolution: {integrity: sha512-hti/R0pS0q1/xx+TsI73XIqk26eBsISZ2R0wUijXIngRK9R/e7Xw/cXVxQK7R5JjW+SV4zGcn5hXjudkN/pLIw==} 438 | 439 | '@typescript-eslint/parser@7.2.0': 440 | resolution: {integrity: sha512-5FKsVcHTk6TafQKQbuIVkXq58Fnbkd2wDL4LB7AURN7RUOu1utVP+G8+6u3ZhEroW3DF6hyo3ZEXxgKgp4KeCg==} 441 | engines: {node: ^16.0.0 || >=18.0.0} 442 | peerDependencies: 443 | eslint: ^8.56.0 444 | typescript: '*' 445 | peerDependenciesMeta: 446 | typescript: 447 | optional: true 448 | 449 | '@typescript-eslint/scope-manager@7.2.0': 450 | resolution: {integrity: sha512-Qh976RbQM/fYtjx9hs4XkayYujB/aPwglw2choHmf3zBjB4qOywWSdt9+KLRdHubGcoSwBnXUH2sR3hkyaERRg==} 451 | engines: {node: ^16.0.0 || >=18.0.0} 452 | 453 | '@typescript-eslint/types@7.2.0': 454 | resolution: {integrity: sha512-XFtUHPI/abFhm4cbCDc5Ykc8npOKBSJePY3a3s+lwumt7XWJuzP5cZcfZ610MIPHjQjNsOLlYK8ASPaNG8UiyA==} 455 | engines: {node: ^16.0.0 || >=18.0.0} 456 | 457 | '@typescript-eslint/typescript-estree@7.2.0': 458 | resolution: {integrity: sha512-cyxS5WQQCoBwSakpMrvMXuMDEbhOo9bNHHrNcEWis6XHx6KF518tkF1wBvKIn/tpq5ZpUYK7Bdklu8qY0MsFIA==} 459 | engines: {node: ^16.0.0 || >=18.0.0} 460 | peerDependencies: 461 | typescript: '*' 462 | peerDependenciesMeta: 463 | typescript: 464 | optional: true 465 | 466 | '@typescript-eslint/visitor-keys@7.2.0': 467 | resolution: {integrity: sha512-c6EIQRHhcpl6+tO8EMR+kjkkV+ugUNXOmeASA1rlzkd8EPIriavpWoiEz1HR/VLhbVIdhqnV6E7JZm00cBDx2A==} 468 | engines: {node: ^16.0.0 || >=18.0.0} 469 | 470 | '@ungap/structured-clone@1.2.0': 471 | resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} 472 | 473 | acorn-jsx@5.3.2: 474 | resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} 475 | peerDependencies: 476 | acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 477 | 478 | acorn@8.12.0: 479 | resolution: {integrity: sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==} 480 | engines: {node: '>=0.4.0'} 481 | hasBin: true 482 | 483 | ajv@6.12.6: 484 | resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 485 | 486 | ansi-regex@5.0.1: 487 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 488 | engines: {node: '>=8'} 489 | 490 | ansi-regex@6.0.1: 491 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} 492 | engines: {node: '>=12'} 493 | 494 | ansi-styles@4.3.0: 495 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 496 | engines: {node: '>=8'} 497 | 498 | ansi-styles@6.2.1: 499 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 500 | engines: {node: '>=12'} 501 | 502 | any-promise@1.3.0: 503 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 504 | 505 | anymatch@3.1.3: 506 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 507 | engines: {node: '>= 8'} 508 | 509 | arg@5.0.2: 510 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} 511 | 512 | argparse@2.0.1: 513 | resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 514 | 515 | aria-query@5.3.0: 516 | resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} 517 | 518 | array-buffer-byte-length@1.0.1: 519 | resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} 520 | engines: {node: '>= 0.4'} 521 | 522 | array-includes@3.1.8: 523 | resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} 524 | engines: {node: '>= 0.4'} 525 | 526 | array-union@2.1.0: 527 | resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} 528 | engines: {node: '>=8'} 529 | 530 | array.prototype.findlast@1.2.5: 531 | resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} 532 | engines: {node: '>= 0.4'} 533 | 534 | array.prototype.findlastindex@1.2.5: 535 | resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} 536 | engines: {node: '>= 0.4'} 537 | 538 | array.prototype.flat@1.3.2: 539 | resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} 540 | engines: {node: '>= 0.4'} 541 | 542 | array.prototype.flatmap@1.3.2: 543 | resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} 544 | engines: {node: '>= 0.4'} 545 | 546 | array.prototype.toreversed@1.1.2: 547 | resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} 548 | 549 | array.prototype.tosorted@1.1.4: 550 | resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} 551 | engines: {node: '>= 0.4'} 552 | 553 | arraybuffer.prototype.slice@1.0.3: 554 | resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} 555 | engines: {node: '>= 0.4'} 556 | 557 | ast-types-flow@0.0.8: 558 | resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} 559 | 560 | asynckit@0.4.0: 561 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} 562 | 563 | available-typed-arrays@1.0.7: 564 | resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} 565 | engines: {node: '>= 0.4'} 566 | 567 | axe-core@4.7.0: 568 | resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==} 569 | engines: {node: '>=4'} 570 | 571 | axobject-query@3.2.1: 572 | resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==} 573 | 574 | balanced-match@1.0.2: 575 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 576 | 577 | big.js@5.2.2: 578 | resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==} 579 | 580 | binary-extensions@2.3.0: 581 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 582 | engines: {node: '>=8'} 583 | 584 | brace-expansion@1.1.11: 585 | resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} 586 | 587 | brace-expansion@2.0.1: 588 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 589 | 590 | braces@3.0.3: 591 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 592 | engines: {node: '>=8'} 593 | 594 | busboy@1.6.0: 595 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==} 596 | engines: {node: '>=10.16.0'} 597 | 598 | call-bind@1.0.7: 599 | resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} 600 | engines: {node: '>= 0.4'} 601 | 602 | callsites@3.1.0: 603 | resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 604 | engines: {node: '>=6'} 605 | 606 | camelcase-css@2.0.1: 607 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 608 | engines: {node: '>= 6'} 609 | 610 | caniuse-lite@1.0.30001634: 611 | resolution: {integrity: sha512-fbBYXQ9q3+yp1q1gBk86tOFs4pyn/yxFm5ZNP18OXJDfA3txImOY9PhfxVggZ4vRHDqoU8NrKU81eN0OtzOgRA==} 612 | 613 | chalk@4.1.2: 614 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 615 | engines: {node: '>=10'} 616 | 617 | chokidar@3.6.0: 618 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 619 | engines: {node: '>= 8.10.0'} 620 | 621 | client-only@0.0.1: 622 | resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} 623 | 624 | clsx@2.1.1: 625 | resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} 626 | engines: {node: '>=6'} 627 | 628 | color-convert@2.0.1: 629 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 630 | engines: {node: '>=7.0.0'} 631 | 632 | color-name@1.1.4: 633 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 634 | 635 | color-string@1.9.1: 636 | resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} 637 | 638 | color@4.2.3: 639 | resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} 640 | engines: {node: '>=12.5.0'} 641 | 642 | combined-stream@1.0.8: 643 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} 644 | engines: {node: '>= 0.8'} 645 | 646 | commander@4.1.1: 647 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 648 | engines: {node: '>= 6'} 649 | 650 | concat-map@0.0.1: 651 | resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 652 | 653 | cross-spawn@7.0.3: 654 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} 655 | engines: {node: '>= 8'} 656 | 657 | cssesc@3.0.0: 658 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 659 | engines: {node: '>=4'} 660 | hasBin: true 661 | 662 | csstype@3.1.3: 663 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 664 | 665 | damerau-levenshtein@1.0.8: 666 | resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} 667 | 668 | data-view-buffer@1.0.1: 669 | resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} 670 | engines: {node: '>= 0.4'} 671 | 672 | data-view-byte-length@1.0.1: 673 | resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} 674 | engines: {node: '>= 0.4'} 675 | 676 | data-view-byte-offset@1.0.0: 677 | resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} 678 | engines: {node: '>= 0.4'} 679 | 680 | debug@3.2.7: 681 | resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} 682 | peerDependencies: 683 | supports-color: '*' 684 | peerDependenciesMeta: 685 | supports-color: 686 | optional: true 687 | 688 | debug@4.3.5: 689 | resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} 690 | engines: {node: '>=6.0'} 691 | peerDependencies: 692 | supports-color: '*' 693 | peerDependenciesMeta: 694 | supports-color: 695 | optional: true 696 | 697 | deep-is@0.1.4: 698 | resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} 699 | 700 | define-data-property@1.1.4: 701 | resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} 702 | engines: {node: '>= 0.4'} 703 | 704 | define-properties@1.2.1: 705 | resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} 706 | engines: {node: '>= 0.4'} 707 | 708 | delayed-stream@1.0.0: 709 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} 710 | engines: {node: '>=0.4.0'} 711 | 712 | dequal@2.0.3: 713 | resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 714 | engines: {node: '>=6'} 715 | 716 | detect-libc@2.0.3: 717 | resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} 718 | engines: {node: '>=8'} 719 | 720 | didyoumean@1.2.2: 721 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 722 | 723 | dir-glob@3.0.1: 724 | resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} 725 | engines: {node: '>=8'} 726 | 727 | dlv@1.1.3: 728 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 729 | 730 | doctrine@2.1.0: 731 | resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} 732 | engines: {node: '>=0.10.0'} 733 | 734 | doctrine@3.0.0: 735 | resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} 736 | engines: {node: '>=6.0.0'} 737 | 738 | eastasianwidth@0.2.0: 739 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 740 | 741 | emoji-regex@8.0.0: 742 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 743 | 744 | emoji-regex@9.2.2: 745 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 746 | 747 | emojis-list@3.0.0: 748 | resolution: {integrity: sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==} 749 | engines: {node: '>= 4'} 750 | 751 | enhanced-resolve@5.17.0: 752 | resolution: {integrity: sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==} 753 | engines: {node: '>=10.13.0'} 754 | 755 | es-abstract@1.23.3: 756 | resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} 757 | engines: {node: '>= 0.4'} 758 | 759 | es-define-property@1.0.0: 760 | resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} 761 | engines: {node: '>= 0.4'} 762 | 763 | es-errors@1.3.0: 764 | resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} 765 | engines: {node: '>= 0.4'} 766 | 767 | es-iterator-helpers@1.0.19: 768 | resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} 769 | engines: {node: '>= 0.4'} 770 | 771 | es-object-atoms@1.0.0: 772 | resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} 773 | engines: {node: '>= 0.4'} 774 | 775 | es-set-tostringtag@2.0.3: 776 | resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} 777 | engines: {node: '>= 0.4'} 778 | 779 | es-shim-unscopables@1.0.2: 780 | resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} 781 | 782 | es-to-primitive@1.2.1: 783 | resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} 784 | engines: {node: '>= 0.4'} 785 | 786 | escape-string-regexp@4.0.0: 787 | resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 788 | engines: {node: '>=10'} 789 | 790 | eslint-config-next@14.2.4: 791 | resolution: {integrity: sha512-Qr0wMgG9m6m4uYy2jrYJmyuNlYZzPRQq5Kvb9IDlYwn+7yq6W6sfMNFgb+9guM1KYwuIo6TIaiFhZJ6SnQ/Efw==} 792 | peerDependencies: 793 | eslint: ^7.23.0 || ^8.0.0 794 | typescript: '>=3.3.1' 795 | peerDependenciesMeta: 796 | typescript: 797 | optional: true 798 | 799 | eslint-import-resolver-node@0.3.9: 800 | resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} 801 | 802 | eslint-import-resolver-typescript@3.6.1: 803 | resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==} 804 | engines: {node: ^14.18.0 || >=16.0.0} 805 | peerDependencies: 806 | eslint: '*' 807 | eslint-plugin-import: '*' 808 | 809 | eslint-module-utils@2.8.1: 810 | resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} 811 | engines: {node: '>=4'} 812 | peerDependencies: 813 | '@typescript-eslint/parser': '*' 814 | eslint: '*' 815 | eslint-import-resolver-node: '*' 816 | eslint-import-resolver-typescript: '*' 817 | eslint-import-resolver-webpack: '*' 818 | peerDependenciesMeta: 819 | '@typescript-eslint/parser': 820 | optional: true 821 | eslint: 822 | optional: true 823 | eslint-import-resolver-node: 824 | optional: true 825 | eslint-import-resolver-typescript: 826 | optional: true 827 | eslint-import-resolver-webpack: 828 | optional: true 829 | 830 | eslint-plugin-import@2.29.1: 831 | resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} 832 | engines: {node: '>=4'} 833 | peerDependencies: 834 | '@typescript-eslint/parser': '*' 835 | eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 836 | peerDependenciesMeta: 837 | '@typescript-eslint/parser': 838 | optional: true 839 | 840 | eslint-plugin-jsx-a11y@6.8.0: 841 | resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} 842 | engines: {node: '>=4.0'} 843 | peerDependencies: 844 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 845 | 846 | eslint-plugin-react-hooks@4.6.2: 847 | resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} 848 | engines: {node: '>=10'} 849 | peerDependencies: 850 | eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 851 | 852 | eslint-plugin-react@7.34.2: 853 | resolution: {integrity: sha512-2HCmrU+/JNigDN6tg55cRDKCQWicYAPB38JGSFDQt95jDm8rrvSUo7YPkOIm5l6ts1j1zCvysNcasvfTMQzUOw==} 854 | engines: {node: '>=4'} 855 | peerDependencies: 856 | eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 857 | 858 | eslint-scope@7.2.2: 859 | resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} 860 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 861 | 862 | eslint-visitor-keys@3.4.3: 863 | resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} 864 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 865 | 866 | eslint@8.57.0: 867 | resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} 868 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 869 | hasBin: true 870 | 871 | espree@9.6.1: 872 | resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} 873 | engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} 874 | 875 | esquery@1.5.0: 876 | resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} 877 | engines: {node: '>=0.10'} 878 | 879 | esrecurse@4.3.0: 880 | resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} 881 | engines: {node: '>=4.0'} 882 | 883 | estraverse@5.3.0: 884 | resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} 885 | engines: {node: '>=4.0'} 886 | 887 | esutils@2.0.3: 888 | resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} 889 | engines: {node: '>=0.10.0'} 890 | 891 | fast-deep-equal@3.1.3: 892 | resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} 893 | 894 | fast-glob@3.3.2: 895 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} 896 | engines: {node: '>=8.6.0'} 897 | 898 | fast-json-stable-stringify@2.1.0: 899 | resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} 900 | 901 | fast-levenshtein@2.0.6: 902 | resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} 903 | 904 | fastq@1.17.1: 905 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} 906 | 907 | file-entry-cache@6.0.1: 908 | resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} 909 | engines: {node: ^10.12.0 || >=12.0.0} 910 | 911 | fill-range@7.1.1: 912 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 913 | engines: {node: '>=8'} 914 | 915 | find-up@5.0.0: 916 | resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} 917 | engines: {node: '>=10'} 918 | 919 | flat-cache@3.2.0: 920 | resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} 921 | engines: {node: ^10.12.0 || >=12.0.0} 922 | 923 | flatted@3.3.1: 924 | resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} 925 | 926 | for-each@0.3.3: 927 | resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} 928 | 929 | foreground-child@3.2.0: 930 | resolution: {integrity: sha512-CrWQNaEl1/6WeZoarcM9LHupTo3RpZO2Pdk1vktwzPiQTsJnAKJmm3TACKeG5UZbWDfaH2AbvYxzP96y0MT7fA==} 931 | engines: {node: '>=14'} 932 | 933 | form-data@4.0.0: 934 | resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} 935 | engines: {node: '>= 6'} 936 | 937 | fs.realpath@1.0.0: 938 | resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} 939 | 940 | fsevents@2.3.3: 941 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 942 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 943 | os: [darwin] 944 | 945 | function-bind@1.1.2: 946 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 947 | 948 | function.prototype.name@1.1.6: 949 | resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} 950 | engines: {node: '>= 0.4'} 951 | 952 | functions-have-names@1.2.3: 953 | resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} 954 | 955 | get-intrinsic@1.2.4: 956 | resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} 957 | engines: {node: '>= 0.4'} 958 | 959 | get-symbol-description@1.0.2: 960 | resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} 961 | engines: {node: '>= 0.4'} 962 | 963 | get-tsconfig@4.7.5: 964 | resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} 965 | 966 | glob-parent@5.1.2: 967 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 968 | engines: {node: '>= 6'} 969 | 970 | glob-parent@6.0.2: 971 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 972 | engines: {node: '>=10.13.0'} 973 | 974 | glob@10.3.10: 975 | resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} 976 | engines: {node: '>=16 || 14 >=14.17'} 977 | hasBin: true 978 | 979 | glob@10.4.1: 980 | resolution: {integrity: sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==} 981 | engines: {node: '>=16 || 14 >=14.18'} 982 | hasBin: true 983 | 984 | glob@7.2.3: 985 | resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} 986 | deprecated: Glob versions prior to v9 are no longer supported 987 | 988 | globals@13.24.0: 989 | resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} 990 | engines: {node: '>=8'} 991 | 992 | globalthis@1.0.4: 993 | resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} 994 | engines: {node: '>= 0.4'} 995 | 996 | globby@11.1.0: 997 | resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} 998 | engines: {node: '>=10'} 999 | 1000 | gopd@1.0.1: 1001 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} 1002 | 1003 | graceful-fs@4.2.11: 1004 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} 1005 | 1006 | graphemer@1.4.0: 1007 | resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 1008 | 1009 | has-bigints@1.0.2: 1010 | resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} 1011 | 1012 | has-flag@4.0.0: 1013 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1014 | engines: {node: '>=8'} 1015 | 1016 | has-property-descriptors@1.0.2: 1017 | resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} 1018 | 1019 | has-proto@1.0.3: 1020 | resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} 1021 | engines: {node: '>= 0.4'} 1022 | 1023 | has-symbols@1.0.3: 1024 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} 1025 | engines: {node: '>= 0.4'} 1026 | 1027 | has-tostringtag@1.0.2: 1028 | resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} 1029 | engines: {node: '>= 0.4'} 1030 | 1031 | hasown@2.0.2: 1032 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 1033 | engines: {node: '>= 0.4'} 1034 | 1035 | ignore@5.3.1: 1036 | resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} 1037 | engines: {node: '>= 4'} 1038 | 1039 | import-fresh@3.3.0: 1040 | resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} 1041 | engines: {node: '>=6'} 1042 | 1043 | imurmurhash@0.1.4: 1044 | resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1045 | engines: {node: '>=0.8.19'} 1046 | 1047 | inflight@1.0.6: 1048 | resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} 1049 | deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. 1050 | 1051 | inherits@2.0.4: 1052 | resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1053 | 1054 | internal-slot@1.0.7: 1055 | resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} 1056 | engines: {node: '>= 0.4'} 1057 | 1058 | is-array-buffer@3.0.4: 1059 | resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} 1060 | engines: {node: '>= 0.4'} 1061 | 1062 | is-arrayish@0.3.2: 1063 | resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} 1064 | 1065 | is-async-function@2.0.0: 1066 | resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} 1067 | engines: {node: '>= 0.4'} 1068 | 1069 | is-bigint@1.0.4: 1070 | resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} 1071 | 1072 | is-binary-path@2.1.0: 1073 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 1074 | engines: {node: '>=8'} 1075 | 1076 | is-boolean-object@1.1.2: 1077 | resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} 1078 | engines: {node: '>= 0.4'} 1079 | 1080 | is-callable@1.2.7: 1081 | resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} 1082 | engines: {node: '>= 0.4'} 1083 | 1084 | is-core-module@2.13.1: 1085 | resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} 1086 | 1087 | is-data-view@1.0.1: 1088 | resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} 1089 | engines: {node: '>= 0.4'} 1090 | 1091 | is-date-object@1.0.5: 1092 | resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} 1093 | engines: {node: '>= 0.4'} 1094 | 1095 | is-extglob@2.1.1: 1096 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1097 | engines: {node: '>=0.10.0'} 1098 | 1099 | is-finalizationregistry@1.0.2: 1100 | resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} 1101 | 1102 | is-fullwidth-code-point@3.0.0: 1103 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 1104 | engines: {node: '>=8'} 1105 | 1106 | is-generator-function@1.0.10: 1107 | resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} 1108 | engines: {node: '>= 0.4'} 1109 | 1110 | is-glob@4.0.3: 1111 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1112 | engines: {node: '>=0.10.0'} 1113 | 1114 | is-map@2.0.3: 1115 | resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} 1116 | engines: {node: '>= 0.4'} 1117 | 1118 | is-negative-zero@2.0.3: 1119 | resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} 1120 | engines: {node: '>= 0.4'} 1121 | 1122 | is-number-object@1.0.7: 1123 | resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} 1124 | engines: {node: '>= 0.4'} 1125 | 1126 | is-number@7.0.0: 1127 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1128 | engines: {node: '>=0.12.0'} 1129 | 1130 | is-path-inside@3.0.3: 1131 | resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} 1132 | engines: {node: '>=8'} 1133 | 1134 | is-regex@1.1.4: 1135 | resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} 1136 | engines: {node: '>= 0.4'} 1137 | 1138 | is-set@2.0.3: 1139 | resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} 1140 | engines: {node: '>= 0.4'} 1141 | 1142 | is-shared-array-buffer@1.0.3: 1143 | resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} 1144 | engines: {node: '>= 0.4'} 1145 | 1146 | is-string@1.0.7: 1147 | resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} 1148 | engines: {node: '>= 0.4'} 1149 | 1150 | is-symbol@1.0.4: 1151 | resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} 1152 | engines: {node: '>= 0.4'} 1153 | 1154 | is-typed-array@1.1.13: 1155 | resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} 1156 | engines: {node: '>= 0.4'} 1157 | 1158 | is-weakmap@2.0.2: 1159 | resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} 1160 | engines: {node: '>= 0.4'} 1161 | 1162 | is-weakref@1.0.2: 1163 | resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} 1164 | 1165 | is-weakset@2.0.3: 1166 | resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} 1167 | engines: {node: '>= 0.4'} 1168 | 1169 | isarray@2.0.5: 1170 | resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} 1171 | 1172 | isexe@2.0.0: 1173 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1174 | 1175 | iterator.prototype@1.1.2: 1176 | resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} 1177 | 1178 | jackspeak@2.3.6: 1179 | resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} 1180 | engines: {node: '>=14'} 1181 | 1182 | jackspeak@3.4.0: 1183 | resolution: {integrity: sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw==} 1184 | engines: {node: '>=14'} 1185 | 1186 | jiti@1.21.6: 1187 | resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} 1188 | hasBin: true 1189 | 1190 | js-tokens@4.0.0: 1191 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1192 | 1193 | js-yaml@4.1.0: 1194 | resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1195 | hasBin: true 1196 | 1197 | json-buffer@3.0.1: 1198 | resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} 1199 | 1200 | json-schema-traverse@0.4.1: 1201 | resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} 1202 | 1203 | json-stable-stringify-without-jsonify@1.0.1: 1204 | resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1205 | 1206 | json5@1.0.2: 1207 | resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} 1208 | hasBin: true 1209 | 1210 | jsx-ast-utils@3.3.5: 1211 | resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} 1212 | engines: {node: '>=4.0'} 1213 | 1214 | keyv@4.5.4: 1215 | resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} 1216 | 1217 | language-subtag-registry@0.3.23: 1218 | resolution: {integrity: sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==} 1219 | 1220 | language-tags@1.0.9: 1221 | resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==} 1222 | engines: {node: '>=0.10'} 1223 | 1224 | levn@0.4.1: 1225 | resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1226 | engines: {node: '>= 0.8.0'} 1227 | 1228 | lilconfig@2.1.0: 1229 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} 1230 | engines: {node: '>=10'} 1231 | 1232 | lilconfig@3.1.2: 1233 | resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} 1234 | engines: {node: '>=14'} 1235 | 1236 | lines-and-columns@1.2.4: 1237 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 1238 | 1239 | loader-utils@1.4.2: 1240 | resolution: {integrity: sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==} 1241 | engines: {node: '>=4.0.0'} 1242 | 1243 | locate-path@6.0.0: 1244 | resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1245 | engines: {node: '>=10'} 1246 | 1247 | lodash.merge@4.6.2: 1248 | resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1249 | 1250 | loose-envify@1.4.0: 1251 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 1252 | hasBin: true 1253 | 1254 | lru-cache@10.2.2: 1255 | resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} 1256 | engines: {node: 14 || >=16.14} 1257 | 1258 | merge2@1.4.1: 1259 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1260 | engines: {node: '>= 8'} 1261 | 1262 | micromatch@4.0.7: 1263 | resolution: {integrity: sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==} 1264 | engines: {node: '>=8.6'} 1265 | 1266 | mime-db@1.52.0: 1267 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 1268 | engines: {node: '>= 0.6'} 1269 | 1270 | mime-types@2.1.35: 1271 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 1272 | engines: {node: '>= 0.6'} 1273 | 1274 | minimatch@3.1.2: 1275 | resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1276 | 1277 | minimatch@9.0.3: 1278 | resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} 1279 | engines: {node: '>=16 || 14 >=14.17'} 1280 | 1281 | minimatch@9.0.4: 1282 | resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} 1283 | engines: {node: '>=16 || 14 >=14.17'} 1284 | 1285 | minimist@1.2.8: 1286 | resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} 1287 | 1288 | minipass@7.1.2: 1289 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 1290 | engines: {node: '>=16 || 14 >=14.17'} 1291 | 1292 | ms@2.1.2: 1293 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1294 | 1295 | ms@2.1.3: 1296 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} 1297 | 1298 | mz@2.7.0: 1299 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 1300 | 1301 | nanoid@3.3.7: 1302 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 1303 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1304 | hasBin: true 1305 | 1306 | natural-compare@1.4.0: 1307 | resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1308 | 1309 | next@14.2.4: 1310 | resolution: {integrity: sha512-R8/V7vugY+822rsQGQCjoLhMuC9oFj9SOi4Cl4b2wjDrseD0LRZ10W7R6Czo4w9ZznVSshKjuIomsRjvm9EKJQ==} 1311 | engines: {node: '>=18.17.0'} 1312 | hasBin: true 1313 | peerDependencies: 1314 | '@opentelemetry/api': ^1.1.0 1315 | '@playwright/test': ^1.41.2 1316 | react: ^18.2.0 1317 | react-dom: ^18.2.0 1318 | sass: ^1.3.0 1319 | peerDependenciesMeta: 1320 | '@opentelemetry/api': 1321 | optional: true 1322 | '@playwright/test': 1323 | optional: true 1324 | sass: 1325 | optional: true 1326 | 1327 | node-fetch@2.7.0: 1328 | resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} 1329 | engines: {node: 4.x || >=6.0.0} 1330 | peerDependencies: 1331 | encoding: ^0.1.0 1332 | peerDependenciesMeta: 1333 | encoding: 1334 | optional: true 1335 | 1336 | normalize-path@3.0.0: 1337 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1338 | engines: {node: '>=0.10.0'} 1339 | 1340 | object-assign@4.1.1: 1341 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 1342 | engines: {node: '>=0.10.0'} 1343 | 1344 | object-hash@3.0.0: 1345 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} 1346 | engines: {node: '>= 6'} 1347 | 1348 | object-inspect@1.13.1: 1349 | resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} 1350 | 1351 | object-keys@1.1.1: 1352 | resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} 1353 | engines: {node: '>= 0.4'} 1354 | 1355 | object.assign@4.1.5: 1356 | resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} 1357 | engines: {node: '>= 0.4'} 1358 | 1359 | object.entries@1.1.8: 1360 | resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} 1361 | engines: {node: '>= 0.4'} 1362 | 1363 | object.fromentries@2.0.8: 1364 | resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} 1365 | engines: {node: '>= 0.4'} 1366 | 1367 | object.groupby@1.0.3: 1368 | resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} 1369 | engines: {node: '>= 0.4'} 1370 | 1371 | object.hasown@1.1.4: 1372 | resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} 1373 | engines: {node: '>= 0.4'} 1374 | 1375 | object.values@1.2.0: 1376 | resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} 1377 | engines: {node: '>= 0.4'} 1378 | 1379 | once@1.4.0: 1380 | resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} 1381 | 1382 | optionator@0.9.4: 1383 | resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 1384 | engines: {node: '>= 0.8.0'} 1385 | 1386 | p-limit@3.1.0: 1387 | resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} 1388 | engines: {node: '>=10'} 1389 | 1390 | p-locate@5.0.0: 1391 | resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} 1392 | engines: {node: '>=10'} 1393 | 1394 | parent-module@1.0.1: 1395 | resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1396 | engines: {node: '>=6'} 1397 | 1398 | path-exists@4.0.0: 1399 | resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} 1400 | engines: {node: '>=8'} 1401 | 1402 | path-is-absolute@1.0.1: 1403 | resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} 1404 | engines: {node: '>=0.10.0'} 1405 | 1406 | path-key@3.1.1: 1407 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 1408 | engines: {node: '>=8'} 1409 | 1410 | path-parse@1.0.7: 1411 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1412 | 1413 | path-scurry@1.11.1: 1414 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 1415 | engines: {node: '>=16 || 14 >=14.18'} 1416 | 1417 | path-type@4.0.0: 1418 | resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} 1419 | engines: {node: '>=8'} 1420 | 1421 | picocolors@1.0.1: 1422 | resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} 1423 | 1424 | picomatch@2.3.1: 1425 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1426 | engines: {node: '>=8.6'} 1427 | 1428 | pify@2.3.0: 1429 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} 1430 | engines: {node: '>=0.10.0'} 1431 | 1432 | pirates@4.0.6: 1433 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 1434 | engines: {node: '>= 6'} 1435 | 1436 | plaiceholder@3.0.0: 1437 | resolution: {integrity: sha512-jwHxxHPnr1BwRzPCeZgEK2BMsEy2327sWynw3qb6XC/oGgGDUTPtR8pFxFQmNArhMBwhkUbUr5OPhhIJpCa8eQ==} 1438 | peerDependencies: 1439 | sharp: '>= 0.30.6' 1440 | 1441 | possible-typed-array-names@1.0.0: 1442 | resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} 1443 | engines: {node: '>= 0.4'} 1444 | 1445 | postcss-import@15.1.0: 1446 | resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} 1447 | engines: {node: '>=14.0.0'} 1448 | peerDependencies: 1449 | postcss: ^8.0.0 1450 | 1451 | postcss-js@4.0.1: 1452 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} 1453 | engines: {node: ^12 || ^14 || >= 16} 1454 | peerDependencies: 1455 | postcss: ^8.4.21 1456 | 1457 | postcss-load-config@4.0.2: 1458 | resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} 1459 | engines: {node: '>= 14'} 1460 | peerDependencies: 1461 | postcss: '>=8.0.9' 1462 | ts-node: '>=9.0.0' 1463 | peerDependenciesMeta: 1464 | postcss: 1465 | optional: true 1466 | ts-node: 1467 | optional: true 1468 | 1469 | postcss-nested@6.0.1: 1470 | resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} 1471 | engines: {node: '>=12.0'} 1472 | peerDependencies: 1473 | postcss: ^8.2.14 1474 | 1475 | postcss-selector-parser@6.1.0: 1476 | resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} 1477 | engines: {node: '>=4'} 1478 | 1479 | postcss-value-parser@4.2.0: 1480 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 1481 | 1482 | postcss@8.4.31: 1483 | resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} 1484 | engines: {node: ^10 || ^12 || >=14} 1485 | 1486 | postcss@8.4.38: 1487 | resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} 1488 | engines: {node: ^10 || ^12 || >=14} 1489 | 1490 | prelude-ls@1.2.1: 1491 | resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} 1492 | engines: {node: '>= 0.8.0'} 1493 | 1494 | prismjs@1.29.0: 1495 | resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} 1496 | engines: {node: '>=6'} 1497 | 1498 | prop-types@15.8.1: 1499 | resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} 1500 | 1501 | punycode@2.3.1: 1502 | resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1503 | engines: {node: '>=6'} 1504 | 1505 | queue-microtask@1.2.3: 1506 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1507 | 1508 | react-dom@18.3.1: 1509 | resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} 1510 | peerDependencies: 1511 | react: ^18.3.1 1512 | 1513 | react-is@16.13.1: 1514 | resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} 1515 | 1516 | react-notion@0.10.0: 1517 | resolution: {integrity: sha512-i5lVAxzSs7GnTpIbKtivPQWxGZiKCO5xmCmMJyn6F91y8X1IIJqnypkK+31F2acb1l1Qd8Yv0ktuvXwz9g49NQ==} 1518 | engines: {node: '>=10'} 1519 | peerDependencies: 1520 | react: '>=16' 1521 | 1522 | react@18.3.1: 1523 | resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} 1524 | engines: {node: '>=0.10.0'} 1525 | 1526 | read-cache@1.0.0: 1527 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} 1528 | 1529 | readdirp@3.6.0: 1530 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1531 | engines: {node: '>=8.10.0'} 1532 | 1533 | reflect.getprototypeof@1.0.6: 1534 | resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} 1535 | engines: {node: '>= 0.4'} 1536 | 1537 | regenerator-runtime@0.14.1: 1538 | resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} 1539 | 1540 | regexp.prototype.flags@1.5.2: 1541 | resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} 1542 | engines: {node: '>= 0.4'} 1543 | 1544 | resolve-from@4.0.0: 1545 | resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} 1546 | engines: {node: '>=4'} 1547 | 1548 | resolve-pkg-maps@1.0.0: 1549 | resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} 1550 | 1551 | resolve@1.22.8: 1552 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} 1553 | hasBin: true 1554 | 1555 | resolve@2.0.0-next.5: 1556 | resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} 1557 | hasBin: true 1558 | 1559 | reusify@1.0.4: 1560 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 1561 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 1562 | 1563 | rimraf@3.0.2: 1564 | resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} 1565 | deprecated: Rimraf versions prior to v4 are no longer supported 1566 | hasBin: true 1567 | 1568 | run-parallel@1.2.0: 1569 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1570 | 1571 | safe-array-concat@1.1.2: 1572 | resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} 1573 | engines: {node: '>=0.4'} 1574 | 1575 | safe-regex-test@1.0.3: 1576 | resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} 1577 | engines: {node: '>= 0.4'} 1578 | 1579 | scheduler@0.23.2: 1580 | resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} 1581 | 1582 | semver@6.3.1: 1583 | resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 1584 | hasBin: true 1585 | 1586 | semver@7.6.2: 1587 | resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} 1588 | engines: {node: '>=10'} 1589 | hasBin: true 1590 | 1591 | set-function-length@1.2.2: 1592 | resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} 1593 | engines: {node: '>= 0.4'} 1594 | 1595 | set-function-name@2.0.2: 1596 | resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} 1597 | engines: {node: '>= 0.4'} 1598 | 1599 | sharp@0.33.4: 1600 | resolution: {integrity: sha512-7i/dt5kGl7qR4gwPRD2biwD2/SvBn3O04J77XKFgL2OnZtQw+AG9wnuS/csmu80nPRHLYE9E41fyEiG8nhH6/Q==} 1601 | engines: {libvips: '>=8.15.2', node: ^18.17.0 || ^20.3.0 || >=21.0.0} 1602 | 1603 | shebang-command@2.0.0: 1604 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 1605 | engines: {node: '>=8'} 1606 | 1607 | shebang-regex@3.0.0: 1608 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 1609 | engines: {node: '>=8'} 1610 | 1611 | side-channel@1.0.6: 1612 | resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} 1613 | engines: {node: '>= 0.4'} 1614 | 1615 | signal-exit@4.1.0: 1616 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 1617 | engines: {node: '>=14'} 1618 | 1619 | simple-html-tokenizer@0.1.1: 1620 | resolution: {integrity: sha512-Mc/gH3RvlKvB/gkp9XwgDKEWrSYyefIJPGG8Jk1suZms/rISdUuVEMx5O1WBnTWaScvxXDvGJrZQWblUmQHjkQ==} 1621 | 1622 | simple-swizzle@0.2.2: 1623 | resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} 1624 | 1625 | slash@3.0.0: 1626 | resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} 1627 | engines: {node: '>=8'} 1628 | 1629 | source-map-js@1.2.0: 1630 | resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} 1631 | engines: {node: '>=0.10.0'} 1632 | 1633 | streamsearch@1.1.0: 1634 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} 1635 | engines: {node: '>=10.0.0'} 1636 | 1637 | string-width@4.2.3: 1638 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 1639 | engines: {node: '>=8'} 1640 | 1641 | string-width@5.1.2: 1642 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 1643 | engines: {node: '>=12'} 1644 | 1645 | string.prototype.matchall@4.0.11: 1646 | resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} 1647 | engines: {node: '>= 0.4'} 1648 | 1649 | string.prototype.trim@1.2.9: 1650 | resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} 1651 | engines: {node: '>= 0.4'} 1652 | 1653 | string.prototype.trimend@1.0.8: 1654 | resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} 1655 | 1656 | string.prototype.trimstart@1.0.8: 1657 | resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} 1658 | engines: {node: '>= 0.4'} 1659 | 1660 | strip-ansi@6.0.1: 1661 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1662 | engines: {node: '>=8'} 1663 | 1664 | strip-ansi@7.1.0: 1665 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 1666 | engines: {node: '>=12'} 1667 | 1668 | strip-bom@3.0.0: 1669 | resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} 1670 | engines: {node: '>=4'} 1671 | 1672 | strip-json-comments@3.1.1: 1673 | resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} 1674 | engines: {node: '>=8'} 1675 | 1676 | styled-jsx@5.1.1: 1677 | resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==} 1678 | engines: {node: '>= 12.0.0'} 1679 | peerDependencies: 1680 | '@babel/core': '*' 1681 | babel-plugin-macros: '*' 1682 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0' 1683 | peerDependenciesMeta: 1684 | '@babel/core': 1685 | optional: true 1686 | babel-plugin-macros: 1687 | optional: true 1688 | 1689 | sucrase@3.35.0: 1690 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} 1691 | engines: {node: '>=16 || 14 >=14.17'} 1692 | hasBin: true 1693 | 1694 | supports-color@7.2.0: 1695 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1696 | engines: {node: '>=8'} 1697 | 1698 | supports-preserve-symlinks-flag@1.0.0: 1699 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 1700 | engines: {node: '>= 0.4'} 1701 | 1702 | svg-inline-loader@0.8.2: 1703 | resolution: {integrity: sha512-kbrcEh5n5JkypaSC152eGfGcnT4lkR0eSfvefaUJkLqgGjRQJyKDvvEE/CCv5aTSdfXuc+N98w16iAojhShI3g==} 1704 | 1705 | tabbable@6.2.0: 1706 | resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} 1707 | 1708 | tailwindcss@3.4.4: 1709 | resolution: {integrity: sha512-ZoyXOdJjISB7/BcLTR6SEsLgKtDStYyYZVLsUtWChO4Ps20CBad7lfJKVDiejocV4ME1hLmyY0WJE3hSDcmQ2A==} 1710 | engines: {node: '>=14.0.0'} 1711 | hasBin: true 1712 | 1713 | tapable@2.2.1: 1714 | resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} 1715 | engines: {node: '>=6'} 1716 | 1717 | text-table@0.2.0: 1718 | resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} 1719 | 1720 | thenify-all@1.6.0: 1721 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 1722 | engines: {node: '>=0.8'} 1723 | 1724 | thenify@3.3.1: 1725 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 1726 | 1727 | to-regex-range@5.0.1: 1728 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1729 | engines: {node: '>=8.0'} 1730 | 1731 | tr46@0.0.3: 1732 | resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} 1733 | 1734 | ts-api-utils@1.3.0: 1735 | resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} 1736 | engines: {node: '>=16'} 1737 | peerDependencies: 1738 | typescript: '>=4.2.0' 1739 | 1740 | ts-interface-checker@0.1.13: 1741 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 1742 | 1743 | tsconfig-paths@3.15.0: 1744 | resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==} 1745 | 1746 | tslib@2.6.3: 1747 | resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} 1748 | 1749 | type-check@0.4.0: 1750 | resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} 1751 | engines: {node: '>= 0.8.0'} 1752 | 1753 | type-fest@0.20.2: 1754 | resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} 1755 | engines: {node: '>=10'} 1756 | 1757 | typed-array-buffer@1.0.2: 1758 | resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} 1759 | engines: {node: '>= 0.4'} 1760 | 1761 | typed-array-byte-length@1.0.1: 1762 | resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} 1763 | engines: {node: '>= 0.4'} 1764 | 1765 | typed-array-byte-offset@1.0.2: 1766 | resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} 1767 | engines: {node: '>= 0.4'} 1768 | 1769 | typed-array-length@1.0.6: 1770 | resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} 1771 | engines: {node: '>= 0.4'} 1772 | 1773 | typescript@5.4.5: 1774 | resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} 1775 | engines: {node: '>=14.17'} 1776 | hasBin: true 1777 | 1778 | unbox-primitive@1.0.2: 1779 | resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} 1780 | 1781 | undici-types@5.26.5: 1782 | resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} 1783 | 1784 | uri-js@4.4.1: 1785 | resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1786 | 1787 | util-deprecate@1.0.2: 1788 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 1789 | 1790 | webidl-conversions@3.0.1: 1791 | resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} 1792 | 1793 | whatwg-url@5.0.0: 1794 | resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} 1795 | 1796 | which-boxed-primitive@1.0.2: 1797 | resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} 1798 | 1799 | which-builtin-type@1.1.3: 1800 | resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} 1801 | engines: {node: '>= 0.4'} 1802 | 1803 | which-collection@1.0.2: 1804 | resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} 1805 | engines: {node: '>= 0.4'} 1806 | 1807 | which-typed-array@1.1.15: 1808 | resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} 1809 | engines: {node: '>= 0.4'} 1810 | 1811 | which@2.0.2: 1812 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1813 | engines: {node: '>= 8'} 1814 | hasBin: true 1815 | 1816 | word-wrap@1.2.5: 1817 | resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} 1818 | engines: {node: '>=0.10.0'} 1819 | 1820 | wrap-ansi@7.0.0: 1821 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 1822 | engines: {node: '>=10'} 1823 | 1824 | wrap-ansi@8.1.0: 1825 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 1826 | engines: {node: '>=12'} 1827 | 1828 | wrappy@1.0.2: 1829 | resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} 1830 | 1831 | yaml@2.4.5: 1832 | resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} 1833 | engines: {node: '>= 14'} 1834 | hasBin: true 1835 | 1836 | yocto-queue@0.1.0: 1837 | resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 1838 | engines: {node: '>=10'} 1839 | 1840 | snapshots: 1841 | 1842 | '@alloc/quick-lru@5.2.0': {} 1843 | 1844 | '@babel/runtime@7.24.7': 1845 | dependencies: 1846 | regenerator-runtime: 0.14.1 1847 | 1848 | '@emnapi/runtime@1.2.0': 1849 | dependencies: 1850 | tslib: 2.6.3 1851 | optional: true 1852 | 1853 | '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': 1854 | dependencies: 1855 | eslint: 8.57.0 1856 | eslint-visitor-keys: 3.4.3 1857 | 1858 | '@eslint-community/regexpp@4.10.1': {} 1859 | 1860 | '@eslint/eslintrc@2.1.4': 1861 | dependencies: 1862 | ajv: 6.12.6 1863 | debug: 4.3.5 1864 | espree: 9.6.1 1865 | globals: 13.24.0 1866 | ignore: 5.3.1 1867 | import-fresh: 3.3.0 1868 | js-yaml: 4.1.0 1869 | minimatch: 3.1.2 1870 | strip-json-comments: 3.1.1 1871 | transitivePeerDependencies: 1872 | - supports-color 1873 | 1874 | '@eslint/js@8.57.0': {} 1875 | 1876 | '@floating-ui/core@1.6.2': 1877 | dependencies: 1878 | '@floating-ui/utils': 0.2.2 1879 | 1880 | '@floating-ui/dom@1.6.5': 1881 | dependencies: 1882 | '@floating-ui/core': 1.6.2 1883 | '@floating-ui/utils': 0.2.2 1884 | 1885 | '@floating-ui/react-dom@2.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 1886 | dependencies: 1887 | '@floating-ui/dom': 1.6.5 1888 | react: 18.3.1 1889 | react-dom: 18.3.1(react@18.3.1) 1890 | 1891 | '@floating-ui/react@0.26.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 1892 | dependencies: 1893 | '@floating-ui/react-dom': 2.1.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 1894 | '@floating-ui/utils': 0.2.2 1895 | react: 18.3.1 1896 | react-dom: 18.3.1(react@18.3.1) 1897 | tabbable: 6.2.0 1898 | 1899 | '@floating-ui/utils@0.2.2': {} 1900 | 1901 | '@headlessui/react@2.0.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 1902 | dependencies: 1903 | '@floating-ui/react': 0.26.17(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 1904 | '@react-aria/focus': 3.17.1(react@18.3.1) 1905 | '@react-aria/interactions': 3.21.3(react@18.3.1) 1906 | '@tanstack/react-virtual': 3.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 1907 | react: 18.3.1 1908 | react-dom: 18.3.1(react@18.3.1) 1909 | 1910 | '@heroicons/react@2.1.3(react@18.3.1)': 1911 | dependencies: 1912 | react: 18.3.1 1913 | 1914 | '@humanwhocodes/config-array@0.11.14': 1915 | dependencies: 1916 | '@humanwhocodes/object-schema': 2.0.3 1917 | debug: 4.3.5 1918 | minimatch: 3.1.2 1919 | transitivePeerDependencies: 1920 | - supports-color 1921 | 1922 | '@humanwhocodes/module-importer@1.0.1': {} 1923 | 1924 | '@humanwhocodes/object-schema@2.0.3': {} 1925 | 1926 | '@img/sharp-darwin-arm64@0.33.4': 1927 | optionalDependencies: 1928 | '@img/sharp-libvips-darwin-arm64': 1.0.2 1929 | optional: true 1930 | 1931 | '@img/sharp-darwin-x64@0.33.4': 1932 | optionalDependencies: 1933 | '@img/sharp-libvips-darwin-x64': 1.0.2 1934 | optional: true 1935 | 1936 | '@img/sharp-libvips-darwin-arm64@1.0.2': 1937 | optional: true 1938 | 1939 | '@img/sharp-libvips-darwin-x64@1.0.2': 1940 | optional: true 1941 | 1942 | '@img/sharp-libvips-linux-arm64@1.0.2': 1943 | optional: true 1944 | 1945 | '@img/sharp-libvips-linux-arm@1.0.2': 1946 | optional: true 1947 | 1948 | '@img/sharp-libvips-linux-s390x@1.0.2': 1949 | optional: true 1950 | 1951 | '@img/sharp-libvips-linux-x64@1.0.2': 1952 | optional: true 1953 | 1954 | '@img/sharp-libvips-linuxmusl-arm64@1.0.2': 1955 | optional: true 1956 | 1957 | '@img/sharp-libvips-linuxmusl-x64@1.0.2': 1958 | optional: true 1959 | 1960 | '@img/sharp-linux-arm64@0.33.4': 1961 | optionalDependencies: 1962 | '@img/sharp-libvips-linux-arm64': 1.0.2 1963 | optional: true 1964 | 1965 | '@img/sharp-linux-arm@0.33.4': 1966 | optionalDependencies: 1967 | '@img/sharp-libvips-linux-arm': 1.0.2 1968 | optional: true 1969 | 1970 | '@img/sharp-linux-s390x@0.33.4': 1971 | optionalDependencies: 1972 | '@img/sharp-libvips-linux-s390x': 1.0.2 1973 | optional: true 1974 | 1975 | '@img/sharp-linux-x64@0.33.4': 1976 | optionalDependencies: 1977 | '@img/sharp-libvips-linux-x64': 1.0.2 1978 | optional: true 1979 | 1980 | '@img/sharp-linuxmusl-arm64@0.33.4': 1981 | optionalDependencies: 1982 | '@img/sharp-libvips-linuxmusl-arm64': 1.0.2 1983 | optional: true 1984 | 1985 | '@img/sharp-linuxmusl-x64@0.33.4': 1986 | optionalDependencies: 1987 | '@img/sharp-libvips-linuxmusl-x64': 1.0.2 1988 | optional: true 1989 | 1990 | '@img/sharp-wasm32@0.33.4': 1991 | dependencies: 1992 | '@emnapi/runtime': 1.2.0 1993 | optional: true 1994 | 1995 | '@img/sharp-win32-ia32@0.33.4': 1996 | optional: true 1997 | 1998 | '@img/sharp-win32-x64@0.33.4': 1999 | optional: true 2000 | 2001 | '@isaacs/cliui@8.0.2': 2002 | dependencies: 2003 | string-width: 5.1.2 2004 | string-width-cjs: string-width@4.2.3 2005 | strip-ansi: 7.1.0 2006 | strip-ansi-cjs: strip-ansi@6.0.1 2007 | wrap-ansi: 8.1.0 2008 | wrap-ansi-cjs: wrap-ansi@7.0.0 2009 | 2010 | '@jridgewell/gen-mapping@0.3.5': 2011 | dependencies: 2012 | '@jridgewell/set-array': 1.2.1 2013 | '@jridgewell/sourcemap-codec': 1.4.15 2014 | '@jridgewell/trace-mapping': 0.3.25 2015 | 2016 | '@jridgewell/resolve-uri@3.1.2': {} 2017 | 2018 | '@jridgewell/set-array@1.2.1': {} 2019 | 2020 | '@jridgewell/sourcemap-codec@1.4.15': {} 2021 | 2022 | '@jridgewell/trace-mapping@0.3.25': 2023 | dependencies: 2024 | '@jridgewell/resolve-uri': 3.1.2 2025 | '@jridgewell/sourcemap-codec': 1.4.15 2026 | 2027 | '@next/env@14.2.4': {} 2028 | 2029 | '@next/eslint-plugin-next@14.2.4': 2030 | dependencies: 2031 | glob: 10.3.10 2032 | 2033 | '@next/swc-darwin-arm64@14.2.4': 2034 | optional: true 2035 | 2036 | '@next/swc-darwin-x64@14.2.4': 2037 | optional: true 2038 | 2039 | '@next/swc-linux-arm64-gnu@14.2.4': 2040 | optional: true 2041 | 2042 | '@next/swc-linux-arm64-musl@14.2.4': 2043 | optional: true 2044 | 2045 | '@next/swc-linux-x64-gnu@14.2.4': 2046 | optional: true 2047 | 2048 | '@next/swc-linux-x64-musl@14.2.4': 2049 | optional: true 2050 | 2051 | '@next/swc-win32-arm64-msvc@14.2.4': 2052 | optional: true 2053 | 2054 | '@next/swc-win32-ia32-msvc@14.2.4': 2055 | optional: true 2056 | 2057 | '@next/swc-win32-x64-msvc@14.2.4': 2058 | optional: true 2059 | 2060 | '@nodelib/fs.scandir@2.1.5': 2061 | dependencies: 2062 | '@nodelib/fs.stat': 2.0.5 2063 | run-parallel: 1.2.0 2064 | 2065 | '@nodelib/fs.stat@2.0.5': {} 2066 | 2067 | '@nodelib/fs.walk@1.2.8': 2068 | dependencies: 2069 | '@nodelib/fs.scandir': 2.1.5 2070 | fastq: 1.17.1 2071 | 2072 | '@notionhq/client@2.2.15': 2073 | dependencies: 2074 | '@types/node-fetch': 2.6.11 2075 | node-fetch: 2.7.0 2076 | transitivePeerDependencies: 2077 | - encoding 2078 | 2079 | '@pkgjs/parseargs@0.11.0': 2080 | optional: true 2081 | 2082 | '@plaiceholder/next@3.0.0(next@14.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(plaiceholder@3.0.0(sharp@0.33.4))(sharp@0.33.4)': 2083 | dependencies: 2084 | next: 14.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 2085 | plaiceholder: 3.0.0(sharp@0.33.4) 2086 | sharp: 0.33.4 2087 | 2088 | '@react-aria/focus@3.17.1(react@18.3.1)': 2089 | dependencies: 2090 | '@react-aria/interactions': 3.21.3(react@18.3.1) 2091 | '@react-aria/utils': 3.24.1(react@18.3.1) 2092 | '@react-types/shared': 3.23.1(react@18.3.1) 2093 | '@swc/helpers': 0.5.5 2094 | clsx: 2.1.1 2095 | react: 18.3.1 2096 | 2097 | '@react-aria/interactions@3.21.3(react@18.3.1)': 2098 | dependencies: 2099 | '@react-aria/ssr': 3.9.4(react@18.3.1) 2100 | '@react-aria/utils': 3.24.1(react@18.3.1) 2101 | '@react-types/shared': 3.23.1(react@18.3.1) 2102 | '@swc/helpers': 0.5.5 2103 | react: 18.3.1 2104 | 2105 | '@react-aria/ssr@3.9.4(react@18.3.1)': 2106 | dependencies: 2107 | '@swc/helpers': 0.5.5 2108 | react: 18.3.1 2109 | 2110 | '@react-aria/utils@3.24.1(react@18.3.1)': 2111 | dependencies: 2112 | '@react-aria/ssr': 3.9.4(react@18.3.1) 2113 | '@react-stately/utils': 3.10.1(react@18.3.1) 2114 | '@react-types/shared': 3.23.1(react@18.3.1) 2115 | '@swc/helpers': 0.5.5 2116 | clsx: 2.1.1 2117 | react: 18.3.1 2118 | 2119 | '@react-stately/utils@3.10.1(react@18.3.1)': 2120 | dependencies: 2121 | '@swc/helpers': 0.5.5 2122 | react: 18.3.1 2123 | 2124 | '@react-types/shared@3.23.1(react@18.3.1)': 2125 | dependencies: 2126 | react: 18.3.1 2127 | 2128 | '@rushstack/eslint-patch@1.10.3': {} 2129 | 2130 | '@swc/counter@0.1.3': {} 2131 | 2132 | '@swc/helpers@0.5.5': 2133 | dependencies: 2134 | '@swc/counter': 0.1.3 2135 | tslib: 2.6.3 2136 | 2137 | '@tanstack/react-virtual@3.5.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2138 | dependencies: 2139 | '@tanstack/virtual-core': 3.5.0 2140 | react: 18.3.1 2141 | react-dom: 18.3.1(react@18.3.1) 2142 | 2143 | '@tanstack/virtual-core@3.5.0': {} 2144 | 2145 | '@types/json5@0.0.29': {} 2146 | 2147 | '@types/node-fetch@2.6.11': 2148 | dependencies: 2149 | '@types/node': 20.14.2 2150 | form-data: 4.0.0 2151 | 2152 | '@types/node@20.14.2': 2153 | dependencies: 2154 | undici-types: 5.26.5 2155 | 2156 | '@types/prop-types@15.7.12': {} 2157 | 2158 | '@types/react-dom@18.3.0': 2159 | dependencies: 2160 | '@types/react': 18.3.3 2161 | 2162 | '@types/react@18.3.3': 2163 | dependencies: 2164 | '@types/prop-types': 15.7.12 2165 | csstype: 3.1.3 2166 | 2167 | '@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5)': 2168 | dependencies: 2169 | '@typescript-eslint/scope-manager': 7.2.0 2170 | '@typescript-eslint/types': 7.2.0 2171 | '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.4.5) 2172 | '@typescript-eslint/visitor-keys': 7.2.0 2173 | debug: 4.3.5 2174 | eslint: 8.57.0 2175 | optionalDependencies: 2176 | typescript: 5.4.5 2177 | transitivePeerDependencies: 2178 | - supports-color 2179 | 2180 | '@typescript-eslint/scope-manager@7.2.0': 2181 | dependencies: 2182 | '@typescript-eslint/types': 7.2.0 2183 | '@typescript-eslint/visitor-keys': 7.2.0 2184 | 2185 | '@typescript-eslint/types@7.2.0': {} 2186 | 2187 | '@typescript-eslint/typescript-estree@7.2.0(typescript@5.4.5)': 2188 | dependencies: 2189 | '@typescript-eslint/types': 7.2.0 2190 | '@typescript-eslint/visitor-keys': 7.2.0 2191 | debug: 4.3.5 2192 | globby: 11.1.0 2193 | is-glob: 4.0.3 2194 | minimatch: 9.0.3 2195 | semver: 7.6.2 2196 | ts-api-utils: 1.3.0(typescript@5.4.5) 2197 | optionalDependencies: 2198 | typescript: 5.4.5 2199 | transitivePeerDependencies: 2200 | - supports-color 2201 | 2202 | '@typescript-eslint/visitor-keys@7.2.0': 2203 | dependencies: 2204 | '@typescript-eslint/types': 7.2.0 2205 | eslint-visitor-keys: 3.4.3 2206 | 2207 | '@ungap/structured-clone@1.2.0': {} 2208 | 2209 | acorn-jsx@5.3.2(acorn@8.12.0): 2210 | dependencies: 2211 | acorn: 8.12.0 2212 | 2213 | acorn@8.12.0: {} 2214 | 2215 | ajv@6.12.6: 2216 | dependencies: 2217 | fast-deep-equal: 3.1.3 2218 | fast-json-stable-stringify: 2.1.0 2219 | json-schema-traverse: 0.4.1 2220 | uri-js: 4.4.1 2221 | 2222 | ansi-regex@5.0.1: {} 2223 | 2224 | ansi-regex@6.0.1: {} 2225 | 2226 | ansi-styles@4.3.0: 2227 | dependencies: 2228 | color-convert: 2.0.1 2229 | 2230 | ansi-styles@6.2.1: {} 2231 | 2232 | any-promise@1.3.0: {} 2233 | 2234 | anymatch@3.1.3: 2235 | dependencies: 2236 | normalize-path: 3.0.0 2237 | picomatch: 2.3.1 2238 | 2239 | arg@5.0.2: {} 2240 | 2241 | argparse@2.0.1: {} 2242 | 2243 | aria-query@5.3.0: 2244 | dependencies: 2245 | dequal: 2.0.3 2246 | 2247 | array-buffer-byte-length@1.0.1: 2248 | dependencies: 2249 | call-bind: 1.0.7 2250 | is-array-buffer: 3.0.4 2251 | 2252 | array-includes@3.1.8: 2253 | dependencies: 2254 | call-bind: 1.0.7 2255 | define-properties: 1.2.1 2256 | es-abstract: 1.23.3 2257 | es-object-atoms: 1.0.0 2258 | get-intrinsic: 1.2.4 2259 | is-string: 1.0.7 2260 | 2261 | array-union@2.1.0: {} 2262 | 2263 | array.prototype.findlast@1.2.5: 2264 | dependencies: 2265 | call-bind: 1.0.7 2266 | define-properties: 1.2.1 2267 | es-abstract: 1.23.3 2268 | es-errors: 1.3.0 2269 | es-object-atoms: 1.0.0 2270 | es-shim-unscopables: 1.0.2 2271 | 2272 | array.prototype.findlastindex@1.2.5: 2273 | dependencies: 2274 | call-bind: 1.0.7 2275 | define-properties: 1.2.1 2276 | es-abstract: 1.23.3 2277 | es-errors: 1.3.0 2278 | es-object-atoms: 1.0.0 2279 | es-shim-unscopables: 1.0.2 2280 | 2281 | array.prototype.flat@1.3.2: 2282 | dependencies: 2283 | call-bind: 1.0.7 2284 | define-properties: 1.2.1 2285 | es-abstract: 1.23.3 2286 | es-shim-unscopables: 1.0.2 2287 | 2288 | array.prototype.flatmap@1.3.2: 2289 | dependencies: 2290 | call-bind: 1.0.7 2291 | define-properties: 1.2.1 2292 | es-abstract: 1.23.3 2293 | es-shim-unscopables: 1.0.2 2294 | 2295 | array.prototype.toreversed@1.1.2: 2296 | dependencies: 2297 | call-bind: 1.0.7 2298 | define-properties: 1.2.1 2299 | es-abstract: 1.23.3 2300 | es-shim-unscopables: 1.0.2 2301 | 2302 | array.prototype.tosorted@1.1.4: 2303 | dependencies: 2304 | call-bind: 1.0.7 2305 | define-properties: 1.2.1 2306 | es-abstract: 1.23.3 2307 | es-errors: 1.3.0 2308 | es-shim-unscopables: 1.0.2 2309 | 2310 | arraybuffer.prototype.slice@1.0.3: 2311 | dependencies: 2312 | array-buffer-byte-length: 1.0.1 2313 | call-bind: 1.0.7 2314 | define-properties: 1.2.1 2315 | es-abstract: 1.23.3 2316 | es-errors: 1.3.0 2317 | get-intrinsic: 1.2.4 2318 | is-array-buffer: 3.0.4 2319 | is-shared-array-buffer: 1.0.3 2320 | 2321 | ast-types-flow@0.0.8: {} 2322 | 2323 | asynckit@0.4.0: {} 2324 | 2325 | available-typed-arrays@1.0.7: 2326 | dependencies: 2327 | possible-typed-array-names: 1.0.0 2328 | 2329 | axe-core@4.7.0: {} 2330 | 2331 | axobject-query@3.2.1: 2332 | dependencies: 2333 | dequal: 2.0.3 2334 | 2335 | balanced-match@1.0.2: {} 2336 | 2337 | big.js@5.2.2: {} 2338 | 2339 | binary-extensions@2.3.0: {} 2340 | 2341 | brace-expansion@1.1.11: 2342 | dependencies: 2343 | balanced-match: 1.0.2 2344 | concat-map: 0.0.1 2345 | 2346 | brace-expansion@2.0.1: 2347 | dependencies: 2348 | balanced-match: 1.0.2 2349 | 2350 | braces@3.0.3: 2351 | dependencies: 2352 | fill-range: 7.1.1 2353 | 2354 | busboy@1.6.0: 2355 | dependencies: 2356 | streamsearch: 1.1.0 2357 | 2358 | call-bind@1.0.7: 2359 | dependencies: 2360 | es-define-property: 1.0.0 2361 | es-errors: 1.3.0 2362 | function-bind: 1.1.2 2363 | get-intrinsic: 1.2.4 2364 | set-function-length: 1.2.2 2365 | 2366 | callsites@3.1.0: {} 2367 | 2368 | camelcase-css@2.0.1: {} 2369 | 2370 | caniuse-lite@1.0.30001634: {} 2371 | 2372 | chalk@4.1.2: 2373 | dependencies: 2374 | ansi-styles: 4.3.0 2375 | supports-color: 7.2.0 2376 | 2377 | chokidar@3.6.0: 2378 | dependencies: 2379 | anymatch: 3.1.3 2380 | braces: 3.0.3 2381 | glob-parent: 5.1.2 2382 | is-binary-path: 2.1.0 2383 | is-glob: 4.0.3 2384 | normalize-path: 3.0.0 2385 | readdirp: 3.6.0 2386 | optionalDependencies: 2387 | fsevents: 2.3.3 2388 | 2389 | client-only@0.0.1: {} 2390 | 2391 | clsx@2.1.1: {} 2392 | 2393 | color-convert@2.0.1: 2394 | dependencies: 2395 | color-name: 1.1.4 2396 | 2397 | color-name@1.1.4: {} 2398 | 2399 | color-string@1.9.1: 2400 | dependencies: 2401 | color-name: 1.1.4 2402 | simple-swizzle: 0.2.2 2403 | 2404 | color@4.2.3: 2405 | dependencies: 2406 | color-convert: 2.0.1 2407 | color-string: 1.9.1 2408 | 2409 | combined-stream@1.0.8: 2410 | dependencies: 2411 | delayed-stream: 1.0.0 2412 | 2413 | commander@4.1.1: {} 2414 | 2415 | concat-map@0.0.1: {} 2416 | 2417 | cross-spawn@7.0.3: 2418 | dependencies: 2419 | path-key: 3.1.1 2420 | shebang-command: 2.0.0 2421 | which: 2.0.2 2422 | 2423 | cssesc@3.0.0: {} 2424 | 2425 | csstype@3.1.3: {} 2426 | 2427 | damerau-levenshtein@1.0.8: {} 2428 | 2429 | data-view-buffer@1.0.1: 2430 | dependencies: 2431 | call-bind: 1.0.7 2432 | es-errors: 1.3.0 2433 | is-data-view: 1.0.1 2434 | 2435 | data-view-byte-length@1.0.1: 2436 | dependencies: 2437 | call-bind: 1.0.7 2438 | es-errors: 1.3.0 2439 | is-data-view: 1.0.1 2440 | 2441 | data-view-byte-offset@1.0.0: 2442 | dependencies: 2443 | call-bind: 1.0.7 2444 | es-errors: 1.3.0 2445 | is-data-view: 1.0.1 2446 | 2447 | debug@3.2.7: 2448 | dependencies: 2449 | ms: 2.1.3 2450 | 2451 | debug@4.3.5: 2452 | dependencies: 2453 | ms: 2.1.2 2454 | 2455 | deep-is@0.1.4: {} 2456 | 2457 | define-data-property@1.1.4: 2458 | dependencies: 2459 | es-define-property: 1.0.0 2460 | es-errors: 1.3.0 2461 | gopd: 1.0.1 2462 | 2463 | define-properties@1.2.1: 2464 | dependencies: 2465 | define-data-property: 1.1.4 2466 | has-property-descriptors: 1.0.2 2467 | object-keys: 1.1.1 2468 | 2469 | delayed-stream@1.0.0: {} 2470 | 2471 | dequal@2.0.3: {} 2472 | 2473 | detect-libc@2.0.3: {} 2474 | 2475 | didyoumean@1.2.2: {} 2476 | 2477 | dir-glob@3.0.1: 2478 | dependencies: 2479 | path-type: 4.0.0 2480 | 2481 | dlv@1.1.3: {} 2482 | 2483 | doctrine@2.1.0: 2484 | dependencies: 2485 | esutils: 2.0.3 2486 | 2487 | doctrine@3.0.0: 2488 | dependencies: 2489 | esutils: 2.0.3 2490 | 2491 | eastasianwidth@0.2.0: {} 2492 | 2493 | emoji-regex@8.0.0: {} 2494 | 2495 | emoji-regex@9.2.2: {} 2496 | 2497 | emojis-list@3.0.0: {} 2498 | 2499 | enhanced-resolve@5.17.0: 2500 | dependencies: 2501 | graceful-fs: 4.2.11 2502 | tapable: 2.2.1 2503 | 2504 | es-abstract@1.23.3: 2505 | dependencies: 2506 | array-buffer-byte-length: 1.0.1 2507 | arraybuffer.prototype.slice: 1.0.3 2508 | available-typed-arrays: 1.0.7 2509 | call-bind: 1.0.7 2510 | data-view-buffer: 1.0.1 2511 | data-view-byte-length: 1.0.1 2512 | data-view-byte-offset: 1.0.0 2513 | es-define-property: 1.0.0 2514 | es-errors: 1.3.0 2515 | es-object-atoms: 1.0.0 2516 | es-set-tostringtag: 2.0.3 2517 | es-to-primitive: 1.2.1 2518 | function.prototype.name: 1.1.6 2519 | get-intrinsic: 1.2.4 2520 | get-symbol-description: 1.0.2 2521 | globalthis: 1.0.4 2522 | gopd: 1.0.1 2523 | has-property-descriptors: 1.0.2 2524 | has-proto: 1.0.3 2525 | has-symbols: 1.0.3 2526 | hasown: 2.0.2 2527 | internal-slot: 1.0.7 2528 | is-array-buffer: 3.0.4 2529 | is-callable: 1.2.7 2530 | is-data-view: 1.0.1 2531 | is-negative-zero: 2.0.3 2532 | is-regex: 1.1.4 2533 | is-shared-array-buffer: 1.0.3 2534 | is-string: 1.0.7 2535 | is-typed-array: 1.1.13 2536 | is-weakref: 1.0.2 2537 | object-inspect: 1.13.1 2538 | object-keys: 1.1.1 2539 | object.assign: 4.1.5 2540 | regexp.prototype.flags: 1.5.2 2541 | safe-array-concat: 1.1.2 2542 | safe-regex-test: 1.0.3 2543 | string.prototype.trim: 1.2.9 2544 | string.prototype.trimend: 1.0.8 2545 | string.prototype.trimstart: 1.0.8 2546 | typed-array-buffer: 1.0.2 2547 | typed-array-byte-length: 1.0.1 2548 | typed-array-byte-offset: 1.0.2 2549 | typed-array-length: 1.0.6 2550 | unbox-primitive: 1.0.2 2551 | which-typed-array: 1.1.15 2552 | 2553 | es-define-property@1.0.0: 2554 | dependencies: 2555 | get-intrinsic: 1.2.4 2556 | 2557 | es-errors@1.3.0: {} 2558 | 2559 | es-iterator-helpers@1.0.19: 2560 | dependencies: 2561 | call-bind: 1.0.7 2562 | define-properties: 1.2.1 2563 | es-abstract: 1.23.3 2564 | es-errors: 1.3.0 2565 | es-set-tostringtag: 2.0.3 2566 | function-bind: 1.1.2 2567 | get-intrinsic: 1.2.4 2568 | globalthis: 1.0.4 2569 | has-property-descriptors: 1.0.2 2570 | has-proto: 1.0.3 2571 | has-symbols: 1.0.3 2572 | internal-slot: 1.0.7 2573 | iterator.prototype: 1.1.2 2574 | safe-array-concat: 1.1.2 2575 | 2576 | es-object-atoms@1.0.0: 2577 | dependencies: 2578 | es-errors: 1.3.0 2579 | 2580 | es-set-tostringtag@2.0.3: 2581 | dependencies: 2582 | get-intrinsic: 1.2.4 2583 | has-tostringtag: 1.0.2 2584 | hasown: 2.0.2 2585 | 2586 | es-shim-unscopables@1.0.2: 2587 | dependencies: 2588 | hasown: 2.0.2 2589 | 2590 | es-to-primitive@1.2.1: 2591 | dependencies: 2592 | is-callable: 1.2.7 2593 | is-date-object: 1.0.5 2594 | is-symbol: 1.0.4 2595 | 2596 | escape-string-regexp@4.0.0: {} 2597 | 2598 | eslint-config-next@14.2.4(eslint@8.57.0)(typescript@5.4.5): 2599 | dependencies: 2600 | '@next/eslint-plugin-next': 14.2.4 2601 | '@rushstack/eslint-patch': 1.10.3 2602 | '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.4.5) 2603 | eslint: 8.57.0 2604 | eslint-import-resolver-node: 0.3.9 2605 | eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0) 2606 | eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) 2607 | eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.0) 2608 | eslint-plugin-react: 7.34.2(eslint@8.57.0) 2609 | eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) 2610 | optionalDependencies: 2611 | typescript: 5.4.5 2612 | transitivePeerDependencies: 2613 | - eslint-import-resolver-webpack 2614 | - supports-color 2615 | 2616 | eslint-import-resolver-node@0.3.9: 2617 | dependencies: 2618 | debug: 3.2.7 2619 | is-core-module: 2.13.1 2620 | resolve: 1.22.8 2621 | transitivePeerDependencies: 2622 | - supports-color 2623 | 2624 | eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0): 2625 | dependencies: 2626 | debug: 4.3.5 2627 | enhanced-resolve: 5.17.0 2628 | eslint: 8.57.0 2629 | eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) 2630 | eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) 2631 | fast-glob: 3.3.2 2632 | get-tsconfig: 4.7.5 2633 | is-core-module: 2.13.1 2634 | is-glob: 4.0.3 2635 | transitivePeerDependencies: 2636 | - '@typescript-eslint/parser' 2637 | - eslint-import-resolver-node 2638 | - eslint-import-resolver-webpack 2639 | - supports-color 2640 | 2641 | eslint-module-utils@2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0): 2642 | dependencies: 2643 | debug: 3.2.7 2644 | optionalDependencies: 2645 | '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.4.5) 2646 | eslint: 8.57.0 2647 | eslint-import-resolver-node: 0.3.9 2648 | eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0) 2649 | transitivePeerDependencies: 2650 | - supports-color 2651 | 2652 | eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0): 2653 | dependencies: 2654 | array-includes: 3.1.8 2655 | array.prototype.findlastindex: 1.2.5 2656 | array.prototype.flat: 1.3.2 2657 | array.prototype.flatmap: 1.3.2 2658 | debug: 3.2.7 2659 | doctrine: 2.1.0 2660 | eslint: 8.57.0 2661 | eslint-import-resolver-node: 0.3.9 2662 | eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.4.5))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.29.1(eslint@8.57.0))(eslint@8.57.0))(eslint@8.57.0) 2663 | hasown: 2.0.2 2664 | is-core-module: 2.13.1 2665 | is-glob: 4.0.3 2666 | minimatch: 3.1.2 2667 | object.fromentries: 2.0.8 2668 | object.groupby: 1.0.3 2669 | object.values: 1.2.0 2670 | semver: 6.3.1 2671 | tsconfig-paths: 3.15.0 2672 | optionalDependencies: 2673 | '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.4.5) 2674 | transitivePeerDependencies: 2675 | - eslint-import-resolver-typescript 2676 | - eslint-import-resolver-webpack 2677 | - supports-color 2678 | 2679 | eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0): 2680 | dependencies: 2681 | '@babel/runtime': 7.24.7 2682 | aria-query: 5.3.0 2683 | array-includes: 3.1.8 2684 | array.prototype.flatmap: 1.3.2 2685 | ast-types-flow: 0.0.8 2686 | axe-core: 4.7.0 2687 | axobject-query: 3.2.1 2688 | damerau-levenshtein: 1.0.8 2689 | emoji-regex: 9.2.2 2690 | es-iterator-helpers: 1.0.19 2691 | eslint: 8.57.0 2692 | hasown: 2.0.2 2693 | jsx-ast-utils: 3.3.5 2694 | language-tags: 1.0.9 2695 | minimatch: 3.1.2 2696 | object.entries: 1.1.8 2697 | object.fromentries: 2.0.8 2698 | 2699 | eslint-plugin-react-hooks@4.6.2(eslint@8.57.0): 2700 | dependencies: 2701 | eslint: 8.57.0 2702 | 2703 | eslint-plugin-react@7.34.2(eslint@8.57.0): 2704 | dependencies: 2705 | array-includes: 3.1.8 2706 | array.prototype.findlast: 1.2.5 2707 | array.prototype.flatmap: 1.3.2 2708 | array.prototype.toreversed: 1.1.2 2709 | array.prototype.tosorted: 1.1.4 2710 | doctrine: 2.1.0 2711 | es-iterator-helpers: 1.0.19 2712 | eslint: 8.57.0 2713 | estraverse: 5.3.0 2714 | jsx-ast-utils: 3.3.5 2715 | minimatch: 3.1.2 2716 | object.entries: 1.1.8 2717 | object.fromentries: 2.0.8 2718 | object.hasown: 1.1.4 2719 | object.values: 1.2.0 2720 | prop-types: 15.8.1 2721 | resolve: 2.0.0-next.5 2722 | semver: 6.3.1 2723 | string.prototype.matchall: 4.0.11 2724 | 2725 | eslint-scope@7.2.2: 2726 | dependencies: 2727 | esrecurse: 4.3.0 2728 | estraverse: 5.3.0 2729 | 2730 | eslint-visitor-keys@3.4.3: {} 2731 | 2732 | eslint@8.57.0: 2733 | dependencies: 2734 | '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) 2735 | '@eslint-community/regexpp': 4.10.1 2736 | '@eslint/eslintrc': 2.1.4 2737 | '@eslint/js': 8.57.0 2738 | '@humanwhocodes/config-array': 0.11.14 2739 | '@humanwhocodes/module-importer': 1.0.1 2740 | '@nodelib/fs.walk': 1.2.8 2741 | '@ungap/structured-clone': 1.2.0 2742 | ajv: 6.12.6 2743 | chalk: 4.1.2 2744 | cross-spawn: 7.0.3 2745 | debug: 4.3.5 2746 | doctrine: 3.0.0 2747 | escape-string-regexp: 4.0.0 2748 | eslint-scope: 7.2.2 2749 | eslint-visitor-keys: 3.4.3 2750 | espree: 9.6.1 2751 | esquery: 1.5.0 2752 | esutils: 2.0.3 2753 | fast-deep-equal: 3.1.3 2754 | file-entry-cache: 6.0.1 2755 | find-up: 5.0.0 2756 | glob-parent: 6.0.2 2757 | globals: 13.24.0 2758 | graphemer: 1.4.0 2759 | ignore: 5.3.1 2760 | imurmurhash: 0.1.4 2761 | is-glob: 4.0.3 2762 | is-path-inside: 3.0.3 2763 | js-yaml: 4.1.0 2764 | json-stable-stringify-without-jsonify: 1.0.1 2765 | levn: 0.4.1 2766 | lodash.merge: 4.6.2 2767 | minimatch: 3.1.2 2768 | natural-compare: 1.4.0 2769 | optionator: 0.9.4 2770 | strip-ansi: 6.0.1 2771 | text-table: 0.2.0 2772 | transitivePeerDependencies: 2773 | - supports-color 2774 | 2775 | espree@9.6.1: 2776 | dependencies: 2777 | acorn: 8.12.0 2778 | acorn-jsx: 5.3.2(acorn@8.12.0) 2779 | eslint-visitor-keys: 3.4.3 2780 | 2781 | esquery@1.5.0: 2782 | dependencies: 2783 | estraverse: 5.3.0 2784 | 2785 | esrecurse@4.3.0: 2786 | dependencies: 2787 | estraverse: 5.3.0 2788 | 2789 | estraverse@5.3.0: {} 2790 | 2791 | esutils@2.0.3: {} 2792 | 2793 | fast-deep-equal@3.1.3: {} 2794 | 2795 | fast-glob@3.3.2: 2796 | dependencies: 2797 | '@nodelib/fs.stat': 2.0.5 2798 | '@nodelib/fs.walk': 1.2.8 2799 | glob-parent: 5.1.2 2800 | merge2: 1.4.1 2801 | micromatch: 4.0.7 2802 | 2803 | fast-json-stable-stringify@2.1.0: {} 2804 | 2805 | fast-levenshtein@2.0.6: {} 2806 | 2807 | fastq@1.17.1: 2808 | dependencies: 2809 | reusify: 1.0.4 2810 | 2811 | file-entry-cache@6.0.1: 2812 | dependencies: 2813 | flat-cache: 3.2.0 2814 | 2815 | fill-range@7.1.1: 2816 | dependencies: 2817 | to-regex-range: 5.0.1 2818 | 2819 | find-up@5.0.0: 2820 | dependencies: 2821 | locate-path: 6.0.0 2822 | path-exists: 4.0.0 2823 | 2824 | flat-cache@3.2.0: 2825 | dependencies: 2826 | flatted: 3.3.1 2827 | keyv: 4.5.4 2828 | rimraf: 3.0.2 2829 | 2830 | flatted@3.3.1: {} 2831 | 2832 | for-each@0.3.3: 2833 | dependencies: 2834 | is-callable: 1.2.7 2835 | 2836 | foreground-child@3.2.0: 2837 | dependencies: 2838 | cross-spawn: 7.0.3 2839 | signal-exit: 4.1.0 2840 | 2841 | form-data@4.0.0: 2842 | dependencies: 2843 | asynckit: 0.4.0 2844 | combined-stream: 1.0.8 2845 | mime-types: 2.1.35 2846 | 2847 | fs.realpath@1.0.0: {} 2848 | 2849 | fsevents@2.3.3: 2850 | optional: true 2851 | 2852 | function-bind@1.1.2: {} 2853 | 2854 | function.prototype.name@1.1.6: 2855 | dependencies: 2856 | call-bind: 1.0.7 2857 | define-properties: 1.2.1 2858 | es-abstract: 1.23.3 2859 | functions-have-names: 1.2.3 2860 | 2861 | functions-have-names@1.2.3: {} 2862 | 2863 | get-intrinsic@1.2.4: 2864 | dependencies: 2865 | es-errors: 1.3.0 2866 | function-bind: 1.1.2 2867 | has-proto: 1.0.3 2868 | has-symbols: 1.0.3 2869 | hasown: 2.0.2 2870 | 2871 | get-symbol-description@1.0.2: 2872 | dependencies: 2873 | call-bind: 1.0.7 2874 | es-errors: 1.3.0 2875 | get-intrinsic: 1.2.4 2876 | 2877 | get-tsconfig@4.7.5: 2878 | dependencies: 2879 | resolve-pkg-maps: 1.0.0 2880 | 2881 | glob-parent@5.1.2: 2882 | dependencies: 2883 | is-glob: 4.0.3 2884 | 2885 | glob-parent@6.0.2: 2886 | dependencies: 2887 | is-glob: 4.0.3 2888 | 2889 | glob@10.3.10: 2890 | dependencies: 2891 | foreground-child: 3.2.0 2892 | jackspeak: 2.3.6 2893 | minimatch: 9.0.4 2894 | minipass: 7.1.2 2895 | path-scurry: 1.11.1 2896 | 2897 | glob@10.4.1: 2898 | dependencies: 2899 | foreground-child: 3.2.0 2900 | jackspeak: 3.4.0 2901 | minimatch: 9.0.4 2902 | minipass: 7.1.2 2903 | path-scurry: 1.11.1 2904 | 2905 | glob@7.2.3: 2906 | dependencies: 2907 | fs.realpath: 1.0.0 2908 | inflight: 1.0.6 2909 | inherits: 2.0.4 2910 | minimatch: 3.1.2 2911 | once: 1.4.0 2912 | path-is-absolute: 1.0.1 2913 | 2914 | globals@13.24.0: 2915 | dependencies: 2916 | type-fest: 0.20.2 2917 | 2918 | globalthis@1.0.4: 2919 | dependencies: 2920 | define-properties: 1.2.1 2921 | gopd: 1.0.1 2922 | 2923 | globby@11.1.0: 2924 | dependencies: 2925 | array-union: 2.1.0 2926 | dir-glob: 3.0.1 2927 | fast-glob: 3.3.2 2928 | ignore: 5.3.1 2929 | merge2: 1.4.1 2930 | slash: 3.0.0 2931 | 2932 | gopd@1.0.1: 2933 | dependencies: 2934 | get-intrinsic: 1.2.4 2935 | 2936 | graceful-fs@4.2.11: {} 2937 | 2938 | graphemer@1.4.0: {} 2939 | 2940 | has-bigints@1.0.2: {} 2941 | 2942 | has-flag@4.0.0: {} 2943 | 2944 | has-property-descriptors@1.0.2: 2945 | dependencies: 2946 | es-define-property: 1.0.0 2947 | 2948 | has-proto@1.0.3: {} 2949 | 2950 | has-symbols@1.0.3: {} 2951 | 2952 | has-tostringtag@1.0.2: 2953 | dependencies: 2954 | has-symbols: 1.0.3 2955 | 2956 | hasown@2.0.2: 2957 | dependencies: 2958 | function-bind: 1.1.2 2959 | 2960 | ignore@5.3.1: {} 2961 | 2962 | import-fresh@3.3.0: 2963 | dependencies: 2964 | parent-module: 1.0.1 2965 | resolve-from: 4.0.0 2966 | 2967 | imurmurhash@0.1.4: {} 2968 | 2969 | inflight@1.0.6: 2970 | dependencies: 2971 | once: 1.4.0 2972 | wrappy: 1.0.2 2973 | 2974 | inherits@2.0.4: {} 2975 | 2976 | internal-slot@1.0.7: 2977 | dependencies: 2978 | es-errors: 1.3.0 2979 | hasown: 2.0.2 2980 | side-channel: 1.0.6 2981 | 2982 | is-array-buffer@3.0.4: 2983 | dependencies: 2984 | call-bind: 1.0.7 2985 | get-intrinsic: 1.2.4 2986 | 2987 | is-arrayish@0.3.2: {} 2988 | 2989 | is-async-function@2.0.0: 2990 | dependencies: 2991 | has-tostringtag: 1.0.2 2992 | 2993 | is-bigint@1.0.4: 2994 | dependencies: 2995 | has-bigints: 1.0.2 2996 | 2997 | is-binary-path@2.1.0: 2998 | dependencies: 2999 | binary-extensions: 2.3.0 3000 | 3001 | is-boolean-object@1.1.2: 3002 | dependencies: 3003 | call-bind: 1.0.7 3004 | has-tostringtag: 1.0.2 3005 | 3006 | is-callable@1.2.7: {} 3007 | 3008 | is-core-module@2.13.1: 3009 | dependencies: 3010 | hasown: 2.0.2 3011 | 3012 | is-data-view@1.0.1: 3013 | dependencies: 3014 | is-typed-array: 1.1.13 3015 | 3016 | is-date-object@1.0.5: 3017 | dependencies: 3018 | has-tostringtag: 1.0.2 3019 | 3020 | is-extglob@2.1.1: {} 3021 | 3022 | is-finalizationregistry@1.0.2: 3023 | dependencies: 3024 | call-bind: 1.0.7 3025 | 3026 | is-fullwidth-code-point@3.0.0: {} 3027 | 3028 | is-generator-function@1.0.10: 3029 | dependencies: 3030 | has-tostringtag: 1.0.2 3031 | 3032 | is-glob@4.0.3: 3033 | dependencies: 3034 | is-extglob: 2.1.1 3035 | 3036 | is-map@2.0.3: {} 3037 | 3038 | is-negative-zero@2.0.3: {} 3039 | 3040 | is-number-object@1.0.7: 3041 | dependencies: 3042 | has-tostringtag: 1.0.2 3043 | 3044 | is-number@7.0.0: {} 3045 | 3046 | is-path-inside@3.0.3: {} 3047 | 3048 | is-regex@1.1.4: 3049 | dependencies: 3050 | call-bind: 1.0.7 3051 | has-tostringtag: 1.0.2 3052 | 3053 | is-set@2.0.3: {} 3054 | 3055 | is-shared-array-buffer@1.0.3: 3056 | dependencies: 3057 | call-bind: 1.0.7 3058 | 3059 | is-string@1.0.7: 3060 | dependencies: 3061 | has-tostringtag: 1.0.2 3062 | 3063 | is-symbol@1.0.4: 3064 | dependencies: 3065 | has-symbols: 1.0.3 3066 | 3067 | is-typed-array@1.1.13: 3068 | dependencies: 3069 | which-typed-array: 1.1.15 3070 | 3071 | is-weakmap@2.0.2: {} 3072 | 3073 | is-weakref@1.0.2: 3074 | dependencies: 3075 | call-bind: 1.0.7 3076 | 3077 | is-weakset@2.0.3: 3078 | dependencies: 3079 | call-bind: 1.0.7 3080 | get-intrinsic: 1.2.4 3081 | 3082 | isarray@2.0.5: {} 3083 | 3084 | isexe@2.0.0: {} 3085 | 3086 | iterator.prototype@1.1.2: 3087 | dependencies: 3088 | define-properties: 1.2.1 3089 | get-intrinsic: 1.2.4 3090 | has-symbols: 1.0.3 3091 | reflect.getprototypeof: 1.0.6 3092 | set-function-name: 2.0.2 3093 | 3094 | jackspeak@2.3.6: 3095 | dependencies: 3096 | '@isaacs/cliui': 8.0.2 3097 | optionalDependencies: 3098 | '@pkgjs/parseargs': 0.11.0 3099 | 3100 | jackspeak@3.4.0: 3101 | dependencies: 3102 | '@isaacs/cliui': 8.0.2 3103 | optionalDependencies: 3104 | '@pkgjs/parseargs': 0.11.0 3105 | 3106 | jiti@1.21.6: {} 3107 | 3108 | js-tokens@4.0.0: {} 3109 | 3110 | js-yaml@4.1.0: 3111 | dependencies: 3112 | argparse: 2.0.1 3113 | 3114 | json-buffer@3.0.1: {} 3115 | 3116 | json-schema-traverse@0.4.1: {} 3117 | 3118 | json-stable-stringify-without-jsonify@1.0.1: {} 3119 | 3120 | json5@1.0.2: 3121 | dependencies: 3122 | minimist: 1.2.8 3123 | 3124 | jsx-ast-utils@3.3.5: 3125 | dependencies: 3126 | array-includes: 3.1.8 3127 | array.prototype.flat: 1.3.2 3128 | object.assign: 4.1.5 3129 | object.values: 1.2.0 3130 | 3131 | keyv@4.5.4: 3132 | dependencies: 3133 | json-buffer: 3.0.1 3134 | 3135 | language-subtag-registry@0.3.23: {} 3136 | 3137 | language-tags@1.0.9: 3138 | dependencies: 3139 | language-subtag-registry: 0.3.23 3140 | 3141 | levn@0.4.1: 3142 | dependencies: 3143 | prelude-ls: 1.2.1 3144 | type-check: 0.4.0 3145 | 3146 | lilconfig@2.1.0: {} 3147 | 3148 | lilconfig@3.1.2: {} 3149 | 3150 | lines-and-columns@1.2.4: {} 3151 | 3152 | loader-utils@1.4.2: 3153 | dependencies: 3154 | big.js: 5.2.2 3155 | emojis-list: 3.0.0 3156 | json5: 1.0.2 3157 | 3158 | locate-path@6.0.0: 3159 | dependencies: 3160 | p-locate: 5.0.0 3161 | 3162 | lodash.merge@4.6.2: {} 3163 | 3164 | loose-envify@1.4.0: 3165 | dependencies: 3166 | js-tokens: 4.0.0 3167 | 3168 | lru-cache@10.2.2: {} 3169 | 3170 | merge2@1.4.1: {} 3171 | 3172 | micromatch@4.0.7: 3173 | dependencies: 3174 | braces: 3.0.3 3175 | picomatch: 2.3.1 3176 | 3177 | mime-db@1.52.0: {} 3178 | 3179 | mime-types@2.1.35: 3180 | dependencies: 3181 | mime-db: 1.52.0 3182 | 3183 | minimatch@3.1.2: 3184 | dependencies: 3185 | brace-expansion: 1.1.11 3186 | 3187 | minimatch@9.0.3: 3188 | dependencies: 3189 | brace-expansion: 2.0.1 3190 | 3191 | minimatch@9.0.4: 3192 | dependencies: 3193 | brace-expansion: 2.0.1 3194 | 3195 | minimist@1.2.8: {} 3196 | 3197 | minipass@7.1.2: {} 3198 | 3199 | ms@2.1.2: {} 3200 | 3201 | ms@2.1.3: {} 3202 | 3203 | mz@2.7.0: 3204 | dependencies: 3205 | any-promise: 1.3.0 3206 | object-assign: 4.1.1 3207 | thenify-all: 1.6.0 3208 | 3209 | nanoid@3.3.7: {} 3210 | 3211 | natural-compare@1.4.0: {} 3212 | 3213 | next@14.2.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): 3214 | dependencies: 3215 | '@next/env': 14.2.4 3216 | '@swc/helpers': 0.5.5 3217 | busboy: 1.6.0 3218 | caniuse-lite: 1.0.30001634 3219 | graceful-fs: 4.2.11 3220 | postcss: 8.4.31 3221 | react: 18.3.1 3222 | react-dom: 18.3.1(react@18.3.1) 3223 | styled-jsx: 5.1.1(react@18.3.1) 3224 | optionalDependencies: 3225 | '@next/swc-darwin-arm64': 14.2.4 3226 | '@next/swc-darwin-x64': 14.2.4 3227 | '@next/swc-linux-arm64-gnu': 14.2.4 3228 | '@next/swc-linux-arm64-musl': 14.2.4 3229 | '@next/swc-linux-x64-gnu': 14.2.4 3230 | '@next/swc-linux-x64-musl': 14.2.4 3231 | '@next/swc-win32-arm64-msvc': 14.2.4 3232 | '@next/swc-win32-ia32-msvc': 14.2.4 3233 | '@next/swc-win32-x64-msvc': 14.2.4 3234 | transitivePeerDependencies: 3235 | - '@babel/core' 3236 | - babel-plugin-macros 3237 | 3238 | node-fetch@2.7.0: 3239 | dependencies: 3240 | whatwg-url: 5.0.0 3241 | 3242 | normalize-path@3.0.0: {} 3243 | 3244 | object-assign@4.1.1: {} 3245 | 3246 | object-hash@3.0.0: {} 3247 | 3248 | object-inspect@1.13.1: {} 3249 | 3250 | object-keys@1.1.1: {} 3251 | 3252 | object.assign@4.1.5: 3253 | dependencies: 3254 | call-bind: 1.0.7 3255 | define-properties: 1.2.1 3256 | has-symbols: 1.0.3 3257 | object-keys: 1.1.1 3258 | 3259 | object.entries@1.1.8: 3260 | dependencies: 3261 | call-bind: 1.0.7 3262 | define-properties: 1.2.1 3263 | es-object-atoms: 1.0.0 3264 | 3265 | object.fromentries@2.0.8: 3266 | dependencies: 3267 | call-bind: 1.0.7 3268 | define-properties: 1.2.1 3269 | es-abstract: 1.23.3 3270 | es-object-atoms: 1.0.0 3271 | 3272 | object.groupby@1.0.3: 3273 | dependencies: 3274 | call-bind: 1.0.7 3275 | define-properties: 1.2.1 3276 | es-abstract: 1.23.3 3277 | 3278 | object.hasown@1.1.4: 3279 | dependencies: 3280 | define-properties: 1.2.1 3281 | es-abstract: 1.23.3 3282 | es-object-atoms: 1.0.0 3283 | 3284 | object.values@1.2.0: 3285 | dependencies: 3286 | call-bind: 1.0.7 3287 | define-properties: 1.2.1 3288 | es-object-atoms: 1.0.0 3289 | 3290 | once@1.4.0: 3291 | dependencies: 3292 | wrappy: 1.0.2 3293 | 3294 | optionator@0.9.4: 3295 | dependencies: 3296 | deep-is: 0.1.4 3297 | fast-levenshtein: 2.0.6 3298 | levn: 0.4.1 3299 | prelude-ls: 1.2.1 3300 | type-check: 0.4.0 3301 | word-wrap: 1.2.5 3302 | 3303 | p-limit@3.1.0: 3304 | dependencies: 3305 | yocto-queue: 0.1.0 3306 | 3307 | p-locate@5.0.0: 3308 | dependencies: 3309 | p-limit: 3.1.0 3310 | 3311 | parent-module@1.0.1: 3312 | dependencies: 3313 | callsites: 3.1.0 3314 | 3315 | path-exists@4.0.0: {} 3316 | 3317 | path-is-absolute@1.0.1: {} 3318 | 3319 | path-key@3.1.1: {} 3320 | 3321 | path-parse@1.0.7: {} 3322 | 3323 | path-scurry@1.11.1: 3324 | dependencies: 3325 | lru-cache: 10.2.2 3326 | minipass: 7.1.2 3327 | 3328 | path-type@4.0.0: {} 3329 | 3330 | picocolors@1.0.1: {} 3331 | 3332 | picomatch@2.3.1: {} 3333 | 3334 | pify@2.3.0: {} 3335 | 3336 | pirates@4.0.6: {} 3337 | 3338 | plaiceholder@3.0.0(sharp@0.33.4): 3339 | dependencies: 3340 | sharp: 0.33.4 3341 | 3342 | possible-typed-array-names@1.0.0: {} 3343 | 3344 | postcss-import@15.1.0(postcss@8.4.38): 3345 | dependencies: 3346 | postcss: 8.4.38 3347 | postcss-value-parser: 4.2.0 3348 | read-cache: 1.0.0 3349 | resolve: 1.22.8 3350 | 3351 | postcss-js@4.0.1(postcss@8.4.38): 3352 | dependencies: 3353 | camelcase-css: 2.0.1 3354 | postcss: 8.4.38 3355 | 3356 | postcss-load-config@4.0.2(postcss@8.4.38): 3357 | dependencies: 3358 | lilconfig: 3.1.2 3359 | yaml: 2.4.5 3360 | optionalDependencies: 3361 | postcss: 8.4.38 3362 | 3363 | postcss-nested@6.0.1(postcss@8.4.38): 3364 | dependencies: 3365 | postcss: 8.4.38 3366 | postcss-selector-parser: 6.1.0 3367 | 3368 | postcss-selector-parser@6.1.0: 3369 | dependencies: 3370 | cssesc: 3.0.0 3371 | util-deprecate: 1.0.2 3372 | 3373 | postcss-value-parser@4.2.0: {} 3374 | 3375 | postcss@8.4.31: 3376 | dependencies: 3377 | nanoid: 3.3.7 3378 | picocolors: 1.0.1 3379 | source-map-js: 1.2.0 3380 | 3381 | postcss@8.4.38: 3382 | dependencies: 3383 | nanoid: 3.3.7 3384 | picocolors: 1.0.1 3385 | source-map-js: 1.2.0 3386 | 3387 | prelude-ls@1.2.1: {} 3388 | 3389 | prismjs@1.29.0: {} 3390 | 3391 | prop-types@15.8.1: 3392 | dependencies: 3393 | loose-envify: 1.4.0 3394 | object-assign: 4.1.1 3395 | react-is: 16.13.1 3396 | 3397 | punycode@2.3.1: {} 3398 | 3399 | queue-microtask@1.2.3: {} 3400 | 3401 | react-dom@18.3.1(react@18.3.1): 3402 | dependencies: 3403 | loose-envify: 1.4.0 3404 | react: 18.3.1 3405 | scheduler: 0.23.2 3406 | 3407 | react-is@16.13.1: {} 3408 | 3409 | react-notion@0.10.0(react@18.3.1): 3410 | dependencies: 3411 | prismjs: 1.29.0 3412 | react: 18.3.1 3413 | 3414 | react@18.3.1: 3415 | dependencies: 3416 | loose-envify: 1.4.0 3417 | 3418 | read-cache@1.0.0: 3419 | dependencies: 3420 | pify: 2.3.0 3421 | 3422 | readdirp@3.6.0: 3423 | dependencies: 3424 | picomatch: 2.3.1 3425 | 3426 | reflect.getprototypeof@1.0.6: 3427 | dependencies: 3428 | call-bind: 1.0.7 3429 | define-properties: 1.2.1 3430 | es-abstract: 1.23.3 3431 | es-errors: 1.3.0 3432 | get-intrinsic: 1.2.4 3433 | globalthis: 1.0.4 3434 | which-builtin-type: 1.1.3 3435 | 3436 | regenerator-runtime@0.14.1: {} 3437 | 3438 | regexp.prototype.flags@1.5.2: 3439 | dependencies: 3440 | call-bind: 1.0.7 3441 | define-properties: 1.2.1 3442 | es-errors: 1.3.0 3443 | set-function-name: 2.0.2 3444 | 3445 | resolve-from@4.0.0: {} 3446 | 3447 | resolve-pkg-maps@1.0.0: {} 3448 | 3449 | resolve@1.22.8: 3450 | dependencies: 3451 | is-core-module: 2.13.1 3452 | path-parse: 1.0.7 3453 | supports-preserve-symlinks-flag: 1.0.0 3454 | 3455 | resolve@2.0.0-next.5: 3456 | dependencies: 3457 | is-core-module: 2.13.1 3458 | path-parse: 1.0.7 3459 | supports-preserve-symlinks-flag: 1.0.0 3460 | 3461 | reusify@1.0.4: {} 3462 | 3463 | rimraf@3.0.2: 3464 | dependencies: 3465 | glob: 7.2.3 3466 | 3467 | run-parallel@1.2.0: 3468 | dependencies: 3469 | queue-microtask: 1.2.3 3470 | 3471 | safe-array-concat@1.1.2: 3472 | dependencies: 3473 | call-bind: 1.0.7 3474 | get-intrinsic: 1.2.4 3475 | has-symbols: 1.0.3 3476 | isarray: 2.0.5 3477 | 3478 | safe-regex-test@1.0.3: 3479 | dependencies: 3480 | call-bind: 1.0.7 3481 | es-errors: 1.3.0 3482 | is-regex: 1.1.4 3483 | 3484 | scheduler@0.23.2: 3485 | dependencies: 3486 | loose-envify: 1.4.0 3487 | 3488 | semver@6.3.1: {} 3489 | 3490 | semver@7.6.2: {} 3491 | 3492 | set-function-length@1.2.2: 3493 | dependencies: 3494 | define-data-property: 1.1.4 3495 | es-errors: 1.3.0 3496 | function-bind: 1.1.2 3497 | get-intrinsic: 1.2.4 3498 | gopd: 1.0.1 3499 | has-property-descriptors: 1.0.2 3500 | 3501 | set-function-name@2.0.2: 3502 | dependencies: 3503 | define-data-property: 1.1.4 3504 | es-errors: 1.3.0 3505 | functions-have-names: 1.2.3 3506 | has-property-descriptors: 1.0.2 3507 | 3508 | sharp@0.33.4: 3509 | dependencies: 3510 | color: 4.2.3 3511 | detect-libc: 2.0.3 3512 | semver: 7.6.2 3513 | optionalDependencies: 3514 | '@img/sharp-darwin-arm64': 0.33.4 3515 | '@img/sharp-darwin-x64': 0.33.4 3516 | '@img/sharp-libvips-darwin-arm64': 1.0.2 3517 | '@img/sharp-libvips-darwin-x64': 1.0.2 3518 | '@img/sharp-libvips-linux-arm': 1.0.2 3519 | '@img/sharp-libvips-linux-arm64': 1.0.2 3520 | '@img/sharp-libvips-linux-s390x': 1.0.2 3521 | '@img/sharp-libvips-linux-x64': 1.0.2 3522 | '@img/sharp-libvips-linuxmusl-arm64': 1.0.2 3523 | '@img/sharp-libvips-linuxmusl-x64': 1.0.2 3524 | '@img/sharp-linux-arm': 0.33.4 3525 | '@img/sharp-linux-arm64': 0.33.4 3526 | '@img/sharp-linux-s390x': 0.33.4 3527 | '@img/sharp-linux-x64': 0.33.4 3528 | '@img/sharp-linuxmusl-arm64': 0.33.4 3529 | '@img/sharp-linuxmusl-x64': 0.33.4 3530 | '@img/sharp-wasm32': 0.33.4 3531 | '@img/sharp-win32-ia32': 0.33.4 3532 | '@img/sharp-win32-x64': 0.33.4 3533 | 3534 | shebang-command@2.0.0: 3535 | dependencies: 3536 | shebang-regex: 3.0.0 3537 | 3538 | shebang-regex@3.0.0: {} 3539 | 3540 | side-channel@1.0.6: 3541 | dependencies: 3542 | call-bind: 1.0.7 3543 | es-errors: 1.3.0 3544 | get-intrinsic: 1.2.4 3545 | object-inspect: 1.13.1 3546 | 3547 | signal-exit@4.1.0: {} 3548 | 3549 | simple-html-tokenizer@0.1.1: {} 3550 | 3551 | simple-swizzle@0.2.2: 3552 | dependencies: 3553 | is-arrayish: 0.3.2 3554 | 3555 | slash@3.0.0: {} 3556 | 3557 | source-map-js@1.2.0: {} 3558 | 3559 | streamsearch@1.1.0: {} 3560 | 3561 | string-width@4.2.3: 3562 | dependencies: 3563 | emoji-regex: 8.0.0 3564 | is-fullwidth-code-point: 3.0.0 3565 | strip-ansi: 6.0.1 3566 | 3567 | string-width@5.1.2: 3568 | dependencies: 3569 | eastasianwidth: 0.2.0 3570 | emoji-regex: 9.2.2 3571 | strip-ansi: 7.1.0 3572 | 3573 | string.prototype.matchall@4.0.11: 3574 | dependencies: 3575 | call-bind: 1.0.7 3576 | define-properties: 1.2.1 3577 | es-abstract: 1.23.3 3578 | es-errors: 1.3.0 3579 | es-object-atoms: 1.0.0 3580 | get-intrinsic: 1.2.4 3581 | gopd: 1.0.1 3582 | has-symbols: 1.0.3 3583 | internal-slot: 1.0.7 3584 | regexp.prototype.flags: 1.5.2 3585 | set-function-name: 2.0.2 3586 | side-channel: 1.0.6 3587 | 3588 | string.prototype.trim@1.2.9: 3589 | dependencies: 3590 | call-bind: 1.0.7 3591 | define-properties: 1.2.1 3592 | es-abstract: 1.23.3 3593 | es-object-atoms: 1.0.0 3594 | 3595 | string.prototype.trimend@1.0.8: 3596 | dependencies: 3597 | call-bind: 1.0.7 3598 | define-properties: 1.2.1 3599 | es-object-atoms: 1.0.0 3600 | 3601 | string.prototype.trimstart@1.0.8: 3602 | dependencies: 3603 | call-bind: 1.0.7 3604 | define-properties: 1.2.1 3605 | es-object-atoms: 1.0.0 3606 | 3607 | strip-ansi@6.0.1: 3608 | dependencies: 3609 | ansi-regex: 5.0.1 3610 | 3611 | strip-ansi@7.1.0: 3612 | dependencies: 3613 | ansi-regex: 6.0.1 3614 | 3615 | strip-bom@3.0.0: {} 3616 | 3617 | strip-json-comments@3.1.1: {} 3618 | 3619 | styled-jsx@5.1.1(react@18.3.1): 3620 | dependencies: 3621 | client-only: 0.0.1 3622 | react: 18.3.1 3623 | 3624 | sucrase@3.35.0: 3625 | dependencies: 3626 | '@jridgewell/gen-mapping': 0.3.5 3627 | commander: 4.1.1 3628 | glob: 10.4.1 3629 | lines-and-columns: 1.2.4 3630 | mz: 2.7.0 3631 | pirates: 4.0.6 3632 | ts-interface-checker: 0.1.13 3633 | 3634 | supports-color@7.2.0: 3635 | dependencies: 3636 | has-flag: 4.0.0 3637 | 3638 | supports-preserve-symlinks-flag@1.0.0: {} 3639 | 3640 | svg-inline-loader@0.8.2: 3641 | dependencies: 3642 | loader-utils: 1.4.2 3643 | object-assign: 4.1.1 3644 | simple-html-tokenizer: 0.1.1 3645 | 3646 | tabbable@6.2.0: {} 3647 | 3648 | tailwindcss@3.4.4: 3649 | dependencies: 3650 | '@alloc/quick-lru': 5.2.0 3651 | arg: 5.0.2 3652 | chokidar: 3.6.0 3653 | didyoumean: 1.2.2 3654 | dlv: 1.1.3 3655 | fast-glob: 3.3.2 3656 | glob-parent: 6.0.2 3657 | is-glob: 4.0.3 3658 | jiti: 1.21.6 3659 | lilconfig: 2.1.0 3660 | micromatch: 4.0.7 3661 | normalize-path: 3.0.0 3662 | object-hash: 3.0.0 3663 | picocolors: 1.0.1 3664 | postcss: 8.4.38 3665 | postcss-import: 15.1.0(postcss@8.4.38) 3666 | postcss-js: 4.0.1(postcss@8.4.38) 3667 | postcss-load-config: 4.0.2(postcss@8.4.38) 3668 | postcss-nested: 6.0.1(postcss@8.4.38) 3669 | postcss-selector-parser: 6.1.0 3670 | resolve: 1.22.8 3671 | sucrase: 3.35.0 3672 | transitivePeerDependencies: 3673 | - ts-node 3674 | 3675 | tapable@2.2.1: {} 3676 | 3677 | text-table@0.2.0: {} 3678 | 3679 | thenify-all@1.6.0: 3680 | dependencies: 3681 | thenify: 3.3.1 3682 | 3683 | thenify@3.3.1: 3684 | dependencies: 3685 | any-promise: 1.3.0 3686 | 3687 | to-regex-range@5.0.1: 3688 | dependencies: 3689 | is-number: 7.0.0 3690 | 3691 | tr46@0.0.3: {} 3692 | 3693 | ts-api-utils@1.3.0(typescript@5.4.5): 3694 | dependencies: 3695 | typescript: 5.4.5 3696 | 3697 | ts-interface-checker@0.1.13: {} 3698 | 3699 | tsconfig-paths@3.15.0: 3700 | dependencies: 3701 | '@types/json5': 0.0.29 3702 | json5: 1.0.2 3703 | minimist: 1.2.8 3704 | strip-bom: 3.0.0 3705 | 3706 | tslib@2.6.3: {} 3707 | 3708 | type-check@0.4.0: 3709 | dependencies: 3710 | prelude-ls: 1.2.1 3711 | 3712 | type-fest@0.20.2: {} 3713 | 3714 | typed-array-buffer@1.0.2: 3715 | dependencies: 3716 | call-bind: 1.0.7 3717 | es-errors: 1.3.0 3718 | is-typed-array: 1.1.13 3719 | 3720 | typed-array-byte-length@1.0.1: 3721 | dependencies: 3722 | call-bind: 1.0.7 3723 | for-each: 0.3.3 3724 | gopd: 1.0.1 3725 | has-proto: 1.0.3 3726 | is-typed-array: 1.1.13 3727 | 3728 | typed-array-byte-offset@1.0.2: 3729 | dependencies: 3730 | available-typed-arrays: 1.0.7 3731 | call-bind: 1.0.7 3732 | for-each: 0.3.3 3733 | gopd: 1.0.1 3734 | has-proto: 1.0.3 3735 | is-typed-array: 1.1.13 3736 | 3737 | typed-array-length@1.0.6: 3738 | dependencies: 3739 | call-bind: 1.0.7 3740 | for-each: 0.3.3 3741 | gopd: 1.0.1 3742 | has-proto: 1.0.3 3743 | is-typed-array: 1.1.13 3744 | possible-typed-array-names: 1.0.0 3745 | 3746 | typescript@5.4.5: {} 3747 | 3748 | unbox-primitive@1.0.2: 3749 | dependencies: 3750 | call-bind: 1.0.7 3751 | has-bigints: 1.0.2 3752 | has-symbols: 1.0.3 3753 | which-boxed-primitive: 1.0.2 3754 | 3755 | undici-types@5.26.5: {} 3756 | 3757 | uri-js@4.4.1: 3758 | dependencies: 3759 | punycode: 2.3.1 3760 | 3761 | util-deprecate@1.0.2: {} 3762 | 3763 | webidl-conversions@3.0.1: {} 3764 | 3765 | whatwg-url@5.0.0: 3766 | dependencies: 3767 | tr46: 0.0.3 3768 | webidl-conversions: 3.0.1 3769 | 3770 | which-boxed-primitive@1.0.2: 3771 | dependencies: 3772 | is-bigint: 1.0.4 3773 | is-boolean-object: 1.1.2 3774 | is-number-object: 1.0.7 3775 | is-string: 1.0.7 3776 | is-symbol: 1.0.4 3777 | 3778 | which-builtin-type@1.1.3: 3779 | dependencies: 3780 | function.prototype.name: 1.1.6 3781 | has-tostringtag: 1.0.2 3782 | is-async-function: 2.0.0 3783 | is-date-object: 1.0.5 3784 | is-finalizationregistry: 1.0.2 3785 | is-generator-function: 1.0.10 3786 | is-regex: 1.1.4 3787 | is-weakref: 1.0.2 3788 | isarray: 2.0.5 3789 | which-boxed-primitive: 1.0.2 3790 | which-collection: 1.0.2 3791 | which-typed-array: 1.1.15 3792 | 3793 | which-collection@1.0.2: 3794 | dependencies: 3795 | is-map: 2.0.3 3796 | is-set: 2.0.3 3797 | is-weakmap: 2.0.2 3798 | is-weakset: 2.0.3 3799 | 3800 | which-typed-array@1.1.15: 3801 | dependencies: 3802 | available-typed-arrays: 1.0.7 3803 | call-bind: 1.0.7 3804 | for-each: 0.3.3 3805 | gopd: 1.0.1 3806 | has-tostringtag: 1.0.2 3807 | 3808 | which@2.0.2: 3809 | dependencies: 3810 | isexe: 2.0.0 3811 | 3812 | word-wrap@1.2.5: {} 3813 | 3814 | wrap-ansi@7.0.0: 3815 | dependencies: 3816 | ansi-styles: 4.3.0 3817 | string-width: 4.2.3 3818 | strip-ansi: 6.0.1 3819 | 3820 | wrap-ansi@8.1.0: 3821 | dependencies: 3822 | ansi-styles: 6.2.1 3823 | string-width: 5.1.2 3824 | strip-ansi: 7.1.0 3825 | 3826 | wrappy@1.0.2: {} 3827 | 3828 | yaml@2.4.5: {} 3829 | 3830 | yocto-queue@0.1.0: {} 3831 | -------------------------------------------------------------------------------- /postcss.config.mjs: -------------------------------------------------------------------------------- 1 | /** @type {import('postcss-load-config').Config} */ 2 | const config = { 3 | plugins: { 4 | tailwindcss: {}, 5 | }, 6 | }; 7 | 8 | export default config; 9 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaaleoo/notion-nextjs-mini-kit/973b5132a7d976471f5d749bf23a3915fe2490ae/public/favicon.ico -------------------------------------------------------------------------------- /public/next.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/vercel.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/app/api/blog/[slug]/route.ts: -------------------------------------------------------------------------------- 1 | import { getPageBySlug } from "@lib/notion"; 2 | 3 | type TGetRequest = { 4 | params: { slug: string }; 5 | }; 6 | 7 | export async function GET(request: Request, { params }: TGetRequest) { 8 | try { 9 | const result = await getPageBySlug(params.slug); 10 | return Response.json({ result }); 11 | } catch (error) { 12 | return Response.json({ error }); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/app/api/blog/route.ts: -------------------------------------------------------------------------------- 1 | import { getBlogPosts } from "@lib/notion"; 2 | 3 | export async function GET(request: Request, {}) { 4 | try { 5 | const result = await getBlogPosts({ 6 | filter: { 7 | and: [ 8 | { 9 | property: "Status", 10 | status: { 11 | equals: "Published", 12 | }, 13 | }, 14 | ], 15 | }, 16 | }); 17 | return Response.json({ result }); 18 | } catch (error) { 19 | return Response.json({ error }); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/app/api/revalidate/route.ts: -------------------------------------------------------------------------------- 1 | import { revalidateSecret } from "@helpers/config"; 2 | import { revalidatePath } from "next/cache"; 3 | import { NextRequest } from "next/server"; 4 | 5 | export async function GET(request: NextRequest) { 6 | const path = request.nextUrl.searchParams.get("path"); 7 | const secret = request.nextUrl.searchParams.get("secret"); 8 | 9 | if (secret != revalidateSecret) { 10 | return Response.json({ 11 | revalidated: false, 12 | now: Date.now(), 13 | message: "Invalid secret", 14 | }); 15 | } 16 | 17 | if (path) { 18 | revalidatePath(path); 19 | return Response.json({ revalidated: true, now: Date.now() }); 20 | } 21 | 22 | return Response.json({ 23 | revalidated: false, 24 | now: Date.now(), 25 | message: "Missing path to revalidate", 26 | }); 27 | } 28 | -------------------------------------------------------------------------------- /src/app/assets/images/default_blur.ts: -------------------------------------------------------------------------------- 1 | // eslint-disable-next-line import/no-anonymous-default-export 2 | export default "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxIPEhUQEBAQFRUVFRUVFRUQFRAQEBUQFxUWFhUSFRUYHSggGBolGxUVITEhJSkrLi4uFx8zODMtNygtLisBCgoKDg0OFhAQFSsZFR0tLSstLSsrKystKystLSsrKy0tNysrKystKysrLSsrKystLS0rNy0tKzcrKysrKysrKysrK//AABEIAMAAsAMBIgACEQEDEQH/xAAUAAEAAAAAAAAAAAAAAAAAAAAC/9oACAEBAAAAAH//xAAUAQEAAAAAAAAAAAAAAAAAAAAC/9oACAECEAAAAH//xAAUAQEAAAAAAAAAAAAAAAAAAAAC/9oACAEDEAAAAH//xAAUEAEAAAAAAAAAAAAAAAAAAAAA/9oACAEBAAE/AB//xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oACAECAQE/AB//xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oACAEDAQE/AB//2Q=="; 3 | -------------------------------------------------------------------------------- /src/app/assets/images/default_placeholder.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaaleoo/notion-nextjs-mini-kit/973b5132a7d976471f5d749bf23a3915fe2490ae/src/app/assets/images/default_placeholder.webp -------------------------------------------------------------------------------- /src/app/blog/[slug]/page.tsx: -------------------------------------------------------------------------------- 1 | import { FC } from "react"; 2 | import PostDetail from "@components/organisms/PostDetail"; 3 | import { TNotionBlogPage } from "@models/notion_blog"; 4 | import { rootDomain } from "@helpers/config"; 5 | 6 | type TProps = { 7 | params: { 8 | slug: string; 9 | }; 10 | }; 11 | 12 | const Page: FC = async (props: TProps) => { 13 | const { 14 | params: { slug }, 15 | } = props; 16 | let res: { 17 | result: { 18 | generalInfo: TNotionBlogPage | null; 19 | detailInfo: any; 20 | }; 21 | } = { 22 | result: { 23 | generalInfo: null, 24 | detailInfo: null, 25 | }, 26 | }; 27 | try { 28 | // Send a POST request to the API route with the todo item 29 | const response = await fetch(rootDomain + `/api/blog/${slug}`, { 30 | method: "GET", 31 | }); 32 | if (response.ok) { 33 | res = await response.json(); 34 | } else { 35 | console.error("Error:", response.statusText); 36 | } 37 | } catch (error) { 38 | console.error(error); 39 | } 40 | if (!res.result || !res.result.generalInfo || !res.result.detailInfo) { 41 | return
Not Found
; 42 | } 43 | return ( 44 |
45 | 46 |
47 | ); 48 | }; 49 | 50 | export default Page; 51 | -------------------------------------------------------------------------------- /src/app/blog/page.tsx: -------------------------------------------------------------------------------- 1 | import { FC } from "react"; 2 | import ListPost from "@components/organisms/ListPost"; 3 | import { TNotionBlogResult } from "@models/notion_blog"; 4 | import { rootDomain } from "@helpers/config"; 5 | 6 | interface Post { 7 | id: string; 8 | title: string; 9 | date: string; 10 | tags: string[]; 11 | content: string; 12 | } 13 | 14 | type TProps = {}; 15 | 16 | const Blogs: FC = async (props: TProps) => { 17 | let posts: TNotionBlogResult | null = null; 18 | 19 | try { 20 | const response = await fetch(rootDomain + "/api/blog", { 21 | method: "GET", 22 | headers: { 23 | "Content-Type": "application/json", 24 | }, 25 | }); 26 | 27 | if (response.ok) { 28 | const res = await response.json(); 29 | posts = res.result; 30 | } else { 31 | console.error("Failed to add todo item"); 32 | } 33 | } catch (error) { 34 | console.error("Error:", error); 35 | } 36 | 37 | if (!posts) { 38 | return
loading...
; 39 | } 40 | 41 | return ( 42 |
43 |
44 |

📝 Blogs:

45 |
46 | 47 |
48 |
49 | {/* {JSON.stringify(posts)} */} 50 |
51 | ); 52 | }; 53 | 54 | export default Blogs; 55 | -------------------------------------------------------------------------------- /src/app/components/atoms/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaaleoo/notion-nextjs-mini-kit/973b5132a7d976471f5d749bf23a3915fe2490ae/src/app/components/atoms/.gitkeep -------------------------------------------------------------------------------- /src/app/components/atoms/BaseImage/index.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | import Image, { ImageProps } from "next/image"; 3 | import { FC, useState } from "react"; 4 | import placeholderImage from "@assets/images/default_placeholder.webp"; 5 | import defaultBlur from "@assets/images/default_blur"; 6 | import { StaticImport } from "next/dist/shared/lib/get-img-props"; 7 | 8 | interface IBaseImageProps extends Omit { 9 | src: string; 10 | blurData?: string; 11 | } 12 | const BaseImage: FC = ({ 13 | src, 14 | width, 15 | height, 16 | blurData, 17 | alt, 18 | placeholder, 19 | ...rest 20 | }: IBaseImageProps) => { 21 | const [imgSrc, setImgSrc] = useState(src); 22 | 23 | return ( 24 | {alt} { 32 | setImgSrc(placeholderImage); 33 | }} 34 | {...rest} 35 | /> 36 | ); 37 | }; 38 | 39 | export default BaseImage; 40 | -------------------------------------------------------------------------------- /src/app/components/atoms/Icon/index.d.ts: -------------------------------------------------------------------------------- 1 | type TIconsType = {}; 2 | type TColorsType = string; 3 | 4 | interface IconProps extends React.SVGAttributes { 5 | name: TIconsType; 6 | width: number; 7 | height: number; 8 | color?: TColorsType; 9 | } 10 | 11 | export type { IconProps as TIconProps }; 12 | -------------------------------------------------------------------------------- /src/app/components/atoms/Icon/index.tsx: -------------------------------------------------------------------------------- 1 | import { replaceColor } from "@helpers/svg"; 2 | import { TIconProps } from "./index.d"; 3 | import { useEffect, useRef } from "react"; 4 | 5 | export const Icon: React.FC = ({ name, width, height, color = "", stroke = "", ...props }: TIconProps) => { 6 | const svgRef = useRef(null); 7 | 8 | useEffect(() => { 9 | const svgElement = async () => await import(`@assets/svg/${name}.svg`); 10 | svgElement().catch((e) => { 11 | console.error("On loading the SVG", e); 12 | }); 13 | 14 | svgElement().then((svg) => { 15 | let svgTemp = svg.default; 16 | if (color) { 17 | svgTemp = replaceColor(svg.default, color); 18 | } 19 | 20 | if (stroke) { 21 | svgTemp = replaceColor(svg.default, stroke, "stroke"); 22 | } 23 | if (svgRef.current) { 24 | svgRef!.current!.innerHTML = svgTemp; 25 | } 26 | }); 27 | }, [svgRef, name, color, stroke]); 28 | 29 | return ; 30 | }; 31 | -------------------------------------------------------------------------------- /src/app/components/molecules/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaaleoo/notion-nextjs-mini-kit/973b5132a7d976471f5d749bf23a3915fe2490ae/src/app/components/molecules/.gitkeep -------------------------------------------------------------------------------- /src/app/components/organisms/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaaleoo/notion-nextjs-mini-kit/973b5132a7d976471f5d749bf23a3915fe2490ae/src/app/components/organisms/.gitkeep -------------------------------------------------------------------------------- /src/app/components/organisms/CardPost/index.tsx: -------------------------------------------------------------------------------- 1 | import { FC } from "react"; 2 | import type { TNotionBlogPage } from "@models/notion_blog"; 3 | import BaseImage from "@components/atoms/BaseImage"; 4 | import { getBlurData } from "@helpers/image"; 5 | import { formatDateLocalized } from "@helpers/date"; 6 | import Link from "next/link"; 7 | 8 | type TProps = { 9 | data: TNotionBlogPage; 10 | }; 11 | 12 | const CardPost: FC = async (props: TProps) => { 13 | const { data } = props; 14 | const image = 15 | data.properties.PresentativeMedia.files[0]?.file?.url || 16 | data.properties.PresentativeMedia.files[0]?.external?.url || 17 | ""; 18 | const { base64 } = await getBlurData(image); 19 | const postUrl = `/blog/${data.properties.Slug.rich_text[0]?.plain_text}`; 20 | return ( 21 |
22 | 23 | 31 | 32 |
33 | 34 |
35 | {data.properties.Title.title[0]?.plain_text || "No title"} 36 |
37 | 38 |

39 | {data.properties.Description.rich_text[0]?.plain_text || "No description"} 40 |

41 | 47 |
48 |
49 | ); 50 | }; 51 | 52 | export default CardPost; 53 | -------------------------------------------------------------------------------- /src/app/components/organisms/Footer/index.tsx: -------------------------------------------------------------------------------- 1 | import info from "@helpers/info"; 2 | import Link from "next/link"; 3 | import { FC } from "react"; 4 | 5 | type TProps = {}; 6 | 7 | const Footer: FC = (props: TProps) => { 8 | return ( 9 |
10 |
11 |
12 | 13 | © 2024{" "} 14 | 15 | {info.name} 16 | 17 | 18 |
19 |
20 |
21 | ); 22 | }; 23 | 24 | export default Footer; 25 | -------------------------------------------------------------------------------- /src/app/components/organisms/Header/index.tsx: -------------------------------------------------------------------------------- 1 | import { useState, FC } from "react"; 2 | import clsx from "clsx"; 3 | import { Dialog, DialogPanel, PopoverGroup } from "@headlessui/react"; 4 | import { Bars3Icon, XMarkIcon } from "@heroicons/react/24/outline"; 5 | import Link from "next/link"; 6 | import info from "@helpers/info"; 7 | 8 | type TProps = { 9 | className?: string; 10 | }; 11 | 12 | const Header: FC = (props: TProps) => { 13 | const { className } = props; 14 | const [mobileMenuOpen, setMobileMenuOpen] = useState(false); 15 | return ( 16 |
17 | 40 | 41 |
42 | 43 |
44 | 45 |
{info.name}
46 | 47 | 55 |
56 |
57 |
58 |
59 | setMobileMenuOpen(false)} 62 | className="-mx-3 block rounded-lg px-3 py-2 text-base font-semibold leading-7 text-gray-900 hover:bg-gray-50" 63 | > 64 | Blogs 65 | 66 |
67 |
68 |
69 |
70 |
71 |
72 | ); 73 | }; 74 | 75 | export default Header; 76 | -------------------------------------------------------------------------------- /src/app/components/organisms/ListPost/index.tsx: -------------------------------------------------------------------------------- 1 | import { FC } from "react"; 2 | import type { TNotionBlogResult } from "@models/notion_blog"; 3 | 4 | import CardPost from "@components/organisms/CardPost"; 5 | 6 | type TProps = { 7 | data: TNotionBlogResult; 8 | }; 9 | 10 | const ListPost: FC = (props: TProps) => { 11 | const { data } = props; 12 | return ( 13 | <> 14 | {data.results.map((post: any) => ( 15 | 16 | ))} 17 | 18 | ); 19 | }; 20 | 21 | export default ListPost; 22 | -------------------------------------------------------------------------------- /src/app/components/organisms/PostDetail/index.tsx: -------------------------------------------------------------------------------- 1 | import { FC } from "react"; 2 | import { NotionRenderer } from "react-notion"; 3 | import "react-notion/src/styles.css"; 4 | import "prismjs/themes/prism-tomorrow.css"; // only needed for code highlighting 5 | import "prismjs/components/prism-javascript"; 6 | import { TNotionBlogPage } from "@models/notion_blog"; 7 | import clsx from "clsx"; 8 | 9 | type TProps = { 10 | generalInfo: TNotionBlogPage; 11 | detailInfo: any; 12 | className?: string; 13 | }; 14 | 15 | const PostDetail: FC = (props: TProps) => { 16 | const { 17 | generalInfo, // 18 | detailInfo, 19 | className, 20 | } = props; 21 | return ( 22 |
23 | {detailInfo && ( 24 |
25 | 26 |
27 | )} 28 |
29 | ); 30 | }; 31 | 32 | export default PostDetail; 33 | -------------------------------------------------------------------------------- /src/app/components/templates/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khaaleoo/notion-nextjs-mini-kit/973b5132a7d976471f5d749bf23a3915fe2490ae/src/app/components/templates/.gitkeep -------------------------------------------------------------------------------- /src/app/components/templates/Layouts/LayoutWrapper.tsx: -------------------------------------------------------------------------------- 1 | "use client"; 2 | 3 | import { usePathname } from "next/navigation"; 4 | import { FC, useEffect, useState } from "react"; 5 | import PublicLayout from "@components/templates/Layouts/PublicLayout"; 6 | import PrivateLayout from "@components/templates/Layouts/PrivateLayout"; 7 | 8 | type TProps = { 9 | children: React.ReactNode; 10 | }; 11 | 12 | // Define your layout map 13 | const layouts: Record> = { 14 | public: PublicLayout, 15 | auth: PrivateLayout, 16 | }; 17 | 18 | // Define a component that will wrap your page 19 | const LayoutWrapper: FC = ({ children }: TProps) => { 20 | const pathname = usePathname(); 21 | 22 | const [mounted, setMounted] = useState(false); 23 | 24 | useEffect(() => setMounted(true), []); 25 | 26 | // Determine the layout type based on the route 27 | const layoutType = getLayoutType(pathname); 28 | 29 | // Get the layout component from the map 30 | const LayoutComponent = layouts[layoutType] || PublicLayout; 31 | 32 | // Render the children with the layout 33 | if (!mounted) return {children}; 34 | 35 | return {children}; 36 | }; 37 | 38 | function getLayoutType(path: string) { 39 | if (path.startsWith("/auth")) { 40 | return "auth"; 41 | } 42 | return "public"; 43 | } 44 | 45 | // Export the layout wrapper 46 | export default LayoutWrapper; 47 | -------------------------------------------------------------------------------- /src/app/components/templates/Layouts/PrivateLayout.tsx: -------------------------------------------------------------------------------- 1 | import { FC } from "react"; 2 | 3 | type TProps = { 4 | children: React.ReactNode; 5 | }; 6 | 7 | const PrivateLayout: FC = ({ children }: TProps) => ( 8 |
9 |
Private Navigation
10 |
{children}
11 |
Private Footer
12 |
13 | ); 14 | 15 | export default PrivateLayout; 16 | -------------------------------------------------------------------------------- /src/app/components/templates/Layouts/PublicLayout.tsx: -------------------------------------------------------------------------------- 1 | import { FC } from "react"; 2 | import Header from "@components/organisms/Header"; 3 | import Footer from "@components/organisms/Footer"; 4 | import clsx from "clsx"; 5 | 6 | type TProps = { 7 | children: React.ReactNode; 8 | }; 9 | 10 | const PublicLayout: FC = ({ children }: TProps) => ( 11 |
12 |
13 |
19 | {children} 20 |
21 |
22 |
23 | ); 24 | 25 | export default PublicLayout; 26 | -------------------------------------------------------------------------------- /src/app/core/domain/models/notion_blog.ts: -------------------------------------------------------------------------------- 1 | type TPage = any; //TODO: Define your own type 2 | 3 | type TResult = any; //TODO: Define your own type 4 | 5 | type TGetBlogResponse = { 6 | result: TResult; 7 | }; 8 | 9 | export type { TPage as TNotionBlogPage, TResult as TNotionBlogResult, TGetBlogResponse as TNotionBlogGetBlogResponse }; 10 | -------------------------------------------------------------------------------- /src/app/globals.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | :root { 6 | --primary-bg-color: #ffffff; /* Màu nền chủ đạo */ 7 | --secondary-bg-color: #f7f7f7; /* Màu nền phụ */ 8 | --text-color: #2a2a2a; /* Màu văn bản */ 9 | --border-color: #e0e0e0; /* Màu viền */ 10 | --box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); /* Shadow */ 11 | } 12 | 13 | [data-theme="dark"] body { 14 | --primary-bg-color: #2a2a2a; /* Màu nền chủ đạo */ 15 | --secondary-bg-color: #1e1e1e; /* Màu nền phụ */ 16 | --text-color: #dcdcdc; /* Màu văn bản */ 17 | --border-color: #444444; /* Màu viền */ 18 | --box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3); /* Shadow */ 19 | } 20 | 21 | @media (prefers-color-scheme: light) { 22 | } 23 | 24 | @media (prefers-color-scheme: dark) { 25 | } 26 | 27 | body { 28 | color: var(--text-color); 29 | background-color: var(--secondary-bg-color); 30 | } 31 | 32 | * { 33 | color: var(--text-color); 34 | } 35 | 36 | @layer utilities { 37 | .text-balance { 38 | text-wrap: balance; 39 | } 40 | } 41 | 42 | a:hover { 43 | opacity: 0.8; 44 | } 45 | -------------------------------------------------------------------------------- /src/app/layout.tsx: -------------------------------------------------------------------------------- 1 | import type { Metadata } from "next"; 2 | import { Roboto } from "next/font/google"; 3 | import "./globals.css"; 4 | import LayoutWrapper from "@components/templates/Layouts/LayoutWrapper"; 5 | import { rootDomain } from "@helpers/config"; 6 | 7 | const roboto = Roboto({ 8 | weight: "400", 9 | subsets: ["latin"], 10 | }); 11 | export const metadata: Metadata = { 12 | title: "Notion NextJs", 13 | description: "Notion NextJs is a starter template for Notion API with NextJs", 14 | icons: [ 15 | { 16 | url: rootDomain + "/favicon.ico", 17 | }, 18 | ], 19 | }; 20 | 21 | export default function RootLayout({ 22 | children, 23 | }: Readonly<{ 24 | children: React.ReactNode; 25 | }>) { 26 | return ( 27 | 28 | 29 | {children} 30 | 31 | 32 | ); 33 | } 34 | -------------------------------------------------------------------------------- /src/app/page.tsx: -------------------------------------------------------------------------------- 1 | import { FC } from "react"; 2 | 3 | type TProps = {}; 4 | const Page: FC = (props: TProps) => { 5 | return
Hello World
; 6 | }; 7 | 8 | export default Page; 9 | -------------------------------------------------------------------------------- /src/app/utils/helpers/config.ts: -------------------------------------------------------------------------------- 1 | export const port = process.env.PORT || 3000; 2 | export const rootDomain = process.env.URL; 3 | export const revalidateSecret = process.env.REVALIDATE_SECRET; 4 | 5 | export const notionToken = process.env.NOTION_TOKEN; 6 | export const notionDatabaseId = process.env.NOTION_DATABASE_ID; 7 | -------------------------------------------------------------------------------- /src/app/utils/helpers/constant.ts: -------------------------------------------------------------------------------- 1 | export const DEFAULT_PAGE_SIZE = 100; 2 | export const DEFAULT_PAGE_INDEX = 1; 3 | -------------------------------------------------------------------------------- /src/app/utils/helpers/date.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * Function to parse a date to a common readable string in English and Vietnamese 3 | * @param date - The date to be formatted 4 | * @param locale - The desired locale ('en' for English, 'vi' for Vietnamese) 5 | * @returns Formatted date string 6 | */ 7 | export const formatDateLocalized = (date: Date, locale: "en" | "vi" = "en"): string => { 8 | const options: Intl.DateTimeFormatOptions = { 9 | year: "numeric", 10 | month: "long", 11 | day: "numeric", 12 | weekday: "long", 13 | }; 14 | 15 | const formatter = new Intl.DateTimeFormat(locale, options); 16 | return formatter.format(date); 17 | }; 18 | -------------------------------------------------------------------------------- /src/app/utils/helpers/error.ts: -------------------------------------------------------------------------------- 1 | "use client"; 2 | 3 | export const ERROR_CODE = Object.freeze({ 4 | not_found_the_resource: "not_found_the_resource", 5 | }); 6 | -------------------------------------------------------------------------------- /src/app/utils/helpers/image.ts: -------------------------------------------------------------------------------- 1 | import { unstable_noStore } from "next/cache"; 2 | import { getPlaiceholder } from "plaiceholder"; 3 | 4 | async function getBlurData(src: string) { 5 | unstable_noStore(); 6 | try { 7 | const buffer = await fetch(src).then(async (res) => { 8 | return Buffer.from(await res.arrayBuffer()); 9 | }); 10 | 11 | const data = await getPlaiceholder(buffer); 12 | return data; 13 | } catch (err) { 14 | console.error("Error fetching or processing image:", err); 15 | return { base64: "", img: "" }; 16 | } 17 | } 18 | 19 | export { getBlurData }; 20 | -------------------------------------------------------------------------------- /src/app/utils/helpers/info.ts: -------------------------------------------------------------------------------- 1 | const info = { 2 | name: "Notion Nextjs Starter", 3 | }; 4 | 5 | export default info; 6 | -------------------------------------------------------------------------------- /src/app/utils/helpers/svg.ts: -------------------------------------------------------------------------------- 1 | export const replaceColor = (svgString: string, newColor: string, type: "fill" | "stroke" = "fill") => { 2 | const regex = new RegExp(`${type}="[^"]+"`, "g"); 3 | 4 | let replacement = `${type}="var(${newColor})"`; 5 | if (newColor.startsWith("#")) { 6 | replacement = `${type}="${newColor}"`; 7 | } 8 | 9 | return svgString.replace(regex, replacement); 10 | }; 11 | -------------------------------------------------------------------------------- /src/app/utils/lib/notion.ts: -------------------------------------------------------------------------------- 1 | import { notionDatabaseId, notionToken } from "@helpers/config"; 2 | import { DEFAULT_PAGE_SIZE } from "@helpers/constant"; 3 | import { ERROR_CODE } from "@helpers/error"; 4 | import { Client } from "@notionhq/client"; 5 | import type {} from "@notionhq/client"; 6 | 7 | const notion = new Client({ auth: notionToken }); 8 | 9 | export const getBlogPosts = async (config: { filter: Record; pageSize?: number; nextCursor?: string }) => { 10 | const databaseId = notionDatabaseId || ""; 11 | const { filter, nextCursor } = config; 12 | let { pageSize } = config; 13 | 14 | const response = await notion.databases.query({ 15 | database_id: databaseId, 16 | filter: filter as any, 17 | page_size: pageSize || DEFAULT_PAGE_SIZE, 18 | start_cursor: nextCursor, 19 | }); 20 | 21 | return response; 22 | }; 23 | 24 | export const getPage = async (pageId: string) => { 25 | const data = await fetch(`https://notion-api.splitbee.io/v1/page/${pageId}`, { 26 | headers: { 27 | "Content-Type": "application/json", 28 | }, 29 | }).then((res) => res.json()); 30 | return data; 31 | }; 32 | 33 | export const getPageBySlug = async ( 34 | slug: string 35 | ): Promise<{ 36 | generalInfo: any; 37 | detailInfo: any; 38 | }> => { 39 | const posts = await getBlogPosts({ 40 | filter: { 41 | and: [ 42 | { 43 | property: "Slug", 44 | rich_text: { 45 | equals: slug, 46 | }, 47 | }, 48 | ], 49 | }, 50 | pageSize: 1, 51 | }); 52 | if (posts.results.length === 0) { 53 | throw new Error(ERROR_CODE.not_found_the_resource); 54 | } 55 | 56 | return { 57 | generalInfo: posts.results[0], 58 | detailInfo: await getPage(posts.results[0].id), 59 | }; 60 | }; 61 | -------------------------------------------------------------------------------- /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": "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))", 14 | }, 15 | colors: { 16 | primaryBg: "var(--primary-bg-color)", 17 | secondaryBg: "var(--secondary-bg-color)", 18 | text: "var(--text-color)", 19 | border: "var(--border-color)", 20 | }, 21 | boxShadow: { 22 | theme: "var(--box-shadow)", 23 | }, 24 | aspectRatio: { 25 | "3/1": "3 / 1", 26 | "5/1": "5 / 1", 27 | }, 28 | }, 29 | }, 30 | plugins: [], 31 | // darkMode: ["selector", '[data-theme="dark"]'], 32 | }; 33 | export default config; 34 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "lib": ["dom", "dom.iterable", "esnext"], 4 | "allowJs": true, 5 | "skipLibCheck": true, 6 | "strict": true, 7 | "noEmit": true, 8 | "esModuleInterop": true, 9 | "module": "esnext", 10 | "moduleResolution": "bundler", 11 | "resolveJsonModule": true, 12 | "isolatedModules": true, 13 | "jsx": "preserve", 14 | "incremental": true, 15 | "plugins": [ 16 | { 17 | "name": "next" 18 | } 19 | ], 20 | "paths": { 21 | "@components/*": ["./src/app/components/*"], 22 | "@helpers/*": ["./src/app/utils/helpers/*"], 23 | "@lib/*": ["./src/app/utils/lib/*"], 24 | "@assets/*": ["./src/app/assets/*"], 25 | "@models/*": ["./src/app/core/domain/models/*"] 26 | } 27 | }, 28 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"], 29 | "exclude": ["node_modules"] 30 | } 31 | --------------------------------------------------------------------------------