@lark-apaas/coding-template-nestjs-react-fullstack 0.1.40-alpha.20260915110512 → 0.1.40-alpha.20260916121814

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lark-apaas/coding-template-nestjs-react-fullstack",
3
- "version": "0.1.40-alpha.20260915110512",
3
+ "version": "0.1.40-alpha.20260916121814",
4
4
  "description": "NestJS + React fullstack template for miaoda coding",
5
5
  "type": "module",
6
6
  "files": [
@@ -9,8 +9,9 @@
9
9
  ],
10
10
  "scripts": {
11
11
  "validate-manifest": "node ../../../scripts/validate-template.mjs .",
12
- "smoke": "echo 'smoke skipped: template build.sh prompts interactively for plugin scaffolding (fullstack-cli action-plugin add). Re-enable once build.sh supports non-interactive mode or smoke runs typecheck-only.' && exit 0",
13
- "prepublishOnly": "pnpm validate-manifest"
12
+ "smoke": "pnpm test:response-contract",
13
+ "prepublishOnly": "pnpm validate-manifest && pnpm smoke",
14
+ "test:response-contract": "pnpm --dir ../../.. test -- scripts/__tests__/response-contract.test.mjs"
14
15
  },
15
16
  "publishConfig": {
16
17
  "access": "public",
@@ -1,20 +1,17 @@
1
1
  // import { useState, useEffect } from 'react';
2
2
  // import { axiosForBackend } from '@lark-apaas/client-toolkit/utils/getAxiosForBackend';
3
3
  // import { logger } from '@lark-apaas/client-toolkit/logger';
4
+ // import type { HelloResponse } from '@shared/api.interface';
4
5
 
5
6
  // interface RecordData {
6
- // title?: string,
7
- // type?: string,
8
- // creator?: string,
9
- // speakDate?: string,
10
- // record: any;
11
- // loading: boolean;
12
- // error?: string;
7
+ // records: HelloResponse;
8
+ // loading: boolean;
9
+ // error: string | null;
13
10
  // }
14
11
 
15
12
  // export function useRecordData() {
16
13
  // const [data, setData] = useState<RecordData>({
17
- // record: {},
14
+ // records: [],
18
15
  // loading: true,
19
16
  // error: null,
20
17
  // });
@@ -27,14 +24,11 @@
27
24
  // try {
28
25
  // setData(prev => ({ ...prev, loading: true, error: null }));
29
26
 
30
- // // 使用axios实例获取数据
31
- // const response = await axiosForBackend.get('/api/hello');
32
-
33
- // // 提取响应数据中的 data 字段
34
- // const record = response.data.data;
27
+ // const response = await axiosForBackend.get<HelloResponse>('/api/hello/test');
28
+ // const records = response.data;
35
29
 
36
30
  // setData({
37
- // record,
31
+ // records,
38
32
  // loading: false,
39
33
  // error: null,
40
34
  // });
@@ -49,4 +43,4 @@
49
43
  // };
50
44
 
51
45
  // return { ...data, refetch: fetchRecordData };
52
- // }
46
+ // }
@@ -9,8 +9,6 @@ module.exports = tseslint.config(
9
9
  'node_modules',
10
10
  'source_package',
11
11
  'client/src/api/gen',
12
- // MCP UI 是独立浏览器工程,暂不参与主应用的 ESLint 检查。
13
- 'server/mcp/ui/**',
14
12
  '**/*.d.ts',
15
13
  '**/*.js.map',
16
14
  ],
@@ -8,7 +8,7 @@
8
8
  "name": "fullstack-nestjs-template",
9
9
  "version": "2.3.0",
10
10
  "dependencies": {
11
- "@lark-apaas/fullstack-nestjs-core": "1.1.62-alpha.20260915105802",
11
+ "@lark-apaas/fullstack-nestjs-core": "^1.1.61",
12
12
  "@nestjs/axios": "^4.0.1",
13
13
  "@nestjs/cache-manager": "^3.1.3",
14
14
  "@nestjs/common": "^10.4.20",
@@ -33,7 +33,7 @@
33
33
  "devDependencies": {
34
34
  "@hookform/resolvers": "^5.2.2",
35
35
  "@lark-apaas/client-toolkit": "^1.2.70",
36
- "@lark-apaas/coding-preset-vite-react": "1.0.23-alpha.20260915105803",
36
+ "@lark-apaas/coding-preset-vite-react": "^1.0.22",
37
37
  "@lark-apaas/fullstack-presets": "^1.1.0",
38
38
  "@nestjs/cli": "^10.4.9",
39
39
  "@radix-ui/react-accordion": "^1.2.12",
@@ -1201,18 +1201,6 @@
1201
1201
  "typescript": ">=5.5.3"
1202
1202
  }
1203
1203
  },
1204
- "node_modules/@hono/node-server": {
1205
- "version": "2.1.1",
1206
- "resolved": "https://registry.npmmirror.com/@hono/node-server/-/node-server-2.1.1.tgz",
1207
- "integrity": "sha512-ELuehkj5VCBdgEw9zs+ivkKwyzzUCSQuE96YmiPvn1ECBoZCczbFXJLeEGMTYjphP6gydh4pHMqEYPVMYUVgQg==",
1208
- "license": "MIT",
1209
- "engines": {
1210
- "node": ">=20"
1211
- },
1212
- "peerDependencies": {
1213
- "hono": "^4"
1214
- }
1215
- },
1216
1204
  "node_modules/@hookform/resolvers": {
1217
1205
  "version": "5.9.1",
1218
1206
  "resolved": "https://registry.npmmirror.com/@hookform/resolvers/-/resolvers-5.9.1.tgz",
@@ -1634,9 +1622,9 @@
1634
1622
  "license": "MIT"
1635
1623
  },
1636
1624
  "node_modules/@lark-apaas/coding-preset-vite-react": {
1637
- "version": "1.0.23-alpha.20260915105803",
1638
- "resolved": "https://registry.npmmirror.com/@lark-apaas/coding-preset-vite-react/-/coding-preset-vite-react-1.0.23-alpha.20260915105803.tgz",
1639
- "integrity": "sha512-GwUV/4DHWibTx0GrhflevI2kWC+4UqjtHucAwHWJpvD7rd8Q+AdQEIAvYVj5nKZ6QuCc8yQEAMKSwvREDTwcEg==",
1625
+ "version": "1.0.22",
1626
+ "resolved": "https://registry.npmmirror.com/@lark-apaas/coding-preset-vite-react/-/coding-preset-vite-react-1.0.22.tgz",
1627
+ "integrity": "sha512-SmAY5LqbZc1isfl2qECqDkT58MzK2AhMRVGtxNfIsvX32xxIh5AEQ1yA4p1Ac3iU8kw4ceudQrdV4sSyl7BOzg==",
1640
1628
  "dev": true,
1641
1629
  "license": "MIT",
1642
1630
  "dependencies": {
@@ -1655,8 +1643,6 @@
1655
1643
  "express": "^4.18.2",
1656
1644
  "html-minifier-terser": "^7.2.0",
1657
1645
  "magic-string": "~0.30.18",
1658
- "parse5": "^7.3.0",
1659
- "postcss-value-parser": "^4.2.0",
1660
1646
  "tailwind-merge": "^2.5.5"
1661
1647
  },
1662
1648
  "peerDependencies": {
@@ -1697,9 +1683,9 @@
1697
1683
  }
1698
1684
  },
1699
1685
  "node_modules/@lark-apaas/fullstack-nestjs-core": {
1700
- "version": "1.1.62-alpha.20260915105802",
1701
- "resolved": "https://registry.npmmirror.com/@lark-apaas/fullstack-nestjs-core/-/fullstack-nestjs-core-1.1.62-alpha.20260915105802.tgz",
1702
- "integrity": "sha512-7eJM0cJ0jqjhKCslzyl5SX6l7RE0CRCWXWW4I6u5SZN0NDogNcYU11uWjXbscZnqIsLwNiQj+tOnk5iKeSkSYA==",
1686
+ "version": "1.1.61",
1687
+ "resolved": "https://registry.npmmirror.com/@lark-apaas/fullstack-nestjs-core/-/fullstack-nestjs-core-1.1.61.tgz",
1688
+ "integrity": "sha512-+cz8glSO5Ner92kF7Aj8jCmRImszM3kKUs9ciAyhpgfSY1hHVfGcMvTlUfmojM7nSc0fgPizqEYxt2+okL2fWw==",
1703
1689
  "license": "MIT",
1704
1690
  "dependencies": {
1705
1691
  "@lark-apaas/cache-service": "^0.1.1",
@@ -1709,10 +1695,9 @@
1709
1695
  "@lark-apaas/nestjs-authzpaas": "^0.1.13",
1710
1696
  "@lark-apaas/nestjs-capability": "^0.1.14",
1711
1697
  "@lark-apaas/nestjs-common": "^0.1.9",
1712
- "@lark-apaas/nestjs-datapaas": "^1.0.21",
1698
+ "@lark-apaas/nestjs-datapaas": "^1.0.22",
1713
1699
  "@lark-apaas/nestjs-http-forwarder": "^0.1.3",
1714
1700
  "@lark-apaas/nestjs-logger": "^1.0.17",
1715
- "@lark-apaas/nestjs-mcp": "0.1.1-alpha.20260915105801",
1716
1701
  "@lark-apaas/nestjs-observable": "^0.0.12",
1717
1702
  "@lark-apaas/nestjs-openapi-devtools": "^1.0.10",
1718
1703
  "@lark-apaas/nestjs-trigger": "^0.0.3",
@@ -1730,8 +1715,7 @@
1730
1715
  "@nestjs/swagger": "^7.4.2",
1731
1716
  "class-transformer": "^0.5.1",
1732
1717
  "class-validator": "^0.14.2",
1733
- "drizzle-orm": "0.44.6",
1734
- "zod": "^3.25.0 || ^4.0.0"
1718
+ "drizzle-orm": "0.44.6"
1735
1719
  }
1736
1720
  },
1737
1721
  "node_modules/@lark-apaas/fullstack-presets": {
@@ -1944,29 +1928,6 @@
1944
1928
  "@nestjs/core": "^10.4.20"
1945
1929
  }
1946
1930
  },
