这个项目能做什么

@rapidrest/core 包是 RapidREST 生态系统中用于构建 RESTful 应用程序的通用实用程序和核心功能的集合。它提供了被其他 RapidREST 库和服务所使用的基础构建块,包括依赖注入、缓存、身份验证、消息传递、可观测性和通用辅助工具。 **对象生命周期与依赖注入** 该库包含一个 ClassLoader,可使用基于文件夹的命名空间约定在运行时动态发现类,以及一个 ObjectFactory 轻量级 DI 容器。依赖项可以通过装饰器 (@Inject, @Config, @Logger) 进行注入,对象生命周期通过 @Init 和 @Destroy 进行管理。 **缓存与会话存储** 通用的 SimpleStore 接口支持基于 TTL 的记录存储,并提供两种实现:用于进程内存储的 MemoryStore 和由 Redis 支持的 RedisStore(用于在多个应用程序实例之间共享状态)。此外还提供 loadMany, saveMany, loadSet 和 saveSet 等批量操作。 **认证与验证** JWTUtils 提供 JSON Web Token 的创建、签名、验证和解码,并支持可选的基于密码或密钥的有效负载加密和压缩。UserUtils 提供角色、范围和组织成员资格检查。ValidationUtils 提供了一系列验证器,用于验证电子邮件、URL、电话、UUID、语义化版本、IP、日期、JSON 等,可与 @Validator 装饰器配合使用。 **消息传递与警报** MessagingUtils 通过共享模板存储,利用 Handlebars 发送电子邮件、短信或 Slack 模板消息。AlertUtils 将基于优先级的事件警报 (P1–P5) 及其文件附件发送到外部警报服务。NotificationUtils 通过 Redis pub/sub 向单个用户频道发布实时推送通知,或广播给所有订阅者。 **可观测性** 预配置的 Winston Logger 会自动为日志行标记调用类和方法名称。TelemetryUtils 记录应用程序的遥测事件,并将其转发到配置的收集服务。 **通用实用程序** 包含 StringUtils, ObjectUtils, FileUtils, OASUtils(用于加载、缓存和查询 OpenAPI 规范), CacheUtils(有界逐出缓存)以及 ApiError 类(支持 HTTP 状态码和模板消息)。 **并发处理** ThreadPool 管理一个 Node.js 工作线程池,根据 CPU 数量自动调整大小,支持类型化消息传递,并在工作线程崩溃时自动重启。 该包仅支持 ESM,目标环境为 Node.js >=24.0.0。必要的 peer 依赖包括 axios, redis (用于 RedisStore), reflect-metadata, winston 和 winston-transport。消息通道将根据需要动态加载可选包 (nodemailer, twilio, @slack/bolt)。