From 1120a7720aa726fc74f27dc3864cb6cdd72c9aef Mon Sep 17 00:00:00 2001 From: Auggie Bennett Date: Tue, 18 Mar 2025 15:07:45 -0500 Subject: [PATCH] init with dummy posts --- .gitignore | 37 + README.md | 113 + firebase-debug.log | 156 + next.config.js | 7 + package-lock.json | 6931 +++++++++++++++++++++++++++++ package.json | 42 + postcss.config.js | 6 + public/images/faith-alone.svg | 48 + public/images/grace-alone.svg | 27 + public/images/sovereignty.svg | 48 + public/images/thomas-boston.jpg | Bin 0 -> 52558 bytes src/components/CommentSection.tsx | 163 + src/components/DateFormatter.tsx | 23 + src/components/Footer.tsx | 70 + src/components/Header.tsx | 35 + src/components/Layout.tsx | 36 + src/components/Meta.tsx | 50 + src/components/Pagination.tsx | 113 + src/components/PostCard.tsx | 69 + src/components/SearchBar.tsx | 48 + src/components/ShareButtons.tsx | 118 + src/components/Sidebar.tsx | 96 + src/components/TagList.tsx | 38 + src/lib/markdown.ts | 114 + src/pages/_app.tsx | 6 + src/pages/about.tsx | 74 + src/pages/archive.tsx | 87 + src/pages/contact.tsx | 206 + src/pages/index.tsx | 126 + src/pages/posts/[id].tsx | 149 + src/pages/resources.tsx | 128 + src/pages/search.tsx | 94 + src/pages/tags/[tag].tsx | 66 + src/pages/tags/index.tsx | 72 + src/posts/faith-alone.md | 124 + src/posts/fourfold.md | 40 + src/posts/grace-alone.md | 92 + src/posts/sovereignty-of-god.md | 112 + src/styles/globals.css | 51 + src/types/index.ts | 20 + tailwind.config.js | 43 + tsconfig.json | 24 + 42 files changed, 9902 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 firebase-debug.log create mode 100644 next.config.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 postcss.config.js create mode 100644 public/images/faith-alone.svg create mode 100644 public/images/grace-alone.svg create mode 100644 public/images/sovereignty.svg create mode 100644 public/images/thomas-boston.jpg create mode 100644 src/components/CommentSection.tsx create mode 100644 src/components/DateFormatter.tsx create mode 100644 src/components/Footer.tsx create mode 100644 src/components/Header.tsx create mode 100644 src/components/Layout.tsx create mode 100644 src/components/Meta.tsx create mode 100644 src/components/Pagination.tsx create mode 100644 src/components/PostCard.tsx create mode 100644 src/components/SearchBar.tsx create mode 100644 src/components/ShareButtons.tsx create mode 100644 src/components/Sidebar.tsx create mode 100644 src/components/TagList.tsx create mode 100644 src/lib/markdown.ts create mode 100644 src/pages/_app.tsx create mode 100644 src/pages/about.tsx create mode 100644 src/pages/archive.tsx create mode 100644 src/pages/contact.tsx create mode 100644 src/pages/index.tsx create mode 100644 src/pages/posts/[id].tsx create mode 100644 src/pages/resources.tsx create mode 100644 src/pages/search.tsx create mode 100644 src/pages/tags/[tag].tsx create mode 100644 src/pages/tags/index.tsx create mode 100644 src/posts/faith-alone.md create mode 100644 src/posts/fourfold.md create mode 100644 src/posts/grace-alone.md create mode 100644 src/posts/sovereignty-of-god.md create mode 100644 src/styles/globals.css create mode 100644 src/types/index.ts create mode 100644 tailwind.config.js create mode 100644 tsconfig.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f5f8393 --- /dev/null +++ b/.gitignore @@ -0,0 +1,37 @@ +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts + +# IDE +.idea/ +.vscode/ \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..d0b5a3b --- /dev/null +++ b/README.md @@ -0,0 +1,113 @@ +# Confessions of Grace + +A blog about Reformed theology built with Next.js and TypeScript, featuring Markdown-based content management. + +## Features + +- Modern static site built with Next.js +- TypeScript for type safety +- Content management using Markdown files +- Responsive design with Tailwind CSS +- Flat design style with Reformed theology aesthetics + +## Getting Started + +### Prerequisites + +- Node.js (>= 16.x) +- npm or yarn + +### Installation + +1. Clone the repository + +```bash +git clone https://github.com/yourusername/confessions-of-grace.git +cd confessions-of-grace +``` + +2. Install dependencies + +```bash +npm install +# or +yarn install +``` + +3. Run the development server + +```bash +npm run dev +# or +yarn dev +``` + +4. Open [http://localhost:3000](http://localhost:3000) in your browser to see the result. + +## Project Structure + +``` +├── public/ # Static assets +│ └── images/ # Images for blog posts +├── src/ # Source code +│ ├── components/ # React components +│ ├── lib/ # Utility functions +│ ├── pages/ # Next.js pages +│ ├── posts/ # Markdown blog posts +│ ├── styles/ # CSS styles +│ └── types/ # TypeScript type definitions +├── .gitignore +├── next.config.js +├── package.json +├── postcss.config.js +├── README.md +├── tailwind.config.js +└── tsconfig.json +``` + +## Writing Blog Posts + +To add a new blog post, create a new Markdown file in the `src/posts` directory with the following format: + +```markdown +--- +title: "Your Post Title" +date: "YYYY-MM-DD" +author: "Your Name" +excerpt: "A brief excerpt of your post" +tags: ["Tag1", "Tag2"] +coverImage: "/images/your-image.jpg" +--- + +# Your Post Title + +Your content goes here... +``` + +## Deployment + +The site can be deployed to various platforms: + +### Vercel (Recommended) + +```bash +npm install -g vercel +vercel +``` + +### Standard Build + +```bash +npm run build +npm start +``` + +## Customization + +- Modify the design in `tailwind.config.js` and `src/styles/globals.css` +- Update site content in component files +- Add or modify pages in the `src/pages` directory + +## License + +This project is licensed under the MIT License. \ No newline at end of file diff --git a/firebase-debug.log b/firebase-debug.log new file mode 100644 index 0000000..5266b36 --- /dev/null +++ b/firebase-debug.log @@ -0,0 +1,156 @@ +[debug] [2025-03-18T20:05:33.847Z] ---------------------------------------------------------------------- +[debug] [2025-03-18T20:05:33.849Z] Command: C:\Program Files\nodejs\node.exe C:\Users\Austin\AppData\Roaming\npm\node_modules\firebase-tools\lib\bin\firebase.js init +[debug] [2025-03-18T20:05:33.849Z] CLI Version: 13.34.0 +[debug] [2025-03-18T20:05:33.849Z] Platform: win32 +[debug] [2025-03-18T20:05:33.850Z] Node Version: v22.14.0 +[debug] [2025-03-18T20:05:33.850Z] Time: Tue Mar 18 2025 15:05:33 GMT-0500 (Central Daylight Time) +[debug] [2025-03-18T20:05:33.850Z] ---------------------------------------------------------------------- +[debug] +[debug] [2025-03-18T20:05:33.853Z] >>> [apiv2][query] GET https://firebase-public.firebaseio.com/cli.json [none] +[debug] [2025-03-18T20:05:33.882Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2025-03-18T20:05:33.882Z] > authorizing via signed-in user (austinthebennett@gmail.com) +[info] + ######## #### ######## ######## ######## ### ###### ######## + ## ## ## ## ## ## ## ## ## ## ## + ###### ## ######## ###### ######## ######### ###### ###### + ## ## ## ## ## ## ## ## ## ## ## + ## #### ## ## ######## ######## ## ## ###### ######## + +You're about to initialize a Firebase project in this directory: + + C:\Users\Austin\Documents\confessions-of-grace + +[debug] [2025-03-18T20:05:34.924Z] <<< [apiv2][status] GET https://firebase-public.firebaseio.com/cli.json 200 +[debug] [2025-03-18T20:05:34.924Z] <<< [apiv2][body] GET https://firebase-public.firebaseio.com/cli.json {"cloudBuildErrorAfter":1594252800000,"cloudBuildWarnAfter":1590019200000,"defaultNode10After":1594252800000,"minVersion":"3.0.5","node8DeploysDisabledAfter":1613390400000,"node8RuntimeDisabledAfter":1615809600000,"node8WarnAfter":1600128000000} +[info] +=== Project Setup +[info] +[info] First, let's associate this project directory with a Firebase project. +[info] You can create multiple project aliases by running firebase use --add, +[info] but for now we'll just set up a default project. +[info] +[debug] [2025-03-18T20:05:43.813Z] Checked if tokens are valid: false, expires at: 1742058678460 +[debug] [2025-03-18T20:05:43.813Z] Checked if tokens are valid: false, expires at: 1742058678460 +[debug] [2025-03-18T20:05:43.813Z] > refreshing access token with scopes: [] +[debug] [2025-03-18T20:05:43.814Z] >>> [apiv2][query] POST https://www.googleapis.com/oauth2/v3/token [none] +[debug] [2025-03-18T20:05:43.814Z] >>> [apiv2][body] POST https://www.googleapis.com/oauth2/v3/token [omitted] +[debug] [2025-03-18T20:05:43.974Z] <<< [apiv2][status] POST https://www.googleapis.com/oauth2/v3/token 200 +[debug] [2025-03-18T20:05:43.974Z] <<< [apiv2][body] POST https://www.googleapis.com/oauth2/v3/token [omitted] +[debug] [2025-03-18T20:05:43.980Z] >>> [apiv2][query] GET https://firebase.googleapis.com/v1beta1/projects pageSize=100 +[debug] [2025-03-18T20:05:44.282Z] <<< [apiv2][status] GET https://firebase.googleapis.com/v1beta1/projects 200 +[debug] [2025-03-18T20:05:44.282Z] <<< [apiv2][body] GET https://firebase.googleapis.com/v1beta1/projects [omitted] +[info] i Using project confessions-of-grace (confessions-of-grace) +[info] +=== Hosting Setup +[debug] [2025-03-18T20:05:45.777Z] Checked if tokens are valid: true, expires at: 1742331942974 +[debug] [2025-03-18T20:05:45.777Z] Checked if tokens are valid: true, expires at: 1742331942974 +[debug] [2025-03-18T20:05:45.777Z] >>> [apiv2][query] GET https://firebase.googleapis.com/v1beta1/projects/confessions-of-grace [none] +[debug] [2025-03-18T20:05:45.895Z] <<< [apiv2][status] GET https://firebase.googleapis.com/v1beta1/projects/confessions-of-grace 200 +[debug] [2025-03-18T20:05:45.895Z] <<< [apiv2][body] GET https://firebase.googleapis.com/v1beta1/projects/confessions-of-grace {"projectId":"confessions-of-grace","projectNumber":"545148895351","displayName":"confessions-of-grace","name":"projects/confessions-of-grace","resources":{"hostingSite":"confessions-of-grace"},"state":"ACTIVE","etag":"1_8cba48cb-7559-4859-82ed-0459928e3a23"} +[info] +[info] i Didn't detect a .git folder. Assuming C:\Users\Austin\Documents\confessions-of-grace is the project root. +[info] i Authorizing with GitHub to upload your service account to a GitHub repository's secrets store. +[info] +[info] Visit this URL on this device to log in: +[info] https://github.com/login/oauth/authorize?client_id=89cf50f02ac6aaed3484&state=50711215&redirect_uri=http%3A%2F%2Flocalhost%3A9005&scope=read%3Auser%20repo%20public_repo +[info] +[info] Waiting for authentication... +[debug] [2025-03-18T20:06:26.585Z] >>> [apiv2][query] POST https://github.com/login/oauth/access_token [none] +[debug] [2025-03-18T20:06:26.585Z] >>> [apiv2][body] POST https://github.com/login/oauth/access_token [stream] +[debug] [2025-03-18T20:06:26.815Z] <<< [apiv2][status] POST https://github.com/login/oauth/access_token 200 +[debug] [2025-03-18T20:06:26.815Z] <<< [apiv2][body] POST https://github.com/login/oauth/access_token {"access_token":"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","token_type":"bearer","scope":"read:user,repo"} +[debug] [2025-03-18T20:06:26.818Z] >>> [apiv2][query] GET https://api.github.com/user [none] +[debug] [2025-03-18T20:06:27.119Z] <<< [apiv2][status] GET https://api.github.com/user 200 +[debug] [2025-03-18T20:06:27.119Z] <<< [apiv2][body] GET https://api.github.com/user {"login":"auggie2lbcf","id":157770486,"node_id":"U_kgDOCWdi9g","avatar_url":"https://avatars.githubusercontent.com/u/157770486?v=4","gravatar_id":"","url":"https://api.github.com/users/auggie2lbcf","html_url":"https://github.com/auggie2lbcf","followers_url":"https://api.github.com/users/auggie2lbcf/followers","following_url":"https://api.github.com/users/auggie2lbcf/following{/other_user}","gists_url":"https://api.github.com/users/auggie2lbcf/gists{/gist_id}","starred_url":"https://api.github.com/users/auggie2lbcf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/auggie2lbcf/subscriptions","organizations_url":"https://api.github.com/users/auggie2lbcf/orgs","repos_url":"https://api.github.com/users/auggie2lbcf/repos","events_url":"https://api.github.com/users/auggie2lbcf/events{/privacy}","received_events_url":"https://api.github.com/users/auggie2lbcf/received_events","type":"User","user_view_type":"private","site_admin":false,"name":"Auggie","company":null,"blog":"thebennett.net","location":null,"email":null,"hireable":true,"bio":null,"twitter_username":"auggie2lbcf","notification_email":null,"public_repos":17,"public_gists":0,"followers":0,"following":3,"created_at":"2024-01-26T01:41:43Z","updated_at":"2025-03-18T19:22:54Z","private_gists":0,"total_private_repos":4,"owned_private_repos":4,"disk_usage":242961,"collaborators":0,"two_factor_authentication":true,"plan":{"name":"free","space":976562499,"collaborators":0,"private_repos":10000}} +[info] +[info] + Success! Logged into GitHub as auggie2lbcf +[info] +[debug] [2025-03-18T20:06:37.568Z] >>> [apiv2][query] GET https://api.github.com/repos/auggie2lbcf/confessionofgrace/actions/secrets/public-key type=owner +[debug] [2025-03-18T20:06:37.719Z] <<< [apiv2][status] GET https://api.github.com/repos/auggie2lbcf/confessionofgrace/actions/secrets/public-key 404 +[debug] [2025-03-18T20:06:37.719Z] <<< [apiv2][body] GET https://api.github.com/repos/auggie2lbcf/confessionofgrace/actions/secrets/public-key {"message":"Not Found","documentation_url":"https://docs.github.com/rest/actions/secrets#get-a-repository-public-key","status":"404"} +[info] +[info] +[error] ! The provided authorization cannot be used with this repository. If this repository is in an organization, did you remember to grant access? +[info] +[info] i Action required: Visit this URL to ensure access has been granted to the appropriate organization(s) for the Firebase CLI GitHub OAuth App: +[info] https://github.com/settings/connections/applications/89cf50f02ac6aaed3484 +[info] +[debug] [2025-03-18T20:06:48.785Z] >>> [apiv2][query] GET https://api.github.com/repos/auggie2lbcf/confessionofgrace/actions/secrets/public-key type=owner +[debug] [2025-03-18T20:06:48.942Z] <<< [apiv2][status] GET https://api.github.com/repos/auggie2lbcf/confessionofgrace/actions/secrets/public-key 404 +[debug] [2025-03-18T20:06:48.943Z] <<< [apiv2][body] GET https://api.github.com/repos/auggie2lbcf/confessionofgrace/actions/secrets/public-key {"message":"Not Found","documentation_url":"https://docs.github.com/rest/actions/secrets#get-a-repository-public-key","status":"404"} +[info] +[info] +[error] ! The provided authorization cannot be used with this repository. If this repository is in an organization, did you remember to grant access? +[info] +[info] i Action required: Visit this URL to ensure access has been granted to the appropriate organization(s) for the Firebase CLI GitHub OAuth App: +[info] https://github.com/settings/connections/applications/89cf50f02ac6aaed3484 +[info] +[debug] [2025-03-18T20:06:56.039Z] ---------------------------------------------------------------------- +[debug] [2025-03-18T20:06:56.041Z] Command: C:\Program Files\nodejs\node.exe C:\Users\Austin\AppData\Roaming\npm\node_modules\firebase-tools\lib\bin\firebase.js init +[debug] [2025-03-18T20:06:56.041Z] CLI Version: 13.34.0 +[debug] [2025-03-18T20:06:56.041Z] Platform: win32 +[debug] [2025-03-18T20:06:56.041Z] Node Version: v22.14.0 +[debug] [2025-03-18T20:06:56.041Z] Time: Tue Mar 18 2025 15:06:56 GMT-0500 (Central Daylight Time) +[debug] [2025-03-18T20:06:56.041Z] ---------------------------------------------------------------------- +[debug] +[debug] [2025-03-18T20:06:56.045Z] > command requires scopes: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https://www.googleapis.com/auth/firebase","https://www.googleapis.com/auth/cloud-platform"] +[debug] [2025-03-18T20:06:56.046Z] > authorizing via signed-in user (austinthebennett@gmail.com) +[info] + ######## #### ######## ######## ######## ### ###### ######## + ## ## ## ## ## ## ## ## ## ## ## + ###### ## ######## ###### ######## ######### ###### ###### + ## ## ## ## ## ## ## ## ## ## ## + ## #### ## ## ######## ######## ## ## ###### ######## + +You're about to initialize a Firebase project in this directory: + + C:\Users\Austin\Documents\confessions-of-grace + +[info] +=== Project Setup +[info] +[info] First, let's associate this project directory with a Firebase project. +[info] You can create multiple project aliases by running firebase use --add, +[info] but for now we'll just set up a default project. +[info] +[debug] [2025-03-18T20:07:01.993Z] Checked if tokens are valid: true, expires at: 1742331942974 +[debug] [2025-03-18T20:07:01.993Z] Checked if tokens are valid: true, expires at: 1742331942974 +[debug] [2025-03-18T20:07:01.994Z] >>> [apiv2][query] GET https://firebase.googleapis.com/v1beta1/projects pageSize=100 +[debug] [2025-03-18T20:07:02.241Z] <<< [apiv2][status] GET https://firebase.googleapis.com/v1beta1/projects 200 +[debug] [2025-03-18T20:07:02.242Z] <<< [apiv2][body] GET https://firebase.googleapis.com/v1beta1/projects [omitted] +[info] i Using project confessions-of-grace (confessions-of-grace) +[info] +=== Hosting Setup +[debug] [2025-03-18T20:07:03.837Z] Checked if tokens are valid: true, expires at: 1742331942974 +[debug] [2025-03-18T20:07:03.837Z] Checked if tokens are valid: true, expires at: 1742331942974 +[debug] [2025-03-18T20:07:03.837Z] >>> [apiv2][query] GET https://firebase.googleapis.com/v1beta1/projects/confessions-of-grace [none] +[debug] [2025-03-18T20:07:03.957Z] <<< [apiv2][status] GET https://firebase.googleapis.com/v1beta1/projects/confessions-of-grace 200 +[debug] [2025-03-18T20:07:03.957Z] <<< [apiv2][body] GET https://firebase.googleapis.com/v1beta1/projects/confessions-of-grace {"projectId":"confessions-of-grace","projectNumber":"545148895351","displayName":"confessions-of-grace","name":"projects/confessions-of-grace","resources":{"hostingSite":"confessions-of-grace"},"state":"ACTIVE","etag":"1_8cba48cb-7559-4859-82ed-0459928e3a23"} +[info] +[info] i Didn't detect a .git folder. Assuming C:\Users\Austin\Documents\confessions-of-grace is the project root. +[info] i Authorizing with GitHub to upload your service account to a GitHub repository's secrets store. +[info] +[info] Visit this URL on this device to log in: +[info] https://github.com/login/oauth/authorize?client_id=89cf50f02ac6aaed3484&state=533693003&redirect_uri=http%3A%2F%2Flocalhost%3A9005&scope=read%3Auser%20repo%20public_repo +[info] +[info] Waiting for authentication... +[debug] [2025-03-18T20:07:16.492Z] >>> [apiv2][query] POST https://github.com/login/oauth/access_token [none] +[debug] [2025-03-18T20:07:16.492Z] >>> [apiv2][body] POST https://github.com/login/oauth/access_token [stream] +[debug] [2025-03-18T20:07:16.689Z] <<< [apiv2][status] POST https://github.com/login/oauth/access_token 200 +[debug] [2025-03-18T20:07:16.689Z] <<< [apiv2][body] POST https://github.com/login/oauth/access_token {"access_token":"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","token_type":"bearer","scope":"read:user,repo"} +[debug] [2025-03-18T20:07:16.692Z] >>> [apiv2][query] GET https://api.github.com/user [none] +[debug] [2025-03-18T20:07:16.976Z] <<< [apiv2][status] GET https://api.github.com/user 200 +[debug] [2025-03-18T20:07:16.976Z] <<< [apiv2][body] GET https://api.github.com/user {"login":"auggie2lbcf","id":157770486,"node_id":"U_kgDOCWdi9g","avatar_url":"https://avatars.githubusercontent.com/u/157770486?v=4","gravatar_id":"","url":"https://api.github.com/users/auggie2lbcf","html_url":"https://github.com/auggie2lbcf","followers_url":"https://api.github.com/users/auggie2lbcf/followers","following_url":"https://api.github.com/users/auggie2lbcf/following{/other_user}","gists_url":"https://api.github.com/users/auggie2lbcf/gists{/gist_id}","starred_url":"https://api.github.com/users/auggie2lbcf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/auggie2lbcf/subscriptions","organizations_url":"https://api.github.com/users/auggie2lbcf/orgs","repos_url":"https://api.github.com/users/auggie2lbcf/repos","events_url":"https://api.github.com/users/auggie2lbcf/events{/privacy}","received_events_url":"https://api.github.com/users/auggie2lbcf/received_events","type":"User","user_view_type":"private","site_admin":false,"name":"Auggie","company":null,"blog":"thebennett.net","location":null,"email":null,"hireable":true,"bio":null,"twitter_username":"auggie2lbcf","notification_email":null,"public_repos":17,"public_gists":0,"followers":0,"following":3,"created_at":"2024-01-26T01:41:43Z","updated_at":"2025-03-18T19:22:54Z","private_gists":0,"total_private_repos":4,"owned_private_repos":4,"disk_usage":242961,"collaborators":0,"two_factor_authentication":true,"plan":{"name":"free","space":976562499,"collaborators":0,"private_repos":10000}} +[info] +[info] + Success! Logged into GitHub as auggie2lbcf +[info] +[debug] [2025-03-18T20:07:29.570Z] >>> [apiv2][query] GET https://api.github.com/repos/auggie2lbcf/confessionofgrace/actions/secrets/public-key type=owner +[debug] [2025-03-18T20:07:29.729Z] <<< [apiv2][status] GET https://api.github.com/repos/auggie2lbcf/confessionofgrace/actions/secrets/public-key 404 +[debug] [2025-03-18T20:07:29.730Z] <<< [apiv2][body] GET https://api.github.com/repos/auggie2lbcf/confessionofgrace/actions/secrets/public-key {"message":"Not Found","documentation_url":"https://docs.github.com/rest/actions/secrets#get-a-repository-public-key","status":"404"} +[info] +[info] +[error] ! The provided authorization cannot be used with this repository. If this repository is in an organization, did you remember to grant access? +[info] +[info] i Action required: Visit this URL to ensure access has been granted to the appropriate organization(s) for the Firebase CLI GitHub OAuth App: +[info] https://github.com/settings/connections/applications/89cf50f02ac6aaed3484 +[info] diff --git a/next.config.js b/next.config.js new file mode 100644 index 0000000..f5ea75c --- /dev/null +++ b/next.config.js @@ -0,0 +1,7 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + reactStrictMode: true, + swcMinify: true, + } + + module.exports = nextConfig \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..03d0424 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6931 @@ +{ + "name": "confessions-of-grace", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "confessions-of-grace", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "autoprefixer": "^10.4.17", + "date-fns": "^3.3.1", + "gray-matter": "^4.0.3", + "next": "^14.1.0", + "postcss": "^8.4.33", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "remark": "^15.0.1", + "remark-html": "^16.0.1", + "tailwindcss": "^3.4.1" + }, + "devDependencies": { + "@tailwindcss/typography": "^0.5.16", + "@types/node": "^20.11.7", + "@types/react": "^18.2.48", + "@types/react-dom": "^18.2.18", + "eslint": "^8.56.0", + "eslint-config-next": "^14.1.0", + "typescript": "^5.3.3" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@emnapi/core": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.3.1.tgz", + "integrity": "sha512-pVGjBIt1Y6gg3EJN8jTcfpP/+uuRksIo055oE/OBkDNcjZqVbfkWCksG1Jp4yZnj3iKWyWX8fdG/j6UDYPbFog==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.0.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.0.1.tgz", + "integrity": "sha512-iIBu7mwkq4UQGeMEM8bLwNK962nXdhodeScX4slfQnRhEMMzvYivHhutCIk8uojvmASXXPC2WNEjwxFWk72Oqw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.5.1.tgz", + "integrity": "sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", + "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", + "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.3", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.7.tgz", + "integrity": "sha512-5yximcFK5FNompXfJFoWanu5l8v1hNGqNHh9du1xETp9HWk/B/PzvchX55WYOPaIeNglG8++68AAiauBAtbnzw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.3.1", + "@emnapi/runtime": "^1.3.1", + "@tybys/wasm-util": "^0.9.0" + } + }, + "node_modules/@next/env": { + "version": "14.2.25", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.25.tgz", + "integrity": "sha512-JnzQ2cExDeG7FxJwqAksZ3aqVJrHjFwZQAEJ9gQZSoEhIow7SNoKZzju/AwQ+PLIR4NY8V0rhcVozx/2izDO0w==", + "license": "MIT" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "14.2.25", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.2.25.tgz", + "integrity": "sha512-L2jcdEEa0bTv1DhE67Cdx1kLLkL0iLL9ILdBYx0j7noi2AUJM7bwcqmcN8awGg+8uyKGAGof/OkFom50x+ZyZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob": "10.3.10" + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "14.2.25", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.25.tgz", + "integrity": "sha512-09clWInF1YRd6le00vt750s3m7SEYNehz9C4PUcSu3bAdCTpjIV4aTYQZ25Ehrr83VR1rZeqtKUPWSI7GfuKZQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "14.2.25", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.25.tgz", + "integrity": "sha512-V+iYM/QR+aYeJl3/FWWU/7Ix4b07ovsQ5IbkwgUK29pTHmq+5UxeDr7/dphvtXEq5pLB/PucfcBNh9KZ8vWbug==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "14.2.25", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.25.tgz", + "integrity": "sha512-LFnV2899PJZAIEHQ4IMmZIgL0FBieh5keMnriMY1cK7ompR+JUd24xeTtKkcaw8QmxmEdhoE5Mu9dPSuDBgtTg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "14.2.25", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.25.tgz", + "integrity": "sha512-QC5y5PPTmtqFExcKWKYgUNkHeHE/z3lUsu83di488nyP0ZzQ3Yse2G6TCxz6nNsQwgAx1BehAJTZez+UQxzLfw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "14.2.25", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.25.tgz", + "integrity": "sha512-y6/ML4b9eQ2D/56wqatTJN5/JR8/xdObU2Fb1RBidnrr450HLCKr6IJZbPqbv7NXmje61UyxjF5kvSajvjye5w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "14.2.25", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.25.tgz", + "integrity": "sha512-sPX0TSXHGUOZFvv96GoBXpB3w4emMqKeMgemrSxI7A6l55VBJp/RKYLwZIB9JxSqYPApqiREaIIap+wWq0RU8w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "14.2.25", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.25.tgz", + "integrity": "sha512-ReO9S5hkA1DU2cFCsGoOEp7WJkhFzNbU/3VUF6XxNGUCQChyug6hZdYL/istQgfT/GWE6PNIg9cm784OI4ddxQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-ia32-msvc": { + "version": "14.2.25", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.25.tgz", + "integrity": "sha512-DZ/gc0o9neuCDyD5IumyTGHVun2dCox5TfPQI/BJTYwpSNYM3CZDI4i6TOdjeq1JMo+Ug4kPSMuZdwsycwFbAw==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "14.2.25", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.25.tgz", + "integrity": "sha512-KSznmS6eFjQ9RJ1nEc66kJvtGIL1iZMYmGEXsZPh2YtnLtqrgdVvKXJY2ScjjoFnG6nGLyPFR0UiEvDwVah4Tw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nolyfill/is-core-module": { + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz", + "integrity": "sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.4.0" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.11.0.tgz", + "integrity": "sha512-zxnHvoMQVqewTJr/W4pKjF0bMGiKJv1WX7bSrkl46Hg0QjESbzBROWK0Wg4RphzSOS5Jiy7eFimmM3UgMrMZbQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "license": "Apache-2.0" + }, + "node_modules/@swc/helpers": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz", + "integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==", + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3", + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/typography": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.16.tgz", + "integrity": "sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.castarray": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "postcss-selector-parser": "6.0.10" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1" + } + }, + "node_modules/@tailwindcss/typography/node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@tybys/wasm-util": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.9.0.tgz", + "integrity": "sha512-6+7nlbMVX/PVDCwaIQ8nTOPveOcFLSt8GcXdx8hD0bt39uWxYT88uXzqTd4fTvqta7oeUJqudepapKNt2DYJFw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "20.17.24", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.24.tgz", + "integrity": "sha512-d7fGCyB96w9BnWQrOsJtpyiSaBcAYYr75bnK6ZRjDbql2cGLj/3GsL5OYmLPNq76l7Gf2q4Rv9J2o6h5CrD9sA==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.14", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.14.tgz", + "integrity": "sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", + "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.5.tgz", + "integrity": "sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^18.0.0" + } + }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.26.1.tgz", + "integrity": "sha512-2X3mwqsj9Bd3Ciz508ZUtoQQYpOhU/kWoUqIf49H8Z0+Vbh6UF/y0OEYp0Q0axOGzaBGs7QxRwq0knSQ8khQNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.26.1", + "@typescript-eslint/type-utils": "8.26.1", + "@typescript-eslint/utils": "8.26.1", + "@typescript-eslint/visitor-keys": "8.26.1", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.0.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.26.1.tgz", + "integrity": "sha512-w6HZUV4NWxqd8BdeFf81t07d7/YV9s7TCWrQQbG5uhuvGUAW+fq1usZ1Hmz9UPNLniFnD8GLSsDpjP0hm1S4lQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.26.1", + "@typescript-eslint/types": "8.26.1", + "@typescript-eslint/typescript-estree": "8.26.1", + "@typescript-eslint/visitor-keys": "8.26.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.26.1.tgz", + "integrity": "sha512-6EIvbE5cNER8sqBu6V7+KeMZIC1664d2Yjt+B9EWUXrsyWpxx4lEZrmvxgSKRC6gX+efDL/UY9OpPZ267io3mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.26.1", + "@typescript-eslint/visitor-keys": "8.26.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.26.1.tgz", + "integrity": "sha512-Kcj/TagJLwoY/5w9JGEFV0dclQdyqw9+VMndxOJKtoFSjfZhLXhYjzsQEeyza03rwHx2vFEGvrJWJBXKleRvZg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "8.26.1", + "@typescript-eslint/utils": "8.26.1", + "debug": "^4.3.4", + "ts-api-utils": "^2.0.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.26.1.tgz", + "integrity": "sha512-n4THUQW27VmQMx+3P+B0Yptl7ydfceUj4ON/AQILAASwgYdZ/2dhfymRMh5egRUrvK5lSmaOm77Ry+lmXPOgBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.26.1.tgz", + "integrity": "sha512-yUwPpUHDgdrv1QJ7YQal3cMVBGWfnuCdKbXw1yyjArax3353rEJP1ZA+4F8nOlQ3RfS2hUN/wze3nlY+ZOhvoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.26.1", + "@typescript-eslint/visitor-keys": "8.26.1", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.0.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.26.1.tgz", + "integrity": "sha512-V4Urxa/XtSUroUrnI7q6yUTD3hDtfJ2jzVfeT3VK0ciizfK2q/zGC0iDh1lFMUZR8cImRrep6/q0xd/1ZGPQpg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.26.1", + "@typescript-eslint/types": "8.26.1", + "@typescript-eslint/typescript-estree": "8.26.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.9.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.26.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.26.1.tgz", + "integrity": "sha512-AjOC3zfnxd6S4Eiy3jwktJPclqhFHNyd8L6Gycf9WUPoKZpgM5PjkxY1X7uSy61xVpiJDhhk7XT2NVsN3ALTWg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.26.1", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "license": "ISC" + }, + "node_modules/@unrs/rspack-resolver-binding-darwin-arm64": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-darwin-arm64/-/rspack-resolver-binding-darwin-arm64-1.2.1.tgz", + "integrity": "sha512-xgSjy64typsn/lhQk/uKaS363H7ZeIBlWSh25FJFWXSCeLMHpEZ0umDo5Vzqi5iS26OZ5R1SpQkwiS78GhQRjw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/rspack-resolver-binding-darwin-x64": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-darwin-x64/-/rspack-resolver-binding-darwin-x64-1.2.1.tgz", + "integrity": "sha512-3maDtW0vehzciEbuLxc2g+0FmDw5LGfCt+yMN1ZDn0lW0ikEBEFp6ul3h2fRphtfuCc7IvBJE9WWTt1UHkS7Nw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/rspack-resolver-binding-freebsd-x64": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-freebsd-x64/-/rspack-resolver-binding-freebsd-x64-1.2.1.tgz", + "integrity": "sha512-aN6ifws9rNLjK2+6sIU9wvHyjXEf3S5+EZTHRarzd4jfa8i5pA7Mwt28un2DZVrBtIxhWDQvUPVKGI7zSBfVCA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@unrs/rspack-resolver-binding-linux-arm-gnueabihf": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-arm-gnueabihf/-/rspack-resolver-binding-linux-arm-gnueabihf-1.2.1.tgz", + "integrity": "sha512-tKqu9VQyCO1yEUX6n6jgOHi7SJA9e6lvHczK60gur4VBITxnPmVYiCj2aekrOOIavvvjjuWAL2rqPQuc4g7RHQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/rspack-resolver-binding-linux-arm64-gnu": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-arm64-gnu/-/rspack-resolver-binding-linux-arm64-gnu-1.2.1.tgz", + "integrity": "sha512-+xDI0kvwPiCR7334O83TPfaUXSe0UMVi5srQpQxP4+SDVYuONWsbwAC1IXe+yfOwRVGZsUdW9wE0ZiWs4Z+egw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/rspack-resolver-binding-linux-arm64-musl": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-arm64-musl/-/rspack-resolver-binding-linux-arm64-musl-1.2.1.tgz", + "integrity": "sha512-fcrVHlw+6UgQliMbI0znFD4ASWKuyY17FdH67ZmyNH62b0hRhhxQuJE0D6N3410m8lKVu4QW4EzFiHxYFUC0cg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/rspack-resolver-binding-linux-x64-gnu": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-x64-gnu/-/rspack-resolver-binding-linux-x64-gnu-1.2.1.tgz", + "integrity": "sha512-xISTyUJ2PiAT4x9nlh8FdciDcdKbsatgK9qO7EEsILt9VB7Y1mHYGaszj3ouxfZnaKQ13WwW+dFLGxkZLP/WVg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/rspack-resolver-binding-linux-x64-musl": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-linux-x64-musl/-/rspack-resolver-binding-linux-x64-musl-1.2.1.tgz", + "integrity": "sha512-LE8EjE/iPlvSsFbZ6P9c0Jh5/pifAi03UYeXYwOnQqt1molKAPMB0R4kGWOM7dnDYaNgkk1MN9MOTCLsqe97Fw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/rspack-resolver-binding-wasm32-wasi": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-wasm32-wasi/-/rspack-resolver-binding-wasm32-wasi-1.2.1.tgz", + "integrity": "sha512-XERT3B88+G55RgG96May8QvAdgGzHr8qtQ70cIdbuWTpIcA0I76cnxSZ8Qwx33y73jE5N/myX2YKDlFksn4z6w==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^0.2.7" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@unrs/rspack-resolver-binding-win32-arm64-msvc": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-win32-arm64-msvc/-/rspack-resolver-binding-win32-arm64-msvc-1.2.1.tgz", + "integrity": "sha512-I8OLI6JbmNx2E/SG8MOEuo/d6rNx8dwgL09rcItSMcP82v1oZ8AY8HNA+axxuxEH95nkb6MPJU09p63isDvzrA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/rspack-resolver-binding-win32-x64-msvc": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@unrs/rspack-resolver-binding-win32-x64-msvc/-/rspack-resolver-binding-win32-x64-msvc-1.2.1.tgz", + "integrity": "sha512-s5WvCljhFqiE3McvaD3lDIsQpmk7gEJRUHy1PRwLPzEB7snq9P2xQeqgzdjGhJQq62jBFz7NDy7NbMkocWr2pw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/acorn": { + "version": "8.14.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.1.tgz", + "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "license": "MIT" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.21", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz", + "integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.24.4", + "caniuse-lite": "^1.0.30001702", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.1.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.10.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.10.3.tgz", + "integrity": "sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==", + "dev": true, + "license": "MPL-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001706", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001706.tgz", + "integrity": "sha512-3ZczoTApMAZwPKYWmwVbQMFpXBDds3/0VciVoUwPUbldlYyVLmRVuRs/PcUZtHpbLRpzzDvrvnFuREsGt6lUug==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", + "license": "MIT" + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true, + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "dev": true, + "license": "MIT" + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/date-fns": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-3.6.0.tgz", + "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/kossnocorp" + } + }, + "node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-named-character-reference": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.1.0.tgz", + "integrity": "sha512-Wy+JTSbFThEOXQIR2L6mxJvEs+veIzpmqD7ynWxMXGpnk3smkHQOp6forLdHsKpAMW9iJpaBBIxz285t1n1C3w==", + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "license": "Apache-2.0" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "license": "MIT" + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "license": "MIT" + }, + "node_modules/electron-to-chromium": { + "version": "1.5.120", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.120.tgz", + "integrity": "sha512-oTUp3gfX1gZI+xfD2djr2rzQdHCwHzPQrrK0CD7WpTdF0nPdQ/INcRVjWgLdCT4a9W3jFObR9DAfsuyFQnI8CQ==", + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "license": "MIT" + }, + "node_modules/es-abstract": { + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", + "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.6", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.4", + "safe-array-concat": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", + "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", + "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.1", + "@humanwhocodes/config-array": "^0.13.0", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-next": { + "version": "14.2.25", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.2.25.tgz", + "integrity": "sha512-BwuRQJeqw4xP/fkul/WWjivwbaLs8AjvuMzQCC+nJI65ZVhnVolWs6tk5VSD92xPHu96gSTahfaSkQjIRtJ3ag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@next/eslint-plugin-next": "14.2.25", + "@rushstack/eslint-patch": "^1.3.3", + "@typescript-eslint/eslint-plugin": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "@typescript-eslint/parser": "^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.28.1", + "eslint-plugin-jsx-a11y": "^6.7.1", + "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react-hooks": "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705" + }, + "peerDependencies": { + "eslint": "^7.23.0 || ^8.0.0", + "typescript": ">=3.3.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.9.1.tgz", + "integrity": "sha512-euxa5rTGqHeqVxmOHT25hpk58PxkQ4mNoX6Yun4ooGaCHAxOCojJYNvjmyeOQxj/LyW+3fulH0+xtk+p2kPPTw==", + "dev": true, + "license": "ISC", + "dependencies": { + "@nolyfill/is-core-module": "1.0.39", + "debug": "^4.4.0", + "get-tsconfig": "^4.10.0", + "is-bun-module": "^1.3.0", + "rspack-resolver": "^1.1.0", + "stable-hash": "^0.0.5", + "tinyglobby": "^0.2.12" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*", + "eslint-plugin-import-x": "*" + }, + "peerDependenciesMeta": { + "eslint-plugin-import": { + "optional": true + }, + "eslint-plugin-import-x": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.31.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.8", + "array.prototype.findlastindex": "^1.2.5", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.12.0", + "hasown": "^2.0.2", + "is-core-module": "^2.15.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.0", + "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz", + "integrity": "sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "aria-query": "^5.3.2", + "array-includes": "^3.1.8", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "hasown": "^2.0.2", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.8", + "safe-regex-test": "^1.0.3", + "string.prototype.includes": "^2.0.1" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.4.tgz", + "integrity": "sha512-BGP0jRmfYyvOyvMoRX/uoUeW+GqNj9y16bPQzqAHf3AYII/tDs+jMN0dBVkl88/OZwNGwrVFxE7riHsXVfy/LQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.3", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.2.1", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.1", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.12", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "5.0.0-canary-7118f5dd7-20230705", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.0.0-canary-7118f5dd7-20230705.tgz", + "integrity": "sha512-AZYbMo/NW9chdL7vk6HQzQhT+PvTAEVqWk9ziruUoW2kAOcN5qNyelv70e0F1VNQAbvutOC9oc+xfWycI9FxDw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "license": "MIT" + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "license": "MIT", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", + "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" + }, + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, + "license": "ISC" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-symbol-description": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz", + "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, + "node_modules/gray-matter": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", + "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", + "license": "MIT", + "dependencies": { + "js-yaml": "^3.13.1", + "kind-of": "^6.0.2", + "section-matter": "^1.0.0", + "strip-bom-string": "^1.0.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/gray-matter/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/gray-matter/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/has-bigints": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hast-util-sanitize": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/hast-util-sanitize/-/hast-util-sanitize-5.0.2.tgz", + "integrity": "sha512-3yTWghByc50aGS7JlGhk61SPenfE/p1oaFeNwkOOyrscaOkMGrcW9+Cy/QAIOBpZxP1yqDIzFMR0+Np0i0+usg==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "unist-util-position": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-html": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", + "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^3.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "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.", + "dev": true, + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bun-module": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-1.3.0.tgz", + "integrity": "sha512-DgXeu5UWI0IsMQundYb5UAOzm6G2eVnarJ0byP6Tm55iZNKceD59LNPA2L4VvsScTtHcw0yEkVwSf7PC+QoLSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.6.3" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true, + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/iterator.prototype": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz", + "integrity": "sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "get-proto": "^1.0.0", + "has-symbols": "^1.1.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.7", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", + "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", + "dev": true, + "license": "CC0-1.0" + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dev": true, + "license": "MIT", + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.castarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", + "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true, + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "license": "ISC" + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", + "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.10.tgz", + "integrity": "sha512-vSJJTG+t/dIKAUhUDw/dLdZ9s//5OxcHqLaDWWrW4Cdq7o6tdLIczUkMXt2MBNmk6sJRZBZRXVixs7URY1CmIg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/next": { + "version": "14.2.25", + "resolved": "https://registry.npmjs.org/next/-/next-14.2.25.tgz", + "integrity": "sha512-N5M7xMc4wSb4IkPvEV5X2BRRXUmhVHNyaXwEM86+voXthSZz8ZiRyQW4p9mwAoAPIm6OzuVZtn7idgEJeAJN3Q==", + "license": "MIT", + "dependencies": { + "@next/env": "14.2.25", + "@swc/helpers": "0.5.5", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001579", + "graceful-fs": "^4.2.11", + "postcss": "8.4.31", + "styled-jsx": "5.1.1" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=18.17.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "14.2.25", + "@next/swc-darwin-x64": "14.2.25", + "@next/swc-linux-arm64-gnu": "14.2.25", + "@next/swc-linux-arm64-musl": "14.2.25", + "@next/swc-linux-x64-gnu": "14.2.25", + "@next/swc-linux-x64-musl": "14.2.25", + "@next/swc-win32-arm64-msvc": "14.2.25", + "@next/swc-win32-ia32-msvc": "14.2.25", + "@next/swc-win32-x64-msvc": "14.2.25" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.41.2", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "@playwright/test": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/next/node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz", + "integrity": "sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.values": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.8", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "license": "MIT" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/property-information": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.0.0.tgz", + "integrity": "sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/remark": { + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/remark/-/remark-15.0.1.tgz", + "integrity": "sha512-Eht5w30ruCXgFmxVUSlNWQ9iiimq07URKeFS3hNc8cUWy1llX4KDWfyEDZRycMc+znsN9Ux5/tJ/BFdgdOwA3A==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-html": { + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/remark-html/-/remark-html-16.0.1.tgz", + "integrity": "sha512-B9JqA5i0qZe0Nsf49q3OXyGvyXuZFDzAP2iOFLEumymuYJITVpiH1IgsTEwTpdptDmZlMDMWeDmSawdaJIGCXQ==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "hast-util-sanitize": "^5.0.0", + "hast-util-to-html": "^9.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/resolve": { + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rspack-resolver": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/rspack-resolver/-/rspack-resolver-1.2.1.tgz", + "integrity": "sha512-yTaWGUvHOjcoyFMdVTdYt2nq2Hu8sw6ia3X9szloXFJlWLQZnQ9g/4TPhL3Bb3qN58Mkye8mFG7MCaKhya7fOw==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/JounQin" + }, + "optionalDependencies": { + "@unrs/rspack-resolver-binding-darwin-arm64": "1.2.1", + "@unrs/rspack-resolver-binding-darwin-x64": "1.2.1", + "@unrs/rspack-resolver-binding-freebsd-x64": "1.2.1", + "@unrs/rspack-resolver-binding-linux-arm-gnueabihf": "1.2.1", + "@unrs/rspack-resolver-binding-linux-arm64-gnu": "1.2.1", + "@unrs/rspack-resolver-binding-linux-arm64-musl": "1.2.1", + "@unrs/rspack-resolver-binding-linux-x64-gnu": "1.2.1", + "@unrs/rspack-resolver-binding-linux-x64-musl": "1.2.1", + "@unrs/rspack-resolver-binding-wasm32-wasi": "1.2.1", + "@unrs/rspack-resolver-binding-win32-arm64-msvc": "1.2.1", + "@unrs/rspack-resolver-binding-win32-x64-msvc": "1.2.1" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/section-matter": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", + "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", + "license": "MIT", + "dependencies": { + "extend-shallow": "^2.0.1", + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" + }, + "node_modules/stable-hash": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz", + "integrity": "sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA==", + "dev": true, + "license": "MIT" + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/string.prototype.includes": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz", + "integrity": "sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.6", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", + "set-function-name": "^2.0.2", + "side-channel": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-bom-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", + "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/styled-jsx": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", + "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", + "license": "MIT", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.17", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz", + "integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==", + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.6.0", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.21.6", + "lilconfig": "^3.1.3", + "micromatch": "^4.0.8", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.1.1", + "postcss": "^8.4.47", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.2", + "postcss-nested": "^6.2.0", + "postcss-selector-parser": "^6.1.2", + "resolve": "^1.22.8", + "sucrase": "^3.35.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true, + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz", + "integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.4.3", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tinyglobby/node_modules/fdir": { + "version": "6.4.3", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz", + "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/tinyglobby/node_modules/picomatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", + "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/ts-api-utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.1.tgz", + "integrity": "sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "license": "Apache-2.0" + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "for-each": "^0.3.3", + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.8.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", + "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/unbox-primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-bigints": "^1.0.2", + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", + "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", + "dev": true, + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..b2c821d --- /dev/null +++ b/package.json @@ -0,0 +1,42 @@ +{ + "name": "confessions-of-grace", + "version": "1.0.0", + "description": "A blog about reformed theology", + "main": "index.js", + "scripts": { + "dev": "next dev", + "build": "next build", + "start": "next start", + "lint": "next lint", + "typecheck": "tsc --noEmit" + }, + "keywords": [ + "blog", + "reformed", + "theology", + "grace" + ], + "author": "", + "license": "MIT", + "dependencies": { + "autoprefixer": "^10.4.17", + "date-fns": "^3.3.1", + "gray-matter": "^4.0.3", + "next": "^14.1.0", + "postcss": "^8.4.33", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "remark": "^15.0.1", + "remark-html": "^16.0.1", + "tailwindcss": "^3.4.1" + }, + "devDependencies": { + "@tailwindcss/typography": "^0.5.16", + "@types/node": "^20.11.7", + "@types/react": "^18.2.48", + "@types/react-dom": "^18.2.18", + "eslint": "^8.56.0", + "eslint-config-next": "^14.1.0", + "typescript": "^5.3.3" + } +} diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..88a3558 --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, + } \ No newline at end of file diff --git a/public/images/faith-alone.svg b/public/images/faith-alone.svg new file mode 100644 index 0000000..ad46418 --- /dev/null +++ b/public/images/faith-alone.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Romans 3:28 + + + + + + SOLA FIDE + Justification by Faith Alone + + + "One is justified by faith apart from works of the law." + \ No newline at end of file diff --git a/public/images/grace-alone.svg b/public/images/grace-alone.svg new file mode 100644 index 0000000..e8c647d --- /dev/null +++ b/public/images/grace-alone.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + SOLA GRATIA + Salvation by Grace Alone + + + "For by grace you have been saved through faith..." + \ No newline at end of file diff --git a/public/images/sovereignty.svg b/public/images/sovereignty.svg new file mode 100644 index 0000000..ad46418 --- /dev/null +++ b/public/images/sovereignty.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Romans 3:28 + + + + + + SOLA FIDE + Justification by Faith Alone + + + "One is justified by faith apart from works of the law." + \ No newline at end of file diff --git a/public/images/thomas-boston.jpg b/public/images/thomas-boston.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5421a6e7eaae82359b06be02bead407e56a2a1ed GIT binary patch literal 52558 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 = ({ postId }) => { + const [name, setName] = useState(''); + const [email, setEmail] = useState(''); + const [comment, setComment] = useState(''); + const [isSubmitting, setIsSubmitting] = useState(false); + const [isSubmitted, setIsSubmitted] = useState(false); + const [error, setError] = useState(null); + + const handleSubmit = async (e: React.FormEvent) => { + e.preventDefault(); + + // Basic validation + if (!name.trim() || !email.trim() || !comment.trim()) { + setError('All fields are required'); + return; + } + + setIsSubmitting(true); + setError(null); + + try { + // In a real implementation, you would send this data to your API + // For now, we'll just simulate a successful submission + await new Promise(resolve => setTimeout(resolve, 1000)); + + // Clear form and show success message + setName(''); + setEmail(''); + setComment(''); + setIsSubmitted(true); + setIsSubmitting(false); + + // Reset success message after 5 seconds + setTimeout(() => { + setIsSubmitted(false); + }, 5000); + } catch (err) { + setError('Something went wrong. Please try again later.'); + setIsSubmitting(false); + } + }; + + return ( +
+