1947
- "node_modules/@lark-apaas/nestjs-mcp": {
1948
- "version": "0.1.1-alpha.20260915105801",
1949
- "resolved": "https://registry.npmmirror.com/@lark-apaas/nestjs-mcp/-/nestjs-mcp-0.1.1-alpha.20260915105801.tgz",
1950
- "integrity": "sha512-VjW7VlIb24fFktFtzVxySetClX0yD0l5Eixx80LtnsdyKaOKWRW3GCZaVLb0Kn6k5cAao8kF/bImPp55u47Olg==",
1951
- "license": "MIT",
1952
- "dependencies": {
1953
- "@modelcontextprotocol/ext-apps": "^1.7.5",
1954
- "@modelcontextprotocol/sdk": "^1.30.0",
1955
- "yaml": "^2.8.2"
1956
- },
1957
- "bin": {
1958
- "miaoda-mcp": "bin/miaoda-mcp.cjs"
1959
- },
1960
- "engines": {
1961
- "node": ">=18.0.0"
1962
- },
1963
- "peerDependencies": {
1964
- "@nestjs/common": "^10.0.0",
1965
- "@nestjs/core": "^10.0.0",
1966
- "@nestjs/swagger": "^7.4.2",
1967
- "zod": "^3.25.0 || ^4.0.0"
1968
- }
1969
- },
1970
1931
  "node_modules/@lark-apaas/nestjs-observable": {
1971
1932
  "version": "0.0.12",
1972
1933
  "resolved": "https://registry.npmmirror.com/@lark-apaas/nestjs-observable/-/nestjs-observable-0.0.12.tgz",
@@ -2095,446 +2056,6 @@
2095
2056
  "integrity": "sha512-4aErSrCR/On/e5G2hDP0wjooqDdauzEbIq8hIkIe5pXV0rtWJZvdCEKL0ykZxex+IxIwBp0eGeV48hQN07dXtw==",
2096
2057
  "license": "MIT"
2097
2058
  },
