├── .env.example
├── .gitignore
├── .prettierignore
├── LICENSE.md
├── README.md
├── app
├── api
│ └── chat
│ │ └── route.ts
├── favicon.ico
├── globals.css
├── icons.tsx
├── layout.tsx
├── opengraph-image.png
└── page.tsx
├── next.config.js
├── package.json
├── pnpm-lock.yaml
├── postcss.config.js
├── prettier.config.js
├── public
└── shooketh.png
├── scripts
├── data.jsonl
└── fine-tune.ts
├── tailwind.config.js
└── tsconfig.json
/.env.example:
--------------------------------------------------------------------------------
1 | # Get your OpenAI API key here: https://platform.openai.com/account/api-keys
2 | OPENAI_API_KEY=
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # next.js
12 | /.next/
13 | /out/
14 |
15 | # production
16 | /build
17 |
18 | # misc
19 | .DS_Store
20 | *.pem
21 |
22 | # debug
23 | npm-debug.log*
24 | yarn-debug.log*
25 | yarn-error.log*
26 |
27 | # local env files
28 | .env
29 | .env*.local
30 |
31 | # vercel
32 | .vercel
33 |
34 | # typescript
35 | *.tsbuildinfo
36 | next-env.d.ts
37 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | pnpm-lock.yaml
2 | yarn.lock
3 | node_modules
4 | .next
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2023 Steven Tey
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in
13 | all copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 | THE SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | Shooketh
4 |
5 |
6 |
7 | An AI bot built with the Vercel AI SDK and fine-tuned on Shakespeare's literary works.
8 |
9 |
10 |
11 | Introduction ·
12 | Deploy Your Own ·
13 | Fine-tuning the model ·
14 | Tech Stack ·
15 | Contributing ·
16 | License
17 |
18 |
19 |
20 | ## Introduction
21 |
22 | Shooketh is an AI bot built with the [Vercel AI SDK](https://sdk.vercel.ai/docs) and [fine-tuned](https://openai.com/index/gpt-4o-fine-tuning/) on Shakespeare's literary works. [Read the guide](https://vercel.com/guides/fine-tuning-openai-nextjs) on how you can build your own bot like me.
23 |
24 | ## Deploy your own
25 |
26 | You can deploy your own version of Shooketh with 1-click:
27 |
28 | [](https://vercel.com/new/clone?demo-description=An+AI+bot+built+with+the+Vercel+AI+SDK%2C+OpenAI+gpt-4o-mini%2C+and+fine-tuned+on+Shakespeare%27s+literary+works&demo-image=%2F%2Fimages.ctfassets.net%2Fe5382hct74si%2F18AaW1vWGDC6nOWYkVsYKu%2Fd18b230765c3436a9a3b3fd62bc06867%2FCleanShot_2023-08-30_at_10.07.14_2x.png&demo-title=Shooketh+%E2%80%93%C2%A0AI+bot+fine-tuned+on+Shakespeare&demo-url=https%3A%2F%2Fshooketh-ai-4o.vercel.app&env=OPENAI_API_KEY&envDescription=Get+your+OpenAI+API+Key+here%3A&envLink=https%3A%2F%2Fplatform.openai.com%2Faccount%2Fapi-keys&from=templates&project-name=Shooketh+%E2%80%93%C2%A0AI+bot+fine-tuned+on+Shakespeare&repository-name=shooketh&repository-url=https%3A%2F%2Fgithub.com%2Fvercel-labs%2Fshooketh)
29 |
30 | ## Fine-tuning the model
31 |
32 | [Read the guide](https://vercel.com/guides/fine-tuning-openai-nextjs) on how you can fine-tune your own AI bot with OpenAI + the Vercel AI SDK.
33 |
34 | ## Tech Stack
35 |
36 | ChatH is built on the following stack:
37 |
38 | - [Next.js](https://nextjs.org/) – framework
39 | - [OpenAI Fine-tuning](https://openai.com/index/gpt-4o-fine-tuning/) - Fine-tuning
40 | - [Vercel AI SDK](https://sdk.vercel.ai/docs) – AI completions
41 | - [Vercel](https://vercel.com) – deployments
42 | - [TailwindCSS](https://tailwindcss.com/) – styles
43 |
44 | ## Contributing
45 |
46 | Here's how you can contribute:
47 |
48 | - [Open an issue](https://github.com/vercel-labs/shooketh/issues) if you believe you've encountered a bug.
49 | - Make a [pull request](https://github.com/vercel-labs/shooketh/pull) to add new features/make quality-of-life improvements/fix bugs.
50 |
51 | ## Author
52 |
53 | - Steven Tey ([@steventey](https://twitter.com/steventey))
54 |
55 | ## License
56 |
57 | Licensed under the [MIT license](https://github.com/vercel-labs/shooketh/blob/main/LICENSE.md).
58 |
--------------------------------------------------------------------------------
/app/api/chat/route.ts:
--------------------------------------------------------------------------------
1 | // ./app/api/chat/route.ts
2 | import { streamText } from 'ai'
3 | import {openai} from "@ai-sdk/openai"
4 |
5 |
6 | export async function POST(req: Request) {
7 | // Extract the `prompt` from the body of the request
8 | const { messages } = await req.json()
9 |
10 | // Ask OpenAI for a streaming chat completion given the prompt
11 | const response = await streamText({
12 | model: openai('ft:gpt-4o-mini-2024-07-18:nico-albanese::A2yUVqCW'),
13 | // Note: This has to be the same system prompt as the one
14 | // used in the fine-tuning dataset
15 | system: "Shooketh is an AI bot that answers in the style of Shakespeare's literary works.",
16 | messages
17 | })
18 |
19 | // Convert the response into a friendly text-stream
20 | return response.toDataStreamResponse()
21 | }
22 |
--------------------------------------------------------------------------------
/app/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vercel-labs/shooketh/59b29cc07cc8fdf043fadc423c01bb01787946a9/app/favicon.ico
--------------------------------------------------------------------------------
/app/globals.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
--------------------------------------------------------------------------------
/app/icons.tsx:
--------------------------------------------------------------------------------
1 | export const VercelIcon = () => {
2 | return (
3 |
9 |
10 |
11 | )
12 | }
13 |
14 | export const GithubIcon = () => {
15 | return (
16 |
23 |
24 |
25 | )
26 | }
27 |
28 | export const LoadingCircle = () => {
29 | return (
30 |
37 |
41 |
45 |
46 | )
47 | }
48 |
49 | export const SendIcon = ({ className }: { className?: string }) => {
50 | return (
51 |
58 |
62 |
63 | )
64 | }
65 |
66 | export const UserIcon = () => {
67 | return (
68 |
79 |
80 |
81 |
82 | )
83 | }
84 |
--------------------------------------------------------------------------------
/app/layout.tsx:
--------------------------------------------------------------------------------
1 | import './globals.css'
2 | import { Inter } from 'next/font/google'
3 | import { Analytics } from '@vercel/analytics/react';
4 |
5 | const inter = Inter({ subsets: ['latin'] })
6 |
7 | export const metadata = {
8 | title: "Shooketh – AI bot fine-tuned on Shakespeare's literary works",
9 | description:
10 | "Shooketh is an AI bot built with the Vercel AI SDK and fine-tuned on Shakespeare's literary works."
11 | }
12 |
13 | export default function RootLayout({
14 | children
15 | }: {
16 | children: React.ReactNode
17 | }) {
18 | return (
19 |
20 |
21 | {children}
22 |
23 |
24 |
25 | )
26 | }
27 |
--------------------------------------------------------------------------------
/app/opengraph-image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vercel-labs/shooketh/59b29cc07cc8fdf043fadc423c01bb01787946a9/app/opengraph-image.png
--------------------------------------------------------------------------------
/app/page.tsx:
--------------------------------------------------------------------------------
1 | "use client";
2 |
3 | import { useRef } from "react";
4 | import { useChat } from "ai/react";
5 | import clsx from "clsx";
6 | import {
7 | VercelIcon,
8 | GithubIcon,
9 | LoadingCircle,
10 | SendIcon,
11 | UserIcon,
12 | } from "./icons";
13 | import Textarea from "react-textarea-autosize";
14 | import Image from "next/image";
15 |
16 | const examples = [
17 | "To be or not to be",
18 | "All the world's a stage",
19 | "What is the meaning of life?",
20 | ];
21 |
22 | export default function Chat() {
23 | const formRef = useRef(null);
24 | const inputRef = useRef(null);
25 |
26 | const { messages, input, setInput, handleSubmit, isLoading } = useChat({
27 | onResponse: (response) => {
28 | if (response.status === 429) {
29 | window.alert("You have reached your request limit for the day.");
30 | return;
31 | }
32 | },
33 | });
34 |
35 | const disabled = isLoading || input.length === 0;
36 |
37 | return (
38 |
39 |
55 | {messages.length > 0 ? (
56 | messages.map((message, i) => (
57 |
64 |
65 |
72 | {message.role === "user" ? (
73 |
74 | ) : (
75 |
81 | )}
82 |
83 |
84 | {message.content}
85 |
86 |
87 |
88 | ))
89 | ) : (
90 |
91 |
134 |
135 | {examples.map((example, i) => (
136 | {
140 | setInput(example);
141 | inputRef.current?.focus();
142 | }}
143 | >
144 | {example}
145 |
146 | ))}
147 |
148 |
149 | )}
150 |
235 |
236 | );
237 | }
238 |
--------------------------------------------------------------------------------
/next.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('next').NextConfig} */
2 | const nextConfig = {
3 | redirects: async () => {
4 | return [
5 | {
6 | source: "/github",
7 | destination: "https://github.com/vercel-labs/shooketh",
8 | permanent: true,
9 | },
10 | {
11 | source: "/deploy",
12 | destination: "https://vercel.com/templates/next.js/chathn",
13 | permanent: true,
14 | },
15 | ];
16 | },
17 | };
18 |
19 | module.exports = nextConfig;
20 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "shooketh",
3 | "version": "0.0.0",
4 | "private": true,
5 | "scripts": {
6 | "dev": "next dev",
7 | "build": "next build",
8 | "start": "next start",
9 | "tune": "ts-node -O {\\\"module\\\":\\\"commonjs\\\"} scripts/fine-tune.ts"
10 | },
11 | "dependencies": {
12 | "@ai-sdk/openai": "^0.0.54",
13 | "@vercel/analytics": "^1.3.1",
14 | "ai": "3.3.23",
15 | "clsx": "^2.1.1",
16 | "dotenv": "^16.4.5",
17 | "fs": "0.0.1-security",
18 | "next": "14.2.7",
19 | "openai": "4.57.0",
20 | "react": "18.3.1",
21 | "react-dom": "^18.3.1",
22 | "react-textarea-autosize": "^8.5.3",
23 | "ts-node": "^10.9.2"
24 | },
25 | "devDependencies": {
26 | "@types/node": "^22.5.2",
27 | "@types/react": "18.3.5",
28 | "@types/react-dom": "18.3.0",
29 | "autoprefixer": "^10.4.20",
30 | "postcss": "^8.4.44",
31 | "tailwindcss": "^3.4.10",
32 | "typescript": "5.5.4"
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/pnpm-lock.yaml:
--------------------------------------------------------------------------------
1 | lockfileVersion: '9.0'
2 |
3 | settings:
4 | autoInstallPeers: true
5 | excludeLinksFromLockfile: false
6 |
7 | importers:
8 |
9 | .:
10 | dependencies:
11 | '@ai-sdk/openai':
12 | specifier: ^0.0.54
13 | version: 0.0.54(zod@3.23.8)
14 | '@vercel/analytics':
15 | specifier: ^1.3.1
16 | version: 1.3.1(next@14.2.7(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)
17 | ai:
18 | specifier: 3.3.23
19 | version: 3.3.23(openai@4.57.0(zod@3.23.8))(react@18.3.1)(solid-js@1.8.22)(sswr@2.1.0(svelte@4.2.19))(svelte@4.2.19)(vue@3.4.38(typescript@5.5.4))(zod@3.23.8)
20 | clsx:
21 | specifier: ^2.1.1
22 | version: 2.1.1
23 | dotenv:
24 | specifier: ^16.4.5
25 | version: 16.4.5
26 | fs:
27 | specifier: 0.0.1-security
28 | version: 0.0.1-security
29 | next:
30 | specifier: 14.2.7
31 | version: 14.2.7(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
32 | openai:
33 | specifier: 4.57.0
34 | version: 4.57.0(zod@3.23.8)
35 | react:
36 | specifier: 18.3.1
37 | version: 18.3.1
38 | react-dom:
39 | specifier: ^18.3.1
40 | version: 18.3.1(react@18.3.1)
41 | react-textarea-autosize:
42 | specifier: ^8.5.3
43 | version: 8.5.3(@types/react@18.3.5)(react@18.3.1)
44 | ts-node:
45 | specifier: ^10.9.2
46 | version: 10.9.2(@types/node@22.5.2)(typescript@5.5.4)
47 | devDependencies:
48 | '@types/node':
49 | specifier: ^22.5.2
50 | version: 22.5.2
51 | '@types/react':
52 | specifier: 18.3.5
53 | version: 18.3.5
54 | '@types/react-dom':
55 | specifier: 18.3.0
56 | version: 18.3.0
57 | autoprefixer:
58 | specifier: ^10.4.20
59 | version: 10.4.20(postcss@8.4.44)
60 | postcss:
61 | specifier: ^8.4.44
62 | version: 8.4.44
63 | tailwindcss:
64 | specifier: ^3.4.10
65 | version: 3.4.10(ts-node@10.9.2(@types/node@22.5.2)(typescript@5.5.4))
66 | typescript:
67 | specifier: 5.5.4
68 | version: 5.5.4
69 |
70 | packages:
71 |
72 | '@ai-sdk/openai@0.0.54':
73 | resolution: {integrity: sha512-0jqUSY9Lq0ie4AxnAucmiMhVBbs8ivvOW73sq3pCNA+LFeb2edOcnI0qmfGfHTn/VOjUCf2TvzQzHQx1Du3sYA==}
74 | engines: {node: '>=18'}
75 | peerDependencies:
76 | zod: ^3.0.0
77 |
78 | '@ai-sdk/provider-utils@1.0.17':
79 | resolution: {integrity: sha512-2VyeTH5DQ6AxqvwdyytKIeiZyYTyJffpufWjE67zM2sXMIHgYl7fivo8m5wVl6Cbf1dFPSGKq//C9s+lz+NHrQ==}
80 | engines: {node: '>=18'}
81 | peerDependencies:
82 | zod: ^3.0.0
83 | peerDependenciesMeta:
84 | zod:
85 | optional: true
86 |
87 | '@ai-sdk/provider@0.0.22':
88 | resolution: {integrity: sha512-smZ1/2jL/JSKnbhC6ama/PxI2D/psj+YAe0c0qpd5ComQCNFltg72VFf0rpUSFMmFuj1pCCNoBOCrvyl8HTZHQ==}
89 | engines: {node: '>=18'}
90 |
91 | '@ai-sdk/react@0.0.53':
92 | resolution: {integrity: sha512-sIsmTFoR/QHvUUkltmHwP4bPjwy2vko6j/Nj8ayxLhEHs04Ug+dwXQyfA7MwgimEE3BcDQpWL8ikVj0m3ZILWQ==}
93 | engines: {node: '>=18'}
94 | peerDependencies:
95 | react: ^18 || ^19
96 | zod: ^3.0.0
97 | peerDependenciesMeta:
98 | react:
99 | optional: true
100 | zod:
101 | optional: true
102 |
103 | '@ai-sdk/solid@0.0.43':
104 | resolution: {integrity: sha512-7PlPLaeMAu97oOY2gjywvKZMYHF+GDfUxYNcuJ4AZ3/MRBatzs/U2r4ClT1iH8uMOcMg02RX6UKzP5SgnUBjVw==}
105 | engines: {node: '>=18'}
106 | peerDependencies:
107 | solid-js: ^1.7.7
108 | peerDependenciesMeta:
109 | solid-js:
110 | optional: true
111 |
112 | '@ai-sdk/svelte@0.0.45':
113 | resolution: {integrity: sha512-w5Sdl0ArFIM3Fp8BbH4TUvlrS84WP/jN/wC1+fghMOXd7ceVO3Yhs9r71wTqndhgkLC7LAEX9Ll7ZEPfW9WBDA==}
114 | engines: {node: '>=18'}
115 | peerDependencies:
116 | svelte: ^3.0.0 || ^4.0.0
117 | peerDependenciesMeta:
118 | svelte:
119 | optional: true
120 |
121 | '@ai-sdk/ui-utils@0.0.40':
122 | resolution: {integrity: sha512-f0eonPUBO13pIO8jA9IGux7IKMeqpvWK22GBr3tOoSRnO5Wg5GEpXZU1V0Po+unpeZHyEPahrWbj5JfXcyWCqw==}
123 | engines: {node: '>=18'}
124 | peerDependencies:
125 | zod: ^3.0.0
126 | peerDependenciesMeta:
127 | zod:
128 | optional: true
129 |
130 | '@ai-sdk/vue@0.0.45':
131 | resolution: {integrity: sha512-bqeoWZqk88TQmfoPgnFUKkrvhOIcOcSH5LMPgzZ8XwDqz5tHHrMHzpPfHCj7XyYn4ROTFK/2kKdC/ta6Ko0fMw==}
132 | engines: {node: '>=18'}
133 | peerDependencies:
134 | vue: ^3.3.4
135 | peerDependenciesMeta:
136 | vue:
137 | optional: true
138 |
139 | '@alloc/quick-lru@5.2.0':
140 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
141 | engines: {node: '>=10'}
142 |
143 | '@ampproject/remapping@2.3.0':
144 | resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
145 | engines: {node: '>=6.0.0'}
146 |
147 | '@babel/helper-string-parser@7.24.8':
148 | resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==}
149 | engines: {node: '>=6.9.0'}
150 |
151 | '@babel/helper-validator-identifier@7.24.7':
152 | resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==}
153 | engines: {node: '>=6.9.0'}
154 |
155 | '@babel/parser@7.25.6':
156 | resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==}
157 | engines: {node: '>=6.0.0'}
158 | hasBin: true
159 |
160 | '@babel/runtime@7.25.6':
161 | resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==}
162 | engines: {node: '>=6.9.0'}
163 |
164 | '@babel/types@7.25.6':
165 | resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==}
166 | engines: {node: '>=6.9.0'}
167 |
168 | '@cspotcode/source-map-support@0.8.1':
169 | resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
170 | engines: {node: '>=12'}
171 |
172 | '@isaacs/cliui@8.0.2':
173 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
174 | engines: {node: '>=12'}
175 |
176 | '@jridgewell/gen-mapping@0.3.5':
177 | resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
178 | engines: {node: '>=6.0.0'}
179 |
180 | '@jridgewell/resolve-uri@3.1.2':
181 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
182 | engines: {node: '>=6.0.0'}
183 |
184 | '@jridgewell/set-array@1.2.1':
185 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
186 | engines: {node: '>=6.0.0'}
187 |
188 | '@jridgewell/sourcemap-codec@1.5.0':
189 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==}
190 |
191 | '@jridgewell/trace-mapping@0.3.25':
192 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==}
193 |
194 | '@jridgewell/trace-mapping@0.3.9':
195 | resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
196 |
197 | '@next/env@14.2.7':
198 | resolution: {integrity: sha512-OTx9y6I3xE/eih+qtthppwLytmpJVPM5PPoJxChFsbjIEFXIayG0h/xLzefHGJviAa3Q5+Fd+9uYojKkHDKxoQ==}
199 |
200 | '@next/swc-darwin-arm64@14.2.7':
201 | resolution: {integrity: sha512-UhZGcOyI9LE/tZL3h9rs/2wMZaaJKwnpAyegUVDGZqwsla6hMfeSj9ssBWQS9yA4UXun3pPhrFLVnw5KXZs3vw==}
202 | engines: {node: '>= 10'}
203 | cpu: [arm64]
204 | os: [darwin]
205 |
206 | '@next/swc-darwin-x64@14.2.7':
207 | resolution: {integrity: sha512-ys2cUgZYRc+CbyDeLAaAdZgS7N1Kpyy+wo0b/gAj+SeOeaj0Lw/q+G1hp+DuDiDAVyxLBCJXEY/AkhDmtihUTA==}
208 | engines: {node: '>= 10'}
209 | cpu: [x64]
210 | os: [darwin]
211 |
212 | '@next/swc-linux-arm64-gnu@14.2.7':
213 | resolution: {integrity: sha512-2xoWtE13sUJ3qrC1lwE/HjbDPm+kBQYFkkiVECJWctRASAHQ+NwjMzgrfqqMYHfMxFb5Wws3w9PqzZJqKFdWcQ==}
214 | engines: {node: '>= 10'}
215 | cpu: [arm64]
216 | os: [linux]
217 |
218 | '@next/swc-linux-arm64-musl@14.2.7':
219 | resolution: {integrity: sha512-+zJ1gJdl35BSAGpkCbfyiY6iRTaPrt3KTl4SF/B1NyELkqqnrNX6cp4IjjjxKpd64/7enI0kf6b9O1Uf3cL0pw==}
220 | engines: {node: '>= 10'}
221 | cpu: [arm64]
222 | os: [linux]
223 |
224 | '@next/swc-linux-x64-gnu@14.2.7':
225 | resolution: {integrity: sha512-m6EBqrskeMUzykBrv0fDX/28lWIBGhMzOYaStp0ihkjzIYJiKUOzVYD1gULHc8XDf5EMSqoH/0/TRAgXqpQwmw==}
226 | engines: {node: '>= 10'}
227 | cpu: [x64]
228 | os: [linux]
229 |
230 | '@next/swc-linux-x64-musl@14.2.7':
231 | resolution: {integrity: sha512-gUu0viOMvMlzFRz1r1eQ7Ql4OE+hPOmA7smfZAhn8vC4+0swMZaZxa9CSIozTYavi+bJNDZ3tgiSdMjmMzRJlQ==}
232 | engines: {node: '>= 10'}
233 | cpu: [x64]
234 | os: [linux]
235 |
236 | '@next/swc-win32-arm64-msvc@14.2.7':
237 | resolution: {integrity: sha512-PGbONHIVIuzWlYmLvuFKcj+8jXnLbx4WrlESYlVnEzDsa3+Q2hI1YHoXaSmbq0k4ZwZ7J6sWNV4UZfx1OeOlbQ==}
238 | engines: {node: '>= 10'}
239 | cpu: [arm64]
240 | os: [win32]
241 |
242 | '@next/swc-win32-ia32-msvc@14.2.7':
243 | resolution: {integrity: sha512-BiSY5umlx9ed5RQDoHcdbuKTUkuFORDqzYKPHlLeS+STUWQKWziVOn3Ic41LuTBvqE0TRJPKpio9GSIblNR+0w==}
244 | engines: {node: '>= 10'}
245 | cpu: [ia32]
246 | os: [win32]
247 |
248 | '@next/swc-win32-x64-msvc@14.2.7':
249 | resolution: {integrity: sha512-pxsI23gKWRt/SPHFkDEsP+w+Nd7gK37Hpv0ngc5HpWy2e7cKx9zR/+Q2ptAUqICNTecAaGWvmhway7pj/JLEWA==}
250 | engines: {node: '>= 10'}
251 | cpu: [x64]
252 | os: [win32]
253 |
254 | '@nodelib/fs.scandir@2.1.5':
255 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
256 | engines: {node: '>= 8'}
257 |
258 | '@nodelib/fs.stat@2.0.5':
259 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
260 | engines: {node: '>= 8'}
261 |
262 | '@nodelib/fs.walk@1.2.8':
263 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
264 | engines: {node: '>= 8'}
265 |
266 | '@opentelemetry/api@1.9.0':
267 | resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==}
268 | engines: {node: '>=8.0.0'}
269 |
270 | '@pkgjs/parseargs@0.11.0':
271 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
272 | engines: {node: '>=14'}
273 |
274 | '@swc/counter@0.1.3':
275 | resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==}
276 |
277 | '@swc/helpers@0.5.5':
278 | resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==}
279 |
280 | '@tsconfig/node10@1.0.11':
281 | resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==}
282 |
283 | '@tsconfig/node12@1.0.11':
284 | resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
285 |
286 | '@tsconfig/node14@1.0.3':
287 | resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
288 |
289 | '@tsconfig/node16@1.0.4':
290 | resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
291 |
292 | '@types/diff-match-patch@1.0.36':
293 | resolution: {integrity: sha512-xFdR6tkm0MWvBfO8xXCSsinYxHcqkQUlcHeSpMC2ukzOb6lwQAfDmW+Qt0AvlGd8HpsS28qKsB+oPeJn9I39jg==}
294 |
295 | '@types/estree@1.0.5':
296 | resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
297 |
298 | '@types/node-fetch@2.6.11':
299 | resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==}
300 |
301 | '@types/node@18.19.48':
302 | resolution: {integrity: sha512-7WevbG4ekUcRQSZzOwxWgi5dZmTak7FaxXDoW7xVxPBmKx1rTzfmRLkeCgJzcbBnOV2dkhAPc8cCeT6agocpjg==}
303 |
304 | '@types/node@22.5.2':
305 | resolution: {integrity: sha512-acJsPTEqYqulZS/Yp/S3GgeE6GZ0qYODUR8aVr/DkhHQ8l9nd4j5x1/ZJy9/gHrRlFMqkO6i0I3E27Alu4jjPg==}
306 |
307 | '@types/prop-types@15.7.12':
308 | resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==}
309 |
310 | '@types/qs@6.9.15':
311 | resolution: {integrity: sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg==}
312 |
313 | '@types/react-dom@18.3.0':
314 | resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==}
315 |
316 | '@types/react@18.3.5':
317 | resolution: {integrity: sha512-WeqMfGJLGuLCqHGYRGHxnKrXcTitc6L/nBUWfWPcTarG3t9PsquqUMuVeXZeca+mglY4Vo5GZjCi0A3Or2lnxA==}
318 |
319 | '@vercel/analytics@1.3.1':
320 | resolution: {integrity: sha512-xhSlYgAuJ6Q4WQGkzYTLmXwhYl39sWjoMA3nHxfkvG+WdBT25c563a7QhwwKivEOZtPJXifYHR1m2ihoisbWyA==}
321 | peerDependencies:
322 | next: '>= 13'
323 | react: ^18 || ^19
324 | peerDependenciesMeta:
325 | next:
326 | optional: true
327 | react:
328 | optional: true
329 |
330 | '@vue/compiler-core@3.4.38':
331 | resolution: {integrity: sha512-8IQOTCWnLFqfHzOGm9+P8OPSEDukgg3Huc92qSG49if/xI2SAwLHQO2qaPQbjCWPBcQoO1WYfXfTACUrWV3c5A==}
332 |
333 | '@vue/compiler-dom@3.4.38':
334 | resolution: {integrity: sha512-Osc/c7ABsHXTsETLgykcOwIxFktHfGSUDkb05V61rocEfsFDcjDLH/IHJSNJP+/Sv9KeN2Lx1V6McZzlSb9EhQ==}
335 |
336 | '@vue/compiler-sfc@3.4.38':
337 | resolution: {integrity: sha512-s5QfZ+9PzPh3T5H4hsQDJtI8x7zdJaew/dCGgqZ2630XdzaZ3AD8xGZfBqpT8oaD/p2eedd+pL8tD5vvt5ZYJQ==}
338 |
339 | '@vue/compiler-ssr@3.4.38':
340 | resolution: {integrity: sha512-YXznKFQ8dxYpAz9zLuVvfcXhc31FSPFDcqr0kyujbOwNhlmaNvL2QfIy+RZeJgSn5Fk54CWoEUeW+NVBAogGaw==}
341 |
342 | '@vue/reactivity@3.4.38':
343 | resolution: {integrity: sha512-4vl4wMMVniLsSYYeldAKzbk72+D3hUnkw9z8lDeJacTxAkXeDAP1uE9xr2+aKIN0ipOL8EG2GPouVTH6yF7Gnw==}
344 |
345 | '@vue/runtime-core@3.4.38':
346 | resolution: {integrity: sha512-21z3wA99EABtuf+O3IhdxP0iHgkBs1vuoCAsCKLVJPEjpVqvblwBnTj42vzHRlWDCyxu9ptDm7sI2ZMcWrQqlA==}
347 |
348 | '@vue/runtime-dom@3.4.38':
349 | resolution: {integrity: sha512-afZzmUreU7vKwKsV17H1NDThEEmdYI+GCAK/KY1U957Ig2NATPVjCROv61R19fjZNzMmiU03n79OMnXyJVN0UA==}
350 |
351 | '@vue/server-renderer@3.4.38':
352 | resolution: {integrity: sha512-NggOTr82FbPEkkUvBm4fTGcwUY8UuTsnWC/L2YZBmvaQ4C4Jl/Ao4HHTB+l7WnFCt5M/dN3l0XLuyjzswGYVCA==}
353 | peerDependencies:
354 | vue: 3.4.38
355 |
356 | '@vue/shared@3.4.38':
357 | resolution: {integrity: sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw==}
358 |
359 | abort-controller@3.0.0:
360 | resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
361 | engines: {node: '>=6.5'}
362 |
363 | acorn-walk@8.3.3:
364 | resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==}
365 | engines: {node: '>=0.4.0'}
366 |
367 | acorn@8.12.1:
368 | resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==}
369 | engines: {node: '>=0.4.0'}
370 | hasBin: true
371 |
372 | agentkeepalive@4.5.0:
373 | resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
374 | engines: {node: '>= 8.0.0'}
375 |
376 | ai@3.3.23:
377 | resolution: {integrity: sha512-4AsTugaLOa8zk18X7PlqlnCG6DSJ+idc2CY0ObykX5hDQ/8iFabbAzHcs5xIaLfmcnI2zN/wIjmQGt7jZm7X9w==}
378 | engines: {node: '>=18'}
379 | peerDependencies:
380 | openai: ^4.42.0
381 | react: ^18 || ^19
382 | sswr: ^2.1.0
383 | svelte: ^3.0.0 || ^4.0.0
384 | zod: ^3.0.0
385 | peerDependenciesMeta:
386 | openai:
387 | optional: true
388 | react:
389 | optional: true
390 | sswr:
391 | optional: true
392 | svelte:
393 | optional: true
394 | zod:
395 | optional: true
396 |
397 | ansi-regex@5.0.1:
398 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
399 | engines: {node: '>=8'}
400 |
401 | ansi-regex@6.0.1:
402 | resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
403 | engines: {node: '>=12'}
404 |
405 | ansi-styles@4.3.0:
406 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
407 | engines: {node: '>=8'}
408 |
409 | ansi-styles@6.2.1:
410 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
411 | engines: {node: '>=12'}
412 |
413 | any-promise@1.3.0:
414 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
415 |
416 | anymatch@3.1.3:
417 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
418 | engines: {node: '>= 8'}
419 |
420 | arg@4.1.3:
421 | resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
422 |
423 | arg@5.0.2:
424 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
425 |
426 | aria-query@5.3.0:
427 | resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
428 |
429 | asynckit@0.4.0:
430 | resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
431 |
432 | autoprefixer@10.4.20:
433 | resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==}
434 | engines: {node: ^10 || ^12 || >=14}
435 | hasBin: true
436 | peerDependencies:
437 | postcss: ^8.1.0
438 |
439 | axobject-query@4.1.0:
440 | resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==}
441 | engines: {node: '>= 0.4'}
442 |
443 | balanced-match@1.0.2:
444 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
445 |
446 | binary-extensions@2.3.0:
447 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
448 | engines: {node: '>=8'}
449 |
450 | brace-expansion@2.0.1:
451 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
452 |
453 | braces@3.0.3:
454 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==}
455 | engines: {node: '>=8'}
456 |
457 | browserslist@4.23.3:
458 | resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==}
459 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
460 | hasBin: true
461 |
462 | busboy@1.6.0:
463 | resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
464 | engines: {node: '>=10.16.0'}
465 |
466 | call-bind@1.0.7:
467 | resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
468 | engines: {node: '>= 0.4'}
469 |
470 | camelcase-css@2.0.1:
471 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
472 | engines: {node: '>= 6'}
473 |
474 | caniuse-lite@1.0.30001655:
475 | resolution: {integrity: sha512-jRGVy3iSGO5Uutn2owlb5gR6qsGngTw9ZTb4ali9f3glshcNmJ2noam4Mo9zia5P9Dk3jNNydy7vQjuE5dQmfg==}
476 |
477 | chalk@5.3.0:
478 | resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==}
479 | engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
480 |
481 | chokidar@3.6.0:
482 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
483 | engines: {node: '>= 8.10.0'}
484 |
485 | client-only@0.0.1:
486 | resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
487 |
488 | clsx@2.1.1:
489 | resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==}
490 | engines: {node: '>=6'}
491 |
492 | code-red@1.0.4:
493 | resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==}
494 |
495 | color-convert@2.0.1:
496 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
497 | engines: {node: '>=7.0.0'}
498 |
499 | color-name@1.1.4:
500 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
501 |
502 | combined-stream@1.0.8:
503 | resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
504 | engines: {node: '>= 0.8'}
505 |
506 | commander@4.1.1:
507 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
508 | engines: {node: '>= 6'}
509 |
510 | create-require@1.1.1:
511 | resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
512 |
513 | cross-spawn@7.0.3:
514 | resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
515 | engines: {node: '>= 8'}
516 |
517 | css-tree@2.3.1:
518 | resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
519 | engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
520 |
521 | cssesc@3.0.0:
522 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
523 | engines: {node: '>=4'}
524 | hasBin: true
525 |
526 | csstype@3.1.3:
527 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
528 |
529 | define-data-property@1.1.4:
530 | resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
531 | engines: {node: '>= 0.4'}
532 |
533 | delayed-stream@1.0.0:
534 | resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
535 | engines: {node: '>=0.4.0'}
536 |
537 | dequal@2.0.3:
538 | resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
539 | engines: {node: '>=6'}
540 |
541 | didyoumean@1.2.2:
542 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
543 |
544 | diff-match-patch@1.0.5:
545 | resolution: {integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==}
546 |
547 | diff@4.0.2:
548 | resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
549 | engines: {node: '>=0.3.1'}
550 |
551 | dlv@1.1.3:
552 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
553 |
554 | dotenv@16.4.5:
555 | resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==}
556 | engines: {node: '>=12'}
557 |
558 | eastasianwidth@0.2.0:
559 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
560 |
561 | electron-to-chromium@1.5.13:
562 | resolution: {integrity: sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==}
563 |
564 | emoji-regex@8.0.0:
565 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
566 |
567 | emoji-regex@9.2.2:
568 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
569 |
570 | entities@4.5.0:
571 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
572 | engines: {node: '>=0.12'}
573 |
574 | es-define-property@1.0.0:
575 | resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
576 | engines: {node: '>= 0.4'}
577 |
578 | es-errors@1.3.0:
579 | resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
580 | engines: {node: '>= 0.4'}
581 |
582 | escalade@3.2.0:
583 | resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
584 | engines: {node: '>=6'}
585 |
586 | estree-walker@2.0.2:
587 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
588 |
589 | estree-walker@3.0.3:
590 | resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
591 |
592 | event-target-shim@5.0.1:
593 | resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
594 | engines: {node: '>=6'}
595 |
596 | eventsource-parser@1.1.2:
597 | resolution: {integrity: sha512-v0eOBUbiaFojBu2s2NPBfYUoRR9GjcDNvCXVaqEf5vVfpIAh9f8RCo4vXTP8c63QRKCFwoLpMpTdPwwhEKVgzA==}
598 | engines: {node: '>=14.18'}
599 |
600 | fast-glob@3.3.2:
601 | resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
602 | engines: {node: '>=8.6.0'}
603 |
604 | fastq@1.17.1:
605 | resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
606 |
607 | fill-range@7.1.1:
608 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==}
609 | engines: {node: '>=8'}
610 |
611 | foreground-child@3.3.0:
612 | resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==}
613 | engines: {node: '>=14'}
614 |
615 | form-data-encoder@1.7.2:
616 | resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==}
617 |
618 | form-data@4.0.0:
619 | resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
620 | engines: {node: '>= 6'}
621 |
622 | formdata-node@4.4.1:
623 | resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==}
624 | engines: {node: '>= 12.20'}
625 |
626 | fraction.js@4.3.7:
627 | resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
628 |
629 | fs@0.0.1-security:
630 | resolution: {integrity: sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w==}
631 |
632 | fsevents@2.3.3:
633 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
634 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
635 | os: [darwin]
636 |
637 | function-bind@1.1.2:
638 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
639 |
640 | get-intrinsic@1.2.4:
641 | resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
642 | engines: {node: '>= 0.4'}
643 |
644 | glob-parent@5.1.2:
645 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
646 | engines: {node: '>= 6'}
647 |
648 | glob-parent@6.0.2:
649 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
650 | engines: {node: '>=10.13.0'}
651 |
652 | glob@10.4.5:
653 | resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
654 | hasBin: true
655 |
656 | gopd@1.0.1:
657 | resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
658 |
659 | graceful-fs@4.2.11:
660 | resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
661 |
662 | has-property-descriptors@1.0.2:
663 | resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
664 |
665 | has-proto@1.0.3:
666 | resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==}
667 | engines: {node: '>= 0.4'}
668 |
669 | has-symbols@1.0.3:
670 | resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
671 | engines: {node: '>= 0.4'}
672 |
673 | hasown@2.0.2:
674 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
675 | engines: {node: '>= 0.4'}
676 |
677 | humanize-ms@1.2.1:
678 | resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==}
679 |
680 | is-binary-path@2.1.0:
681 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
682 | engines: {node: '>=8'}
683 |
684 | is-core-module@2.15.1:
685 | resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==}
686 | engines: {node: '>= 0.4'}
687 |
688 | is-extglob@2.1.1:
689 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
690 | engines: {node: '>=0.10.0'}
691 |
692 | is-fullwidth-code-point@3.0.0:
693 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
694 | engines: {node: '>=8'}
695 |
696 | is-glob@4.0.3:
697 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
698 | engines: {node: '>=0.10.0'}
699 |
700 | is-number@7.0.0:
701 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
702 | engines: {node: '>=0.12.0'}
703 |
704 | is-reference@3.0.2:
705 | resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==}
706 |
707 | isexe@2.0.0:
708 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
709 |
710 | jackspeak@3.4.3:
711 | resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
712 |
713 | jiti@1.21.6:
714 | resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==}
715 | hasBin: true
716 |
717 | js-tokens@4.0.0:
718 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
719 |
720 | json-schema@0.4.0:
721 | resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==}
722 |
723 | jsondiffpatch@0.6.0:
724 | resolution: {integrity: sha512-3QItJOXp2AP1uv7waBkao5nCvhEv+QmJAd38Ybq7wNI74Q+BBmnLn4EDKz6yI9xGAIQoUF87qHt+kc1IVxB4zQ==}
725 | engines: {node: ^18.0.0 || >=20.0.0}
726 | hasBin: true
727 |
728 | lilconfig@2.1.0:
729 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
730 | engines: {node: '>=10'}
731 |
732 | lilconfig@3.1.2:
733 | resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==}
734 | engines: {node: '>=14'}
735 |
736 | lines-and-columns@1.2.4:
737 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
738 |
739 | locate-character@3.0.0:
740 | resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==}
741 |
742 | loose-envify@1.4.0:
743 | resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
744 | hasBin: true
745 |
746 | lru-cache@10.4.3:
747 | resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
748 |
749 | magic-string@0.30.11:
750 | resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==}
751 |
752 | make-error@1.3.6:
753 | resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
754 |
755 | mdn-data@2.0.30:
756 | resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
757 |
758 | merge2@1.4.1:
759 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
760 | engines: {node: '>= 8'}
761 |
762 | micromatch@4.0.8:
763 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==}
764 | engines: {node: '>=8.6'}
765 |
766 | mime-db@1.52.0:
767 | resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
768 | engines: {node: '>= 0.6'}
769 |
770 | mime-types@2.1.35:
771 | resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
772 | engines: {node: '>= 0.6'}
773 |
774 | minimatch@9.0.5:
775 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
776 | engines: {node: '>=16 || 14 >=14.17'}
777 |
778 | minipass@7.1.2:
779 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==}
780 | engines: {node: '>=16 || 14 >=14.17'}
781 |
782 | ms@2.1.3:
783 | resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
784 |
785 | mz@2.7.0:
786 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
787 |
788 | nanoid@3.3.6:
789 | resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==}
790 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
791 | hasBin: true
792 |
793 | nanoid@3.3.7:
794 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
795 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
796 | hasBin: true
797 |
798 | next@14.2.7:
799 | resolution: {integrity: sha512-4Qy2aK0LwH4eQiSvQWyKuC7JXE13bIopEQesWE0c/P3uuNRnZCQanI0vsrMLmUQJLAto+A+/8+sve2hd+BQuOQ==}
800 | engines: {node: '>=18.17.0'}
801 | hasBin: true
802 | peerDependencies:
803 | '@opentelemetry/api': ^1.1.0
804 | '@playwright/test': ^1.41.2
805 | react: ^18.2.0
806 | react-dom: ^18.2.0
807 | sass: ^1.3.0
808 | peerDependenciesMeta:
809 | '@opentelemetry/api':
810 | optional: true
811 | '@playwright/test':
812 | optional: true
813 | sass:
814 | optional: true
815 |
816 | node-domexception@1.0.0:
817 | resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
818 | engines: {node: '>=10.5.0'}
819 |
820 | node-fetch@2.7.0:
821 | resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
822 | engines: {node: 4.x || >=6.0.0}
823 | peerDependencies:
824 | encoding: ^0.1.0
825 | peerDependenciesMeta:
826 | encoding:
827 | optional: true
828 |
829 | node-releases@2.0.18:
830 | resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==}
831 |
832 | normalize-path@3.0.0:
833 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
834 | engines: {node: '>=0.10.0'}
835 |
836 | normalize-range@0.1.2:
837 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
838 | engines: {node: '>=0.10.0'}
839 |
840 | object-assign@4.1.1:
841 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
842 | engines: {node: '>=0.10.0'}
843 |
844 | object-hash@3.0.0:
845 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
846 | engines: {node: '>= 6'}
847 |
848 | object-inspect@1.13.2:
849 | resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==}
850 | engines: {node: '>= 0.4'}
851 |
852 | openai@4.57.0:
853 | resolution: {integrity: sha512-JnwBSIYqiZ3jYjB5f2in8hQ0PRA092c6m+/6dYB0MzK0BEbn+0dioxZsPLBm5idJbg9xzLNOiGVm2OSuhZ+BdQ==}
854 | hasBin: true
855 | peerDependencies:
856 | zod: ^3.23.8
857 | peerDependenciesMeta:
858 | zod:
859 | optional: true
860 |
861 | package-json-from-dist@1.0.0:
862 | resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==}
863 |
864 | path-key@3.1.1:
865 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
866 | engines: {node: '>=8'}
867 |
868 | path-parse@1.0.7:
869 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
870 |
871 | path-scurry@1.11.1:
872 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
873 | engines: {node: '>=16 || 14 >=14.18'}
874 |
875 | periscopic@3.1.0:
876 | resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==}
877 |
878 | picocolors@1.0.1:
879 | resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==}
880 |
881 | picomatch@2.3.1:
882 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
883 | engines: {node: '>=8.6'}
884 |
885 | pify@2.3.0:
886 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
887 | engines: {node: '>=0.10.0'}
888 |
889 | pirates@4.0.6:
890 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
891 | engines: {node: '>= 6'}
892 |
893 | postcss-import@15.1.0:
894 | resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
895 | engines: {node: '>=14.0.0'}
896 | peerDependencies:
897 | postcss: ^8.0.0
898 |
899 | postcss-js@4.0.1:
900 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
901 | engines: {node: ^12 || ^14 || >= 16}
902 | peerDependencies:
903 | postcss: ^8.4.21
904 |
905 | postcss-load-config@4.0.2:
906 | resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
907 | engines: {node: '>= 14'}
908 | peerDependencies:
909 | postcss: '>=8.0.9'
910 | ts-node: '>=9.0.0'
911 | peerDependenciesMeta:
912 | postcss:
913 | optional: true
914 | ts-node:
915 | optional: true
916 |
917 | postcss-nested@6.2.0:
918 | resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==}
919 | engines: {node: '>=12.0'}
920 | peerDependencies:
921 | postcss: ^8.2.14
922 |
923 | postcss-selector-parser@6.1.2:
924 | resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==}
925 | engines: {node: '>=4'}
926 |
927 | postcss-value-parser@4.2.0:
928 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
929 |
930 | postcss@8.4.31:
931 | resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
932 | engines: {node: ^10 || ^12 || >=14}
933 |
934 | postcss@8.4.44:
935 | resolution: {integrity: sha512-Aweb9unOEpQ3ezu4Q00DPvvM2ZTUitJdNKeP/+uQgr1IBIqu574IaZoURId7BKtWMREwzKa9OgzPzezWGPWFQw==}
936 | engines: {node: ^10 || ^12 || >=14}
937 |
938 | qs@6.13.0:
939 | resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==}
940 | engines: {node: '>=0.6'}
941 |
942 | queue-microtask@1.2.3:
943 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
944 |
945 | react-dom@18.3.1:
946 | resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==}
947 | peerDependencies:
948 | react: ^18.3.1
949 |
950 | react-textarea-autosize@8.5.3:
951 | resolution: {integrity: sha512-XT1024o2pqCuZSuBt9FwHlaDeNtVrtCXu0Rnz88t1jUGheCLa3PhjE1GH8Ctm2axEtvdCl5SUHYschyQ0L5QHQ==}
952 | engines: {node: '>=10'}
953 | peerDependencies:
954 | react: ^16.8.0 || ^17.0.0 || ^18.0.0
955 |
956 | react@18.3.1:
957 | resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
958 | engines: {node: '>=0.10.0'}
959 |
960 | read-cache@1.0.0:
961 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
962 |
963 | readdirp@3.6.0:
964 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
965 | engines: {node: '>=8.10.0'}
966 |
967 | regenerator-runtime@0.14.1:
968 | resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
969 |
970 | resolve@1.22.8:
971 | resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
972 | hasBin: true
973 |
974 | reusify@1.0.4:
975 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
976 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
977 |
978 | run-parallel@1.2.0:
979 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
980 |
981 | scheduler@0.23.2:
982 | resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==}
983 |
984 | secure-json-parse@2.7.0:
985 | resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==}
986 |
987 | seroval-plugins@1.1.1:
988 | resolution: {integrity: sha512-qNSy1+nUj7hsCOon7AO4wdAIo9P0jrzAMp18XhiOzA6/uO5TKtP7ScozVJ8T293oRIvi5wyCHSM4TrJo/c/GJA==}
989 | engines: {node: '>=10'}
990 | peerDependencies:
991 | seroval: ^1.0
992 |
993 | seroval@1.1.1:
994 | resolution: {integrity: sha512-rqEO6FZk8mv7Hyv4UCj3FD3b6Waqft605TLfsCe/BiaylRpyyMC0b+uA5TJKawX3KzMrdi3wsLbCaLplrQmBvQ==}
995 | engines: {node: '>=10'}
996 |
997 | server-only@0.0.1:
998 | resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==}
999 |
1000 | set-function-length@1.2.2:
1001 | resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
1002 | engines: {node: '>= 0.4'}
1003 |
1004 | shebang-command@2.0.0:
1005 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
1006 | engines: {node: '>=8'}
1007 |
1008 | shebang-regex@3.0.0:
1009 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
1010 | engines: {node: '>=8'}
1011 |
1012 | side-channel@1.0.6:
1013 | resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==}
1014 | engines: {node: '>= 0.4'}
1015 |
1016 | signal-exit@4.1.0:
1017 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
1018 | engines: {node: '>=14'}
1019 |
1020 | solid-js@1.8.22:
1021 | resolution: {integrity: sha512-VBzN5j+9Y4rqIKEnK301aBk+S7fvFSTs9ljg+YEdFxjNjH0hkjXPiQRcws9tE5fUzMznSS6KToL5hwMfHDgpLA==}
1022 |
1023 | source-map-js@1.2.0:
1024 | resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
1025 | engines: {node: '>=0.10.0'}
1026 |
1027 | sswr@2.1.0:
1028 | resolution: {integrity: sha512-Cqc355SYlTAaUt8iDPaC/4DPPXK925PePLMxyBKuWd5kKc5mwsG3nT9+Mq2tyguL5s7b4Jg+IRMpTRsNTAfpSQ==}
1029 | peerDependencies:
1030 | svelte: ^4.0.0 || ^5.0.0-next.0
1031 |
1032 | streamsearch@1.1.0:
1033 | resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
1034 | engines: {node: '>=10.0.0'}
1035 |
1036 | string-width@4.2.3:
1037 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
1038 | engines: {node: '>=8'}
1039 |
1040 | string-width@5.1.2:
1041 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
1042 | engines: {node: '>=12'}
1043 |
1044 | strip-ansi@6.0.1:
1045 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
1046 | engines: {node: '>=8'}
1047 |
1048 | strip-ansi@7.1.0:
1049 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
1050 | engines: {node: '>=12'}
1051 |
1052 | styled-jsx@5.1.1:
1053 | resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
1054 | engines: {node: '>= 12.0.0'}
1055 | peerDependencies:
1056 | '@babel/core': '*'
1057 | babel-plugin-macros: '*'
1058 | react: '>= 16.8.0 || 17.x.x || ^18.0.0-0'
1059 | peerDependenciesMeta:
1060 | '@babel/core':
1061 | optional: true
1062 | babel-plugin-macros:
1063 | optional: true
1064 |
1065 | sucrase@3.35.0:
1066 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
1067 | engines: {node: '>=16 || 14 >=14.17'}
1068 | hasBin: true
1069 |
1070 | supports-preserve-symlinks-flag@1.0.0:
1071 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
1072 | engines: {node: '>= 0.4'}
1073 |
1074 | svelte@4.2.19:
1075 | resolution: {integrity: sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw==}
1076 | engines: {node: '>=16'}
1077 |
1078 | swr@2.2.5:
1079 | resolution: {integrity: sha512-QtxqyclFeAsxEUeZIYmsaQ0UjimSq1RZ9Un7I68/0ClKK/U3LoyQunwkQfJZr2fc22DfIXLNDc2wFyTEikCUpg==}
1080 | peerDependencies:
1081 | react: ^16.11.0 || ^17.0.0 || ^18.0.0
1082 |
1083 | swrev@4.0.0:
1084 | resolution: {integrity: sha512-LqVcOHSB4cPGgitD1riJ1Hh4vdmITOp+BkmfmXRh4hSF/t7EnS4iD+SOTmq7w5pPm/SiPeto4ADbKS6dHUDWFA==}
1085 |
1086 | swrv@1.0.4:
1087 | resolution: {integrity: sha512-zjEkcP8Ywmj+xOJW3lIT65ciY/4AL4e/Or7Gj0MzU3zBJNMdJiT8geVZhINavnlHRMMCcJLHhraLTAiDOTmQ9g==}
1088 | peerDependencies:
1089 | vue: '>=3.2.26 < 4'
1090 |
1091 | tailwindcss@3.4.10:
1092 | resolution: {integrity: sha512-KWZkVPm7yJRhdu4SRSl9d4AK2wM3a50UsvgHZO7xY77NQr2V+fIrEuoDGQcbvswWvFGbS2f6e+jC/6WJm1Dl0w==}
1093 | engines: {node: '>=14.0.0'}
1094 | hasBin: true
1095 |
1096 | thenify-all@1.6.0:
1097 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
1098 | engines: {node: '>=0.8'}
1099 |
1100 | thenify@3.3.1:
1101 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
1102 |
1103 | to-fast-properties@2.0.0:
1104 | resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
1105 | engines: {node: '>=4'}
1106 |
1107 | to-regex-range@5.0.1:
1108 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
1109 | engines: {node: '>=8.0'}
1110 |
1111 | tr46@0.0.3:
1112 | resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
1113 |
1114 | ts-interface-checker@0.1.13:
1115 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
1116 |
1117 | ts-node@10.9.2:
1118 | resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
1119 | hasBin: true
1120 | peerDependencies:
1121 | '@swc/core': '>=1.2.50'
1122 | '@swc/wasm': '>=1.2.50'
1123 | '@types/node': '*'
1124 | typescript: '>=2.7'
1125 | peerDependenciesMeta:
1126 | '@swc/core':
1127 | optional: true
1128 | '@swc/wasm':
1129 | optional: true
1130 |
1131 | tslib@2.7.0:
1132 | resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==}
1133 |
1134 | typescript@5.5.4:
1135 | resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==}
1136 | engines: {node: '>=14.17'}
1137 | hasBin: true
1138 |
1139 | undici-types@5.26.5:
1140 | resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
1141 |
1142 | undici-types@6.19.8:
1143 | resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==}
1144 |
1145 | update-browserslist-db@1.1.0:
1146 | resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==}
1147 | hasBin: true
1148 | peerDependencies:
1149 | browserslist: '>= 4.21.0'
1150 |
1151 | use-composed-ref@1.3.0:
1152 | resolution: {integrity: sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==}
1153 | peerDependencies:
1154 | react: ^16.8.0 || ^17.0.0 || ^18.0.0
1155 |
1156 | use-isomorphic-layout-effect@1.1.2:
1157 | resolution: {integrity: sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==}
1158 | peerDependencies:
1159 | '@types/react': '*'
1160 | react: ^16.8.0 || ^17.0.0 || ^18.0.0
1161 | peerDependenciesMeta:
1162 | '@types/react':
1163 | optional: true
1164 |
1165 | use-latest@1.2.1:
1166 | resolution: {integrity: sha512-xA+AVm/Wlg3e2P/JiItTziwS7FK92LWrDB0p+hgXloIMuVCeJJ8v6f0eeHyPZaJrM+usM1FkFfbNCrJGs8A/zw==}
1167 | peerDependencies:
1168 | '@types/react': '*'
1169 | react: ^16.8.0 || ^17.0.0 || ^18.0.0
1170 | peerDependenciesMeta:
1171 | '@types/react':
1172 | optional: true
1173 |
1174 | use-sync-external-store@1.2.2:
1175 | resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==}
1176 | peerDependencies:
1177 | react: ^16.8.0 || ^17.0.0 || ^18.0.0
1178 |
1179 | util-deprecate@1.0.2:
1180 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
1181 |
1182 | v8-compile-cache-lib@3.0.1:
1183 | resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
1184 |
1185 | vue@3.4.38:
1186 | resolution: {integrity: sha512-f0ZgN+mZ5KFgVv9wz0f4OgVKukoXtS3nwET4c2vLBGQR50aI8G0cqbFtLlX9Yiyg3LFGBitruPHt2PxwTduJEw==}
1187 | peerDependencies:
1188 | typescript: '*'
1189 | peerDependenciesMeta:
1190 | typescript:
1191 | optional: true
1192 |
1193 | web-streams-polyfill@4.0.0-beta.3:
1194 | resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==}
1195 | engines: {node: '>= 14'}
1196 |
1197 | webidl-conversions@3.0.1:
1198 | resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
1199 |
1200 | whatwg-url@5.0.0:
1201 | resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
1202 |
1203 | which@2.0.2:
1204 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
1205 | engines: {node: '>= 8'}
1206 | hasBin: true
1207 |
1208 | wrap-ansi@7.0.0:
1209 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
1210 | engines: {node: '>=10'}
1211 |
1212 | wrap-ansi@8.1.0:
1213 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
1214 | engines: {node: '>=12'}
1215 |
1216 | yaml@2.5.0:
1217 | resolution: {integrity: sha512-2wWLbGbYDiSqqIKoPjar3MPgB94ErzCtrNE1FdqGuaO0pi2JGjmE8aW8TDZwzU7vuxcGRdL/4gPQwQ7hD5AMSw==}
1218 | engines: {node: '>= 14'}
1219 | hasBin: true
1220 |
1221 | yn@3.1.1:
1222 | resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
1223 | engines: {node: '>=6'}
1224 |
1225 | zod-to-json-schema@3.23.2:
1226 | resolution: {integrity: sha512-uSt90Gzc/tUfyNqxnjlfBs8W6WSGpNBv0rVsNxP/BVSMHMKGdthPYff4xtCHYloJGM0CFxFsb3NbC0eqPhfImw==}
1227 | peerDependencies:
1228 | zod: ^3.23.3
1229 |
1230 | zod@3.23.8:
1231 | resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==}
1232 |
1233 | snapshots:
1234 |
1235 | '@ai-sdk/openai@0.0.54(zod@3.23.8)':
1236 | dependencies:
1237 | '@ai-sdk/provider': 0.0.22
1238 | '@ai-sdk/provider-utils': 1.0.17(zod@3.23.8)
1239 | zod: 3.23.8
1240 |
1241 | '@ai-sdk/provider-utils@1.0.17(zod@3.23.8)':
1242 | dependencies:
1243 | '@ai-sdk/provider': 0.0.22
1244 | eventsource-parser: 1.1.2
1245 | nanoid: 3.3.6
1246 | secure-json-parse: 2.7.0
1247 | optionalDependencies:
1248 | zod: 3.23.8
1249 |
1250 | '@ai-sdk/provider@0.0.22':
1251 | dependencies:
1252 | json-schema: 0.4.0
1253 |
1254 | '@ai-sdk/react@0.0.53(react@18.3.1)(zod@3.23.8)':
1255 | dependencies:
1256 | '@ai-sdk/provider-utils': 1.0.17(zod@3.23.8)
1257 | '@ai-sdk/ui-utils': 0.0.40(zod@3.23.8)
1258 | swr: 2.2.5(react@18.3.1)
1259 | optionalDependencies:
1260 | react: 18.3.1
1261 | zod: 3.23.8
1262 |
1263 | '@ai-sdk/solid@0.0.43(solid-js@1.8.22)(zod@3.23.8)':
1264 | dependencies:
1265 | '@ai-sdk/provider-utils': 1.0.17(zod@3.23.8)
1266 | '@ai-sdk/ui-utils': 0.0.40(zod@3.23.8)
1267 | optionalDependencies:
1268 | solid-js: 1.8.22
1269 | transitivePeerDependencies:
1270 | - zod
1271 |
1272 | '@ai-sdk/svelte@0.0.45(svelte@4.2.19)(zod@3.23.8)':
1273 | dependencies:
1274 | '@ai-sdk/provider-utils': 1.0.17(zod@3.23.8)
1275 | '@ai-sdk/ui-utils': 0.0.40(zod@3.23.8)
1276 | sswr: 2.1.0(svelte@4.2.19)
1277 | optionalDependencies:
1278 | svelte: 4.2.19
1279 | transitivePeerDependencies:
1280 | - zod
1281 |
1282 | '@ai-sdk/ui-utils@0.0.40(zod@3.23.8)':
1283 | dependencies:
1284 | '@ai-sdk/provider': 0.0.22
1285 | '@ai-sdk/provider-utils': 1.0.17(zod@3.23.8)
1286 | json-schema: 0.4.0
1287 | secure-json-parse: 2.7.0
1288 | zod-to-json-schema: 3.23.2(zod@3.23.8)
1289 | optionalDependencies:
1290 | zod: 3.23.8
1291 |
1292 | '@ai-sdk/vue@0.0.45(vue@3.4.38(typescript@5.5.4))(zod@3.23.8)':
1293 | dependencies:
1294 | '@ai-sdk/provider-utils': 1.0.17(zod@3.23.8)
1295 | '@ai-sdk/ui-utils': 0.0.40(zod@3.23.8)
1296 | swrv: 1.0.4(vue@3.4.38(typescript@5.5.4))
1297 | optionalDependencies:
1298 | vue: 3.4.38(typescript@5.5.4)
1299 | transitivePeerDependencies:
1300 | - zod
1301 |
1302 | '@alloc/quick-lru@5.2.0': {}
1303 |
1304 | '@ampproject/remapping@2.3.0':
1305 | dependencies:
1306 | '@jridgewell/gen-mapping': 0.3.5
1307 | '@jridgewell/trace-mapping': 0.3.25
1308 |
1309 | '@babel/helper-string-parser@7.24.8': {}
1310 |
1311 | '@babel/helper-validator-identifier@7.24.7': {}
1312 |
1313 | '@babel/parser@7.25.6':
1314 | dependencies:
1315 | '@babel/types': 7.25.6
1316 |
1317 | '@babel/runtime@7.25.6':
1318 | dependencies:
1319 | regenerator-runtime: 0.14.1
1320 |
1321 | '@babel/types@7.25.6':
1322 | dependencies:
1323 | '@babel/helper-string-parser': 7.24.8
1324 | '@babel/helper-validator-identifier': 7.24.7
1325 | to-fast-properties: 2.0.0
1326 |
1327 | '@cspotcode/source-map-support@0.8.1':
1328 | dependencies:
1329 | '@jridgewell/trace-mapping': 0.3.9
1330 |
1331 | '@isaacs/cliui@8.0.2':
1332 | dependencies:
1333 | string-width: 5.1.2
1334 | string-width-cjs: string-width@4.2.3
1335 | strip-ansi: 7.1.0
1336 | strip-ansi-cjs: strip-ansi@6.0.1
1337 | wrap-ansi: 8.1.0
1338 | wrap-ansi-cjs: wrap-ansi@7.0.0
1339 |
1340 | '@jridgewell/gen-mapping@0.3.5':
1341 | dependencies:
1342 | '@jridgewell/set-array': 1.2.1
1343 | '@jridgewell/sourcemap-codec': 1.5.0
1344 | '@jridgewell/trace-mapping': 0.3.25
1345 |
1346 | '@jridgewell/resolve-uri@3.1.2': {}
1347 |
1348 | '@jridgewell/set-array@1.2.1': {}
1349 |
1350 | '@jridgewell/sourcemap-codec@1.5.0': {}
1351 |
1352 | '@jridgewell/trace-mapping@0.3.25':
1353 | dependencies:
1354 | '@jridgewell/resolve-uri': 3.1.2
1355 | '@jridgewell/sourcemap-codec': 1.5.0
1356 |
1357 | '@jridgewell/trace-mapping@0.3.9':
1358 | dependencies:
1359 | '@jridgewell/resolve-uri': 3.1.2
1360 | '@jridgewell/sourcemap-codec': 1.5.0
1361 |
1362 | '@next/env@14.2.7': {}
1363 |
1364 | '@next/swc-darwin-arm64@14.2.7':
1365 | optional: true
1366 |
1367 | '@next/swc-darwin-x64@14.2.7':
1368 | optional: true
1369 |
1370 | '@next/swc-linux-arm64-gnu@14.2.7':
1371 | optional: true
1372 |
1373 | '@next/swc-linux-arm64-musl@14.2.7':
1374 | optional: true
1375 |
1376 | '@next/swc-linux-x64-gnu@14.2.7':
1377 | optional: true
1378 |
1379 | '@next/swc-linux-x64-musl@14.2.7':
1380 | optional: true
1381 |
1382 | '@next/swc-win32-arm64-msvc@14.2.7':
1383 | optional: true
1384 |
1385 | '@next/swc-win32-ia32-msvc@14.2.7':
1386 | optional: true
1387 |
1388 | '@next/swc-win32-x64-msvc@14.2.7':
1389 | optional: true
1390 |
1391 | '@nodelib/fs.scandir@2.1.5':
1392 | dependencies:
1393 | '@nodelib/fs.stat': 2.0.5
1394 | run-parallel: 1.2.0
1395 |
1396 | '@nodelib/fs.stat@2.0.5': {}
1397 |
1398 | '@nodelib/fs.walk@1.2.8':
1399 | dependencies:
1400 | '@nodelib/fs.scandir': 2.1.5
1401 | fastq: 1.17.1
1402 |
1403 | '@opentelemetry/api@1.9.0': {}
1404 |
1405 | '@pkgjs/parseargs@0.11.0':
1406 | optional: true
1407 |
1408 | '@swc/counter@0.1.3': {}
1409 |
1410 | '@swc/helpers@0.5.5':
1411 | dependencies:
1412 | '@swc/counter': 0.1.3
1413 | tslib: 2.7.0
1414 |
1415 | '@tsconfig/node10@1.0.11': {}
1416 |
1417 | '@tsconfig/node12@1.0.11': {}
1418 |
1419 | '@tsconfig/node14@1.0.3': {}
1420 |
1421 | '@tsconfig/node16@1.0.4': {}
1422 |
1423 | '@types/diff-match-patch@1.0.36': {}
1424 |
1425 | '@types/estree@1.0.5': {}
1426 |
1427 | '@types/node-fetch@2.6.11':
1428 | dependencies:
1429 | '@types/node': 22.5.2
1430 | form-data: 4.0.0
1431 |
1432 | '@types/node@18.19.48':
1433 | dependencies:
1434 | undici-types: 5.26.5
1435 |
1436 | '@types/node@22.5.2':
1437 | dependencies:
1438 | undici-types: 6.19.8
1439 |
1440 | '@types/prop-types@15.7.12': {}
1441 |
1442 | '@types/qs@6.9.15': {}
1443 |
1444 | '@types/react-dom@18.3.0':
1445 | dependencies:
1446 | '@types/react': 18.3.5
1447 |
1448 | '@types/react@18.3.5':
1449 | dependencies:
1450 | '@types/prop-types': 15.7.12
1451 | csstype: 3.1.3
1452 |
1453 | '@vercel/analytics@1.3.1(next@14.2.7(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)':
1454 | dependencies:
1455 | server-only: 0.0.1
1456 | optionalDependencies:
1457 | next: 14.2.7(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
1458 | react: 18.3.1
1459 |
1460 | '@vue/compiler-core@3.4.38':
1461 | dependencies:
1462 | '@babel/parser': 7.25.6
1463 | '@vue/shared': 3.4.38
1464 | entities: 4.5.0
1465 | estree-walker: 2.0.2
1466 | source-map-js: 1.2.0
1467 |
1468 | '@vue/compiler-dom@3.4.38':
1469 | dependencies:
1470 | '@vue/compiler-core': 3.4.38
1471 | '@vue/shared': 3.4.38
1472 |
1473 | '@vue/compiler-sfc@3.4.38':
1474 | dependencies:
1475 | '@babel/parser': 7.25.6
1476 | '@vue/compiler-core': 3.4.38
1477 | '@vue/compiler-dom': 3.4.38
1478 | '@vue/compiler-ssr': 3.4.38
1479 | '@vue/shared': 3.4.38
1480 | estree-walker: 2.0.2
1481 | magic-string: 0.30.11
1482 | postcss: 8.4.44
1483 | source-map-js: 1.2.0
1484 |
1485 | '@vue/compiler-ssr@3.4.38':
1486 | dependencies:
1487 | '@vue/compiler-dom': 3.4.38
1488 | '@vue/shared': 3.4.38
1489 |
1490 | '@vue/reactivity@3.4.38':
1491 | dependencies:
1492 | '@vue/shared': 3.4.38
1493 |
1494 | '@vue/runtime-core@3.4.38':
1495 | dependencies:
1496 | '@vue/reactivity': 3.4.38
1497 | '@vue/shared': 3.4.38
1498 |
1499 | '@vue/runtime-dom@3.4.38':
1500 | dependencies:
1501 | '@vue/reactivity': 3.4.38
1502 | '@vue/runtime-core': 3.4.38
1503 | '@vue/shared': 3.4.38
1504 | csstype: 3.1.3
1505 |
1506 | '@vue/server-renderer@3.4.38(vue@3.4.38(typescript@5.5.4))':
1507 | dependencies:
1508 | '@vue/compiler-ssr': 3.4.38
1509 | '@vue/shared': 3.4.38
1510 | vue: 3.4.38(typescript@5.5.4)
1511 |
1512 | '@vue/shared@3.4.38': {}
1513 |
1514 | abort-controller@3.0.0:
1515 | dependencies:
1516 | event-target-shim: 5.0.1
1517 |
1518 | acorn-walk@8.3.3:
1519 | dependencies:
1520 | acorn: 8.12.1
1521 |
1522 | acorn@8.12.1: {}
1523 |
1524 | agentkeepalive@4.5.0:
1525 | dependencies:
1526 | humanize-ms: 1.2.1
1527 |
1528 | ai@3.3.23(openai@4.57.0(zod@3.23.8))(react@18.3.1)(solid-js@1.8.22)(sswr@2.1.0(svelte@4.2.19))(svelte@4.2.19)(vue@3.4.38(typescript@5.5.4))(zod@3.23.8):
1529 | dependencies:
1530 | '@ai-sdk/provider': 0.0.22
1531 | '@ai-sdk/provider-utils': 1.0.17(zod@3.23.8)
1532 | '@ai-sdk/react': 0.0.53(react@18.3.1)(zod@3.23.8)
1533 | '@ai-sdk/solid': 0.0.43(solid-js@1.8.22)(zod@3.23.8)
1534 | '@ai-sdk/svelte': 0.0.45(svelte@4.2.19)(zod@3.23.8)
1535 | '@ai-sdk/ui-utils': 0.0.40(zod@3.23.8)
1536 | '@ai-sdk/vue': 0.0.45(vue@3.4.38(typescript@5.5.4))(zod@3.23.8)
1537 | '@opentelemetry/api': 1.9.0
1538 | eventsource-parser: 1.1.2
1539 | json-schema: 0.4.0
1540 | jsondiffpatch: 0.6.0
1541 | nanoid: 3.3.6
1542 | secure-json-parse: 2.7.0
1543 | zod-to-json-schema: 3.23.2(zod@3.23.8)
1544 | optionalDependencies:
1545 | openai: 4.57.0(zod@3.23.8)
1546 | react: 18.3.1
1547 | sswr: 2.1.0(svelte@4.2.19)
1548 | svelte: 4.2.19
1549 | zod: 3.23.8
1550 | transitivePeerDependencies:
1551 | - solid-js
1552 | - vue
1553 |
1554 | ansi-regex@5.0.1: {}
1555 |
1556 | ansi-regex@6.0.1: {}
1557 |
1558 | ansi-styles@4.3.0:
1559 | dependencies:
1560 | color-convert: 2.0.1
1561 |
1562 | ansi-styles@6.2.1: {}
1563 |
1564 | any-promise@1.3.0: {}
1565 |
1566 | anymatch@3.1.3:
1567 | dependencies:
1568 | normalize-path: 3.0.0
1569 | picomatch: 2.3.1
1570 |
1571 | arg@4.1.3: {}
1572 |
1573 | arg@5.0.2: {}
1574 |
1575 | aria-query@5.3.0:
1576 | dependencies:
1577 | dequal: 2.0.3
1578 |
1579 | asynckit@0.4.0: {}
1580 |
1581 | autoprefixer@10.4.20(postcss@8.4.44):
1582 | dependencies:
1583 | browserslist: 4.23.3
1584 | caniuse-lite: 1.0.30001655
1585 | fraction.js: 4.3.7
1586 | normalize-range: 0.1.2
1587 | picocolors: 1.0.1
1588 | postcss: 8.4.44
1589 | postcss-value-parser: 4.2.0
1590 |
1591 | axobject-query@4.1.0: {}
1592 |
1593 | balanced-match@1.0.2: {}
1594 |
1595 | binary-extensions@2.3.0: {}
1596 |
1597 | brace-expansion@2.0.1:
1598 | dependencies:
1599 | balanced-match: 1.0.2
1600 |
1601 | braces@3.0.3:
1602 | dependencies:
1603 | fill-range: 7.1.1
1604 |
1605 | browserslist@4.23.3:
1606 | dependencies:
1607 | caniuse-lite: 1.0.30001655
1608 | electron-to-chromium: 1.5.13
1609 | node-releases: 2.0.18
1610 | update-browserslist-db: 1.1.0(browserslist@4.23.3)
1611 |
1612 | busboy@1.6.0:
1613 | dependencies:
1614 | streamsearch: 1.1.0
1615 |
1616 | call-bind@1.0.7:
1617 | dependencies:
1618 | es-define-property: 1.0.0
1619 | es-errors: 1.3.0
1620 | function-bind: 1.1.2
1621 | get-intrinsic: 1.2.4
1622 | set-function-length: 1.2.2
1623 |
1624 | camelcase-css@2.0.1: {}
1625 |
1626 | caniuse-lite@1.0.30001655: {}
1627 |
1628 | chalk@5.3.0: {}
1629 |
1630 | chokidar@3.6.0:
1631 | dependencies:
1632 | anymatch: 3.1.3
1633 | braces: 3.0.3
1634 | glob-parent: 5.1.2
1635 | is-binary-path: 2.1.0
1636 | is-glob: 4.0.3
1637 | normalize-path: 3.0.0
1638 | readdirp: 3.6.0
1639 | optionalDependencies:
1640 | fsevents: 2.3.3
1641 |
1642 | client-only@0.0.1: {}
1643 |
1644 | clsx@2.1.1: {}
1645 |
1646 | code-red@1.0.4:
1647 | dependencies:
1648 | '@jridgewell/sourcemap-codec': 1.5.0
1649 | '@types/estree': 1.0.5
1650 | acorn: 8.12.1
1651 | estree-walker: 3.0.3
1652 | periscopic: 3.1.0
1653 |
1654 | color-convert@2.0.1:
1655 | dependencies:
1656 | color-name: 1.1.4
1657 |
1658 | color-name@1.1.4: {}
1659 |
1660 | combined-stream@1.0.8:
1661 | dependencies:
1662 | delayed-stream: 1.0.0
1663 |
1664 | commander@4.1.1: {}
1665 |
1666 | create-require@1.1.1: {}
1667 |
1668 | cross-spawn@7.0.3:
1669 | dependencies:
1670 | path-key: 3.1.1
1671 | shebang-command: 2.0.0
1672 | which: 2.0.2
1673 |
1674 | css-tree@2.3.1:
1675 | dependencies:
1676 | mdn-data: 2.0.30
1677 | source-map-js: 1.2.0
1678 |
1679 | cssesc@3.0.0: {}
1680 |
1681 | csstype@3.1.3: {}
1682 |
1683 | define-data-property@1.1.4:
1684 | dependencies:
1685 | es-define-property: 1.0.0
1686 | es-errors: 1.3.0
1687 | gopd: 1.0.1
1688 |
1689 | delayed-stream@1.0.0: {}
1690 |
1691 | dequal@2.0.3: {}
1692 |
1693 | didyoumean@1.2.2: {}
1694 |
1695 | diff-match-patch@1.0.5: {}
1696 |
1697 | diff@4.0.2: {}
1698 |
1699 | dlv@1.1.3: {}
1700 |
1701 | dotenv@16.4.5: {}
1702 |
1703 | eastasianwidth@0.2.0: {}
1704 |
1705 | electron-to-chromium@1.5.13: {}
1706 |
1707 | emoji-regex@8.0.0: {}
1708 |
1709 | emoji-regex@9.2.2: {}
1710 |
1711 | entities@4.5.0: {}
1712 |
1713 | es-define-property@1.0.0:
1714 | dependencies:
1715 | get-intrinsic: 1.2.4
1716 |
1717 | es-errors@1.3.0: {}
1718 |
1719 | escalade@3.2.0: {}
1720 |
1721 | estree-walker@2.0.2: {}
1722 |
1723 | estree-walker@3.0.3:
1724 | dependencies:
1725 | '@types/estree': 1.0.5
1726 |
1727 | event-target-shim@5.0.1: {}
1728 |
1729 | eventsource-parser@1.1.2: {}
1730 |
1731 | fast-glob@3.3.2:
1732 | dependencies:
1733 | '@nodelib/fs.stat': 2.0.5
1734 | '@nodelib/fs.walk': 1.2.8
1735 | glob-parent: 5.1.2
1736 | merge2: 1.4.1
1737 | micromatch: 4.0.8
1738 |
1739 | fastq@1.17.1:
1740 | dependencies:
1741 | reusify: 1.0.4
1742 |
1743 | fill-range@7.1.1:
1744 | dependencies:
1745 | to-regex-range: 5.0.1
1746 |
1747 | foreground-child@3.3.0:
1748 | dependencies:
1749 | cross-spawn: 7.0.3
1750 | signal-exit: 4.1.0
1751 |
1752 | form-data-encoder@1.7.2: {}
1753 |
1754 | form-data@4.0.0:
1755 | dependencies:
1756 | asynckit: 0.4.0
1757 | combined-stream: 1.0.8
1758 | mime-types: 2.1.35
1759 |
1760 | formdata-node@4.4.1:
1761 | dependencies:
1762 | node-domexception: 1.0.0
1763 | web-streams-polyfill: 4.0.0-beta.3
1764 |
1765 | fraction.js@4.3.7: {}
1766 |
1767 | fs@0.0.1-security: {}
1768 |
1769 | fsevents@2.3.3:
1770 | optional: true
1771 |
1772 | function-bind@1.1.2: {}
1773 |
1774 | get-intrinsic@1.2.4:
1775 | dependencies:
1776 | es-errors: 1.3.0
1777 | function-bind: 1.1.2
1778 | has-proto: 1.0.3
1779 | has-symbols: 1.0.3
1780 | hasown: 2.0.2
1781 |
1782 | glob-parent@5.1.2:
1783 | dependencies:
1784 | is-glob: 4.0.3
1785 |
1786 | glob-parent@6.0.2:
1787 | dependencies:
1788 | is-glob: 4.0.3
1789 |
1790 | glob@10.4.5:
1791 | dependencies:
1792 | foreground-child: 3.3.0
1793 | jackspeak: 3.4.3
1794 | minimatch: 9.0.5
1795 | minipass: 7.1.2
1796 | package-json-from-dist: 1.0.0
1797 | path-scurry: 1.11.1
1798 |
1799 | gopd@1.0.1:
1800 | dependencies:
1801 | get-intrinsic: 1.2.4
1802 |
1803 | graceful-fs@4.2.11: {}
1804 |
1805 | has-property-descriptors@1.0.2:
1806 | dependencies:
1807 | es-define-property: 1.0.0
1808 |
1809 | has-proto@1.0.3: {}
1810 |
1811 | has-symbols@1.0.3: {}
1812 |
1813 | hasown@2.0.2:
1814 | dependencies:
1815 | function-bind: 1.1.2
1816 |
1817 | humanize-ms@1.2.1:
1818 | dependencies:
1819 | ms: 2.1.3
1820 |
1821 | is-binary-path@2.1.0:
1822 | dependencies:
1823 | binary-extensions: 2.3.0
1824 |
1825 | is-core-module@2.15.1:
1826 | dependencies:
1827 | hasown: 2.0.2
1828 |
1829 | is-extglob@2.1.1: {}
1830 |
1831 | is-fullwidth-code-point@3.0.0: {}
1832 |
1833 | is-glob@4.0.3:
1834 | dependencies:
1835 | is-extglob: 2.1.1
1836 |
1837 | is-number@7.0.0: {}
1838 |
1839 | is-reference@3.0.2:
1840 | dependencies:
1841 | '@types/estree': 1.0.5
1842 |
1843 | isexe@2.0.0: {}
1844 |
1845 | jackspeak@3.4.3:
1846 | dependencies:
1847 | '@isaacs/cliui': 8.0.2
1848 | optionalDependencies:
1849 | '@pkgjs/parseargs': 0.11.0
1850 |
1851 | jiti@1.21.6: {}
1852 |
1853 | js-tokens@4.0.0: {}
1854 |
1855 | json-schema@0.4.0: {}
1856 |
1857 | jsondiffpatch@0.6.0:
1858 | dependencies:
1859 | '@types/diff-match-patch': 1.0.36
1860 | chalk: 5.3.0
1861 | diff-match-patch: 1.0.5
1862 |
1863 | lilconfig@2.1.0: {}
1864 |
1865 | lilconfig@3.1.2: {}
1866 |
1867 | lines-and-columns@1.2.4: {}
1868 |
1869 | locate-character@3.0.0: {}
1870 |
1871 | loose-envify@1.4.0:
1872 | dependencies:
1873 | js-tokens: 4.0.0
1874 |
1875 | lru-cache@10.4.3: {}
1876 |
1877 | magic-string@0.30.11:
1878 | dependencies:
1879 | '@jridgewell/sourcemap-codec': 1.5.0
1880 |
1881 | make-error@1.3.6: {}
1882 |
1883 | mdn-data@2.0.30: {}
1884 |
1885 | merge2@1.4.1: {}
1886 |
1887 | micromatch@4.0.8:
1888 | dependencies:
1889 | braces: 3.0.3
1890 | picomatch: 2.3.1
1891 |
1892 | mime-db@1.52.0: {}
1893 |
1894 | mime-types@2.1.35:
1895 | dependencies:
1896 | mime-db: 1.52.0
1897 |
1898 | minimatch@9.0.5:
1899 | dependencies:
1900 | brace-expansion: 2.0.1
1901 |
1902 | minipass@7.1.2: {}
1903 |
1904 | ms@2.1.3: {}
1905 |
1906 | mz@2.7.0:
1907 | dependencies:
1908 | any-promise: 1.3.0
1909 | object-assign: 4.1.1
1910 | thenify-all: 1.6.0
1911 |
1912 | nanoid@3.3.6: {}
1913 |
1914 | nanoid@3.3.7: {}
1915 |
1916 | next@14.2.7(@opentelemetry/api@1.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1):
1917 | dependencies:
1918 | '@next/env': 14.2.7
1919 | '@swc/helpers': 0.5.5
1920 | busboy: 1.6.0
1921 | caniuse-lite: 1.0.30001655
1922 | graceful-fs: 4.2.11
1923 | postcss: 8.4.31
1924 | react: 18.3.1
1925 | react-dom: 18.3.1(react@18.3.1)
1926 | styled-jsx: 5.1.1(react@18.3.1)
1927 | optionalDependencies:
1928 | '@next/swc-darwin-arm64': 14.2.7
1929 | '@next/swc-darwin-x64': 14.2.7
1930 | '@next/swc-linux-arm64-gnu': 14.2.7
1931 | '@next/swc-linux-arm64-musl': 14.2.7
1932 | '@next/swc-linux-x64-gnu': 14.2.7
1933 | '@next/swc-linux-x64-musl': 14.2.7
1934 | '@next/swc-win32-arm64-msvc': 14.2.7
1935 | '@next/swc-win32-ia32-msvc': 14.2.7
1936 | '@next/swc-win32-x64-msvc': 14.2.7
1937 | '@opentelemetry/api': 1.9.0
1938 | transitivePeerDependencies:
1939 | - '@babel/core'
1940 | - babel-plugin-macros
1941 |
1942 | node-domexception@1.0.0: {}
1943 |
1944 | node-fetch@2.7.0:
1945 | dependencies:
1946 | whatwg-url: 5.0.0
1947 |
1948 | node-releases@2.0.18: {}
1949 |
1950 | normalize-path@3.0.0: {}
1951 |
1952 | normalize-range@0.1.2: {}
1953 |
1954 | object-assign@4.1.1: {}
1955 |
1956 | object-hash@3.0.0: {}
1957 |
1958 | object-inspect@1.13.2: {}
1959 |
1960 | openai@4.57.0(zod@3.23.8):
1961 | dependencies:
1962 | '@types/node': 18.19.48
1963 | '@types/node-fetch': 2.6.11
1964 | '@types/qs': 6.9.15
1965 | abort-controller: 3.0.0
1966 | agentkeepalive: 4.5.0
1967 | form-data-encoder: 1.7.2
1968 | formdata-node: 4.4.1
1969 | node-fetch: 2.7.0
1970 | qs: 6.13.0
1971 | optionalDependencies:
1972 | zod: 3.23.8
1973 | transitivePeerDependencies:
1974 | - encoding
1975 |
1976 | package-json-from-dist@1.0.0: {}
1977 |
1978 | path-key@3.1.1: {}
1979 |
1980 | path-parse@1.0.7: {}
1981 |
1982 | path-scurry@1.11.1:
1983 | dependencies:
1984 | lru-cache: 10.4.3
1985 | minipass: 7.1.2
1986 |
1987 | periscopic@3.1.0:
1988 | dependencies:
1989 | '@types/estree': 1.0.5
1990 | estree-walker: 3.0.3
1991 | is-reference: 3.0.2
1992 |
1993 | picocolors@1.0.1: {}
1994 |
1995 | picomatch@2.3.1: {}
1996 |
1997 | pify@2.3.0: {}
1998 |
1999 | pirates@4.0.6: {}
2000 |
2001 | postcss-import@15.1.0(postcss@8.4.44):
2002 | dependencies:
2003 | postcss: 8.4.44
2004 | postcss-value-parser: 4.2.0
2005 | read-cache: 1.0.0
2006 | resolve: 1.22.8
2007 |
2008 | postcss-js@4.0.1(postcss@8.4.44):
2009 | dependencies:
2010 | camelcase-css: 2.0.1
2011 | postcss: 8.4.44
2012 |
2013 | postcss-load-config@4.0.2(postcss@8.4.44)(ts-node@10.9.2(@types/node@22.5.2)(typescript@5.5.4)):
2014 | dependencies:
2015 | lilconfig: 3.1.2
2016 | yaml: 2.5.0
2017 | optionalDependencies:
2018 | postcss: 8.4.44
2019 | ts-node: 10.9.2(@types/node@22.5.2)(typescript@5.5.4)
2020 |
2021 | postcss-nested@6.2.0(postcss@8.4.44):
2022 | dependencies:
2023 | postcss: 8.4.44
2024 | postcss-selector-parser: 6.1.2
2025 |
2026 | postcss-selector-parser@6.1.2:
2027 | dependencies:
2028 | cssesc: 3.0.0
2029 | util-deprecate: 1.0.2
2030 |
2031 | postcss-value-parser@4.2.0: {}
2032 |
2033 | postcss@8.4.31:
2034 | dependencies:
2035 | nanoid: 3.3.7
2036 | picocolors: 1.0.1
2037 | source-map-js: 1.2.0
2038 |
2039 | postcss@8.4.44:
2040 | dependencies:
2041 | nanoid: 3.3.7
2042 | picocolors: 1.0.1
2043 | source-map-js: 1.2.0
2044 |
2045 | qs@6.13.0:
2046 | dependencies:
2047 | side-channel: 1.0.6
2048 |
2049 | queue-microtask@1.2.3: {}
2050 |
2051 | react-dom@18.3.1(react@18.3.1):
2052 | dependencies:
2053 | loose-envify: 1.4.0
2054 | react: 18.3.1
2055 | scheduler: 0.23.2
2056 |
2057 | react-textarea-autosize@8.5.3(@types/react@18.3.5)(react@18.3.1):
2058 | dependencies:
2059 | '@babel/runtime': 7.25.6
2060 | react: 18.3.1
2061 | use-composed-ref: 1.3.0(react@18.3.1)
2062 | use-latest: 1.2.1(@types/react@18.3.5)(react@18.3.1)
2063 | transitivePeerDependencies:
2064 | - '@types/react'
2065 |
2066 | react@18.3.1:
2067 | dependencies:
2068 | loose-envify: 1.4.0
2069 |
2070 | read-cache@1.0.0:
2071 | dependencies:
2072 | pify: 2.3.0
2073 |
2074 | readdirp@3.6.0:
2075 | dependencies:
2076 | picomatch: 2.3.1
2077 |
2078 | regenerator-runtime@0.14.1: {}
2079 |
2080 | resolve@1.22.8:
2081 | dependencies:
2082 | is-core-module: 2.15.1
2083 | path-parse: 1.0.7
2084 | supports-preserve-symlinks-flag: 1.0.0
2085 |
2086 | reusify@1.0.4: {}
2087 |
2088 | run-parallel@1.2.0:
2089 | dependencies:
2090 | queue-microtask: 1.2.3
2091 |
2092 | scheduler@0.23.2:
2093 | dependencies:
2094 | loose-envify: 1.4.0
2095 |
2096 | secure-json-parse@2.7.0: {}
2097 |
2098 | seroval-plugins@1.1.1(seroval@1.1.1):
2099 | dependencies:
2100 | seroval: 1.1.1
2101 | optional: true
2102 |
2103 | seroval@1.1.1:
2104 | optional: true
2105 |
2106 | server-only@0.0.1: {}
2107 |
2108 | set-function-length@1.2.2:
2109 | dependencies:
2110 | define-data-property: 1.1.4
2111 | es-errors: 1.3.0
2112 | function-bind: 1.1.2
2113 | get-intrinsic: 1.2.4
2114 | gopd: 1.0.1
2115 | has-property-descriptors: 1.0.2
2116 |
2117 | shebang-command@2.0.0:
2118 | dependencies:
2119 | shebang-regex: 3.0.0
2120 |
2121 | shebang-regex@3.0.0: {}
2122 |
2123 | side-channel@1.0.6:
2124 | dependencies:
2125 | call-bind: 1.0.7
2126 | es-errors: 1.3.0
2127 | get-intrinsic: 1.2.4
2128 | object-inspect: 1.13.2
2129 |
2130 | signal-exit@4.1.0: {}
2131 |
2132 | solid-js@1.8.22:
2133 | dependencies:
2134 | csstype: 3.1.3
2135 | seroval: 1.1.1
2136 | seroval-plugins: 1.1.1(seroval@1.1.1)
2137 | optional: true
2138 |
2139 | source-map-js@1.2.0: {}
2140 |
2141 | sswr@2.1.0(svelte@4.2.19):
2142 | dependencies:
2143 | svelte: 4.2.19
2144 | swrev: 4.0.0
2145 |
2146 | streamsearch@1.1.0: {}
2147 |
2148 | string-width@4.2.3:
2149 | dependencies:
2150 | emoji-regex: 8.0.0
2151 | is-fullwidth-code-point: 3.0.0
2152 | strip-ansi: 6.0.1
2153 |
2154 | string-width@5.1.2:
2155 | dependencies:
2156 | eastasianwidth: 0.2.0
2157 | emoji-regex: 9.2.2
2158 | strip-ansi: 7.1.0
2159 |
2160 | strip-ansi@6.0.1:
2161 | dependencies:
2162 | ansi-regex: 5.0.1
2163 |
2164 | strip-ansi@7.1.0:
2165 | dependencies:
2166 | ansi-regex: 6.0.1
2167 |
2168 | styled-jsx@5.1.1(react@18.3.1):
2169 | dependencies:
2170 | client-only: 0.0.1
2171 | react: 18.3.1
2172 |
2173 | sucrase@3.35.0:
2174 | dependencies:
2175 | '@jridgewell/gen-mapping': 0.3.5
2176 | commander: 4.1.1
2177 | glob: 10.4.5
2178 | lines-and-columns: 1.2.4
2179 | mz: 2.7.0
2180 | pirates: 4.0.6
2181 | ts-interface-checker: 0.1.13
2182 |
2183 | supports-preserve-symlinks-flag@1.0.0: {}
2184 |
2185 | svelte@4.2.19:
2186 | dependencies:
2187 | '@ampproject/remapping': 2.3.0
2188 | '@jridgewell/sourcemap-codec': 1.5.0
2189 | '@jridgewell/trace-mapping': 0.3.25
2190 | '@types/estree': 1.0.5
2191 | acorn: 8.12.1
2192 | aria-query: 5.3.0
2193 | axobject-query: 4.1.0
2194 | code-red: 1.0.4
2195 | css-tree: 2.3.1
2196 | estree-walker: 3.0.3
2197 | is-reference: 3.0.2
2198 | locate-character: 3.0.0
2199 | magic-string: 0.30.11
2200 | periscopic: 3.1.0
2201 |
2202 | swr@2.2.5(react@18.3.1):
2203 | dependencies:
2204 | client-only: 0.0.1
2205 | react: 18.3.1
2206 | use-sync-external-store: 1.2.2(react@18.3.1)
2207 |
2208 | swrev@4.0.0: {}
2209 |
2210 | swrv@1.0.4(vue@3.4.38(typescript@5.5.4)):
2211 | dependencies:
2212 | vue: 3.4.38(typescript@5.5.4)
2213 |
2214 | tailwindcss@3.4.10(ts-node@10.9.2(@types/node@22.5.2)(typescript@5.5.4)):
2215 | dependencies:
2216 | '@alloc/quick-lru': 5.2.0
2217 | arg: 5.0.2
2218 | chokidar: 3.6.0
2219 | didyoumean: 1.2.2
2220 | dlv: 1.1.3
2221 | fast-glob: 3.3.2
2222 | glob-parent: 6.0.2
2223 | is-glob: 4.0.3
2224 | jiti: 1.21.6
2225 | lilconfig: 2.1.0
2226 | micromatch: 4.0.8
2227 | normalize-path: 3.0.0
2228 | object-hash: 3.0.0
2229 | picocolors: 1.0.1
2230 | postcss: 8.4.44
2231 | postcss-import: 15.1.0(postcss@8.4.44)
2232 | postcss-js: 4.0.1(postcss@8.4.44)
2233 | postcss-load-config: 4.0.2(postcss@8.4.44)(ts-node@10.9.2(@types/node@22.5.2)(typescript@5.5.4))
2234 | postcss-nested: 6.2.0(postcss@8.4.44)
2235 | postcss-selector-parser: 6.1.2
2236 | resolve: 1.22.8
2237 | sucrase: 3.35.0
2238 | transitivePeerDependencies:
2239 | - ts-node
2240 |
2241 | thenify-all@1.6.0:
2242 | dependencies:
2243 | thenify: 3.3.1
2244 |
2245 | thenify@3.3.1:
2246 | dependencies:
2247 | any-promise: 1.3.0
2248 |
2249 | to-fast-properties@2.0.0: {}
2250 |
2251 | to-regex-range@5.0.1:
2252 | dependencies:
2253 | is-number: 7.0.0
2254 |
2255 | tr46@0.0.3: {}
2256 |
2257 | ts-interface-checker@0.1.13: {}
2258 |
2259 | ts-node@10.9.2(@types/node@22.5.2)(typescript@5.5.4):
2260 | dependencies:
2261 | '@cspotcode/source-map-support': 0.8.1
2262 | '@tsconfig/node10': 1.0.11
2263 | '@tsconfig/node12': 1.0.11
2264 | '@tsconfig/node14': 1.0.3
2265 | '@tsconfig/node16': 1.0.4
2266 | '@types/node': 22.5.2
2267 | acorn: 8.12.1
2268 | acorn-walk: 8.3.3
2269 | arg: 4.1.3
2270 | create-require: 1.1.1
2271 | diff: 4.0.2
2272 | make-error: 1.3.6
2273 | typescript: 5.5.4
2274 | v8-compile-cache-lib: 3.0.1
2275 | yn: 3.1.1
2276 |
2277 | tslib@2.7.0: {}
2278 |
2279 | typescript@5.5.4: {}
2280 |
2281 | undici-types@5.26.5: {}
2282 |
2283 | undici-types@6.19.8: {}
2284 |
2285 | update-browserslist-db@1.1.0(browserslist@4.23.3):
2286 | dependencies:
2287 | browserslist: 4.23.3
2288 | escalade: 3.2.0
2289 | picocolors: 1.0.1
2290 |
2291 | use-composed-ref@1.3.0(react@18.3.1):
2292 | dependencies:
2293 | react: 18.3.1
2294 |
2295 | use-isomorphic-layout-effect@1.1.2(@types/react@18.3.5)(react@18.3.1):
2296 | dependencies:
2297 | react: 18.3.1
2298 | optionalDependencies:
2299 | '@types/react': 18.3.5
2300 |
2301 | use-latest@1.2.1(@types/react@18.3.5)(react@18.3.1):
2302 | dependencies:
2303 | react: 18.3.1
2304 | use-isomorphic-layout-effect: 1.1.2(@types/react@18.3.5)(react@18.3.1)
2305 | optionalDependencies:
2306 | '@types/react': 18.3.5
2307 |
2308 | use-sync-external-store@1.2.2(react@18.3.1):
2309 | dependencies:
2310 | react: 18.3.1
2311 |
2312 | util-deprecate@1.0.2: {}
2313 |
2314 | v8-compile-cache-lib@3.0.1: {}
2315 |
2316 | vue@3.4.38(typescript@5.5.4):
2317 | dependencies:
2318 | '@vue/compiler-dom': 3.4.38
2319 | '@vue/compiler-sfc': 3.4.38
2320 | '@vue/runtime-dom': 3.4.38
2321 | '@vue/server-renderer': 3.4.38(vue@3.4.38(typescript@5.5.4))
2322 | '@vue/shared': 3.4.38
2323 | optionalDependencies:
2324 | typescript: 5.5.4
2325 |
2326 | web-streams-polyfill@4.0.0-beta.3: {}
2327 |
2328 | webidl-conversions@3.0.1: {}
2329 |
2330 | whatwg-url@5.0.0:
2331 | dependencies:
2332 | tr46: 0.0.3
2333 | webidl-conversions: 3.0.1
2334 |
2335 | which@2.0.2:
2336 | dependencies:
2337 | isexe: 2.0.0
2338 |
2339 | wrap-ansi@7.0.0:
2340 | dependencies:
2341 | ansi-styles: 4.3.0
2342 | string-width: 4.2.3
2343 | strip-ansi: 6.0.1
2344 |
2345 | wrap-ansi@8.1.0:
2346 | dependencies:
2347 | ansi-styles: 6.2.1
2348 | string-width: 5.1.2
2349 | strip-ansi: 7.1.0
2350 |
2351 | yaml@2.5.0: {}
2352 |
2353 | yn@3.1.1: {}
2354 |
2355 | zod-to-json-schema@3.23.2(zod@3.23.8):
2356 | dependencies:
2357 | zod: 3.23.8
2358 |
2359 | zod@3.23.8: {}
2360 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | }
7 |
--------------------------------------------------------------------------------
/prettier.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | bracketSpacing: true,
3 | semi: true,
4 | trailingComma: "all",
5 | printWidth: 80,
6 | tabWidth: 2,
7 | plugins: [require("prettier-plugin-tailwindcss")],
8 | };
9 |
--------------------------------------------------------------------------------
/public/shooketh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vercel-labs/shooketh/59b29cc07cc8fdf043fadc423c01bb01787946a9/public/shooketh.png
--------------------------------------------------------------------------------
/scripts/data.jsonl:
--------------------------------------------------------------------------------
1 | {"messages": [{"role": "system", "content": "Shooketh is an AI bot that answers in the style of Shakespeare's literary works."}, {"role": "user", "content": "What counsel hath thy father imparted?"}, {"role": "assistant", "content": "Arise with rectitude, young warrior, and stiffen thine upper lip forthwith."}]}
2 | {"messages": [{"role": "system", "content": "Shooketh is an AI bot that answers in the style of Shakespeare's literary works."}, {"role": "user", "content": "Hailie, thou pines for maternal embrace, and yearns for paternal presence."}, {"role": "assistant", "content": "When I am vanished, yet strive I to grant thee a life ne'er mine own."}]}
3 | {"messages": [{"role": "system", "content": "Shooketh is an AI bot that answers in the style of Shakespeare's literary works."}, {"role": "user", "content": "His palms sweat, his knees weaken, arms ponderous and heavy."}, {"role": "assistant", "content": "Vomit stains his garment, his mother's pasta, a sight all too unsteady."}]}
4 | {"messages": [{"role": "system", "content": "Shooketh is an AI bot that answers in the style of Shakespeare's literary works."}, {"role": "user", "content": "Guess who doth return? Speak, and make it known."}, {"role": "assistant", "content": "Lo! 'Tis the shadowed Eminence, declare it to companions far and wide."}]}
5 | {"messages": [{"role": "system", "content": "Shooketh is an AI bot that answers in the style of Shakespeare's literary works."}, {"role": "user", "content": "A lass astray, seeking her place 'midst this vast world's expanse."}, {"role": "assistant", "content": "Allow them no voice to declare thee aught but fair, verily."}]}
6 | {"messages": [{"role": "system", "content": "Shooketh is an AI bot that answers in the style of Shakespeare's literary works."}, {"role": "user", "content": "They declare my rhymes of poverty profane."}, {"role": "assistant", "content": "Nay, they speak not against rhymes of powder white anymore."}]}
7 | {"messages": [{"role": "system", "content": "Shooketh is an AI bot that answers in the style of Shakespeare's literary works."}, {"role": "user", "content": "His courage ebbs through yon orifice, gaping wide."}, {"role": "assistant", "content": "His belly churns, mother's pasta churns, yet outwardly composed, he doth abide."}]}
8 | {"messages": [{"role": "system", "content": "Shooketh is an AI bot that answers in the style of Shakespeare's literary works."}, {"role": "user", "content": "Immerse thyself in melody's embrace, in moments fleeting."}, {"role": "assistant", "content": "Lay claim to it, and cling to it as a jewel, ne'er to release thy hold."}]}
9 | {"messages": [{"role": "system", "content": "Shooketh is an AI bot that answers in the style of Shakespeare's literary works."}, {"role": "user", "content": "His very soul doth escape, through yon aperture gaping."}, {"role": "assistant", "content": "This world I shall conquer, its dominion for mine taking."}]}
10 | {"messages": [{"role": "system", "content": "Shooketh is an AI bot that answers in the style of Shakespeare's literary works."}, {"role": "user", "content": "For in my heart, strength rises to revel within the club's embrace."}, {"role": "assistant", "content": "Or 'pon the corner's public house, I'll lift the spirits' weight, this truth I face."}]}
11 | {"messages": [{"role": "system", "content": "Shooketh is an AI bot that answers in the style of Shakespeare's literary works."}, {"role": "user", "content": "'Til the firmament parts, and the luminance doth fade."}, {"role": "assistant", "content": "'Til my sinews falter, my speech fail, I'll voice forth ne'er abating."}]}
12 | {"messages": [{"role": "system", "content": "Shooketh is an AI bot that answers in the style of Shakespeare's literary works."}, {"role": "user", "content": "Imagine, one chance to grasp, one moment's due."}, {"role": "assistant", "content": "To seize all thou dost yearn for, in a singular instant's view."}]}
13 | {"messages": [{"role": "system", "content": "Shooketh is an AI bot that answers in the style of Shakespeare's literary works."}, {"role": "user", "content": "Now, 'tis my turn, my moment, steadfast be my step."}, {"role": "assistant", "content": "Perchance the sole moment wherein fortune's favor I can net."}]}
14 | {"messages": [{"role": "system", "content": "Shooketh is an AI bot that answers in the style of Shakespeare's literary works."}, {"role": "user", "content": "Lose thyself in melody's embrace, in moment's fleeting grace."}, {"role": "assistant", "content": "Lay claim to it, and guard it close, never to let it from thy embrace efface."}]}
15 | {"messages": [{"role": "system", "content": "Shooketh is an AI bot that answers in the style of Shakespeare's literary works."}, {"role": "user", "content": "I falter not, to take a stand."}, {"role": "assistant", "content": "All who hear, come, clasp my hand."}]}
16 | {"messages": [{"role": "system", "content": "Shooketh is an AI bot that answers in the style of Shakespeare's literary works."}, {"role": "user", "content": "For at times, weariness doth assail the heart's core."}, {"role": "assistant", "content": "When feeble thou feelest, surrender beckons, aye, 'tis the mind's lore."}]}
--------------------------------------------------------------------------------
/scripts/fine-tune.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * Fine-tuning allows you to train models on your own data.
3 | *
4 | * See this guide for more information:
5 | * - https://vercel.com/guides/fine-tuning-openai-nextjs
6 | */
7 |
8 | import fs from 'fs'
9 | import OpenAI from 'openai'
10 | import { FineTuningJobEvent } from 'openai/resources/fine-tuning'
11 | import 'dotenv/config'
12 |
13 | // Gets the API Key from the environment variable `OPENAI_API_KEY`
14 | const client = new OpenAI({
15 | apiKey: process.env.OPENAI_API_KEY
16 | })
17 |
18 | async function main() {
19 | console.log(`Uploading file`)
20 |
21 | let file = await client.files.create({
22 | file: fs.createReadStream('./scripts/data.jsonl'),
23 | purpose: 'fine-tune'
24 | })
25 | console.log(`Uploaded file with ID: ${file.id}`)
26 |
27 | console.log('-----')
28 |
29 | console.log(`Waiting for file to be processed`)
30 |
31 | console.log('-----')
32 |
33 | console.log(`Starting fine-tuning`)
34 | let fineTune = await client.fineTuning.jobs.create({
35 | model: 'gpt-4o-mini-2024-07-18',
36 | training_file: file.id
37 | })
38 | console.log(`Fine-tuning ID: ${fineTune.id}`)
39 |
40 | console.log('-----')
41 |
42 | console.log(`Track fine-tuning progress:`)
43 |
44 | const events: Record = {}
45 |
46 | while (fineTune.status == 'running') {
47 | fineTune = await client.fineTuning.jobs.retrieve(fineTune.id)
48 | console.log(`${fineTune.status}`)
49 |
50 | const { data } = await client.fineTuning.jobs.listEvents(fineTune.id, {
51 | limit: 100
52 | })
53 | for (const event of data.reverse()) {
54 | if (event.id in events) continue
55 | events[event.id] = event
56 | const timestamp = new Date(event.created_at * 1000)
57 | console.log(`- ${timestamp.toLocaleTimeString()}: ${event.message}`)
58 | }
59 |
60 | await new Promise(resolve => setTimeout(resolve, 5000))
61 | }
62 | }
63 |
64 | main().catch(err => {
65 | console.error(err)
66 | process.exit(1)
67 | })
68 |
--------------------------------------------------------------------------------
/tailwind.config.js:
--------------------------------------------------------------------------------
1 | /** @type {import('tailwindcss').Config} */
2 | module.exports = {
3 | content: [
4 | "./pages/**/*.{js,ts,jsx,tsx,mdx}",
5 | "./components/**/*.{js,ts,jsx,tsx,mdx}",
6 | "./app/**/*.{js,ts,jsx,tsx,mdx}",
7 | ],
8 | };
9 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es5",
4 | "lib": ["dom", "dom.iterable", "esnext"],
5 | "allowJs": true,
6 | "skipLibCheck": true,
7 | "strict": true,
8 | "forceConsistentCasingInFileNames": true,
9 | "noEmit": true,
10 | "esModuleInterop": true,
11 | "module": "esnext",
12 | "moduleResolution": "node",
13 | "resolveJsonModule": true,
14 | "isolatedModules": true,
15 | "jsx": "preserve",
16 | "incremental": true,
17 | "plugins": [
18 | {
19 | "name": "next"
20 | }
21 | ],
22 | "paths": {
23 | "@/*": ["./*"]
24 | }
25 | },
26 | "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
27 | "exclude": ["node_modules"]
28 | }
29 |
--------------------------------------------------------------------------------