Leave a Comment

+ + {isSubmitted && ( +
+ Your comment has been submitted and is awaiting moderation. Thank you! +
+ )} + + {error && ( +
+ {error} +
+ )} + +
+
+
+ + setName(e.target.value)} + className="w-full px-4 py-2 border border-primary-300 rounded-md focus:outline-none focus:ring-2 focus:ring-accent focus:border-transparent" + required + /> +
+
+ + setEmail(e.target.value)} + className="w-full px-4 py-2 border border-primary-300 rounded-md focus:outline-none focus:ring-2 focus:ring-accent focus:border-transparent" + required + /> +
+
+ +
+ + +
+ +
+ + +
+ + +
+ + {/* Sample comments - in a real implementation, these would be fetched from an API */} +
+

Comments (2)

+ +
+
+
+
+

John Calvin

+

March 10, 2025

+
+
+

+ A profound meditation on the doctrine of grace. I particularly appreciate your emphasis on how this truth transforms our daily lives, not just our theological understanding. +

+
+ +
+
+
+

Martin Luther

+

March 5, 2025

+
+
+

+ This post eloquently articulates what I've been trying to explain to my congregation. The way you connected Scripture with practical application was masterful. I'll be sharing this widely. +

+
+
+
+
+ ); +}; + +export default CommentSection; \ No newline at end of file diff --git a/src/components/DateFormatter.tsx b/src/components/DateFormatter.tsx new file mode 100644 index 0000000..5294228 --- /dev/null +++ b/src/components/DateFormatter.tsx @@ -0,0 +1,23 @@ +import React from 'react'; +import { format, parseISO } from 'date-fns'; + +interface DateFormatterProps { + dateString: string; + formatString?: string; + className?: string; +} + +const DateFormatter: React.FC = ({ + dateString, + formatString = 'MMMM d, yyyy', + className = '' +}) => { + const date = parseISO(dateString); + return ( + + ); +}; + +export default DateFormatter; \ No newline at end of file diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx new file mode 100644 index 0000000..430e796 --- /dev/null +++ b/src/components/Footer.tsx @@ -0,0 +1,70 @@ +import React from 'react'; +import Link from 'next/link'; + +const Footer: React.FC = () => { + const currentYear = new Date().getFullYear(); + + return ( +
+
+
+
+

Confessions of Grace

+

+ A blog dedicated to exploring the doctrines of grace and Reformed theology. +

+
+
+

Navigation

+
    +
  • + + Home + +
  • +
  • + + About + +
  • +
  • + + Archive + +
  • +
  • + + Resources + +
  • +
+
+
+

Subscribe

+

+ Stay updated with the latest posts. +

+
+ + +
+
+
+
+

© {currentYear} Confessions of Grace. All rights reserved.

+

+ "For by grace you have been saved through faith. And this is not your own doing; it is the gift of God." — Ephesians 2:8 +

+
+
+
+ ); +}; + +export default Footer; \ No newline at end of file diff --git a/src/components/Header.tsx b/src/components/Header.tsx new file mode 100644 index 0000000..236428f --- /dev/null +++ b/src/components/Header.tsx @@ -0,0 +1,35 @@ +import React from 'react'; +import Link from 'next/link'; + +const Header: React.FC = () => { + return ( +
+
+
+
+ +

Confessions of Grace

+ +

Exploring Reformed Theology

+
+ +
+
+
+ ); +}; + +export default Header; \ No newline at end of file diff --git a/src/components/Layout.tsx b/src/components/Layout.tsx new file mode 100644 index 0000000..bd8d350 --- /dev/null +++ b/src/components/Layout.tsx @@ -0,0 +1,36 @@ +import React, { ReactNode } from 'react'; +import Head from 'next/head'; +import Header from './Header'; +import Footer from './Footer'; + +interface LayoutProps { + children: ReactNode; + title?: string; + description?: string; +} + +const Layout: React.FC = ({ + children, + title = 'Confessions of Grace', + description = 'A blog dedicated to exploring the doctrines of grace and Reformed theology.' +}) => { + return ( + <> + + {title} + + + + +
+
+
+ {children} +
+
+
+ + ); +}; + +export default Layout; \ No newline at end of file diff --git a/src/components/Meta.tsx b/src/components/Meta.tsx new file mode 100644 index 0000000..651b898 --- /dev/null +++ b/src/components/Meta.tsx @@ -0,0 +1,50 @@ +import React from 'react'; +import Head from 'next/head'; + +interface MetaProps { + title?: string; + description?: string; + keywords?: string; + image?: string; + url?: string; + type?: string; +} + +const Meta: React.FC = ({ + title = 'Confessions of Grace', + description = 'A blog dedicated to exploring the doctrines of grace and Reformed theology.', + keywords = 'reformed theology, doctrines of grace, christianity, calvinism, theology', + image = '/images/og-default.jpg', + url = 'https://confessionsofgrace.com', + type = 'website' +}) => { + const siteTitle = title === 'Confessions of Grace' + ? 'Confessions of Grace | Reformed Theology Blog' + : `${title} | Confessions of Grace`; + + return ( + + {siteTitle} + + + + + + {/* Open Graph / Facebook */} + + + + + + + {/* Twitter */} + + + + + + + ); +}; + +export default Meta; \ No newline at end of file diff --git a/src/components/Pagination.tsx b/src/components/Pagination.tsx new file mode 100644 index 0000000..024aa97 --- /dev/null +++ b/src/components/Pagination.tsx @@ -0,0 +1,113 @@ +import React from 'react'; +import Link from 'next/link'; + +interface PaginationProps { + currentPage: number; + totalPages: number; + basePath: string; +} + +const Pagination: React.FC = ({ + currentPage, + totalPages, + basePath +}) => { + // Generate page numbers to display + const getPageNumbers = () => { + // Always show first and last page + // Show 2 pages before and after current page + const pageNumbers = new Set(); + + // Add current page + pageNumbers.add(currentPage); + + // Add adjacent pages + for (let i = Math.max(1, currentPage - 2); i <= Math.min(totalPages, currentPage + 2); i++) { + pageNumbers.add(i); + } + + // Always add first and last page + pageNumbers.add(1); + pageNumbers.add(totalPages); + + // Convert to array and sort + return Array.from(pageNumbers).sort((a, b) => a - b); + }; + + const pageNumbers = getPageNumbers(); + + // Generate link for a page number + const getPageLink = (pageNum: number) => { + if (pageNum === 1) { + return basePath; + } + return `${basePath}/page/${pageNum}`; + }; + + return ( + + ); +}; + +export default Pagination; \ No newline at end of file diff --git a/src/components/PostCard.tsx b/src/components/PostCard.tsx new file mode 100644 index 0000000..fb43d2d --- /dev/null +++ b/src/components/PostCard.tsx @@ -0,0 +1,69 @@ +import React from 'react'; +import Link from 'next/link'; +import Image from 'next/image'; +import { format } from 'date-fns'; +import { PostMetadata } from '@/types'; + +interface PostCardProps { + post: PostMetadata; +} + +const PostCard: React.FC = ({ post }) => { + return ( +
+ {post.coverImage && ( +
+ {post.title} +
+ )} +

+ + {post.title} + +

+
+ {post.author} + + +
+

{post.excerpt}

+
+ {post.tags.map(tag => ( + + {tag} + + ))} +
+ + Read more + + + + +
+ ); +}; + +export default PostCard; \ No newline at end of file diff --git a/src/components/SearchBar.tsx b/src/components/SearchBar.tsx new file mode 100644 index 0000000..4600222 --- /dev/null +++ b/src/components/SearchBar.tsx @@ -0,0 +1,48 @@ +import React, { useState } from 'react'; +import { useRouter } from 'next/router'; + +const SearchBar: React.FC = () => { + const [searchQuery, setSearchQuery] = useState(''); + const router = useRouter(); + + const handleSubmit = (e: React.FormEvent) => { + e.preventDefault(); + if (searchQuery.trim()) { + router.push(`/search?q=${encodeURIComponent(searchQuery.trim())}`); + } + }; + + return ( +
+ setSearchQuery(e.target.value)} + className="w-full px-4 py-2 pl-10 pr-4 rounded-md border border-primary-200 focus:outline-none focus:ring-2 focus:ring-accent focus:border-transparent" + /> + +
+ ); +}; + +export default SearchBar; \ No newline at end of file diff --git a/src/components/ShareButtons.tsx b/src/components/ShareButtons.tsx new file mode 100644 index 0000000..c0635bf --- /dev/null +++ b/src/components/ShareButtons.tsx @@ -0,0 +1,118 @@ +import React from 'react'; + +interface ShareButtonsProps { + url: string; + title: string; + description?: string; +} + +const ShareButtons: React.FC = ({ url, title, description = '' }) => { + // Encode parameters for sharing URLs + const encodedUrl = encodeURIComponent(url); + const encodedTitle = encodeURIComponent(title); + const encodedDescription = encodeURIComponent(description); + + // Generate sharing URLs + const facebookUrl = `https://www.facebook.com/sharer/sharer.php?u=${encodedUrl}`; + const twitterUrl = `https://twitter.com/intent/tweet?url=${encodedUrl}&text=${encodedTitle}`; + const linkedinUrl = `https://www.linkedin.com/sharing/share-offsite/?url=${encodedUrl}`; + const emailUrl = `mailto:?subject=${encodedTitle}&body=${encodedDescription}%0A%0A${encodedUrl}`; + + return ( +
+ Share: + + {/* Facebook */} + + + + + {/* Twitter */} + + + + + {/* LinkedIn */} + + + + + {/* Email */} + + + +
+ ); +}; + +export default ShareButtons; \ No newline at end of file diff --git a/src/components/Sidebar.tsx b/src/components/Sidebar.tsx new file mode 100644 index 0000000..54d47da --- /dev/null +++ b/src/components/Sidebar.tsx @@ -0,0 +1,96 @@ +import React from 'react'; +import Link from 'next/link'; +import TagList from './TagList'; + +interface SidebarProps { + recentPosts: Array<{ + id: string; + title: string; + date: string; + }>; + tags?: Array<{ + tag: string; + count: number; + }>; +} + +const Sidebar: React.FC = ({ recentPosts, tags = [] }) => { + return ( + + ); +}; + +export default Sidebar; \ No newline at end of file diff --git a/src/components/TagList.tsx b/src/components/TagList.tsx new file mode 100644 index 0000000..de390cf --- /dev/null +++ b/src/components/TagList.tsx @@ -0,0 +1,38 @@ +import React from 'react'; +import Link from 'next/link'; + +interface TagListProps { + className?: string; + limit?: number; + tags?: Array<{ + tag: string; + count: number; + }>; +} + +const TagList: React.FC = ({ className = '', limit, tags = [] }) => { + // Sort tags by count (descending) + const sortedTags = [...tags].sort((a, b) => b.count - a.count); + + // Apply limit if provided + const tagsToShow = limit ? sortedTags.slice(0, limit) : sortedTags; + + return ( +
+ {tagsToShow.map(({ tag, count }) => ( + + {tag} + + {count} + + + ))} +
+ ); +}; + +export default TagList; \ No newline at end of file diff --git a/src/lib/markdown.ts b/src/lib/markdown.ts new file mode 100644 index 0000000..bc17315 --- /dev/null +++ b/src/lib/markdown.ts @@ -0,0 +1,114 @@ +import fs from 'fs'; +import path from 'path'; +import matter from 'gray-matter'; +import { remark } from 'remark'; +import html from 'remark-html'; +import { PostData, PostMetadata } from '@/types'; + +// Make sure this is only used on the server side +const postsDirectory = path.join(process.cwd(), 'src/posts'); + +export function getSortedPostsData(): PostMetadata[] { + // Ensure we only run this on the server + if (typeof window === 'undefined') { + // Get file names under /posts + const fileNames = fs.readdirSync(postsDirectory); + const allPostsData = fileNames.map((fileName) => { + // Remove ".md" from file name to get id + const id = fileName.replace(/\.md$/, ''); + + // Read markdown file as string + const fullPath = path.join(postsDirectory, fileName); + const fileContents = fs.readFileSync(fullPath, 'utf8'); + + // Use gray-matter to parse the post metadata section + const matterResult = matter(fileContents); + + // Combine the data with the id + return { + id, + title: matterResult.data.title || '', + date: matterResult.data.date || '', + excerpt: matterResult.data.excerpt || '', + author: matterResult.data.author || '', + tags: matterResult.data.tags || [], + coverImage: matterResult.data.coverImage || undefined, + } as PostMetadata; + }); + + // Sort posts by date + return allPostsData.sort((a, b) => { + if (a.date < b.date) { + return 1; + } else { + return -1; + } + }); + } + + // Return empty array if running on client side + return []; +} + +export function getAllPostIds() { + // Ensure we only run this on the server + if (typeof window === 'undefined') { + const fileNames = fs.readdirSync(postsDirectory); + + return fileNames.map((fileName) => { + return { + params: { + id: fileName.replace(/\.md$/, ''), + }, + }; + }); + } + + // Return empty array if running on client side + return []; +} + +export async function getPostData(id: string): Promise { + // Ensure we only run this on the server + if (typeof window === 'undefined') { + const fullPath = path.join(postsDirectory, `${id}.md`); + const fileContents = fs.readFileSync(fullPath, 'utf8'); + + // Use gray-matter to parse the post metadata section + const matterResult = matter(fileContents); + + // Use remark to convert markdown into HTML string + const processedContent = await remark() + .use(html, { sanitize: false }) + .process(matterResult.content); + const contentHtml = processedContent.toString(); + + // Combine the data with the id and contentHtml + return { + id, + content: contentHtml, + title: matterResult.data.title || '', + date: matterResult.data.date || '', + excerpt: matterResult.data.excerpt || '', + author: matterResult.data.author || '', + tags: matterResult.data.tags || [], + coverImage: matterResult.data.coverImage || undefined, + }; + } + + // Return empty object if running on client side (should never happen in practice) + return { + id: '', + content: '', + title: '', + date: '', + excerpt: '', + author: '', + tags: [], + }; +} + +export function getPostsByTag(tag: string): PostMetadata[] { + const allPosts = getSortedPostsData(); + return allPosts.filter(post => post.tags.includes(tag)); +} \ No newline at end of file diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx new file mode 100644 index 0000000..3d5b661 --- /dev/null +++ b/src/pages/_app.tsx @@ -0,0 +1,6 @@ +import '@/styles/globals.css'; +import type { AppProps } from 'next/app'; + +export default function App({ Component, pageProps }: AppProps) { + return ; +} \ No newline at end of file diff --git a/src/pages/about.tsx b/src/pages/about.tsx new file mode 100644 index 0000000..fec8d60 --- /dev/null +++ b/src/pages/about.tsx @@ -0,0 +1,74 @@ +import React from 'react'; +import Layout from '@/components/Layout'; + +const About: React.FC = () => { + return ( + +
+

