api2ai 1.0.23 → 1.0.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +63 -39
- package/package.json +237 -23
- package/src/generate-mcp-use-server.js +0 -1037
package/README.md
CHANGED
|
@@ -1,20 +1,49 @@
|
|
|
1
1
|
|
|
2
2
|
<p align="center">
|
|
3
|
-
<img src="https://i.imgur.com/
|
|
4
|
-
<a href="https://npmjs.org/package/grab-url"><img alt="NPM Version" src="https://img.shields.io/npm/v/grab-url" /></a><a href="https://github.com/vtempest/GRAB-URL/discussions"><img alt="GitHub Discussions"
|
|
5
|
-
src="https://img.shields.io/github/discussions/vtempest/GRAB-URL" /></a><a href="https://github.blog/developer-skills/github/beginners-guide-to-github-creating-a-pull-request/"><img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" alt="PRs Welcome"/></a>
|
|
3
|
+
<img width="600px" src="https://i.imgur.com/TTJBLxo.png" />
|
|
6
4
|
</p>
|
|
7
5
|
|
|
6
|
+
<!-- template-git-repo:badges:start -->
|
|
7
|
+
<p align="center">
|
|
8
|
+
<a href="https://1computer.online/docs/packages/api2ai-mcp-generator"><img src="https://img.shields.io/badge/Docs-blue?logo=ReadTheDocs&logoColor=white" alt="Documentation" /></a>
|
|
9
|
+
<br />
|
|
10
|
+
<a href="https://github.com/OpenSourceAGI/dev-tools-starter-agent/stargazers"><img src="https://img.shields.io/github/stars/OpenSourceAGI/dev-tools-starter-agent" alt="GitHub Stars" /></a>
|
|
11
|
+
<a href="https://www.npmjs.com/package/api2ai"><img src="https://img.shields.io/npm/dm/api2ai.svg" alt="NPM Monthly Downloads" /></a>
|
|
12
|
+
<a href="https://www.npmjs.com/package/api2ai"><img src="https://img.shields.io/npm/v/api2ai.svg" alt="npm version" /></a>
|
|
13
|
+
<a href="https://www.npmjs.com/package/api2ai"><img src="https://img.shields.io/npm/dt/api2ai.svg" alt="NPM Total Downloads" /></a>
|
|
14
|
+
<a href="https://www.npmjs.com/package/api2ai"><img src="https://img.shields.io/npm/types/api2ai" alt="TypeScript types" /></a>
|
|
15
|
+
<a href="https://packagephobia.com/result?p=api2ai"><img src="https://packagephobia.com/badge?p=api2ai" alt="Install size" /></a>
|
|
16
|
+
<br />
|
|
17
|
+
<a href="https://github.com/OpenSourceAGI/dev-tools-starter-agent/issues"><img src="https://img.shields.io/github/issues/OpenSourceAGI/dev-tools-starter-agent?logo=github" alt="GitHub Issues" /></a>
|
|
18
|
+
<a href="https://github.com/OpenSourceAGI/dev-tools-starter-agent/pulls"><img src="https://img.shields.io/github/issues-pr/OpenSourceAGI/dev-tools-starter-agent?logo=github&label=PRs" alt="Open Pull Requests" /></a>
|
|
19
|
+
<a href="https://github.com/OpenSourceAGI/dev-tools-starter-agent/pulls?q=is%3Apr+is%3Aclosed"><img src="https://img.shields.io/github/issues-pr-closed/OpenSourceAGI/dev-tools-starter-agent?logo=github&label=PRs%20merged&color=8957e5" alt="Merged Pull Requests" /></a>
|
|
20
|
+
<a href="https://github.com/OpenSourceAGI/dev-tools-starter-agent/discussions"><img src="https://img.shields.io/github/discussions/OpenSourceAGI/dev-tools-starter-agent" alt="GitHub Discussions" /></a>
|
|
21
|
+
<a href="https://github.com/OpenSourceAGI/dev-tools-starter-agent/commits/master/"><img src="https://img.shields.io/github/last-commit/OpenSourceAGI/dev-tools-starter-agent.svg" alt="GitHub last commit" /></a>
|
|
22
|
+
<br />
|
|
23
|
+
<a href="https://stackblitz.com/github/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/api2ai-mcp-generator"><img height="20px" src="https://developer.stackblitz.com/img/open_in_stackblitz.svg" alt="Open in StackBlitz" /></a>
|
|
24
|
+
<img src="https://img.shields.io/badge/Bun-14151A?logo=bun&logoColor=white" alt="Bun" /> <img src="https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white" alt="TypeScript" /> <img src="https://img.shields.io/badge/Next.js-black?logo=nextdotjs&logoColor=white" alt="Next.js" /> <img src="https://img.shields.io/badge/React-20232A?logo=react&logoColor=white" alt="React" /> <img src="https://img.shields.io/badge/Tailwind%20CSS-06B6D4?logo=tailwindcss&logoColor=white" alt="Tailwind CSS" /> <img src="https://img.shields.io/badge/shadcn%2Fui-000000?logo=shadcnui&logoColor=white" alt="shadcn/ui" /> <img src="https://img.shields.io/badge/Drizzle%20ORM-C5F74F?logo=drizzle&logoColor=white" alt="Drizzle ORM" /> <img src="https://img.shields.io/badge/better--auth-000000" alt="better-auth" /> <img src="https://img.shields.io/badge/Stripe-635BFF?logo=stripe&logoColor=white" alt="Stripe" /> <img src="https://img.shields.io/badge/Vercel%20AI%20SDK-black?logo=vercel&logoColor=white" alt="Vercel AI SDK" /> <img src="https://img.shields.io/badge/Zod-3E67B1?logo=zod&logoColor=white" alt="Zod" /> <img src="https://img.shields.io/badge/Fumadocs-000000" alt="Fumadocs" /> <img src="https://img.shields.io/badge/Vite-646CFF?logo=vite&logoColor=white" alt="Vite" /> <img src="https://img.shields.io/badge/Vitest-6E9F18?logo=vitest&logoColor=white" alt="Vitest" />
|
|
25
|
+
</p>
|
|
26
|
+
<!-- template-git-repo:badges:end -->
|
|
8
27
|
|
|
9
|
-
|
|
28
|
+
<!-- skills:install:start -->
|
|
29
|
+
**🤖 Agent skill** — `npx skills@latest add https://github.com/OpenSourceAGI/dev-tools-starter-agent --skill api2ai` ([what it covers](../../skills/api2ai/SKILL.md))
|
|
30
|
+
<!-- skills:install:end -->
|
|
31
|
+
|
|
32
|
+
<h3 align="center">
|
|
33
|
+
<a href="https://api-2-ai.vercel.app/"> 🌐 Live Site </a> |
|
|
34
|
+
<a href="https://github.com/vtempest/GRAB-URL/tree/master/api2ai/example-petstore"> 🎯 Example MCP Server </a>
|
|
35
|
+
</h3>
|
|
10
36
|
|
|
11
|
-
<a href="https://github.com/OpenSourceAGI/GRAB-URL/tree/master/examples/openapi-mcp-docs"> 🎯 Example MCP Server </a>
|
|
12
37
|
|
|
13
38
|
|
|
39
|
+
|
|
40
|
+
# API2AI: OpenAPI to MCP-Use Server
|
|
41
|
+
|
|
14
42
|
Generate production-ready MCP servers from any OpenAPI specification using the highly-used and convenient [mcp-use](https://mcp-use.com) framework (8k+ GitHub stars).
|
|
15
43
|
|
|
16
44
|
OpenAPI specs are easy to write and organize your code and have [100s of tools available](https://openapi.tools) such as the [OpenAPI Builder web UI](https://www.apibldr.com).
|
|
17
45
|
|
|
46
|
+
Try it in the browser at **[api-2-ai.vercel.app](https://api-2-ai.vercel.app/)** — the hosted site lets you design and validate OpenAPI specs visually, browse the docs, and see generated-server examples without installing anything.
|
|
18
47
|
|
|
19
48
|
## Features
|
|
20
49
|
|
|
@@ -49,7 +78,7 @@ Open http://localhost:3000/inspector to test your tools!
|
|
|
49
78
|
### CLI
|
|
50
79
|
|
|
51
80
|
```bash
|
|
52
|
-
|
|
81
|
+
node generate-mcp-use-server.js <openapi-spec> [output-folder] [options]
|
|
53
82
|
|
|
54
83
|
Options:
|
|
55
84
|
--name <name> Server name (default: api-mcp-server)
|
|
@@ -66,32 +95,32 @@ Options:
|
|
|
66
95
|
|
|
67
96
|
```bash
|
|
68
97
|
# From remote URL
|
|
69
|
-
|
|
98
|
+
node generate-mcp-use-server.js \
|
|
70
99
|
https://api.example.com/openapi.json \
|
|
71
100
|
./my-server \
|
|
72
101
|
--name my-api
|
|
73
102
|
|
|
74
103
|
# From local file
|
|
75
|
-
|
|
104
|
+
node generate-mcp-use-server.js \
|
|
76
105
|
./specs/my-api.yaml \
|
|
77
106
|
./my-mcp-server \
|
|
78
107
|
--port 8080
|
|
79
108
|
|
|
80
109
|
# With custom base URL
|
|
81
|
-
|
|
110
|
+
node generate-mcp-use-server.js \
|
|
82
111
|
./petstore.json \
|
|
83
112
|
./petstore \
|
|
84
113
|
--base-url https://petstore.example.com/v3
|
|
85
114
|
|
|
86
115
|
# Include only read-only tools tagged "public"
|
|
87
|
-
|
|
116
|
+
node generate-mcp-use-server.js \
|
|
88
117
|
./api.json \
|
|
89
118
|
./readonly-server \
|
|
90
119
|
--include-tags public \
|
|
91
120
|
--exclude-tags admin,internal
|
|
92
121
|
|
|
93
122
|
# Enable writes (mutations) explicitly
|
|
94
|
-
|
|
123
|
+
node generate-mcp-use-server.js \
|
|
95
124
|
./api.json \
|
|
96
125
|
./full-server \
|
|
97
126
|
--allow-mutations \
|
|
@@ -101,29 +130,29 @@ npx api2ai \
|
|
|
101
130
|
### Programmatic Usage
|
|
102
131
|
|
|
103
132
|
```javascript
|
|
104
|
-
import { generateMcpServer, extractTools, loadOpenApiSpec } from
|
|
133
|
+
import { generateMcpServer, extractTools, loadOpenApiSpec } from './generate-mcp-use-server.js';
|
|
105
134
|
|
|
106
135
|
// Generate complete server
|
|
107
136
|
const result = await generateMcpServer(
|
|
108
|
-
|
|
109
|
-
|
|
137
|
+
'https://api.example.com/openapi.json',
|
|
138
|
+
'./output-folder',
|
|
110
139
|
{
|
|
111
|
-
serverName:
|
|
112
|
-
baseUrl:
|
|
140
|
+
serverName: 'my-api',
|
|
141
|
+
baseUrl: 'https://api.example.com/v1',
|
|
113
142
|
port: 3000,
|
|
114
143
|
allowMutations: false, // block POST/PUT/PATCH/DELETE by default
|
|
115
|
-
includeTags: [
|
|
116
|
-
excludeTags: [
|
|
144
|
+
includeTags: ['public'], // only include tools tagged "public"
|
|
145
|
+
excludeTags: ['admin'], // exclude tools tagged "admin"
|
|
117
146
|
}
|
|
118
147
|
);
|
|
119
148
|
|
|
120
149
|
console.log(`Generated ${result.toolCount} tools`);
|
|
121
150
|
|
|
122
151
|
// Or just extract tools for custom processing
|
|
123
|
-
const spec = await loadOpenApiSpec(
|
|
152
|
+
const spec = await loadOpenApiSpec('./my-spec.json');
|
|
124
153
|
const tools = extractTools(spec, {
|
|
125
|
-
filterFn: (tool) => tool.riskLevel ===
|
|
126
|
-
excludeOperationIds: [
|
|
154
|
+
filterFn: (tool) => tool.riskLevel === 'low', // only safe read-only tools
|
|
155
|
+
excludeOperationIds: ['deleteUser'],
|
|
127
156
|
});
|
|
128
157
|
```
|
|
129
158
|
|
|
@@ -230,7 +259,7 @@ The generated server supports the OpenAI Apps SDK out of the box.
|
|
|
230
259
|
|
|
231
260
|
```javascript
|
|
232
261
|
const result = await generateMcpServer(specUrl, outputDir, {
|
|
233
|
-
filterFn: (tool) => tool.riskLevel ===
|
|
262
|
+
filterFn: (tool) => tool.riskLevel === 'low',
|
|
234
263
|
});
|
|
235
264
|
```
|
|
236
265
|
|
|
@@ -238,7 +267,7 @@ const result = await generateMcpServer(specUrl, outputDir, {
|
|
|
238
267
|
|
|
239
268
|
```javascript
|
|
240
269
|
const result = await generateMcpServer(specUrl, outputDir, {
|
|
241
|
-
filterFn: (tool) => [
|
|
270
|
+
filterFn: (tool) => ['get', 'post'].includes(tool.method),
|
|
242
271
|
});
|
|
243
272
|
```
|
|
244
273
|
|
|
@@ -247,9 +276,9 @@ const result = await generateMcpServer(specUrl, outputDir, {
|
|
|
247
276
|
```javascript
|
|
248
277
|
const result = await generateMcpServer(specUrl, outputDir, {
|
|
249
278
|
excludeOperationIds: [
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
279
|
+
'deleteUser',
|
|
280
|
+
'deleteAllData',
|
|
281
|
+
'adminReset',
|
|
253
282
|
],
|
|
254
283
|
});
|
|
255
284
|
```
|
|
@@ -258,7 +287,7 @@ const result = await generateMcpServer(specUrl, outputDir, {
|
|
|
258
287
|
|
|
259
288
|
```javascript
|
|
260
289
|
const result = await generateMcpServer(specUrl, outputDir, {
|
|
261
|
-
filterFn: (tool) => tool.pathTemplate.startsWith(
|
|
290
|
+
filterFn: (tool) => tool.pathTemplate.startsWith('/api/v2/'),
|
|
262
291
|
});
|
|
263
292
|
```
|
|
264
293
|
|
|
@@ -266,11 +295,11 @@ const result = await generateMcpServer(specUrl, outputDir, {
|
|
|
266
295
|
|
|
267
296
|
```javascript
|
|
268
297
|
const result = await generateMcpServer(specUrl, outputDir, {
|
|
269
|
-
excludeOperationIds: [
|
|
298
|
+
excludeOperationIds: ['deleteUser'],
|
|
270
299
|
allowMutations: false,
|
|
271
|
-
filterFn: (tool) =>
|
|
272
|
-
tool.riskLevel ===
|
|
273
|
-
tool.pathTemplate.includes(
|
|
300
|
+
filterFn: (tool) =>
|
|
301
|
+
tool.riskLevel === 'low' &&
|
|
302
|
+
tool.pathTemplate.includes('/public/'),
|
|
274
303
|
});
|
|
275
304
|
```
|
|
276
305
|
|
|
@@ -288,13 +317,8 @@ const result = await generateMcpServer(specUrl, outputDir, {
|
|
|
288
317
|
| HTTP hardening | ✅ Built-in | ❌ Manual |
|
|
289
318
|
| Production ready | ✅ Yes | ⚠️ Requires work |
|
|
290
319
|
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
```bash
|
|
294
|
-
npm install
|
|
295
|
-
node src/generate-mcp-use-server.js ./petstore.json ./out
|
|
296
|
-
```
|
|
320
|
+
---
|
|
297
321
|
|
|
298
|
-
|
|
322
|
+
[](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request)
|
|
299
323
|
|
|
300
|
-
|
|
324
|
+
Please star this repo for updates! 🌟
|
package/package.json
CHANGED
|
@@ -1,33 +1,247 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "api2ai",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "Generate
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
|
|
3
|
+
"version": "1.0.24",
|
|
4
|
+
"description": "Generate production-ready MCP servers from any OpenAPI specification using the highly-used and convenient [mcp-use](https://mcp-use.com) framework",
|
|
5
|
+
"license": "rights.institute/prosper",
|
|
6
|
+
"author": "vtempest",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/OpenSourceAGI/dev-tools-starter-agent.git",
|
|
10
|
+
"directory": "packages/api2ai-mcp-generator"
|
|
8
11
|
},
|
|
9
|
-
"
|
|
12
|
+
"homepage": "https://github.com/OpenSourceAGI/dev-tools-starter-agent/tree/master/packages/api2ai-mcp-generator",
|
|
13
|
+
"keywords": [
|
|
14
|
+
"mcp",
|
|
15
|
+
"mcp-server",
|
|
16
|
+
"model-context-protocol",
|
|
17
|
+
"openapi",
|
|
18
|
+
"api",
|
|
19
|
+
"ai",
|
|
20
|
+
"code-generator",
|
|
21
|
+
"zod"
|
|
22
|
+
],
|
|
10
23
|
"exports": {
|
|
11
|
-
".":
|
|
24
|
+
".": {
|
|
25
|
+
"types": "./dist/index.d.ts",
|
|
26
|
+
"import": "./dist/index.mjs",
|
|
27
|
+
"require": "./dist/index.js"
|
|
28
|
+
}
|
|
12
29
|
},
|
|
13
|
-
"
|
|
14
|
-
|
|
30
|
+
"main": "dist/index.js",
|
|
31
|
+
"module": "dist/index.mjs",
|
|
32
|
+
"types": "dist/index.d.ts",
|
|
33
|
+
"files": [
|
|
34
|
+
"dist"
|
|
35
|
+
],
|
|
36
|
+
"scripts": {
|
|
37
|
+
"build": "next build",
|
|
38
|
+
"db:create": "npm create cloud-db",
|
|
39
|
+
"db:generate": "drizzle-kit generate",
|
|
40
|
+
"db:push": "drizzle-kit push",
|
|
41
|
+
"db:studio": "concurrently \"drizzle-kit studio\" \"wait-on https://local.drizzle.studio && opener https://local.drizzle.studio\"",
|
|
42
|
+
"dev": "concurrently \"next dev\" \"wait-on http://localhost:3000 && opener http://localhost:3000\"",
|
|
43
|
+
"docs:check": "fumadocs check",
|
|
44
|
+
"docs:generate": "fumadocs-mdx",
|
|
45
|
+
"make": "concurrently \"next build && next start \" \"wait-on http://localhost:3000 && opener http://localhost:3000\"",
|
|
46
|
+
"start": "next start",
|
|
47
|
+
"test": "vitest run",
|
|
48
|
+
"test:watch": "vitest",
|
|
49
|
+
"coverage": "vitest run --coverage"
|
|
15
50
|
},
|
|
16
|
-
"
|
|
17
|
-
"
|
|
51
|
+
"dependencies": {
|
|
52
|
+
"@ai-sdk/react": "3.0.3",
|
|
53
|
+
"@aws-sdk/client-rds-data": "latest",
|
|
54
|
+
"@better-auth/core": "latest",
|
|
55
|
+
"@better-auth/stripe": "^1.4.7",
|
|
56
|
+
"@cloudflare/workers-types": "latest",
|
|
57
|
+
"@electric-sql/pglite": "latest",
|
|
58
|
+
"@emotion/is-prop-valid": "latest",
|
|
59
|
+
"@fumadocs/mdx-remote": "^1.4.3",
|
|
60
|
+
"@langchain/core": "^1.1.5",
|
|
61
|
+
"@langchain/groq": "^1.0.2",
|
|
62
|
+
"@langchain/openai": "^1.2.0",
|
|
63
|
+
"@libsql/client": "^0.15.15",
|
|
64
|
+
"@libsql/client-wasm": "latest",
|
|
65
|
+
"@lynx-js/react": "latest",
|
|
66
|
+
"@mixedbread/sdk": "latest",
|
|
67
|
+
"@neondatabase/serverless": "latest",
|
|
68
|
+
"@op-engineering/op-sqlite": "latest",
|
|
69
|
+
"@opentelemetry/api": "latest",
|
|
70
|
+
"@orama/core": "latest",
|
|
71
|
+
"@planetscale/database": "latest",
|
|
72
|
+
"@prisma/client": "latest",
|
|
73
|
+
"@radix-ui/react-accordion": "1.2.12",
|
|
74
|
+
"@radix-ui/react-alert-dialog": "1.1.15",
|
|
75
|
+
"@radix-ui/react-aspect-ratio": "1.1.8",
|
|
76
|
+
"@radix-ui/react-avatar": "^1.1.11",
|
|
77
|
+
"@radix-ui/react-checkbox": "1.3.3",
|
|
78
|
+
"@radix-ui/react-collapsible": "^1.1.12",
|
|
79
|
+
"@radix-ui/react-context-menu": "2.2.16",
|
|
80
|
+
"@radix-ui/react-dialog": "^1.1.15",
|
|
81
|
+
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
82
|
+
"@radix-ui/react-hover-card": "1.1.15",
|
|
83
|
+
"@radix-ui/react-label": "2.1.8",
|
|
84
|
+
"@radix-ui/react-menubar": "1.1.16",
|
|
85
|
+
"@radix-ui/react-navigation-menu": "1.2.14",
|
|
86
|
+
"@radix-ui/react-popover": "1.1.15",
|
|
87
|
+
"@radix-ui/react-presence": "1.1.5",
|
|
88
|
+
"@radix-ui/react-progress": "1.1.8",
|
|
89
|
+
"@radix-ui/react-radio-group": "^1.3.8",
|
|
90
|
+
"@radix-ui/react-scroll-area": "1.2.10",
|
|
91
|
+
"@radix-ui/react-select": "2.2.6",
|
|
92
|
+
"@radix-ui/react-separator": "^1.1.8",
|
|
93
|
+
"@radix-ui/react-slider": "1.3.6",
|
|
94
|
+
"@radix-ui/react-slot": "^1.2.4",
|
|
95
|
+
"@radix-ui/react-switch": "1.2.6",
|
|
96
|
+
"@radix-ui/react-tabs": "1.1.13",
|
|
97
|
+
"@radix-ui/react-toast": "1.2.15",
|
|
98
|
+
"@radix-ui/react-toggle": "1.1.10",
|
|
99
|
+
"@radix-ui/react-toggle-group": "1.1.11",
|
|
100
|
+
"@radix-ui/react-tooltip": "^1.2.8",
|
|
101
|
+
"@react-email/render": "latest",
|
|
102
|
+
"@react-three/drei": "^10.7.7",
|
|
103
|
+
"@react-three/fiber": "^9.4.2",
|
|
104
|
+
"@scalar/api-client-react": "latest",
|
|
105
|
+
"@scalar/api-reference": "^1.40.5",
|
|
106
|
+
"@scalar/api-reference-react": "^0.8.11",
|
|
107
|
+
"@shikijs/rehype": "^3.20.0",
|
|
108
|
+
"@shikijs/transformers": "^3.20.0",
|
|
109
|
+
"@silevis/reactgrid": "^4.1.17",
|
|
110
|
+
"@t3-oss/env-nextjs": "0.13.10",
|
|
111
|
+
"@tabler/icons-react": "^3.36.0",
|
|
112
|
+
"@tanstack/react-router": "latest",
|
|
113
|
+
"@tanstack/react-start": "latest",
|
|
114
|
+
"@tidbcloud/serverless": "latest",
|
|
115
|
+
"@types/better-sqlite3": "latest",
|
|
116
|
+
"@types/dompurify": "^3.2.0",
|
|
117
|
+
"@types/js-yaml": "^4.0.9",
|
|
118
|
+
"@types/marked": "^6.0.0",
|
|
119
|
+
"@types/pg": "latest",
|
|
120
|
+
"@types/sql.js": "latest",
|
|
121
|
+
"@upstash/redis": "latest",
|
|
122
|
+
"@vercel/analytics": "1.6.1",
|
|
123
|
+
"@vercel/postgres": "latest",
|
|
124
|
+
"@xata.io/client": "latest",
|
|
125
|
+
"ai": "6.0.3",
|
|
126
|
+
"algoliasearch": "latest",
|
|
127
|
+
"arktype": "latest",
|
|
128
|
+
"autoprefixer": "^10.4.22",
|
|
129
|
+
"axios": "^1.13.2",
|
|
130
|
+
"better-auth": "^1.4.7",
|
|
131
|
+
"better-sqlite3": "latest",
|
|
132
|
+
"bun-types": "latest",
|
|
133
|
+
"canvas": "latest",
|
|
134
|
+
"class-variance-authority": "^0.7.1",
|
|
135
|
+
"cli-highlight": "^2.1.11",
|
|
136
|
+
"clsx": "^2.1.1",
|
|
137
|
+
"cmdk": "^1.1.1",
|
|
138
|
+
"date-fns": "4.1.0",
|
|
139
|
+
"dompurify": "^3.3.1",
|
|
140
|
+
"dotenv": "^17.2.3",
|
|
141
|
+
"drizzle-orm": "^0.45.1",
|
|
142
|
+
"embla-carousel-react": "8.6.0",
|
|
143
|
+
"ethers": "^6.16.0",
|
|
144
|
+
"expo": "latest",
|
|
145
|
+
"expo-asset": "latest",
|
|
146
|
+
"expo-file-system": "latest",
|
|
147
|
+
"expo-gl": "latest",
|
|
148
|
+
"expo-sqlite": "latest",
|
|
149
|
+
"feed": "^5.1.0",
|
|
150
|
+
"fumadocs-core": "^16.2.5",
|
|
151
|
+
"fumadocs-mdx": "^14.1.1",
|
|
152
|
+
"fumadocs-openapi": "^10.1.4",
|
|
153
|
+
"fumadocs-twoslash": "^3.1.10",
|
|
154
|
+
"fumadocs-typescript": "^4.0.14",
|
|
155
|
+
"fumadocs-ui": "^16.2.5",
|
|
156
|
+
"gel": "latest",
|
|
157
|
+
"grab-url": "^1.0.15",
|
|
158
|
+
"hast-util-to-jsx-runtime": "2.3.6",
|
|
159
|
+
"highlight.js": "^11.11.1",
|
|
160
|
+
"jiti": "latest",
|
|
161
|
+
"js-yaml": "^4.1.1",
|
|
162
|
+
"jszip": "^3.10.1",
|
|
163
|
+
"katex": "^0.16.27",
|
|
164
|
+
"knex": "latest",
|
|
165
|
+
"kysely": "latest",
|
|
166
|
+
"langchain": "^1.2.0",
|
|
167
|
+
"less": "latest",
|
|
168
|
+
"lightningcss": "latest",
|
|
169
|
+
"linkedom": "^0.18.12",
|
|
170
|
+
"lucide-react": "^0.561.0",
|
|
171
|
+
"marked": "^17.0.1",
|
|
172
|
+
"mermaid": "^11.12.2",
|
|
173
|
+
"mongodb": "latest",
|
|
174
|
+
"motion": "^12.23.26",
|
|
175
|
+
"mysql2": "latest",
|
|
176
|
+
"next": "16.0.10",
|
|
177
|
+
"next-themes": "^0.4.6",
|
|
178
|
+
"pg": "latest",
|
|
179
|
+
"pinets": "^0.5.0",
|
|
180
|
+
"postgres": "latest",
|
|
181
|
+
"prisma": "latest",
|
|
182
|
+
"react": "19.2.3",
|
|
183
|
+
"react-day-picker": "9.12.0",
|
|
184
|
+
"react-dom": "19.2.3",
|
|
185
|
+
"react-hook-form": "^7.68.0",
|
|
186
|
+
"react-is": "^19.2.3",
|
|
187
|
+
"react-native": "latest",
|
|
188
|
+
"react-resizable-panels": "^3.0.6",
|
|
189
|
+
"react-router": "latest",
|
|
190
|
+
"rehype-katex": "^7.0.1",
|
|
191
|
+
"remark": "15.0.1",
|
|
192
|
+
"remark-gfm": "4.0.1",
|
|
193
|
+
"remark-math": "^6.0.0",
|
|
194
|
+
"remark-rehype": "11.1.2",
|
|
195
|
+
"resend": "^6.6.0",
|
|
196
|
+
"sass": "latest",
|
|
197
|
+
"sass-embedded": "latest",
|
|
198
|
+
"simplex-noise": "^4.0.3",
|
|
199
|
+
"siwe": "^3.0.0",
|
|
200
|
+
"solid-js": "latest",
|
|
201
|
+
"sonner": "^2.0.7",
|
|
202
|
+
"sql.js": "latest",
|
|
203
|
+
"sqlite3": "latest",
|
|
204
|
+
"stripe": "^20.0.0",
|
|
205
|
+
"stylus": "latest",
|
|
206
|
+
"sugarss": "latest",
|
|
207
|
+
"tailwind-merge": "^3.4.0",
|
|
208
|
+
"tailwindcss-animate": "^1.0.7",
|
|
209
|
+
"tavily": "^1.0.2",
|
|
210
|
+
"terser": "^5.44.1",
|
|
211
|
+
"three": "^0.182.0",
|
|
212
|
+
"three-globe": "^2.45.0",
|
|
213
|
+
"tsx": "latest",
|
|
214
|
+
"unist-util-visit": "5.0.0",
|
|
215
|
+
"valibot": "latest",
|
|
216
|
+
"vaul": "^1.1.2",
|
|
217
|
+
"viem": "^2.42.0",
|
|
218
|
+
"vitest": "latest",
|
|
219
|
+
"waku": "latest",
|
|
220
|
+
"yaml": "latest",
|
|
221
|
+
"zod": "4.1.13"
|
|
18
222
|
},
|
|
19
|
-
"
|
|
20
|
-
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
"
|
|
223
|
+
"devDependencies": {
|
|
224
|
+
"@fumadocs/cli": "^1.1.0",
|
|
225
|
+
"@tailwindcss/postcss": "^4.1.18",
|
|
226
|
+
"@types/node": "^25.0.2",
|
|
227
|
+
"@types/react": "^19.2.7",
|
|
228
|
+
"@types/react-dom": "^19.2.3",
|
|
229
|
+
"@types/three": "^0.182.0",
|
|
230
|
+
"@vitest/coverage-v8": "^4.1.0",
|
|
231
|
+
"concurrently": "^9.2.1",
|
|
232
|
+
"drizzle-kit": "^0.31.8",
|
|
233
|
+
"opener": "^1.5.2",
|
|
234
|
+
"postcss": "^8.5.6",
|
|
235
|
+
"tailwindcss": "^4.1.18",
|
|
236
|
+
"tw-animate-css": "1.4.0",
|
|
237
|
+
"typescript": "^5.9.3",
|
|
238
|
+
"vite": "^7.3.0",
|
|
239
|
+
"vite-plugin-dts": "^4.5.4",
|
|
240
|
+
"vitest": "^4.1.0",
|
|
241
|
+
"wait-on": "^9.0.3"
|
|
27
242
|
},
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"README.md"
|
|
243
|
+
"data": "dist/index.d.ts",
|
|
244
|
+
"trustedDependencies": [
|
|
245
|
+
"pg-native"
|
|
32
246
|
]
|
|
33
247
|
}
|