|
|
@@ -0,0 +1,137 @@
|
|
|
+# Story 005.001: Infrastructure Core Packages
|
|
|
+
|
|
|
+## Status
|
|
|
+Draft
|
|
|
+
|
|
|
+## Story
|
|
|
+**As a** 系统架构师,
|
|
|
+**I want** 将共享类型、数据库核心、认证核心、工具核心从 packages/server/src 拆分为独立的基础设施包,
|
|
|
+**so that** 为后续的业务模块提供标准化的基础设施支持,并实现清晰的依赖层次结构
|
|
|
+
|
|
|
+## Acceptance Criteria
|
|
|
+1. shared-types package 创建完成,包含所有通用类型定义
|
|
|
+2. database-core package 创建完成,提供数据库连接和基础实体管理
|
|
|
+3. auth-core package 创建完成,提供认证相关的核心服务
|
|
|
+4. utils-core package 创建完成,提供通用的工具函数
|
|
|
+5. 所有基础设施包通过 pnpm workspace 正确配置依赖关系
|
|
|
+6. 现有 server package 重构为使用新的基础设施包
|
|
|
+7. 所有基础设施包通过单元测试和集成测试
|
|
|
+8. 现有功能通过回归测试验证无影响
|
|
|
+
|
|
|
+## Tasks / Subtasks
|
|
|
+- [ ] 创建 shared-types package (AC: 1)
|
|
|
+ - [ ] 创建 package.json 配置
|
|
|
+ - [ ] 迁移通用类型定义(ApiResponse、Pagination、QueryParams等)
|
|
|
+ - [ ] 配置 TypeScript 编译选项
|
|
|
+ - [ ] 编写基础测试(放在 tests/unit/)
|
|
|
+- [ ] 创建 database-core package (AC: 2)
|
|
|
+ - [ ] 创建 package.json 配置
|
|
|
+ - [ ] 迁移数据库连接配置和基础实体
|
|
|
+ - [ ] 提供数据库连接管理服务
|
|
|
+ - [ ] 配置 TypeScript 编译选项
|
|
|
+ - [ ] 编写单元测试(放在 tests/unit/)
|
|
|
+- [ ] 创建 auth-core package (AC: 3)
|
|
|
+ - [ ] 创建 package.json 配置
|
|
|
+ - [ ] 迁移认证相关的核心服务
|
|
|
+ - [ ] 提供 JWT 令牌管理
|
|
|
+ - [ ] 配置 TypeScript 编译选项
|
|
|
+ - [ ] 编写单元测试(放在 tests/unit/)
|
|
|
+- [ ] 创建 utils-core package (AC: 4)
|
|
|
+ - [ ] 创建 package.json 配置
|
|
|
+ - [ ] 迁移通用工具函数
|
|
|
+ - [ ] 提供常用工具类
|
|
|
+ - [ ] 配置 TypeScript 编译选项
|
|
|
+ - [ ] 编写单元测试(放在 tests/unit/)
|
|
|
+- [ ] 配置 pnpm workspace 依赖关系 (AC: 5)
|
|
|
+ - [ ] 更新根目录 package.json workspace 配置
|
|
|
+ - [ ] 配置各 package 间的依赖关系
|
|
|
+ - [ ] 验证依赖解析正确
|
|
|
+- [ ] 重构 server package 依赖 (AC: 6)
|
|
|
+ - [ ] 更新 server package.json 依赖
|
|
|
+ - [ ] 重构代码导入路径
|
|
|
+ - [ ] 验证编译通过
|
|
|
+- [ ] 执行回归测试 (AC: 7, 8)
|
|
|
+ - [ ] 运行所有单元测试(tests/unit/)
|
|
|
+ - [ ] 运行集成测试(tests/integration/)
|
|
|
+ - [ ] 验证现有功能无回归
|
|
|
+
|
|
|
+## Dev Notes
|
|
|
+
|
|
|
+### 技术架构信息
|
|
|
+- **项目技术栈**: Node.js 20.19.2 + TypeScript + Hono + TypeORM + PostgreSQL
|
|
|
+- **包管理**: pnpm workspace
|
|
|
+- **依赖层次**: shared-types → database-core/auth-core/utils-core → crud-core → 业务模块 → server
|
|
|
+
|
|
|
+### 现有代码结构参考
|
|
|
+- **当前共享类型位置**: packages/server/src/types/
|
|
|
+- **当前数据库核心**: packages/server/src/database/
|
|
|
+- **当前认证核心**: packages/server/src/auth/
|
|
|
+- **当前工具函数**: packages/server/src/utils/
|
|
|
+
|
|
|
+### Package 配置要求
|
|
|
+- 所有 package 使用 TypeScript 编译
|
|
|
+- 遵循现有的代码风格和命名规范
|
|
|
+- 提供完整的类型定义导出
|
|
|
+- 配置适当的构建脚本
|
|
|
+
|
|
|
+### 依赖关系设计
|
|
|
+```json
|
|
|
+// shared-types package.json
|
|
|
+{
|
|
|
+ "name": "@d8d/shared-types",
|
|
|
+ "dependencies": {}
|
|
|
+}
|
|
|
+
|
|
|
+// database-core package.json
|
|
|
+{
|
|
|
+ "name": "@d8d/database-core",
|
|
|
+ "dependencies": {
|
|
|
+ "@d8d/shared-types": "workspace:*",
|
|
|
+ "typeorm": "^0.3.20",
|
|
|
+ "pg": "^8.16.3"
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// auth-core package.json
|
|
|
+{
|
|
|
+ "name": "@d8d/auth-core",
|
|
|
+ "dependencies": {
|
|
|
+ "@d8d/shared-types": "workspace:*",
|
|
|
+ "jsonwebtoken": "^9.0.2",
|
|
|
+ "bcrypt": "^6.0.0"
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// utils-core package.json
|
|
|
+{
|
|
|
+ "name": "@d8d/utils-core",
|
|
|
+ "dependencies": {
|
|
|
+ "@d8d/shared-types": "workspace:*"
|
|
|
+ }
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+### 测试标准
|
|
|
+- **测试框架**: Vitest
|
|
|
+- **测试位置**: 每个 package 的 `tests/` 目录(遵循现有测试策略)
|
|
|
+ - `tests/unit/` - 单元测试
|
|
|
+ - `tests/integration/` - 集成测试
|
|
|
+- **测试要求**: 单元测试覆盖核心功能,集成测试验证包间协作
|
|
|
+- **测试执行**: `pnpm test` 在每个 package 中运行
|
|
|
+
|
|
|
+## Change Log
|
|
|
+| Date | Version | Description | Author |
|
|
|
+|------|---------|-------------|--------|
|
|
|
+| 2025-11-10 | 1.0 | 初始创建故事文档 | Bob (Scrum Master) |
|
|
|
+
|
|
|
+## Dev Agent Record
|
|
|
+*此部分由开发代理在实现过程中填写*
|
|
|
+
|
|
|
+### Agent Model Used
|
|
|
+{{agent_model_name_version}}
|
|
|
+
|
|
|
+### Debug Log References
|
|
|
+
|
|
|
+### Completion Notes List
|
|
|
+
|
|
|
+### File List
|