chore(deps): update dependencies and ESLint configuration

- Changed pnpm setting in eslint.config.mjs from true to false.
- Updated various dependencies in package.json to specific versions for better stability and compatibility.
- Removed optionalDependencies from package.json to streamline the dependency management.
- Refactored ai-agent.service.ts to replace ToolInterface with DynamicStructuredTool for improved type safety.

Signed-off-by: Innei <tukon479@gmail.com>
This commit is contained in:
Innei
2025-05-14 23:23:10 +08:00
parent 7047b76f58
commit 441bc8ae3b
9 changed files with 1851 additions and 2937 deletions

View File

@@ -48,122 +48,123 @@
"changelog": true
},
"dependencies": {
"@algolia/client-search": "catalog:",
"@antfu/install-pkg": "catalog:",
"@aws-sdk/client-s3": "catalog:",
"@babel/core": "catalog:",
"@babel/plugin-transform-modules-commonjs": "catalog:",
"@babel/plugin-transform-typescript": "catalog:",
"@babel/types": "catalog:",
"@fastify/cookie": "catalog:",
"@fastify/multipart": "catalog:",
"@fastify/static": "catalog:",
"@innei/next-async": "catalog:",
"@innei/pretty-logger-nestjs": "catalog:",
"@keyv/redis": "catalog:",
"@langchain/openai": "catalog:",
"@algolia/client-search": "^4.22.1",
"@antfu/install-pkg": "1.1.0",
"@aws-sdk/client-s3": "3.808.0",
"@babel/core": "7.27.1",
"@babel/plugin-transform-modules-commonjs": "7.27.1",
"@babel/plugin-transform-typescript": "7.27.1",
"@babel/types": "^7.27.1",
"@fastify/cookie": "11.0.2",
"@fastify/multipart": "9.0.3",
"@fastify/static": "8.1.1",
"@innei/next-async": "0.3.0",
"@innei/pretty-logger-nestjs": "0.3.3",
"@keyv/redis": "4.4.0",
"@langchain/openai": "0.5.10",
"@mx-space/compiled": "workspace:*",
"@nestjs/cache-manager": "catalog:",
"@nestjs/common": "catalog:",
"@nestjs/core": "catalog:",
"@nestjs/event-emitter": "catalog:",
"@nestjs/mapped-types": "catalog:",
"@nestjs/platform-fastify": "catalog:",
"@nestjs/platform-socket.io": "catalog:",
"@nestjs/schedule": "catalog:",
"@nestjs/throttler": "catalog:",
"@nestjs/websockets": "catalog:",
"@simplewebauthn/server": "catalog:",
"@socket.io/redis-adapter": "catalog:",
"@socket.io/redis-emitter": "catalog:",
"@typegoose/auto-increment": "catalog:",
"@typegoose/typegoose": "catalog:",
"@types/jsonwebtoken": "catalog:",
"algoliasearch": "catalog:",
"axios": "catalog:",
"axios-retry": "catalog:",
"bcryptjs": "catalog:",
"blurhash": "catalog:",
"cache-manager": "catalog:",
"class-transformer": "catalog:",
"class-validator": "catalog:",
"class-validator-jsonschema": "catalog:",
"cls-hooked": "catalog:",
"commander": "catalog:",
"dayjs": "catalog:",
"ejs": "catalog:",
"form-data": "catalog:",
"inquirer": "catalog:",
"isbot": "catalog:",
"js-yaml": "catalog:",
"json5": "catalog:",
"jsonwebtoken": "catalog:",
"jszip": "catalog:",
"keyv": "catalog:",
"langchain": "catalog:",
"linkedom": "catalog:",
"lodash": "catalog:",
"lru-cache": "catalog:",
"marked": "catalog:",
"mime-types": "catalog:",
"mkdirp": "catalog:",
"mongoose": "catalog:",
"mongoose-aggregate-paginate-v2": "catalog:",
"mongoose-autopopulate": "catalog:",
"mongoose-lean-getters": "catalog:",
"mongoose-lean-virtuals": "catalog:",
"mongoose-paginate-v2": "catalog:",
"node-machine-id": "catalog:",
"nodemailer": "catalog:",
"openai": "catalog:",
"pluralize": "catalog:",
"qs": "catalog:",
"reflect-metadata": "catalog:",
"remove-markdown": "catalog:",
"remove-md-codeblock": "catalog:",
"rxjs": "catalog:",
"semver": "catalog:",
"slugify": "catalog:",
"snakecase-keys": "catalog:",
"source-map-support": "catalog:",
"ua-parser-js": "catalog:",
"vm2": "catalog:",
"wildcard-match": "catalog:",
"xss": "catalog:",
"zx-cjs": "catalog:"
"@nestjs/cache-manager": "3.0.1",
"@nestjs/common": "11.1.1",
"@nestjs/core": "11.1.1",
"@nestjs/event-emitter": "3.0.1",
"@nestjs/mapped-types": "^2.1.0",
"@nestjs/platform-fastify": "11.1.1",
"@nestjs/platform-socket.io": "11.1.1",
"@nestjs/schedule": "6.0.0",
"@nestjs/throttler": "6.4.0",
"@nestjs/websockets": "11.1.1",
"@simplewebauthn/server": "10.0.1",
"@socket.io/redis-adapter": "8.3.0",
"@socket.io/redis-emitter": "5.1.0",
"@typegoose/auto-increment": "4.13.0",
"@typegoose/typegoose": "12.15.1",
"@types/jsonwebtoken": "9.0.9",
"algoliasearch": "4.24.0",
"axios": "^1.9.0",
"axios-retry": "4.5.0",
"bcryptjs": "^3.0.2",
"blurhash": "2.0.5",
"cache-manager": "6.4.3",
"class-transformer": "0.5.1",
"class-validator": "0.13.2",
"class-validator-jsonschema": "npm:@innei/class-validator-jsonschema@3.1.2",
"cls-hooked": "^4.2.2",
"commander": "13.1.0",
"dayjs": "1.11.13",
"ejs": "3.1.10",
"form-data": "4.0.2",
"inquirer": "^10.2.2",
"isbot": "5.1.28",
"js-yaml": "^4.1.0",
"json5": "2.2.3",
"jsonwebtoken": "9.0.2",
"jszip": "3.10.1",
"keyv": "5.3.3",
"langchain": "0.3.25",
"linkedom": "0.18.10",
"lodash": "^4.17.21",
"lru-cache": "11.1.0",
"marked": "15.0.11",
"mime-types": "^3.0.1",
"mkdirp": "^3.0.1",
"mongoose": "8.14.3",
"mongoose-aggregate-paginate-v2": "1.1.4",
"mongoose-autopopulate": "1.1.0",
"mongoose-lean-getters": "2.2.2",
"mongoose-lean-virtuals": "1.1.1",
"mongoose-paginate-v2": "1.9.0",
"node-machine-id": "1.1.12",
"nodemailer": "7.0.3",
"openai": "4.98.0",
"pluralize": "^8.0.0",
"qs": "6.14.0",
"reflect-metadata": "0.2.2",
"remove-markdown": "0.6.2",
"remove-md-codeblock": "0.0.4",
"rxjs": "7.8.2",
"semver": "7.7.2",
"slugify": "1.6.6",
"snakecase-keys": "6.0.0",
"source-map-support": "^0.5.21",
"ua-parser-js": "2.0.3",
"vm2": "3.9.19",
"wildcard-match": "5.1.4",
"xss": "1.0.15",
"zx-cjs": "7.0.7-0"
},
"devDependencies": {
"@langchain/core": "catalog:",
"@nestjs/cli": "catalog:",
"@nestjs/schematics": "catalog:",
"@nestjs/testing": "catalog:",
"@swc/core": "catalog:",
"@types/babel__core": "catalog:",
"@types/bcryptjs": "catalog:",
"@types/cls-hooked": "catalog:",
"@types/ejs": "catalog:",
"@types/get-image-colors": "catalog:",
"@types/js-yaml": "catalog:",
"@types/lodash": "catalog:",
"@types/mime-types": "catalog:",
"@types/mongoose-aggregate-paginate-v2": "catalog:",
"@types/node": "catalog:",
"@types/nodemailer": "catalog:",
"@types/qs": "catalog:",
"@types/remove-markdown": "catalog:",
"@types/semver": "catalog:",
"@types/ua-parser-js": "catalog:",
"@types/validator": "catalog:",
"@vercel/ncc": "catalog:",
"cron": "catalog:",
"ioredis": "catalog:",
"mongodb-memory-server": "catalog:",
"redis-memory-server": "catalog:",
"sharp": "catalog:",
"socket.io": "catalog:",
"unplugin-swc": "catalog:",
"vite": "catalog:",
"vite-tsconfig-paths": "catalog:",
"vitest": "catalog:"
"@langchain/core": "0.3.55",
"@nestjs/cli": "11.0.7",
"@nestjs/schematics": "11.0.5",
"@nestjs/testing": "11.1.1",
"@swc/core": "1.11.24",
"@types/babel__core": "7.20.5",
"@types/bcryptjs": "^3.0.0",
"@types/cls-hooked": "^4.3.9",
"@types/ejs": "3.1.5",
"@types/get-image-colors": "4.0.5",
"@types/js-yaml": "4.0.9",
"@types/lodash": "4.17.16",
"@types/mime-types": "2.1.4",
"@types/mongoose-aggregate-paginate-v2": "1.1.2",
"@types/node": "22.15.18",
"@types/nodemailer": "6.4.17",
"@types/qs": "6.9.18",
"@types/remove-markdown": "0.3.4",
"@types/semver": "7.7.0",
"@types/ua-parser-js": "0.7.39",
"@types/validator": "13.15.0",
"@vercel/ncc": "0.38.3",
"cron": "^3.5.0",
"ioredis": "5.6.1",
"mongodb-memory-server": "^10.1.4",
"redis-memory-server": "^0.12.1",
"sharp": "0.34.1",
"socket.io": "^4.8.1",
"typescript": "5.7.3",
"unplugin-swc": "1.5.2",
"vite": "5.4.10",
"vite-tsconfig-paths": "5.1.4",
"vitest": "1.5.2"
}
}
}