About

+ +
+

Confessions of Grace

+

+ Welcome to Confessions of Grace, a blog dedicated to exploring the riches of Reformed theology + and the doctrines of grace. Our aim is to articulate timeless biblical truths in a clear, + accessible manner, helping believers understand the depth and beauty of God's sovereign grace. +

+ +

Our Vision

+

+ In an age of theological confusion and spiritual relativism, we seek to provide content + that is firmly rooted in Scripture, historically informed, and pastorally sensitive. + We believe that sound doctrine leads to doxology, that theology properly understood + results in worship and wonder at the character and works of God. +

+ +

What We Believe

+

+ We stand in the tradition of the Protestant Reformation, affirming the five "solas": +

+
    +
  • Sola Scriptura — Scripture Alone
  • +
  • Sola Fide — Faith Alone
  • +
  • Sola Gratia — Grace Alone
  • +
  • Solus Christus — Christ Alone
  • +
  • Soli Deo Gloria — Glory to God Alone
  • +
+

+ We affirm the doctrines of grace as articulated in the historic Reformed confessions, + including the Westminster Standards, the Three Forms of Unity, and the 1689 London + Baptist Confession of Faith. +

+ +
+ "For from him and through him and to him are all things. To him be glory forever. Amen." +
— Romans 11:36 +
+
+ +
+