2098
- "node_modules/@modelcontextprotocol/ext-apps": {
2099
- "version": "1.7.5",
2100
- "resolved": "https://registry.npmmirror.com/@modelcontextprotocol/ext-apps/-/ext-apps-1.7.5.tgz",
2101
- "integrity": "sha512-TjPH2S2y5UEGKhmI6+XGFuqfqOV4ppe1x6DA3txnUaEWkgtA4G5vo14jGKFZmegdkZ1H4QMLyujLvoU1BEdnAg==",
2102
- "license": "MIT",
2103
- "workspaces": [
2104
- "examples/*"
2105
- ],
2106
- "dependencies": {
2107
- "@standard-schema/spec": "^1.1.0"
2108
- },
2109
- "engines": {
2110
- "node": ">=20"
2111
- },
2112
- "peerDependencies": {
2113
- "@modelcontextprotocol/sdk": "^1.29.0",
2114
- "react": "^17.0.0 || ^18.0.0 || ^19.0.0",
2115
- "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0",
2116
- "zod": "^3.25.0 || ^4.0.0"
2117
- },
2118
- "peerDependenciesMeta": {
2119
- "react": {
2120
- "optional": true
2121
- },
2122
- "react-dom": {
2123
- "optional": true
2124
- }
2125
- }
2126
- },
2127
- "node_modules/@modelcontextprotocol/sdk": {
2128
- "version": "1.30.0",
2129
- "resolved": "https://registry.npmmirror.com/@modelcontextprotocol/sdk/-/sdk-1.30.0.tgz",
2130
- "integrity": "sha512-xKd8OIzlqNzcqcNumGAa6g+PW2kjD5vrpcKOnfldAUPP3j7lnqMPwlTXQm8gF+UwH72z0lqaRbjr9hqGz0eITA==",
2131
- "license": "MIT",
2132
- "dependencies": {
2133
- "@hono/node-server": "^1.19.9 || ^2.0.5",
2134
- "ajv": "^8.17.1",
2135
- "ajv-formats": "^3.0.1",
2136
- "content-type": "^1.0.5",
2137
- "cors": "^2.8.5",
2138
- "cross-spawn": "^7.0.5",
2139
- "eventsource": "^3.0.2",
2140
- "eventsource-parser": "^3.0.0",
2141
- "express": "^5.2.1",
2142
- "express-rate-limit": "^8.2.1",
2143
- "hono": "^4.11.4",
2144
- "jose": "^6.1.3",
2145
- "json-schema-typed": "^8.0.2",
2146
- "pkce-challenge": "^5.0.0",
2147
- "raw-body": "^3.0.0",
2148
- "zod": "^3.25 || ^4.0",
2149
- "zod-to-json-schema": "^3.25.1"
2150
- },
2151
- "engines": {
2152
- "node": ">=18"
2153
- },
2154
- "peerDependencies": {
2155
- "@cfworker/json-schema": "^4.1.1",
2156
- "zod": "^3.25 || ^4.0"
2157
- },
2158
- "peerDependenciesMeta": {
2159
- "@cfworker/json-schema": {
2160
- "optional": true
2161
- },
2162
- "zod": {
2163
- "optional": false
2164
- }
2165
- }
2166
- },
2167
- "node_modules/@modelcontextprotocol/sdk/node_modules/accepts": {
2168
- "version": "2.0.0",
2169
- "resolved": "https://registry.npmmirror.com/accepts/-/accepts-2.0.0.tgz",
2170
- "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==",
2171
- "license": "MIT",
2172
- "dependencies": {
2173
- "mime-types": "^3.0.0",
2174
- "negotiator": "^1.0.0"
2175
- },
2176
- "engines": {
2177
- "node": ">= 0.6"
2178
- }
2179
- },
2180
- "node_modules/@modelcontextprotocol/sdk/node_modules/ajv": {
2181
- "version": "8.20.0",
2182
- "resolved": "https://registry.npmmirror.com/ajv/-/ajv-8.20.0.tgz",
2183
- "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==",
2184
- "license": "MIT",
2185
- "dependencies": {
2186
- "fast-deep-equal": "^3.1.3",
2187
- "fast-uri": "^3.0.1",
2188
- "json-schema-traverse": "^1.0.0",
2189
- "require-from-string": "^2.0.2"
2190
- },
2191
- "funding": {
2192
- "type": "github",
2193
- "url": "https://github.com/sponsors/epoberezkin"
2194
- }
2195
- },
2196
- "node_modules/@modelcontextprotocol/sdk/node_modules/ajv-formats": {
2197
- "version": "3.0.1",
2198
- "resolved": "https://registry.npmmirror.com/ajv-formats/-/ajv-formats-3.0.1.tgz",
2199
- "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==",
2200
- "license": "MIT",
2201
- "dependencies": {
2202
- "ajv": "^8.0.0"
2203
- },
2204
- "peerDependencies": {
2205
- "ajv": "^8.0.0"
2206
- },
2207
- "peerDependenciesMeta": {
2208
- "ajv": {
2209
- "optional": true
2210
- }
2211
- }
2212
- },
2213
- "node_modules/@modelcontextprotocol/sdk/node_modules/body-parser": {
2214
- "version": "2.3.0",
2215
- "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-2.3.0.tgz",
2216
- "integrity": "sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==",
2217
- "license": "MIT",
2218
- "dependencies": {
2219
- "bytes": "^3.1.2",
2220
- "content-type": "^2.0.0",
2221
- "debug": "^4.4.3",
2222
- "http-errors": "^2.0.1",
2223
- "iconv-lite": "^0.7.2",
2224
- "on-finished": "^2.4.1",
2225
- "qs": "^6.15.2",
2226
- "raw-body": "^3.0.2",
2227
- "type-is": "^2.1.0"
2228
- },
2229
- "engines": {
2230
- "node": ">=18"
2231
- },
2232
- "funding": {
2233
- "type": "opencollective",
2234
- "url": "https://opencollective.com/express"
2235
- }
2236
- },
2237
- "node_modules/@modelcontextprotocol/sdk/node_modules/body-parser/node_modules/content-type": {
2238
- "version": "2.1.0",
2239
- "resolved": "https://registry.npmmirror.com/content-type/-/content-type-2.1.0.tgz",
2240
- "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==",
2241
- "license": "MIT",
2242
- "engines": {
2243
- "node": ">=18"
2244
- },
2245
- "funding": {
2246
- "type": "opencollective",
2247
- "url": "https://opencollective.com/express"
2248
- }
2249
- },
2250
- "node_modules/@modelcontextprotocol/sdk/node_modules/content-disposition": {
2251
- "version": "1.1.0",
2252
- "resolved": "https://registry.npmmirror.com/content-disposition/-/content-disposition-1.1.0.tgz",
2253
- "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==",
2254
- "license": "MIT",
2255
- "engines": {
2256
- "node": ">=18"
2257
- },
2258
- "funding": {
2259
- "type": "opencollective",
2260
- "url": "https://opencollective.com/express"
2261
- }
2262
- },
2263
- "node_modules/@modelcontextprotocol/sdk/node_modules/cookie-signature": {
2264
- "version": "1.2.2",
2265
- "resolved": "https://registry.npmmirror.com/cookie-signature/-/cookie-signature-1.2.2.tgz",
2266
- "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==",
2267
- "license": "MIT",
2268
- "engines": {
2269
- "node": ">=6.6.0"
2270
- }
2271
- },
2272
- "node_modules/@modelcontextprotocol/sdk/node_modules/express": {
2273
- "version": "5.2.1",
2274
- "resolved": "https://registry.npmmirror.com/express/-/express-5.2.1.tgz",
2275
- "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==",
2276
- "license": "MIT",
2277
- "dependencies": {
2278
- "accepts": "^2.0.0",
2279
- "body-parser": "^2.2.1",
2280
- "content-disposition": "^1.0.0",
2281
- "content-type": "^1.0.5",
2282
- "cookie": "^0.7.1",
2283
- "cookie-signature": "^1.2.1",
2284
- "debug": "^4.4.0",
2285
- "depd": "^2.0.0",
2286
- "encodeurl": "^2.0.0",
2287
- "escape-html": "^1.0.3",
2288
- "etag": "^1.8.1",
2289
- "finalhandler": "^2.1.0",
2290
- "fresh": "^2.0.0",
2291
- "http-errors": "^2.0.0",
2292
- "merge-descriptors": "^2.0.0",
2293
- "mime-types": "^3.0.0",
2294
- "on-finished": "^2.4.1",
2295
- "once": "^1.4.0",
2296
- "parseurl": "^1.3.3",
2297
- "proxy-addr": "^2.0.7",
2298
- "qs": "^6.14.0",
2299
- "range-parser": "^1.2.1",
2300
- "router": "^2.2.0",
2301
- "send": "^1.1.0",
2302
- "serve-static": "^2.2.0",
2303
- "statuses": "^2.0.1",
2304
- "type-is": "^2.0.1",
2305
- "vary": "^1.1.2"
2306
- },
2307
- "engines": {
2308
- "node": ">= 18"
2309
- },
2310
- "funding": {
2311
- "type": "opencollective",
2312
- "url": "https://opencollective.com/express"
2313
- }
2314
- },
2315
- "node_modules/@modelcontextprotocol/sdk/node_modules/finalhandler": {
2316
- "version": "2.1.1",
2317
- "resolved": "https://registry.npmmirror.com/finalhandler/-/finalhandler-2.1.1.tgz",
2318
- "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==",
2319
- "license": "MIT",
2320
- "dependencies": {
2321
- "debug": "^4.4.0",
2322
- "encodeurl": "^2.0.0",
2323
- "escape-html": "^1.0.3",
2324
- "on-finished": "^2.4.1",
2325
- "parseurl": "^1.3.3",
2326
- "statuses": "^2.0.1"
2327
- },
2328
- "engines": {
2329
- "node": ">= 18.0.0"
2330
- },
2331
- "funding": {
2332
- "type": "opencollective",
2333
- "url": "https://opencollective.com/express"
2334
- }
2335
- },
2336
- "node_modules/@modelcontextprotocol/sdk/node_modules/fresh": {
2337
- "version": "2.0.0",
2338
- "resolved": "https://registry.npmmirror.com/fresh/-/fresh-2.0.0.tgz",
2339
- "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==",
2340
- "license": "MIT",
2341
- "engines": {
2342
- "node": ">= 0.8"
2343
- }
2344
- },
2345
- "node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite": {
2346
- "version": "0.7.3",
2347
- "resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.7.3.tgz",
2348
- "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==",
2349
- "license": "MIT",
2350
- "dependencies": {
2351
- "safer-buffer": ">= 2.1.2 < 3.0.0"
2352
- },
2353
- "engines": {
2354
- "node": ">=0.10.0"
2355
- },
2356
- "funding": {
2357
- "type": "opencollective",
2358
- "url": "https://opencollective.com/express"
2359
- }
2360
- },
2361
- "node_modules/@modelcontextprotocol/sdk/node_modules/media-typer": {
2362
- "version": "1.1.1",
2363
- "resolved": "https://registry.npmmirror.com/media-typer/-/media-typer-1.1.1.tgz",
2364
- "integrity": "sha512-yz3xRaG20c6/BOzvYoDaGtPmGscs7YivItZEEqe6GbwNfHuxu9YNmvnEkMzKldAGY4/80pRcQRZSEnhquk9XuQ==",
2365
- "license": "MIT",
2366
- "engines": {
2367
- "node": ">= 0.8"
2368
- },
2369
- "funding": {
2370
- "type": "opencollective",
2371
- "url": "https://opencollective.com/express"
2372
- }
2373
- },
2374
- "node_modules/@modelcontextprotocol/sdk/node_modules/merge-descriptors": {
2375
- "version": "2.0.0",
2376
- "resolved": "https://registry.npmmirror.com/merge-descriptors/-/merge-descriptors-2.0.0.tgz",
2377
- "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==",
2378
- "license": "MIT",
2379
- "engines": {
2380
- "node": ">=18"
2381
- },
2382
- "funding": {
2383
- "url": "https://github.com/sponsors/sindresorhus"
2384
- }
2385
- },
2386
- "node_modules/@modelcontextprotocol/sdk/node_modules/mime-types": {
2387
- "version": "3.0.2",
2388
- "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-3.0.2.tgz",
2389
- "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==",
2390
- "license": "MIT",
2391
- "dependencies": {
2392
- "mime-db": "^1.54.0"
2393
- },
2394
- "engines": {
2395
- "node": ">=18"
2396
- },
2397
- "funding": {
2398
- "type": "opencollective",
2399
- "url": "https://opencollective.com/express"
2400
- }
2401
- },
2402
- "node_modules/@modelcontextprotocol/sdk/node_modules/negotiator": {
2403
- "version": "1.1.0",
2404
- "resolved": "https://registry.npmmirror.com/negotiator/-/negotiator-1.1.0.tgz",
2405
- "integrity": "sha512-NMPBRMJgiQHjbd8phG3Vebdx4kZ1H121rbl5IkMqeOsahptB9BKo/d7oJ3zTXqTgagn2bWlNSXkh0QUGM31RYg==",
2406
- "license": "MIT",
2407
- "dependencies": {
2408
- "content-type": "^2.1.0"
2409
- },
2410
- "engines": {
2411
- "node": ">=18"
2412
- },
2413
- "funding": {
2414
- "type": "opencollective",
2415
- "url": "https://opencollective.com/express"
2416
- }
2417
- },
2418
- "node_modules/@modelcontextprotocol/sdk/node_modules/negotiator/node_modules/content-type": {
2419
- "version": "2.1.0",
2420
- "resolved": "https://registry.npmmirror.com/content-type/-/content-type-2.1.0.tgz",
2421
- "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==",
2422
- "license": "MIT",
2423
- "engines": {
2424
- "node": ">=18"
2425
- },
2426
- "funding": {
2427
- "type": "opencollective",
2428
- "url": "https://opencollective.com/express"
2429
- }
2430
- },
2431
- "node_modules/@modelcontextprotocol/sdk/node_modules/qs": {
2432
- "version": "6.16.0",
2433
- "resolved": "https://registry.npmmirror.com/qs/-/qs-6.16.0.tgz",
2434
- "integrity": "sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA==",
2435
- "license": "BSD-3-Clause",
2436
- "dependencies": {
2437
- "es-define-property": "^1.0.1",
2438
- "side-channel": "^1.1.1"
2439
- },
2440
- "engines": {
2441
- "node": ">=0.6"
2442
- },
2443
- "funding": {
2444
- "url": "https://github.com/sponsors/ljharb"
2445
- }
2446
- },
2447
- "node_modules/@modelcontextprotocol/sdk/node_modules/raw-body": {
2448
- "version": "3.0.2",
2449
- "resolved": "https://registry.npmmirror.com/raw-body/-/raw-body-3.0.2.tgz",
2450
- "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==",
2451
- "license": "MIT",
2452
- "dependencies": {
2453
- "bytes": "~3.1.2",
2454
- "http-errors": "~2.0.1",
2455
- "iconv-lite": "~0.7.0",
2456
- "unpipe": "~1.0.0"
2457
- },
2458
- "engines": {
2459
- "node": ">= 0.10"
2460
- }
2461
- },
2462
- "node_modules/@modelcontextprotocol/sdk/node_modules/send": {
2463
- "version": "1.2.1",
2464
- "resolved": "https://registry.npmmirror.com/send/-/send-1.2.1.tgz",
2465
- "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==",
2466
- "license": "MIT",
2467
- "dependencies": {
2468
- "debug": "^4.4.3",
2469
- "encodeurl": "^2.0.0",
2470
- "escape-html": "^1.0.3",
2471
- "etag": "^1.8.1",
2472
- "fresh": "^2.0.0",
2473
- "http-errors": "^2.0.1",
2474
- "mime-types": "^3.0.2",
2475
- "ms": "^2.1.3",
2476
- "on-finished": "^2.4.1",
2477
- "range-parser": "^1.2.1",
2478
- "statuses": "^2.0.2"
2479
- },
2480
- "engines": {
2481
- "node": ">= 18"
2482
- },
2483
- "funding": {
2484
- "type": "opencollective",
2485
- "url": "https://opencollective.com/express"
2486
- }
2487
- },
2488
- "node_modules/@modelcontextprotocol/sdk/node_modules/serve-static": {
2489
- "version": "2.2.1",
2490
- "resolved": "https://registry.npmmirror.com/serve-static/-/serve-static-2.2.1.tgz",
2491
- "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==",
2492
- "license": "MIT",
2493
- "dependencies": {
2494
- "encodeurl": "^2.0.0",
2495
- "escape-html": "^1.0.3",
2496
- "parseurl": "^1.3.3",
2497
- "send": "^1.2.0"
2498
- },
2499
- "engines": {
2500
- "node": ">= 18"
2501
- },
2502
- "funding": {
2503
- "type": "opencollective",
2504
- "url": "https://opencollective.com/express"
2505
- }
2506
- },
2507
- "node_modules/@modelcontextprotocol/sdk/node_modules/type-is": {
2508
- "version": "2.1.0",
2509
- "resolved": "https://registry.npmmirror.com/type-is/-/type-is-2.1.0.tgz",
2510
- "integrity": "sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==",
2511
- "license": "MIT",
2512
- "dependencies": {
2513
- "content-type": "^2.0.0",
2514
- "media-typer": "^1.1.0",
2515
- "mime-types": "^3.0.0"
2516
- },
2517
- "engines": {
2518
- "node": ">= 18"
2519
- },
2520
- "funding": {
2521
- "type": "opencollective",
2522
- "url": "https://opencollective.com/express"
2523
- }
2524
- },
2525
- "node_modules/@modelcontextprotocol/sdk/node_modules/type-is/node_modules/content-type": {
2526
- "version": "2.1.0",
2527
- "resolved": "https://registry.npmmirror.com/content-type/-/content-type-2.1.0.tgz",
2528
- "integrity": "sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==",
2529
- "license": "MIT",
2530
- "engines": {
2531
- "node": ">=18"
2532
- },
2533
- "funding": {
2534
- "type": "opencollective",
2535
- "url": "https://opencollective.com/express"
2536
- }
2537
- },
2538
2059
  "node_modules/@napi-rs/nice": {
2539
2060
  "version": "1.1.1",
2540
2061
  "resolved": "https://registry.npmmirror.com/@napi-rs/nice/-/nice-1.1.1.tgz",
@@ -7575,12 +7096,6 @@
7575
7096
  "url": "https://github.com/sponsors/sindresorhus"
7576
7097
  }
