@coze-arch/cli 0.0.1-alpha.77c1b0 → 0.0.1-alpha.a3fb1a

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.
Files changed (114) hide show
  1. package/lib/__templates__/expo/.cozeproj/scripts/deploy_build.sh +21 -15
  2. package/lib/__templates__/expo/.cozeproj/scripts/deploy_run.sh +28 -14
  3. package/lib/__templates__/expo/client/scripts/install-missing-deps.js +36 -12
  4. package/lib/__templates__/expo/metro.config.js +15 -15
  5. package/lib/__templates__/expo/package.json +12 -2
  6. package/lib/__templates__/expo/pnpm-lock.yaml +131 -4
  7. package/lib/__templates__/nextjs/.babelrc +15 -0
  8. package/lib/__templates__/nextjs/.coze +3 -3
  9. package/lib/__templates__/nextjs/README.md +341 -19
  10. package/lib/__templates__/nextjs/components.json +21 -0
  11. package/lib/__templates__/nextjs/package.json +57 -1
  12. package/lib/__templates__/nextjs/pnpm-lock.yaml +8953 -1509
  13. package/lib/__templates__/nextjs/scripts/dev.sh +2 -1
  14. package/lib/__templates__/nextjs/server.mjs +50 -0
  15. package/lib/__templates__/nextjs/src/app/globals.css +99 -8
  16. package/lib/__templates__/nextjs/src/app/layout.tsx +4 -0
  17. package/lib/__templates__/nextjs/src/components/ui/accordion.tsx +66 -0
  18. package/lib/__templates__/nextjs/src/components/ui/alert-dialog.tsx +157 -0
  19. package/lib/__templates__/nextjs/src/components/ui/alert.tsx +66 -0
  20. package/lib/__templates__/nextjs/src/components/ui/aspect-ratio.tsx +11 -0
  21. package/lib/__templates__/nextjs/src/components/ui/avatar.tsx +53 -0
  22. package/lib/__templates__/nextjs/src/components/ui/badge.tsx +46 -0
  23. package/lib/__templates__/nextjs/src/components/ui/breadcrumb.tsx +109 -0
  24. package/lib/__templates__/nextjs/src/components/ui/button-group.tsx +83 -0
  25. package/lib/__templates__/nextjs/src/components/ui/button.tsx +62 -0
  26. package/lib/__templates__/nextjs/src/components/ui/calendar.tsx +220 -0
  27. package/lib/__templates__/nextjs/src/components/ui/card.tsx +92 -0
  28. package/lib/__templates__/nextjs/src/components/ui/carousel.tsx +241 -0
  29. package/lib/__templates__/nextjs/src/components/ui/chart.tsx +357 -0
  30. package/lib/__templates__/nextjs/src/components/ui/checkbox.tsx +32 -0
  31. package/lib/__templates__/nextjs/src/components/ui/collapsible.tsx +33 -0
  32. package/lib/__templates__/nextjs/src/components/ui/command.tsx +184 -0
  33. package/lib/__templates__/nextjs/src/components/ui/context-menu.tsx +252 -0
  34. package/lib/__templates__/nextjs/src/components/ui/dialog.tsx +143 -0
  35. package/lib/__templates__/nextjs/src/components/ui/drawer.tsx +135 -0
  36. package/lib/__templates__/nextjs/src/components/ui/dropdown-menu.tsx +257 -0
  37. package/lib/__templates__/nextjs/src/components/ui/empty.tsx +104 -0
  38. package/lib/__templates__/nextjs/src/components/ui/field.tsx +248 -0
  39. package/lib/__templates__/nextjs/src/components/ui/form.tsx +167 -0
  40. package/lib/__templates__/nextjs/src/components/ui/hover-card.tsx +44 -0
  41. package/lib/__templates__/nextjs/src/components/ui/input-group.tsx +170 -0
  42. package/lib/__templates__/nextjs/src/components/ui/input-otp.tsx +77 -0
  43. package/lib/__templates__/nextjs/src/components/ui/input.tsx +21 -0
  44. package/lib/__templates__/nextjs/src/components/ui/item.tsx +193 -0
  45. package/lib/__templates__/nextjs/src/components/ui/kbd.tsx +28 -0
  46. package/lib/__templates__/nextjs/src/components/ui/label.tsx +24 -0
  47. package/lib/__templates__/nextjs/src/components/ui/menubar.tsx +276 -0
  48. package/lib/__templates__/nextjs/src/components/ui/navigation-menu.tsx +168 -0
  49. package/lib/__templates__/nextjs/src/components/ui/pagination.tsx +127 -0
  50. package/lib/__templates__/nextjs/src/components/ui/popover.tsx +48 -0
  51. package/lib/__templates__/nextjs/src/components/ui/progress.tsx +31 -0
  52. package/lib/__templates__/nextjs/src/components/ui/radio-group.tsx +45 -0
  53. package/lib/__templates__/nextjs/src/components/ui/resizable.tsx +56 -0
  54. package/lib/__templates__/nextjs/src/components/ui/scroll-area.tsx +58 -0
  55. package/lib/__templates__/nextjs/src/components/ui/select.tsx +190 -0
  56. package/lib/__templates__/nextjs/src/components/ui/separator.tsx +28 -0
  57. package/lib/__templates__/nextjs/src/components/ui/sheet.tsx +139 -0
  58. package/lib/__templates__/nextjs/src/components/ui/sidebar.tsx +726 -0
  59. package/lib/__templates__/nextjs/src/components/ui/skeleton.tsx +13 -0
  60. package/lib/__templates__/nextjs/src/components/ui/slider.tsx +63 -0
  61. package/lib/__templates__/nextjs/src/components/ui/sonner.tsx +40 -0
  62. package/lib/__templates__/nextjs/src/components/ui/spinner.tsx +16 -0
  63. package/lib/__templates__/nextjs/src/components/ui/switch.tsx +31 -0
  64. package/lib/__templates__/nextjs/src/components/ui/table.tsx +116 -0
  65. package/lib/__templates__/nextjs/src/components/ui/tabs.tsx +66 -0
  66. package/lib/__templates__/nextjs/src/components/ui/textarea.tsx +18 -0
  67. package/lib/__templates__/nextjs/src/components/ui/toggle-group.tsx +83 -0
  68. package/lib/__templates__/nextjs/src/components/ui/toggle.tsx +47 -0
  69. package/lib/__templates__/nextjs/src/components/ui/tooltip.tsx +61 -0
  70. package/lib/__templates__/nextjs/src/hooks/use-mobile.ts +19 -0
  71. package/lib/__templates__/nextjs/src/lib/utils.ts +6 -0
  72. package/lib/__templates__/nextjs/template.config.js +1 -1
  73. package/lib/__templates__/templates.json +1 -39
  74. package/lib/__templates__/vite/.coze +3 -3
  75. package/lib/__templates__/vite/README.md +204 -26
  76. package/lib/__templates__/vite/template.config.js +2 -2
  77. package/lib/cli.js +42 -8
  78. package/package.json +5 -2
  79. package/lib/__templates__/react-rsbuild/.coze +0 -11
  80. package/lib/__templates__/react-rsbuild/.vscode/settings.json +0 -121
  81. package/lib/__templates__/react-rsbuild/README.md +0 -61
  82. package/lib/__templates__/react-rsbuild/_gitignore +0 -97
  83. package/lib/__templates__/react-rsbuild/_npmrc +0 -22
  84. package/lib/__templates__/react-rsbuild/package.json +0 -31
  85. package/lib/__templates__/react-rsbuild/pnpm-lock.yaml +0 -997
  86. package/lib/__templates__/react-rsbuild/rsbuild.config.ts +0 -13
  87. package/lib/__templates__/react-rsbuild/scripts/build.sh +0 -14
  88. package/lib/__templates__/react-rsbuild/scripts/dev.sh +0 -51
  89. package/lib/__templates__/react-rsbuild/scripts/start.sh +0 -15
  90. package/lib/__templates__/react-rsbuild/src/App.tsx +0 -60
  91. package/lib/__templates__/react-rsbuild/src/index.css +0 -21
  92. package/lib/__templates__/react-rsbuild/src/index.html +0 -12
  93. package/lib/__templates__/react-rsbuild/src/index.tsx +0 -16
  94. package/lib/__templates__/react-rsbuild/tailwind.config.js +0 -9
  95. package/lib/__templates__/react-rsbuild/template.config.js +0 -54
  96. package/lib/__templates__/react-rsbuild/tsconfig.json +0 -17
  97. package/lib/__templates__/rsbuild/.coze +0 -11
  98. package/lib/__templates__/rsbuild/.vscode/settings.json +0 -7
  99. package/lib/__templates__/rsbuild/README.md +0 -61
  100. package/lib/__templates__/rsbuild/_gitignore +0 -97
  101. package/lib/__templates__/rsbuild/_npmrc +0 -22
  102. package/lib/__templates__/rsbuild/package.json +0 -24
  103. package/lib/__templates__/rsbuild/pnpm-lock.yaml +0 -888
  104. package/lib/__templates__/rsbuild/rsbuild.config.ts +0 -12
  105. package/lib/__templates__/rsbuild/scripts/build.sh +0 -14
  106. package/lib/__templates__/rsbuild/scripts/dev.sh +0 -51
  107. package/lib/__templates__/rsbuild/scripts/start.sh +0 -15
  108. package/lib/__templates__/rsbuild/src/index.css +0 -21
  109. package/lib/__templates__/rsbuild/src/index.html +0 -12
  110. package/lib/__templates__/rsbuild/src/index.ts +0 -5
  111. package/lib/__templates__/rsbuild/src/main.ts +0 -65
  112. package/lib/__templates__/rsbuild/tailwind.config.js +0 -9
  113. package/lib/__templates__/rsbuild/template.config.js +0 -56
  114. package/lib/__templates__/rsbuild/tsconfig.json +0 -16