View File

@@ -1,10 +1,11 @@
import { AgentExecutor, createOpenAIToolsAgent } from 'langchain/agents'
import { ToolDefinition } from '@langchain/core/language_models/base'
import {
ChatPromptTemplate,
MessagesPlaceholder,
} from '@langchain/core/prompts'
import { DynamicStructuredTool, ToolInterface } from '@langchain/core/tools'
import { DynamicStructuredTool } from '@langchain/core/tools'
import { z } from '@mx-space/compiled/zod'
import { Injectable } from '@nestjs/common'
@@ -19,7 +20,7 @@ export class AIAgentService {
) {}
// 创建获取帖子的工具
private createGetPostTool(): ToolInterface {
private createGetPostTool(): DynamicStructuredTool {
return new DynamicStructuredTool({
name: 'get_post_by_id',
description: '根据ID获取博客文章',
@@ -38,7 +39,7 @@ export class AIAgentService {
}
// 创建获取帖子列表的工具
private createGetPostsTool(): ToolInterface {
private createGetPostsTool(): DynamicStructuredTool {
return new DynamicStructuredTool({
name: 'get_posts',
description: '获取博客文章列表',
@@ -58,7 +59,7 @@ export class AIAgentService {
}
// 创建获取笔记的工具
private createGetNoteTool(): ToolInterface {
private createGetNoteTool(): DynamicStructuredTool {
return new DynamicStructuredTool({
name: 'get_note_by_id',
description: '根据ID获取笔记',
@@ -77,7 +78,7 @@ export class AIAgentService {
}
// 创建获取笔记列表的工具
private createGetNotesTool(): ToolInterface {
private createGetNotesTool(): DynamicStructuredTool {
return new DynamicStructuredTool({
name: 'get_notes',
description: '获取笔记列表',
@@ -96,7 +97,7 @@ export class AIAgentService {
})
}
private createGetLatestPostTool(): ToolInterface {
private createGetLatestPostTool(): DynamicStructuredTool {
return new DynamicStructuredTool({
name: 'get_latest_post',
description: '获取最新的一篇博客文章',
@@ -108,7 +109,7 @@ export class AIAgentService {
})
}
private createGetLatestNotesTool(): ToolInterface {
private createGetLatestNotesTool(): DynamicStructuredTool {
return new DynamicStructuredTool({
name: 'get_latest_notes',
description: '获取最新的一篇笔记',
@@ -121,7 +122,7 @@ export class AIAgentService {
}
// 创建获取分类的工具
private createGetCategoryTool(): ToolInterface {
private createGetCategoryTool(): DynamicStructuredTool {
return new DynamicStructuredTool({
name: 'get_category_by_id',
description: '根据ID获取分类',
@@ -140,7 +141,7 @@ export class AIAgentService {
}
// 创建获取所有分类的工具
private createGetAllCategoriesTools(): ToolInterface {
private createGetAllCategoriesTools(): DynamicStructuredTool {
return new DynamicStructuredTool({
name: 'get_all_categories',
description: '获取所有分类及其文章数量',
@@ -157,7 +158,7 @@ export class AIAgentService {
}
// 创建获取分类下文章的工具
private createGetPostsByCategoryTool(): ToolInterface {
private createGetPostsByCategoryTool(): DynamicStructuredTool {
return new DynamicStructuredTool({
name: 'get_posts_by_category',
description: '获取指定分类下的所有文章',
@@ -176,7 +177,7 @@ export class AIAgentService {
}
// 创建获取标签统计的工具
private createGetTagsSummaryTool(): ToolInterface {
private createGetTagsSummaryTool(): DynamicStructuredTool {
return new DynamicStructuredTool({
name: 'get_tags_summary',
description: '获取所有标签及其文章数量统计',
@@ -193,7 +194,7 @@ export class AIAgentService {
}
// 创建获取标签下文章的工具
private createGetPostsByTagTool(): ToolInterface {
private createGetPostsByTagTool(): DynamicStructuredTool {
return new DynamicStructuredTool({
name: 'get_posts_by_tag',
description: '获取指定标签下的所有文章',
@@ -212,7 +213,7 @@ export class AIAgentService {
}
// 创建获取页面的工具
private createGetPageTool(): ToolInterface {
private createGetPageTool(): DynamicStructuredTool {
return new DynamicStructuredTool({
name: 'get_page_by_id',
description: '根据ID获取页面',
@@ -231,7 +232,7 @@ export class AIAgentService {
}
// 创建获取所有页面的工具
private createGetAllPagesTool(): ToolInterface {
private createGetAllPagesTool(): DynamicStructuredTool {
return new DynamicStructuredTool({
name: 'get_all_pages',
description: '获取所有页面',
@@ -248,7 +249,7 @@ export class AIAgentService {
}
// 创建获取所有说说的工具
private createGetAllSaysTool(): ToolInterface {
private createGetAllSaysTool(): DynamicStructuredTool {
return new DynamicStructuredTool({
name: 'get_all_says',
description: '获取所有说说/状态更新',
@@ -265,7 +266,7 @@ export class AIAgentService {
}
// 创建获取随机说说的工具
private createGetRandomSayTool(): ToolInterface {
private createGetRandomSayTool(): DynamicStructuredTool {
return new DynamicStructuredTool({
name: 'get_random_say',
description: '获取随机一条说说/状态更新',
@@ -282,7 +283,7 @@ export class AIAgentService {
}
// 创建获取所有动态的工具
private createGetAllRecentlyTool(): ToolInterface {
private createGetAllRecentlyTool(): DynamicStructuredTool {
return new DynamicStructuredTool({
name: 'get_all_recently',
description: '获取所有动态/活动',
@@ -299,7 +300,7 @@ export class AIAgentService {
}
// 创建获取特定动态的工具
private createGetRecentlyByIdTool(): ToolInterface {
private createGetRecentlyByIdTool(): DynamicStructuredTool {
return new DynamicStructuredTool({
name: 'get_recently_by_id',
description: '根据ID获取特定动态/活动',
@@ -318,7 +319,7 @@ export class AIAgentService {
}
// 创建获取最新动态的工具
private createGetLatestRecentlyTool(): ToolInterface {
private createGetLatestRecentlyTool(): DynamicStructuredTool {
return new DynamicStructuredTool({
name: 'get_latest_recently',
description: '获取最新的一条动态/活动',
@@ -335,7 +336,7 @@ export class AIAgentService {
}
// 创建获取分页动态的工具
private createGetRecentlyOffsetTool(): ToolInterface {
private createGetRecentlyOffsetTool(): DynamicStructuredTool {
return new DynamicStructuredTool({
name: 'get_recently_offset',
description: '获取指定范围的动态/活动',
@@ -360,7 +361,7 @@ export class AIAgentService {
}
// 创建获取评论列表的工具
private createGetCommentsTool(): ToolInterface {
private createGetCommentsTool(): DynamicStructuredTool {
return new DynamicStructuredTool({
name: 'get_comments',
description: '获取所有评论,可按状态筛选',
@@ -385,7 +386,7 @@ export class AIAgentService {
}
// 创建获取内容评论的工具
private createGetContentCommentsTool(): ToolInterface {
private createGetContentCommentsTool(): DynamicStructuredTool {
return new DynamicStructuredTool({
name: 'get_content_comments',
description: '获取特定内容的评论',

View File

@@ -4,7 +4,7 @@ export default sxzz(
{
markdown: false,
prettier: true,
pnpm: true,
pnpm: false,
vue: false,
unocss: false,
sortKeys: false,

View File

@@ -19,29 +19,25 @@
"lint": "pnpm -C \"apps/core\" run lint",
"publish:core": "cd apps/core && npm run publish"
},
"optionalDependencies": {
"mongodb-memory-server": "10.1.4",
"redis-memory-server": "0.12.1"
},
"dependencies": {
"@langchain/langgraph": "catalog:",
"zx-cjs": "catalog:"
"@langchain/langgraph": "0.2.68",
"zx-cjs": "7.0.7-0"
},
"devDependencies": {
"@innei/prettier": "catalog:",
"@sxzz/eslint-config": "catalog:",
"@types/node": "catalog:",
"cross-env": "catalog:",
"eslint": "catalog:",
"lint-staged": "catalog:",
"prettier": "catalog:",
"rimraf": "catalog:",
"simple-git-hooks": "catalog:",
"ts-node": "catalog:",
"tsconfig-paths": "catalog:",
"tsup": "catalog:",
"typescript": "catalog:",
"vite-tsconfig-paths": "catalog:"
"@innei/prettier": "0.15.0",
"@sxzz/eslint-config": "7.0.0",
"@types/node": "22.15.3",
"cross-env": "7.0.3",
"eslint": "^9.24.0",
"lint-staged": "15.5.0",
"prettier": "3.5.3",
"rimraf": "6.0.1",
"simple-git-hooks": "2.12.1",
"ts-node": "10.9.2",
"tsconfig-paths": "4.2.0",
"tsup": "8.4.0",
"typescript": "5.7.3",
"vite-tsconfig-paths": "5.1.4"
},
"resolutions": {
"get-pixels@^3>request": "./external/request",

View File

@@ -44,19 +44,19 @@
"dev": "vitest"
},
"devDependencies": {
"@types/cors": "catalog:",
"@types/express": "catalog:",
"@types/lodash": "catalog:",
"abort-controller": "catalog:",
"axios": "catalog:",
"camelcase-keys": "catalog:",
"cors": "catalog:",
"express": "catalog:",
"form-data": "catalog:",
"lodash": "catalog:",
"tsup": "catalog:",
"umi-request": "catalog:",
"vite": "catalog:",
"vitest": "catalog:"
"@types/cors": "2.8.17",
"@types/express": "5.0.1",
"@types/lodash": "4.17.16",
"abort-controller": "3.0.0",
"axios": "^1.9.0",
"camelcase-keys": "^9.1.3",
"cors": "2.8.5",
"express": "4.21.2",
"form-data": "4.0.2",
"lodash": "^4.17.21",
"tsup": "8.4.0",
"umi-request": "1.4.0",
"vite": "5.4.10",
"vitest": "1.5.2"
}
}
}

View File

@@ -13,9 +13,9 @@
"build": "tsup"
},
"devDependencies": {
"better-auth": "catalog:",
"nanoid": "catalog:",
"zod": "catalog:",
"zx": "catalog:"
"better-auth": "1.2.5",
"nanoid": "5.1.5",
"zod": "3.24.3",
"zx": "7.2.3"
}
}
}

View File

@@ -21,7 +21,7 @@
"build": "node scripts/generate.js && tsup && node scripts/post-build.cjs"
},
"devDependencies": {
"express": "catalog:"
"express": "4.21.2"
},
"bump": {
"before": [
@@ -35,4 +35,4 @@
"tag": false,
"commit_message": "chore(release): bump @mx-space/webhook to v${NEW_VERSION}"
}
}
}

4281
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,143 +1,12 @@
packages:
- packages/*
- apps/*
catalog:
'@algolia/client-search': ^4.22.1
'@antfu/install-pkg': 1.0.0
'@aws-sdk/client-s3': 3.802.0
'@babel/core': 7.27.1
'@babel/plugin-transform-modules-commonjs': 7.27.1
'@babel/plugin-transform-typescript': 7.27.1
'@babel/types': ^7.27.1
'@fastify/cookie': 11.0.2
'@fastify/multipart': 9.0.3
'@fastify/static': 8.1.1
'@innei/next-async': 0.3.0
'@innei/prettier': 0.15.0
'@innei/pretty-logger-nestjs': 0.3.3
'@keyv/redis': 4.4.0
'@langchain/core': 0.3.51
'@langchain/langgraph': 0.2.68
'@langchain/openai': 0.5.10
'@modelcontextprotocol/sdk': 1.11.0
'@nestjs/cache-manager': 3.0.1
'@nestjs/cli': 11.0.7
'@nestjs/common': 11.1.0
'@nestjs/core': 11.1.0
'@nestjs/event-emitter': 3.0.1
'@nestjs/mapped-types': ^2.1.0
'@nestjs/platform-fastify': 11.1.0
'@nestjs/platform-socket.io': 11.1.0
'@nestjs/schedule': 6.0.0
'@nestjs/schematics': 11.0.5
'@nestjs/testing': 11.1.0
'@nestjs/throttler': 6.4.0
'@nestjs/websockets': 11.1.0
'@simplewebauthn/server': 10.0.1
'@socket.io/redis-adapter': 8.3.0
'@socket.io/redis-emitter': 5.1.0
'@swc/core': 1.11.24
'@sxzz/eslint-config': 7.0.0
'@typegoose/auto-increment': 4.13.0
'@typegoose/typegoose': 12.15.0
'@types/babel__core': 7.20.5
'@types/bcryptjs': ^3.0.0
'@types/cls-hooked': ^4.3.9
'@types/cors': 2.8.17
'@types/ejs': 3.1.5
'@types/express': 5.0.1
'@types/get-image-colors': 4.0.5
'@types/js-yaml': 4.0.9
'@types/jsonwebtoken': 9.0.9
'@types/lodash': 4.17.16
'@types/mime-types': 2.1.4
'@types/mongoose-aggregate-paginate-v2': 1.0.12
'@types/node': 22.15.3
'@types/nodemailer': 6.4.17
'@types/qs': 6.9.18
'@types/remove-markdown': 0.3.4
'@types/semver': 7.7.0
'@types/ua-parser-js': 0.7.39
'@types/validator': 13.15.0
'@vercel/ncc': 0.38.3
abort-controller: 3.0.0
algoliasearch: 4.24.0
axios: ^1.9.0
axios-retry: 4.5.0
bcryptjs: ^3.0.2
better-auth: 1.2.5
blurhash: 2.0.5
cache-manager: 6.4.2
camelcase-keys: ^9.1.3
class-transformer: 0.5.1
class-validator: 0.13.2
class-validator-jsonschema: npm:@innei/class-validator-jsonschema@3.1.2
cls-hooked: ^4.2.2
commander: 13.1.0
cors: 2.8.5
cron: ^3.5.0
cross-env: 7.0.3
dayjs: 1.11.13
ejs: 3.1.10
eslint: ^9.24.0
express: 4.21.2
form-data: 4.0.2
inquirer: ^10.2.2
ioredis: 5.6.1
isbot: 5.1.27
js-yaml: ^4.1.0
json5: 2.2.3
jsonwebtoken: 9.0.2
jszip: 3.10.1
keyv: 5.3.3
langchain: 0.3.24
linkedom: 0.18.10
lint-staged: 15.5.0
lodash: ^4.17.21
lru-cache: 11.1.0
marked: 15.0.11
mime-types: ^3.0.1
mkdirp: ^3.0.1
mongodb-memory-server: ^10.1.4
mongoose: 8.14.1
mongoose-aggregate-paginate-v2: 1.1.4
mongoose-autopopulate: 1.1.0
mongoose-lean-getters: 2.2.1
mongoose-lean-virtuals: 1.1.0
mongoose-paginate-v2: 1.9.0
nanoid: 5.1.5
node-machine-id: 1.1.12
nodemailer: 7.0.0
openai: 4.97.0
pluralize: ^8.0.0
prettier: 3.5.3
qs: 6.14.0
redis-memory-server: ^0.12.1
reflect-metadata: 0.2.2
remove-markdown: 0.6.2
remove-md-codeblock: 0.0.4
rimraf: 6.0.1
rxjs: 7.8.2
semver: 7.7.1
sharp: 0.34.1
simple-git-hooks: 2.12.1
slugify: 1.6.6
snakecase-keys: 6.0.0
socket.io: ^4.8.1
source-map-support: ^0.5.21
ts-node: 10.9.2
tsconfig-paths: 4.2.0
tsup: 8.4.0
typescript: 5.8.3
ua-parser-js: 2.0.3
umi-request: 1.4.0
unplugin-swc: 1.5.2
vite: 5.4.10
vite-tsconfig-paths: 5.1.4
vitest: 1.5.2
vm2: 3.9.19
wildcard-match: 5.1.4
xss: 1.0.15
zod: 3.24.3
zx: 7.2.3
zx-cjs: 7.0.7-0
onlyBuiltDependencies:
- '@nestjs/core'
- '@swc/core'
- esbuild
- mongodb-memory-server
- redis-memory-server
- sharp
- simple-git-hooks
- unrs-resolver