About the Author

+
+
+
+ [Author Photo] +
+
+
+

+ [Insert author bio here. Share your background, education, ministry experience, + and what led you to start this blog. Discuss your passion for Reformed theology + and your goals for this website.] +

+

+ Feel free to reach out through the contact form or connect on social media. +

+
+
+
+
+
+ ); +}; + +export default About; \ No newline at end of file diff --git a/src/pages/archive.tsx b/src/pages/archive.tsx new file mode 100644 index 0000000..6eace2d --- /dev/null +++ b/src/pages/archive.tsx @@ -0,0 +1,87 @@ +import React from 'react'; +import { GetStaticProps } from 'next'; +import Link from 'next/link'; +import { format } from 'date-fns'; +import Layout from '@/components/Layout'; +import { getSortedPostsData } from '@/lib/markdown'; +import { PostMetadata } from '@/types'; + +interface ArchiveProps { + posts: PostMetadata[]; + years: number[]; +} + +const Archive: React.FC = ({ posts, years }) => { + return ( + +
+

Archive

+ + {years.map(year => ( +
+

{year}

+
    + {posts + .filter(post => new Date(post.date).getFullYear() === year) + .map(post => ( +
  • +
    +
    +

    + + {post.title} + +

    +
    + {post.author} + + +
    +

    {post.excerpt}

    +
    +
    + + Read post + +
    +
    +
    + {post.tags.map(tag => ( + + {tag} + + ))} +
    +
  • + ))} +
+
+ ))} +
+
+ ); +}; + +export const getStaticProps: GetStaticProps = async () => { + const posts = getSortedPostsData(); + + // Extract unique years from post dates + const years = Array.from(new Set( + posts.map(post => new Date(post.date).getFullYear()) + )).sort((a, b) => b - a); // Sort years in descending order + + return { + props: { + posts, + years, + }, + }; +}; + +export default Archive; \ No newline at end of file diff --git a/src/pages/contact.tsx b/src/pages/contact.tsx new file mode 100644 index 0000000..026d873 --- /dev/null +++ b/src/pages/contact.tsx @@ -0,0 +1,206 @@ +import React, { useState } from 'react'; +import Layout from '@/components/Layout'; + +const Contact: React.FC = () => { + const [name, setName] = useState(''); + const [email, setEmail] = useState(''); + const [subject, setSubject] = useState(''); + const [message, setMessage] = useState(''); + const [isSubmitting, setIsSubmitting] = useState(false); + const [isSubmitted, setIsSubmitted] = useState(false); + const [error, setError] = useState(null); + + const handleSubmit = async (e: React.FormEvent) => { + e.preventDefault(); + + // Basic validation + if (!name.trim() || !email.trim() || !subject.trim() || !message.trim()) { + setError('All fields are required'); + return; + } + + setIsSubmitting(true); + setError(null); + + try { + // In a real implementation, you would send this data to your API + // For now, we'll just simulate a successful submission + await new Promise(resolve => setTimeout(resolve, 1000)); + + // Clear form and show success message + setName(''); + setEmail(''); + setSubject(''); + setMessage(''); + setIsSubmitted(true); + setIsSubmitting(false); + } catch (err) { + setError('Something went wrong. Please try again later.'); + setIsSubmitting(false); + } + }; + + return ( + +
+

Contact

+ +
+

+ Have questions, comments, or suggestions? We'd love to hear from you! + Use the form below to reach out, and we'll get back to you as soon as possible. +

+ + {isSubmitted ? ( +
+

Thank You!

+

Your message has been sent successfully. We'll respond to you as soon as possible.

+
+ ) : ( + <> + {error && ( +
+ {error} +
+ )} + +
+
+
+ + setName(e.target.value)} + className="w-full px-4 py-2 border border-primary-300 rounded-md focus:outline-none focus:ring-2 focus:ring-accent focus:border-transparent" + required + /> +
+
+ + setEmail(e.target.value)} + className="w-full px-4 py-2 border border-primary-300 rounded-md focus:outline-none focus:ring-2 focus:ring-accent focus:border-transparent" + required + /> +
+
+ +
+ + setSubject(e.target.value)} + className="w-full px-4 py-2 border border-primary-300 rounded-md focus:outline-none focus:ring-2 focus:ring-accent focus:border-transparent" + required + /> +
+ +
+ + +
+ + +
+ + )} +
+ +
+