@@ -29,19 +29,25 @@ check_command() {
29
29
  write_log() {
30
30
  local level="${1:-INFO}"
31
31
  local msg="${2:-}"
32
- python - "$LOG_FILE" "$level" "$msg" <<'PY'
33
- import os,sys,json,time
34
- from datetime import datetime, timezone, timedelta
35
- path, level, msg = sys.argv[1], sys.argv[2].upper(), sys.argv[3]
36
- ts = int(time.time()*1000)
37
- tz = timezone(timedelta(hours=8))
38
- dt_str = datetime.now(tz).strftime('%Y-%m-%d %H:%M:%S')
39
- msg = msg.replace('\\n', '\n')
40
- msg = f"{dt_str} [{level}] {msg}"
41
- with open(path,'a',encoding='utf-8',buffering=1) as f:
42
- f.write(json.dumps({"level":level,"message":msg,"timestamp":ts},ensure_ascii=False)+'\n')
43
- f.flush(); os.fsync(f.fileno())
44
- PY
32
+ node -e '
33
+ const fs=require("fs");
34
+ const path=process.argv[1];
35
+ const level=(process.argv[2]||"").toUpperCase();
36
+ let msg=String(process.argv[3]||"");
37
+ const ts=Date.now();
38
+ const dt=new Date();
39
+ const parts=new Intl.DateTimeFormat("en-GB",{timeZone:"Asia/Shanghai",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:false}).formatToParts(dt);
40
+ const o={};
41
+ for(const p of parts){o[p.type]=p.value}
42
+ const dt_str=`${o.year}-${o.month}-${o.day} ${o.hour}:${o.minute}:${o.second}`;
43
+ msg=msg.replace(/\\n/g,"\n");
44
+ msg=`${dt_str} [${level}] ${msg}`;
45
+ const record=JSON.stringify({level, message: msg, timestamp: ts},null,0);
46
+ const fd=fs.openSync(path,"a");
47
+ fs.writeSync(fd, record+"\n", null, "utf8");
48
+ fs.fsyncSync(fd);
49
+ fs.closeSync(fd);
50
+ ' "$LOG_FILE" "$level" "$msg"
45
51
 
46
52
  case "$level" in
47
53
  INFO) info "$msg" ;;
@@ -63,8 +69,8 @@ fi
63
69
  write_log "INFO" "开始执行构建脚本(build_dev.sh)..."
64
70
  write_log "INFO" "正在检查依赖命令是否存在..."
65
71
  # 检查核心命令
66
- check_command "pip"
67
- check_command "python"
72
+ # check_command "pip"
73
+ # check_command "python"
68
74
  check_command "pnpm"
69
75
  check_command "npm"
70
76
 
@@ -97,19 +97,25 @@ ensure_port() {
97
97
  write_log() {
98
98
  local level="${1:-INFO}"
99
99
  local msg="${2:-}"
100
- python - "$LOG_FILE" "$level" "$msg" <<'PY'
101
- import os,sys,json,time
102
- from datetime import datetime, timezone, timedelta
103
- path, level, msg = sys.argv[1], sys.argv[2].upper(), sys.argv[3]
104
- ts = int(time.time()*1000)
105
- msg = msg.replace('\\n', '\n')
106
- tz = timezone(timedelta(hours=8))
107
- dt_str = datetime.now(tz).strftime('%Y-%m-%d %H:%M:%S')
108
- msg = f"{dt_str} [{level}] {msg}"
109
- with open(path,'a',encoding='utf-8',buffering=1) as f:
110
- f.write(json.dumps({"level":level,"message":msg,"timestamp":ts},ensure_ascii=False)+'\n')
111
- f.flush(); os.fsync(f.fileno())
112
- PY
100
+ node -e '
101
+ const fs=require("fs");
102
+ const path=process.argv[1];
103
+ const level=(process.argv[2]||"").toUpperCase();
104
+ let msg=String(process.argv[3]||"");
105
+ const ts=Date.now();
106
+ msg=msg.replace(/\\n/g,"\n");
107
+ const dt=new Date();
108
+ const parts=new Intl.DateTimeFormat("en-GB",{timeZone:"Asia/Shanghai",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:false}).formatToParts(dt);
109
+ const o={};
110
+ for(const p of parts){o[p.type]=p.value}
111
+ const dt_str=`${o.year}-${o.month}-${o.day} ${o.hour}:${o.minute}:${o.second}`;
112
+ msg=`${dt_str} [${level}] ${msg}`;
113
+ const record=JSON.stringify({level, message: msg, timestamp: ts},null,0);
114
+ const fd=fs.openSync(path,"a");
115
+ fs.writeSync(fd, record+"\n", null, "utf8");
116
+ fs.fsyncSync(fd);
117
+ fs.closeSync(fd);
118
+ ' "$LOG_FILE" "$level" "$msg"
113
119
  case "$level" in
114
120
  INFO) echo -e "\033[32m[INFO] $msg\033[0m" ;;
115
121
  WARN) echo -e "\033[33m[WARN] $msg\033[0m" ;;
@@ -157,7 +163,7 @@ write_log "INFO" "==================== 开始启动 ===================="
157
163
  write_log "INFO" "开始执行服务启动脚本(start_dev.sh)..."
158
164
  write_log "INFO" "正在检查依赖命令和目录是否存在..."
159
165
  # 检查核心命令
160
- check_command "python"
166
+ # check_command "python"
161
167
  check_command "npm"
162
168
  check_command "pnpm"
163
169
  check_command "lsof"
@@ -254,4 +260,12 @@ if [ -f "$ROOT_DIR/post_run.py" ]; then
254
260
  write_log "INFO" "启动检查结束"
255
261
  fi
256
262
 
263
+ write_log "INFO" "检查 Nginx 端口 (5000)..."
264
+ if is_port_free 5000; then
265
+ write_log "INFO" "端口 5000 未被占用,正在启动 Nginx..."
266
+ service nginx start
267
+ else
268
+ write_log "INFO" "端口 5000 已被占用,跳过 Nginx 启动"
269
+ fi
270
+
257
271
  write_log "INFO" "==================== 服务启动完成 ===================="
@@ -18,7 +18,7 @@ try {
18
18
  try {
19
19
  depcheckOutput = execSync('npx depcheck --json', {
20
20
  encoding: 'utf-8',
21
- stdio: ['pipe', 'pipe', 'pipe']
21
+ stdio: ['pipe', 'pipe', 'pipe'],
22
22
  });
23
23
  } catch (execError) {
24
24
  // depcheck 返回非零退出码时仍然有输出
@@ -30,10 +30,34 @@ try {
30
30
  }
31
31
 
32
32
  const result = JSON.parse(depcheckOutput);
33
-
33
+
34
34
  // 获取缺失的依赖
35
35
  const missing = result.missing || {};
36
- const missingPackages = Object.keys(missing).filter(pkg => !pkg.startsWith('@api/') && !pkg.startsWith('@/') && pkg !== '@api');
36
+
37
+ // 需要忽略的文件模式
38
+ const ignoreFilePatterns = [
39
+ /template\.config\.(ts|js)$/, // 模板配置文件
40
+ /\.template\./, // 其他模板文件
41
+ ];
42
+
43
+ // 过滤包:排除内部别名和只被模板文件引用的包
44
+ const missingPackages = Object.keys(missing).filter(pkg => {
45
+ // 排除内部路径别名
46
+ if (pkg.startsWith('@api/') || pkg.startsWith('@/') || pkg === '@api') {
47
+ return false;
48
+ }
49
+
50
+ // 获取引用该包的文件列表
51
+ const referencingFiles = missing[pkg] || [];
52
+
53
+ // 过滤掉模板配置文件
54
+ const nonTemplateFiles = referencingFiles.filter(file => {
55
+ return !ignoreFilePatterns.some(pattern => pattern.test(file));
56
+ });
57
+
58
+ // 只有当存在非模板文件引用时才保留该包
59
+ return nonTemplateFiles.length > 0;
60
+ });
37
61
 
38
62
  if (missingPackages.length === 0) {
39
63
  console.log('✅ 没有发现缺失的依赖!');
@@ -44,30 +68,31 @@ try {
44
68
  missingPackages.forEach((pkg, index) => {
45
69
  const files = missing[pkg];
46
70
  console.log(` ${index + 1}. ${pkg}`);
47
- console.log(` 被引用于: ${files.slice(0, 2).join(', ')}${files.length > 2 ? ' ...' : ''}`);
71
+ console.log(
72
+ ` 被引用于: ${files.slice(0, 2).join(', ')}${files.length > 2 ? ' ...' : ''}`,
73
+ );
48
74
  });
49
75
 
50
76
  console.log('\n🚀 开始安装...\n');
51
77
 
52
78
  // 使用 expo install 安装所有缺失的包
53
79
  const packagesToInstall = missingPackages.join(' ');
54
-
80
+
55
81
  try {
56
82
  execSync(`pnpm expo install ${packagesToInstall}`, {
57
- stdio: 'inherit'
83
+ stdio: 'inherit',
58
84
  });
59
-
85
+
60
86
  console.log('\n✅ 所有缺失的依赖已安装完成!');
61
87
  } catch (installError) {
62
88
  console.log('\n⚠️ expo install 失败,尝试使用 npm install...\n');
63
-
89
+
64
90
  execSync(`npm install ${packagesToInstall}`, {
65
- stdio: 'inherit'
91
+ stdio: 'inherit',
66
92
  });
67
-
93
+
68
94
  console.log('\n✅ 所有缺失的依赖已通过 npm 安装完成!');
69
95
  }
70
-
71
96
  } catch (error) {
72
97
  if (error.message.includes('depcheck')) {
73
98
  console.error('❌ depcheck 未安装或运行失败');
@@ -77,4 +102,3 @@ try {
77
102
  }
78
103
  process.exit(1);
79
104
  }
80
-
@@ -8,29 +8,29 @@ const config = getDefaultConfig(__dirname);
8
8
  const existingBlockList = [].concat(config.resolver.blockList || []);
9
9
 
10
10
  config.resolver.blockList = [
11
- ...existingBlockList,
12
- /.*\/\.expo\/.*/, // Expo 的缓存和构建产物目录
11
+ ...existingBlockList,
12
+ /.*\/\.expo\/.*/, // Expo 的缓存和构建产物目录
13
13
 
14
- // 1. 原生代码 (Java/C++/Objective-C)
15
- /.*\/react-native\/ReactAndroid\/.*/,
16
- /.*\/react-native\/ReactCommon\/.*/,
14
+ // 1. 原生代码 (Java/C++/Objective-C)
15
+ /.*\/react-native\/ReactAndroid\/.*/,
16
+ /.*\/react-native\/ReactCommon\/.*/,
17
17
 
18
- // 2. 纯开发和调试工具
19
- // 这些工具只在开发电脑上运行,不会被打包到应用中
20
- /.*\/@typescript-eslint\/eslint-plugin\/.*/,
18
+ // 2. 纯开发和调试工具
19
+ // 这些工具只在开发电脑上运行,不会被打包到应用中
20
+ /.*\/@typescript-eslint\/eslint-plugin\/.*/,
21
21
 
22
- // 3. 构建时数据
23
- // 这个数据库只在打包过程中使用,应用运行时不需要
24
- /.*\/caniuse-lite\/data\/.*/,
22
+ // 3. 构建时数据
23
+ // 这个数据库只在打包过程中使用,应用运行时不需要
24
+ /.*\/caniuse-lite\/data\/.*/,
25
25
 
26
- // 4. 通用规则
27
- /.*\/__tests__\/.*/, // 排除所有测试目录
28
- /.*\.git\/.*/, // 排除 Git 目录
26
+ // 4. 通用规则
27
+ /.*\/__tests__\/.*/, // 排除所有测试目录
28
+ /.*\.git\/.*/, // 排除 Git 目录
29
29
  ];
30
30
 
31
31
  /*
32
32
  const apiProxy = createProxyMiddleware({
33
- target: 'http://localhost:3000',
33
+ target: 'http://localhost:5000',
34
34
  logLevel: 'debug',
35
35
  });
36
36
 
@@ -7,10 +7,10 @@
7
7
  "build": "bash .cozeproj/scripts/deploy_build.sh",
8
8
  "check-deps": "npx depcheck",
9
9
  "dev": "bash .cozeproj/scripts/deploy_run.sh",
10
- "install-missing": "node ./client/scripts/install-missing-deps.js",
11
- "lint": "expo lint",
12
10
  "preinstall": "npx only-allow pnpm",
13
11
  "postinstall": "node ./client/scripts/install-missing-deps.js",
12
+ "install-missing": "node ./client/scripts/install-missing-deps.js",
13
+ "lint": "expo lint",
14
14
  "server": "NODE_ENV=development tsx ./src/index.ts",
15
15
  "start": "expo start --web",
16
16
  "test": "jest --watchAll"
@@ -19,6 +19,8 @@
19
19
  "preset": "jest-expo"
20
20
  },
21
21
  "dependencies": {
22
+ "@aws-sdk/client-s3": "^3.958.0",
23
+ "@aws-sdk/lib-storage": "^3.958.0",
22
24
  "@expo/metro-runtime": "^6.1.2",
23
25
  "@expo/vector-icons": "^15.0.0",
24
26
  "@react-native-async-storage/async-storage": "^2.2.0",
@@ -30,8 +32,12 @@
30
32
  "@react-navigation/native": "^7.0.14",
31
33
  "ajv": "^8.17.1",
32
34
  "ajv-formats": "^3.0.1",
35
+ "connect": "^3.7.0",
33
36
  "coze-coding-dev-sdk": "0.5.0",
34
37
  "dayjs": "^1.11.19",
38
+ "drizzle-kit": "^0.31.8",
39
+ "drizzle-orm": "^0.45.1",
40
+ "drizzle-zod": "^0.8.3",
35
41
  "expo": "^54.0.7",
36
42
  "expo-auth-session": "^7.0.9",
37
43
  "expo-av": "~16.0.6",
@@ -52,6 +58,8 @@
52
58
  "expo-system-ui": "~6.0.9",
53
59
  "expo-web-browser": "~15.0.10",
54
60
  "express": "^4.22.1",
61
+ "multer": "^2.0.2",
62
+ "pg": "^8.16.3",
55
63
  "react": "19.1.0",
56
64
  "react-dom": "19.1.0",
57
65
  "react-native": "0.81.5",
@@ -74,6 +82,8 @@
74
82
  "@eslint/js": "^9.27.0",
75
83
  "@types/express": "^5.0.6",
76
84
  "@types/jest": "^29.5.12",
85
+ "@types/multer": "^2.0.0",
86
+ "@types/pg": "^8.16.0",
77
87
  "@types/react": "~19.1.0",
78
88
  "@types/react-test-renderer": "19.1.0",
79
89
  "babel-plugin-module-resolver": "^5.0.2",
@@ -8,6 +8,12 @@ importers:
8
8
 
9
9
  .:
10
10
  dependencies:
11
+ '@aws-sdk/client-s3':
12
+ specifier: ^3.958.0
13
+ version: 3.958.0
14
+ '@aws-sdk/lib-storage':
15
+ specifier: ^3.958.0
16
+ version: 3.958.0(@aws-sdk/client-s3@3.958.0)
11
17
  '@expo/metro-runtime':
12
18
  specifier: ^6.1.2
13
19
  version: 6.1.2(expo@54.0.30)(react-dom@19.1.0(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
@@ -41,12 +47,24 @@ importers:
41
47
  ajv-formats:
42
48
  specifier: ^3.0.1
43
49
  version: 3.0.1(ajv@8.17.1)
50
+ connect:
51
+ specifier: ^3.7.0
52
+ version: 3.7.0
44
53
  coze-coding-dev-sdk:
45
54
  specifier: 0.5.0
46
- version: 0.5.0(openai@6.15.0(ws@8.18.3)(zod@4.3.2))(ws@8.18.3)
55
+ version: 0.5.0(@types/pg@8.16.0)(openai@6.15.0(ws@8.18.3)(zod@4.3.2))(ws@8.18.3)
47
56
  dayjs:
48
57
  specifier: ^1.11.19
49
58
  version: 1.11.19
59
+ drizzle-kit:
60
+ specifier: ^0.31.8
61
+ version: 0.31.8
62
+ drizzle-orm:
63
+ specifier: ^0.45.1
64
+ version: 0.45.1(@types/pg@8.16.0)(pg@8.16.3)
65
+ drizzle-zod:
66
+ specifier: ^0.8.3
67
+ version: 0.8.3(drizzle-orm@0.45.1(@types/pg@8.16.0)(pg@8.16.3))(zod@4.3.2)
50
68
  expo:
51
69
  specifier: ^54.0.7
52
70
  version: 54.0.30(@babel/core@7.28.5)(@expo/metro-runtime@6.1.2)(expo-router@6.0.21)(react-native-webview@13.15.0(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0))(react-native@0.81.5(@babel/core@7.28.5)(@types/react@19.1.17)(react@19.1.0))(react@19.1.0)
@@ -107,6 +125,12 @@ importers:
107
125
  express:
108
126
  specifier: ^4.22.1
109
127
  version: 4.22.1
128
+ multer:
129
+ specifier: ^2.0.2
130
+ version: 2.0.2
131
+ pg:
132
+ specifier: ^8.16.3
133
+ version: 8.16.3
110
134
  react:
111
135
  specifier: 19.1.0
112
136
  version: 19.1.0
@@ -168,6 +192,12 @@ importers:
168
192
  '@types/jest':
169
193
  specifier: ^29.5.12
170
194
  version: 29.5.14
195
+ '@types/multer':
196
+ specifier: ^2.0.0
197
+ version: 2.0.0
198
+ '@types/pg':
199
+ specifier: ^8.16.0
200
+ version: 8.16.0
171
201
  '@types/react':
172
202
  specifier: ~19.1.0
173
203
  version: 19.1.17
@@ -2346,12 +2376,18 @@ packages:
2346
2376
  '@types/minimatch@3.0.5':
2347
2377
  resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==}
2348
2378
 
2379
+ '@types/multer@2.0.0':
2380
+ resolution: {integrity: sha512-C3Z9v9Evij2yST3RSBktxP9STm6OdMc5uR1xF1SGr98uv8dUlAL2hqwrZ3GVB3uyMyiegnscEK6PGtYvNrjTjw==}
2381
+
2349
2382
  '@types/node@25.0.3':
2350
2383
  resolution: {integrity: sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==}
2351
2384
 
2352
2385
  '@types/parse-json@4.0.2':
2353
2386
  resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
2354
2387
 
2388
+ '@types/pg@8.16.0':
2389
+ resolution: {integrity: sha512-RmhMd/wD+CF8Dfo+cVIy3RR5cl8CyfXQ0tGgW6XBL8L4LM/UTEbNXYRbLwU6w+CgrKBNbrQWt4FUtTfaU5jSYQ==}
2390
+
2355
2391
  '@types/qs@6.14.0':
2356
2392
  resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==}
2357
2393
 
@@ -2486,41 +2522,49 @@ packages:
2486
2522
  resolution: {integrity: sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==}
2487
2523
  cpu: [arm64]
2488
2524
  os: [linux]
2525
+ libc: [glibc]
2489
2526
 
2490
2527
  '@unrs/resolver-binding-linux-arm64-musl@1.11.1':
2491
2528
  resolution: {integrity: sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==}
2492
2529
  cpu: [arm64]
2493
2530
  os: [linux]
2531
+ libc: [musl]
2494
2532
 
2495
2533
  '@unrs/resolver-binding-linux-ppc64-gnu@1.11.1':
2496
2534
  resolution: {integrity: sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==}
2497
2535
  cpu: [ppc64]
2498
2536
  os: [linux]
2537
+ libc: [glibc]
2499
2538
 
2500
2539
  '@unrs/resolver-binding-linux-riscv64-gnu@1.11.1':
2501
2540
  resolution: {integrity: sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==}
2502
2541
  cpu: [riscv64]
2503
2542
  os: [linux]
2543
+ libc: [glibc]
2504
2544
 
2505
2545
  '@unrs/resolver-binding-linux-riscv64-musl@1.11.1':
2506
2546
  resolution: {integrity: sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==}
2507
2547
  cpu: [riscv64]
2508
2548
  os: [linux]
2549
+ libc: [musl]
2509
2550
 
2510
2551
  '@unrs/resolver-binding-linux-s390x-gnu@1.11.1':
2511
2552
  resolution: {integrity: sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==}
2512
2553
  cpu: [s390x]
2513
2554
  os: [linux]
2555
+ libc: [glibc]
2514
2556
 
2515
2557
  '@unrs/resolver-binding-linux-x64-gnu@1.11.1':
2516
2558
  resolution: {integrity: sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==}
2517
2559
  cpu: [x64]
2518
2560
  os: [linux]
2561
+ libc: [glibc]
2519
2562
 
2520
2563
  '@unrs/resolver-binding-linux-x64-musl@1.11.1':
2521
2564
  resolution: {integrity: sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==}
2522
2565
  cpu: [x64]
2523
2566
  os: [linux]
2567
+ libc: [musl]
2524
2568
 
2525
2569
  '@unrs/resolver-binding-wasm32-wasi@1.11.1':
2526
2570
  resolution: {integrity: sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==}
@@ -2662,6 +2706,9 @@ packages:
2662
2706
  resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
2663
2707
  engines: {node: '>= 8'}
2664
2708
 
2709
+ append-field@1.0.0:
2710
+ resolution: {integrity: sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==}
2711
+
2665
2712
  arg@5.0.2:
2666
2713
  resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
2667
2714
 
@@ -2875,6 +2922,10 @@ packages:
2875
2922
  buffer@5.7.1:
2876
2923
  resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
2877
2924
 
2925
+ busboy@1.6.0:
2926
+ resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
2927
+ engines: {node: '>=10.16.0'}
2928
+
2878
2929
  bytes@3.1.2:
2879
2930
  resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==}
2880
2931
  engines: {node: '>= 0.8'}
@@ -3050,6 +3101,10 @@ packages:
3050
3101
  concat-map@0.0.1:
3051
3102
  resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
3052
3103
 
3104
+ concat-stream@2.0.0:
3105
+ resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==}
3106
+ engines: {'0': node >= 6.0}
3107
+
3053
3108
  connect@3.7.0:
3054
3109
  resolution: {integrity: sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==}
3055
3110
  engines: {node: '>= 0.10.0'}
@@ -3384,6 +3439,12 @@ packages:
3384
3439
  sqlite3:
3385
3440
  optional: true
3386
3441
 
3442
+ drizzle-zod@0.8.3:
3443
+ resolution: {integrity: sha512-66yVOuvGhKJnTdiqj1/Xaaz9/qzOdRJADpDa68enqS6g3t0kpNkwNYjUuaeXgZfO/UWuIM9HIhSlJ6C5ZraMww==}
3444
+ peerDependencies:
3445
+ drizzle-orm: '>=0.36.0'
3446
+ zod: ^3.25.0 || ^4.0.0
3447
+
3387
3448
  dunder-proto@1.0.1:
3388
3449
  resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==}
3389
3450
  engines: {node: '>= 0.4'}
@@ -4743,24 +4804,28 @@ packages:
4743
4804
  engines: {node: '>= 12.0.0'}
4744
4805
  cpu: [arm64]
4745
4806
  os: [linux]
4807
+ libc: [glibc]
4746
4808
 
4747
4809
  lightningcss-linux-arm64-musl@1.30.2:
4748
4810
  resolution: {integrity: sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==}
4749
4811
  engines: {node: '>= 12.0.0'}
4750
4812
  cpu: [arm64]
4751
4813
  os: [linux]
4814
+ libc: [musl]
4752
4815
 
4753
4816
  lightningcss-linux-x64-gnu@1.30.2:
4754
4817
  resolution: {integrity: sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==}
4755
4818
  engines: {node: '>= 12.0.0'}
4756
4819
  cpu: [x64]
4757
4820
  os: [linux]
4821
+ libc: [glibc]
4758
4822
 
4759
4823
  lightningcss-linux-x64-musl@1.30.2:
4760
4824
  resolution: {integrity: sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==}
4761
4825
  engines: {node: '>= 12.0.0'}
4762
4826
  cpu: [x64]
4763
4827
  os: [linux]
4828
+ libc: [musl]
4764
4829
 
4765
4830
  lightningcss-win32-arm64-msvc@1.30.2:
4766
4831
  resolution: {integrity: sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==}
@@ -4996,6 +5061,10 @@ packages:
4996
5061
  resolution: {integrity: sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==}
4997
5062
  engines: {node: '>= 18'}
4998
5063
 
5064
+ mkdirp@0.5.6:
5065
+ resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
5066
+ hasBin: true
5067
+
4999
5068
  mkdirp@1.0.4:
5000
5069
  resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
5001
5070
  engines: {node: '>=10'}
@@ -5007,6 +5076,10 @@ packages:
5007
5076
  ms@2.1.3:
5008
5077
  resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
5009
5078
 
5079
+ multer@2.0.2:
5080
+ resolution: {integrity: sha512-u7f2xaZ/UG8oLXHvtF/oWTRvT44p9ecwBBqTwgJVq0+4BW1g8OW01TyMEGWBHbyMOYVHXslaut7qEQ1meATXgw==}
5081
+ engines: {node: '>= 10.16.0'}
5082
+
5010
5083
  multimatch@5.0.0:
5011
5084
  resolution: {integrity: sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==}
5012
5085
  engines: {node: '>=10'}
@@ -5984,6 +6057,10 @@ packages:
5984
6057
  resolution: {integrity: sha512-uyQK/mx5QjHun80FLJTfaWE7JtwfRMKBLkMne6udYOmvH0CawotVa7TfgYHzAnpphn4+TweIx1QKMnRIbipmUg==}
5985
6058
  engines: {node: '>= 0.10.0'}
5986
6059
 
6060
+ streamsearch@1.1.0:
6061
+ resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
6062
+ engines: {node: '>=10.0.0'}
6063
+
5987
6064
  strict-uri-encode@2.0.0:
5988
6065
  resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==}
5989
6066
  engines: {node: '>=4'}
@@ -6208,6 +6285,9 @@ packages:
6208
6285
  resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==}
6209
6286
  engines: {node: '>= 0.4'}
6210
6287
 
6288
+ typedarray@0.0.6:
6289
+ resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==}
6290
+
6211
6291
  typescript-eslint@8.51.0:
6212
6292
  resolution: {integrity: sha512-jh8ZuM5oEh2PSdyQG9YAEM1TCGuWenLSuSUhf/irbVUNW9O5FhbFVONviN2TgMTBnUmyHv7E56rYnfLZK6TkiA==}
6213
6293
  engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -9361,12 +9441,22 @@ snapshots:
9361
9441
 
9362
9442
  '@types/minimatch@3.0.5': {}
9363
9443
 
9444
+ '@types/multer@2.0.0':
9445
+ dependencies:
9446
+ '@types/express': 5.0.6
9447
+
9364
9448
  '@types/node@25.0.3':
9365
9449
  dependencies:
9366
9450
  undici-types: 7.16.0
9367
9451
 
9368
9452
  '@types/parse-json@4.0.2': {}
9369
9453
 
9454
+ '@types/pg@8.16.0':
9455
+ dependencies:
9456
+ '@types/node': 25.0.3
9457
+ pg-protocol: 1.10.3
9458
+ pg-types: 2.2.0
9459
+
9370
9460
  '@types/qs@6.14.0': {}
9371
9461
 
9372
9462
  '@types/range-parser@1.2.7': {}
@@ -9681,6 +9771,8 @@ snapshots:
9681
9771
  normalize-path: 3.0.0
9682
9772
  picomatch: 2.3.1
9683
9773
 
9774
+ append-field@1.0.0: {}
9775
+
9684
9776
  arg@5.0.2: {}
9685
9777
 
9686
9778
  argparse@1.0.10:
@@ -10005,6 +10097,10 @@ snapshots:
10005
10097
  base64-js: 1.5.1
10006
10098
  ieee754: 1.2.1
10007
10099
 
10100
+ busboy@1.6.0:
10101
+ dependencies:
10102
+ streamsearch: 1.1.0
10103
+
10008
10104
  bytes@3.1.2: {}
10009
10105
 
10010
10106
  call-bind-apply-helpers@1.0.2:
@@ -10172,6 +10268,13 @@ snapshots:
10172
10268
 
10173
10269
  concat-map@0.0.1: {}
10174
10270
 
10271
+ concat-stream@2.0.0:
10272
+ dependencies:
10273
+ buffer-from: 1.1.2
10274
+ inherits: 2.0.4
10275
+ readable-stream: 3.6.2
10276
+ typedarray: 0.0.6
10277
+
10175
10278
  connect@3.7.0:
10176
10279
  dependencies:
10177
10280
  debug: 2.6.9
@@ -10209,7 +10312,7 @@ snapshots:
10209
10312
  path-type: 4.0.0
10210
10313
  yaml: 1.10.2
10211
10314
 
10212
- coze-coding-dev-sdk@0.5.0(openai@6.15.0(ws@8.18.3)(zod@4.3.2))(ws@8.18.3):
10315
+ coze-coding-dev-sdk@0.5.0(@types/pg@8.16.0)(openai@6.15.0(ws@8.18.3)(zod@4.3.2))(ws@8.18.3):
10213
10316
  dependencies:
10214
10317
  '@aws-sdk/client-s3': 3.958.0
10215
10318
  '@aws-sdk/lib-storage': 3.958.0(@aws-sdk/client-s3@3.958.0)
@@ -10219,7 +10322,7 @@ snapshots:
10219
10322
  chalk: 5.6.2
10220
10323
  commander: 14.0.2
10221
10324
  drizzle-kit: 0.31.8
10222
- drizzle-orm: 0.45.1(pg@8.16.3)
10325
+ drizzle-orm: 0.45.1(@types/pg@8.16.0)(pg@8.16.3)
10223
10326
  ora: 9.0.0
10224
10327
  pg: 8.16.3
10225
10328
  transitivePeerDependencies:
@@ -10475,10 +10578,16 @@ snapshots:
10475
10578
  transitivePeerDependencies:
10476
10579
  - supports-color
10477
10580
 
10478
- drizzle-orm@0.45.1(pg@8.16.3):
10581
+ drizzle-orm@0.45.1(@types/pg@8.16.0)(pg@8.16.3):
10479
10582
  optionalDependencies:
10583
+ '@types/pg': 8.16.0
10480
10584
  pg: 8.16.3
10481
10585
 
10586
+ drizzle-zod@0.8.3(drizzle-orm@0.45.1(@types/pg@8.16.0)(pg@8.16.3))(zod@4.3.2):
10587
+ dependencies:
10588
+ drizzle-orm: 0.45.1(@types/pg@8.16.0)(pg@8.16.3)
10589
+ zod: 4.3.2
10590
+
10482
10591
  dunder-proto@1.0.1:
10483
10592
  dependencies:
10484
10593
  call-bind-apply-helpers: 1.0.2
@@ -12643,12 +12752,26 @@ snapshots:
12643
12752
  dependencies:
12644
12753
  minipass: 7.1.2
12645
12754
 
12755
+ mkdirp@0.5.6:
12756
+ dependencies:
12757
+ minimist: 1.2.8
12758
+
12646
12759
  mkdirp@1.0.4: {}
12647
12760
 
12648
12761
  ms@2.0.0: {}
12649
12762
 
12650
12763
  ms@2.1.3: {}
12651
12764
 
12765
+ multer@2.0.2:
12766
+ dependencies:
12767
+ append-field: 1.0.0
12768
+ busboy: 1.6.0
12769
+ concat-stream: 2.0.0
12770
+ mkdirp: 0.5.6
12771
+ object-assign: 4.1.1
12772
+ type-is: 1.6.18
12773
+ xtend: 4.0.2
12774
+
12652
12775
  multimatch@5.0.0:
12653
12776
  dependencies:
12654
12777
  '@types/minimatch': 3.0.5
@@ -13681,6 +13804,8 @@ snapshots:
13681
13804
 
13682
13805
  stream-buffers@2.2.0: {}
13683
13806
 
13807
+ streamsearch@1.1.0: {}
13808
+
13684
13809
  strict-uri-encode@2.0.0: {}
13685
13810
 
13686
13811
  string-length@4.0.2:
@@ -13945,6 +14070,8 @@ snapshots:
13945
14070
  possible-typed-array-names: 1.1.0
13946
14071
  reflect.getprototypeof: 1.0.10
13947
14072
 
14073
+ typedarray@0.0.6: {}
14074
+
13948
14075
  typescript-eslint@8.51.0(eslint@9.39.2)(typescript@5.9.3):
13949
14076
  dependencies:
13950
14077
  '@typescript-eslint/eslint-plugin': 8.51.0(@typescript-eslint/parser@8.51.0(eslint@9.39.2)(typescript@5.9.3))(eslint@9.39.2)(typescript@5.9.3)