feat: 调整依赖
This commit is contained in:
parent
8fc3ddb63a
commit
c26d614fb2
268
RECORD.md
Normal file
268
RECORD.md
Normal file
@ -0,0 +1,268 @@
|
||||
# Claude Code 项目运行记录
|
||||
|
||||
> 项目: `/Users/konghayao/code/ai/claude-code`
|
||||
> 日期: 2026-03-31
|
||||
> 包管理器: bun
|
||||
|
||||
---
|
||||
|
||||
## 零、项目目标
|
||||
|
||||
**将 claude-code 项目运行起来,必要时可以删减次级能力。**
|
||||
|
||||
这是一个 Anthropic 官方的 Claude Code CLI 工具的源码反编译/逆向还原项目。项目的核心目标是:
|
||||
|
||||
1. **使项目能够成功构建和运行** — 优先解决 `bun run build` 和 `bun run dev` 的阻塞问题
|
||||
2. **删减次级能力以降低复杂度** — 对于依赖私有 npm 包(如 `@ant/*`)的功能,可以用 stub 替代或直接移除
|
||||
3. **保留核心 CLI 交互能力** — 保留与 Anthropic API 通信、工具调用、REPL 交互等核心功能
|
||||
|
||||
### 可删减的次级能力
|
||||
|
||||
| 模块 | 说明 | 处理方式 |
|
||||
|------|------|----------|
|
||||
| Computer Use | `@ant/computer-use-*` 私有包 | stub 或移除 |
|
||||
| Claude for Chrome | `@ant/claude-for-chrome-mcp` | stub 或移除 |
|
||||
| Magic Docs | 私有文档处理 | 移除 |
|
||||
| Voice Mode | 语音模式 | 移除 |
|
||||
| LSP Server | `vscode-languageserver-*` | 移除 |
|
||||
| Analytics/Telemetry | 数据上报 | 空实现 |
|
||||
| GrowthBook | A/B 实验 | 空实现 |
|
||||
| Plugins/Marketplace | 插件市场 | 移除 |
|
||||
| Desktop Upsell | 桌面端推销 | 移除 |
|
||||
| Ultraplan | 私有功能 | 移除 |
|
||||
| Tungsten | 私有功能 | 移除 |
|
||||
| Sentry | 错误上报 | 移除 |
|
||||
| Auto Dream | 自动后台任务 | 移除 |
|
||||
| MCP OAuth/IDP | 企业级认证 | 简化 |
|
||||
|
||||
### 核心保留能力
|
||||
|
||||
- API 通信(Anthropic SDK / Bedrock / Vertex)
|
||||
- Bash/FileRead/FileWrite/FileEdit 等核心工具
|
||||
- REPL 交互界面(ink 终端渲染)
|
||||
- 对话历史与会话管理
|
||||
- 权限系统(基础)
|
||||
- Agent/子代理系统
|
||||
|
||||
---
|
||||
|
||||
## 一、整体进度
|
||||
|
||||
| 阶段 | 错误数 | 说明 |
|
||||
|------|--------|------|
|
||||
| 初始状态 | ~1800 | 仅缺少 npm 依赖的 TS2307 错误 |
|
||||
| 补全依赖后 | ~1800 | npm 包已安装,开始处理类型 |
|
||||
| 当前状态 | **2123** | 类型 stub 已创建,但存在质量待修问题 |
|
||||
|
||||
### 当前错误分布
|
||||
|
||||
| 错误码 | 数量 | 含义 |
|
||||
|--------|------|------|
|
||||
| TS2693 | 727 | `export type X` 被当作值使用(应为 `export const/function`) |
|
||||
| TS2339 | 537 | 属性不存在(类型收窄、unknown 类型) |
|
||||
| TS2614 | 468 | 模块只有默认导出,但代码用命名导入 |
|
||||
| TS2322 | 128 | 类型不匹配 |
|
||||
| TS2345 | 57 | 参数类型不匹配 |
|
||||
| TS2300 | 34 | 重复标识符(stub 文件中 export 重复) |
|
||||
| TS2307 | 29 | 仍有缺失模块 |
|
||||
| TS2305 | 28 | 缺失导出成员 |
|
||||
| TS2724 | 21 | 导出名称不匹配(如 HookEvent vs HOOK_EVENTS) |
|
||||
| TS2367 | 17 | 比较类型无交集(`"external" === "ant"` 等) |
|
||||
| 其他 | ~100 | TS2578/TS2315/TS2365/TS2741 等 |
|
||||
|
||||
---
|
||||
|
||||
## 二、已完成的工作
|
||||
|
||||
### 2.1 全局变量声明 (`src/types/global.d.ts`)
|
||||
|
||||
声明了编译时宏和内部标识符:
|
||||
|
||||
- **MACRO / MACRO.VERSION** — Bun 编译时宏,通过 `bun:bundle` 提供
|
||||
- **MACRO.BUILD_TIME / FEEDBACK_CHANNEL / ISSUES_EXPLAINER** 等编译时常量
|
||||
- **resolveAntModel / getAntModels / getAntModelOverrideConfig** — 内部模型解析
|
||||
- **fireCompanionObserver** — Companion 观察器
|
||||
- **apiMetricsRef / computeTtftText** — 指标计算
|
||||
- **Gates / GateOverridesWarning / ExperimentEnrollmentNotice** — 功能门控
|
||||
- **HOOK_TIMING_DISPLAY_THRESHOLD_MS** — Hook 时间阈值
|
||||
- **UltraplanChoiceDialog / UltraplanLaunchDialog / launchUltraplan** — Ultraplan 功能
|
||||
- **TungstenPill** — Tungsten 功能
|
||||
- **T** — React compiler 输出泄露的泛型参数
|
||||
|
||||
### 2.2 内部包声明 (`src/types/internal-modules.d.ts`)
|
||||
|
||||
为 Anthropic 私有包提供了详细的类型导出:
|
||||
|
||||
- `@ant/claude-for-chrome-mcp` — BROWSER_TOOLS, ClaudeForChromeContext, Logger 等
|
||||
- `@ant/computer-use-mcp` — ComputerExecutor, ScreenshotResult, buildComputerUseTools 等
|
||||
- `@ant/computer-use-mcp/types` — ComputerUseHostAdapter, CoordinateMode 等
|
||||
- `@ant/computer-use-mcp/sentinelApps` — getSentinelCategory
|
||||
- `@ant/computer-use-input` — ComputerUseInput, ComputerUseInputAPI
|
||||
- `@ant/computer-use-swift` — ComputerUseAPI
|
||||
- `@anthropic-ai/mcpb` — McpbManifest, McpbUserConfigurationOption
|
||||
- `color-diff-napi` — ColorDiff, SyntaxTheme, getSyntaxTheme
|
||||
- `audio-capture-napi / image-processor-napi / url-handler-napi`
|
||||
- `bun:bundle / bun:ffi`
|
||||
|
||||
### 2.3 SDK 模块补全 (`src/entrypoints/sdk/`)
|
||||
|
||||
为缺失的 SDK 子模块创建了 stub 文件:
|
||||
|
||||
| 文件 | 说明 |
|
||||
|------|------|
|
||||
| `controlTypes.ts` | 控制协议类型(SDKControlRequest/Response) |
|
||||
| `runtimeTypes.ts` | 运行时类型(SDKSession, Query, Options, SdkMcpToolDefinition 等) |
|
||||
| `coreTypes.generated.ts` | 从 Zod schema 生成的类型(ModelUsage, HookInput 系列, SDK 消息类型等) |
|
||||
| `settingsTypes.generated.ts` | Settings 类型 |
|
||||
| `toolTypes.ts` | 工具类型 |
|
||||
| `sdkUtilityTypes.ts` | NonNullableUsage 等工具类型 |
|
||||
|
||||
### 2.4 自动化 stub 生成 (`scripts/create-type-stubs.mjs`)
|
||||
|
||||
编写了自动分析脚本,通过解析 `tsc` 错误和源码 `import` 语句,自动创建缺失模块的 stub 文件:
|
||||
|
||||
- 扫描 TS2305/TS2614/TS2724 获取缺失导出
|
||||
- 扫描源码 import 语句获取命名导入
|
||||
- 自动创建 `export type X = any` stub
|
||||
- 已生成 **1206 个 stub 文件,覆盖 2067 个命名导出**
|
||||
|
||||
---
|
||||
|
||||
## 三、当前问题分析
|
||||
|
||||
### 3.1 TS2693 (727 个) — `export type` 被当作值使用 ⚠️ 关键
|
||||
|
||||
**原因**: `scripts/create-type-stubs.mjs` 统一使用 `export type X = any` 生成 stub,但代码中很多地方将导入的名称作为**值**使用(如调用函数、渲染 JSX 组件等)。
|
||||
|
||||
**示例**:
|
||||
|
||||
```typescript
|
||||
// stub 中: export type performLogout = any
|
||||
// 实际使用: performLogout() // TS2693: only refers to a type, but is being used as a value
|
||||
```
|
||||
|
||||
**修复方案**: 将 `export type X = any` 改为 `declare const X: any` 或 `export const X: any`。需要区分哪些是纯类型、哪些是值/函数/组件。
|
||||
|
||||
### 3.2 TS2614 (468 个) — 模块只有默认导出
|
||||
|
||||
**原因**: 部分 stub 文件使用 `export default {} as any`(早期手动创建),但代码用命名导入 `import { Message } from ...`。
|
||||
|
||||
**示例**: `src/types/message.ts` 当前内容为 `export default {} as any`,但代码 `import type { Message } from '../types/message.js'`
|
||||
|
||||
**修复方案**: 将默认导出改为命名导出。
|
||||
|
||||
### 3.3 TS2300 (34 个) — 重复标识符
|
||||
|
||||
**原因**: stub 文件中有 `export type X = any` 行,同时源文件中也存在同名定义,造成冲突。部分 stub 文件路径不正确(如 `src/components/CustomSelect/select.ts` 既有真实代码又有 stub 导出)。
|
||||
|
||||
**修复方案**: 检查这些文件,如果真实文件存在则删除 stub 中的重复导出。
|
||||
|
||||
### 3.4 TS2339 (537 个) — 属性不存在
|
||||
|
||||
**原因**: `any` 类型的 stub 过于宽松时可以正常工作,但部分地方类型收窄后(如联合类型判别、`unknown` 类型)无法访问属性。
|
||||
|
||||
**分类**:
|
||||
|
||||
- 内部代码中 `unknown` 类型需要类型断言(源码问题)
|
||||
- `McpServerConfigForProcessTransport` 等类型定义过窄(stub 精度问题)
|
||||
- `{ ok: true } | { ok: false; error: string }` 联合类型访问 `.error`(源码惯用模式)
|
||||
|
||||
**修复方案**: 调整相关 stub 类型定义使其更精确。
|
||||
|
||||
### 3.5 TS2307 (29 个) — 仍有缺失模块
|
||||
|
||||
主要是路径解析问题产生的重复 stub(如 `src/cli/src/` 下的文件已被删除)以及一些深度嵌套的相对路径。
|
||||
|
||||
### 3.6 路径问题
|
||||
|
||||
部分 stub 文件被错误创建在 `src/cli/src/` 等嵌套路径下(因为 `import { X } from 'src/something'` 从 `src/cli/handlers/auth.ts` 解析时路径计算错误)。已手动删除部分重复文件,但可能仍有残留。
|
||||
|
||||
---
|
||||
|
||||
## 四、后续处理方案
|
||||
|
||||
### Phase 1: 修复脚本 — 区分类型导出 vs 值导出 (预计解决 ~1200 个错误)
|
||||
|
||||
改进 `scripts/create-type-stubs.mjs`:
|
||||
|
||||
1. **分析 import 语句上下文**:
|
||||
- `import type { X }` → 纯类型,用 `export type X = any`
|
||||
- `import { X }` (无 type) → 可能是值,用 `export const X: any = (() => {}) as any`
|
||||
- JSX 组件(大写开头 + 在 JSX 中使用)→ `export const X: React.FC<any> = () => null`
|
||||
|
||||
2. **分析使用上下文**:
|
||||
- `X()` 调用 → 函数/值导出
|
||||
- `<X />` → React 组件
|
||||
- `X.property` → 对象/命名空间
|
||||
|
||||
### Phase 2: 修复默认导出问题 (预计解决 ~468 个 TS2614)
|
||||
|
||||
将所有 `export default {} as any` 的 stub 文件替换为带命名导出的版本:
|
||||
|
||||
```typescript
|
||||
// 之前
|
||||
export default {} as any
|
||||
|
||||
// 之后 — 根据导入需求
|
||||
export type Message = any
|
||||
export type NormalizedUserMessage = any
|
||||
// ... 等
|
||||
```
|
||||
|
||||
### Phase 3: 清理冲突和路径问题 (预计解决 ~34 个 TS2300 + 29 个 TS2307)
|
||||
|
||||
1. 检查所有带 `TS2300` 错误的文件,删除与真实代码冲突的 stub
|
||||
2. 清理 `src/cli/src/`、`src/components/*/src/` 等错误路径下的 stub 残留
|
||||
3. 修复 `tsconfig.json` 的 `paths` 配置,确保 `src/*` 映射正确
|
||||
|
||||
### Phase 4: 精化关键类型定义 (预计解决 ~100+ 个 TS2322/TS2345)
|
||||
|
||||
对高频使用的类型提供更精确的定义:
|
||||
|
||||
1. **SDK 消息类型** — 使 `type` 字段为字面量联合类型,而非 `string`
|
||||
2. **McpServerConfig** — 改为联合类型(stdio | sse | http | sse-ide)
|
||||
3. **HookInput** 系列 — 添加 `hook_event_name` 字面量类型
|
||||
4. **PermissionResult** — 改为判别联合 `allow | deny`
|
||||
|
||||
### Phase 5: 处理源码级别的类型问题 (需评估)
|
||||
|
||||
这些是源码本身的问题,不属于 stub 范畴:
|
||||
|
||||
- `TS2367`: `"external" === "ant"` — 构建时消除的死代码
|
||||
- `TS2339`: 联合类型属性访问 — 需要类型收窄或断言
|
||||
- `TS2322`: 类型字面量不匹配(如 `"result"` vs `"result_success"`)
|
||||
|
||||
---
|
||||
|
||||
## 五、关键文件清单
|
||||
|
||||
| 文件 | 用途 |
|
||||
|------|------|
|
||||
| `src/types/global.d.ts` | 全局变量/宏声明 |
|
||||
| `src/types/internal-modules.d.ts` | 内部 npm 包类型声明 |
|
||||
| `src/types/react-compiler-runtime.d.ts` | React compiler runtime |
|
||||
| `src/types/sdk-stubs.d.ts` | SDK 通配符类型(备用) |
|
||||
| `src/entrypoints/sdk/controlTypes.ts` | SDK 控制类型 stub |
|
||||
| `src/entrypoints/sdk/runtimeTypes.ts` | SDK 运行时类型 stub |
|
||||
| `src/entrypoints/sdk/coreTypes.generated.ts` | SDK 核心类型 stub |
|
||||
| `src/entrypoints/sdk/settingsTypes.generated.ts` | SDK 设置类型 stub |
|
||||
| `src/entrypoints/sdk/toolTypes.ts` | SDK 工具类型 stub |
|
||||
| `src/entrypoints/sdk/sdkUtilityTypes.ts` | SDK 工具类型 |
|
||||
| `scripts/create-type-stubs.mjs` | 自动 stub 生成脚本 |
|
||||
| `tsconfig.json` | TypeScript 配置 |
|
||||
| `package.json` | 依赖配置 |
|
||||
|
||||
---
|
||||
|
||||
## 六、运行命令
|
||||
|
||||
```bash
|
||||
# 检查当前错误数
|
||||
cd /Users/konghayao/code/ai/claude-code && npx tsc --noEmit 2>&1 | grep "error TS" | wc -l
|
||||
|
||||
# 错误分类统计
|
||||
npx tsc --noEmit 2>&1 | grep "error TS" | sed 's/.*error //' | sed 's/:.*//' | sort | uniq -c | sort -rn
|
||||
|
||||
# 重新生成 stub(修复脚本后)
|
||||
node scripts/create-type-stubs.mjs
|
||||
```
|
||||
218
package.json
218
package.json
@ -1,111 +1,111 @@
|
||||
{
|
||||
"name": "claude-code",
|
||||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"build": "bun build src/entrypoints/cli.ts --outdir dist --target bun",
|
||||
"dev": "bun run --watch src/entrypoints/cli.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@alcalzone/ansi-tokenize": "^0.3.0",
|
||||
"@anthropic-ai/bedrock-sdk": "^0.26.4",
|
||||
"@anthropic-ai/claude-agent-sdk": "latest",
|
||||
"@anthropic-ai/foundry-sdk": "^0.2.3",
|
||||
"@anthropic-ai/mcpb": "latest",
|
||||
"@anthropic-ai/sandbox-runtime": "latest",
|
||||
"@anthropic-ai/sdk": "latest",
|
||||
"@anthropic-ai/vertex-sdk": "^0.14.4",
|
||||
"@aws-sdk/client-bedrock": "latest",
|
||||
"@aws-sdk/client-bedrock-runtime": "latest",
|
||||
"@aws-sdk/client-sts": "^3.1020.0",
|
||||
"@aws-sdk/credential-providers": "latest",
|
||||
"@azure/identity": "^4.13.1",
|
||||
"@commander-js/extra-typings": "latest",
|
||||
"@growthbook/growthbook": "latest",
|
||||
"@modelcontextprotocol/sdk": "latest",
|
||||
"@opentelemetry/api": "latest",
|
||||
"@opentelemetry/api-logs": "latest",
|
||||
"@opentelemetry/core": "latest",
|
||||
"@opentelemetry/exporter-logs-otlp-grpc": "latest",
|
||||
"@opentelemetry/exporter-logs-otlp-http": "latest",
|
||||
"@opentelemetry/exporter-logs-otlp-proto": "^0.214.0",
|
||||
"@opentelemetry/exporter-metrics-otlp-grpc": "latest",
|
||||
"@opentelemetry/exporter-metrics-otlp-http": "latest",
|
||||
"@opentelemetry/exporter-metrics-otlp-proto": "^0.214.0",
|
||||
"@opentelemetry/exporter-prometheus": "latest",
|
||||
"@opentelemetry/exporter-trace-otlp-grpc": "latest",
|
||||
"@opentelemetry/exporter-trace-otlp-http": "latest",
|
||||
"@opentelemetry/exporter-trace-otlp-proto": "^0.214.0",
|
||||
"@opentelemetry/resources": "latest",
|
||||
"@opentelemetry/sdk-logs": "latest",
|
||||
"@opentelemetry/sdk-metrics": "latest",
|
||||
"@opentelemetry/sdk-trace-base": "latest",
|
||||
"@smithy/core": "latest",
|
||||
"@smithy/node-http-handler": "latest",
|
||||
"ajv": "latest",
|
||||
"asciichart": "latest",
|
||||
"auto-bind": "latest",
|
||||
"axios": "latest",
|
||||
"bidi-js": "latest",
|
||||
"cacache": "^20.0.4",
|
||||
"chalk": "latest",
|
||||
"chokidar": "latest",
|
||||
"cli-boxes": "latest",
|
||||
"cli-highlight": "^2.1.11",
|
||||
"code-excerpt": "latest",
|
||||
"diff": "latest",
|
||||
"emoji-regex": "latest",
|
||||
"env-paths": "latest",
|
||||
"execa": "latest",
|
||||
"figures": "latest",
|
||||
"fuse.js": "latest",
|
||||
"get-east-asian-width": "latest",
|
||||
"google-auth-library": "latest",
|
||||
"highlight.js": "latest",
|
||||
"https-proxy-agent": "latest",
|
||||
"ignore": "latest",
|
||||
"indent-string": "latest",
|
||||
"jsonc-parser": "^3.3.1",
|
||||
"lodash-es": "latest",
|
||||
"lru-cache": "latest",
|
||||
"marked": "latest",
|
||||
"p-map": "latest",
|
||||
"picomatch": "latest",
|
||||
"plist": "^3.1.0",
|
||||
"proper-lockfile": "latest",
|
||||
"qrcode": "latest",
|
||||
"react": "latest",
|
||||
"react-compiler-runtime": "^1.0.0",
|
||||
"react-reconciler": "latest",
|
||||
"semver": "latest",
|
||||
"sharp": "^0.34.5",
|
||||
"shell-quote": "latest",
|
||||
"signal-exit": "latest",
|
||||
"stack-utils": "latest",
|
||||
"strip-ansi": "latest",
|
||||
"supports-hyperlinks": "latest",
|
||||
"tree-kill": "latest",
|
||||
"turndown": "^7.2.2",
|
||||
"type-fest": "latest",
|
||||
"undici": "latest",
|
||||
"usehooks-ts": "latest",
|
||||
"vscode-languageserver-protocol": "latest",
|
||||
"vscode-languageserver-types": "latest",
|
||||
"wrap-ansi": "latest",
|
||||
"ws": "latest",
|
||||
"xss": "latest",
|
||||
"yaml": "^2.8.3",
|
||||
"zod": "latest"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/bun": "^1.3.11",
|
||||
"@types/cacache": "^20.0.1",
|
||||
"@types/plist": "^3.0.5",
|
||||
"@types/react": "latest",
|
||||
"@types/react-reconciler": "latest",
|
||||
"@types/sharp": "^0.32.0",
|
||||
"@types/turndown": "^5.0.6",
|
||||
"typescript": "latest"
|
||||
}
|
||||
"name": "claude-code",
|
||||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"build": "bun build src/entrypoints/cli.ts --outdir dist --target bun",
|
||||
"dev": "bun run --watch src/entrypoints/cli.tsx"
|
||||
},
|
||||
"dependencies": {
|
||||
"@alcalzone/ansi-tokenize": "^0.3.0",
|
||||
"@anthropic-ai/bedrock-sdk": "^0.26.4",
|
||||
"@anthropic-ai/claude-agent-sdk": "latest",
|
||||
"@anthropic-ai/foundry-sdk": "^0.2.3",
|
||||
"@anthropic-ai/mcpb": "latest",
|
||||
"@anthropic-ai/sandbox-runtime": "latest",
|
||||
"@anthropic-ai/sdk": "latest",
|
||||
"@anthropic-ai/vertex-sdk": "^0.14.4",
|
||||
"@aws-sdk/client-bedrock": "latest",
|
||||
"@aws-sdk/client-bedrock-runtime": "latest",
|
||||
"@aws-sdk/client-sts": "^3.1020.0",
|
||||
"@aws-sdk/credential-providers": "latest",
|
||||
"@azure/identity": "^4.13.1",
|
||||
"@commander-js/extra-typings": "latest",
|
||||
"@growthbook/growthbook": "latest",
|
||||
"@modelcontextprotocol/sdk": "latest",
|
||||
"@opentelemetry/api": "latest",
|
||||
"@opentelemetry/api-logs": "latest",
|
||||
"@opentelemetry/core": "latest",
|
||||
"@opentelemetry/exporter-logs-otlp-grpc": "latest",
|
||||
"@opentelemetry/exporter-logs-otlp-http": "latest",
|
||||
"@opentelemetry/exporter-logs-otlp-proto": "^0.214.0",
|
||||
"@opentelemetry/exporter-metrics-otlp-grpc": "latest",
|
||||
"@opentelemetry/exporter-metrics-otlp-http": "latest",
|
||||
"@opentelemetry/exporter-metrics-otlp-proto": "^0.214.0",
|
||||
"@opentelemetry/exporter-prometheus": "latest",
|
||||
"@opentelemetry/exporter-trace-otlp-grpc": "latest",
|
||||
"@opentelemetry/exporter-trace-otlp-http": "latest",
|
||||
"@opentelemetry/exporter-trace-otlp-proto": "^0.214.0",
|
||||
"@opentelemetry/resources": "latest",
|
||||
"@opentelemetry/sdk-logs": "latest",
|
||||
"@opentelemetry/sdk-metrics": "latest",
|
||||
"@opentelemetry/sdk-trace-base": "latest",
|
||||
"@smithy/core": "latest",
|
||||
"@smithy/node-http-handler": "latest",
|
||||
"ajv": "latest",
|
||||
"asciichart": "latest",
|
||||
"auto-bind": "latest",
|
||||
"axios": "latest",
|
||||
"bidi-js": "latest",
|
||||
"cacache": "^20.0.4",
|
||||
"chalk": "latest",
|
||||
"chokidar": "latest",
|
||||
"cli-boxes": "latest",
|
||||
"cli-highlight": "^2.1.11",
|
||||
"code-excerpt": "latest",
|
||||
"diff": "latest",
|
||||
"emoji-regex": "latest",
|
||||
"env-paths": "latest",
|
||||
"execa": "latest",
|
||||
"figures": "latest",
|
||||
"fuse.js": "latest",
|
||||
"get-east-asian-width": "latest",
|
||||
"google-auth-library": "latest",
|
||||
"highlight.js": "latest",
|
||||
"https-proxy-agent": "latest",
|
||||
"ignore": "latest",
|
||||
"indent-string": "latest",
|
||||
"jsonc-parser": "^3.3.1",
|
||||
"lodash-es": "latest",
|
||||
"lru-cache": "latest",
|
||||
"marked": "latest",
|
||||
"p-map": "latest",
|
||||
"picomatch": "latest",
|
||||
"plist": "^3.1.0",
|
||||
"proper-lockfile": "latest",
|
||||
"qrcode": "latest",
|
||||
"react": "latest",
|
||||
"react-compiler-runtime": "^1.0.0",
|
||||
"react-reconciler": "latest",
|
||||
"semver": "latest",
|
||||
"sharp": "^0.34.5",
|
||||
"shell-quote": "latest",
|
||||
"signal-exit": "latest",
|
||||
"stack-utils": "latest",
|
||||
"strip-ansi": "latest",
|
||||
"supports-hyperlinks": "latest",
|
||||
"tree-kill": "latest",
|
||||
"turndown": "^7.2.2",
|
||||
"type-fest": "latest",
|
||||
"undici": "latest",
|
||||
"usehooks-ts": "latest",
|
||||
"vscode-languageserver-protocol": "latest",
|
||||
"vscode-languageserver-types": "latest",
|
||||
"wrap-ansi": "latest",
|
||||
"ws": "latest",
|
||||
"xss": "latest",
|
||||
"yaml": "^2.8.3",
|
||||
"zod": "latest"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/bun": "^1.3.11",
|
||||
"@types/cacache": "^20.0.1",
|
||||
"@types/plist": "^3.0.5",
|
||||
"@types/react": "latest",
|
||||
"@types/react-reconciler": "latest",
|
||||
"@types/sharp": "^0.32.0",
|
||||
"@types/turndown": "^5.0.6",
|
||||
"typescript": "latest"
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,20 +1,20 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "ESNext",
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"jsx": "react-jsx",
|
||||
"strict": false,
|
||||
"skipLibCheck": true,
|
||||
"noEmit": true,
|
||||
"esModuleInterop": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"resolveJsonModule": true,
|
||||
"types": ["bun"],
|
||||
"paths": {
|
||||
"src/*": ["./src/*"]
|
||||
}
|
||||
},
|
||||
"include": ["src/**/*.ts", "src/**/*.tsx"],
|
||||
"exclude": ["node_modules"]
|
||||
"compilerOptions": {
|
||||
"target": "ESNext",
|
||||
"module": "ESNext",
|
||||
"moduleResolution": "bundler",
|
||||
"jsx": "react-jsx",
|
||||
"strict": false,
|
||||
"skipLibCheck": true,
|
||||
"noEmit": true,
|
||||
"esModuleInterop": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"resolveJsonModule": true,
|
||||
"types": ["bun"],
|
||||
"paths": {
|
||||
"src/*": ["./src/*"]
|
||||
}
|
||||
},
|
||||
"include": ["src/**/*.ts", "src/**/*.tsx"],
|
||||
"exclude": ["node_modules"]
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user