7577
7098
  },
7578
- "node_modules/@standard-schema/spec": {
7579
- "version": "1.1.0",
7580
- "resolved": "https://registry.npmmirror.com/@standard-schema/spec/-/spec-1.1.0.tgz",
7581
- "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==",
7582
- "license": "MIT"
7583
- },
7584
7099
  "node_modules/@standard-schema/utils": {
7585
7100
  "version": "0.3.0",
7586
7101
  "resolved": "https://registry.npmmirror.com/@standard-schema/utils/-/utils-0.3.0.tgz",
@@ -11505,6 +11020,7 @@
11505
11020
  "version": "7.0.6",
11506
11021
  "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.6.tgz",
11507
11022
  "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
11023
+ "dev": true,
11508
11024
  "license": "MIT",
11509
11025
  "dependencies": {
11510
11026
  "path-key": "^3.1.0",
@@ -13257,27 +12773,6 @@
13257
12773
  "bare-events": "^2.7.0"
13258
12774
  }
13259
12775
  },
13260
- "node_modules/eventsource": {
13261
- "version": "3.0.7",
13262
- "resolved": "https://registry.npmmirror.com/eventsource/-/eventsource-3.0.7.tgz",
13263
- "integrity": "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==",
13264
- "license": "MIT",
13265
- "dependencies": {
13266
- "eventsource-parser": "^3.0.1"
13267
- },
13268
- "engines": {
13269
- "node": ">=18.0.0"
13270
- }
13271
- },
13272
- "node_modules/eventsource-parser": {
13273
- "version": "3.1.1",
13274
- "resolved": "https://registry.npmmirror.com/eventsource-parser/-/eventsource-parser-3.1.1.tgz",
13275
- "integrity": "sha512-EKN1vKAMcZ8MlYMpaNuxN6R9yakzH6uajHcHVTqWJzvu5pWw9DyhbP35HH8MVBQ+dZjAfDxk+A8NiR9KWaXiyQ==",
13276
- "license": "MIT",
13277
- "engines": {
13278
- "node": ">=18.0.0"
13279
- }
13280
- },
13281
12776
  "node_modules/execa": {
13282
12777
  "version": "5.1.1",
13283
12778
  "resolved": "https://registry.npmmirror.com/execa/-/execa-5.1.1.tgz",
@@ -13306,6 +12801,7 @@
13306
12801
  "version": "4.22.2",
13307
12802
  "resolved": "https://registry.npmmirror.com/express/-/express-4.22.2.tgz",
13308
12803
  "integrity": "sha512-IuL+Elrou2ZvCFHs18/CIzy2Nzvo25nZ1/D2eIZlz7c+QUayAcYoiM2BthCjs+EBHVpjYjcuLDAiCWgeIX3X1Q==",
12804
+ "dev": true,
13309
12805
  "license": "MIT",
13310
12806
  "dependencies": {
13311
12807
  "accepts": "~1.3.8",
@@ -13348,29 +12844,11 @@
13348
12844
  "url": "https://opencollective.com/express"
13349
12845
  }
13350
12846
  },