Other Ways to Connect

+ +
+
+

Follow

+

+ Stay updated with our latest content on social media. +

+ +
+ +
+

Subscribe

+

+ Get new posts delivered to your inbox. +

+
+ + +
+
+
+
+
+
+ ); +}; + +export default Contact; \ No newline at end of file diff --git a/src/pages/index.tsx b/src/pages/index.tsx new file mode 100644 index 0000000..e09bee3 --- /dev/null +++ b/src/pages/index.tsx @@ -0,0 +1,126 @@ +import React from 'react'; +import { GetStaticProps } from 'next'; +import Layout from '@/components/Layout'; +import PostCard from '@/components/PostCard'; +import Sidebar from '@/components/Sidebar'; +import { getSortedPostsData } from '@/lib/markdown'; +import { PostMetadata } from '@/types'; + +interface HomeProps { + posts: PostMetadata[]; + recentPosts: Array<{ + id: string; + title: string; + date: string; + }>; + tags: Array<{ + tag: string; + count: number; + }>; +} + +const Home: React.FC = ({ posts, recentPosts, tags }) => { + return ( + +
+

Confessions of Grace

+

+ Exploring the doctrines of grace and the richness of Reformed theology. +

+
+ +
+
+ {posts.length > 0 && ( +
+
+
+
+ {posts[0].coverImage ? ( + {posts[0].title} + ) : ( +
+ CG +
+ )} +
+
+
Latest Post
+ + {posts[0].title} + +

+ {posts[0].excerpt} +

+ +
+
+
+
+ )} + +
+

Recent Posts

+
+ {posts.slice(1).map((post) => ( + + ))} +
+
+ + +
+ +
+ +
+
+
+ ); +}; + +export const getStaticProps: GetStaticProps = async () => { + const posts = getSortedPostsData(); + + // Create tag data + const allTags = posts.flatMap(post => post.tags); + const tagCounts: Record = {}; + + allTags.forEach(tag => { + tagCounts[tag] = (tagCounts[tag] || 0) + 1; + }); + + const tags = Object.entries(tagCounts).map(([tag, count]) => ({ + tag, + count + })); + + return { + props: { + posts, + recentPosts: posts.slice(0, 5).map(post => ({ + id: post.id, + title: post.title, + date: post.date + })), + tags + }, + }; +}; + +export default Home; \ No newline at end of file diff --git a/src/pages/posts/[id].tsx b/src/pages/posts/[id].tsx new file mode 100644 index 0000000..74b0a5c --- /dev/null +++ b/src/pages/posts/[id].tsx @@ -0,0 +1,149 @@ +import React from 'react'; +import { GetStaticProps, GetStaticPaths } from 'next'; +import Image from 'next/image'; +import Link from 'next/link'; +import { format } from 'date-fns'; +import Layout from '@/components/Layout'; +import Meta from '@/components/Meta'; +import ShareButtons from '@/components/ShareButtons'; +import CommentSection from '@/components/CommentSection'; +import { getAllPostIds, getPostData, getSortedPostsData } from '@/lib/markdown'; +import { PostData, PostMetadata } from '@/types'; + +interface PostProps { + post: PostData; + morePosts: PostMetadata[]; +} + +const Post: React.FC = ({ post, morePosts }) => { + const postUrl = `https://confessionsofgrace.com/posts/${post.id}`; + + return ( + + + +
+
+

{post.title}

+
+ {post.author} + + +
+ {post.coverImage && ( +
+ {post.title} +
+ )} +
+ {post.tags.map(tag => ( + + {tag} + + ))} +
+
+ +
+ +
+ +
+ +
+

More Posts

+
+ {morePosts.slice(0, 2).map(post => ( +
+

+ + {post.title} + +

+

+ {format(new Date(post.date), 'MMMM d, yyyy')} +

+

{post.excerpt}

+
+ ))} +
+
+ + + +
+ + + + + Back to all posts + +
+
+
+ ); +}; + +export const getStaticPaths: GetStaticPaths = async () => { + const paths = getAllPostIds(); + return { + paths, + fallback: false, + }; +}; + +export const getStaticProps: GetStaticProps = async ({ params }) => { + const post = await getPostData(params?.id as string); + const allPosts = getSortedPostsData(); + + // Filter out the current post and get a few related posts (by tags) + const otherPosts = allPosts.filter(p => p.id !== post.id); + + // Find posts with matching tags + const relatedPosts = otherPosts + .filter(p => p.tags.some(tag => post.tags.includes(tag))) + .slice(0, 2); + + // If we don't have enough related posts, add recent posts + const morePosts = relatedPosts.length < 2 + ? [...relatedPosts, ...otherPosts.filter(p => !relatedPosts.includes(p))].slice(0, 2) + : relatedPosts; + + return { + props: { + post, + morePosts, + }, + }; +}; + +export default Post; \ No newline at end of file diff --git a/src/pages/resources.tsx b/src/pages/resources.tsx new file mode 100644 index 0000000..f453a3d --- /dev/null +++ b/src/pages/resources.tsx @@ -0,0 +1,128 @@ +import React from 'react'; +import Layout from '@/components/Layout'; + +interface Resource { + title: string; + author: string; + description: string; + link?: string; + category: string; +} + +const Resources: React.FC = () => { + const resources: Resource[] = [ + { + title: "Institutes of the Christian Religion", + author: "John Calvin", + description: "Calvin's magnum opus on systematic theology, covering the doctrines of God, man, salvation, and the church.", + category: "Books" + }, + { + title: "The Bondage of the Will", + author: "Martin Luther", + description: "Luther's defense of the doctrine of total depravity and God's sovereignty in salvation.", + category: "Books" + }, + { + title: "Chosen by God", + author: "R.C. Sproul", + description: "A accessible introduction to the doctrine of predestination.", + category: "Books" + }, + { + title: "The Westminster Confession of Faith", + author: "Westminster Assembly", + description: "A historic Reformed confession of faith that remains influential today.", + link: "https://www.pcaac.org/bco/westminster-confession/", + category: "Confessions" + }, + { + title: "The Heidelberg Catechism", + author: "Zacharias Ursinus & Caspar Olevianus", + description: "A warm, pastoral Reformed catechism organized around comfort in Christ.", + link: "https://www.ligonier.org/learn/articles/heidelberg-catechism", + category: "Confessions" + }, + { + title: "Ligonier Ministries", + author: "Founded by R.C. Sproul", + description: "A ministry dedicated to helping Christians know what they believe, why they believe it, how to live it, and how to share it.", + link: "https://www.ligonier.org/", + category: "Websites" + }, + { + title: "Monergism", + author: "", + description: "A comprehensive resource for Reformed theology, including articles, books, and audio resources.", + link: "https://www.monergism.com/", + category: "Websites" + } + ]; + +const categories = Array.from(new Set(resources.map(resource => resource.category))); + + return ( + +
+

Reformed Resources

+ +

+ This is a curated collection of resources related to Reformed theology and the doctrines of grace. + These books, confessions, and websites have been formative in my own theological journey and + are recommended for those seeking to deepen their understanding of Reformed thought. +

+ + {categories.map(category => ( +
+

{category}

+
+ {resources + .filter(resource => resource.category === category) + .map((resource, index) => ( +
+

{resource.title}

+ {resource.author && ( +

by {resource.author}

+ )} +

{resource.description}

+ {resource.link && ( + + Visit Resource + + + + + )} +
+ ))} +
+
+ ))} + +
+

Suggest a Resource

+

+ Do you have a resource suggestion that would be valuable for readers of this blog? + Please use the contact form to share your recommendations. +

+ + Contact + +
+
+
+ ); +}; + +export default Resources; \ No newline at end of file diff --git a/src/pages/search.tsx b/src/pages/search.tsx new file mode 100644 index 0000000..fb17137 --- /dev/null +++ b/src/pages/search.tsx @@ -0,0 +1,94 @@ +import React, { useState, useEffect } from 'react'; +import { GetStaticProps } from 'next'; +import { useRouter } from 'next/router'; +import Layout from '@/components/Layout'; +import PostCard from '@/components/PostCard'; +import SearchBar from '@/components/SearchBar'; +import { getSortedPostsData } from '@/lib/markdown'; +import { PostMetadata } from '@/types'; + +interface SearchPageProps { + allPosts: PostMetadata[]; +} + +const SearchPage: React.FC = ({ allPosts }) => { + const router = useRouter(); + const { q: query } = router.query; + const [searchResults, setSearchResults] = useState([]); + + useEffect(() => { + if (typeof query !== 'string' || !query.trim()) { + setSearchResults([]); + return; + } + + const searchTerms = query.toLowerCase().trim().split(/\s+/); + + const filteredPosts = allPosts.filter(post => { + const titleMatch = searchTerms.some(term => + post.title.toLowerCase().includes(term) + ); + + const excerptMatch = searchTerms.some(term => + post.excerpt.toLowerCase().includes(term) + ); + + const tagMatch = post.tags.some(tag => + searchTerms.some(term => tag.toLowerCase().includes(term)) + ); + + return titleMatch || excerptMatch || tagMatch; + }); + + setSearchResults(filteredPosts); + }, [query, allPosts]); + + return ( + +
+

Search Results

+ +
+ +
+ + {typeof query === 'string' && query.trim() ? ( + <> +

+ {searchResults.length} {searchResults.length === 1 ? 'result' : 'results'} for "{query}" +

+ + {searchResults.length > 0 ? ( +
+ {searchResults.map(post => ( + + ))} +
+ ) : ( +
+

No results found for "{query}"

+

Try using different keywords or browse all posts.

+
+ )} + + ) : ( +
+

Enter a search term to find posts

+
+ )} +
+
+ ); +}; + +export const getStaticProps: GetStaticProps = async () => { + const allPosts = getSortedPostsData(); + + return { + props: { + allPosts, + }, + }; +}; + +export default SearchPage; \ No newline at end of file diff --git a/src/pages/tags/[tag].tsx b/src/pages/tags/[tag].tsx new file mode 100644 index 0000000..9f364dd --- /dev/null +++ b/src/pages/tags/[tag].tsx @@ -0,0 +1,66 @@ +import React from 'react'; +import { GetStaticProps, GetStaticPaths } from 'next'; +import Layout from '@/components/Layout'; +import PostCard from '@/components/PostCard'; +import { getSortedPostsData, getPostsByTag } from '@/lib/markdown'; +import { PostMetadata } from '@/types'; + +interface TagPageProps { + posts: PostMetadata[]; + tag: string; +} + +const TagPage: React.FC = ({ posts, tag }) => { + return ( + +
+
+

Tag: {tag}

+

+ {posts.length} {posts.length === 1 ? 'post' : 'posts'} tagged with "{tag}" +

+
+ + {posts.length > 0 ? ( +
+ {posts.map((post) => ( + + ))} +
+ ) : ( +
+

No posts found with this tag.

+
+ )} +
+
+ ); +}; + +export const getStaticPaths: GetStaticPaths = async () => { + const posts = getSortedPostsData(); + const tags = Array.from(new Set(posts.flatMap(post => post.tags))); + + const paths = tags.map((tag) => ({ + params: { tag }, + })); + + return { + paths, + fallback: false, + }; +}; + +export const getStaticProps: GetStaticProps = async ({ params }) => { + const tag = params?.tag as string; + const posts = getPostsByTag(tag); + + return { + props: { + posts, + tag, + }, + }; +}; + +export default TagPage; \ No newline at end of file diff --git a/src/pages/tags/index.tsx b/src/pages/tags/index.tsx new file mode 100644 index 0000000..42aeafe --- /dev/null +++ b/src/pages/tags/index.tsx @@ -0,0 +1,72 @@ +import React from 'react'; +import { GetStaticProps } from 'next'; +import Link from 'next/link'; +import Layout from '@/components/Layout'; +import { getSortedPostsData } from '@/lib/markdown'; +import { PostMetadata } from '@/types'; + +interface TagsPageProps { + tags: { + name: string; + count: number; + }[]; +} + +const TagsPage: React.FC = ({ tags }) => { + return ( + +
+

Browse by Tag

+ +
+
+ {tags.map(tag => ( + + {tag.name} + + {tag.count} + + + ))} +
+
+ +
+ + View All Posts + +
+
+
+ ); +}; + +export const getStaticProps: GetStaticProps = async () => { + const posts = getSortedPostsData(); + + // Extract all tags from posts + const allTags = posts.flatMap(post => post.tags); + + // Count occurrences of each tag + const tagCounts = allTags.reduce((acc, tag) => { + acc[tag] = (acc[tag] || 0) + 1; + return acc; + }, {} as Record); + + // Convert to array and sort alphabetically + const tags = Object.entries(tagCounts) + .map(([name, count]) => ({ name, count })) + .sort((a, b) => a.name.localeCompare(b.name)); + + return { + props: { + tags, + }, + }; +}; + +export default TagsPage; \ No newline at end of file diff --git a/src/posts/faith-alone.md b/src/posts/faith-alone.md new file mode 100644 index 0000000..b0b5b84 --- /dev/null +++ b/src/posts/faith-alone.md @@ -0,0 +1,124 @@ +--- +title: "Sola Fide: Justification by Faith Alone" +date: "2025-02-15" +author: "Austin Bennett" +excerpt: "Understanding the Reformation doctrine of justification by faith alone and its central importance to the gospel." +tags: ["Sola Fide", "Justification", "Reformation", "Doctrine"] +coverImage: "/images/faith-alone.svg" +--- + +# Sola Fide: Justification by Faith Alone + +> "For we hold that one is justified by faith apart from works of the law." — Romans 3:28 + +## Introduction + +At the heart of the Protestant Reformation stands the recovery of a profound biblical truth: justification by faith alone (*sola fide*). This doctrine addresses the most fundamental question any human can ask: "How can a sinner be right with a holy God?" + +The Reformers' answer, drawn from Scripture, was revolutionary in its day and remains life-changing in ours: we are justified—declared righteous before God—through faith alone in Christ alone, apart from any works we might perform. + +## The Meaning of Justification + +Before exploring faith's role in justification, we must understand what justification itself means. The term comes from the legal sphere and refers to a declaration of righteousness. When God justifies sinners, He declares them righteous in His sight. + +Importantly, justification is not the same as sanctification. While sanctification is the gradual process of becoming more like Christ, justification is an instantaneous legal declaration. As the Reformers often put it, justification is not God making us righteous (that's sanctification) but declaring us righteous. + +## Faith as the Instrument of Justification + +Scripture consistently teaches that faith is the instrument through which we receive justification: + +- Romans 5:1: "Therefore, since we have been justified by faith, we have peace with God through our Lord Jesus Christ." +- Galatians 2:16: "Yet we know that a person is not justified by works of the law but through faith in Jesus Christ." +- Philippians 3:9: "[That I may] be found in him, not having a righteousness of my own that comes from the law, but that which comes through faith in Christ." + +But what exactly is this justifying faith? The Reformers identified three essential components: + +1. **Knowledge (notitia)**: Faith involves intellectual knowledge of the gospel message. +2. **Assent (assensus)**: Faith includes intellectual agreement that the gospel is true. +3. **Trust (fiducia)**: Most importantly, faith entails personal trust in Christ for salvation. + +True saving faith, then, is not merely intellectual assent to facts about Jesus but personal reliance on Him and His finished work. + +## The "Alone" in Faith Alone + +The word "alone" (Latin: *sola*) in "faith alone" is crucial. It means that nothing else serves as the instrument of justification—not works, not sacraments, not the church, but faith only. + +This doesn't mean that faith exists in isolation. As the Reformers emphasized, justifying faith is never alone in the person justified—it always produces good works. As Martin Luther put it, "We are saved by faith alone, but the faith that saves is never alone." + +The distinction is between the ground of justification (Christ's righteousness) and the evidence of justification (our works). Works are the necessary result of justification, not its cause or even its instrument. + +## Historical Context + +The doctrine of justification by faith alone emerged in stark contrast to the medieval Catholic understanding, which viewed justification as a process involving both faith and works. For medieval theologians, justification included both the forgiveness of sins and the infusion of righteousness, making it virtually synonymous with sanctification. + +Martin Luther's breakthrough came through his study of Romans 1:17: "For in it [the gospel] the righteousness of God is revealed from faith for faith, as it is written, 'The righteous shall live by faith.'" Luther realized that the "righteousness of God" was not something we had to achieve but something God freely gives to those who believe. + +This insight changed everything. No longer was salvation a matter of accumulating merit through good works. Instead, it was received as a gift through faith in Christ, whose perfect righteousness is credited to believers. + +## Biblical Case for Faith Alone + +The biblical argument for justification by faith alone rests on several foundations: + +### 1. The Testimony of Paul + +Paul explicitly contrasts faith and works as means of justification: + +"For by works of the law no human being will be justified in his sight, since through the law comes knowledge of sin. But now the righteousness of God has been manifested apart from the law... the righteousness of God through faith in Jesus Christ for all who believe." (Romans 3:20-22) + +### 2. The Example of Abraham + +In Romans 4, Paul points to Abraham as the paradigmatic example of justification by faith: + +"For what does the Scripture say? 'Abraham believed God, and it was counted to him as righteousness.'" (Romans 4:3) + +Significantly, Paul notes that Abraham was justified before his circumcision, proving that justification doesn't depend on religious rituals. + +### 3. The Nature of Faith and Works + +Faith and works function differently in relation to justification. Faith is receptive—it receives Christ's righteousness as a gift. Works are active—they attempt to earn God's favor. The two principles are mutually exclusive. As Paul writes in Romans 4:4-5: + +"Now to the one who works, his wages are not counted as a gift but as his due. And to the one who does not work but believes in him who justifies the ungodly, his faith is counted as righteousness." + +## Implications of Faith Alone + +The doctrine of justification by faith alone carries profound implications: + +### 1. Assurance + +If justification depends on our works, we can never have assurance of salvation, since we can never be sure we've done enough. But if justification comes through faith alone in Christ alone, we can have confidence based on His finished work rather than our imperfect efforts. + +### 2. Freedom + +The gospel liberates us from the crushing burden of trying to earn God's favor. We're freed to serve God from gratitude rather than fear. + +### 3. Humility + +When we recognize that justification comes through faith alone, pride becomes impossible. We cannot boast about our salvation, since it's entirely God's gift rather than our achievement. + +### 4. Unity + +Justification by faith alone creates a level playing field. The sophisticated theologian and the simple believer stand justified on exactly the same grounds: faith in Christ. This undermines religious elitism and fosters true spiritual unity. + +## Objections Addressed + +Critics of justification by faith alone often cite James 2:24: "You see that a person is justified by works and not by faith alone." However, this apparent contradiction dissolves when we recognize that Paul and James use the term "justified" differently. + +Paul speaks of justification before God, while James addresses justification before men. James combats a "faith" that is mere intellectual assent without life transformation. He insists that true faith manifests itself in works. This aligns perfectly with the Reformed understanding that while faith alone justifies, the faith that justifies is never alone. + +## Conclusion + +Justification by faith alone remains the heart of the gospel. It reminds us that salvation is God's work from beginning to end—He provides the sacrifice in Christ, and He gives the faith through which we receive Christ's righteousness. + +In an age of achievement and self-help, this doctrine stands as a radical affirmation that we contribute nothing to our salvation except the sin that makes it necessary. And in that truth, paradoxically, we find our greatest hope. + +As J.I. Packer eloquently summarized: + +"The way to be right with God and to be justified is to trust in Christ alone as the One who died, bearing our sin and curse upon Himself, to bring us to God. ... All who put their faith in Christ can know that they are justified, now and forever." + +--- + +**Questions for Reflection:** + +1. How does understanding justification by faith alone affect your daily walk with God? +2. In what subtle ways might you still be tempted to base your standing with God on your performance? +3. How would you explain the difference between "faith alone" and "faith that is alone" to someone new to Reformed theology? \ No newline at end of file diff --git a/src/posts/fourfold.md b/src/posts/fourfold.md new file mode 100644 index 0000000..ec22f3f --- /dev/null +++ b/src/posts/fourfold.md @@ -0,0 +1,40 @@ +--- +title: "Frank Turek & The Fourfold State of Man" +date: "2025-03-18" +author: "@Auggie2LBCF" +excerpt: "The 'contradiction' that Geisler suggests, is not a contradiction but an incomplete understanding of the abilities of Adam, the abilities of Adam's offspring, and the abilities of those who receive God's abundant provision of grace, who are given the responsibility to freely offer that abundant provision of grace to all those who are Adam's offspring." +tags: ["#sin", "#calvinism", "creation", "fourfold"] +coverImage: "/images/thomas-boston.jpg" +--- + +If you are looking for a definitive answer to the question "Where did Sin Come From?" please press the "close tab" button, it is usually marked with an "x" on your browser or perhaps you are on a phone and need to hit the little box first. Either way the origin of sin is not clearly presented in the Bible. + +I was scrolling throu[]()gh Instagram Reels one day (also known by other names such as "a bad idea" and "a waste of time") and happened on a [video by Frank Turek](https://youtube.com/shorts/qdiW5dtOkgo?si=YuiUgg5uZwkzcuD3). In it he is doing a form of Q&A at what looks to be a university. And what it said really took me off guard and made me think (which rarely happens when scrolling through any short video platform). Here is the transcript of that video: + +> **Q:** "My in-laws are Calvinist. I want to know what the main out of the Five Points, what is the main thing that's, for like of a better term, wrong what's wrong about Calvinism?" +> +> **Frank Turek:** "See, the ultimate problem with Calvinism, hard five point Calvinism in my view, is it makes the world a sham. Because we really don't have a free choice, but God is telling us that we ought to choose him when we can't choose him because he hasn't chosen us at all. And secondly, it makes God the author of evil. In fact, let me give you an example. In a debate that took place 40 years ago at Dallas Theological Seminary, it was between Norman Geisler, my mentor, and a guy by name of John Gerstner. At one point, Geisler turned to Gerstner and he said, 'Does man have free will?' And Gerstner said, 'Yes, man has free will to do what he desires, but God gives him the desire of his heart.' So Geisler said, 'Who gave Adam the desire to sin?' and Gerstner said, 'Mystery.' And Geisler said, 'Contradiction.'" + +The debate that Turek mentions is not recorded anywhere but in Geisler's book *Chosen But Free*. + +> Many years ago when the late John Gerstner and I taught together at the same institution, I invited him into one of my classes to discuss free will. Being what I have called an extreme Calvinist, he defended Jonathan Edwards' view that the human will is moved by the strongest desire. I will never forget how he responded when I pushed the logic all the way back to Lucifer. I was stunned to hear an otherwise very rational man respond to my question "Who gave Lucifer the desire to rebel against God?" by throwing up his hands and crying, "Mystery, mystery, a great mystery!" I answered, "No, it is not a great mystery; it is a grave contradiction." And this is because, on the premises of extreme Calvinism, only God could have given Lucifer the desire to rebel against God, since there is no self-determined free choice and Lucifer had no evil nature. But if this is so, then logically it must have been God who gave him the desire to sin. In short, God caused a rebellion against God! Perish the thought! + +The debate that Turek and Geisler mention is presented as a "gotcha" moment that completely and utterly destroys all arguments for Calvinism and should shut up the Cage-Stagers. Cage-Stagers is a term which here means: a person who should be locked in a cage until they can have a civil conversation about Calvinism. However, this is missing the response. And as I have yet to be able to find the response that Gerstner gives, I will write one here. *The "contradiction" that Geisler suggests, is not a contradiction but an incomplete understanding of the abilities of Adam, the abilities of Adam's offspring, and the abilities of those who receive God's abundant provision of grace, who are given the responsibility to freely offer that abundant provision of grace to all those who are Adam's offspring.* + +Abilities is a word which, in the murky and complicated world of theological discourse, refers to a peculiar and somewhat precarious collection of potential actions, much like a rickety ladder balanced precariously over the deep and treacherous chasm of human limitation—in this case, specifically applying to Adam and Eve in their initial state, mankind after their unfortunate fall from grace, believers, and those who have already departed to be with the lord. Thomas Boston refers to these as the fourfold state of man. + +### 1. Man Created (*status integritiatis*) or Primitive Integrity +Man was created in a state of innocence. "This only have I found: God created mankind upright, but they have gone in search of many schemes." (Ecclesiastes 7:29). However, Adam also ate the apple and fell from this upright position, thus cursing all of man. "Therefore, just as sin entered the world through one man, and death through sin, and in this way death came to all people, because all sinned." (Romans 5:12). From these passages we can see that God created Adam with the ability to do upright actions, but with the inclusion of Romans 5:12, we can see that Adam was able to not sin, being upright, or able to sin. Augustine refers to this as *posse peccare, posse non peccare*. + +### 2. Man Fallen (*status corruptionis*) or Entire Depravity +From Adam's sin, death came to all people (Romans 5:12). Each one of us as Adam's offspring are cursed with this death. "As for you, you were dead in your transgressions and sins... All of us also lived among them at one time, gratifying the cravings of our flesh... and were by nature deserving of wrath." (Ephesians 2:1-3). We are dead in our transgressions. We are from birth children of wrath who seek only to gratify the cravings of our flesh. We are unable not to sin (*non posse non peccare*). Regardless of how our actions look to other men, the Bible is clear: "None is righteous, no, not one; no one understands; no one seeks for God. All have turned aside; together they have become worthless; no one does good, not even one." (Rom. 3:10-12). No one does good. + +### 3. Man Redeemed (*status gratiae*) or Begun Recovery +However, in God's curse to Adam and Eve, he also gave them hope for their salvation in the one who would crush the serpent's head. Noah's father Lamech was hoping for the "one who would bring relief" (Genesis 5:29). The one who would bring relief was Christ, who, through his work on Calvary, took the cup of wrath that all deserve and bought his people (1 Corinthians 7:23) into a new creation where we have the ability to not sin (*posse non peccare*). "Therefore, if anyone is in Christ, the new creation has come: The old has gone, the new is here!" (2 Corinthians 5:17). + +### 4. Man Glorified (*status gloriae*) or Consummate Happiness or Misery +However, we still sin. "Not only so, but we ourselves, who have the first fruits of the Spirit, groan inwardly as we wait eagerly for our adoption to sonship, the redemption of our bodies." (Romans 8:23). We will not be fully transformed until we are in Heaven: "we will transform our lowly bodies so that they will be like his glorious body." (Philippians 3:21). + +So, Turek and Geisler misunderstand that Adam was not cursed in the way that we are. All of our desires are for the cravings of our flesh. Calvinism does not teach that God is the author of evil. The Bible teaches that our hearts are worthless and need the Holy Spirit to save us: "he saved us, not because of works done by us in righteousness, but according to his own mercy, by the washing of regeneration and renewal of the Holy Spirit" (Titus 3:5). + +As to Turek's claim that "God is telling us that we ought to choose him when we can't choose him because he hasn't chosen us," he is missing that anyone who wants to choose God will be able to choose him. The Holy Spirit must renew us. It is not a work of our righteousness to choose God but the regeneration of the Holy Spirit through the proclamation of the Gospel. \ No newline at end of file diff --git a/src/posts/grace-alone.md b/src/posts/grace-alone.md new file mode 100644 index 0000000..66d1a24 --- /dev/null +++ b/src/posts/grace-alone.md @@ -0,0 +1,92 @@ +--- +title: "Sola Gratia: Salvation by Grace Alone" +date: "2025-03-15" +author: "Author Name" +excerpt: "Exploring the Reformation principle of salvation by grace alone and its implications for our understanding of God and ourselves." +tags: ["Sola Gratia", "Reformation", "Soteriology", "Doctrine"] +coverImage: "/images/grace-alone.svg" +--- + +# Sola Gratia: Salvation by Grace Alone + +> "For by grace you have been saved through faith. And this is not your own doing; it is the gift of God, not a result of works, so that no one may boast." — Ephesians 2:8-9 + +## Introduction + +Among the five _solas_ of the Reformation, perhaps none more directly confronts human pride than the doctrine of _sola gratia_ — by grace alone. This teaching stands as a powerful reminder that our salvation is entirely a gift, unmerited and unearned, flowing solely from God's boundless mercy and goodness. + +In a culture that celebrates achievement, self-sufficiency, and personal merit, the doctrine of grace alone remains as counter-cultural and necessary today as it was in the 16th century. This post explores the biblical foundations of this doctrine and its implications for our spiritual lives. + +## Biblical Foundations + +The Apostle Paul, writing to the Ephesians, could not be clearer: salvation is "by grace... through faith," and even this faith is "not your own doing" but rather "the gift of God" (Eph. 2:8). The exclusivity of grace is emphasized by the phrase "not a result of works," eliminating any ground for human boasting. + +Throughout Scripture, we find this theme repeated: + +- Romans 3:24 affirms that we are "justified by his grace as a gift, through the redemption that is in Christ Jesus." +- Titus 3:5-7 reminds us that God "saved us, not because of works done by us in righteousness, but according to his own mercy." +- Acts 15:11 declares that "we believe that we will be saved through the grace of the Lord Jesus." + +The cumulative witness of Scripture is that salvation is fundamentally a divine work, not a human achievement. It originates in God's loving choice, not our spiritual performance. + +## Historical Context + +During the medieval period, the Church had developed a complex system of penance, indulgences, and merit that obscured the free nature of God's grace. Salvation was often presented as a cooperative effort between God and humans, with divine grace making salvation possible but human works making it actual. + +Luther, Calvin, and other Reformers recovered the Augustinian emphasis on the necessity and sufficiency of grace. They insisted that salvation is God's work from beginning to end. Luther famously wrote: + +> "This grace of God is a very great, strong, mighty and active thing. It does not lie asleep in the soul. Grace hears, leads, drives, draws, changes, works all in man, and lets itself be distinctly felt and experienced. It is hidden, but its works are evident." + +## Theological Implications + +The doctrine of grace alone carries several important implications: + +### 1. Human Inability + +_Sola gratia_ presupposes human inability to contribute to salvation. The Reformed tradition speaks of "total depravity" — not that humans are as evil as they could be, but rather that sin has affected every aspect of our being, including our will. As Augustine famously prayed: "Command what you will, and grant what you command." + +### 2. Divine Sovereignty + +If salvation is by grace alone, then God must be sovereign in dispensing this grace. The doctrine points to God's freedom in election and predestination, concepts that, while challenging, underscore the gratuitous nature of salvation. + +### 3. Assurance + +When salvation depends entirely on God's grace rather than human performance, believers can have genuine assurance. Our standing before God rests not on our fluctuating obedience but on His unchanging promise. + +## Practical Applications + +Far from being merely theoretical, _sola gratia_ transforms how we live the Christian life: + +### 1. Humility + +Understanding grace alone breeds humility. We recognize that we bring nothing to our salvation — it is entirely God's gift. This undermines spiritual pride and self-righteousness. + +### 2. Gratitude + +When we truly grasp that salvation is by grace alone, gratitude becomes the dominant note in our spiritual lives. We respond to God's gracious gift with thankfulness rather than attempting to earn His favor. + +### 3. Freedom + +The doctrine liberates us from performance-based religion. We serve God not to gain His acceptance but because we already have it in Christ. This transforms obedience from burdensome duty to joyful response. + +### 4. Evangelism + +Grace alone affects how we share the gospel. We offer others not a program of self-improvement but the good news of what God has done in Christ. + +## Conclusion + +In a world of achievement and merit, _sola gratia_ remains a radical, counter-cultural doctrine. It reminds us that the Christian faith is not about what we do for God but about what He has done for us in Christ. + +As J.I. Packer wrote: + +> "Grace is God drawing sinners closer and closer to himself. How does God in grace prosecute this purpose? Not by shielding us from assault by the work, the flesh, and the devil, nor by protecting us from burdensome and frustrating circumstances, not yet by shielding us from troubles created by our own temperament and psychology, but rather by exposing us to all these things, so as to overwhelm us with a sense of our own inadequacy, and to drive us to cling to him more closely." + +May we, like the Reformers before us, recover and rejoice in the biblical truth that salvation is by grace alone. + +--- + +**Questions for Reflection:** + +1. How has understanding God's grace changed your approach to the Christian life? +2. In what ways might you still be tempted to rely on your own spiritual performance rather than God's grace? +3. How does the doctrine of grace alone affect your view of others, particularly those who struggle spiritually? \ No newline at end of file diff --git a/src/posts/sovereignty-of-god.md b/src/posts/sovereignty-of-god.md new file mode 100644 index 0000000..f2dc1d3 --- /dev/null +++ b/src/posts/sovereignty-of-god.md @@ -0,0 +1,112 @@ +--- +title: "The Sovereignty of God in an Age of Uncertainty" +date: "2025-03-01" +author: "Author Name" +excerpt: "Finding comfort and stability in God's sovereign rule over all things during times of personal and global uncertainty." +tags: ["Sovereignty", "Providence", "Theology", "Comfort"] +coverImage: "/images/sovereignty.svg" +--- + +# The Sovereignty of God in an Age of Uncertainty + +> "Our God is in the heavens; he does all that he pleases." — Psalm 115:3 + +In an age characterized by uncertainty—whether economic instability, political polarization, global conflicts, or personal trials—the doctrine of God's sovereignty stands as an anchor for the soul. This foundational biblical truth reminds us that above all the chaos and confusion of our world reigns a God who is absolutely sovereign, whose purposes cannot be thwarted, and whose plans will ultimately prevail. + +## What is Divine Sovereignty? + +Divine sovereignty refers to God's absolute rule over all creation. It means that God is the ultimate authority and is in complete control of everything that happens. Nothing occurs outside His knowledge or permission. As the Westminster Confession eloquently states: + +> "God from all eternity, did, by the most wise and holy counsel of His own will, freely, and unchangeably ordain whatsoever comes to pass; yet so, as thereby neither is God the author of sin, nor is violence offered to the will of the creatures; nor is the liberty or contingency of second causes taken away, but rather established." + +This doctrine encompasses several key truths: + +1. **God's sovereignty is universal** - It extends over all creation, all nations, all history, and all individuals. +2. **God's sovereignty is absolute** - No creature or circumstance can ultimately thwart His will. +3. **God's sovereignty is wise** - His rule is not arbitrary but guided by perfect wisdom. +4. **God's sovereignty is good** - His control is exercised for His glory and the good of His people. + +## Biblical Foundations + +Scripture repeatedly affirms God's sovereign rule: + +- **Over creation**: "In the beginning, God created the heavens and the earth" (Genesis 1:1) +- **Over nations**: "The Most High rules the kingdom of men and gives it to whom he will" (Daniel 4:17) +- **Over individual lives**: "Your eyes saw my unformed substance; in your book were written, every one of them, the days that were formed for me, when as yet there was none of them" (Psalm 139:16) +- **Over salvation**: "Even as he chose us in him before the foundation of the world" (Ephesians 1:4) +- **Over suffering**: "I form light and create darkness; I make well-being and create calamity; I am the LORD, who does all these things" (Isaiah 45:7) + +The Bible portrays a God who is actively involved in all events, working everything "according to the counsel of his will" (Ephesians 1:11). + +## Sovereignty and Human Responsibility + +One of the most profound mysteries in Scripture is the relationship between God's sovereignty and human responsibility. The Bible clearly teaches both: God is completely sovereign, yet humans make real choices for which they are responsible. + +Rather than viewing these as contradictory truths, Reformed theology sees them as complementary. God's sovereignty does not eliminate human choice but rather establishes the context in which meaningful choice can occur. As Augustine put it, "God is not the author of the evil you do, though he is the author of your being while you do it." + +Consider the story of Joseph. His brothers acted wickedly in selling him into slavery, yet Joseph later declared, "You meant evil against me, but God meant it for good" (Genesis 50:20). Both statements are true simultaneously—human evil and divine purpose coexisted in the same events. + +## The Comfort of Divine Sovereignty + +The doctrine of God's sovereignty provides tremendous comfort in times of uncertainty: + +### 1. Assurance of Purpose + +In a seemingly random universe, we can be confident that everything happens for a reason. As Romans 8:28 promises, "We know that for those who love God all things work together for good, for those who are called according to his purpose." + +### 2. Freedom from Anxiety + +Jesus teaches, "Do not be anxious about your life" (Matthew 6:25). This command is grounded in the reality of God's sovereign care. If God controls all things, then anxiety becomes unnecessary. We can trust our Father's wise governance. + +### 3. Courage in Suffering + +Suffering becomes more bearable when we recognize it's not random or meaningless. The sovereignty of God means our pain is purposeful. As C.S. Lewis observed, "God whispers to us in our pleasures, speaks in our consciences, but shouts in our pains. It is his megaphone to rouse a deaf world." + +### 4. Hope in Evangelism + +When sharing the gospel, we're not dependent on our persuasive abilities alone. God is sovereignly drawing people to Himself. As Jesus said, "No one can come to me unless the Father who sent me draws him" (John 6:44). + +## Living Under God's Sovereignty + +How should we live in light of God's sovereignty? + +### 1. Humble Submission + +Recognizing God's sovereignty should lead to humble acceptance of His will, even when we don't understand it. Like Christ in Gethsemane, we pray, "Not my will, but yours, be done" (Luke 22:42). + +### 2. Prayerful Dependence + +Far from making prayer unnecessary, God's sovereignty establishes its foundation. We pray precisely because we know God has the power to act. As the Westminster Shorter Catechism states, "Prayer is an offering up of our desires unto God, for things agreeable to his will." + +### 3. Grateful Worship + +Understanding God's sovereignty should evoke profound gratitude and worship. If all good things come from His hand, our response should be thankfulness rather than entitlement. + +### 4. Confident Obedience + +We can obey God's commands with confidence, knowing that He sovereignly enables what He requires. As Philippians 2:12-13 puts it, "Work out your own salvation with fear and trembling, for it is God who works in you, both to will and to work for his good pleasure." + +## Sovereignty in Times of Crisis + +In our modern world fraught with uncertainty, the doctrine of divine sovereignty provides a stable foundation. When financial systems collapse, when health fails, when relationships fracture—nothing catches God by surprise. He remains on His throne. + +The COVID-19 pandemic, political upheavals, economic instabilities, and personal tragedies—all fall under God's sovereign governance. This doesn't make these troubles disappear, but it does transform how we experience them. We face them not as victims of chance but as children of a sovereign Father who works all things for our ultimate good. + +As Charles Spurgeon beautifully stated: + +> "There is no attribute more comforting to His children than that of God's sovereignty. Under the most adverse circumstances, in the most severe trials, they believe that sovereignty has ordained their afflictions, that sovereignty overrules them, and that sovereignty will sanctify them all." + +## Conclusion + +In an age characterized by uncertainty, the doctrine of God's sovereignty provides an unshakable foundation. When everything else seems to be shifting sand, we stand on the rock of God's absolute, wise, and good control over all things. + +Let us find comfort in knowing that our lives are not determined by blind fate, random chance, or human decisions alone, but by a loving Father who "works all things according to the counsel of his will" (Ephesians 1:11). + +--- + +**Questions for Reflection:** + +1. How has God's sovereignty been displayed in your own life circumstances? +2. In what specific area of uncertainty are you struggling to trust God's sovereign control? +3. How might you respond differently to current trials if you truly believed in God's good sovereignty? +4. What comfort can you draw from God's sovereignty as you face an unknown future? \ No newline at end of file diff --git a/src/styles/globals.css b/src/styles/globals.css new file mode 100644 index 0000000..456de69 --- /dev/null +++ b/src/styles/globals.css @@ -0,0 +1,51 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + body { + @apply bg-primary-50 text-primary-800 font-serif; + } + + h1, h2, h3, h4, h5, h6 { + @apply font-serif text-primary-900 mb-4 font-bold; + } + + h1 { + @apply text-3xl md:text-4xl; + } + + h2 { + @apply text-2xl md:text-3xl; + } + + h3 { + @apply text-xl md:text-2xl; + } + + a { + @apply text-accent-dark hover:text-accent transition-colors duration-200; + } + + blockquote { + @apply border-l-4 border-accent pl-4 italic my-4; + } +} + +@layer components { + .blog-post { + @apply prose prose-lg max-w-none; + } + + .blog-post h1, .blog-post h2, .blog-post h3 { + @apply border-b border-primary-200 pb-2; + } + + .button { + @apply px-4 py-2 rounded-md bg-accent text-white shadow-sm hover:bg-accent-dark transition-colors duration-200; + } + + .card { + @apply bg-white rounded-md shadow-sm p-6 border border-primary-200 hover:shadow-md transition-shadow duration-200; + } +} \ No newline at end of file diff --git a/src/types/index.ts b/src/types/index.ts new file mode 100644 index 0000000..1631cca --- /dev/null +++ b/src/types/index.ts @@ -0,0 +1,20 @@ +export interface PostData { + id: string; + title: string; + date: string; + excerpt: string; + content: string; + author: string; + tags: string[]; + coverImage?: string; + } + + export interface PostMetadata { + id: string; + title: string; + date: string; + excerpt: string; + author: string; + tags: string[]; + coverImage?: string; + } \ No newline at end of file diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..12b27aa --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,43 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: [ + './src/pages/**/*.{js,ts,jsx,tsx}', + './src/components/**/*.{js,ts,jsx,tsx}' + ], + theme: { + extend: { + colors: { + primary: { + 50: '#f8f9fa', + 100: '#e9ecef', + 200: '#dee2e6', + 300: '#ced4da', + 400: '#adb5bd', + 500: '#6c757d', + 600: '#495057', + 700: '#343a40', + 800: '#212529', + 900: '#121212', + }, + accent: { + light: '#e2d8c6', + DEFAULT: '#9d8c70', + dark: '#695c4a', + }, + }, + fontFamily: { + serif: ['Baskerville', 'Georgia', 'Times New Roman', 'serif'], + sans: ['Helvetica Neue', 'Arial', 'sans-serif'], + }, + typography: { + DEFAULT: { + css: { + 'blockquote p:first-of-type::before': false, + 'blockquote p:last-of-type::after': false, + }, + }, + }, + }, + }, + plugins: [require('@tailwindcss/typography')], + } \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..7648c6b --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "esModuleInterop": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "incremental": true, + "baseUrl": ".", + "paths": { + "@/*": ["src/*"] + } + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], + "exclude": ["node_modules"] + } \ No newline at end of file