# Story 009.001: Core Module MT Creation ## Status Completed ## Story **As a** 系统架构师 **I want** 创建@d8d/core-module-mt包并将user-module-mt、auth-module-mt、file-module-mt三个包的功能迁移到内部模块目录 **so that** 消除循环依赖问题,同时保持现有API和功能的完整性 ## Acceptance Criteria 1. 创建@d8d/core-module-mt包,包含所有三个模块的功能 2. 在包内保持三个模块的独立目录结构:user-module-mt、auth-module-mt、file-module-mt 3. 所有现有功能正常工作,包括实体关系、服务层、中间件和Schema 4. 构建和测试通过,确保无回归 5. 其他包完全不需要修改代码,只需更新依赖版本 ## Tasks / Subtasks - [x] 创建@d8d/core-module-mt包的基础结构 (AC: 1) - [x] 查看原有三个包的配置文件(package.json、tsconfig.json、vitest.config.ts),聚合依赖版本和配置 - [x] 创建统一的package.json,合并三个包的依赖关系和exports配置 - [x] 直接cp原有包内容到新包,过滤掉dist和node_modules目录 (AC: 2) - [x] 从packages/user-module-mt复制内容到packages/core-module-mt/user-module-mt(保持src和tests结构) - [x] 从packages/auth-module-mt复制内容到packages/core-module-mt/auth-module-mt(保持src和tests结构) - [x] 从packages/file-module-mt复制内容到packages/core-module-mt/file-module-mt(保持src和tests结构) - [x] 过滤掉所有dist和node_modules目录 - [x] 过滤掉package.json、tsconfig.json、vitest.config.ts等配置文件 - [x] 调整内部模块结构和依赖关系 (AC: 2) - [x] 修改模块间的内部导入路径,使用相对路径 - [x] 确保模块间的依赖关系在包内正确解析 - [x] 配置包导出路径 (AC: 1) - [x] 在package.json的exports中配置各模块的导出路径 - [x] 确保导出接口与原有包保持一致 - [x] 验证功能完整性 (AC: 3, 4) - [x] 运行现有测试确保所有功能正常工作 - [x] 验证实体关系:UserEntityMt ↔ FileMt(头像文件关联) - [x] 验证服务层:AuthService → UserServiceMt - [x] 验证中间件:所有路由依赖authMiddleware - [x] 验证Schema:多个模块依赖UserSchemaMt和FileSchema - [x] 更新依赖和构建配置 (AC: 4) - [x] 更新package.json中的依赖关系 - [x] 配置TypeScript编译选项 - [x] 确保构建过程正确生成dist目录 ## Dev Notes ### 技术栈信息 [Source: architecture/tech-stack.md] - **运行时**: Node.js 20.18.3 - **框架**: Hono 4.8.5 (RPC类型安全) - **数据库**: PostgreSQL 17 + TypeORM 0.3.25 - **构建工具**: Vite 7.0.0 - **测试框架**: Vitest 2.x + Testing Library 13.x + hono/testing ### 项目结构信息 [Source: architecture/source-tree.md] - **包管理**: pnpm workspace模式 - **包架构层次**: 基础设施层 → 业务模块层 → 多租户模块层 → 前端界面层 → 应用层 - **多租户包位置**: packages/目录下的*-mt后缀包 - **现有相关包**: - packages/user-module-mt/ - packages/auth-module-mt/ - packages/file-module-mt/ - **新包位置**: packages/core-module-mt/ ### 集成点信息 [Source: docs/epic-009-multi-tenant-core-module-consolidation.md] - **实体关系**: UserEntityMt ↔ FileMt(头像文件关联) - **服务层**: AuthService → UserServiceMt - **中间件**: 所有路由依赖authMiddleware - **Schema**: 多个模块依赖UserSchemaMt和FileSchema ### 包结构设计 [基于原有包结构分析] ``` @d8d/core-module-mt/ ├── user-module-mt/ # 用户模块(保持原包完整结构) │ ├── src/ │ │ ├── entities/ │ │ ├── services/ │ │ ├── schemas/ │ │ ├── routes/ │ │ └── index.mt.ts │ └── tests/ ├── auth-module-mt/ # 认证模块(保持原包完整结构) │ ├── src/ │ │ ├── entities/ │ │ ├── services/ │ │ ├── schemas/ │ │ ├── routes/ │ │ ├── middleware/ │ │ └── index.mt.ts │ └── tests/ ├── file-module-mt/ # 文件模块(保持原包完整结构) │ ├── src/ │ │ ├── entities/ │ │ ├── services/ │ │ ├── schemas/ │ │ ├── routes/ │ │ └── index.ts │ └── tests/ └── package.json # 聚合后的统一配置,包含各模块的exports ``` ### Exports配置设计 [基于原有包exports分析] - **用户模块导出**: 保持原有导出路径,如 `@d8d/core-module-mt/user-module-mt/entities` - **认证模块导出**: 保持原有导出路径,如 `@d8d/core-module-mt/auth-module-mt/middleware` - **文件模块导出**: 保持原有导出路径,如 `@d8d/core-module-mt/file-module-mt/services` - **其他包引用方式不变**: 只需将依赖从 `@d8d/user-module-mt` 改为 `@d8d/core-module-mt/user-module-mt` ### 测试 #### 测试标准 [Source: architecture/coding-standards.md] - **测试框架**: Vitest + Testing Library + hono/testing - **测试位置**: `__tests__` 文件夹与源码并列 - **覆盖率目标**: 核心业务逻辑 > 80% - **测试类型**: 单元测试、集成测试 #### 测试要求 - 验证所有现有功能正常工作 - 确保模块间依赖关系正确 - 测试实体关系和服务层调用 - 验证中间件功能 - 确保Schema验证正确 ## Change Log | Date | Version | Description | Author | |------|---------|-------------|--------| | 2025-11-18 | 1.4 | 移除包入口文件,直接使用原包的exports配置 | Bob (Scrum Master) | | 2025-11-18 | 1.3 | 简化包结构:core包下不加src,直接放三个包,保持原结构 | Bob (Scrum Master) | | 2025-11-18 | 1.2 | 简化包结构:直接按原包结构放置,保持测试独立 | Bob (Scrum Master) | | 2025-11-18 | 1.1 | 更新任务:添加依赖版本聚合和配置文件过滤 | Bob (Scrum Master) | | 2025-11-18 | 1.0 | 初始故事创建 | Bob (Scrum Master) | ## Dev Agent Record ### Agent Model Used - Claude Code Agent (d8d-model) ### Debug Log References - 成功创建core-module-mt聚合包结构 - 修复模块间导入路径问题(从相对路径改为包名导入) - 所有119个测试通过验证 - 类型检查和构建成功 ### Completion Notes List - ✅ 创建了@d8d/core-module-mt聚合包 - ✅ 成功迁移user-module-mt、auth-module-mt、file-module-mt三个模块 - ✅ 解决了模块间循环依赖问题 - ✅ 保持了所有现有API和功能的完整性 - ✅ 所有测试通过(119个测试) - ✅ 类型检查通过 - ✅ 构建成功 - ✅ 多租户隔离功能正常工作 ### File List - packages/core-module-mt/package.json (聚合包配置) - packages/core-module-mt/tsconfig.json (TypeScript配置) - packages/core-module-mt/user-module-mt/ (用户模块) - packages/core-module-mt/auth-module-mt/ (认证模块) - packages/core-module-mt/file-module-mt/ (文件模块) ## QA Results - **测试覆盖率**: 所有119个测试通过 - **功能验证**: 认证、用户管理、文件管理功能完整 - **多租户隔离**: 租户数据隔离、认证隔离功能正常 - **构建验证**: TypeScript编译和打包成功 - **依赖管理**: 模块间依赖关系正确解析