13351
- "node_modules/express-rate-limit": {
13352
- "version": "8.7.0",
13353
- "resolved": "https://registry.npmmirror.com/express-rate-limit/-/express-rate-limit-8.7.0.tgz",
13354
- "integrity": "sha512-hOwV7WOxXfjRpAM1DSJWZDXx3GhplwD8IfwuwvogD8i1Qnkgosw/H45s4ZnFAUHDAhPjlY9hLBvJhKmGMyY26g==",
13355
- "license": "MIT",
13356
- "dependencies": {
13357
- "debug": "^4.4.3",
13358
- "ip-address": "^10.2.0"
13359
- },
13360
- "engines": {
13361
- "node": ">= 16"
13362
- },
13363
- "funding": {
13364
- "url": "https://github.com/sponsors/express-rate-limit"
13365
- },
13366
- "peerDependencies": {
13367
- "express": ">= 4.11"
13368
- }
13369
- },
13370
12847
  "node_modules/express/node_modules/body-parser": {
13371
12848
  "version": "1.20.6",
13372
12849
  "resolved": "https://registry.npmmirror.com/body-parser/-/body-parser-1.20.6.tgz",
13373
12850
  "integrity": "sha512-p5tAzS57i5MV9fZFDj9LeIiTZEufbSe2eDozP+ElheSUq1m74CRq1jI4mYNDdVs9vQztXFLuk/Gd6BWTdwRJ5g==",
12851
+ "dev": true,
13374
12852
  "license": "MIT",
13375
12853
  "dependencies": {
13376
12854
  "bytes": "~3.1.2",
@@ -13395,6 +12873,7 @@
13395
12873
  "version": "2.6.9",
13396
12874
  "resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
13397
12875
  "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
12876
+ "dev": true,
13398
12877
  "license": "MIT",
13399
12878
  "dependencies": {
13400
12879
  "ms": "2.0.0"
@@ -13404,18 +12883,21 @@
13404
12883
  "version": "2.0.0",
13405
12884
  "resolved": "https://registry.npmmirror.com/ms/-/ms-2.0.0.tgz",
13406
12885
  "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
12886
+ "dev": true,
13407
12887
  "license": "MIT"
13408
12888
  },
13409
12889
  "node_modules/express/node_modules/path-to-regexp": {
13410
12890
  "version": "0.1.13",
13411
12891
  "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-0.1.13.tgz",
13412
12892
  "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==",
12893
+ "dev": true,
13413
12894
  "license": "MIT"
13414
12895
  },
13415
12896
  "node_modules/express/node_modules/qs": {
13416
12897
  "version": "6.15.3",
13417
12898
  "resolved": "https://registry.npmmirror.com/qs/-/qs-6.15.3.tgz",
13418
12899
  "integrity": "sha512-O9gl3zCl5h5blw1KGUzQKhA5oUXSl8rwUIM5o0S3nCXMliSvy5Dzx7/DJcI+SwgICv+IneSZwhBh1oSyEHA71A==",
12900
+ "dev": true,
13419
12901
  "license": "BSD-3-Clause",
13420
12902
  "dependencies": {
13421
12903
  "es-define-property": "^1.0.1",
@@ -13487,6 +12969,7 @@
13487
12969
  "version": "3.1.3",
13488
12970
  "resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
13489
12971
  "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
12972
+ "dev": true,
13490
12973
  "license": "MIT"
13491
12974
  },
13492
12975
  "node_modules/fast-equals": {
@@ -13543,22 +13026,6 @@
13543
13026
  "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==",
13544
13027
  "license": "MIT"
13545
13028
  },
13546
- "node_modules/fast-uri": {
13547
- "version": "3.1.7",
13548
- "resolved": "https://registry.npmmirror.com/fast-uri/-/fast-uri-3.1.7.tgz",
13549
- "integrity": "sha512-dOvZVzjdZdz7phd9v6jCbwxrBW3fK6n8Rc0CtdmM4bumzMnxywBYhuph6J819RRw/ku+rLbelwfMunktuzVVHg==",
13550
- "funding": [
13551
- {
13552
- "type": "github",
13553
- "url": "https://github.com/sponsors/fastify"
13554
- },
13555
- {
13556
- "type": "opencollective",
13557
- "url": "https://opencollective.com/fastify"
13558
- }
13559
- ],
13560
- "license": "BSD-3-Clause"
13561
- },
13562
13029
  "node_modules/fastest-levenshtein": {
13563
13030
  "version": "1.0.16",
13564
13031
  "resolved": "https://registry.npmmirror.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz",
@@ -14687,15 +14154,6 @@
14687
14154
  "npm": "1.2.8000 || >= 1.4.16"
14688
14155
  }
14689
14156
  },
14690
- "node_modules/hono": {
14691
- "version": "4.13.7",
14692
- "resolved": "https://registry.npmmirror.com/hono/-/hono-4.13.7.tgz",
14693
- "integrity": "sha512-c8/gF9ac8Y78/agExVocyLevgR+JlpNB444Py0FSX8pJoPdYUfUzRcXtYEYGwt6l19qIlVZPN5Mfsw9jFShmQQ==",
14694
- "license": "MIT",
14695
- "engines": {
14696
- "node": ">=16.9.0"
14697
- }
14698
- },
14699
14157
  "node_modules/hookified": {
14700
14158
  "version": "1.15.1",
14701
14159
  "resolved": "https://registry.npmmirror.com/hookified/-/hookified-1.15.1.tgz",
@@ -15028,15 +14486,6 @@
15028
14486
  "node": ">=12"
15029
14487
  }
15030
14488
  },
15031
- "node_modules/ip-address": {
15032
- "version": "10.7.0",
15033
- "resolved": "https://registry.npmmirror.com/ip-address/-/ip-address-10.7.0.tgz",
15034
- "integrity": "sha512-BGFsyJd5mpXp3rK6jIdADLNgpJUK1jnjzvYF8lK+VyDab9JAmqN0YOKDdP17HlgKb2+ehPgDc8EtnRLbGCAMhA==",
15035
- "license": "MIT",
15036
- "engines": {
15037
- "node": ">= 12"
15038
- }
15039
- },
15040
14489
  "node_modules/ipaddr.js": {
15041
14490
  "version": "1.9.1",
15042
14491
  "resolved": "https://registry.npmmirror.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
@@ -15455,12 +14904,6 @@
15455
14904
  "node": ">=0.10.0"
15456
14905
  }
15457
14906
  },
15458
- "node_modules/is-promise": {
15459
- "version": "4.0.0",
15460
- "resolved": "https://registry.npmmirror.com/is-promise/-/is-promise-4.0.0.tgz",
15461
- "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==",
15462
- "license": "MIT"
15463
- },
15464
14907
  "node_modules/is-regex": {
15465
14908
  "version": "1.2.1",
15466
14909
  "resolved": "https://registry.npmmirror.com/is-regex/-/is-regex-1.2.1.tgz",
@@ -15668,6 +15111,7 @@
15668
15111
  "version": "2.0.0",
15669
15112
  "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz",
15670
15113
  "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
15114
+ "dev": true,
15671
15115
  "license": "ISC"
15672
15116
  },
