diff --git a/.changeset/distributed-hook-events.md b/.changeset/distributed-hook-events.md deleted file mode 100644 index 5e7769c..0000000 --- a/.changeset/distributed-hook-events.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"nova-http": minor ---- - -将 core Hook 机制与核心生命周期事件保留在 `core/hooks`,server 和 middleware/plugin 事件由各自所属模块通过声明合并扩展。Context 类型统一使用 `*HookContext` 命名,并移除 `CoreHookEvents` 与 `ServerHookEvents` 汇总类型。 diff --git a/.changeset/hooks-observe-middleware-controls.md b/.changeset/hooks-observe-middleware-controls.md deleted file mode 100644 index a5ba0ba..0000000 --- a/.changeset/hooks-observe-middleware-controls.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"nova-http": minor ---- - -明确 middleware 参与控制流、hook 仅观察生命周期的边界。 -移除 `callHookAsync` 和冗余的 `createRequestTimer()`,请直接使用 `onResponse.durationMs` 记录或上报请求耗时;同时使 `onNotFound` 在默认 404 响应确定后触发。 diff --git a/.changeset/layered-runtime-exports.md b/.changeset/layered-runtime-exports.md deleted file mode 100644 index 84275fe..0000000 --- a/.changeset/layered-runtime-exports.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"nova-http": minor ---- - -重构应用、协议、服务端与静态文件模块的分层边界,并新增 `nova-http/protocol/http1`、`nova-http/static` 子路径导出。公开 `Application`、传输无关的请求/响应契约、HTTP/1 类型以及 `sendFile()` 等扩展接口。 - -挂载路径现在会在注册时校验并规范化;`app.use(path, ...)` 仅接受字面路径前缀,不再静默接受路由参数、通配符、查询字符串或其他异常前缀。 diff --git a/.changeset/modern-node-baselines.md b/.changeset/modern-node-baselines.md deleted file mode 100644 index b6b3c30..0000000 --- a/.changeset/modern-node-baselines.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"nova-http": minor -"create-nova-http": minor ---- - -将最低运行版本提升至 Node.js 20,并同步更新生成项目的运行声明及 TypeScript 模板使用的 Node.js 20 类型定义。 diff --git a/.changeset/reliable-middleware-errors.md b/.changeset/reliable-middleware-errors.md deleted file mode 100644 index 6472814..0000000 --- a/.changeset/reliable-middleware-errors.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"nova-http": patch ---- - -修正普通中间件、路由中间件、子应用与错误处理中间件之间的同步和异步错误传播,并防止同一次中间件调用重复执行 `next()` 导致处理链越级。 diff --git a/.changeset/streaming-http1-input.md b/.changeset/streaming-http1-input.md deleted file mode 100644 index bc3fcec..0000000 --- a/.changeset/streaming-http1-input.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"nova-http": minor ---- - -重构 HTTP/1.1 输入内核,引入分段输入、有界请求头解析、独立消息 framing、Readable 请求体背压、严格 EOF 处理和连接生命周期协调 - -移除 `BufferReader`、`HttpParser` 和完整 Buffer 请求体 API,改用 `SegmentedInput`、`HeaderBlock`、`IncomingBody` 以及 `req.buffer()`、`req.text()`、`req.json()` diff --git a/.changeset/strict-request-semantics.md b/.changeset/strict-request-semantics.md deleted file mode 100644 index 1683f89..0000000 --- a/.changeset/strict-request-semantics.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"nova-http": minor ---- - -严格校验并解析 HTTP/1 request-target,区分原始目标与应用路由路径;完善 `NovaRequest` 请求语义,以 `rawTarget`、`path` 和 `bodyBytesReceived` 提供明确的只读信息,并通过 `RequestContext` 扩展 `req.context`。同时正确识别结构化 JSON 媒体类型及保留 Cookie 原始值。 - -扩展 `trustProxy`,支持布尔值、可信代理跳数或逐跳判断函数,并根据可信代理链安全地解析 `req.ip`。 diff --git a/packages/create-nova-http/CHANGELOG.md b/packages/create-nova-http/CHANGELOG.md index d8907d4..f73a98b 100644 --- a/packages/create-nova-http/CHANGELOG.md +++ b/packages/create-nova-http/CHANGELOG.md @@ -1,5 +1,11 @@ # create-nova-http +## 0.3.0 + +### Minor Changes + +- d0b3809: 将最低运行版本提升至 Node.js 20,并同步更新生成项目的运行声明及 TypeScript 模板使用的 Node.js 20 类型定义。 + ## 0.2.1 ### Patch Changes diff --git a/packages/create-nova-http/package.json b/packages/create-nova-http/package.json index eedde57..2276019 100644 --- a/packages/create-nova-http/package.json +++ b/packages/create-nova-http/package.json @@ -1,6 +1,6 @@ { "name": "create-nova-http", - "version": "0.2.1", + "version": "0.3.0", "description": "Initializer for Nova HTTP projects", "keywords": [ "create", diff --git a/packages/nova-http/CHANGELOG.md b/packages/nova-http/CHANGELOG.md index 267113d..1e5863c 100644 --- a/packages/nova-http/CHANGELOG.md +++ b/packages/nova-http/CHANGELOG.md @@ -1,5 +1,29 @@ # nova-http +## 0.3.0 + +### Minor Changes + +- c5b7ea0: 将 core Hook 机制与核心生命周期事件保留在 `core/hooks`,server 和 middleware/plugin 事件由各自所属模块通过声明合并扩展。Context 类型统一使用 `*HookContext` 命名,并移除 `CoreHookEvents` 与 `ServerHookEvents` 汇总类型。 +- 0ce768b: 明确 middleware 参与控制流、hook 仅观察生命周期的边界。 + 移除 `callHookAsync` 和冗余的 `createRequestTimer()`,请直接使用 `onResponse.durationMs` 记录或上报请求耗时;同时使 `onNotFound` 在默认 404 响应确定后触发。 +- 53a3725: 重构应用、协议、服务端与静态文件模块的分层边界,并新增 `nova-http/protocol/http1`、`nova-http/static` 子路径导出。公开 `Application`、传输无关的请求/响应契约、HTTP/1 类型以及 `sendFile()` 等扩展接口。 + + 挂载路径现在会在注册时校验并规范化;`app.use(path, ...)` 仅接受字面路径前缀,不再静默接受路由参数、通配符、查询字符串或其他异常前缀。 + +- d0b3809: 将最低运行版本提升至 Node.js 20,并同步更新生成项目的运行声明及 TypeScript 模板使用的 Node.js 20 类型定义。 +- db25c85: 重构 HTTP/1.1 输入内核,引入分段输入、有界请求头解析、独立消息 framing、Readable 请求体背压、严格 EOF 处理和连接生命周期协调 + + 移除 `BufferReader`、`HttpParser` 和完整 Buffer 请求体 API,改用 `SegmentedInput`、`HeaderBlock`、`IncomingBody` 以及 `req.buffer()`、`req.text()`、`req.json()` + +- 53a3725: 严格校验并解析 HTTP/1 request-target,区分原始目标与应用路由路径;完善 `NovaRequest` 请求语义,以 `rawTarget`、`path` 和 `bodyBytesReceived` 提供明确的只读信息,并通过 `RequestContext` 扩展 `req.context`。同时正确识别结构化 JSON 媒体类型及保留 Cookie 原始值。 + + 扩展 `trustProxy`,支持布尔值、可信代理跳数或逐跳判断函数,并根据可信代理链安全地解析 `req.ip`。 + +### Patch Changes + +- 53a3725: 修正普通中间件、路由中间件、子应用与错误处理中间件之间的同步和异步错误传播,并防止同一次中间件调用重复执行 `next()` 导致处理链越级。 + ## 0.2.1 ### Patch Changes diff --git a/packages/nova-http/package.json b/packages/nova-http/package.json index 3fa1da1..beee1d4 100644 --- a/packages/nova-http/package.json +++ b/packages/nova-http/package.json @@ -1,6 +1,6 @@ { "name": "nova-http", - "version": "0.2.1", + "version": "0.3.0", "description": "零依赖、高性能、全链路可控的 Node.js HTTP 框架", "keywords": [ "framework",