15673
15117
  "node_modules/iterare": {
@@ -15722,15 +15166,6 @@
15722
15166
  "jiti": "lib/jiti-cli.mjs"
15723
15167
  }
15724
15168
  },
15725
- "node_modules/jose": {
15726
- "version": "6.2.12",
15727
- "resolved": "https://registry.npmmirror.com/jose/-/jose-6.2.12.tgz",
15728
- "integrity": "sha512-9NiFmJEex0sy2Dk58j2UGBSHgUs2ypF9eZSu4L6vjOX3Dp96Sw1F3uL+H+D1sx02jZZdzUT0HgvCy59CuvXcWw==",
15729
- "license": "MIT",
15730
- "funding": {
15731
- "url": "https://github.com/sponsors/panva"
15732
- }
15733
- },
15734
15169
  "node_modules/js-tokens": {
15735
15170
  "version": "4.0.0",
15736
15171
  "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -15791,14 +15226,9 @@
15791
15226
  "version": "1.0.0",
15792
15227
  "resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
15793
15228
  "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
15229
+ "dev": true,
15794
15230
  "license": "MIT"
15795
15231
  },
15796
- "node_modules/json-schema-typed": {
15797
- "version": "8.0.2",
15798
- "resolved": "https://registry.npmmirror.com/json-schema-typed/-/json-schema-typed-8.0.2.tgz",
15799
- "integrity": "sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==",
15800
- "license": "BSD-2-Clause"
15801
- },
15802
15232
  "node_modules/json-stable-stringify-without-jsonify": {
15803
15233
  "version": "1.0.1",
15804
15234
  "resolved": "https://registry.npmmirror.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
@@ -17460,6 +16890,7 @@
17460
16890
  "version": "1.54.0",
17461
16891
  "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.54.0.tgz",
17462
16892
  "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==",
16893
+ "dev": true,
17463
16894
  "license": "MIT",
17464
16895
  "engines": {
17465
16896
  "node": ">= 0.6"
@@ -18086,6 +17517,7 @@
18086
17517
  "version": "1.4.0",
18087
17518
  "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz",
18088
17519
  "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
17520
+ "dev": true,
18089
17521
  "license": "ISC",
18090
17522
  "dependencies": {
18091
17523
  "wrappy": "1"
@@ -18376,32 +17808,6 @@
18376
17808
  "url": "https://github.com/sponsors/sindresorhus"
18377
17809
  }
18378
17810
  },
18379
- "node_modules/parse5": {
18380
- "version": "7.3.0",
18381
- "resolved": "https://registry.npmmirror.com/parse5/-/parse5-7.3.0.tgz",
18382
- "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==",
18383
- "dev": true,
18384
- "license": "MIT",
18385
- "dependencies": {
18386
- "entities": "^6.0.0"
18387
- },
18388
- "funding": {
18389
- "url": "https://github.com/inikulin/parse5?sponsor=1"
18390
- }
18391
- },
18392
- "node_modules/parse5/node_modules/entities": {
18393
- "version": "6.0.1",
18394
- "resolved": "https://registry.npmmirror.com/entities/-/entities-6.0.1.tgz",
18395
- "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
18396
- "dev": true,
18397
- "license": "BSD-2-Clause",
18398
- "engines": {
18399
- "node": ">=0.12"
18400
- },
18401
- "funding": {
18402
- "url": "https://github.com/fb55/entities?sponsor=1"
18403
- }
18404
- },
18405
17811
  "node_modules/parseurl": {
18406
17812
  "version": "1.3.3",
18407
17813
  "resolved": "https://registry.npmmirror.com/parseurl/-/parseurl-1.3.3.tgz",
@@ -18446,6 +17852,7 @@
18446
17852
  "version": "3.1.1",
18447
17853
  "resolved": "https://registry.npmmirror.com/path-key/-/path-key-3.1.1.tgz",
18448
17854
  "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
17855
+ "dev": true,
18449
17856
  "license": "MIT",
18450
17857
  "engines": {
18451
17858
  "node": ">=8"
@@ -18625,15 +18032,6 @@
18625
18032
  "@napi-rs/nice": "^1.0.1"
18626
18033
  }
18627
18034
  },
18628
- "node_modules/pkce-challenge": {
18629
- "version": "5.0.1",
18630
- "resolved": "https://registry.npmmirror.com/pkce-challenge/-/pkce-challenge-5.0.1.tgz",
18631
- "integrity": "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==",
18632
- "license": "MIT",
18633
- "engines": {
18634
- "node": ">=16.20.0"
18635
- }
18636
- },
18637
18035
  "node_modules/pkg-types": {
18638
18036
  "version": "2.3.1",
18639
18037
  "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-2.3.1.tgz",
@@ -20156,6 +19554,7 @@
20156
19554
  "version": "2.0.2",
20157
19555
  "resolved": "https://registry.npmmirror.com/require-from-string/-/require-from-string-2.0.2.tgz",
20158
19556
  "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
19557
+ "dev": true,
20159
19558
  "license": "MIT",
20160
19559
  "engines": {
20161
19560
  "node": ">=0.10.0"
@@ -20302,32 +19701,6 @@
20302
19701
  "url": "https://www.blockchain.com/btc/address/12p1p5q7sK75tPyuesZmssiMYr4TKzpSCN"
20303
19702
  }
20304
19703
  },
20305
- "node_modules/router": {
20306
- "version": "2.2.0",
20307
- "resolved": "https://registry.npmmirror.com/router/-/router-2.2.0.tgz",
20308
- "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==",
20309
- "license": "MIT",
20310
- "dependencies": {
20311
- "debug": "^4.4.0",
20312
- "depd": "^2.0.0",
20313
- "is-promise": "^4.0.0",
20314
- "parseurl": "^1.3.3",
20315
- "path-to-regexp": "^8.0.0"
20316
- },
20317
- "engines": {
20318
- "node": ">= 18"
20319
- }
20320
- },
20321
- "node_modules/router/node_modules/path-to-regexp": {
20322
- "version": "8.4.2",
20323
- "resolved": "https://registry.npmmirror.com/path-to-regexp/-/path-to-regexp-8.4.2.tgz",
20324
- "integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==",
20325
- "license": "MIT",
20326
- "funding": {
20327
- "type": "opencollective",
20328
- "url": "https://opencollective.com/express"
20329
- }
20330
- },
20331
19704
  "node_modules/run-applescript": {
20332
19705
  "version": "7.1.0",
20333
19706
  "resolved": "https://registry.npmmirror.com/run-applescript/-/run-applescript-7.1.0.tgz",
@@ -20727,6 +20100,7 @@
20727
20100
  "version": "2.0.0",
20728
20101
  "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-2.0.0.tgz",
20729
20102
  "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
20103
+ "dev": true,
20730
20104
  "license": "MIT",
20731
20105
  "dependencies": {
20732
20106
  "shebang-regex": "^3.0.0"
@@ -20739,6 +20113,7 @@
20739
20113
  "version": "3.0.0",
20740
20114
  "resolved": "https://registry.npmmirror.com/shebang-regex/-/shebang-regex-3.0.0.tgz",
20741
20115
  "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
20116
+ "dev": true,
20742
20117
  "license": "MIT",
20743
20118
  "engines": {
20744
20119
  "node": ">=8"
@@ -23340,6 +22715,7 @@
23340
22715
  "version": "2.0.2",
23341
22716
  "resolved": "https://registry.npmmirror.com/which/-/which-2.0.2.tgz",
23342
22717
  "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
22718
+ "dev": true,
23343
22719
  "license": "ISC",
23344
22720
  "dependencies": {
23345
22721
  "isexe": "^2.0.0"
@@ -23494,6 +22870,7 @@
23494
22870
  "version": "1.0.2",
23495
22871
  "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz",
23496
22872
  "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
22873
+ "dev": true,
23497
22874
  "license": "ISC"
23498
22875
  },
23499
22876
  "node_modules/wsl-utils": {
@@ -23529,21 +22906,6 @@
23529
22906
  "node": ">=10"
23530
22907
  }
23531
22908
  },
23532
- "node_modules/yaml": {
23533
- "version": "2.9.1",
23534
- "resolved": "https://registry.npmmirror.com/yaml/-/yaml-2.9.1.tgz",
23535
- "integrity": "sha512-3NxN8+78OdzbT7C/WjGsyfPAtJaN3FNDsWxv7Y7mcDsT/oOmgW8BpyQQFFBnvZE3j9Y2Sdz1ULFLezL7Eb2yFw==",
23536
- "license": "ISC",
23537
- "bin": {
23538
- "yaml": "bin.mjs"
23539
- },
23540
- "engines": {
23541
- "node": ">= 14.6"
23542
- },
23543
- "funding": {
23544
- "url": "https://github.com/sponsors/eemeli"
23545
- }
23546
- },
23547
22909
  "node_modules/yargs": {
23548
22910
  "version": "17.7.3",
23549
22911
  "resolved": "https://registry.npmmirror.com/yargs/-/yargs-17.7.3.tgz",
@@ -23605,15 +22967,6 @@
23605
22967
  "url": "https://github.com/sponsors/colinhacks"
23606
22968
  }
23607
22969
  },
23608
- "node_modules/zod-to-json-schema": {
23609
- "version": "3.25.2",
23610
- "resolved": "https://registry.npmmirror.com/zod-to-json-schema/-/zod-to-json-schema-3.25.2.tgz",
23611
- "integrity": "sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==",
23612
- "license": "ISC",
23613
- "peerDependencies": {
23614
- "zod": "^3.25.28 || ^4"
23615
- }
23616
- },
23617
22970
  "node_modules/zone.js": {
23618
22971
  "version": "0.16.2",
23619
22972
  "resolved": "https://registry.npmmirror.com/zone.js/-/zone.js-0.16.2.tgz",
@@ -20,17 +20,15 @@
20
20
  "start": "NODE_ENV=production node main.js",
21
21
  "eslint": "eslint . --quiet",
22
22
  "stylelint": "stylelint client/src/**/*.css --quiet",
23
- "type:check": "node ./scripts/lint.js --typecheck",
23
+ "type:check": "concurrently -n \"server,client\" -c \"blue,green\" \"npm run type:check:server\" \"npm run type:check:client\"",
24
24
  "type:check:client": "tsc --noEmit --project tsconfig.app.json",
25
25
  "type:check:server": "tsc --noEmit --project tsconfig.node.json",
26
26
  "lint": "node ./scripts/lint.js",
27
27
  "precommit": "node scripts/hooks/run-precommit.js",
28
- "upgrade": "npx -y @lark-apaas/fullstack-cli sync --disable-gen-openapi",
29
- "type:check:mcp-ui": "node ./scripts/lint.js --typecheck-mcp-ui",
30
- "eslint:mcp-ui": "node ./scripts/lint.js --eslint-mcp-ui"
28
+ "upgrade": "npx -y @lark-apaas/fullstack-cli sync --disable-gen-openapi"
31
29
  },
32
30
  "dependencies": {
33
- "@lark-apaas/fullstack-nestjs-core": "1.1.62-alpha.20260915105802",
31
+ "@lark-apaas/fullstack-nestjs-core": "^1.1.61",
34
32
  "@nestjs/axios": "^4.0.1",
35
33
  "@nestjs/cache-manager": "^3.1.3",
36
34
  "@nestjs/common": "^10.4.20",
@@ -55,7 +53,7 @@
55
53
  "devDependencies": {
56
54
  "@hookform/resolvers": "^5.2.2",
57
55
  "@lark-apaas/client-toolkit": "^1.2.70",
58
- "@lark-apaas/coding-preset-vite-react": "1.0.23-alpha.20260915105803",
56
+ "@lark-apaas/coding-preset-vite-react": "^1.0.22",
59
57
  "@lark-apaas/fullstack-presets": "^1.1.0",
60
58
  "@nestjs/cli": "^10.4.9",
61
59
  "@radix-ui/react-accordion": "^1.2.12",
@@ -18,31 +18,19 @@ function runCommand(command, args) {
18
18
  shell: false,
19
19
  });
20
20
 
21
- child.on('close', (code) => resolve(code ?? 1));
21
+ child.on('close', (code) => resolve(code || 0));
22
22
  child.on('error', () => resolve(1));
23
23
  });
24
24
  }
25
25
 
26
- // 串行依次执行每个任务,全部跑完后再聚合退出码:
27
- // 降低并发资源占用、让各任务输出按顺序清晰可读,同时保留“一次暴露所有 lint 问题”的行为。
28
- async function runTasksSerially(taskSpecs) {
29
- let exitCode = 0;
30
- for (const [command, args] of taskSpecs) {
31
- const code = await runCommand(command, args);
32
- if (code !== 0) {
33
- exitCode = 1;
34
- }
35
- }
36
- return exitCode;
37
- }
38
-
39
26
  function normalizeProjectFile(filePath) {
40
27
  const absolutePath = path.isAbsolute(filePath)
41
28
  ? filePath
42
29
  : path.resolve(cwd, filePath);
43
30
 
44
31
  if (!fs.existsSync(absolutePath)) {
45
- console.log(`[lint] Deleted file: ${filePath}; checking affected projects`);
32
+ console.warn(`[lint] Skip missing file: ${filePath}`);
33
+ return null;
46
34
  }
47
35
 
48
36
  const relativePath = path.relative(cwd, absolutePath);
@@ -106,92 +94,17 @@ function canRunStylelint() {
106
94
  return STYLELINT_CONFIG_FILES.some(file => fs.existsSync(path.join(cwd, file)));
107
95
  }
108
96
 
109
- const UI_DIR = 'server/mcp/ui';
110
- const UI_TYPECHECK = 'node ./scripts/lint.js --typecheck';
111
-
112
- function isUiFile(file) {
113
- return file.startsWith(`${UI_DIR}/`);
114
- }
115
-
116
- function uiSourceFiles() {
117
- const files = [];
118
- function visit(relative) {
119
- const absolute = path.join(cwd, relative);
120
- if (!fs.existsSync(absolute)) return;
121
- if (fs.lstatSync(absolute).isSymbolicLink()) {
122
- throw new Error(`MCP UI 检查不支持符号链接: ${relative}`);
123
- }
124
- for (const entry of fs.readdirSync(absolute, { withFileTypes: true })) {
125
- if (['node_modules', 'dist', '.git'].includes(entry.name)) continue;
126
- const file = `${relative}/${entry.name}`;
127
- if (entry.isSymbolicLink()) throw new Error(`MCP UI 检查不支持符号链接: ${file}`);
128
- if (entry.isDirectory()) visit(file);
129
- else if (isEslintTarget(file) && !/\.d\.(?:ts|mts|cts)$/.test(file)) files.push(file);
130
- }
131
- }
132
- visit(UI_DIR);
133
- return files.sort();
134
- }
135
-
136
- function uiTasks({ types = true, eslint = true } = {}) {
137
- const sources = uiSourceFiles();
138
- if (!sources.length) return [];
139
- const tasks = [];
140
- if (types) {
141
- const config = `${UI_DIR}/tsconfig.json`;
142
- if (!fs.existsSync(path.join(cwd, config))) {
143
- throw new Error(`MCP UI 缺少 ${config},请按 mcp-guide 补齐独立浏览器 TypeScript 配置。`);
144
- }
145
- const ts = require('typescript');
146
- const parsed = ts.getParsedCommandLineOfConfigFile(path.join(cwd, config), {}, {
147
- ...ts.sys,
148
- onUnRecoverableConfigFileDiagnostic: d => { throw new Error(ts.flattenDiagnosticMessageText(d.messageText, '\n')); },
149
- });
150
- if (!parsed || parsed.errors.length) throw new Error(`MCP UI TypeScript 配置无效: ${config}`);
151
- const included = new Set(parsed.fileNames.map(file => path.resolve(file)));
152
- const missing = sources.filter(file => !included.has(path.resolve(cwd, file)));
153
- if (missing.length) throw new Error(`MCP UI TypeScript 配置未覆盖源码: ${missing.join(', ')};请检查 include/exclude,JS 源码需开启 allowJs。`);
154
- tasks.push([getBinName('npx'), ['--no-install', 'tsc', '--noEmit', '-p', config]]);
155
- }
156
- if (eslint) {
157
- const config = ['eslint.mcp-ui.config.js', 'eslint.mcp-ui.config.cjs', 'eslint.mcp-ui.config.mjs']
158
- .find(file => fs.existsSync(path.join(cwd, file)));
159
- if (!config) throw new Error('MCP UI 缺少独立 ESLint 配置,请按 mcp-guide 创建 eslint.mcp-ui.config.cjs。');
160
- tasks.push([getBinName('npx'), ['--no-install', 'eslint', '--config', config, '--quiet', '--max-warnings', '0', ...sources]]);
161
- }
162
- return tasks;
163
- }
164
-
165
- function packageScripts() {
166
- return JSON.parse(fs.readFileSync(path.join(cwd, 'package.json'), 'utf8')).scripts || {};
167
- }
168
-
169
- async function runTypeCheck() {
170
- const scripts = packageScripts();
171
- const tasks = ['type:check:server', 'type:check:client'].map(name => {
172
- if (!scripts[name]) throw new Error(`缺少 scripts.${name},请保留应用原有类型检查命令。`);
173
- return [getBinName('npm'), ['run', name]];
174
- });
175
- tasks.push(...uiTasks({ eslint: false }));
176
- process.exit(await runTasksSerially(tasks));
177
- }
178
-
179
97
  async function runDefaultLint() {
180
- const taskSpecs = [
181
- [getBinName('npm'), ['run', 'eslint']],
182
- [getBinName('npm'), ['run', 'type:check']],
183
- ];
184
-
185
- // Customized type:check remains untouched; ensure full lint still checks UI.
186
- taskSpecs.push(...uiTasks({ types: packageScripts()['type:check'] !== UI_TYPECHECK }));
98
+ const commands = ['npm run eslint', 'npm run type:check'];
187
99
 
188
100
  if (canRunStylelint()) {
189
- taskSpecs.push([getBinName('npm'), ['run', 'stylelint']]);
101
+ commands.push('npm run stylelint');
190
102
  } else {
191
103
  console.warn('[lint] Skip stylelint: missing scripts.stylelint or stylelint config');
192
104
  }
193
105
 
194
- process.exit(await runTasksSerially(taskSpecs));
106
+ const code = await runCommand(getBinName('npx'), ['concurrently', ...commands]);
107
+ process.exit(code);
195
108
  }
196
109
 
197
110
  async function runSelectiveLint(inputFiles) {
@@ -204,20 +117,15 @@ async function runSelectiveLint(inputFiles) {
204
117
  process.exit(0);
205
118
  }
206
119
 
207
- const eslintFiles = normalizedFiles.filter(file => fs.existsSync(path.join(cwd, file)) && isEslintTarget(file) && !isUiFile(file) && !file.startsWith('eslint.mcp-ui.config.'));
208
- const stylelintFiles = normalizedFiles.filter(file => fs.existsSync(path.join(cwd, file)) && isStylelintTarget(file));
120
+ const eslintFiles = normalizedFiles.filter(isEslintTarget);
121
+ const stylelintFiles = normalizedFiles.filter(isStylelintTarget);
209
122
  const typeCheckFiles = normalizedFiles.filter(isTypeCheckTarget);
210
123
 
211
124
  const clientTypeFiles = [];
212
125
  const serverTypeFiles = [];
213
- const rootConfigChanged = normalizedFiles.some(file => /^tsconfig(?:\.[^/]*)?\.json$/.test(file));
214
- if (rootConfigChanged) { clientTypeFiles.push('config'); serverTypeFiles.push('config'); }
215
- let checkUi = rootConfigChanged || normalizedFiles.some(file => isUiFile(file) || file.startsWith('shared/') || file.startsWith('eslint.mcp-ui.config.'));
216
126
 
217
127
  for (const filePath of typeCheckFiles) {
218
- if (isUiFile(filePath)) {
219
- checkUi = true;
220
- } else if (filePath.startsWith('client/')) {
128
+ if (filePath.startsWith('client/')) {
221
129
  clientTypeFiles.push(filePath);
222
130
  } else if (filePath.startsWith('server/')) {
223
131
  serverTypeFiles.push(filePath);
@@ -227,46 +135,36 @@ async function runSelectiveLint(inputFiles) {
227
135
  }
228
136
  }
229
137
 
230
- const taskSpecs = [];
138
+ const tasks = [];
231
139
 
232
140
  if (eslintFiles.length > 0) {
233
- taskSpecs.push([getBinName('npx'), ['eslint', '--quiet', ...eslintFiles]]);
141
+ tasks.push(runCommand(getBinName('npx'), ['eslint', '--quiet', ...eslintFiles]));
234
142
  }
235
143
 
236
144
  if (stylelintFiles.length > 0 && !canRunStylelint()) {
237
145
  console.warn('[lint] Skip stylelint: missing scripts.stylelint or stylelint config');
238
146
  } else if (stylelintFiles.length > 0) {
239
- taskSpecs.push([getBinName('npx'), ['stylelint', '--quiet', ...stylelintFiles]]);
147
+ tasks.push(runCommand(getBinName('npx'), ['stylelint', '--quiet', ...stylelintFiles]));
240
148
  }
241
149
 
242
150
  if (clientTypeFiles.length > 0) {
243
- taskSpecs.push([getBinName('npm'), ['run', 'type:check:client']]);
151
+ tasks.push(runCommand(getBinName('npm'), ['run', 'type:check:client']));
244
152
  }
245
153
 
246
154
  if (serverTypeFiles.length > 0) {
247
- taskSpecs.push([getBinName('npm'), ['run', 'type:check:server']]);
155
+ tasks.push(runCommand(getBinName('npm'), ['run', 'type:check:server']));
248
156
  }
249
157
 
250
- if (checkUi) taskSpecs.push(...uiTasks());
251
-
252
- if (taskSpecs.length === 0) {
158
+ if (tasks.length === 0) {
253
159
  console.log('[lint] No supported files matched for lint');
254
160
  process.exit(0);
255
161
  }
256
162
 
257
- process.exit(await runTasksSerially(taskSpecs));
163
+ const results = await Promise.all(tasks);
164
+ process.exit(results.some(code => code !== 0) ? 1 : 0);
258
165
  }
259
166
 
260
167
  async function main() {
261
- const args = process.argv.slice(2);
262
- const modes = ['--typecheck', '--typecheck-mcp-ui', '--eslint-mcp-ui'];
263
- if (args.length && !(args[0] === '--files' && args.length > 1) && !(args.length === 1 && modes.includes(args[0]))) {
264
- throw new Error('用法: lint.js [--files <paths...> | --typecheck | --typecheck-mcp-ui | --eslint-mcp-ui]');
265
- }
266
- if (args[0] === '--files' && args.slice(1).some(arg => arg.startsWith('--'))) throw new Error('--files 不可与其他检查模式混用');
267
- if (args.includes('--typecheck')) return runTypeCheck();
268
- if (args.includes('--typecheck-mcp-ui')) return process.exit(await runTasksSerially(uiTasks({ eslint: false })));
269
- if (args.includes('--eslint-mcp-ui')) return process.exit(await runTasksSerially(uiTasks({ types: false })));
270
168
  const files = parseFilesArg(process.argv.slice(2));
271
169
  if (files === null) {
272
170
  await runDefaultLint();
@@ -1 +1,3 @@
1
- /* 前后端共享的类型写在这里 */
1
+ /* 前后端共享的类型写在这里 */
2
+
3
+ export type HelloResponse = unknown[];
@@ -13,6 +13,5 @@
13
13
  "excludeDirectories": ["node_modules/**"]
14
14
  },
15
15
  "include": ["server/**/*", "shared/**/*.ts"],
16
- // MCP UI 是独立浏览器工程,不使用服务端的 TypeScript 配置。
17
- "exclude": ["server/mcp/ui", "node_modules", "dist", "client", "source_package", "**/*.spec.ts", "**/*.e2e-spec.ts"],
16
+ "exclude": ["node_modules", "dist", "client", "source_package", "**/*.spec.ts", "**/*.e2e-spec.ts"],
18
17
  }